From e38396eb3130d301d7168d6ec5cc489b511d7281 Mon Sep 17 00:00:00 2001 From: kitsushadow Date: Sat, 10 Dec 2016 10:31:21 -0500 Subject: [PATCH] adding 1.7.10 code --- .../com/kitsu/medievalcraft/ClientProxy.java | 58 + .../com/kitsu/medievalcraft/CommonProxy.java | 47 + .../java/com/kitsu/medievalcraft/Main.java | 149 ++ .../kitsu/medievalcraft/block/ModBlocks.java | 260 +++ .../kitsu/medievalcraft/block/TestBlock.java | 61 + .../kitsu/medievalcraft/block/WootzOre.java | 53 + .../block/cannon/CannonBallBlock28.java | 84 + .../medievalcraft/block/cannon/Cannon_28.java | 387 ++++ .../block/crucible/CrucibleBase.java | 81 + .../block/crucible/CrucibleIronIngot.java | 91 + .../block/crucible/CrucibleIronOre.java | 113 + .../block/crucible/CrucibleLapis.java | 114 + .../block/crucible/CrucibleRedstone.java | 114 + .../block/crucible/CrucibleWootz.java | 114 + .../crucible/empty/BoilingWaterCrucible.java | 119 + .../crucible/empty/EmptyCookedCrucible.java | 109 + .../crucible/empty/EmptySoftCrucible.java | 73 + .../crucible/empty/FilledWaterCrucible.java | 101 + .../crucible/empty/SlackWaterCrucible.java | 92 + .../crucible/empty/TanWaterCrucible.java | 92 + .../block/decorative/EggWashedBrick.java | 51 + .../block/decorative/EggWashedWall.java | 51 + .../block/decorative/LimestoneRaw.java | 51 + .../block/fluid/BlockFilteredWater.java | 55 + .../block/fluid/BlockSlackedLime.java | 56 + .../medievalcraft/block/fluid/BlockSmoke.java | 89 + .../block/fluid/BlockTannin.java | 55 + .../block/ingots/DamascusIngot.java | 29 + .../medievalcraft/block/ingots/Diamond.java | 86 + .../medievalcraft/block/ingots/Emerald.java | 86 + .../medievalcraft/block/ingots/IngotBase.java | 123 + .../medievalcraft/block/ingots/IronPlate.java | 33 + .../block/ingots/LapisIngot.java | 29 + .../block/ingots/RedstoneIngot.java | 30 + .../block/ingots/RefinedIron.java | 29 + .../medievalcraft/block/machines/Firebox.java | 284 +++ .../medievalcraft/block/machines/Forge.java | 396 ++++ .../block/machines/ForgeAnvil.java | 196 ++ .../block/machines/SolidFilter.java | 128 ++ .../block/machines/TestForge.java | 182 ++ .../block/machines/WaterFilter.java | 79 + .../block/machines/formTable.java | 67 + .../kitsu/medievalcraft/block/shitBlock.java | 59 + .../medievalcraft/block/wood/ShelfFour.java | 1154 ++++++++++ .../medievalcraft/block/wood/SmallBarrel.java | 249 +++ .../block/wood/SmallBarrelLid.java | 115 + .../block/wood/clean/CleanAcacia.java | 112 + .../block/wood/clean/CleanBirch.java | 113 + .../block/wood/clean/CleanDarkOak.java | 114 + .../block/wood/clean/CleanJungle.java | 113 + .../block/wood/clean/CleanOak.java | 113 + .../block/wood/clean/CleanSpruce.java | 114 + .../wood/quartersplit/AcaciaSplitLog.java | 189 ++ .../wood/quartersplit/BirchSplitLog.java | 188 ++ .../block/wood/quartersplit/DarkSplitLog.java | 184 ++ .../wood/quartersplit/JungleSplitLog.java | 186 ++ .../block/wood/quartersplit/OakSplitLog.java | 186 ++ .../wood/quartersplit/SpruceSplitLog.java | 185 ++ .../medievalcraft/compat/FuelHandler.java | 27 + .../kitsu/medievalcraft/compat/ModDict.java | 52 + .../contain/ContainerCannon_28.java | 81 + .../contain/ContainerFirebox.java | 63 + .../medievalcraft/contain/ContainerForge.java | 85 + .../contain/ContainerForgeAnvil.java | 62 + .../contain/ContainerFormTable.java | 146 ++ .../contain/ContainerShelfFour.java | 85 + .../contain/ContainerSolidFilter.java | 95 + .../contain/ContainerTestForge.java | 95 + .../crafting/CraftingHandle.java | 190 ++ .../crafting/ForgeAnvilCrafting.java | 85 + .../crafting/FormTableCraftManager.java | 259 +++ .../crafting/FormTableRecipeSorter.java | 24 + .../crafting/FormTableShapedRecipes.java | 145 ++ .../crafting/FormTableShapelessRecipes.java | 87 + .../medievalcraft/crafting/ModCrafting.java | 1971 +++++++++++++++++ .../crafting/TestForgeCrafting.java | 61 + .../entity/EntityCannonBall.java | 152 ++ .../medievalcraft/entity/EntityITSpear.java | 597 +++++ .../entity/EntityModelArrow.java | 582 +++++ .../entity/EntityModelITArrow.java | 581 +++++ .../medievalcraft/entity/EntityShit.java | 60 + .../entity/EntityShortLivedShit.java | 25 + .../medievalcraft/entity/EntityTester.java | 70 + .../entity/ProjectileCannonBall.java | 592 +++++ .../entityAI/EntityAIWaterMob.java | 221 ++ .../medievalcraft/events/BucketHandle.java | 46 + .../medievalcraft/events/EventHandle.java | 652 ++++++ .../kitsu/medievalcraft/gui/GuiCannon_28.java | 38 + .../medievalcraft/gui/GuiForgeAnvil.java | 38 + .../kitsu/medievalcraft/gui/GuiFormTable.java | 48 + .../kitsu/medievalcraft/gui/GuiHandler.java | 76 + .../medievalcraft/gui/GuiSolidFilter.java | 40 + .../kitsu/medievalcraft/gui/GuiTestForge.java | 38 + .../kitsu/medievalcraft/item/FluidBucket.java | 13 + .../medievalcraft/item/ItemClayFormBook.java | 65 + .../kitsu/medievalcraft/item/ModItems.java | 1044 +++++++++ .../medievalcraft/item/TongsDamageTable.java | 44 + .../item/craftingtools/FireBow.java | 87 + .../item/craftingtools/FlintSaw.java | 43 + .../item/craftingtools/ForgeHammer.java | 343 +++ .../item/craftingtools/InlayHammer.java | 749 +++++++ .../item/craftingtools/IronSaw.java | 43 + .../item/craftingtools/LeatherShears.java | 42 + .../item/craftingtools/SlottedTongs.java | 96 + .../item/craftingtools/WorkBlade.java | 213 ++ .../craftingtools/filters/CoarseFilter.java | 43 + .../craftingtools/filters/FineFilter.java | 33 + .../craftingtools/filters/MediumFilter.java | 33 + .../item/forms/clay/CClayAxeForm.java | 12 + .../item/forms/clay/CClayBattleAxeForm.java | 12 + .../item/forms/clay/CClayDaggerForm.java | 12 + .../item/forms/clay/CClayHoeForm.java | 12 + .../item/forms/clay/CClayLongswordForm.java | 12 + .../item/forms/clay/CClayMaceHeadForm.java | 12 + .../item/forms/clay/CClayPickaxeForm.java | 12 + .../item/forms/clay/CClayRingForm.java | 12 + .../item/forms/clay/CClaySawBladeForm.java | 12 + .../item/forms/clay/CClaySharpTipForm.java | 12 + .../item/forms/clay/CClayShortSwordForm.java | 12 + .../item/forms/clay/CClaySpadeForm.java | 12 + .../item/forms/clay/CClaySpearTipForm.java | 12 + .../item/forms/clay/ClayForms.java | 23 + .../item/forms/iron/IronAxeForm.java | 17 + .../item/forms/iron/IronBattleAxeForm.java | 16 + .../item/forms/iron/IronDaggerForm.java | 18 + .../item/forms/iron/IronForms.java | 40 + .../item/forms/iron/IronHandleForm.java | 18 + .../item/forms/iron/IronHoeForm.java | 18 + .../item/forms/iron/IronLongswordForm.java | 18 + .../item/forms/iron/IronMaceHeadForm.java | 17 + .../item/forms/iron/IronPickaxeForm.java | 17 + .../item/forms/iron/IronRingForm.java | 17 + .../item/forms/iron/IronSawBladeForm.java | 18 + .../item/forms/iron/IronSharpTipForm.java | 18 + .../item/forms/iron/IronShortSwordForm.java | 17 + .../item/forms/iron/IronSpadeForm.java | 19 + .../item/forms/iron/IronSpearTipForm.java | 17 + .../medievalcraft/item/misc/CrucibleLid.java | 25 + .../medievalcraft/item/misc/ItemBark.java | 35 + .../item/misc/ItemSmallBarrelLid.java | 43 + .../item/misc/RawCuredLeather.java | 145 ++ .../item/throwable/ItemITSpear.java | 127 ++ .../item/throwable/ItemShit.java | 57 + .../item/throwable/ItemTester.java | 38 + .../item/tools/CustomIronHoe.java | 55 + .../item/tools/CustomIronLumberAxe.java | 54 + .../item/tools/CustomIronPick.java | 60 + .../item/tools/CustomIronShovel.java | 51 + .../item/weapon/ItemBattleAxe.java | 85 + .../item/weapon/ItemGladius.java | 74 + .../item/weapon/ItemHeavyMace.java | 111 + .../item/weapon/ItemIronShield.java | 75 + .../item/weapon/ItemIronTippedModelArrow.java | 24 + .../item/weapon/ItemLongSword.java | 71 + .../item/weapon/ItemLongbow.java | 150 ++ .../item/weapon/ItemModelArrow.java | 23 + .../item/weapon/ItemWoodenShield.java | 98 + .../curedLeather/MsgHandleCuredLeatherX.java | 24 + .../curedLeather/MsgHandleCuredLeatherY.java | 24 + .../curedLeather/MsgHandleCuredLeatherZ.java | 24 + .../curedLeather/MsgPacketCuredLeatherX.java | 28 + .../curedLeather/MsgPacketCuredLeatherY.java | 28 + .../curedLeather/MsgPacketCuredLeatherZ.java | 28 + .../packethandle/forge/MsgHandleForge.java | 18 + .../packethandle/forge/MsgPacketForge.java | 26 + .../forgeHammerParticles/MsgHandle.java | 20 + .../forgeHammerParticles/MsgHandleLocX.java | 19 + .../forgeHammerParticles/MsgHandleLocY.java | 23 + .../forgeHammerParticles/MsgHandleLocZ.java | 23 + .../forgeHammerParticles/MsgPacket.java | 29 + .../forgeHammerParticles/MsgPacketLocX.java | 27 + .../forgeHammerParticles/MsgPacketLocY.java | 28 + .../forgeHammerParticles/MsgPacketLocZ.java | 28 + .../MsgHandleSandFilterRender.java | 19 + .../MsgPacketSandFilterRender.java | 29 + .../shelf/MsgHandleShelfCase.java | 18 + .../shelf/MsgPacketShelfCase.java | 26 + .../medievalcraft/player/ExtendedPlayer.java | 56 + .../player/MyModClientPlayerBase.java | 36 + .../player/MyModServerPlayerBase.java | 26 + .../medievalcraft/renderer/RenderId.java | 81 + .../renderer/RendererRegistry.java | 200 ++ .../renderer/blocks/BarrelLidRender.java | 115 + .../renderer/blocks/RenderModelArrow.java | 64 + .../renderer/blocks/RenderModelITArrow.java | 56 + .../renderer/blocks/RenderModelITSpear.java | 63 + .../renderer/blocks/SmallBarrelRender.java | 97 + .../renderer/blocks/TestBlockRenderer.java | 51 + .../renderer/blocks/TestRender.java | 26 + .../cannons/Render_CannonBall_Iron.java | 65 + .../cannons/Render_CannonBall_Iron_Block.java | 95 + .../blocks/cannons/Render_Cannon_28.java | 92 + .../crucibles/IronOreCrucibleRenderer.java | 63 + .../crucibles/LapisCrucibleRenderer.java | 65 + .../crucibles/RedstoneCrucibleRenderer.java | 65 + .../crucibles/WootzCrucibleRenderer.java | 63 + .../emptycrucibles/BoilCrucibleRender.java | 53 + .../emptycrucibles/ECCrucibleRenderer.java | 52 + .../emptycrucibles/SECrucibleRenderer.java | 86 + .../emptycrucibles/SlackCrucibleRender.java | 55 + .../emptycrucibles/TanCrucibleRender.java | 53 + .../emptycrucibles/WaterCrucibleRender.java | 53 + .../blocks/ingot/DamascusIngotRenderer.java | 60 + .../blocks/ingot/IronIngotRenderer.java | 62 + .../blocks/ingot/IronPlateRenderer.java | 56 + .../blocks/ingot/LapisIngotRenderer.java | 57 + .../blocks/ingot/MyDiamondRenderer.java | 50 + .../blocks/ingot/MyEmeraldRenderer.java | 85 + .../blocks/ingot/RedstoneIngotRenderer.java | 56 + .../blocks/machine/FireboxRenderer.java | 78 + .../blocks/machine/ForgeAnvilRenderer.java | 105 + .../blocks/machine/ForgeRenderer.java | 129 ++ .../blocks/machine/FourShelfRenderer.java | 263 +++ .../blocks/machine/SolidFilterRender.java | 74 + .../blocks/machine/WaterFilterRenderer.java | 51 + .../renderer/itemrenderer/IRITSpear.java | 145 ++ .../itemrenderer/IRIronShieldNOT.java | 166 ++ .../ItemRendererITModelArrow.java | 154 ++ .../itemrenderer/ItemRendererLongbow.java | 436 ++++ .../itemrenderer/ItemRendererModelArrow.java | 154 ++ .../cannons/IR_CannonBall_28.java | 143 ++ .../itemrenderer/cannons/IR_Cannon_28.java | 156 ++ .../itemrenderer/crucibles/IRCrucible.java | 133 ++ .../crucibles/empty/IRSlackCrucible.java | 149 ++ .../crucibles/empty/IRTanninCrucible.java | 149 ++ .../crucibles/empty/IRWaterCrucible.java | 149 ++ .../empty/ItemRendererECCrucible.java | 147 ++ .../empty/ItemRendererSECrucible.java | 146 ++ .../ingotsplates/DamascusIngotIR.java | 140 ++ .../ingotsplates/IronIngotIR.java | 140 ++ .../ingotsplates/IronPlateIR.java | 156 ++ .../ingotsplates/LapisIngotIR.java | 140 ++ .../ingotsplates/RedstoneIngotIR.java | 140 ++ .../itemrenderer/longbow/IRLongbow0.java | 183 ++ .../itemrenderer/longbow/IRLongbow1.java | 183 ++ .../itemrenderer/longbow/IRLongbow10.java | 183 ++ .../itemrenderer/machines/ForgeIR.java | 134 ++ .../itemrenderer/machines/IRBarrelLid.java | 144 ++ .../itemrenderer/machines/IRFirebox.java | 143 ++ .../itemrenderer/machines/IRForgeAnvil.java | 144 ++ .../itemrenderer/machines/IRShelfFour.java | 147 ++ .../itemrenderer/machines/IRSmallBarrel.java | 144 ++ .../itemrenderer/machines/IRSolidFilter.java | 154 ++ .../itemrenderer/machines/IRWaterFilter.java | 148 ++ .../itemrenderer/tongs/IRSlottedTongs.java | 336 +++ .../tongs/IRStoneTongsCoolLapisIngot.java | 198 ++ .../tongs/IRStoneTongsCoolPlate.java | 201 ++ .../tongs/IRStoneTongsCoolRedstoneIngot.java | 198 ++ .../tongs/IRStoneTongsDCrucible.java | 199 ++ .../tongs/IRStoneTongsHotDamascus.java | 199 ++ .../tongs/IRStoneTongsHotIron.java | 199 ++ .../tongs/IRStoneTongsHotLapisIngot.java | 199 ++ .../tongs/IRStoneTongsHotPlate.java | 201 ++ .../tongs/IRStoneTongsICrucible.java | 198 ++ .../tongs/IRStoneTongsLapisCrucible.java | 5 + .../tongs/IRStoneTongsMyDamascusIngot.java | 199 ++ .../tongs/IRStoneTongsMyIronIngot.java | 199 ++ .../tongs/IRStoneTongsRedCrucible.java | 199 ++ .../tongs/IRStoneTongsRedIngot.java | 199 ++ .../tongs/ItemRendererEmptyStoneTongs.java | 151 ++ .../itemrenderer/tools/IRCraftingBlade.java | 153 ++ .../itemrenderer/tools/IRForgeHammer.java | 151 ++ .../itemrenderer/tools/IRInlayHammer.java | 151 ++ .../itemrenderer/tools/IRironPicks.java | 130 ++ .../itemrenderer/weapons/IRBattleAxe.java | 150 ++ .../itemrenderer/weapons/IRGladius.java | 146 ++ .../weapons/ItemRenderHeavymace.java | 145 ++ .../weapons/ItemRenderIronShield.java | 166 ++ .../weapons/ItemRenderLongsword.java | 148 ++ .../weapons/ItemRenderWoodenShield.java | 151 ++ .../itemrenderer/weapons/NewIronShield.java | 150 ++ .../tileents/TileEntRegister.java | 73 + .../tileents/TileEntitySmallBarrel.java | 134 ++ .../tileents/TileEntitySmallLid.java | 73 + .../tileents/TileEntityTestBlock.java | 13 + .../tileents/cannon/TileCannonBall28.java | 16 + .../tileents/cannon/TileCannon_28.java | 260 +++ .../tileents/crucible/TileCrucibleBase.java | 95 + .../crucible/TileCrucibleIronOre.java | 21 + .../tileents/crucible/TileCrucibleLapis.java | 14 + .../crucible/TileCrucibleRedstone.java | 14 + .../tileents/crucible/TileCrucibleWootz.java | 16 + .../empty/TileEntityBoilingWaterCrucible.java | 110 + .../empty/TileEntityEmptyCookedCrucible.java | 13 + .../empty/TileEntityFilledWaterCrucible.java | 25 + .../empty/TileEntitySlackWaterCrucible.java | 17 + .../empty/TileEntitySoftEmptyCrucible.java | 18 + .../empty/TileEntityTanWaterCrucible.java | 41 + .../tileents/ingots/TileDamascus.java | 16 + .../tileents/ingots/TileEntityMyDiamond.java | 51 + .../tileents/ingots/TileEntityMyEmerald.java | 51 + .../tileents/ingots/TileIngotBase.java | 122 + .../tileents/ingots/TileIronPlate.java | 15 + .../tileents/ingots/TileLapisIngot.java | 17 + .../tileents/ingots/TileMyIronIngot.java | 13 + .../tileents/ingots/TileRedstoneIngot.java | 17 + .../machine/TileEntityAnvilForge.java | 218 ++ .../tileents/machine/TileEntityFirebox.java | 373 ++++ .../tileents/machine/TileEntityShelfFour.java | 203 ++ .../machine/TileEntitySolidFilter.java | 232 ++ .../tileents/machine/TileEntityTestForge.java | 308 +++ .../machine/TileEntityWaterFilter.java | 84 + .../tileents/machine/TileForge.java | 381 ++++ .../kitsu/medievalcraft/util/AnvilUtil.java | 111 + .../kitsu/medievalcraft/util/CannonUtil.java | 38 + .../kitsu/medievalcraft/util/CustomTab.java | 17 + .../medievalcraft/util/IRTextureModel.java | 34 + .../kitsu/medievalcraft/util/InlayTables.java | 119 + .../medievalcraft/util/SandFilterTexture.java | 18 + .../medievalcraft/util/ShieldSwitchTable.java | 28 + .../util/TileForgePlaceables.java | 21 + .../src/main/resources/License.txt | 234 ++ .../assets/kitsumedievalcraft/lang/en_US.lang | 377 ++++ .../models/BarrelFinished.obj | 937 ++++++++ .../models/BarrelFinished.png | Bin 0 -> 42880 bytes .../models/BarrelFinishedLid.png | Bin 0 -> 42833 bytes .../kitsumedievalcraft/models/BarrelLid.mtl | 12 + .../kitsumedievalcraft/models/BarrelLid.obj | 755 +++++++ .../kitsumedievalcraft/models/BarrelLid0.png | Bin 0 -> 3809 bytes .../kitsumedievalcraft/models/BarrelLid1.png | Bin 0 -> 1624 bytes .../kitsumedievalcraft/models/BarrelLid2.png | Bin 0 -> 3776 bytes .../kitsumedievalcraft/models/BarrelLid3.png | Bin 0 -> 2531 bytes .../kitsumedievalcraft/models/BarrelLid4.png | Bin 0 -> 2802 bytes .../kitsumedievalcraft/models/BarrelLid5.png | Bin 0 -> 3102 bytes .../kitsumedievalcraft/models/BarrelLid6.png | Bin 0 -> 3352 bytes .../kitsumedievalcraft/models/BarrelLid7.png | Bin 0 -> 3596 bytes .../kitsumedievalcraft/models/BarrelLid8.png | Bin 0 -> 3776 bytes .../models/BarrelLidRing.png | Bin 0 -> 3814 bytes .../kitsumedievalcraft/models/Battleaxe.png | Bin 0 -> 1584 bytes .../kitsumedievalcraft/models/Battleaxe1.png | Bin 0 -> 853 bytes .../kitsumedievalcraft/models/Battleaxev3.obj | 541 +++++ .../kitsumedievalcraft/models/Cannon.mtl | 12 + .../kitsumedievalcraft/models/Cannon.obj | 270 +++ .../kitsumedievalcraft/models/Cannon.png | Bin 0 -> 7463 bytes .../kitsumedievalcraft/models/CannonBall.png | Bin 0 -> 604 bytes .../models/CleanAcaciaLog.png | Bin 0 -> 948 bytes .../models/CleanBirchLog.png | Bin 0 -> 873 bytes .../models/CleanDarkOakLog.png | Bin 0 -> 1029 bytes .../models/CleanJungleLog.png | Bin 0 -> 930 bytes .../kitsumedievalcraft/models/CleanLog.obj | 50 + .../kitsumedievalcraft/models/CleanOakLog.png | Bin 0 -> 1092 bytes .../models/CleanSpruceLog.png | Bin 0 -> 615 bytes .../models/CoolCrucible.png | Bin 0 -> 1544 bytes .../models/CraftingBlade.obj | 267 +++ .../models/CraftingBlade.png | Bin 0 -> 12370 bytes .../kitsumedievalcraft/models/Crucible.png | Bin 0 -> 1737 bytes .../models/CrucibleModel.obj | 354 +++ .../models/DamascusIngot.png | Bin 0 -> 125278 bytes .../kitsumedievalcraft/models/Diamond.obj | 125 ++ .../kitsumedievalcraft/models/Diamond.png | Bin 0 -> 103025 bytes .../kitsumedievalcraft/models/Emerald.obj | 280 +++ .../kitsumedievalcraft/models/Emerald.png | Bin 0 -> 116149 bytes .../models/EmptyCrucible.obj | 441 ++++ .../models/EmptySlackCrucible.png | Bin 0 -> 1849 bytes .../models/EmptyTanninCrucible.png | Bin 0 -> 1740 bytes .../models/EmptyUncookedCrucible.png | Bin 0 -> 1248 bytes .../models/EmptyWaterCrucible.png | Bin 0 -> 1807 bytes .../kitsumedievalcraft/models/Firebox.obj | 420 ++++ .../kitsumedievalcraft/models/FireboxUV.png | Bin 0 -> 603 bytes .../kitsumedievalcraft/models/Forge.obj | 153 ++ .../kitsumedievalcraft/models/Forge.png | Bin 0 -> 1021 bytes .../kitsumedievalcraft/models/ForgeAnvil.obj | 273 +++ .../kitsumedievalcraft/models/ForgeAnvil.png | Bin 0 -> 39487 bytes .../kitsumedievalcraft/models/ForgeHammer.obj | 263 +++ .../kitsumedievalcraft/models/ForgeHammer.png | Bin 0 -> 11950 bytes .../kitsumedievalcraft/models/Gladius.obj | 267 +++ .../kitsumedievalcraft/models/Gladius.png | Bin 0 -> 36398 bytes .../kitsumedievalcraft/models/Heavymace.obj | 363 +++ .../kitsumedievalcraft/models/Heavymace.png | Bin 0 -> 794 bytes .../kitsumedievalcraft/models/HotCrucible.png | Bin 0 -> 1216 bytes .../models/HotDamascusCrucible.png | Bin 0 -> 1315 bytes .../models/HotDamascusIngot.png | Bin 0 -> 97047 bytes .../models/HotIronIngotBlock.png | Bin 0 -> 1244 bytes .../models/HotIronPlate.png | Bin 0 -> 590 bytes .../kitsumedievalcraft/models/InlayHammer.obj | 406 ++++ .../kitsumedievalcraft/models/InlayHammer.png | Bin 0 -> 126393 bytes .../models/IronIngotBlock.obj | 67 + .../models/IronIngotBlock.png | Bin 0 -> 1859 bytes .../kitsumedievalcraft/models/IronPlate.obj | 40 + .../kitsumedievalcraft/models/IronPlate.png | Bin 0 -> 734 bytes .../kitsumedievalcraft/models/IronShield.obj | 388 ++++ .../kitsumedievalcraft/models/Longbow0.obj | 477 ++++ .../kitsumedievalcraft/models/Longbow1.obj | 477 ++++ .../kitsumedievalcraft/models/Longbow10.obj | 477 ++++ .../kitsumedievalcraft/models/Longbow2.obj | 477 ++++ .../kitsumedievalcraft/models/Longbow3.obj | 477 ++++ .../kitsumedievalcraft/models/Longbow4.obj | 477 ++++ .../kitsumedievalcraft/models/Longbow5.obj | 477 ++++ .../kitsumedievalcraft/models/Longbow6.obj | 477 ++++ .../kitsumedievalcraft/models/Longbow7.obj | 477 ++++ .../kitsumedievalcraft/models/Longbow8.obj | 477 ++++ .../kitsumedievalcraft/models/Longbow9.obj | 477 ++++ .../kitsumedievalcraft/models/LongbowRig.png | Bin 0 -> 1541 bytes .../kitsumedievalcraft/models/Longsword.obj | 432 ++++ .../kitsumedievalcraft/models/Longsword.png | Bin 0 -> 1647 bytes .../kitsumedievalcraft/models/ModelArrow.obj | 128 ++ .../kitsumedievalcraft/models/ModelArrow3.obj | 128 ++ .../models/MyHotLapisBlock.png | Bin 0 -> 2361 bytes .../models/MyHotRedstoneBlock.png | Bin 0 -> 762 bytes .../models/MyLapisBlock.png | Bin 0 -> 1964 bytes .../models/MyRedstoneBlock.png | Bin 0 -> 1433 bytes .../kitsumedievalcraft/models/NewBarrel.mtl | 12 + .../kitsumedievalcraft/models/NewBarrel.obj | 1121 ++++++++++ .../models/NewIronShield.obj | 213 ++ .../models/NewIronShield.png | Bin 0 -> 998 bytes .../kitsumedievalcraft/models/SandFilter.obj | 546 +++++ .../kitsumedievalcraft/models/SandFilter.png | Bin 0 -> 4039 bytes .../models/SandFilterEmpty.png | Bin 0 -> 4002 bytes .../kitsumedievalcraft/models/Shelf.obj | 218 ++ .../kitsumedievalcraft/models/ShelfMini.png | Bin 0 -> 9578 bytes .../kitsumedievalcraft/models/ShelfMini16.png | Bin 0 -> 805 bytes .../kitsumedievalcraft/models/ShelfMini32.png | Bin 0 -> 2436 bytes .../kitsumedievalcraft/models/SingleForge.obj | 100 + .../kitsumedievalcraft/models/SingleForge.png | Bin 0 -> 2930 bytes .../models/SingleForgeBurning.png | Bin 0 -> 3090 bytes .../models/SingleForgeOn.png | Bin 0 -> 3221 bytes .../kitsumedievalcraft/models/Spear.obj | 261 +++ .../kitsumedievalcraft/models/Spear.png | Bin 0 -> 1282 bytes .../kitsumedievalcraft/models/StoneTongs.png | Bin 0 -> 665 bytes .../models/StoneTongsCrucible.obj | 325 +++ .../models/StoneTongsCrucible.png | Bin 0 -> 1613 bytes .../models/StoneTongsIngot.obj | 330 +++ .../models/StoneTongsIngot.png | Bin 0 -> 1880 bytes .../assets/kitsumedievalcraft/models/Test.obj | 50 + .../kitsumedievalcraft/models/TongsEmpty.mtl | 12 + .../kitsumedievalcraft/models/TongsEmpty.obj | 400 ++++ .../models/UntitledBarrel.png | Bin 0 -> 20409 bytes .../models/UntitledBarrelLid.png | Bin 0 -> 20943 bytes .../models/UntitledBarrelSlack1.png | Bin 0 -> 26016 bytes .../models/UntitledBarrelSlack2.png | Bin 0 -> 28250 bytes .../models/UntitledBarrelTan1.png | Bin 0 -> 31343 bytes .../models/UntitledBarrelTan2.png | Bin 0 -> 34359 bytes .../kitsumedievalcraft/models/WaterFilter.obj | 311 +++ .../kitsumedievalcraft/models/WaterFilter.png | Bin 0 -> 4778 bytes .../kitsumedievalcraft/models/cannonTest.mtl | 19 + .../kitsumedievalcraft/models/cannonTest.obj | 281 +++ .../kitsumedievalcraft/models/cannon_ball.mtl | 11 + .../kitsumedievalcraft/models/cannon_ball.obj | 278 +++ .../models/cannon_mount.mtl | 11 + .../models/cannon_mount.obj | 223 ++ .../models/cannon_mount.png | Bin 0 -> 1162 bytes .../models/damascusmodelarrow.png | Bin 0 -> 1974 bytes .../models/emptycookedcrucible.png | Bin 0 -> 1737 bytes .../kitsumedievalcraft/models/ironshield.png | Bin 0 -> 8479 bytes .../models/irontippedmodelarrow.png | Bin 0 -> 1680 bytes .../kitsumedievalcraft/models/modelarrow.png | Bin 0 -> 1984 bytes .../assets/kitsumedievalcraft/models/test.png | Bin 0 -> 5766 bytes .../models/woodenShieldObjectTriangle.obj | 572 +++++ .../models/woodenshield.png | Bin 0 -> 3541 bytes .../assets/kitsumedievalcraft/sounds.json | 12 + .../kitsumedievalcraft/sounds/anvilhammer.ogg | Bin 0 -> 9596 bytes .../sounds/anvilhammerOrig.ogg | Bin 0 -> 10870 bytes .../kitsumedievalcraft/sounds/cannon1.ogg | Bin 0 -> 54501 bytes .../sounds/ironShieldBash.ogg | Bin 0 -> 12469 bytes .../sounds/longbowRelease.ogg | Bin 0 -> 18303 bytes .../kitsumedievalcraft/sounds/sawwood.ogg | Bin 0 -> 28705 bytes .../kitsumedievalcraft/sounds/scrapes1.ogg | Bin 0 -> 12543 bytes .../kitsumedievalcraft/sounds/sounds.json | 9 + .../kitsumedievalcraft/sounds/splitlog.ogg | Bin 0 -> 7119 bytes .../kitsumedievalcraft/sounds/tautBow.ogg | Bin 0 -> 22114 bytes .../sounds/woodshieldbash.ogg | Bin 0 -> 22600 bytes .../textures/blocks/acaciaSplitLogSide.png | Bin 0 -> 424 bytes .../textures/blocks/acaciaSplitLogTop.png | Bin 0 -> 300 bytes .../textures/blocks/birchSplitLogSide.png | Bin 0 -> 452 bytes .../textures/blocks/birchSplitLogTop.png | Bin 0 -> 336 bytes .../textures/blocks/cleanAcaciaSide.png | Bin 0 -> 580 bytes .../textures/blocks/cleanAcaciaTop.png | Bin 0 -> 522 bytes .../textures/blocks/cleanBirchSide.png | Bin 0 -> 646 bytes .../textures/blocks/cleanBirchTop.png | Bin 0 -> 1615 bytes .../textures/blocks/cleanDarkOakSide.png | Bin 0 -> 554 bytes .../textures/blocks/cleanDarkOakTop.png | Bin 0 -> 537 bytes .../textures/blocks/cleanJungleSide.png | Bin 0 -> 542 bytes .../textures/blocks/cleanJungleTop.png | Bin 0 -> 672 bytes .../textures/blocks/cleanOakSide.png | Bin 0 -> 623 bytes .../textures/blocks/cleanOakTop.png | Bin 0 -> 602 bytes .../textures/blocks/cleanSpruceSide.png | Bin 0 -> 564 bytes .../textures/blocks/cleanSpruceTop.png | Bin 0 -> 923 bytes .../textures/blocks/crucibleIronIngot.png | Bin 0 -> 181 bytes .../textures/blocks/crucibleIronOre.png | Bin 0 -> 181 bytes .../textures/blocks/crucibleLapis.png | Bin 0 -> 181 bytes .../textures/blocks/crucibleRedstone.png | Bin 0 -> 181 bytes .../textures/blocks/crucibleWootz.png | Bin 0 -> 181 bytes .../textures/blocks/damascus.png | Bin 0 -> 917 bytes .../textures/blocks/darkSplitLogSide.png | Bin 0 -> 418 bytes .../textures/blocks/darkSplitLogTop.png | Bin 0 -> 298 bytes .../textures/blocks/eggwashbot.png | Bin 0 -> 2728 bytes .../textures/blocks/eggwashbrickside.png | Bin 0 -> 2310 bytes .../textures/blocks/eggwashbricktop.png | Bin 0 -> 2072 bytes .../textures/blocks/eggwashside.png | Bin 0 -> 2728 bytes .../textures/blocks/eggwashtop.png | Bin 0 -> 2656 bytes .../textures/blocks/emptyCookedCrucible.png | Bin 0 -> 181 bytes .../textures/blocks/emptySoftCrucible.png | Bin 0 -> 181 bytes .../textures/blocks/firebox.png | Bin 0 -> 603 bytes .../textures/blocks/fluidFilteredFlowing.png | Bin 0 -> 20396 bytes .../blocks/fluidFilteredFlowing.png.mcmeta | 5 + .../textures/blocks/fluidFilteredStill.png | Bin 0 -> 320 bytes .../blocks/fluidFilteredStill.png.mcmeta | 5 + .../textures/blocks/fluidFlowing.png | Bin 0 -> 170 bytes .../textures/blocks/fluidFlowing.png.mcmeta | 3 + .../textures/blocks/fluidSlackFlowing.png | Bin 0 -> 66443 bytes .../blocks/fluidSlackFlowing.png.mcmeta | 5 + .../textures/blocks/fluidSlackStill.png | Bin 0 -> 662 bytes .../blocks/fluidSlackStill.png.mcmeta | 5 + .../textures/blocks/fluidStill.png | Bin 0 -> 170 bytes .../textures/blocks/fluidStill.png.mcmeta | 5 + .../textures/blocks/fluidTanFlowing.png | Bin 0 -> 21256 bytes .../blocks/fluidTanFlowing.png.mcmeta | 5 + .../textures/blocks/fluidTanStill.png | Bin 0 -> 292 bytes .../textures/blocks/fluidTanStill.png.mcmeta | 5 + .../textures/blocks/forge.png | Bin 0 -> 2656 bytes .../textures/blocks/forgeAnvil.png | Bin 0 -> 39487 bytes .../textures/blocks/formTableSide.png | Bin 0 -> 284 bytes .../textures/blocks/formTableTop.png | Bin 0 -> 418 bytes .../textures/blocks/hotLapisIngot.png | Bin 0 -> 181 bytes .../textures/blocks/hotRedstoneCrucible.png | Bin 0 -> 181 bytes .../textures/blocks/hotRedstoneIngot.png | Bin 0 -> 181 bytes .../textures/blocks/ironPlate.png | Bin 0 -> 182 bytes .../textures/blocks/jungleSplitLogSide.png | Bin 0 -> 394 bytes .../textures/blocks/jungleSplitLogTop.png | Bin 0 -> 328 bytes .../textures/blocks/lapisCrucible.png | Bin 0 -> 181 bytes .../textures/blocks/lapisIngot.png | Bin 0 -> 181 bytes .../textures/blocks/limestoneRawSide.png | Bin 0 -> 2855 bytes .../textures/blocks/limestoneRawTop.png | Bin 0 -> 2855 bytes .../textures/blocks/myDiamond.png | Bin 0 -> 182 bytes .../textures/blocks/myEmerald.png | Bin 0 -> 181 bytes .../textures/blocks/oakSplitLogSide.png | Bin 0 -> 434 bytes .../textures/blocks/oakSplitLogTop.png | Bin 0 -> 313 bytes .../textures/blocks/redstoneIngot.png | Bin 0 -> 181 bytes .../textures/blocks/refinedIngot.png | Bin 0 -> 182 bytes .../textures/blocks/refinedIron.png | Bin 0 -> 711 bytes .../textures/blocks/shelfFour.png | Bin 0 -> 805 bytes .../textures/blocks/shitBlock.png | Bin 0 -> 383 bytes .../textures/blocks/solidFilter.png | Bin 0 -> 580 bytes .../textures/blocks/spruceSplitLogSide.png | Bin 0 -> 421 bytes .../textures/blocks/spruceSplitLogTop.png | Bin 0 -> 298 bytes .../textures/blocks/tempbot.png | Bin 0 -> 603 bytes .../textures/blocks/tempside.png | Bin 0 -> 821 bytes .../textures/blocks/temptop.png | Bin 0 -> 377 bytes .../textures/blocks/waterFilter.png | Bin 0 -> 2855 bytes .../textures/blocks/wootzOre.png | Bin 0 -> 963 bytes .../textures/gui/cannongui.png | Bin 0 -> 19902 bytes .../textures/gui/forgeovengui.png | Bin 0 -> 7071 bytes .../textures/gui/forgeovenguidefault.png | Bin 0 -> 1130 bytes .../textures/gui/formtablegui.png | Bin 0 -> 1049 bytes .../textures/gui/formtableguidefault.png | Bin 0 -> 2009 bytes .../textures/gui/solidfiltergui.png | Bin 0 -> 7071 bytes .../textures/items/ShovelPartIcons.xcf | Bin 0 -> 2349 bytes .../textures/items/axeHeadClayForm.png | Bin 0 -> 228 bytes .../textures/items/battleaxeClayForm.png | Bin 0 -> 232 bytes .../textures/items/brokenStoneSword.png | Bin 0 -> 290 bytes .../textures/items/cannonBarrel.png | Bin 0 -> 239 bytes .../textures/items/cannonBreach.png | Bin 0 -> 293 bytes .../textures/items/charcoalFilter.png | Bin 0 -> 354 bytes .../textures/items/charcoalLeafPellet.png | Bin 0 -> 596 bytes .../textures/items/coarseFilter.png | Bin 0 -> 361 bytes .../textures/items/cookedaxeHeadClayForm.png | Bin 0 -> 239 bytes .../items/cookedbattleaxeClayForm.png | Bin 0 -> 240 bytes .../textures/items/cookeddaggerClayForm.png | Bin 0 -> 173 bytes .../textures/items/cookedhalberdClayForm.png | Bin 0 -> 242 bytes .../textures/items/cookedhoeHeadClayForm.png | Bin 0 -> 199 bytes .../items/cookedlongswordClayForm.png | Bin 0 -> 231 bytes .../textures/items/cookedmaceheadClayForm.png | Bin 0 -> 246 bytes .../textures/items/cookedpickaxeClayForm.png | Bin 0 -> 234 bytes .../textures/items/cookedplateClayForm.png | Bin 0 -> 178 bytes .../textures/items/cookedringClayForm.png | Bin 0 -> 218 bytes .../textures/items/cookedsawbladeClayForm.png | Bin 0 -> 199 bytes .../textures/items/cookedsharptipClayForm.png | Bin 0 -> 172 bytes .../items/cookedshortswordClayForm.png | Bin 0 -> 193 bytes .../items/cookedspadeHeadClayForm.png | Bin 0 -> 186 bytes .../textures/items/cookedspeartipClayForm.png | Bin 0 -> 183 bytes .../items/customHandleIronLumberAxe.png | Bin 0 -> 621 bytes .../textures/items/customHandleIronPick.png | Bin 0 -> 483 bytes .../items/customHandleIronPickCase0.png | Bin 0 -> 479 bytes .../textures/items/customHandleIronShovel.png | Bin 0 -> 448 bytes .../items/customHandleStrongIronLumberAxe.png | Bin 0 -> 621 bytes .../items/customHandleStrongIronPick.png | Bin 0 -> 483 bytes .../items/customHandleStrongIronShovel.png | Bin 0 -> 448 bytes .../textures/items/customIronHoe.png | Bin 0 -> 569 bytes .../textures/items/customIronLumberAxe.png | Bin 0 -> 590 bytes .../textures/items/customIronLumberAxe0.png | Bin 0 -> 603 bytes .../textures/items/customIronLumberAxe1.png | Bin 0 -> 630 bytes .../textures/items/customIronLumberAxe2.png | Bin 0 -> 626 bytes .../textures/items/customIronLumberAxe3.png | Bin 0 -> 620 bytes .../textures/items/customIronPick.png | Bin 0 -> 499 bytes .../textures/items/customIronPick1.png | Bin 0 -> 525 bytes .../textures/items/customIronPick2.png | Bin 0 -> 549 bytes .../textures/items/customIronPick3.png | Bin 0 -> 495 bytes .../textures/items/customIronPick4.png | Bin 0 -> 492 bytes .../textures/items/customIronPickCase0.png | Bin 0 -> 525 bytes .../textures/items/customIronPickCase1.png | Bin 0 -> 537 bytes .../textures/items/customIronPickCase10.png | Bin 0 -> 528 bytes .../textures/items/customIronPickCase11.png | Bin 0 -> 537 bytes .../textures/items/customIronPickCase12.png | Bin 0 -> 531 bytes .../textures/items/customIronPickCase13.png | Bin 0 -> 532 bytes .../textures/items/customIronPickCase14.png | Bin 0 -> 501 bytes .../textures/items/customIronPickCase15.png | Bin 0 -> 534 bytes .../textures/items/customIronPickCase16.png | Bin 0 -> 502 bytes .../textures/items/customIronPickCase17.png | Bin 0 -> 516 bytes .../textures/items/customIronPickCase18.png | Bin 0 -> 516 bytes .../textures/items/customIronPickCase19.png | Bin 0 -> 527 bytes .../textures/items/customIronPickCase2.png | Bin 0 -> 524 bytes .../textures/items/customIronPickCase20.png | Bin 0 -> 516 bytes .../textures/items/customIronPickCase21.png | Bin 0 -> 514 bytes .../textures/items/customIronPickCase22.png | Bin 0 -> 528 bytes .../textures/items/customIronPickCase23.png | Bin 0 -> 515 bytes .../textures/items/customIronPickCase24.png | Bin 0 -> 514 bytes .../textures/items/customIronPickCase25.png | Bin 0 -> 544 bytes .../textures/items/customIronPickCase26.png | Bin 0 -> 525 bytes .../textures/items/customIronPickCase27.png | Bin 0 -> 546 bytes .../textures/items/customIronPickCase28.png | Bin 0 -> 532 bytes .../textures/items/customIronPickCase29.png | Bin 0 -> 539 bytes .../textures/items/customIronPickCase3.png | Bin 0 -> 481 bytes .../textures/items/customIronPickCase30.png | Bin 0 -> 534 bytes .../textures/items/customIronPickCase31.png | Bin 0 -> 518 bytes .../textures/items/customIronPickCase32.png | Bin 0 -> 537 bytes .../textures/items/customIronPickCase33.png | Bin 0 -> 535 bytes .../textures/items/customIronPickCase34.png | Bin 0 -> 519 bytes .../textures/items/customIronPickCase35.png | Bin 0 -> 547 bytes .../textures/items/customIronPickCase36.png | Bin 0 -> 540 bytes .../textures/items/customIronPickCase37.png | Bin 0 -> 552 bytes .../textures/items/customIronPickCase38.png | Bin 0 -> 529 bytes .../textures/items/customIronPickCase39.png | Bin 0 -> 532 bytes .../textures/items/customIronPickCase4.png | Bin 0 -> 529 bytes .../textures/items/customIronPickCase40.png | Bin 0 -> 529 bytes .../textures/items/customIronPickCase41.png | Bin 0 -> 515 bytes .../textures/items/customIronPickCase42.png | Bin 0 -> 503 bytes .../textures/items/customIronPickCase43.png | Bin 0 -> 543 bytes .../textures/items/customIronPickCase44.png | Bin 0 -> 541 bytes .../textures/items/customIronPickCase45.png | Bin 0 -> 521 bytes .../textures/items/customIronPickCase46.png | Bin 0 -> 518 bytes .../textures/items/customIronPickCase47.png | Bin 0 -> 539 bytes .../textures/items/customIronPickCase48.png | Bin 0 -> 516 bytes .../textures/items/customIronPickCase49.png | Bin 0 -> 545 bytes .../textures/items/customIronPickCase5.png | Bin 0 -> 535 bytes .../textures/items/customIronPickCase50.png | Bin 0 -> 505 bytes .../textures/items/customIronPickCase51.png | Bin 0 -> 527 bytes .../textures/items/customIronPickCase52.png | Bin 0 -> 499 bytes .../textures/items/customIronPickCase6.png | Bin 0 -> 512 bytes .../textures/items/customIronPickCase7.png | Bin 0 -> 540 bytes .../textures/items/customIronPickCase8.png | Bin 0 -> 525 bytes .../textures/items/customIronPickCase9.png | Bin 0 -> 515 bytes .../textures/items/customIronShovel.png | Bin 0 -> 438 bytes .../textures/items/customIronShovel0.png | Bin 0 -> 425 bytes .../textures/items/customIronShovel1.png | Bin 0 -> 438 bytes .../textures/items/customIronShovel2.png | Bin 0 -> 457 bytes .../textures/items/customIronShovel3.png | Bin 0 -> 458 bytes .../textures/items/customIronShovelCase0.png | Bin 0 -> 485 bytes .../textures/items/customIronShovelCase00.png | Bin 0 -> 474 bytes .../textures/items/customIronShovelCase1.png | Bin 0 -> 484 bytes .../textures/items/customIronShovelCase10.png | Bin 0 -> 477 bytes .../textures/items/customIronShovelCase11.png | Bin 0 -> 476 bytes .../textures/items/customIronShovelCase12.png | Bin 0 -> 473 bytes .../textures/items/customIronShovelCase13.png | Bin 0 -> 469 bytes .../textures/items/customIronShovelCase14.png | Bin 0 -> 457 bytes .../textures/items/customIronShovelCase15.png | Bin 0 -> 468 bytes .../textures/items/customIronShovelCase16.png | Bin 0 -> 457 bytes .../textures/items/customIronShovelCase17.png | Bin 0 -> 459 bytes .../textures/items/customIronShovelCase18.png | Bin 0 -> 459 bytes .../textures/items/customIronShovelCase19.png | Bin 0 -> 456 bytes .../textures/items/customIronShovelCase2.png | Bin 0 -> 484 bytes .../textures/items/customIronShovelCase20.png | Bin 0 -> 459 bytes .../textures/items/customIronShovelCase21.png | Bin 0 -> 458 bytes .../textures/items/customIronShovelCase22.png | Bin 0 -> 460 bytes .../textures/items/customIronShovelCase23.png | Bin 0 -> 462 bytes .../textures/items/customIronShovelCase24.png | Bin 0 -> 462 bytes .../textures/items/customIronShovelCase25.png | Bin 0 -> 495 bytes .../textures/items/customIronShovelCase26.png | Bin 0 -> 480 bytes .../textures/items/customIronShovelCase27.png | Bin 0 -> 482 bytes .../textures/items/customIronShovelCase28.png | Bin 0 -> 472 bytes .../textures/items/customIronShovelCase29.png | Bin 0 -> 481 bytes .../textures/items/customIronShovelCase3.png | Bin 0 -> 479 bytes .../textures/items/customIronShovelCase30.png | Bin 0 -> 465 bytes .../textures/items/customIronShovelCase31.png | Bin 0 -> 459 bytes .../textures/items/customIronShovelCase32.png | Bin 0 -> 479 bytes .../textures/items/customIronShovelCase33.png | Bin 0 -> 463 bytes .../textures/items/customIronShovelCase34.png | Bin 0 -> 458 bytes .../textures/items/customIronShovelCase35.png | Bin 0 -> 498 bytes .../textures/items/customIronShovelCase36.png | Bin 0 -> 500 bytes .../textures/items/customIronShovelCase37.png | Bin 0 -> 510 bytes .../textures/items/customIronShovelCase38.png | Bin 0 -> 494 bytes .../textures/items/customIronShovelCase39.png | Bin 0 -> 496 bytes .../textures/items/customIronShovelCase4.png | Bin 0 -> 482 bytes .../textures/items/customIronShovelCase40.png | Bin 0 -> 496 bytes .../textures/items/customIronShovelCase41.png | Bin 0 -> 481 bytes .../textures/items/customIronShovelCase42.png | Bin 0 -> 470 bytes .../textures/items/customIronShovelCase43.png | Bin 0 -> 479 bytes .../textures/items/customIronShovelCase44.png | Bin 0 -> 477 bytes .../textures/items/customIronShovelCase45.png | Bin 0 -> 474 bytes .../textures/items/customIronShovelCase46.png | Bin 0 -> 473 bytes .../textures/items/customIronShovelCase47.png | Bin 0 -> 477 bytes .../textures/items/customIronShovelCase48.png | Bin 0 -> 471 bytes .../textures/items/customIronShovelCase49.png | Bin 0 -> 474 bytes .../textures/items/customIronShovelCase5.png | Bin 0 -> 501 bytes .../textures/items/customIronShovelCase50.png | Bin 0 -> 470 bytes .../textures/items/customIronShovelCase51.png | Bin 0 -> 474 bytes .../textures/items/customIronShovelCase52.png | Bin 0 -> 471 bytes .../textures/items/customIronShovelCase6.png | Bin 0 -> 494 bytes .../textures/items/customIronShovelCase7.png | Bin 0 -> 496 bytes .../textures/items/customIronShovelCase8.png | Bin 0 -> 500 bytes .../textures/items/customIronShovelCase9.png | Bin 0 -> 490 bytes .../textures/items/customLumberAxe.png | Bin 0 -> 562 bytes .../items/customStrongIronLumberAxe.png | Bin 0 -> 590 bytes .../textures/items/customStrongIronPick.png | Bin 0 -> 499 bytes .../textures/items/customStrongIronShovel.png | Bin 0 -> 438 bytes .../items/customWeakIronLumberAxe.png | Bin 0 -> 590 bytes .../textures/items/customWeakIronPick.png | Bin 0 -> 499 bytes .../textures/items/customWeakIronShovel.png | Bin 0 -> 438 bytes .../textures/items/cutLeather.png | Bin 0 -> 575 bytes .../textures/items/daggerClayForm.png | Bin 0 -> 173 bytes .../textures/items/efficIronRod.png | Bin 0 -> 133 bytes .../textures/items/efficOneFortuneOne.png | Bin 0 -> 231 bytes .../textures/items/efficOneFortuneOneHead.png | Bin 0 -> 231 bytes .../items/efficOneFortuneOneLumberAxe.png | Bin 0 -> 251 bytes .../items/efficOneFortuneOneSpade.png | Bin 0 -> 197 bytes .../textures/items/efficOneHead.png | Bin 0 -> 220 bytes .../textures/items/efficOneLumberAxe.png | Bin 0 -> 223 bytes .../textures/items/efficOneSpade.png | Bin 0 -> 193 bytes .../textures/items/efficTwoHead.png | Bin 0 -> 227 bytes .../textures/items/efficTwoLumberAxe.png | Bin 0 -> 223 bytes .../textures/items/efficTwoSpade.png | Bin 0 -> 195 bytes .../textures/items/filteredBucket.png | Bin 0 -> 418 bytes .../textures/items/fineFilter.png | Bin 0 -> 359 bytes .../textures/items/finishedLeather.png | Bin 0 -> 762 bytes .../textures/items/fireBow.png | Bin 0 -> 550 bytes .../textures/items/flintKnapped.png | Bin 0 -> 286 bytes .../textures/items/flintSaw.png | Bin 0 -> 952 bytes .../textures/items/forgeHammer.png | Bin 0 -> 474 bytes .../textures/items/fortuneIronRod.png | Bin 0 -> 141 bytes .../textures/items/fortuneOneHead.png | Bin 0 -> 221 bytes .../textures/items/fortuneOneLumberAxe.png | Bin 0 -> 231 bytes .../textures/items/fortuneOneSpade.png | Bin 0 -> 194 bytes .../textures/items/fortuneTwoHead.png | Bin 0 -> 231 bytes .../textures/items/fortuneTwoLumberAxe.png | Bin 0 -> 222 bytes .../textures/items/fortuneTwoSpade.png | Bin 0 -> 198 bytes .../textures/items/fortuneWoodRod.png | Bin 0 -> 141 bytes .../textures/items/halberdClayForm.png | Bin 0 -> 235 bytes .../textures/items/halfSplitBoard.png | Bin 0 -> 493 bytes .../textures/items/heavyMace.png | Bin 0 -> 480 bytes .../textures/items/hoeHeadClayForm.png | Bin 0 -> 197 bytes .../textures/items/hotIronIngot.png | Bin 0 -> 298 bytes .../textures/items/hotIronPlate.png | Bin 0 -> 397 bytes .../textures/items/hotironChunk.png | Bin 0 -> 204 bytes .../textures/items/ironAxeForm.png | Bin 0 -> 223 bytes .../textures/items/ironBattleAxeForm.png | Bin 0 -> 191 bytes .../textures/items/ironBlade.png | Bin 0 -> 297 bytes .../textures/items/ironChunk.png | Bin 0 -> 196 bytes .../textures/items/ironDaggerForm.png | Bin 0 -> 199 bytes .../textures/items/ironHalberdForm.png | Bin 0 -> 209 bytes .../textures/items/ironHandleForm.png | Bin 0 -> 233 bytes .../textures/items/ironHoeForm.png | Bin 0 -> 203 bytes .../textures/items/ironLongswordForm.png | Bin 0 -> 208 bytes .../textures/items/ironMaceHeadForm.png | Bin 0 -> 214 bytes .../textures/items/ironNugget.png | Bin 0 -> 212 bytes .../textures/items/ironPickaxeForm.png | Bin 0 -> 221 bytes .../textures/items/ironRing.png | Bin 0 -> 237 bytes .../textures/items/ironRingForm.png | Bin 0 -> 231 bytes .../textures/items/ironRingMesh.png | Bin 0 -> 289 bytes .../textures/items/ironSaw.png | Bin 0 -> 493 bytes .../textures/items/ironSawBladeForm.png | Bin 0 -> 223 bytes .../textures/items/ironSharpTipForm.png | Bin 0 -> 207 bytes .../textures/items/ironShield.png | Bin 0 -> 175 bytes .../textures/items/ironShortSwordForm.png | Bin 0 -> 216 bytes .../textures/items/ironSpadeForm.png | Bin 0 -> 211 bytes .../textures/items/ironSpearTipForm.png | Bin 0 -> 198 bytes .../textures/items/ironaxeHead.png | Bin 0 -> 205 bytes .../textures/items/ironbattleaxeHead.png | Bin 0 -> 256 bytes .../textures/items/irondaggerBlade.png | Bin 0 -> 153 bytes .../textures/items/ironhalberdHead.png | Bin 0 -> 263 bytes .../textures/items/ironhoeHead.png | Bin 0 -> 187 bytes .../textures/items/ironlongswordBlade.png | Bin 0 -> 237 bytes .../textures/items/ironmaceHead.png | Bin 0 -> 216 bytes .../textures/items/ironpickaxeHead.png | Bin 0 -> 199 bytes .../textures/items/ironsawBlade.png | Bin 0 -> 229 bytes .../textures/items/ironsharpTip.png | Bin 0 -> 159 bytes .../textures/items/ironshortswordBlade.png | Bin 0 -> 217 bytes .../textures/items/ironspadeHead.png | Bin 0 -> 193 bytes .../textures/items/ironspearTip.png | Bin 0 -> 180 bytes .../textures/items/ironsquarePlate.png | Bin 0 -> 134 bytes .../textures/items/ironweaponHandle.png | Bin 0 -> 199 bytes .../textures/items/itemBark.png | Bin 0 -> 723 bytes .../textures/items/itemModelArrow.png | Bin 0 -> 228 bytes .../textures/items/itemShit.png | Bin 0 -> 233 bytes .../textures/items/itemSmallBarrelLid.png | Bin 0 -> 633 bytes .../textures/items/leatherShears.png | Bin 0 -> 413 bytes .../textures/items/leatherStrap.png | Bin 0 -> 347 bytes .../textures/items/leatherString.png | Bin 0 -> 238 bytes .../textures/items/limestoneDust.png | Bin 0 -> 354 bytes .../textures/items/linkedRings.png | Bin 0 -> 244 bytes .../textures/items/longSword.png | Bin 0 -> 492 bytes .../textures/items/longswordClayForm.png | Bin 0 -> 231 bytes .../textures/items/maceheadClayForm.png | Bin 0 -> 247 bytes .../textures/items/mediumFilter.png | Bin 0 -> 358 bytes .../textures/items/pickaxeClayForm.png | Bin 0 -> 198 bytes .../textures/items/plateClayForm.png | Bin 0 -> 178 bytes .../textures/items/quartzDust.png | Bin 0 -> 501 bytes .../textures/items/rawCuredLeather.png | Bin 0 -> 766 bytes .../textures/items/refinedIngot.png | Bin 0 -> 401 bytes .../textures/items/ringClayForm.png | Bin 0 -> 191 bytes .../textures/items/salt.png | Bin 0 -> 330 bytes .../textures/items/saplingRing.png | Bin 0 -> 510 bytes .../textures/items/sawbladeClayForm.png | Bin 0 -> 182 bytes .../textures/items/scuddedLeather.png | Bin 0 -> 761 bytes .../textures/items/sharptipClayForm.png | Bin 0 -> 165 bytes .../textures/items/shortBladePlate.png | Bin 0 -> 1436 bytes .../textures/items/shortIronBlade.png | Bin 0 -> 267 bytes .../textures/items/shortswordClayForm.png | Bin 0 -> 193 bytes .../textures/items/silkTouchIronHead.png | Bin 0 -> 231 bytes .../textures/items/silkTouchIronLumberAxe.png | Bin 0 -> 242 bytes .../textures/items/silkTouchIronSpade.png | Bin 0 -> 199 bytes .../textures/items/slackBucket.png | Bin 0 -> 389 bytes .../textures/items/slackedLeather.png | Bin 0 -> 686 bytes .../textures/items/soakedLeather.png | Bin 0 -> 705 bytes .../textures/items/softsawbladeClayForm.png | Bin 0 -> 198 bytes .../textures/items/spadeHeadClayForm.png | Bin 0 -> 186 bytes .../textures/items/speartipClayForm.png | Bin 0 -> 184 bytes .../textures/items/splitBoard.png | Bin 0 -> 500 bytes .../textures/items/strippedSapling.png | Bin 0 -> 295 bytes .../textures/items/swordPlate.png | Bin 0 -> 394 bytes .../textures/items/tannedLeather.png | Bin 0 -> 799 bytes .../textures/items/tanninBucket.png | Bin 0 -> 417 bytes .../textures/items/tutorialItem.png | Bin 0 -> 329 bytes .../items/unbreakingOneEfficOneHead.png | Bin 0 -> 220 bytes .../items/unbreakingOneEfficOneLumberAxe.png | Bin 0 -> 264 bytes .../items/unbreakingOneEfficOneSpade.png | Bin 0 -> 196 bytes .../items/unbreakingOneFortuneOneHead.png | Bin 0 -> 224 bytes .../unbreakingOneFortuneOneLumberAxe.png | Bin 0 -> 242 bytes .../items/unbreakingOneFortuneOneSpade.png | Bin 0 -> 193 bytes .../textures/items/unbreakingOneHead.png | Bin 0 -> 213 bytes .../textures/items/unbreakingOneLumberAxe.png | Bin 0 -> 237 bytes .../textures/items/unbreakingOneSpade.png | Bin 0 -> 193 bytes .../textures/items/unbreakingTwoHead.png | Bin 0 -> 223 bytes .../textures/items/unbreakingTwoLumberAxe.png | Bin 0 -> 208 bytes .../textures/items/unbreakingTwoSpade.png | Bin 0 -> 187 bytes .../textures/items/unbreakingWoodRod.png | Bin 0 -> 133 bytes .../textures/items/unstrungLongbow.png | Bin 0 -> 1312 bytes .../textures/items/woodPulp.png | Bin 0 -> 416 bytes .../textures/items/woodenPlate.png | Bin 0 -> 617 bytes .../textures/items/woodenShield.png | Bin 0 -> 375 bytes .../textures/items/woodentoolHandle.png | Bin 0 -> 202 bytes .../textures/items/workBlade.png | Bin 0 -> 479 bytes .../textures/items/wovenLeather.png | Bin 0 -> 195 bytes 1-7-10Resources/src/main/resources/mcmod.info | 16 + 842 files changed, 54852 insertions(+) create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/ClientProxy.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/CommonProxy.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/Main.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ModBlocks.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/TestBlock.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/WootzOre.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/cannon/CannonBallBlock28.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/cannon/Cannon_28.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleBase.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleIronIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleIronOre.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleLapis.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleRedstone.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleWootz.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/BoilingWaterCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/EmptyCookedCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/EmptySoftCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/FilledWaterCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/SlackWaterCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/TanWaterCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/decorative/EggWashedBrick.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/decorative/EggWashedWall.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/decorative/LimestoneRaw.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockFilteredWater.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockSlackedLime.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockSmoke.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockTannin.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/DamascusIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/Diamond.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/Emerald.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/IngotBase.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/IronPlate.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/LapisIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/RedstoneIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/RefinedIron.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/Firebox.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/Forge.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/ForgeAnvil.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/SolidFilter.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/TestForge.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/WaterFilter.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/formTable.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/shitBlock.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/ShelfFour.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/SmallBarrel.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/SmallBarrelLid.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanAcacia.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanBirch.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanDarkOak.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanJungle.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanOak.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanSpruce.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/AcaciaSplitLog.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/BirchSplitLog.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/DarkSplitLog.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/JungleSplitLog.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/OakSplitLog.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/SpruceSplitLog.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/compat/FuelHandler.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/compat/ModDict.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerCannon_28.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerFirebox.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerForge.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerForgeAnvil.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerFormTable.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerShelfFour.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerSolidFilter.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerTestForge.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/CraftingHandle.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/ForgeAnvilCrafting.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableCraftManager.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableRecipeSorter.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableShapedRecipes.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableShapelessRecipes.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/ModCrafting.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/TestForgeCrafting.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityCannonBall.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityITSpear.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityModelArrow.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityModelITArrow.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityShit.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityShortLivedShit.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityTester.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/ProjectileCannonBall.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entityAI/EntityAIWaterMob.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/events/BucketHandle.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/events/EventHandle.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiCannon_28.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiForgeAnvil.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiFormTable.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiHandler.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiSolidFilter.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiTestForge.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/FluidBucket.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/ItemClayFormBook.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/ModItems.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/TongsDamageTable.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/FireBow.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/FlintSaw.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/ForgeHammer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/InlayHammer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/IronSaw.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/LeatherShears.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/SlottedTongs.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/WorkBlade.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/filters/CoarseFilter.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/filters/FineFilter.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/filters/MediumFilter.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayAxeForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayBattleAxeForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayDaggerForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayHoeForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayLongswordForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayMaceHeadForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayPickaxeForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayRingForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySawBladeForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySharpTipForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayShortSwordForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySpadeForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySpearTipForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/ClayForms.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronAxeForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronBattleAxeForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronDaggerForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronForms.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronHandleForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronHoeForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronLongswordForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronMaceHeadForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronPickaxeForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronRingForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSawBladeForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSharpTipForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronShortSwordForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSpadeForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSpearTipForm.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/CrucibleLid.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/ItemBark.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/ItemSmallBarrelLid.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/RawCuredLeather.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/throwable/ItemITSpear.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/throwable/ItemShit.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/throwable/ItemTester.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronHoe.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronLumberAxe.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronPick.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronShovel.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemBattleAxe.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemGladius.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemHeavyMace.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemIronShield.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemIronTippedModelArrow.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemLongSword.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemLongbow.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemModelArrow.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemWoodenShield.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgHandleCuredLeatherX.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgHandleCuredLeatherY.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgHandleCuredLeatherZ.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgPacketCuredLeatherX.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgPacketCuredLeatherY.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgPacketCuredLeatherZ.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forge/MsgHandleForge.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forge/MsgPacketForge.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandle.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocX.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocY.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocZ.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacket.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocX.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocY.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocZ.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/sandFilterRender/MsgHandleSandFilterRender.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/sandFilterRender/MsgPacketSandFilterRender.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/shelf/MsgHandleShelfCase.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/shelf/MsgPacketShelfCase.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/player/ExtendedPlayer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/player/MyModClientPlayerBase.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/player/MyModServerPlayerBase.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/RenderId.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/RendererRegistry.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/BarrelLidRender.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/RenderModelArrow.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/RenderModelITArrow.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/RenderModelITSpear.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/SmallBarrelRender.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/TestBlockRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/TestRender.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/cannons/Render_CannonBall_Iron.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/cannons/Render_CannonBall_Iron_Block.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/cannons/Render_Cannon_28.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/crucibles/IronOreCrucibleRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/crucibles/LapisCrucibleRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/crucibles/RedstoneCrucibleRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/crucibles/WootzCrucibleRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/emptycrucibles/BoilCrucibleRender.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/emptycrucibles/ECCrucibleRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/emptycrucibles/SECrucibleRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/emptycrucibles/SlackCrucibleRender.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/emptycrucibles/TanCrucibleRender.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/emptycrucibles/WaterCrucibleRender.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/ingot/DamascusIngotRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/ingot/IronIngotRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/ingot/IronPlateRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/ingot/LapisIngotRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/ingot/MyDiamondRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/ingot/MyEmeraldRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/ingot/RedstoneIngotRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/FireboxRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/ForgeAnvilRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/ForgeRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/FourShelfRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/SolidFilterRender.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/WaterFilterRenderer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/IRITSpear.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/IRIronShieldNOT.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ItemRendererITModelArrow.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ItemRendererLongbow.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ItemRendererModelArrow.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/cannons/IR_CannonBall_28.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/cannons/IR_Cannon_28.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/IRCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/IRSlackCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/IRTanninCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/IRWaterCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/ItemRendererECCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/ItemRendererSECrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/DamascusIngotIR.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/IronIngotIR.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/IronPlateIR.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/LapisIngotIR.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/RedstoneIngotIR.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/longbow/IRLongbow0.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/longbow/IRLongbow1.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/longbow/IRLongbow10.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/ForgeIR.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRBarrelLid.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRFirebox.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRForgeAnvil.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRShelfFour.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRSmallBarrel.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRSolidFilter.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRWaterFilter.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRSlottedTongs.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsCoolLapisIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsCoolPlate.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsCoolRedstoneIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsDCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotDamascus.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotIron.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotLapisIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotPlate.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsICrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsLapisCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsMyDamascusIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsMyIronIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsRedCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsRedIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/ItemRendererEmptyStoneTongs.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRCraftingBlade.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRForgeHammer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRInlayHammer.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRironPicks.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/IRBattleAxe.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/IRGladius.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderHeavymace.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderIronShield.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderLongsword.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderWoodenShield.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/NewIronShield.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntRegister.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntitySmallBarrel.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntitySmallLid.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntityTestBlock.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/cannon/TileCannonBall28.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/cannon/TileCannon_28.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleBase.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleIronOre.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleLapis.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleRedstone.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleWootz.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityBoilingWaterCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityEmptyCookedCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityFilledWaterCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntitySlackWaterCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntitySoftEmptyCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityTanWaterCrucible.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileDamascus.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileEntityMyDiamond.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileEntityMyEmerald.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileIngotBase.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileIronPlate.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileLapisIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileMyIronIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileRedstoneIngot.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityAnvilForge.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityFirebox.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityShelfFour.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntitySolidFilter.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityTestForge.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityWaterFilter.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileForge.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/AnvilUtil.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/CannonUtil.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/CustomTab.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/IRTextureModel.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/InlayTables.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/SandFilterTexture.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/ShieldSwitchTable.java create mode 100644 1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/TileForgePlaceables.java create mode 100644 1-7-10Resources/src/main/resources/License.txt create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/lang/en_US.lang create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelFinished.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelFinished.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelFinishedLid.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid.mtl create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid0.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid1.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid2.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid3.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid4.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid5.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid6.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid7.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid8.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLidRing.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Battleaxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Battleaxe1.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Battleaxev3.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Cannon.mtl create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Cannon.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Cannon.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CannonBall.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanAcaciaLog.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanBirchLog.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanDarkOakLog.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanJungleLog.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanLog.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanOakLog.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanSpruceLog.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CoolCrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CraftingBlade.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CraftingBlade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Crucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CrucibleModel.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/DamascusIngot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Diamond.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Diamond.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Emerald.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Emerald.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/EmptyCrucible.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/EmptySlackCrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/EmptyTanninCrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/EmptyUncookedCrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/EmptyWaterCrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Firebox.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/FireboxUV.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Forge.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Forge.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ForgeAnvil.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ForgeAnvil.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ForgeHammer.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ForgeHammer.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Gladius.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Gladius.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Heavymace.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Heavymace.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/HotCrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/HotDamascusCrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/HotDamascusIngot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/HotIronIngotBlock.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/HotIronPlate.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/InlayHammer.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/InlayHammer.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronIngotBlock.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronIngotBlock.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronPlate.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronPlate.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronShield.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow0.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow1.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow10.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow2.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow3.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow4.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow5.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow6.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow7.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow8.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow9.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/LongbowRig.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longsword.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longsword.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ModelArrow.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ModelArrow3.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/MyHotLapisBlock.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/MyHotRedstoneBlock.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/MyLapisBlock.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/MyRedstoneBlock.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewBarrel.mtl create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewBarrel.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewIronShield.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewIronShield.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/SandFilter.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/SandFilter.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/SandFilterEmpty.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Shelf.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ShelfMini.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ShelfMini16.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ShelfMini32.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/SingleForge.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/SingleForge.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/SingleForgeBurning.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/SingleForgeOn.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Spear.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Spear.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/StoneTongs.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/StoneTongsCrucible.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/StoneTongsCrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/StoneTongsIngot.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/StoneTongsIngot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Test.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/TongsEmpty.mtl create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/TongsEmpty.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/UntitledBarrel.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/UntitledBarrelLid.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/UntitledBarrelSlack1.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/UntitledBarrelSlack2.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/UntitledBarrelTan1.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/UntitledBarrelTan2.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/WaterFilter.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/WaterFilter.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/cannonTest.mtl create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/cannonTest.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/cannon_ball.mtl create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/cannon_ball.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/cannon_mount.mtl create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/cannon_mount.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/cannon_mount.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/damascusmodelarrow.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/emptycookedcrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ironshield.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/irontippedmodelarrow.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/modelarrow.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/test.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/woodenShieldObjectTriangle.obj create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/woodenshield.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds.json create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/anvilhammer.ogg create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/anvilhammerOrig.ogg create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/cannon1.ogg create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/ironShieldBash.ogg create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/longbowRelease.ogg create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/sawwood.ogg create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/scrapes1.ogg create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/sounds.json create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/splitlog.ogg create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/tautBow.ogg create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/woodshieldbash.ogg create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/acaciaSplitLogSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/acaciaSplitLogTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/birchSplitLogSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/birchSplitLogTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanAcaciaSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanAcaciaTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanBirchSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanBirchTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanDarkOakSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanDarkOakTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanJungleSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanJungleTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanOakSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanOakTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanSpruceSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanSpruceTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/crucibleIronIngot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/crucibleIronOre.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/crucibleLapis.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/crucibleRedstone.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/crucibleWootz.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/damascus.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/darkSplitLogSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/darkSplitLogTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/eggwashbot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/eggwashbrickside.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/eggwashbricktop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/eggwashside.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/eggwashtop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/emptyCookedCrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/emptySoftCrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/firebox.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidFilteredFlowing.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidFilteredFlowing.png.mcmeta create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidFilteredStill.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidFilteredStill.png.mcmeta create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidFlowing.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidFlowing.png.mcmeta create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidSlackFlowing.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidSlackFlowing.png.mcmeta create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidSlackStill.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidSlackStill.png.mcmeta create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidStill.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidStill.png.mcmeta create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidTanFlowing.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidTanFlowing.png.mcmeta create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidTanStill.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidTanStill.png.mcmeta create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/forge.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/forgeAnvil.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/formTableSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/formTableTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/hotLapisIngot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/hotRedstoneCrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/hotRedstoneIngot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/ironPlate.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/jungleSplitLogSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/jungleSplitLogTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/lapisCrucible.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/lapisIngot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/limestoneRawSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/limestoneRawTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/myDiamond.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/myEmerald.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/oakSplitLogSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/oakSplitLogTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/redstoneIngot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/refinedIngot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/refinedIron.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/shelfFour.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/shitBlock.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/solidFilter.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/spruceSplitLogSide.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/spruceSplitLogTop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/tempbot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/tempside.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/temptop.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/waterFilter.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/wootzOre.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/gui/cannongui.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/gui/forgeovengui.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/gui/forgeovenguidefault.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/gui/formtablegui.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/gui/formtableguidefault.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/gui/solidfiltergui.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ShovelPartIcons.xcf create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/axeHeadClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/battleaxeClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/brokenStoneSword.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cannonBarrel.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cannonBreach.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/charcoalFilter.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/charcoalLeafPellet.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/coarseFilter.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedaxeHeadClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedbattleaxeClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookeddaggerClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedhalberdClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedhoeHeadClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedlongswordClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedmaceheadClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedpickaxeClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedplateClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedringClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedsawbladeClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedsharptipClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedshortswordClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedspadeHeadClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedspeartipClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleIronLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleIronPick.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleIronPickCase0.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleIronShovel.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleStrongIronLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleStrongIronPick.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleStrongIronShovel.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronHoe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronLumberAxe0.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronLumberAxe1.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronLumberAxe2.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronLumberAxe3.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPick.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPick1.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPick2.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPick3.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPick4.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase0.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase1.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase10.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase11.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase12.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase13.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase14.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase15.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase16.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase17.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase18.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase19.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase2.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase20.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase21.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase22.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase23.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase24.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase25.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase26.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase27.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase28.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase29.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase3.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase30.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase31.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase32.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase33.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase34.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase35.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase36.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase37.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase38.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase39.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase4.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase40.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase41.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase42.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase43.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase44.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase45.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase46.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase47.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase48.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase49.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase5.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase50.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase51.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase52.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase6.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase7.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase8.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase9.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovel.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovel0.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovel1.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovel2.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovel3.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase0.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase00.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase1.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase10.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase11.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase12.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase13.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase14.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase15.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase16.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase17.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase18.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase19.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase2.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase20.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase21.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase22.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase23.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase24.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase25.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase26.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase27.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase28.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase29.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase3.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase30.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase31.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase32.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase33.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase34.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase35.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase36.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase37.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase38.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase39.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase4.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase40.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase41.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase42.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase43.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase44.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase45.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase46.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase47.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase48.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase49.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase5.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase50.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase51.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase52.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase6.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase7.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase8.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase9.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customStrongIronLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customStrongIronPick.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customStrongIronShovel.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customWeakIronLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customWeakIronPick.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customWeakIronShovel.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cutLeather.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/daggerClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficIronRod.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneFortuneOne.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneFortuneOneHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneFortuneOneLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneFortuneOneSpade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneSpade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficTwoHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficTwoLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficTwoSpade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/filteredBucket.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fineFilter.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/finishedLeather.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fireBow.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/flintKnapped.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/flintSaw.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/forgeHammer.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneIronRod.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneOneHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneOneLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneOneSpade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneTwoHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneTwoLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneTwoSpade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneWoodRod.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/halberdClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/halfSplitBoard.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/heavyMace.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/hoeHeadClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/hotIronIngot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/hotIronPlate.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/hotironChunk.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironAxeForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironBattleAxeForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironBlade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironChunk.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironDaggerForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironHalberdForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironHandleForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironHoeForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironLongswordForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironMaceHeadForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironNugget.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironPickaxeForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironRing.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironRingForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironRingMesh.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironSaw.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironSawBladeForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironSharpTipForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironShield.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironShortSwordForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironSpadeForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironSpearTipForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironaxeHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironbattleaxeHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/irondaggerBlade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironhalberdHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironhoeHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironlongswordBlade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironmaceHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironpickaxeHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironsawBlade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironsharpTip.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironshortswordBlade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironspadeHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironspearTip.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironsquarePlate.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironweaponHandle.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/itemBark.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/itemModelArrow.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/itemShit.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/itemSmallBarrelLid.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/leatherShears.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/leatherStrap.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/leatherString.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/limestoneDust.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/linkedRings.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/longSword.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/longswordClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/maceheadClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/mediumFilter.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/pickaxeClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/plateClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/quartzDust.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/rawCuredLeather.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/refinedIngot.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ringClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/salt.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/saplingRing.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/sawbladeClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/scuddedLeather.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/sharptipClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/shortBladePlate.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/shortIronBlade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/shortswordClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/silkTouchIronHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/silkTouchIronLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/silkTouchIronSpade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/slackBucket.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/slackedLeather.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/soakedLeather.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/softsawbladeClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/spadeHeadClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/speartipClayForm.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/splitBoard.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/strippedSapling.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/swordPlate.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/tannedLeather.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/tanninBucket.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/tutorialItem.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneEfficOneHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneEfficOneLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneEfficOneSpade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneFortuneOneHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneFortuneOneLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneFortuneOneSpade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneSpade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingTwoHead.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingTwoLumberAxe.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingTwoSpade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingWoodRod.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unstrungLongbow.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/woodPulp.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/woodenPlate.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/woodenShield.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/woodentoolHandle.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/workBlade.png create mode 100644 1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/wovenLeather.png create mode 100644 1-7-10Resources/src/main/resources/mcmod.info diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/ClientProxy.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/ClientProxy.java new file mode 100644 index 00000000..17447768 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/ClientProxy.java @@ -0,0 +1,58 @@ +package com.kitsu.medievalcraft; + +import com.kitsu.medievalcraft.entity.EntityCannonBall; +import com.kitsu.medievalcraft.entity.EntityITSpear; +import com.kitsu.medievalcraft.entity.EntityModelArrow; +import com.kitsu.medievalcraft.entity.EntityModelITArrow; +import com.kitsu.medievalcraft.entity.EntityShit; +import com.kitsu.medievalcraft.entity.EntityTester; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.renderer.RendererRegistry; +import com.kitsu.medievalcraft.renderer.blocks.RenderModelArrow; +import com.kitsu.medievalcraft.renderer.blocks.RenderModelITArrow; +import com.kitsu.medievalcraft.renderer.blocks.RenderModelITSpear; +import com.kitsu.medievalcraft.renderer.blocks.cannons.Render_CannonBall_Iron; + +import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.client.renderer.entity.RenderSnowball; +import net.minecraft.world.World; + +public class ClientProxy extends CommonProxy { + + @Override + public void registerRenderer() { + RenderingRegistry.registerEntityRenderingHandler(EntityShit.class, new RenderSnowball(ModItems.itemShit)); + RenderingRegistry.registerEntityRenderingHandler(EntityTester.class, new RenderSnowball(ModItems.itemTester)); + RenderingRegistry.registerEntityRenderingHandler(EntityModelArrow.class, new RenderModelArrow()); + RenderingRegistry.registerEntityRenderingHandler(EntityModelITArrow.class, new RenderModelITArrow()); + RenderingRegistry.registerEntityRenderingHandler(EntityITSpear.class, new RenderModelITSpear()); + RenderingRegistry.registerEntityRenderingHandler(EntityCannonBall.class, new Render_CannonBall_Iron()); + //RenderingRegistry.registerEntityRenderingHandler(ProjectileCannonBall.class, new Render_CannonBall_Projectile()); + } + + @Override + public void registerItemRenderers() { + + RenderId.init(); + RendererRegistry.init(); + } + + @Override + public void registerSounds() { + //MinecraftForge.EVENT_BUS.register(new ModSounds());//register the sound event handling class + } + + + @Override + public Object getClient() { + return FMLClientHandler.instance().getClient(); + } + + @Override + public World getClientWorld() { + return FMLClientHandler.instance().getClient().theWorld; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/CommonProxy.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/CommonProxy.java new file mode 100644 index 00000000..64270261 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/CommonProxy.java @@ -0,0 +1,47 @@ +package com.kitsu.medievalcraft; + +import net.minecraft.world.World; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; + + +public class CommonProxy { + + public void registerRenderer() { + + } + + public void registerItemRenderers() { + + } + + public void registerSounds() { + + } + + + public Object getClient() { + return null; + } + + + public World getClientWorld() { + return null; + } + + public void preInit(FMLPreInitializationEvent e) { + //ModItems.init(); + //ModBlocks.init(); + //ModCrafting.init(); + } + + public void init(FMLInitializationEvent e) { + + } + + public void postInit(FMLPostInitializationEvent e) { + + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/Main.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/Main.java new file mode 100644 index 00000000..b8853116 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/Main.java @@ -0,0 +1,149 @@ +package com.kitsu.medievalcraft; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.compat.FuelHandler; +import com.kitsu.medievalcraft.compat.ModDict; +import com.kitsu.medievalcraft.crafting.CraftingHandle; +import com.kitsu.medievalcraft.crafting.ModCrafting; +import com.kitsu.medievalcraft.entity.EntityCannonBall; +import com.kitsu.medievalcraft.entity.EntityITSpear; +import com.kitsu.medievalcraft.entity.EntityModelArrow; +import com.kitsu.medievalcraft.entity.EntityModelITArrow; +import com.kitsu.medievalcraft.entity.EntityShit; +import com.kitsu.medievalcraft.entity.EntityShortLivedShit; +import com.kitsu.medievalcraft.entity.EntityTester; +import com.kitsu.medievalcraft.events.BucketHandle; +import com.kitsu.medievalcraft.events.EventHandle; +import com.kitsu.medievalcraft.gui.GuiHandler; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.packethandle.curedLeather.MsgHandleCuredLeatherX; +import com.kitsu.medievalcraft.packethandle.curedLeather.MsgHandleCuredLeatherY; +import com.kitsu.medievalcraft.packethandle.curedLeather.MsgHandleCuredLeatherZ; +import com.kitsu.medievalcraft.packethandle.curedLeather.MsgPacketCuredLeatherX; +import com.kitsu.medievalcraft.packethandle.curedLeather.MsgPacketCuredLeatherY; +import com.kitsu.medievalcraft.packethandle.curedLeather.MsgPacketCuredLeatherZ; +import com.kitsu.medievalcraft.packethandle.forge.MsgHandleForge; +import com.kitsu.medievalcraft.packethandle.forge.MsgPacketForge; +import com.kitsu.medievalcraft.packethandle.forgeHammerParticles.MsgHandle; +import com.kitsu.medievalcraft.packethandle.forgeHammerParticles.MsgHandleLocX; +import com.kitsu.medievalcraft.packethandle.forgeHammerParticles.MsgHandleLocY; +import com.kitsu.medievalcraft.packethandle.forgeHammerParticles.MsgHandleLocZ; +import com.kitsu.medievalcraft.packethandle.forgeHammerParticles.MsgPacket; +import com.kitsu.medievalcraft.packethandle.forgeHammerParticles.MsgPacketLocX; +import com.kitsu.medievalcraft.packethandle.forgeHammerParticles.MsgPacketLocY; +import com.kitsu.medievalcraft.packethandle.forgeHammerParticles.MsgPacketLocZ; +import com.kitsu.medievalcraft.packethandle.sandFilterRender.MsgHandleSandFilterRender; +import com.kitsu.medievalcraft.packethandle.sandFilterRender.MsgPacketSandFilterRender; +import com.kitsu.medievalcraft.packethandle.shelf.MsgHandleShelfCase; +import com.kitsu.medievalcraft.packethandle.shelf.MsgPacketShelfCase; +import com.kitsu.medievalcraft.tileents.TileEntRegister; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.Mod.Instance; +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.network.NetworkRegistry; +import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; +import cpw.mods.fml.common.registry.EntityRegistry; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import net.minecraftforge.common.MinecraftForge; + +@Mod(modid = Main.MODID, name = Main.MODNAME, version = Main.VERSION) +public class Main { + + public static final String MODID = "kitsumedievalcraft"; + public static final String MODNAME = "ForgeCraft"; + public static final String VERSION = "2.4.1"; + + public static SimpleNetworkWrapper sNet; + + @Instance + public static Main instance = new Main(); + + @SidedProxy(clientSide="com.kitsu.medievalcraft.ClientProxy", serverSide="com.kitsu.medievalcraft.CommonProxy") + public static CommonProxy proxy; + + /** + * Run before anything else. Read your config, create blocks, items, etc, and + * register them with the GameRegistry. + */ + + @Mod.EventHandler + public void preInit(FMLPreInitializationEvent e) { + this.proxy.preInit(e); + + sNet = NetworkRegistry.INSTANCE.newSimpleChannel(MODID); + sNet.registerMessage(MsgHandle.class, MsgPacket.class, 1, Side.CLIENT); + sNet.registerMessage(MsgHandleLocX.class, MsgPacketLocX.class, 2, Side.CLIENT); + sNet.registerMessage(MsgHandleLocY.class, MsgPacketLocY.class, 3, Side.CLIENT); + sNet.registerMessage(MsgHandleLocZ.class, MsgPacketLocZ.class, 4, Side.CLIENT); + sNet.registerMessage(MsgHandleSandFilterRender.class, MsgPacketSandFilterRender.class, 5, Side.CLIENT); + sNet.registerMessage(MsgHandleCuredLeatherX.class, MsgPacketCuredLeatherX.class, 6, Side.SERVER); + sNet.registerMessage(MsgHandleCuredLeatherY.class, MsgPacketCuredLeatherY.class, 7, Side.SERVER); + sNet.registerMessage(MsgHandleCuredLeatherZ.class, MsgPacketCuredLeatherZ.class, 8, Side.SERVER); + sNet.registerMessage(MsgHandleShelfCase.class, MsgPacketShelfCase.class, 9, Side.SERVER); + sNet.registerMessage(MsgHandleForge.class, MsgPacketForge.class, 10, Side.SERVER); + //sNet.registerMessage(MsgHandleCannon.class, MsgPacketCannon.class, 11, Side.CLIENT); + //sNet.registerMessage(MsgHandleCannon.class, MsgPacketCannon.class, 12, Side.SERVER); + //sNet.registerMessage(MsgHandleCannonX.class, MsgPacketCannonX.class, 12, Side.CLIENT); + //sNet.registerMessage(MsgHandleCannonY.class, MsgPacketCannonY.class, 13, Side.CLIENT); + //sNet.registerMessage(MsgHandleCannonZ.class, MsgPacketCannonZ.class, 14, Side.CLIENT); + + CustomTab.MedievalTab(); + ModBlocks.init(); + ModItems.init(); + ModCrafting.init(); + NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler()); + } + + @Mod.EventHandler + public void init(FMLInitializationEvent e) { + + this.proxy.init(e); + + FMLCommonHandler.instance().bus().register(new CraftingHandle()); + FMLCommonHandler.instance().bus().register(new EventHandle()); + + MinecraftForge.EVENT_BUS.register(BucketHandle.INSTANCE); + MinecraftForge.EVENT_BUS.register(new EventHandle()); + MinecraftForge.EVENT_BUS.register(new CraftingHandle()); + + BucketHandle.INSTANCE.buckets.put(ModBlocks.blockFilteredWater, ModItems.filteredBucket); + BucketHandle.INSTANCE.buckets.put(ModBlocks.blockTannin, ModItems.tanninBucket); + BucketHandle.INSTANCE.buckets.put(ModBlocks.blockSlackedLime, ModItems.slackBucket); + + EntityRegistry.registerModEntity(EntityShit.class, "itemShit", 1, this, 64, 10, true); + EntityRegistry.registerModEntity(EntityModelArrow.class, "itemModelArrow", 2, this, 64, 10, true); + EntityRegistry.registerModEntity(EntityModelITArrow.class, "itemIronTippedModelArrow", 3, this, 64, 10, true); + EntityRegistry.registerModEntity(EntityITSpear.class, "itemITSpear", 4, this, 64, 10, true); + EntityRegistry.registerModEntity(EntityTester.class, "itemTester", 5, this, 64, 10, true); + EntityRegistry.registerModEntity(EntityShortLivedShit.class, "itemShit", 6, this, 64, 10, true); + EntityRegistry.registerModEntity(EntityCannonBall.class, "cannonBall", 7, this, 64, 10, true); + //EntityRegistry.registerModEntity(ProjectileCannonBall.class, "cannonBallProjectile", 8, this, 64, 10, true); + + GameRegistry.registerFuelHandler(new FuelHandler()); + + TileEntRegister.init(); + + } + + /** + * Handle interaction with other mods, complete your setup based on this. + */ + @EventHandler + public void postInit(FMLPostInitializationEvent e) { + this.proxy.postInit(e); + this.proxy.registerRenderer(); + this.proxy.registerItemRenderers(); + this.proxy.registerSounds(); + ModDict.RegisterOres(); + System.out.println("U want some Body Massage?"); + //RenderingRegistry.registerEntityRenderingHandler(EntityShit.class, new RenderSnowball(ModItems.itemShit)); + } +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ModBlocks.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ModBlocks.java new file mode 100644 index 00000000..fb6cd014 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ModBlocks.java @@ -0,0 +1,260 @@ +package com.kitsu.medievalcraft.block; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.cannon.CannonBallBlock28; +import com.kitsu.medievalcraft.block.cannon.Cannon_28; +import com.kitsu.medievalcraft.block.crucible.CrucibleIronIngot; +import com.kitsu.medievalcraft.block.crucible.CrucibleIronOre; +import com.kitsu.medievalcraft.block.crucible.CrucibleLapis; +import com.kitsu.medievalcraft.block.crucible.CrucibleRedstone; +import com.kitsu.medievalcraft.block.crucible.CrucibleWootz; +import com.kitsu.medievalcraft.block.crucible.empty.BoilingWaterCrucible; +import com.kitsu.medievalcraft.block.crucible.empty.EmptyCookedCrucible; +import com.kitsu.medievalcraft.block.crucible.empty.EmptySoftCrucible; +import com.kitsu.medievalcraft.block.crucible.empty.FilledWaterCrucible; +import com.kitsu.medievalcraft.block.crucible.empty.SlackWaterCrucible; +import com.kitsu.medievalcraft.block.crucible.empty.TanWaterCrucible; +import com.kitsu.medievalcraft.block.decorative.EggWashedBrick; +import com.kitsu.medievalcraft.block.decorative.EggWashedWall; +import com.kitsu.medievalcraft.block.decorative.LimestoneRaw; +import com.kitsu.medievalcraft.block.fluid.BlockFilteredWater; +import com.kitsu.medievalcraft.block.fluid.BlockSlackedLime; +import com.kitsu.medievalcraft.block.fluid.BlockSmoke; +import com.kitsu.medievalcraft.block.fluid.BlockTannin; +import com.kitsu.medievalcraft.block.ingots.DamascusIngot; +import com.kitsu.medievalcraft.block.ingots.Diamond; +import com.kitsu.medievalcraft.block.ingots.Emerald; +import com.kitsu.medievalcraft.block.ingots.IronPlate; +import com.kitsu.medievalcraft.block.ingots.LapisIngot; +import com.kitsu.medievalcraft.block.ingots.RedstoneIngot; +import com.kitsu.medievalcraft.block.ingots.RefinedIron; +import com.kitsu.medievalcraft.block.machines.Firebox; +import com.kitsu.medievalcraft.block.machines.Forge; +import com.kitsu.medievalcraft.block.machines.ForgeAnvil; +import com.kitsu.medievalcraft.block.machines.SolidFilter; +import com.kitsu.medievalcraft.block.machines.TestForge; +import com.kitsu.medievalcraft.block.machines.WaterFilter; +import com.kitsu.medievalcraft.block.machines.formTable; +import com.kitsu.medievalcraft.block.wood.ShelfFour; +import com.kitsu.medievalcraft.block.wood.SmallBarrel; +import com.kitsu.medievalcraft.block.wood.SmallBarrelLid; +import com.kitsu.medievalcraft.block.wood.clean.CleanAcacia; +import com.kitsu.medievalcraft.block.wood.clean.CleanBirch; +import com.kitsu.medievalcraft.block.wood.clean.CleanDarkOak; +import com.kitsu.medievalcraft.block.wood.clean.CleanJungle; +import com.kitsu.medievalcraft.block.wood.clean.CleanOak; +import com.kitsu.medievalcraft.block.wood.clean.CleanSpruce; +import com.kitsu.medievalcraft.block.wood.quartersplit.AcaciaSplitLog; +import com.kitsu.medievalcraft.block.wood.quartersplit.BirchSplitLog; +import com.kitsu.medievalcraft.block.wood.quartersplit.DarkSplitLog; +import com.kitsu.medievalcraft.block.wood.quartersplit.JungleSplitLog; +import com.kitsu.medievalcraft.block.wood.quartersplit.OakSplitLog; +import com.kitsu.medievalcraft.block.wood.quartersplit.SpruceSplitLog; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class ModBlocks { + + + //NEW INGOTS + public static Block refinedIron; + public static Block damascus; + public static Block ironPlate; + public static Block redstoneIngot; + public static Block lapisIngot; + + //NEW CRUCIBLES + public static Block testBlock; + public static Block crucibleIronOre; + public static Block crucibleIronIngot; + public static Block crucibleWootz; + public static Block crucibleLapis; + public static Block crucibleRedstone; + + //AESTHETIC + public static Block shitblock; + public static Block eggWashedWall; + public static Block eggWashedBrick; + public static Block wootzOre; + public static Block limestoneRaw; + + //LIQUIDS + public static Block blockSmoke; + public static Block blockFilteredWater; + public static Fluid fluidFiltered; + public static Block blockTannin; + public static Fluid fluidTan; + public static Block blockSlackedLime; + public static Fluid fluidSlackedLime; + + //WOODEN BLOCKS + public static Block cleanOak; + public static Block cleanAcacia; + public static Block cleanJungle; + public static Block cleanSpruce; + public static Block cleanBirch; + public static Block cleanDarkOak; + //SPLIT LOGS + public static Block acaciaSplitLog; + public static Block birchSplitLog; + public static Block darkSplitLog; + public static Block jungleSplitLog; + public static Block oakSplitLog; + public static Block spruceSplitLog; + public static Block smallBarrelLid; + public static Block smallBarrel; + + //MACHINES + public static Block formtable; + //public static Block newForge; + //public static Block testForge; + public static Block forgeAnvil; + public static Block waterFilter; + public static Block shelfFour; + public static Block firebox; + public static Block solidFilter; + public static Block forge; + + //CANNONS + public static Block cannon_28; + public static Block cannonBall_28; + + //GEMS + public static Block myDiamond, myEmerald; + //IRON INGOTS + //public static Block myIronIngot, hotIronBlock; + //IRON PLATES + //public static Block ironPlate, hotIronPlate; + //DAMASCUS INGOTS + //public static Block damascusIngot, hotDamascusIngot; + //LAPIS INGOTS + //public static Block lapisIngot, hotLapisIngot; + //REDSTONE INGOTS + //public static Block redstoneIngot, hotRedstoneIngot; + + //Empty Crucible Soft --> Cooked + public static Block emptySoftCrucible; + public static Block emptyCookedCrucible; + public static Block filledWaterCrucible; + public static Block boilingWaterCrucible; + public static Block tanWaterCrucible; + public static Block slackWaterCrucible; + + public static final void init() { + + GameRegistry.registerBlock(testBlock = new TestBlock("testBlock", Material.rock), "testBlock"); + + Fluid fluidSmoke = new Fluid("blocksmoke").setDensity(-1000).setTemperature(310).setGaseous(true).setBlock(blockSmoke).setViscosity(0); + FluidRegistry.registerFluid(fluidSmoke); + blockSmoke = new BlockSmoke(fluidSmoke, Material.water).setBlockName("blockSmoke"); + GameRegistry.registerBlock(blockSmoke, Main.MODID + "_" + blockSmoke.getUnlocalizedName().substring(5)); + fluidSmoke.setUnlocalizedName(blockSmoke.getUnlocalizedName()); + + fluidFiltered = new Fluid("blockFilteredWater").setDensity(1000).setTemperature(295).setGaseous(false).setBlock(blockFilteredWater).setViscosity(1000); + FluidRegistry.registerFluid(fluidFiltered); + blockFilteredWater = new BlockFilteredWater(fluidFiltered, Material.water).setBlockName("blockFilteredWater"); + GameRegistry.registerBlock(blockFilteredWater, Main.MODID + "_" + blockFilteredWater.getUnlocalizedName().substring(5)); + fluidFiltered.setUnlocalizedName(blockFilteredWater.getUnlocalizedName()); + + fluidTan = new Fluid("blockTannin").setDensity(1000).setTemperature(295).setGaseous(false).setBlock(blockTannin).setViscosity(1000); + FluidRegistry.registerFluid(fluidTan); + blockTannin = new BlockTannin(fluidTan, Material.water).setBlockName("blockTannin"); + GameRegistry.registerBlock(blockTannin, Main.MODID + "_" + blockTannin.getUnlocalizedName().substring(5)); + fluidTan.setUnlocalizedName(blockTannin.getUnlocalizedName()); + + fluidSlackedLime = new Fluid("blockSlackedLime").setGaseous(false).setBlock(blockSlackedLime).setViscosity(2000).setDensity(1500).setTemperature(400); + FluidRegistry.registerFluid(fluidSlackedLime); + blockSlackedLime = new BlockSlackedLime(fluidSlackedLime, Material.water).setBlockName("blockSlackedLime"); + GameRegistry.registerBlock(blockSlackedLime, Main.MODID + "_" + blockSlackedLime.getUnlocalizedName().substring(5)); + fluidSlackedLime.setUnlocalizedName(blockSlackedLime.getUnlocalizedName()); + + GameRegistry.registerBlock(limestoneRaw = new LimestoneRaw("limestoneRaw", Material.rock), "limestoneRaw"); + GameRegistry.registerBlock(shitblock = new shitBlock("shitBlock", Material.clay), "shitBlock"); + GameRegistry.registerBlock(eggWashedWall = new EggWashedWall("eggWashedWall", Material.rock), "eggWashedWall"); + GameRegistry.registerBlock(eggWashedBrick = new EggWashedBrick("eggWashedBrick", Material.rock), "eggWashedBrick"); + GameRegistry.registerBlock(wootzOre = new WootzOre("wootzOre", Material.rock), "wootzOre"); + + GameRegistry.registerBlock(formtable = new formTable("formTable", Material.wood), "formTable"); + //GameRegistry.registerBlock(testForge = new TestForge("TestForge", Material.iron), "TestForge"); + GameRegistry.registerBlock(forgeAnvil = new ForgeAnvil("forgeAnvil", Material.iron), "forgeAnvil"); + GameRegistry.registerBlock(waterFilter = new WaterFilter("waterFilter", Material.iron), "waterFilter"); + //GameRegistry.registerBlock(sandFilter = new SandFilter("sandFilter", Material.wood), "sandFilter"); + //GameRegistry.registerBlock(sandFilterEmpty = new SandFilterEmpty("sandFilterEmpty", Material.wood), "sandFilterEmpty"); + GameRegistry.registerBlock(solidFilter = new SolidFilter("solidFilter", Material.wood), "solidFilter"); + GameRegistry.registerBlock(shelfFour = new ShelfFour("shelfFour", Material.wood), "shelfFour"); + GameRegistry.registerBlock(firebox = new Firebox("firebox", Material.rock), "firebox"); + GameRegistry.registerBlock(forge = new Forge("forge", Material.rock), "forge"); + + GameRegistry.registerBlock(cannon_28 = new Cannon_28("cannon_28", Material.iron), "cannon_28"); + GameRegistry.registerBlock(cannonBall_28 = new CannonBallBlock28("cannonBallBlock_28", Material.iron), "cannonBallBlock_28"); + + /*GameRegistry.registerBlock(myIronIngot = new MyIronIngot("myIronIngot", Material.iron), "myIronIngot"); + GameRegistry.registerBlock(damascusIngot = new DamascusIngot("damascusIngot", Material.iron), "damascusIngot"); + GameRegistry.registerBlock(hotDamascusIngot = new HotDamascusIngot("hotDamascusIngot", Material.iron), "hotDamascusIngot"); + GameRegistry.registerBlock(hotIronBlock = new HotIronBlock("hotIronBlock", Material.iron), "hotIronBlock"); + GameRegistry.registerBlock(ironPlate = new IronPlate("ironPlate", Material.iron), "ironPlate"); + GameRegistry.registerBlock(hotIronPlate = new HotIronPlate("hotIronPlate", Material.iron), "hotIronPlate"); + GameRegistry.registerBlock(myDiamond = new Diamond("myDiamond", Material.glass), "myDiamond"); + GameRegistry.registerBlock(myEmerald = new Emerald("myEmerald", Material.glass), "myEmerald"); + GameRegistry.registerBlock(redstoneIngot = new RedstoneIngot("redstoneIngot", Material.rock), "redstoneIngot"); + GameRegistry.registerBlock(hotRedstoneIngot = new HotRedstoneIngot("hotRedstoneIngot", Material.rock), "hotRedstoneIngot"); + GameRegistry.registerBlock(lapisIngot = new LapisIngot("lapisIngot", Material.rock), "lapisIngot"); + GameRegistry.registerBlock(hotLapisIngot = new HotLapisIngot("hotLapisIngot", Material.rock), "hotLapisIngot");*/ + + //CLEAN WOOD + /* + public static Block acaciaSplitLog; + public static Block birchSplitLog; + public static Block darkSplitLog; + public static Block jungleSplitLog; + public static Block oakSplitLog; + public static Block spruceSplitLog; + * */ + GameRegistry.registerBlock(cleanOak = new CleanOak("cleanOak", Material.wood), "cleanOak"); + GameRegistry.registerBlock(cleanAcacia = new CleanAcacia("cleanAcacia", Material.wood), "cleanAcacia"); + GameRegistry.registerBlock(cleanJungle = new CleanJungle("cleanJungle", Material.wood), "cleanJungle"); + GameRegistry.registerBlock(cleanDarkOak = new CleanDarkOak("cleanDarkOak", Material.wood), "cleanDarkOak"); + GameRegistry.registerBlock(cleanBirch = new CleanBirch("cleanBirch", Material.wood), "cleanBirch"); + GameRegistry.registerBlock(cleanSpruce = new CleanSpruce("cleanSpruce", Material.wood), "cleanSpruce"); + + GameRegistry.registerBlock(acaciaSplitLog = new AcaciaSplitLog("acaciaSplitLog", Material.wood), "acaciaSplitLog"); + GameRegistry.registerBlock(birchSplitLog = new BirchSplitLog("birchSplitLog", Material.wood), "birchSplitLog"); + GameRegistry.registerBlock(darkSplitLog = new DarkSplitLog("darkSplitLog", Material.wood), "darkSplitLog"); + GameRegistry.registerBlock(jungleSplitLog = new JungleSplitLog("jungleSplitLog", Material.wood), "jungleSplitLog"); + GameRegistry.registerBlock(oakSplitLog = new OakSplitLog("oakSplitLog", Material.wood), "oakSplitLog"); + GameRegistry.registerBlock(spruceSplitLog = new SpruceSplitLog("spruceSplitLog", Material.wood), "spruceSplitLog"); + + GameRegistry.registerBlock(smallBarrelLid = new SmallBarrelLid("smallBarrelLid", Material.wood), "smallBarrelLid"); + GameRegistry.registerBlock(smallBarrel = new SmallBarrel("smallBarrel", Material.wood), "smallBarrel"); + + //Empty Crucible + GameRegistry.registerBlock(emptySoftCrucible = new EmptySoftCrucible("emptySoftCrucible", Material.clay), "emptySoftCrucible"); + GameRegistry.registerBlock(emptyCookedCrucible = new EmptyCookedCrucible("emptyCookedCrucible", Material.rock), "emptyCookedCrucible"); + GameRegistry.registerBlock(filledWaterCrucible = new FilledWaterCrucible("filledWaterCrucible", Material.rock), "filledWaterCrucible"); + GameRegistry.registerBlock(boilingWaterCrucible = new BoilingWaterCrucible("boilingWaterCrucible", Material.rock), "boilingWaterCrucible"); + GameRegistry.registerBlock(tanWaterCrucible = new TanWaterCrucible("tanWaterCrucible", Material.rock), "tanWaterCrucible"); + GameRegistry.registerBlock(slackWaterCrucible = new SlackWaterCrucible("slackWaterCrucible", Material.rock), "slackWaterCrucible"); + + //CRUCIBLE REGISTRY + GameRegistry.registerBlock(crucibleIronOre = new CrucibleIronOre(Material.rock, "crucibleIronOre"), "crucibleIronOre"); + GameRegistry.registerBlock(crucibleIronIngot = new CrucibleIronIngot(Material.rock, "crucibleIronIngot"), "crucibleIronIngot"); + GameRegistry.registerBlock(crucibleWootz = new CrucibleWootz(Material.rock, "crucibleWootz"), "crucibleWootz"); + GameRegistry.registerBlock(crucibleLapis = new CrucibleLapis(Material.rock, "crucibleLapis"), "crucibleLapis"); + GameRegistry.registerBlock(crucibleRedstone = new CrucibleRedstone(Material.rock, "crucibleRedstone"), "crucibleRedstone"); + + //INGOT REGISTRY + GameRegistry.registerBlock(refinedIron = new RefinedIron("refinedIron", Material.rock), "refinedIron"); + GameRegistry.registerBlock(damascus = new DamascusIngot("damascus", Material.rock), "damascus"); + GameRegistry.registerBlock(ironPlate = new IronPlate("ironPlate", Material.iron), "ironPlate"); + GameRegistry.registerBlock(redstoneIngot = new RedstoneIngot("redstoneIngot", Material.rock), "redstoneIngot"); + GameRegistry.registerBlock(lapisIngot = new LapisIngot("lapisIngot", Material.rock), "lapisIngot"); + + GameRegistry.registerBlock(myDiamond = new Diamond("myDiamond", Material.glass), "myDiamond"); + GameRegistry.registerBlock(myEmerald = new Emerald("myEmerald", Material.glass), "myEmerald"); + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/TestBlock.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/TestBlock.java new file mode 100644 index 00000000..eebaad59 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/TestBlock.java @@ -0,0 +1,61 @@ +package com.kitsu.medievalcraft.block; + +import java.util.Random; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.TileEntityTestBlock; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleIronOre; +import com.kitsu.medievalcraft.util.CustomTab; + +public class TestBlock extends BlockContainer { + + public TestBlock (String unlocalizedName, Material material) { + + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + //this.setCreativeTab(CustomTab.MedievalCraftTab); + //this.setHardness(1.0F); + //this.setResistance(1.0F); + //this.setHarvestLevel(null, 0); + this.setStepSound(soundTypeStone); + //xmin, ymin, zmin, + //xmax, ymax, zmax + //this.setBlockBounds(0.2F, 0.0F, 0.25F, + // 0.8F, 0.66F, 0.8F); + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileCrucibleIronOre(); + } + + @Override + public int quantityDropped(Random p_149745_1_) + { + return 1; + } + + @Override + public int getRenderType() { + return RenderId.testBlockID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/WootzOre.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/WootzOre.java new file mode 100644 index 00000000..3f7ab43b --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/WootzOre.java @@ -0,0 +1,53 @@ +package com.kitsu.medievalcraft.block; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class WootzOre extends Block { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public WootzOre(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(6.0F); + this.setHarvestLevel("pickaxe", 1, 0); + this.setStepSound(Block.soundTypeStone); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "wootzOre"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "wootzOre"); + //top + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "wootzOre"); + //bot + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "wootzOre"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + return side == 1 ? this.iconTop : (side == 0 ? this.iconBot : (side != metadata ? this.blockIcon : this.iconSide)); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/cannon/CannonBallBlock28.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/cannon/CannonBallBlock28.java new file mode 100644 index 00000000..9912140b --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/cannon/CannonBallBlock28.java @@ -0,0 +1,84 @@ +package com.kitsu.medievalcraft.block.cannon; + +import java.util.Random; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.cannon.TileCannonBall28; +import com.kitsu.medievalcraft.tileents.ingots.TileEntityMyDiamond; +import com.kitsu.medievalcraft.util.CustomTab; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class CannonBallBlock28 extends BlockContainer { + + public CannonBallBlock28(String unlocalizedName, Material material) { + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(8.0F); + this.setHarvestLevel("pickaxe",1, 0); + this.setStepSound(soundTypeStone); + //this.setLightLevel(2.0F); + //xmin, ymin, zmin, + this.setBlockBounds(0.38F, 0.0F, 0.38F, + //xmax, ymax, zmax + 0.62F, 0.35F, 0.62F); + } + + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + + int a = player.inventory.currentItem; + if(!world.isRemote){ + if(player.inventory.getStackInSlot(a)!=null){ + if(player.getHeldItem().getItem()==Item.getItemFromBlock(this)){ + ItemStack jar = new ItemStack(this); + player.inventory.addItemStackToInventory(jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + if(player.inventory.getStackInSlot(a)==null){ + ItemStack jar = new ItemStack(this); + player.inventory.setInventorySlotContents(a, jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + return false; + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileCannonBall28(); + } + + @Override + public int getRenderType() { + return RenderId.my28CannonBallID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/cannon/Cannon_28.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/cannon/Cannon_28.java new file mode 100644 index 00000000..b0f6776d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/cannon/Cannon_28.java @@ -0,0 +1,387 @@ +package com.kitsu.medievalcraft.block.cannon; + +import static net.minecraftforge.common.util.ForgeDirection.UP; + +import java.util.Random; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.entity.EntityCannonBall; +import com.kitsu.medievalcraft.entity.EntityModelArrow; +import com.kitsu.medievalcraft.entity.ProjectileCannonBall; +import com.kitsu.medievalcraft.gui.GuiHandler; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.cannon.TileCannon_28; +import com.kitsu.medievalcraft.tileents.machine.TileEntityFirebox; +import com.kitsu.medievalcraft.util.CannonUtil; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import jdk.nashorn.internal.runtime.regexp.joni.MatcherFactory; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.item.EntityTNTPrimed; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityLargeFireball; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.item.ItemTool; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class Cannon_28 extends BlockContainer implements CannonUtil{ + + private final Random random = new Random(); + + public Cannon_28(String unlocalizedName, Material material) { + super(material.iron); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(5.0F); + this.setHarvestLevel("pickaxe", 1, 0); + this.setStepSound(Block.soundTypeMetal); + //this.isFlammable(world, x, y, z, face); + //(xmin, ymin, zmin, + // xmax, ymax, zmax) + this.setBlockBounds(0.0F, 0.0F, 0.0F, + 1.0F, 0.85F, 1.0F); + } + + @Override + public boolean isFlammable(IBlockAccess world, int x, int y, int z, ForgeDirection face){ + return false; + } + + private Entity shootCannon(World world, Integer x, Integer y, Integer z){ + + EntityCannonBall cannonball = null; + TileCannon_28 tile = null; + Item ball = null; + if(!world.isRemote){ + tile = (TileCannon_28) world.getTileEntity(x, y, z); + ball = new ItemStack(ModBlocks.cannonBall_28, 0, 1).getItem(); + if(tile.getStackInSlot(0)!=null && tile.getStackInSlot(0).getItem()==Items.gunpowder){ + tile.isOn=true; + tile.smoke=true; + world.playSoundEffect(x, y, z, (Main.MODID + ":cannon1"), 2.0f, world.rand.nextFloat()/0.5f * 0.1F + 0.8F); + for(int i=0; i < world.playerEntities.size(); i++) { + EntityPlayer test = (EntityPlayer)world.playerEntities.get(i); + Vec3 vecTest = Vec3.createVectorHelper(test.posX, test.posY, test.posZ); + Vec3 vecPlayer = Vec3.createVectorHelper(x, y, z); + if (vecPlayer.distanceTo(vecTest) < 200.0F && vecPlayer.distanceTo(vecTest) > 10.0F) + { + world.playSoundAtEntity(test, (Main.MODID + ":cannon1"), (float) (200-(vecPlayer.distanceTo(vecTest)))/400, 1.0F); + } + } + + if(tile.getStackInSlot(1)!=null){ + if(tile.getStackInSlot(1).getItem()==ball){ + tile.decrStackSize(1, 1); + cannonball = new EntityCannonBall(world, (double)x+((Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)])))/2), (double)y+0.5, (double)z+((Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)])))/2), null); + //System.out.println(angles[world.getBlockMetadata(x, y, z)]); + //System.out.println(Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))); + //System.out.println(Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))); + //cannonball.setVelocity(((tile.getStackInSlot(0).stackSize*(Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))))-(world.rand.nextFloat()/4)),0.25, ((tile.getStackInSlot(0).stackSize*(Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))))-(world.rand.nextFloat()/4))); + cannonball.motionX = ((tile.getStackInSlot(0).stackSize*(Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))))-(world.rand.nextFloat()/4)); + cannonball.motionY = 0.02; + cannonball.motionZ = ((tile.getStackInSlot(0).stackSize*(Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))))-(world.rand.nextFloat()/4)); + tile.setInventorySlotContents(0, null); + tile.markForUpdate(); + tile.markDirty(); + } + } + } + } + tile.markForUpdate(); + tile.markDirty(); + return cannonball; + } + @Override + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(!world.isRemote){ + TileCannon_28 tileEnt = (TileCannon_28) world.getTileEntity(x, y, z); + if(tileEnt.isOn==false){ + if(player.inventory.getCurrentItem()!=null){ + if(player.inventory.getCurrentItem().getItem()==Items.flint_and_steel){ + world.spawnEntityInWorld(shootCannon(world,x,y,z)); + tileEnt.smoke=true; + tileEnt.markForUpdate(); + tileEnt.markDirty(); + return true; + } + } + } + if (!player.isSneaking()) { + if(player.inventory.getCurrentItem()==null||player.inventory.getCurrentItem().getItem()!=Items.flint_and_steel){ + player.openGui(Main.instance, GuiHandler.guiIDcannon28, world, x, y, z); + return true; + } + } + } + + return false; + } + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block){ + if(!world.isRemote){ + if (world.isBlockIndirectlyGettingPowered(x, y, z)) + { + TileCannon_28 tileEnt = (TileCannon_28) world.getTileEntity(x, y, z); + if(tileEnt.isOn==false){ + world.spawnEntityInWorld(shootCannon(world, x, y, z)); + tileEnt.smoke = true; + tileEnt.markForUpdate(); + tileEnt.markDirty(); + } + } + } + } + + /** + * Updates the blocks bounds based on its current state. Args: world, x, y, z + */ + /*@Override + public void setBlockBoundsBasedOnState(IBlockAccess iBlock, int x, int y, int z) + { + int l = iBlock.getBlockMetadata(x, y, z) & 7; + + switch (l) + { + case 1: + default: + this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); + break; + case 2: + this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); + break; + case 3: + this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); + break; + case 4: + this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); + break; + case 5: + this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); + } + }*/ + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + /*@Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) + { + this.setBlockBoundsBasedOnState(world, x, y, z); + return super.getCollisionBoundingBoxFromPool(world, x, y, z); + }*/ + /** + * Called when the block is placed in the world. + */ + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack) + { + //22.5 + //11.25 + if(!world.isRemote){ + double a = living.rotationYaw; + if (a<0){ + a=360+a; + } + //a = a; + System.out.println(living.rotationYaw); + System.out.println(a); + if(a >= 180-11.25 && a <= 180+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + System.out.println("0"); + } + if(a >= 202.5-11.25 && a <= 202.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 1, 2); + System.out.println("1"); + } + if(a >= 225-11.25 && a <= 225+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 2, 2); + System.out.println("2"); + } + if(a >= 247.5-11.25 && a <= 247.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 3, 2); + System.out.println("3"); + } + if(a >= 270-11.25 && a <= 270+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 4, 2); + System.out.println("4"); + } + if(a >= 292.5-11.25 && a <= 292.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 5, 2); + System.out.println("5"); + } + if(a >= 315-11.25 && a <= 315+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 6, 2); + System.out.println("6"); + } + if(a >= 337.5-11.25 && a <= 337.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 7, 2); + System.out.println("7"); + } + if(a <= 0+11.25 && a >=0){ + world.setBlockMetadataWithNotify(x, y, z, 8, 2); + System.out.println("8"); + } + if(a >= 360-11.25 && a <= 360){ + world.setBlockMetadataWithNotify(x, y, z, 8, 2); + System.out.println("8"); + } + if(a >= 22.5-11.25 && a <= 22.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 9, 2); + System.out.println("9"); + } + if(a >= 45-11.25 && a <= 45+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 10, 2); + System.out.println("10"); + } + if(a >= 67.5-11.25 && a <= 67.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 11, 2); + System.out.println("11"); + } + if(a >= 90-11.25 && a <= 90+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 12, 2); + System.out.println("12"); + } + if(a >= 112.5-11.25 && a <= 112.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 13, 2); + System.out.println("13"); + } + if(a >= 135-11.25 && a <= 135+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 14, 2); + System.out.println("14"); + } + if(a >= 157.5-11.25 && a <= 157.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 15, 2); + System.out.println("15"); + } + } + } + + public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player) { + if(!world.isRemote){ + int last = world.getBlockMetadata(x, y, z); + if(player.isSneaking()==true){ + if(world.getBlockMetadata(x, y, z)==15){ + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + System.out.println("A: " + world.getBlockMetadata(x,y,z)); + } + if(world.getBlockMetadata(x, y, z)<15 && last !=15){ + world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)+1, 2); + System.out.println("B: " + world.getBlockMetadata(x,y,z)); + } + } + if(!player.isSneaking()==true){ + if(world.getBlockMetadata(x, y, z)>0){ + world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)-1, 2); + System.out.println("C: " + world.getBlockMetadata(x,y,z)); + } + if(world.getBlockMetadata(x, y, z)==0 && last != 1){ + world.setBlockMetadataWithNotify(x, y, z, 15, 2); + System.out.println("D: " + world.getBlockMetadata(x,y,z)); + } + } + } + } + + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + TileCannon_28 tileEnt = (TileCannon_28) world.getTileEntity(x, y, z); + + if (tileEnt != null) { + for (int i = 0; i < tileEnt.getSizeInventory(); ++i) { + ItemStack itemstack = tileEnt.getStackInSlot(i); + + if (itemstack != null) { + float f = this.random.nextFloat() * 0.6F + 0.1F; + float f1 = this.random.nextFloat() * 0.6F + 0.1F; + float f2 = this.random.nextFloat() * 0.6F + 0.1F; + + while (itemstack.stackSize > 0) { + int j = this.random.nextInt(21) + 10; + + if (j > itemstack.stackSize) { + j = itemstack.stackSize; + } + + itemstack.stackSize -= j; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j, itemstack.getItemDamage())); + + if (itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound(((NBTTagCompound) itemstack.getTagCompound().copy())); + } + + float f3 = 0.025F; + entityitem.motionX = (float) this.random.nextGaussian() * f3; + entityitem.motionY = (float) this.random.nextGaussian() * f3 + 0.1F; + entityitem.motionZ = (float) this.random.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileCannon_28(); + } + @Override + public int getRenderType() { + return RenderId.cannon_28ID; + } + @Override + public boolean renderAsNormalBlock() { + return false; + } + @Override + public boolean isOpaqueCube() { + return false; + } + @SideOnly(Side.CLIENT) + @Override + public void randomDisplayTick(World world, int x, int y, int z, Random rand) + { + super.randomDisplayTick(world, x, y, z, random); + } + +} +/* +if(world.isRemote){ + TileCannon_28 tileEnt = (TileCannon_28) world.getTileEntity(x, y, z); + if(tileEnt.smoke==true){ + System.out.println("make smoke"); + for(int f = 0; f < 10; f++){ + world.spawnParticle("cloud", x + (Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)])))+world.rand.nextFloat()/10, y+world.rand.nextFloat()/10, z + (Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))+world.rand.nextFloat()/10), + (Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)])))/5, 0.2D, (Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)])))/5); + } + tileEnt.smoke=false; + } +} + */ diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleBase.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleBase.java new file mode 100644 index 00000000..87aeca46 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleBase.java @@ -0,0 +1,81 @@ +package com.kitsu.medievalcraft.block.crucible; + +import java.util.Random; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.util.CustomTab; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public abstract class CrucibleBase extends BlockContainer { + + //comment + protected CrucibleBase(Material mat, String unlocalizedName) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(2.0F); + this.setResistance(1.0F); + this.setHarvestLevel("pickaxe", 0); + this.setStepSound(soundTypeStone); + //xmin, ymin, zmin, + //xmax, ymax, zmax + this.setBlockBounds(0.2F, 0.0F, 0.25F, + 0.8F, 0.66F, 0.8F); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + int a = player.inventory.currentItem; + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Item.getItemFromBlock(this)){ + ItemStack jar = new ItemStack(this); + player.inventory.addItemStackToInventory(jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + + } + } + } + if(player.inventory.getStackInSlot(a)==null){ + ItemStack jar = new ItemStack(this); + player.inventory.setInventorySlotContents(a, jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + return true; + } + @Override + public Item getItemDropped(int metadata, Random random, int fortune) { + return Item.getItemFromBlock(this); + } + @Override + public TileEntity createNewTileEntity(World world, int i) { + // TODO Auto-generated method stub + return null; + } + @Override + public int getRenderType() { + return 0; + } + @Override + public boolean renderAsNormalBlock() { + return false; + } + @Override + public boolean isOpaqueCube() { + return false; + } + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleIronIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleIronIngot.java new file mode 100644 index 00000000..8ff8037f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleIronIngot.java @@ -0,0 +1,91 @@ +package com.kitsu.medievalcraft.block.crucible; + +import java.util.Random; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleIronOre; + +public class CrucibleIronIngot extends CrucibleBase{ + + public CrucibleIronIngot(Material mat, String unlocalizedName) { + super(mat, unlocalizedName); + } + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileCrucibleIronOre(); + } + @Override + public int getRenderType() { + return RenderId.coolCrucibleID; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + if(!world.isRemote){ + TileCrucibleIronOre tile = (TileCrucibleIronOre) world.getTileEntity(x, y, z); + + if(tile.cooked==false && tile.hot==false){ + int a = player.inventory.currentItem; + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Item.getItemFromBlock(this)){ + ItemStack jar = new ItemStack(this); + player.inventory.addItemStackToInventory(jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + if(player.inventory.getStackInSlot(a)==null){ + ItemStack jar = new ItemStack(this); + player.inventory.setInventorySlotContents(a, jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + } + return true; + } + + @Override + public Item getItemDropped(int metadata, Random random, int fortune) { + + return null; + } + + @Override + public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int meta){ + if(!world.isRemote){ + if(meta == 0){ + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.stone_slab, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.emptyCookedCrucible, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Items.iron_ingot, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.sand, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Items.coal, 1, 1))); + } + if(meta == 1){ + + } + if(meta == 2){ + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.stone_slab, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.emptyCookedCrucible, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.refinedIron, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.glass, 1, 0))); + } + + } + } + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleIronOre.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleIronOre.java new file mode 100644 index 00000000..84d04a26 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleIronOre.java @@ -0,0 +1,113 @@ +package com.kitsu.medievalcraft.block.crucible; + +import java.util.Random; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleIronOre; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class CrucibleIronOre extends CrucibleBase{ + + public CrucibleIronOre(Material mat, String unlocalizedName) { + super(mat, unlocalizedName); + } + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileCrucibleIronOre(); + } + @Override + public int getRenderType() { + return RenderId.coolCrucibleID; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + if(!world.isRemote){ + TileCrucibleIronOre tile = (TileCrucibleIronOre) world.getTileEntity(x, y, z); + + if(tile.cooked==false && tile.hot==false){ + int a = player.inventory.currentItem; + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Item.getItemFromBlock(this)){ + ItemStack jar = new ItemStack(this); + player.inventory.addItemStackToInventory(jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + if(player.inventory.getStackInSlot(a)==null){ + ItemStack jar = new ItemStack(this); + player.inventory.setInventorySlotContents(a, jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + } + return true; + } + + @Override + public Item getItemDropped(int metadata, Random random, int fortune) { + + return null; + } + + @Override + public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int meta){ + if(!world.isRemote){ + if(meta == 0){ + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.stone_slab, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.emptyCookedCrucible, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.iron_ore, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.sand, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Items.coal, 1, 1))); + } + if(meta == 1){ + + } + if(meta == 2){ + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.stone_slab, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.emptyCookedCrucible, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.refinedIron, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.glass, 1, 0))); + } + + } + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { + super.randomDisplayTick(world, x, y, z, random); + if(world.getBlockMetadata(x, y, z)==1){ + if (random.nextInt(7) == 0) { + world.spawnParticle("largesmoke", x + 0.3D, y + 0.6D, z + 0.34D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(7) == 1) { + world.spawnParticle("cloud", x + 0.3D, y + 0.6D, z + 0.34D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(7) == 2) { + world.spawnParticle("largesmoke", x + 0.75D, y + 0.6D, z + 0.6D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(7) == 3) { + world.spawnParticle("cloud", x + 0.45D, y + 0.6D, z + 0.75D, 0.0D, 0.0D, 0.0D); + } + } + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleLapis.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleLapis.java new file mode 100644 index 00000000..fb1eec90 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleLapis.java @@ -0,0 +1,114 @@ +package com.kitsu.medievalcraft.block.crucible; + +import java.util.Random; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleLapis; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CrucibleLapis extends CrucibleBase{ + + public CrucibleLapis(Material mat, String unlocalizedName) { + super(mat, unlocalizedName); + } + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileCrucibleLapis(); + } + @Override + public int getRenderType() { + return RenderId.coolCrucibleID; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + if(!world.isRemote){ + TileCrucibleLapis tile = (TileCrucibleLapis) world.getTileEntity(x, y, z); + + if(tile.cooked==false && tile.hot==false){ + int a = player.inventory.currentItem; + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Item.getItemFromBlock(this)){ + ItemStack jar = new ItemStack(this); + player.inventory.addItemStackToInventory(jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + if(player.inventory.getStackInSlot(a)==null){ + ItemStack jar = new ItemStack(this); + player.inventory.setInventorySlotContents(a, jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + } + return true; + } + + @Override + public Item getItemDropped(int metadata, Random random, int fortune) { + + return null; + } + + @Override + public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int meta){ + if(!world.isRemote){ + if(meta == 0){ + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.stone_slab, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.emptyCookedCrucible, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.lapis_block, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.sand, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Items.coal, 1, 1))); + } + if(meta == 1){ + + } + if(meta == 2){ + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.stone_slab, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.emptyCookedCrucible, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.refinedIron, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.glass, 1, 0))); + } + + } + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { + super.randomDisplayTick(world, x, y, z, random); + if(world.getBlockMetadata(x, y, z)==1){ + if (random.nextInt(7) == 0) { + world.spawnParticle("largesmoke", x + 0.3D, y + 0.6D, z + 0.34D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(7) == 1) { + world.spawnParticle("cloud", x + 0.3D, y + 0.6D, z + 0.34D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(7) == 2) { + world.spawnParticle("largesmoke", x + 0.75D, y + 0.6D, z + 0.6D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(7) == 3) { + world.spawnParticle("cloud", x + 0.45D, y + 0.6D, z + 0.75D, 0.0D, 0.0D, 0.0D); + } + } + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleRedstone.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleRedstone.java new file mode 100644 index 00000000..d2b9fcc6 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleRedstone.java @@ -0,0 +1,114 @@ +package com.kitsu.medievalcraft.block.crucible; + +import java.util.Random; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleRedstone; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CrucibleRedstone extends CrucibleBase{ + + public CrucibleRedstone(Material mat, String unlocalizedName) { + super(mat, unlocalizedName); + } + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileCrucibleRedstone(); + } + @Override + public int getRenderType() { + return RenderId.coolCrucibleID; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + if(!world.isRemote){ + TileCrucibleRedstone tile = (TileCrucibleRedstone) world.getTileEntity(x, y, z); + + if(tile.cooked==false && tile.hot==false){ + int a = player.inventory.currentItem; + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Item.getItemFromBlock(this)){ + ItemStack jar = new ItemStack(this); + player.inventory.addItemStackToInventory(jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + if(player.inventory.getStackInSlot(a)==null){ + ItemStack jar = new ItemStack(this); + player.inventory.setInventorySlotContents(a, jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + } + return true; + } + + @Override + public Item getItemDropped(int metadata, Random random, int fortune) { + + return null; + } + + @Override + public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int meta){ + if(!world.isRemote){ + if(meta == 0){ + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.stone_slab, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.emptyCookedCrucible, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.redstone_block, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.sand, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Items.coal, 1, 1))); + } + if(meta == 1){ + + } + if(meta == 2){ + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.stone_slab, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.emptyCookedCrucible, 1, 0))); + //world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.redstoneIngot, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.glass, 1, 0))); + } + + } + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { + super.randomDisplayTick(world, x, y, z, random); + if(world.getBlockMetadata(x, y, z)==1){ + if (random.nextInt(7) == 0) { + world.spawnParticle("largesmoke", x + 0.3D, y + 0.6D, z + 0.34D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(7) == 1) { + world.spawnParticle("cloud", x + 0.3D, y + 0.6D, z + 0.34D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(7) == 2) { + world.spawnParticle("largesmoke", x + 0.75D, y + 0.6D, z + 0.6D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(7) == 3) { + world.spawnParticle("cloud", x + 0.45D, y + 0.6D, z + 0.75D, 0.0D, 0.0D, 0.0D); + } + } + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleWootz.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleWootz.java new file mode 100644 index 00000000..396610fa --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/CrucibleWootz.java @@ -0,0 +1,114 @@ +package com.kitsu.medievalcraft.block.crucible; + +import java.util.Random; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleIronOre; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleWootz; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CrucibleWootz extends CrucibleBase{ + + public CrucibleWootz(Material mat, String unlocalizedName) { + super(mat, unlocalizedName); + } + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileCrucibleWootz(); + } + @Override + public int getRenderType() { + return RenderId.coolCrucibleID; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + if(!world.isRemote){ + TileCrucibleWootz tile = (TileCrucibleWootz) world.getTileEntity(x, y, z); + + if(tile.cooked==false && tile.hot==false){ + int a = player.inventory.currentItem; + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Item.getItemFromBlock(this)){ + ItemStack jar = new ItemStack(this); + player.inventory.addItemStackToInventory(jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + if(player.inventory.getStackInSlot(a)==null){ + ItemStack jar = new ItemStack(this); + player.inventory.setInventorySlotContents(a, jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + } + return true; + } + + @Override + public Item getItemDropped(int metadata, Random random, int fortune) { + + return null; + } + + @Override + public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int meta){ + if(!world.isRemote){ + if(meta == 0){ + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.stone_slab, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.emptyCookedCrucible, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.wootzOre, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.sand, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Items.coal, 1, 1))); + } + if(meta == 1){ + + } + if(meta == 2){ + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.stone_slab, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.emptyCookedCrucible, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.damascus, 1, 0))); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Blocks.glass, 1, 0))); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { + super.randomDisplayTick(world, x, y, z, random); + if(world.getBlockMetadata(x, y, z)==1){ + if (random.nextInt(7) == 0) { + world.spawnParticle("largesmoke", x + 0.3D, y + 0.6D, z + 0.34D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(7) == 1) { + world.spawnParticle("cloud", x + 0.3D, y + 0.6D, z + 0.34D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(7) == 2) { + world.spawnParticle("largesmoke", x + 0.75D, y + 0.6D, z + 0.6D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(7) == 3) { + world.spawnParticle("cloud", x + 0.45D, y + 0.6D, z + 0.75D, 0.0D, 0.0D, 0.0D); + } + } + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/BoilingWaterCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/BoilingWaterCrucible.java new file mode 100644 index 00000000..1682faa5 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/BoilingWaterCrucible.java @@ -0,0 +1,119 @@ +package com.kitsu.medievalcraft.block.crucible.empty; + +import java.util.Random; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityBoilingWaterCrucible; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BoilingWaterCrucible extends BlockContainer { + + public BoilingWaterCrucible (String unlocalizedName, Material material) { + + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(1.0F); + this.setResistance(1.0F); + //this.setHarvestLevel(null, 0); + this.setStepSound(soundTypeStone); + //xmin, ymin, zmin, + //xmax, ymax, zmax + this.setBlockBounds(0.2F, 0.0F, 0.25F, + 0.8F, 0.66F, 0.8F); + } + + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + + if(!world.isRemote){ + TileEntityBoilingWaterCrucible boilingEnt = (TileEntityBoilingWaterCrucible) world.getTileEntity(x, y, z); + int a = player.inventory.currentItem; + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==ModItems.itemBark){ + if(player.inventory.getStackInSlot(a).stackSize >= 16){ + if((boilingEnt.dotan==false)&&(boilingEnt.dolime!=true)){ + player.inventory.decrStackSize(a, 10+world.rand.nextInt(6)); + boilingEnt.dotan=true; + } + } + } + if(player.inventory.getStackInSlot(a).getItem()==ModItems.limestoneDust){ + if(player.inventory.getStackInSlot(a).stackSize >= 16){ + if((boilingEnt.dolime==false)&&(boilingEnt.dotan!=true)){ + player.inventory.decrStackSize(a, 8+world.rand.nextInt(8)); + boilingEnt.dolime=true; + } + } + } + } + } + + + return true; + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntityBoilingWaterCrucible(); + } + + @Override + public int quantityDropped(Random p_149745_1_) + { + return 1; + } + + @Override + public Item getItemDropped(int par1, Random random, int par3) { + return Item.getItemFromBlock(ModBlocks.emptyCookedCrucible); + } + + @Override + public Item getItem(World world, int par2, int par3, int par4) { + return Item.getItemFromBlock(ModBlocks.emptyCookedCrucible); + } + + @Override + public int getRenderType() { + return RenderId.filledWaterCrucibleID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { + super.randomDisplayTick(world, x, y, z, random); + if (random.nextInt(3) == 0) { + world.spawnParticle("cloud", (x + 0.5D) + (random.nextGaussian()/25), (y + 0.85D), (z + 0.5D) + (random.nextGaussian()/25), (random.nextGaussian()/100), 0.07D, (random.nextGaussian()/100)); + //world.spawnParticle("droplet", (x + 0.5D) + (random.nextGaussian()/50), (y + 0.5D), (z + 0.5D) + (random.nextGaussian()/50), 0.0D, 0.1D, 0.0D); + } + + + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/EmptyCookedCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/EmptyCookedCrucible.java new file mode 100644 index 00000000..ba1ddd19 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/EmptyCookedCrucible.java @@ -0,0 +1,109 @@ +package com.kitsu.medievalcraft.block.crucible.empty; + +import java.util.Random; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityEmptyCookedCrucible; +import com.kitsu.medievalcraft.util.CustomTab; + +public class EmptyCookedCrucible extends BlockContainer { + + public EmptyCookedCrucible (String unlocalizedName, Material material) { + + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + //this.setHardness(1.0F); + //this.setResistance(1.0F); + //this.setHarvestLevel(null, 0); + this.setStepSound(soundTypeStone); + //xmin, ymin, zmin, + //xmax, ymax, zmax + this.setBlockBounds(0.2F, 0.0F, 0.25F, + 0.8F, 0.66F, 0.8F); + } + + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + + int a = player.inventory.currentItem; + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Items.water_bucket){ + ItemStack bucket = new ItemStack(Items.bucket); + player.inventory.setInventorySlotContents(a, bucket); + if(!world.isRemote){ + world.setBlock(x, y, z, ModBlocks.filledWaterCrucible, 0, 2); + } + } + } + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Item.getItemFromBlock(ModBlocks.emptyCookedCrucible)){ + ItemStack jar = new ItemStack(ModBlocks.emptyCookedCrucible); + player.inventory.addItemStackToInventory(jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + if(player.inventory.getStackInSlot(a)==null){ + ItemStack jar = new ItemStack(ModBlocks.emptyCookedCrucible); + player.inventory.setInventorySlotContents(a, jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + + + return true; + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntityEmptyCookedCrucible(); + } + + @Override + public int quantityDropped(Random p_149745_1_) + { + return 1; + } + + @Override + public Item getItemDropped(int par1, Random random, int par3) { + return Item.getItemFromBlock(ModBlocks.emptyCookedCrucible); + } + + @Override + public Item getItem(World world, int par2, int par3, int par4) { + return Item.getItemFromBlock(ModBlocks.emptyCookedCrucible); + } + + @Override + public int getRenderType() { + return RenderId.emptyCrucibleID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/EmptySoftCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/EmptySoftCrucible.java new file mode 100644 index 00000000..0c80ac9f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/EmptySoftCrucible.java @@ -0,0 +1,73 @@ +package com.kitsu.medievalcraft.block.crucible.empty; + +import java.util.Random; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntitySoftEmptyCrucible; +import com.kitsu.medievalcraft.util.CustomTab; + +public class EmptySoftCrucible extends BlockContainer { + + public EmptySoftCrucible (String unlocalizedName, Material material) { + + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + //this.setHardness(1.0F); + //this.setResistance(1.0F); + //this.setHarvestLevel(null, 0); + this.setStepSound(soundTypeStone); + //xmin, ymin, zmin, + //xmax, ymax, zmax + this.setBlockBounds(0.2F, 0.0F, 0.25F, + 0.8F, 0.66F, 0.8F); + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntitySoftEmptyCrucible(); + } + + @Override + public int quantityDropped(Random p_149745_1_) + { + return 1; + } + + @Override + public Item getItemDropped(int par1, Random random, int par3) { + return Item.getItemFromBlock(ModBlocks.emptySoftCrucible); + } + + @Override + public Item getItem(World world, int par2, int par3, int par4) { + return Item.getItemFromBlock(ModBlocks.emptySoftCrucible); + } + + + @Override + public int getRenderType() { + return RenderId.emptyCrucibleID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/FilledWaterCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/FilledWaterCrucible.java new file mode 100644 index 00000000..59c6421d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/FilledWaterCrucible.java @@ -0,0 +1,101 @@ +package com.kitsu.medievalcraft.block.crucible.empty; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityFilledWaterCrucible; +import com.kitsu.medievalcraft.util.CustomTab; + +public class FilledWaterCrucible extends BlockContainer { + + public FilledWaterCrucible (String unlocalizedName, Material material) { + + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(1.0F); + this.setResistance(1.0F); + //this.setHarvestLevel(null, 0); + this.setStepSound(soundTypeStone); + //xmin, ymin, zmin, + //xmax, ymax, zmax + this.setBlockBounds(0.2F, 0.0F, 0.25F, + 0.8F, 0.66F, 0.8F); + } + + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + + int a = player.inventory.currentItem; + //System.out.println(player.inventory.getStackInSlot(a)); + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Items.bucket){ + player.inventory.decrStackSize(a, 1); + ItemStack bucket = new ItemStack(Items.water_bucket); + int b = player.inventory.getFirstEmptyStack(); + player.inventory.setInventorySlotContents(b, bucket); + + if(!world.isRemote){ + world.setBlock(x, y, z, ModBlocks.emptyCookedCrucible, 0, 2); + } + } + } + + + return true; + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntityFilledWaterCrucible(); + } + + @Override + public int quantityDropped(Random p_149745_1_) + { + return 1; + } + + @Override + public Item getItemDropped(int par1, Random random, int par3) { + return Item.getItemFromBlock(ModBlocks.emptyCookedCrucible); + } + + @Override + public Item getItem(World world, int par2, int par3, int par4) { + return Item.getItemFromBlock(ModBlocks.emptyCookedCrucible); + } + + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + } + + @Override + public int getRenderType() { + return RenderId.filledWaterCrucibleID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/SlackWaterCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/SlackWaterCrucible.java new file mode 100644 index 00000000..39f9d191 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/SlackWaterCrucible.java @@ -0,0 +1,92 @@ +package com.kitsu.medievalcraft.block.crucible.empty; + +import java.util.Random; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntitySlackWaterCrucible; +import com.kitsu.medievalcraft.util.CustomTab; + +public class SlackWaterCrucible extends BlockContainer { + + public SlackWaterCrucible (String unlocalizedName, Material material) { + + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + //this.setHardness(1.0F); + //this.setResistance(1.0F); + //this.setHarvestLevel(null, 0); + this.setStepSound(soundTypeStone); + //xmin, ymin, zmin, + //xmax, ymax, zmax + this.setBlockBounds(0.2F, 0.0F, 0.25F, + 0.8F, 0.66F, 0.8F); + } + + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + + int a = player.inventory.currentItem; + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Items.bucket){ + ItemStack slack = new ItemStack(ModItems.slackBucket); + player.inventory.consumeInventoryItem(player.inventory.getStackInSlot(a).getItem()); + int b = player.inventory.getFirstEmptyStack(); + player.inventory.setInventorySlotContents(b, slack); + world.setBlock(x, y, z, ModBlocks.emptyCookedCrucible, 0, 2); + player.inventoryContainer.detectAndSendChanges(); + } + } + return true; + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntitySlackWaterCrucible(); + } + + @Override + public int quantityDropped(Random p_149745_1_) + { + return 1; + } + + @Override + public Item getItemDropped(int par1, Random random, int par3) { + return Item.getItemFromBlock(ModBlocks.emptyCookedCrucible); + } + + @Override + public Item getItem(World world, int par2, int par3, int par4) { + return Item.getItemFromBlock(ModBlocks.emptyCookedCrucible); + } + + @Override + public int getRenderType() { + return RenderId.filledWaterCrucibleID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/TanWaterCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/TanWaterCrucible.java new file mode 100644 index 00000000..9dff69f0 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/crucible/empty/TanWaterCrucible.java @@ -0,0 +1,92 @@ +package com.kitsu.medievalcraft.block.crucible.empty; + +import java.util.Random; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityTanWaterCrucible; +import com.kitsu.medievalcraft.util.CustomTab; + +public class TanWaterCrucible extends BlockContainer { + + public TanWaterCrucible (String unlocalizedName, Material material) { + + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + //this.setHardness(1.0F); + //this.setResistance(1.0F); + //this.setHarvestLevel(null, 0); + this.setStepSound(soundTypeStone); + //xmin, ymin, zmin, + //xmax, ymax, zmax + this.setBlockBounds(0.2F, 0.0F, 0.25F, + 0.8F, 0.66F, 0.8F); + } + + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + + int a = player.inventory.currentItem; + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Items.bucket){ + ItemStack tan = new ItemStack(ModItems.tanninBucket, 1); + player.inventory.consumeInventoryItem(player.inventory.getStackInSlot(a).getItem()); + player.inventory.addItemStackToInventory(tan); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.woodPulp, 6 + world.rand.nextInt(4))); + world.setBlock(x, y, z, ModBlocks.emptyCookedCrucible, 0, 2); + player.inventoryContainer.detectAndSendChanges(); + } + } + return true; + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntityTanWaterCrucible(); + } + + @Override + public int quantityDropped(Random p_149745_1_) + { + return 1; + } + + @Override + public Item getItemDropped(int par1, Random random, int par3) { + return Item.getItemFromBlock(ModBlocks.emptyCookedCrucible); + } + + @Override + public Item getItem(World world, int par2, int par3, int par4) { + return Item.getItemFromBlock(ModBlocks.emptyCookedCrucible); + } + + @Override + public int getRenderType() { + return RenderId.filledWaterCrucibleID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/decorative/EggWashedBrick.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/decorative/EggWashedBrick.java new file mode 100644 index 00000000..eb0c573d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/decorative/EggWashedBrick.java @@ -0,0 +1,51 @@ +package com.kitsu.medievalcraft.block.decorative; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class EggWashedBrick extends Block { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public EggWashedBrick(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(6.0F); + this.setStepSound(Block.soundTypeStone); + + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "eggwashbrickside"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "eggwashbrickside"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "eggwashbricktop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "eggwashbricktop"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + return side == 1 ? this.iconTop : (side == 0 ? this.iconBot : (side != metadata ? this.blockIcon : this.iconSide)); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/decorative/EggWashedWall.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/decorative/EggWashedWall.java new file mode 100644 index 00000000..aa1224a0 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/decorative/EggWashedWall.java @@ -0,0 +1,51 @@ +package com.kitsu.medievalcraft.block.decorative; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class EggWashedWall extends Block { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public EggWashedWall(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(6.0F); + this.setStepSound(Block.soundTypeStone); + + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "eggwashside"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "eggwashside"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "eggwashtop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "eggwashtop"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + return side == 1 ? this.iconTop : (side == 0 ? this.iconBot : (side != metadata ? this.blockIcon : this.iconSide)); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/decorative/LimestoneRaw.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/decorative/LimestoneRaw.java new file mode 100644 index 00000000..4e820fb9 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/decorative/LimestoneRaw.java @@ -0,0 +1,51 @@ +package com.kitsu.medievalcraft.block.decorative; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class LimestoneRaw extends Block { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public LimestoneRaw(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(2.0F); + this.setResistance(4.0F); + this.setStepSound(Block.soundTypeStone); + + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "limestoneRawSide"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "limestoneRawSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "limestoneRawTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "limestoneRawTop"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + return side == 1 ? this.iconTop : (side == 0 ? this.iconBot : (side != metadata ? this.blockIcon : this.iconSide)); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockFilteredWater.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockFilteredWater.java new file mode 100644 index 00000000..fb9589cd --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockFilteredWater.java @@ -0,0 +1,55 @@ +package com.kitsu.medievalcraft.block.fluid; + +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.fluids.BlockFluidClassic; +import net.minecraftforge.fluids.Fluid; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockFilteredWater extends BlockFluidClassic { + @SideOnly(Side.CLIENT) + protected IIcon stillIcon; + @SideOnly(Side.CLIENT) + protected IIcon flowingIcon; + + public BlockFilteredWater(Fluid fluid, Material material) { + super(fluid, material); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setBlockTextureName(Main.MODID + ":" + this.getUnlocalizedName()); + } + + @Override + public IIcon getIcon(int side, int meta) { + return (side == 0 || side == 1)? stillIcon : flowingIcon; + } + + @SideOnly(Side.CLIENT) + @Override + public void registerBlockIcons(IIconRegister register) { + stillIcon = register.registerIcon(Main.MODID + ":fluidFilteredStill"); + flowingIcon = register.registerIcon(Main.MODID + ":fluidFilteredFlowing"); + } + + @Override + public boolean canDisplace(IBlockAccess world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; + return super.canDisplace(world, x, y, z); + } + + @Override + public boolean displaceIfPossible(World world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; + return super.displaceIfPossible(world, x, y, z); + } + + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockSlackedLime.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockSlackedLime.java new file mode 100644 index 00000000..0580c747 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockSlackedLime.java @@ -0,0 +1,56 @@ +package com.kitsu.medievalcraft.block.fluid; + +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.fluids.BlockFluidClassic; +import net.minecraftforge.fluids.Fluid; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockSlackedLime extends BlockFluidClassic { + @SideOnly(Side.CLIENT) + protected IIcon stillIcon; + @SideOnly(Side.CLIENT) + protected IIcon flowingIcon; + + public BlockSlackedLime(Fluid fluid, Material material) { + super(fluid, material); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setBlockTextureName(Main.MODID + ":" + this.getUnlocalizedName()); + + } + + @Override + public IIcon getIcon(int side, int meta) { + return (side == 0 || side == 1)? stillIcon : flowingIcon; + } + + @SideOnly(Side.CLIENT) + @Override + public void registerBlockIcons(IIconRegister register) { + stillIcon = register.registerIcon(Main.MODID + ":fluidSlackStill"); + flowingIcon = register.registerIcon(Main.MODID + ":fluidSlackFlowing"); + } + + @Override + public boolean canDisplace(IBlockAccess world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; + return super.canDisplace(world, x, y, z); + } + + @Override + public boolean displaceIfPossible(World world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; + return super.displaceIfPossible(world, x, y, z); + } + + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockSmoke.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockSmoke.java new file mode 100644 index 00000000..12959c67 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockSmoke.java @@ -0,0 +1,89 @@ +package com.kitsu.medievalcraft.block.fluid; + +import java.util.Random; + +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.fluids.BlockFluidFinite; +import net.minecraftforge.fluids.Fluid; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockSmoke extends BlockFluidFinite{ + + @SideOnly(Side.CLIENT) + protected IIcon stillIcon; + @SideOnly(Side.CLIENT) + protected IIcon flowingIcon; + + public BlockSmoke(Fluid fluid, Material material) { + super(fluid, material); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setBlockTextureName(Main.MODID + ":" + this.getUnlocalizedName()); + } + + @Override + public IIcon getIcon(int side, int meta) { + return (side == 0 || side == 1)? stillIcon : flowingIcon; + } + + @SideOnly(Side.CLIENT) + @Override + public void registerBlockIcons(IIconRegister register) { + stillIcon = register.registerIcon(Main.MODID + ":fluidStill"); + flowingIcon = register.registerIcon(Main.MODID + ":fluidFlowing"); + } + + @Override + public boolean canDisplace(IBlockAccess world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; + return super.canDisplace(world, x, y, z); + } + + @Override + public boolean displaceIfPossible(World world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; + return super.displaceIfPossible(world, x, y, z); + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { + super.randomDisplayTick(world, x, y, z, random); + + if (random.nextInt(6) == 0) { + world.spawnParticle("cloud", x + 0.5D, y + 0.5D, z + 0.5D, 0.0D, 0.2D, 0.0D); + world.spawnParticle("largesmoke", x + 0.5D, y + 0.5D, z + 0.5D, 0.0D, 0.2D, 0.0D); + } + if (random.nextInt(6) == 1) { + world.spawnParticle("cloud", x + 0.8D, y + 0.5D, z + 0.5D, 0.0D, 0.2D, 0.0D); + world.spawnParticle("largesmoke", x + 0.8D, y + 0.5D, z + 0.5D, 0.0D, 0.2D, 0.0D); + } + if (random.nextInt(6) == 2) { + world.spawnParticle("cloud", x + 0.2D, y + 0.5D, z + 0.5D, 0.0D, 0.2D, 0.0D); + world.spawnParticle("largesmoke", x + 0.2D, y + 0.5D, z + 0.5D, 0.0D, 0.2D, 0.0D); + } + if (random.nextInt(6) == 3) { + world.spawnParticle("cloud", x + 0.5D, y + 0.5D, z + 0.8D, 0.0D, 0.2D, 0.0D); + world.spawnParticle("largesmoke", x + 0.5D, y + 0.5D, z + 0.8D, 0.0D, 0.2D, 0.0D); + } + if (random.nextInt(6) == 4) { + world.spawnParticle("cloud", x + 0.5D, y + 0.5D, z + 0.2D, 0.0D, 0.2D, 0.0D); + world.spawnParticle("largesmoke", x + 0.5D, y + 0.5D, z + 0.2D, 0.0D, 0.2D, 0.0D); + } + if (random.nextInt(6) == 5) { + world.spawnParticle("cloud", x + 0.8D, y + 0.5D, z + 0.2D, 0.0D, 0.2D, 0.0D); + world.spawnParticle("largesmoke", x + 0.8D, y + 0.5D, z + 0.2D, 0.0D, 0.2D, 0.0D); + } + } + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockTannin.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockTannin.java new file mode 100644 index 00000000..43866747 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/fluid/BlockTannin.java @@ -0,0 +1,55 @@ +package com.kitsu.medievalcraft.block.fluid; + +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.fluids.BlockFluidClassic; +import net.minecraftforge.fluids.Fluid; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockTannin extends BlockFluidClassic { + @SideOnly(Side.CLIENT) + protected IIcon stillIcon; + @SideOnly(Side.CLIENT) + protected IIcon flowingIcon; + + public BlockTannin(Fluid fluid, Material material) { + super(fluid, material); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setBlockTextureName(Main.MODID + ":" + this.getUnlocalizedName()); + } + + @Override + public IIcon getIcon(int side, int meta) { + return (side == 0 || side == 1)? stillIcon : flowingIcon; + } + + @SideOnly(Side.CLIENT) + @Override + public void registerBlockIcons(IIconRegister register) { + stillIcon = register.registerIcon(Main.MODID + ":fluidTanStill"); + flowingIcon = register.registerIcon(Main.MODID + ":fluidTanFlowing"); + } + + @Override + public boolean canDisplace(IBlockAccess world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; + return super.canDisplace(world, x, y, z); + } + + @Override + public boolean displaceIfPossible(World world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; + return super.displaceIfPossible(world, x, y, z); + } + + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/DamascusIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/DamascusIngot.java new file mode 100644 index 00000000..489fe1e3 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/DamascusIngot.java @@ -0,0 +1,29 @@ +package com.kitsu.medievalcraft.block.ingots; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.ingots.TileDamascus; +import com.kitsu.medievalcraft.tileents.ingots.TileMyIronIngot; +import com.kitsu.medievalcraft.util.CustomTab; + +public class DamascusIngot extends IngotBase { + + public DamascusIngot(String unlocalizedName, Material material) { + super(unlocalizedName, material); + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileDamascus(); + } + + @Override + public int getRenderType() { + return RenderId.myironingotID; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/Diamond.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/Diamond.java new file mode 100644 index 00000000..6c15657e --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/Diamond.java @@ -0,0 +1,86 @@ +package com.kitsu.medievalcraft.block.ingots; + +import java.util.Random; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.ingots.TileEntityMyDiamond; + +public class Diamond extends BlockContainer { + + public Diamond(String unlocalizedName, Material material) { + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + //this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(1.0F); + this.setResistance(1.0F); + this.setHarvestLevel(null, 0); + this.setStepSound(soundTypeGlass); + //this.setLightLevel(2.0F); + //xmin, ymin, zmin, + this.setBlockBounds(0.38F, 0.0F, 0.38F, + //xmax, ymax, zmax + 0.62F, 0.2F, 0.62F); + } + + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + + int a = player.inventory.currentItem; + + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Items.diamond){ + ItemStack jar = new ItemStack(Items.diamond); + player.inventory.addItemStackToInventory(jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + if(player.inventory.getStackInSlot(a)==null){ + ItemStack jar = new ItemStack(Items.diamond); + player.inventory.setInventorySlotContents(a, jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + return false; + } + + @Override + public Item getItemDropped(int metadata, Random random, int fortune) { + return Items.diamond; + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntityMyDiamond(); + } + + @Override + public int getRenderType() { + return RenderId.myDiamondID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/Emerald.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/Emerald.java new file mode 100644 index 00000000..5604459f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/Emerald.java @@ -0,0 +1,86 @@ +package com.kitsu.medievalcraft.block.ingots; + +import java.util.Random; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.ingots.TileEntityMyEmerald; + +public class Emerald extends BlockContainer { + + public Emerald(String unlocalizedName, Material material) { + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + //this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(1.0F); + this.setResistance(1.0F); + this.setHarvestLevel(null, 0); + this.setStepSound(soundTypeGlass); + //this.setLightLevel(2.0F); + //xmin, ymin, zmin, + this.setBlockBounds(0.35F, 0.0F, 0.38F, + //xmax, ymax, zmax + 0.65F, 0.15F, 0.62F); + } + + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){ + + int a = player.inventory.currentItem; + + if(player.inventory.getStackInSlot(a)!=null){ + if(player.inventory.getStackInSlot(a).getItem()==Items.emerald){ + ItemStack jar = new ItemStack(Items.emerald); + player.inventory.addItemStackToInventory(jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + if(player.inventory.getStackInSlot(a)==null){ + ItemStack jar = new ItemStack(Items.emerald); + player.inventory.setInventorySlotContents(a, jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + return false; + } + + @Override + public Item getItemDropped(int metadata, Random random, int fortune) { + return Items.emerald; + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntityMyEmerald(); + } + + @Override + public int getRenderType() { + return RenderId.myEmeraldID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/IngotBase.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/IngotBase.java new file mode 100644 index 00000000..b0084e20 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/IngotBase.java @@ -0,0 +1,123 @@ +package com.kitsu.medievalcraft.block.ingots; + +import java.util.Random; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public abstract class IngotBase extends BlockContainer { + + private final Random random = new Random(); + public static boolean makeParts; + public static int locX, locY, locZ; + + public IngotBase(String unlocalizedName, Material material) { + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(1.0F); + this.setResistance(1.0F); + this.setHarvestLevel(null, 0); + this.setStepSound(soundTypeMetal); + //xmin, ymin, zmin, + //xmax, ymax, zmax + this.setBlockBounds(0.25F, 0.0F, 0.35F, + 0.75F , 0.15F, 0.7F); + } + + @Override + public Item getItemDropped(int metadata, Random random, int fortune) { + return Item.getItemFromBlock(this); + } + @Override + public TileEntity createNewTileEntity(World world, int i) { + return null; + } + + @Override + public int quantityDropped(Random p_149745_1_) + { + return 1; + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random rand) + { + super.randomDisplayTick(world, x, y, z, random); + if(makeParts == true){ + parts(world, locX, locY, locZ); + makeParts = false; + } + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int aa, float bb, float cc, float ff){ + //System.out.println(this.getUnlocalizedName()); + + //if(player.inventory.getCurrentItem().getItem()!=ModItems.forgeHammer){ + int a = player.inventory.currentItem; + if(player.inventory.getStackInSlot(a)==null){ + ItemStack jar = new ItemStack(this); + player.inventory.setInventorySlotContents(a, jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + return true; + } + if(player.inventory.getStackInSlot(a)!=null && player.inventory.getCurrentItem().getItem()!=ModItems.forgeHammer){ + if(player.inventory.getStackInSlot(a).getItem()==Item.getItemFromBlock(this)){ + ItemStack jar = new ItemStack(this); + player.inventory.addItemStackToInventory(jar); + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + return true; + } + + + return false; + } + + private void parts(World world, int x, int y, int z){ + world.spawnParticle("lava", x+0.5D, y+0.5D, z+0.5D, 0, 0, 0); + world.spawnParticle("lava", x+0.5D, y+0.5D, z+0.5D, 0, 0, 0); + world.spawnParticle("lava", x+0.5D, y+0.5D, z+0.5D, 0, 0, 0); + world.spawnParticle("lava", x+0.5D, y+0.5D, z+0.5D, 0, 0, 0); + world.spawnParticle("lava", x+0.5D, y+0.5D, z+0.5D, 0, 0, 0); + world.spawnParticle("lava", x+0.5D, y+0.5D, z+0.5D, 0, 0, 0); + world.spawnParticle("lava", x+0.5D, y+0.5D, z+0.5D, 0, 0, 0); + world.spawnParticle("lava", x+0.5D, y+0.5D, z+0.5D, 0, 0, 0); + world.spawnParticle("lava", x+0.5D, y+0.5D, z+0.5D, 0, 0, 0); + } + + @Override + public int getRenderType() { + return 0; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/IronPlate.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/IronPlate.java new file mode 100644 index 00000000..66126614 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/IronPlate.java @@ -0,0 +1,33 @@ +package com.kitsu.medievalcraft.block.ingots; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.ingots.TileIronPlate; +import com.kitsu.medievalcraft.tileents.ingots.TileMyIronIngot; +import com.kitsu.medievalcraft.util.CustomTab; + +public class IronPlate extends IngotBase { + + public IronPlate(String unlocalizedName, Material material) { + super(unlocalizedName, material); + //xmin, ymin, zmin, + //xmax, ymax, zmax + this.setBlockBounds(0.3F, 0.0F, 0.3F, + 0.7F, 0.12F, 0.7F); + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileIronPlate(); + } + + @Override + public int getRenderType() { + return RenderId.ironPlateID; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/LapisIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/LapisIngot.java new file mode 100644 index 00000000..f77b884e --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/LapisIngot.java @@ -0,0 +1,29 @@ +package com.kitsu.medievalcraft.block.ingots; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.ingots.TileLapisIngot; +import com.kitsu.medievalcraft.util.CustomTab; + +public class LapisIngot extends IngotBase { + + public LapisIngot(String unlocalizedName, Material material) { + super(unlocalizedName, material); + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileLapisIngot(); + } + + @Override + public int getRenderType() { + return RenderId.myironingotID; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/RedstoneIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/RedstoneIngot.java new file mode 100644 index 00000000..d45a83e2 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/RedstoneIngot.java @@ -0,0 +1,30 @@ +package com.kitsu.medievalcraft.block.ingots; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.ingots.TileMyIronIngot; +import com.kitsu.medievalcraft.tileents.ingots.TileRedstoneIngot; +import com.kitsu.medievalcraft.util.CustomTab; + +public class RedstoneIngot extends IngotBase { + + public RedstoneIngot(String unlocalizedName, Material material) { + super(unlocalizedName, material); + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileRedstoneIngot(); + } + + @Override + public int getRenderType() { + return RenderId.myironingotID; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/RefinedIron.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/RefinedIron.java new file mode 100644 index 00000000..8d99a9de --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/ingots/RefinedIron.java @@ -0,0 +1,29 @@ +package com.kitsu.medievalcraft.block.ingots; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.ingots.TileMyIronIngot; +import com.kitsu.medievalcraft.util.CustomTab; + +public class RefinedIron extends IngotBase { + + public RefinedIron(String unlocalizedName, Material material) { + super(unlocalizedName, material); + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileMyIronIngot(); + } + + @Override + public int getRenderType() { + return RenderId.myironingotID; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/Firebox.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/Firebox.java new file mode 100644 index 00000000..7fc84cba --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/Firebox.java @@ -0,0 +1,284 @@ +package com.kitsu.medievalcraft.block.machines; + +import static net.minecraftforge.common.util.ForgeDirection.UP; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.item.ItemTool; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.machine.TileEntityFirebox; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class Firebox extends BlockContainer{ + + private final Random random = new Random(); + + public Firebox(String unlocalizedName, Material material) { + super(material.rock); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(5.0F); + this.setHarvestLevel("pickaxe", 1, 0); + this.setStepSound(Block.soundTypeStone); + //this.isFlammable(world, x, y, z, face); + //(xmin, ymin, zmin, + // xmax, ymax, zmax) + this.setBlockBounds(0.0F, 0.00F, 0.0F, + 1.0F, 1.00F, 1.0F); + + } + + @Override + public boolean isFlammable(IBlockAccess world, int x, int y, int z, ForgeDirection face){ + return true; + } + + @Override + public boolean isFireSource(World world, int x, int y, int z, ForgeDirection side) { + if (this == ModBlocks.firebox && side == UP){ + TileEntityFirebox tile = (TileEntityFirebox) world.getTileEntity(x, y, z); + if(tile.isOn==true){ + if(this.getItemBurnTime(tile.getStackInSlot(0))>0){ + return true; + } + } + } + return false; + } + + @Override + public int getLightValue(IBlockAccess world,int x,int y,int z){ + if(world.getBlockMetadata(x, y, z)==1){ + return 15; + } + return 0; + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random rand) + { + super.randomDisplayTick(world, x, y, z, random); + + + if(world.getBlockMetadata(x, y, z)==1){ + if (rand.nextInt(24) == 0&&world.getBlock(x, y+1, z)!=Blocks.fire) + { + world.playSound((double)((float)x + 0.5F), (double)((float)y + 0.5F), (double)((float)z + 0.5F), "fire.fire", 1.0F + rand.nextFloat(), rand.nextFloat() * 0.7F + 0.3F, false); + } + int l; + float f; + float f1; + float f2; + for (l = 0; l < 3; ++l) + { + f = (float)(x+0.1) + ((rand.nextFloat()/1.25f)); + f1 = (float)y+0.3f + rand.nextFloat() * 0.4F; + f2 = (float)(z+0.1) + ((rand.nextFloat()/1.25f)); + world.spawnParticle("fire", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + world.spawnParticle("smoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + } + } + + } + //PACKETHANDLE FOR C + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + TileEntityFirebox tileEnt = (TileEntityFirebox) world.getTileEntity(x, y, z); + if(!world.isRemote){ + if(player.inventory.getCurrentItem()!=null){ + if((player.inventory.getCurrentItem().getItem()==Item.getItemFromBlock(Blocks.torch))|| + (player.inventory.getCurrentItem().getItem()==Items.flint_and_steel)|| + (player.inventory.getCurrentItem().getItem()==ModItems.fireBow) + ){ + world.setBlockMetadataWithNotify(x, y, z, 1, 3); + tileEnt.markForUpdate(); + tileEnt.markDirty(); + player.inventory.getCurrentItem().damageItem(1, player); + if(world.getBlock(x, y, z).equals(Blocks.air)){ + world.setBlock(x, y+1, z, Blocks.fire, 0, 2); + } + } + } + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(0)==null){ + if(isItemFuel(player.inventory.getCurrentItem())==true){ + tileEnt.setInventorySlotContents(0, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + } + } + if (tileEnt.getStackInSlot(0)!=null){ + if(player.inventory.getCurrentItem()!=null){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(0).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(0).copy(); + if(tileEnt.getStackInSlot(0).stackSize < 64){ + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(0, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(0)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(0)); + tileEnt.setInventorySlotContents(0, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null)){ + if(tileEnt.getStackInSlot(0)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(0).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(0, 1); + } + } + return true; + } + } + tileEnt.markForUpdate(); + tileEnt.markDirty(); + return true; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack p_149689_6_) { + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + + world.markBlockForUpdate(x, y, z); + } + + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + TileEntityFirebox tileEnt = (TileEntityFirebox) world.getTileEntity(x, y, z); + + if (tileEnt != null) { + for (int i = 0; i < tileEnt.getSizeInventory(); ++i) { + ItemStack itemstack = tileEnt.getStackInSlot(i); + + if (itemstack != null) { + float f = this.random.nextFloat() * 0.6F + 0.1F; + float f1 = this.random.nextFloat() * 0.6F + 0.1F; + float f2 = this.random.nextFloat() * 0.6F + 0.1F; + + while (itemstack.stackSize > 0) { + int j = this.random.nextInt(21) + 10; + + if (j > itemstack.stackSize) { + j = itemstack.stackSize; + } + + itemstack.stackSize -= j; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j, itemstack.getItemDamage())); + + if (itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound(((NBTTagCompound) itemstack.getTagCompound().copy())); + } + + float f3 = 0.025F; + entityitem.motionX = (float) this.random.nextGaussian() * f3; + entityitem.motionY = (float) this.random.nextGaussian() * f3 + 0.1F; + entityitem.motionZ = (float) this.random.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileEntityFirebox(); + } + public static int getItemBurnTime(ItemStack p_145952_0_) + { + if (p_145952_0_ == null) + { + return 0; + } + Item item = p_145952_0_.getItem(); + + if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air) + { + Block block = Block.getBlockFromItem(item); + + if (block == Blocks.wooden_slab) + { + return 150; + } + + if (block.getMaterial() == Material.wood) + { + return 300; + } + + if (block == Blocks.coal_block) + { + return 16000; + } + } + + if (item instanceof ItemTool && ((ItemTool)item).getToolMaterialName().equals("WOOD")) return 200; + if (item instanceof ItemSword && ((ItemSword)item).getToolMaterialName().equals("WOOD")) return 200; + if (item instanceof ItemHoe && ((ItemHoe)item).getToolMaterialName().equals("WOOD")) return 200; + if (item == Items.stick) return 100; + if (item == Items.coal) return 1600; + if (item == Items.lava_bucket) return 20000; + if (item == Item.getItemFromBlock(Blocks.sapling)) return 100; + if (item == Items.blaze_rod) return 2400; + return GameRegistry.getFuelValue(p_145952_0_); + } + public static boolean isItemFuel(ItemStack stack) + { + return getItemBurnTime(stack) > 0; + } + @Override + public int getRenderType() { + return RenderId.fireboxID; + } + @Override + public boolean renderAsNormalBlock() { + return false; + } + @Override + public boolean isOpaqueCube() { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/Forge.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/Forge.java new file mode 100644 index 00000000..7e0637c1 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/Forge.java @@ -0,0 +1,396 @@ +package com.kitsu.medievalcraft.block.machines; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.item.ItemTool; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.packethandle.forge.MsgPacketForge; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.machine.TileForge; +import com.kitsu.medievalcraft.util.CustomTab; +import com.kitsu.medievalcraft.util.TileForgePlaceables; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class Forge extends BlockContainer implements TileForgePlaceables{ + + private final Random random = new Random(); + public static int sideMeta; + private int c; + + public Forge(String unlocalizedName, Material material) { + super(material.rock); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(5.0F); + this.setHarvestLevel("pickaxe", 1, 0); + this.setStepSound(Block.soundTypeStone); + //this.setTickRandomly(true); + //this.isFlammable(world, x, y, z, face); + //(xmin, ymin, zmin, + // xmax, ymax, zmax) + this.setBlockBounds(0.0F, 0.0F, 0.0F, + 1.0F, 1.0F, 1.0F); + + } + @Override + public boolean isFlammable(IBlockAccess world, int x, int y, int z, ForgeDirection face) + { + return true; + } + + @Override + public int getLightValue(IBlockAccess world,int x,int y,int z){ + if(world.getBlockMetadata(x, y, z)>3){ + return 15; + } + return 0; + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + /*System.out.println("Update Tick"); + if(world.getBlockMetadata(x, y, z)<4){ + this.setLightLevel(0f); + } + if(world.getBlockMetadata(x, y, z)>3){ + this.setLightLevel(1f); + } +*/ + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random rand) + { + super.randomDisplayTick(world, x, y, z, random); + + if(world.getBlockMetadata(x, y, z)>=4&&world.getBlockMetadata(x, y, z)<=7){ + int l; + float f; + float f1; + float f2; + for (l = 0; l < 3; ++l) + { + f = (float)(x+0.25) + (rand.nextFloat()/2); + f1 = (float)y + rand.nextFloat() * 0.4F + 0.3F; + f2 = (float)(z+0.25) + (rand.nextFloat()/2); + world.spawnParticle("fire", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + } + } + if(world.getBlockMetadata(x, y, z)>=8){ + int l; + float f; + float f1; + float f2; + for (l = 0; l < 3; ++l) + { + f = (float)(x+0.25) + (rand.nextFloat()/2); + //f1 = (float)y + rand.nextFloat() * 0.4F + 0.3F; + f1 = y+1.1f; + f2 = (float)(z+0.25) + (rand.nextFloat()/2); + world.spawnParticle("fire", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + world.spawnParticle("smoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + } + for (l = 0; l < 3; ++l) + { + f = (float)(x+0.25) + (rand.nextFloat()/2); + f1 = (float)y + rand.nextFloat() * 0.4F + 0.3F; + f2 = (float)(z+0.25) + (rand.nextFloat()/2); + world.spawnParticle("fire", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + } + } + } + + public static int determineOrientation(World p_150071_0_, int p_150071_1_, int p_150071_2_, int p_150071_3_, EntityLivingBase p_150071_4_) + { + if (MathHelper.abs((float)p_150071_4_.posX - (float)p_150071_1_) < 2.0F && MathHelper.abs((float)p_150071_4_.posZ - (float)p_150071_3_) < 2.0F) + { + double d0 = p_150071_4_.posY + 1.82D - (double)p_150071_4_.yOffset; + if (d0 - (double)p_150071_2_ > 2.0D){return 1;} + if ((double)p_150071_2_ - d0 > 0.0D) {return 0;} + } + + int l = MathHelper.floor_double((double)(p_150071_4_.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + return l == 0 ? 2 : (l == 1 ? 5 : (l == 2 ? 3 : (l == 3 ? 4 : 0))); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack p_149689_6_) { + int l = determineOrientation(world, x, y, z, player); + if(l==1){ + l=5; + } + if(l==0){ + l=5; + } + l=l-2; + world.setBlockMetadataWithNotify(x, y, z, l, 2); + //System.out.println(l); + world.markBlockForUpdate(x, y, z); + } + + private boolean shouldPlace(ItemStack stack, EntityPlayer player){ + for(int i=0; i=4&&world.getBlockMetadata(x, y, z)<=7){ + world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)+4, 2); + } + } + } + } + + if(sideMeta==1){ + if(player.inventory.getCurrentItem()!=null){ + if(player.inventory.getCurrentItem().getItem()==Items.coal){ + if(tileEnt.getStackInSlot(1)!=null){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(1).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(1).copy(); + if(tileEnt.getStackInSlot(1).stackSize < 64){ + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(1, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + if(tileEnt.getStackInSlot(1)==null){ + tileEnt.setInventorySlotContents(1, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(1)!=null){ + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, tileEnt.getStackInSlot(1))); + tileEnt.setInventorySlotContents(1, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null)){ + if(tileEnt.getStackInSlot(1)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(1).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(1, 1); + } + } + return true; + } + } + if(sideMeta!=1){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(0)==null){ + if(isItemFuel(player.inventory.getCurrentItem())==true){ + tileEnt.setInventorySlotContents(0, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)+4, 3); + } + } + if(tileEnt.getStackInSlot(0)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(isItemFuel(player.inventory.getCurrentItem())==true){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(0).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(0).copy(); + if(tileEnt.getStackInSlot(0).stackSize < 64){ + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(0, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + } + return true; + } + if(player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(0)!=null){ + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, tileEnt.getStackInSlot(0))); + tileEnt.setInventorySlotContents(0, null); + tileEnt.markDirty(); + tileEnt.markForUpdate(); + } + return true; + } + if(!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null)){ + if(tileEnt.getStackInSlot(0)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(0).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(0, 1); + } + } + return true; + } + } + } + tileEnt.markForUpdate(); + tileEnt.markDirty(); + return true; + } + + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + TileForge tileEnt = (TileForge) world.getTileEntity(x, y, z); + + if (tileEnt != null) { + for (int i = 0; i < tileEnt.getSizeInventory(); ++i) { + ItemStack itemstack = tileEnt.getStackInSlot(i); + + if (itemstack != null) { + float f = this.random.nextFloat() * 0.6F + 0.1F; + float f1 = this.random.nextFloat() * 0.6F + 0.1F; + float f2 = this.random.nextFloat() * 0.6F + 0.1F; + + while (itemstack.stackSize > 0) { + int j = this.random.nextInt(21) + 10; + + if (j > itemstack.stackSize) { + j = itemstack.stackSize; + } + + itemstack.stackSize -= j; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j, itemstack.getItemDamage())); + + if (itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound(((NBTTagCompound) itemstack.getTagCompound().copy())); + } + + float f3 = 0.025F; + entityitem.motionX = (float) this.random.nextGaussian() * f3; + entityitem.motionY = (float) this.random.nextGaussian() * f3 + 0.1F; + entityitem.motionZ = (float) this.random.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileForge(); + } + + public static int getItemBurnTime(ItemStack p_145952_0_) + { + if (p_145952_0_ == null) + { + return 0; + } + Item item = p_145952_0_.getItem(); + + if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air) + { + Block block = Block.getBlockFromItem(item); + + if (block == Blocks.wooden_slab) + { + return 150; + } + + if (block.getMaterial() == Material.wood) + { + return 300; + } + + if (block == Blocks.coal_block) + { + return 16000; + } + } + + if (item instanceof ItemTool && ((ItemTool)item).getToolMaterialName().equals("WOOD")) return 200; + if (item instanceof ItemSword && ((ItemSword)item).getToolMaterialName().equals("WOOD")) return 200; + if (item instanceof ItemHoe && ((ItemHoe)item).getToolMaterialName().equals("WOOD")) return 200; + if (item == Items.stick) return 100; + if (item == Items.coal) return 1600; + if (item == Items.lava_bucket) return 20000; + if (item == Item.getItemFromBlock(Blocks.sapling)) return 100; + if (item == Items.blaze_rod) return 2400; + return GameRegistry.getFuelValue(p_145952_0_); + } + + public static boolean isItemFuel(ItemStack stack) + { + return getItemBurnTime(stack) > 0; + } + + @Override + public int getRenderType() { + return RenderId.forgeID; + } + @Override + public boolean renderAsNormalBlock() { + return false; + } + @Override + public boolean isOpaqueCube() { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/ForgeAnvil.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/ForgeAnvil.java new file mode 100644 index 00000000..4cc7ae95 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/ForgeAnvil.java @@ -0,0 +1,196 @@ +package com.kitsu.medievalcraft.block.machines; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.machine.TileEntityAnvilForge; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ForgeAnvil extends BlockContainer{ + + private final Random random = new Random(); + + public ForgeAnvil(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(2.0F); + this.setResistance(6.0F); + this.setStepSound(Block.soundTypeStone); + + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileEntityAnvilForge(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z,EntityPlayer player, int metadata, float what, float these, float are) { + TileEntityAnvilForge tileEnt = (TileEntityAnvilForge) world.getTileEntity(x, y, z); + if(!world.isRemote){ + + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(0)==null){ + tileEnt.setInventorySlotContents(0, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + tileEnt.markForUpdate(); + } + if (tileEnt.getStackInSlot(0)!=null){ + if(player.inventory.getCurrentItem()!=null){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(0).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(0).copy(); + if(tileEnt.getStackInSlot(0).stackSize < 64){ + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(0, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + tileEnt.markForUpdate(); + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(0)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(0)); + tileEnt.setInventorySlotContents(0, null); + } + tileEnt.markForUpdate(); + return true; + } + if (!player.isSneaking()){ + if((player.inventory.getCurrentItem()==null)){ + if(tileEnt.getStackInSlot(0)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(0).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.setInventorySlotContents(0, null); + tileEnt.markForUpdate(); + } + } + tileEnt.markForUpdate(); + return true; + } + } + tileEnt.markForUpdate(); + tileEnt.markDirty(); + return true; + } + + public Item getItemDropped(int par1, Random random, int par3) { + return Item.getItemFromBlock(ModBlocks.forgeAnvil); + } + + public Item getItem(World world, int par2, int par3, int par4) { + return Item.getItemFromBlock(ModBlocks.forgeAnvil); + } + + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + TileEntityAnvilForge tileEnt = (TileEntityAnvilForge) world.getTileEntity(x, y, z); + + if (tileEnt != null) { + for (int i = 0; i < tileEnt.getSizeInventory(); ++i) { + ItemStack itemstack = tileEnt.getStackInSlot(i); + + if (itemstack != null) { + float f = this.random.nextFloat() * 0.6F + 0.1F; + float f1 = this.random.nextFloat() * 0.6F + 0.1F; + float f2 = this.random.nextFloat() * 0.6F + 0.1F; + + while (itemstack.stackSize > 0) { + int j = this.random.nextInt(21) + 10; + + if (j > itemstack.stackSize) { + j = itemstack.stackSize; + } + + itemstack.stackSize -= j; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j, itemstack.getItemDamage())); + + if (itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound(((NBTTagCompound) itemstack.getTagCompound().copy())); + } + + float f3 = 0.025F; + entityitem.motionX = (float) this.random.nextGaussian() * f3; + entityitem.motionY = (float) this.random.nextGaussian() * f3 + 0.1F; + entityitem.motionZ = (float) this.random.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + } + + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public int getRenderType() { + return RenderId.anvilForgeID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack p_149689_6_) { + int dir = MathHelper.floor_double((player.rotationYaw * 4F) / 360F + 0.5D) & 3; + world.setBlockMetadataWithNotify(x, y, z, dir, 0); + //System.out.println(dir); + } + + + +} + + + + + + + + + + + + + + + + + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/SolidFilter.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/SolidFilter.java new file mode 100644 index 00000000..605dfde2 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/SolidFilter.java @@ -0,0 +1,128 @@ +package com.kitsu.medievalcraft.block.machines; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.machine.TileEntitySolidFilter; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; + +public class SolidFilter extends BlockContainer { + + private final Random random = new Random(); + //private NBTTagCompound nbt = new NBTTagCompound(); + + public SolidFilter(String unlocalizedName, Material material) { + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(5.0F); + this.setHarvestLevel("pickaxe", 1, 0); + this.setStepSound(Block.soundTypeStone); + + //xmin, ymin, zmin, + //xmax, ymax, zmax + this.setBlockBounds(0.1F, 0.01F, 0.1F, + 0.9F, 1.0F, 0.9F); + } + + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + TileEntitySolidFilter tileSand = (TileEntitySolidFilter) world.getTileEntity(x, y, z); + if (!player.isSneaking()) { + FMLNetworkHandler.openGui(player, Main.instance, 4, world, x, y, z); + return true; + } + if(player.isSneaking()){ + if(tileSand.getStackInSlot(0)!=null){ + int s = player.inventory.currentItem; + if((player.inventory.getStackInSlot(s)==null)){ + if((world.getBlock(x, y+1, z).equals(Blocks.sand))||(world.getBlock(x, y+1, z).equals(Blocks.gravel))){ + tileSand.hits++; + player.worldObj.playSoundAtEntity(player, "step.sand", 0.5F, 0.5F); + tileSand.getStackInSlot(0).setItemDamage(tileSand.getStackInSlot(0).getItemDamage()+1); + } + } + } + } + return true; + } + + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + TileEntitySolidFilter tileEnt = (TileEntitySolidFilter) world.getTileEntity(x, y, z); + + if (tileEnt != null) { + for (int i = 0; i < tileEnt.getSizeInventory(); ++i) { + ItemStack itemstack = tileEnt.getStackInSlot(i); + + if (itemstack != null) { + float f = this.random.nextFloat() * 0.6F + 0.1F; + float f1 = this.random.nextFloat() * 0.6F + 0.1F; + float f2 = this.random.nextFloat() * 0.6F + 0.1F; + + while (itemstack.stackSize > 0) { + int j = this.random.nextInt(21) + 10; + + if (j > itemstack.stackSize) { + j = itemstack.stackSize; + } + + itemstack.stackSize -= j; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j, itemstack.getItemDamage())); + + if (itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound(((NBTTagCompound) itemstack.getTagCompound().copy())); + } + + float f3 = 0.025F; + entityitem.motionX = (float) this.random.nextGaussian() * f3; + entityitem.motionY = (float) this.random.nextGaussian() * f3 + 0.1F; + entityitem.motionZ = (float) this.random.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } + + + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntitySolidFilter(); + } + + @Override + public int getRenderType() { + return RenderId.solidFilterID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/TestForge.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/TestForge.java new file mode 100644 index 00000000..a58cdb37 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/TestForge.java @@ -0,0 +1,182 @@ +package com.kitsu.medievalcraft.block.machines; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.tileents.machine.TileEntityTestForge; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class TestForge extends BlockContainer { + + //private static double s= 0.25; + //private static double a=0.75; + private final Random random = new Random(); + public static boolean makeIngot; + public static int ticks; + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public TestForge(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(2.0F); + this.setResistance(6.0F); + this.setStepSound(Block.soundTypeStone); + + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "forgeside"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "forgeside"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "forgebot"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "forgetop"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + return side == 1 ? this.iconTop : (side == 0 ? this.iconBot : (side != metadata ? this.blockIcon : this.iconSide)); + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntityTestForge(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z,EntityPlayer player, int metadata, float what, float these, float are) { + FMLNetworkHandler.openGui(player, Main.instance, 2, world, x, y, z); + return true; + } + + public Item getItemDropped(int par1, Random random, int par3) { + return null; + } + + public Item getItem(World world, int par2, int par3, int par4) { + //return Item.getItemFromBlock(ModBlocks.testForge); + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { + super.randomDisplayTick(world, x, y, z, random); + TileEntityTestForge tileEnt = (TileEntityTestForge) world.getTileEntity(x, y, z); + + /*if(tileEnt.isRunning == true){ + + }*/ + /*Block test = world.getBlock(x, y+1, z); + if (test == TestForgeCrafting.blockToCheck.get(0) || test == TestForgeCrafting.blockToCheck.get(1) || test == TestForgeCrafting.blockToCheck.get(2) + || test == TestForgeCrafting.blockToCheck.get(3) || test == TestForgeCrafting.blockToCheck.get(4)) { + if (world.canBlockSeeTheSky(x, y+2, z)){ + + for(int i = 1; i <11; i++){ + //world.setBlockMetadataWithNotify(x, y, z, 1, 2); + world.spawnParticle("cloud", x + a, y+i+1, z + s, 0, 0.1F, 0); + world.spawnParticle("largesmoke", x + a, y+i+1, z + s, 0, 0.1F, 0); + world.spawnParticle("cloud", x + s, y+i+1, z + a, 0, 0.1F, 0); + world.spawnParticle("largesmoke", x + s, y+i+1, z + a, 0, 0.1F, 0); + world.spawnParticle("cloud", x + a, y+i+1, z + a, 0, 0.1F, 0); + world.spawnParticle("largesmoke", x + a, y+i+1, z + a, 0, 0.1F, 0); + world.spawnParticle("cloud", x + s, y+i+1, z + s, 0, 0.1F, 0); + world.spawnParticle("largesmoke", x + s, y+i+1, z + s, 0, 0.1F, 0); + } + } + }*/ + + } + + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + TileEntityTestForge tileEntTestForge = (TileEntityTestForge) world.getTileEntity(x, y, z); + + if (tileEntTestForge != null) { + for (int i = 0; i < tileEntTestForge.getSizeInventory(); ++i) { + ItemStack itemstack = tileEntTestForge.getStackInSlot(i); + + if (itemstack != null) { + float f = this.random.nextFloat() * 0.6F + 0.1F; + float f1 = this.random.nextFloat() * 0.6F + 0.1F; + float f2 = this.random.nextFloat() * 0.6F + 0.1F; + + while (itemstack.stackSize > 0) { + int j = this.random.nextInt(21) + 10; + + if (j > itemstack.stackSize) { + j = itemstack.stackSize; + } + + itemstack.stackSize -= j; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j, itemstack.getItemDamage())); + + if (itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound(((NBTTagCompound) itemstack.getTagCompound().copy())); + } + + float f3 = 0.025F; + entityitem.motionX = (float) this.random.nextGaussian() * f3; + entityitem.motionY = (float) this.random.nextGaussian() * f3 + 0.1F; + entityitem.motionZ = (float) this.random.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } +} + + + + + + + + + + + + + + + + + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/WaterFilter.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/WaterFilter.java new file mode 100644 index 00000000..f8cb87e7 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/WaterFilter.java @@ -0,0 +1,79 @@ +package com.kitsu.medievalcraft.block.machines; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.machine.TileEntityWaterFilter; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class WaterFilter extends BlockContainer { + + public WaterFilter(String unlocalizedName, Material material) { + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(5.0F); + this.setHarvestLevel("pickaxe", 1, 0); + this.setStepSound(Block.soundTypeStone); + //xmin, ymin, zmin, + //xmax, ymax, zmax + //this.setBlockBounds(0.17F, 0.0F, 0.315F, + //0.8F, 0.15F, 0.725F); + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntityWaterFilter(); + } + + @Override + public int getRenderType() { + return RenderId.waterFilterID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { + super.randomDisplayTick(world, x, y, z, random); + if((world.getBlock(x, y+1, z).equals(Blocks.water)) && world.getBlock(x, y-1, z).equals(Blocks.air)){ + if (random.nextInt(8) == 0) { + world.spawnParticle("bubble", x + 0.3D, y + 1.1D, z + 0.34D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(8) == 1) { + world.spawnParticle("bubble", x + 0.3D, y + 1.1D, z + 0.34D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(8) == 2) { + world.spawnParticle("bubble", x + 0.75D, y + 1.1D, z + 0.6D, 0.0D, 0.0D, 0.0D); + } + if (random.nextInt(8) == 3) { + world.spawnParticle("bubble", x + 0.45D, y + 1.1D, z + 0.75D, 0.0D, 0.0D, 0.0D); + } + } + } +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/formTable.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/formTable.java new file mode 100644 index 00000000..934d83a0 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/machines/formTable.java @@ -0,0 +1,67 @@ +package com.kitsu.medievalcraft.block.machines; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.gui.GuiHandler; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class formTable extends Block { + + + + @SideOnly(Side.CLIENT) + private IIcon formTableTop; + /* + @SideOnly(Side.CLIENT) + private IIcon formTableSide; */ + + public formTable(String unlocalizedName, Material material) { + super(material); + + this.setBlockName(unlocalizedName); + //this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.5F); + this.setResistance(2.0F); + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon (int side, int metadata) { + + return side == 1 ? this.formTableTop : this.blockIcon; + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons (IIconRegister iconRegister) { + + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "formTableSide"); + this.formTableTop = iconRegister.registerIcon(Main.MODID + ":" + "formTableTop"); + } + + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + + if (!player.isSneaking()) { + player.openGui(Main.instance, GuiHandler.guiIDformTable, world, x, y, z); + return true; + } + return false; + } + +} + + + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/shitBlock.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/shitBlock.java new file mode 100644 index 00000000..7f605b53 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/shitBlock.java @@ -0,0 +1,59 @@ + +package com.kitsu.medievalcraft.block; + + +import static net.minecraftforge.common.util.ForgeDirection.UP; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.WorldProviderEnd; +import net.minecraftforge.common.util.ForgeDirection; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +public class shitBlock extends Block { + + protected shitBlock(String unlocalizedName, Material material) { + + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(2.0F); + this.setResistance(6.0F); + this.setHarvestLevel("shovel", 0); + this.setStepSound(soundTypeSnow); + this.setTickRandomly(true); + + } + + public void updateTick(World world, int x, int y, int z, Random random){ + //System.out.println("Block Tick"); + if(random.nextInt(100)==0){ + //System.out.println("Random Method Fired"); + //world.setBlock(x, y, z, Blocks.air, 0, 2); + world.func_147480_a(x, y, z, false); + } + } + + @Override + public boolean isFireSource(World world, int x, int y, int z, ForgeDirection side) + { + if (this == ModBlocks.shitblock && side == UP) + { + return true; + } + if ((world.provider instanceof WorldProviderEnd) && this == Blocks.bedrock && side == UP) + { + return true; + } + return false; + } + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/ShelfFour.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/ShelfFour.java new file mode 100644 index 00000000..9542c7c5 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/ShelfFour.java @@ -0,0 +1,1154 @@ +package com.kitsu.medievalcraft.block.wood; + +import java.util.Random; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.packethandle.curedLeather.MsgPacketCuredLeatherX; +import com.kitsu.medievalcraft.packethandle.shelf.MsgPacketShelfCase; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.machine.TileEntityFirebox; +import com.kitsu.medievalcraft.tileents.machine.TileEntityShelfFour; +import com.kitsu.medievalcraft.tileents.machine.TileEntitySolidFilter; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.play.server.S2FPacketSetSlot; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityChest; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class ShelfFour extends BlockContainer{ + + private final Random random = new Random(); + private int meta; + private int c; + public static int caseType; + private float mopX, mopY, mopZ, mopBlockX, mopBlockY, mopBlockZ; + public ItemStack stack0; + + public ShelfFour(String unlocalizedName, Material material) { + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(5.0F); + this.setHarvestLevel("pickaxe", 1, 0); + this.setStepSound(Block.soundTypeStone); + + //xmin, ymin, zmin, + //xmax, ymax, zmax + //this.setBlockBounds(0.1F, 0.01F, 0.1F, + //0.9F, 1.0F, 0.9F); + } + + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + TileEntityShelfFour tileEnt = (TileEntityShelfFour) world.getTileEntity(x, y, z); + + if(world.isRemote){ + MovingObjectPosition mop = Minecraft.getMinecraft().renderViewEntity.rayTrace(5, 1.0F); + mopX = (float) mop.hitVec.xCoord; + mopY = (float) mop.hitVec.yCoord; + mopZ = (float) mop.hitVec.zCoord; + mopBlockX = mop.blockX; + mopBlockY = mop.blockY; + mopBlockZ = mop.blockZ; + + //METADATA 0 + //CASE 0 + if((world.getBlockMetadata(x, y, z) == 0) + && (mopX > mopBlockX+0.5f) + && (mopY > mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX) + && ((Math.floor(mopY)) == mopBlockY) + && (Math.floor(mopZ) == mopBlockZ)){ + //System.out.println("Case 0"); + c = 0; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + //CASE 1 + if((world.getBlockMetadata(x, y, z) == 0) + && (mopX < mopBlockX+0.5f) + && (mopY > mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX) + && ((Math.floor(mopY)) == mopBlockY) + && (Math.floor(mopZ) == mopBlockZ)){ + //System.out.println("Case 1"); + c = 1; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + //CASE 2 + if((world.getBlockMetadata(x, y, z) == 0) + && (mopX > mopBlockX+0.5f) + && (mopY < mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX) + && ((Math.floor(mopY)) == mopBlockY) + && (Math.floor(mopZ) == mopBlockZ)){ + //System.out.println("Case 2"); + c = 2; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + //CASE 3 + if((world.getBlockMetadata(x, y, z) == 0) + && (mopX < mopBlockX+0.5f) + && (mopY < mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX) + && ((Math.floor(mopY) == mopBlockY)) + && (Math.floor(mopZ) == mopBlockZ)){ + //System.out.println("Case 3"); + c = 3; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + + //METADATA 2 + //CASE 4 + if((world.getBlockMetadata(x, y, z) == 2) + && (mopX < mopBlockX+0.5f) + && (mopY > mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX) + && (Math.floor(mopY) == mopBlockY) + && (Math.floor(mopZ) == mopBlockZ+1)){ + //System.out.println("Case 4"); + c = 4; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + //CASE 5 + if((world.getBlockMetadata(x, y, z) == 2) + && (mopX > mopBlockX+0.5f) + && (mopY > mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX) + && (Math.floor(mopY) == mopBlockY) + && (Math.floor(mopZ) == mopBlockZ+1)){ + //System.out.println("Case 5"); + c = 5; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + //CASE 6 + if((world.getBlockMetadata(x, y, z) == 2) + && (mopX < mopBlockX+0.5f) + && (mopY < mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX) + && (Math.floor(mopY) == mopBlockY) + && (Math.floor(mopZ) == mopBlockZ+1)){ + //System.out.println("Case 6"); + c = 6; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + //CASE 7 + if((world.getBlockMetadata(x, y, z) == 2) + && (mopX > mopBlockX+0.5f) + && (mopY < mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX) + && (Math.floor(mopY) == mopBlockY) + && (Math.floor(mopZ) == mopBlockZ+1)){ + //System.out.println("Case 7"); + c = 7; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + + //METADATA 1 + //CASE 8 + if((world.getBlockMetadata(x, y, z) == 1) + && (mopZ > mopBlockZ+0.5f) + && (mopY > mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX+1) + && ((Math.floor(mopY) == mopBlockY) + && (Math.floor(mopZ)) == mopBlockZ)){ + //System.out.println("Case 8"); + c = 8; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + //CASE 9 + if((world.getBlockMetadata(x, y, z) == 1) + && (mopZ < mopBlockZ+0.5f) + && (mopY > mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX+1) + && ((Math.floor(mopY) == mopBlockY) + && (Math.floor(mopZ)) == mopBlockZ)){ + //System.out.println("Case 9"); + c = 9; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + //CASE 10 + if((world.getBlockMetadata(x, y, z) == 1) + && (mopZ > mopBlockZ+0.5f) + && (mopY < mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX+1) + && ((Math.floor(mopY) == mopBlockY) + && (Math.floor(mopZ)) == mopBlockZ)){ + //System.out.println("Case 10"); + c = 10; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + //CASE 11 + if((world.getBlockMetadata(x, y, z) == 1) + && (mopZ < mopBlockZ+0.5f) + && (mopY < mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX+1) + && ((Math.floor(mopY) == mopBlockY) + && (Math.floor(mopZ)) == mopBlockZ)){ + //System.out.println("Case 11"); + c = 11; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + + //METADATA 3 + //CASE 12 + if((world.getBlockMetadata(x, y, z) == 3) + && (mopZ < mopBlockZ+0.5f) + && (mopY > mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX) + && ((Math.floor(mopY) == mopBlockY) + && (Math.floor(mopZ)) == mopBlockZ)){ + //System.out.println("Case 12"); + c = 12; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + //CASE 13 + if((world.getBlockMetadata(x, y, z) == 3) + && (mopZ > mopBlockZ+0.5f) + && (mopY > mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX) + && ((Math.floor(mopY) == mopBlockY) + && (Math.floor(mopZ)) == mopBlockZ)){ + //System.out.println("Case 13"); + c = 13; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + //CASE 14 + if((world.getBlockMetadata(x, y, z) == 3) + && (mopZ < mopBlockZ+0.5f) + && (mopY < mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX) + && ((Math.floor(mopY) == mopBlockY) + && (Math.floor(mopZ)) == mopBlockZ)){ + //System.out.println("Case 14"); + c = 14; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + //Case 15 + if((world.getBlockMetadata(x, y, z) == 3) + && (mopZ > mopBlockZ+0.5f) + && (mopY < mopBlockY+0.5f) + && (Math.floor(mopX) == mopBlockX) + && ((Math.floor(mopY) == mopBlockY) + && (Math.floor(mopZ)) == mopBlockZ)){ + //System.out.println("Case 15"); + c = 15; + Main.sNet.sendToServer(new MsgPacketShelfCase((int) c)); + } + } + + /* + * METADATA 0 + * Meta 0 slot 0 = 0 + * Meta 0 slot 1 = 1 + * Meta 0 slot 2 = 2 + * Meta 0 slot 3 = 3 + * + * METADATA 2 + * Meta 2 slot 0 = 4 + * Meta 2 slot 1 = 5 + * Meta 2 slot 2 = 6 + * Meta 2 slot 3 = 7 + * + * METADATA 1 + * Meta 1 slot 0 = 8 + * Meta 1 slot 1 = 9 + * Meta 1 slot 2 = 10 + * Meta 1 slot 3 = 11 + * + * METADATA 3 + * Meta 3 slot 0 = 12 + * Meta 3 slot 1 = 13 + * Meta 3 slot 2 = 14 + * Meta 3 slot 3 = 15 + * + * */ + if(!world.isRemote){ + + //This will pull items of the Top Left Slot Also considered the 0 Slot + if(caseType == 0){ + //System.out.println("Meta 0 Stack 0"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(0)==null){ + tileEnt.setInventorySlotContents(0, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + } + if (tileEnt.getStackInSlot(0)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(0).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(0).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(0).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(0, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(0)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(0)); + tileEnt.setInventorySlotContents(0, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(0).getItem()) )){ + if(tileEnt.getStackInSlot(0)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(0).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(0, 1); + } + } + return true; + } + } + //Top Right Slot of the Shelf Slot 1 + if(caseType == 1){ + //System.out.println("Stack 1"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(1)==null){ + tileEnt.setInventorySlotContents(1, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //System.out.println("Stack 1 Statement 1 completed"); + } + if (tileEnt.getStackInSlot(1)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(1).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(1).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(1).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(1, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(1)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(1)); + tileEnt.setInventorySlotContents(1, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(1).getItem()) )){ + if(tileEnt.getStackInSlot(1)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(1).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(1, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + //Bottom Left Slot of the Shelf Slot 2 + if(caseType == 2){ + //System.out.println("Stack 2"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(2)==null){ + tileEnt.setInventorySlotContents(2, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //System.out.println("Stack 1 Statement 1 completed"); + } + if (tileEnt.getStackInSlot(2)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(2).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(2).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(2).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(2, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(2)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(2)); + tileEnt.setInventorySlotContents(2, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(2).getItem()) )){ + if(tileEnt.getStackInSlot(2)!=null){//RenderManager.instance.renderEntityWithPosYaw(this.entItem, 0.45D, 0.95D, 1.25D, 0.0F, 0.0F); + ItemStack pStack = tileEnt.getStackInSlot(2).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(2, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + + //Bottom Right Slot of the Shelf Slot 3 + if(caseType == 3){ + //System.out.println("Stack 2"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(3)==null){ + tileEnt.setInventorySlotContents(3, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //System.out.println("Stack 1 Statement 1 completed"); + } + if (tileEnt.getStackInSlot(3)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(3).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(3).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(3).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(3, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(3)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(3)); + tileEnt.setInventorySlotContents(3, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(3).getItem()) )){ + if(tileEnt.getStackInSlot(3)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(3).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(3, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + + + //METADATA 2 + + + if(caseType == 4){ + //System.out.println(""); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(0)==null){ + tileEnt.setInventorySlotContents(0, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + } + if (tileEnt.getStackInSlot(0)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(0).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(0).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(0).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(0, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(0)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(0)); + tileEnt.setInventorySlotContents(0, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(0).getItem()) )){ + if(tileEnt.getStackInSlot(0)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(0).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(0, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + //Top Right Slot of the Shelf Slot 1 + if(caseType == 5){ + //System.out.println("Stack 1"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(1)==null){ + tileEnt.setInventorySlotContents(1, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //System.out.println("Stack 1 Statement 1 completed"); + } + if (tileEnt.getStackInSlot(1)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(1).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(1).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(1).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(1, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(1)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(1)); + tileEnt.setInventorySlotContents(1, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(1).getItem()) )){ + if(tileEnt.getStackInSlot(1)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(1).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(1, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + //Bottom Left Slot of the Shelf Slot 2 + if(caseType == 6){ + //System.out.println("Stack 2"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(2)==null){ + tileEnt.setInventorySlotContents(2, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //System.out.println("Stack 1 Statement 1 completed"); + } + if (tileEnt.getStackInSlot(2)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(2).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(2).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(2).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(2, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(2)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(2)); + tileEnt.setInventorySlotContents(2, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(2).getItem()) )){ + if(tileEnt.getStackInSlot(2)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(2).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(2, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + + //Bottom Right Slot of the Shelf Slot 3 + if(caseType == 7){ + //System.out.println("Stack 2"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(3)==null){ + tileEnt.setInventorySlotContents(3, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //System.out.println("Stack 1 Statement 1 completed"); + } + if (tileEnt.getStackInSlot(3)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(3).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(3).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(3).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(3, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(3)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(3)); + tileEnt.setInventorySlotContents(3, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(3).getItem()) )){ + if(tileEnt.getStackInSlot(3)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(3).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(3, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + + //METADATA 1 + + if(caseType == 8){ + //System.out.println("Meta 1 Slot 0"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(0)==null){ + tileEnt.setInventorySlotContents(0, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + } + if (tileEnt.getStackInSlot(0)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(0).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(0).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(0).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(0, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(0)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(0)); + tileEnt.setInventorySlotContents(0, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(0).getItem()) )){ + if(tileEnt.getStackInSlot(0)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(0).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(0, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + //Top Right Slot of the Shelf Slot 1 + if(caseType == 9){ + //System.out.println("Stack 1"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(1)==null){ + tileEnt.setInventorySlotContents(1, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //System.out.println("Stack 1 Statement 1 completed"); + } + if (tileEnt.getStackInSlot(1)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(1).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(1).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(1).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(1, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(1)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(1)); + tileEnt.setInventorySlotContents(1, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(1).getItem()) )){ + if(tileEnt.getStackInSlot(1)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(1).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(1, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + //Bottom Left Slot of the Shelf Slot 2 + if(caseType == 10){ + //System.out.println("Stack 2"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(2)==null){ + tileEnt.setInventorySlotContents(2, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //System.out.println("Stack 1 Statement 1 completed"); + } + if (tileEnt.getStackInSlot(2)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(2).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(2).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(2).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(2, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(2)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(2)); + tileEnt.setInventorySlotContents(2, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(2).getItem()) )){ + if(tileEnt.getStackInSlot(2)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(2).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(2, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + + //Bottom Right Slot of the Shelf Slot 3 + if(caseType == 11){ + //System.out.println("Stack 2"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(3)==null){ + tileEnt.setInventorySlotContents(3, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //System.out.println("Stack 1 Statement 1 completed"); + } + if (tileEnt.getStackInSlot(3)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(3).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(3).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(3).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(3, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(3)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(3)); + tileEnt.setInventorySlotContents(3, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(3).getItem()) )){ + if(tileEnt.getStackInSlot(3)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(3).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(3, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + + + + //META 3 + + + + + + if(caseType == 12){ + //System.out.println("Meta 1 Slot 0"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(0)==null){ + tileEnt.setInventorySlotContents(0, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + } + if (tileEnt.getStackInSlot(0)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(0).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(0).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(0).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(0, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(0)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(0)); + tileEnt.setInventorySlotContents(0, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(0).getItem()) )){ + if(tileEnt.getStackInSlot(0)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(0).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(0, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + //Top Right Slot of the Shelf Slot 1 + if(caseType == 13){ + //System.out.println("Stack 1"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(1)==null){ + tileEnt.setInventorySlotContents(1, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //System.out.println("Stack 1 Statement 1 completed"); + } + if (tileEnt.getStackInSlot(1)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(1).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(1).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(1).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(1, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(1)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(1)); + tileEnt.setInventorySlotContents(1, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(1).getItem()) )){ + if(tileEnt.getStackInSlot(1)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(1).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(1, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + //Bottom Left Slot of the Shelf Slot 2 + if(caseType == 14){ + //System.out.println("Stack 2"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(2)==null){ + tileEnt.setInventorySlotContents(2, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //System.out.println("Stack 1 Statement 1 completed"); + } + if (tileEnt.getStackInSlot(2)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(2).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(2).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(2).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(2, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(2)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(2)); + tileEnt.setInventorySlotContents(2, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(2).getItem()) )){ + if(tileEnt.getStackInSlot(2)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(2).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(2, 1); + } + } + return true; + } + //tileEnt.markDirty(); + } + + //Bottom Right Slot of the Shelf Slot 3 + if(caseType == 15){ + //System.out.println("Stack 2"); + if(player.inventory.getCurrentItem()!=null){ + if (tileEnt.getStackInSlot(3)==null){ + tileEnt.setInventorySlotContents(3, player.inventory.getCurrentItem()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, null); + //System.out.println("Stack 1 Statement 1 completed"); + } + if (tileEnt.getStackInSlot(3)!=null){ + if(player.inventory.getCurrentItem()!=null){ + if(tileEnt.getStackInSlot(3).stackSize<=63){ + ItemStack pStack = player.inventory.getCurrentItem().copy(); + ItemStack sStack = tileEnt.getStackInSlot(3).copy(); + ItemStack sStackTemp = tileEnt.getStackInSlot(3).copy(); + + sStackTemp.stackSize++; + if ((sStack.getItem().equals(pStack.getItem())) && (sStack.getItemDamage() == pStack.getItemDamage()) ){ + tileEnt.setInventorySlotContents(3, sStackTemp); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + return true; + } + if (player.isSneaking() && player.inventory.getCurrentItem()==null) { + if(tileEnt.getStackInSlot(3)!=null){ + player.inventory.setInventorySlotContents(player.inventory.currentItem, tileEnt.getStackInSlot(3)); + tileEnt.setInventorySlotContents(3, null); + } + return true; + } + if (!player.isSneaking()) { + if((player.inventory.getCurrentItem()==null) || (player.inventory.getCurrentItem().getItem().equals(tileEnt.getStackInSlot(3).getItem()) )){ + if(tileEnt.getStackInSlot(3)!=null){ + ItemStack pStack = tileEnt.getStackInSlot(3).copy(); + pStack.stackSize = 1; + world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, pStack)); + tileEnt.decrStackSize(3, 1); + } + } + return true; + } + } + } + tileEnt.markForUpdate(); + tileEnt.markDirty(); + return true; + } + + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + TileEntityShelfFour tileEnt = (TileEntityShelfFour) world.getTileEntity(x, y, z); + + if (tileEnt != null) { + for (int i = 0; i < tileEnt.getSizeInventory(); ++i) { + ItemStack itemstack = tileEnt.getStackInSlot(i); + + if (itemstack != null) { + float f = this.random.nextFloat() * 0.6F + 0.1F; + float f1 = this.random.nextFloat() * 0.6F + 0.1F; + float f2 = this.random.nextFloat() * 0.6F + 0.1F; + + while (itemstack.stackSize > 0) { + int j = this.random.nextInt(21) + 10; + + if (j > itemstack.stackSize) { + j = itemstack.stackSize; + } + + itemstack.stackSize -= j; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j, itemstack.getItemDamage())); + + if (itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound(((NBTTagCompound) itemstack.getTagCompound().copy())); + } + + float f3 = 0.025F; + entityitem.motionX = (float) this.random.nextGaussian() * f3; + entityitem.motionY = (float) this.random.nextGaussian() * f3 + 0.1F; + entityitem.motionZ = (float) this.random.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntityShelfFour(); + } + + @Override + public int getRenderType() { + return RenderId.shelfFourID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack p_149689_6_) { + //int dir = ; + + if(!world.isRemote){ + world.setBlockMetadataWithNotify(x, y, z, (MathHelper.floor_double((player.rotationYaw * 4F) / 360F + 0.5D) & 3), 2); + + } + world.markBlockForUpdate(x, y, z); + + //System.out.println((MathHelper.floor_double((player.rotationYaw * 4F) / 360F + 0.5D) & 3)); + } + + @SideOnly(Side.CLIENT) + public AxisAlignedBB getSelectedBoundingBoxFromPool(World p_149633_1_, int p_149633_2_, int p_149633_3_, int p_149633_4_) + { + this.setBlockBoundsBasedOnState(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + return super.getSelectedBoundingBoxFromPool(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + } + + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) + { + this.getDir(p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_)); + } + + public void getDir(int dir) + { + + if (dir == 0) + { //minX minY minZ, maxX, maxY, maxZ + this.setBlockBounds(0F, 0F, 0F, 1F, 1F, 0.5F); + } + + if (dir == 1) + { + this.setBlockBounds(0.5F, 0F, 0F, 1F, 1F, 1F); + } + + if (dir == 2) + { + this.setBlockBounds(0F, 0F, 0.5F, 1F, 1F, 1F); + //this.setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + if (dir == 3) + { + this.setBlockBounds(0F, 0F, 0F, 0.5F, 1F, 1F); + //this.setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/SmallBarrel.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/SmallBarrel.java new file mode 100644 index 00000000..6b563090 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/SmallBarrel.java @@ -0,0 +1,249 @@ +package com.kitsu.medievalcraft.block.wood; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.TileEntitySmallBarrel; +import com.kitsu.medievalcraft.util.CustomTab; + +public class SmallBarrel extends BlockContainer { + + public SmallBarrel(String unlocalizedName, Material material) { + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(1.0F); + this.setResistance(1.0F); + this.setHarvestLevel(null, 0); + this.setStepSound(soundTypeWood); + //xmin, ymin, zmin, + //xmax, ymax, zmax + this.setBlockBounds(0.125F, 0.0F, 0.125F, + 0.775F, 0.8F, 0.775F); + } + //MAKE CASES AND HAVE THEM RUN ON THE CLIENT AND SERVER TO UPDATE THE PLAYERS INVENTORY I GUESS SOME SHIT LIKE THAT + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack p_149689_6_) { + TileEntitySmallBarrel tile = (TileEntitySmallBarrel) world.getTileEntity(x, y, z); + tile.res="kitsumedievalcraft:models/UntitledBarrel.png"; + } + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + TileEntitySmallBarrel tile = (TileEntitySmallBarrel) world.getTileEntity(x, y, z); + //if(!world.isRemote){ + /*if(player.inventory.getCurrentItem()!=null){ + if(player.inventory.getCurrentItem().getItem()==ModItems.itemSmallBarrelLid){ + if(tile.lid==false){ + player.swingItem(); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + tile.lid=true; + if(tile.quanta==0){ + tile.type="empty"; + } + tile.markForUpdate(); + tile.markDirty(); + return true; + } + } + }*/ + if(player.inventory.getCurrentItem()!=null){ + if(player.inventory.getCurrentItem().getItem()==ModItems.soakedLeather){ + if((tile.scuddedloaded==false)&&(tile.soakedloaded==false)){ + player.inventory.decrStackSize(player.inventory.currentItem, 1); + tile.soakedloaded=true; + tile.markForUpdate(); + tile.markDirty(); + return true; + + } + } + } + if(player.inventory.getCurrentItem()!=null){ + if(player.inventory.getCurrentItem().getItem()==ModItems.scuddedLeather){ + if((tile.scuddedloaded==false)&&(tile.soakedloaded==false)){ + player.inventory.decrStackSize(player.inventory.currentItem, 1); + tile.scuddedloaded=true; + tile.markForUpdate(); + tile.markDirty(); + return true; + + } + } + } + if(player.inventory.getCurrentItem()!=null){ + if(player.inventory.getCurrentItem().getItem()==ModItems.tanninBucket){ + //if(tile.lid==false){ + if((tile.type.equals("empty"))||(tile.type.equals("tannin"))){ + tile.type = "tannin"; + if(tile.quanta < 2){ + ItemStack bucket = new ItemStack(Items.bucket, 1); + tile.quanta = tile.quanta+1; + player.inventory.decrStackSize(player.inventory.currentItem, 1); + player.inventory.addItemStackToInventory(bucket); + if(tile.quanta==1){ + tile.res = "kitsumedievalcraft:models/UntitledBarrelTan1.png"; + } + if(tile.quanta==2){ + tile.res = "kitsumedievalcraft:models/UntitledBarrelTan2.png"; + } + tile.markForUpdate(); + tile.markDirty(); + return true; + } + } + //} + } + } + if(player.inventory.getCurrentItem()!=null){ + if(player.inventory.getCurrentItem().getItem()==ModItems.slackBucket){ + //if(tile.lid==false){ + if((tile.type.equals("empty"))||(tile.type.equals("slack"))){ + tile.type = "slack"; + if(tile.quanta < 2){ + ItemStack bucket = new ItemStack(Items.bucket, 1); + tile.quanta = tile.quanta+1; + player.inventory.decrStackSize(player.inventory.currentItem, 1); + player.inventory.addItemStackToInventory(bucket); + if(tile.quanta==1){ + tile.res = "kitsumedievalcraft:models/UntitledBarrelSlack1.png"; + } + if(tile.quanta==2){ + tile.res = "kitsumedievalcraft:models/UntitledBarrelSlack2.png"; + } + tile.markForUpdate(); + tile.markDirty(); + return true; + } + } + //} + } + } + if(player.inventory.getCurrentItem()!=null){ + if(player.inventory.getCurrentItem().getItem()==Items.bucket){ + //if(tile.lid==false){ + if(tile.quanta>0){ + if(tile.type.equals("tannin")){ + tile.quanta--; + ItemStack bucket = new ItemStack(ModItems.tanninBucket); + player.inventory.addItemStackToInventory(bucket); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + if(tile.quanta==0){ + tile.type="empty"; + tile.res="kitsumedievalcraft:models/UntitledBarrel.png"; + } + if(tile.quanta==1){ + tile.res="kitsumedievalcraft:models/UntitledBarrelTan1.png"; + } + tile.markForUpdate(); + tile.markDirty(); + return true; + } + if(tile.type.equals("slack")){ + tile.quanta--; + ItemStack bucket = new ItemStack(ModItems.slackBucket); + player.inventory.addItemStackToInventory(bucket); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + if(tile.quanta==0){ + tile.type ="empty"; + tile.res="kitsumedievalcraft:models/UntitledBarrel.png"; + } + if(tile.quanta==1){ + tile.res="kitsumedievalcraft:models/UntitledBarrelSlack1.png"; + } + tile.markForUpdate(); + tile.markDirty(); + return true; + } + } + + //} + } + } + if(player.inventory.getCurrentItem()==null){ + /*if(tile.lid==true){ + ItemStack lid = new ItemStack(ModItems.itemSmallBarrelLid, 1); + //player.swingItem(); + //int p = player.inventory.getFirstEmptyStack(); + tile.lid=false; + player.inventory.addItemStackToInventory(lid); + //player.inventory.setInventorySlotContents(p, lid); + tile.markForUpdate(); + tile.markDirty(); + return true; + }*/ + //if(tile.lid==false){ + if(tile.scuddedready==true){ + ItemStack tanned = new ItemStack(ModItems.tannedLeather, 1); + player.inventory.addItemStackToInventory(tanned); + tile.scuddedready=false; + tile.scuddedloaded=false; + tile.markForUpdate(); + tile.markDirty(); + return true; + } + //} + //if(tile.lid==false){ + if(tile.soakedready==true){ + ItemStack slacked = new ItemStack(ModItems.slackedLeather, 1); + player.inventory.addItemStackToInventory(slacked); + tile.soakedready=false; + tile.soakedloaded=false; + tile.markForUpdate(); + tile.markDirty(); + return true; + } + //} + //if(tile.lid==false){ + if((tile.soakedready==false)&&(tile.scuddedready==false)){ + world.setBlockToAir(x, y, z); + ItemStack barrel = new ItemStack(ModBlocks.smallBarrel, 1); + player.inventory.addItemStackToInventory(barrel); + tile.markForUpdate(); + tile.markDirty(); + return true; + } + //} + } + tile.markForUpdate(); + tile.markDirty(); + + return true; + } + + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntitySmallBarrel(); + } + + @Override + public int getRenderType() { + return RenderId.smallBarrelID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + +} + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/SmallBarrelLid.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/SmallBarrelLid.java new file mode 100644 index 00000000..958c7d63 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/SmallBarrelLid.java @@ -0,0 +1,115 @@ +package com.kitsu.medievalcraft.block.wood; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.renderer.RenderId; +import com.kitsu.medievalcraft.tileents.TileEntitySmallLid; + +public class SmallBarrelLid extends BlockContainer { + + public SmallBarrelLid(String unlocalizedName, Material material) { + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + //this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(1.0F); + this.setResistance(1.0F); + this.setHarvestLevel(null, 0); + this.setStepSound(soundTypeWood); + //xmin, ymin, zmin, + //xmax, ymax, zmax + //this.setBlockBounds(0.17F, 0.0F, 0.315F, + // 0.8F, 0.15F, 0.725F); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block p_149749_5_, int p_149749_6_){ + if(!world.isRemote){ + TileEntitySmallLid tileLid = (TileEntitySmallLid) world.getTileEntity(x, y, z); + if(tileLid.ring<2){ + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModItems.itemSmallBarrelLid, 1, 0))); + //System.out.println(world.getTileEntity(x, y, z)); + //System.out.println(tileLid.logs); + if(tileLid.logs>0){ + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModItems.halfSplitBoard, tileLid.logs, 0))); + } + + } + + } + super.breakBlock(world, x, y, z, p_149749_5_, p_149749_6_); + } + + @Override + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) + { + return null; + } + + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(!world.isRemote){ + TileEntitySmallLid tileLid = (TileEntitySmallLid) world.getTileEntity(x, y, z); + if(player.inventory.getCurrentItem()!=null){ + if((player.getCurrentEquippedItem().getItem().equals(ModItems.halfSplitBoard))){ + if(tileLid.logs<8){ + player.inventory.decrStackSize(player.inventory.currentItem, 1); + tileLid.logs = tileLid.logs +1; + world.markBlockForUpdate(x, y, z); + return true; + } + } + } + if(player.inventory.getCurrentItem()!=null){ + if((player.getCurrentEquippedItem().getItem().equals(ModItems.saplingRing))){ + + if(tileLid.logs==8){ + player.inventory.decrStackSize(player.inventory.currentItem, 1); + tileLid.ring = tileLid.ring +1; + if(tileLid.ring==2){ + world.markBlockForUpdate(x, y, z); + return true; + } + } + } + } + } + return false; + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + + return new TileEntitySmallLid(); + } + + @Override + public int getRenderType() { + return RenderId.smallLidID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } +} + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanAcacia.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanAcacia.java new file mode 100644 index 00000000..7249578b --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanAcacia.java @@ -0,0 +1,112 @@ +package com.kitsu.medievalcraft.block.wood.clean; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRotatedPillar; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CleanAcacia extends BlockRotatedPillar { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public CleanAcacia(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(3.0F); + this.setStepSound(Block.soundTypeWood); + } + + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(player.inventory.getCurrentItem()!=null){ + if(player.getCurrentEquippedItem().getItem() instanceof ItemAxe){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":splitlog", 1.0F, 1.0F); + player.swingItem(); + if(world.rand.nextInt(4)==0){ + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.acaciaSplitLog, 4, 0))); + return true; + } + } + } + } + return false; + } + + public int onBlockPlaced(World p_149660_1_, int p_149660_2_, int p_149660_3_, int p_149660_4_, int p_149660_5_, float p_149660_6_, float p_149660_7_, float p_149660_8_, int p_149660_9_) + { + int j1 = p_149660_9_ & 3; + byte b0 = 0; + + switch (p_149660_5_) + { + case 0: + case 1: + b0 = 0; + break; + case 2: + case 3: + b0 = 8; + break; + case 4: + case 5: + b0 = 4; + } + + return j1 | b0; + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "cleanAcaciaSide"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "cleanAcaciaSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "cleanAcaciaTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "cleanAcaciaTop"); + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + int k = metadata & 12; + int l = metadata & 3; + return k == 0 && (side == 1 || side == 0) ? this.getTopIcon(l) : (k == 4 && (side == 5 || side == 4) ? this.getTopIcon(l) : (k == 8 && (side == 2 || side == 3) ? this.getTopIcon(l) : this.getSideIcon(l))); + } + + @SideOnly(Side.CLIENT) + protected IIcon getSideIcon(int p_150163_1_) + { + return this.iconSide; + } + + @SideOnly(Side.CLIENT) + protected IIcon getTopIcon(int p_150161_1_) + { + return this.iconTop; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanBirch.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanBirch.java new file mode 100644 index 00000000..a66037c6 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanBirch.java @@ -0,0 +1,113 @@ +package com.kitsu.medievalcraft.block.wood.clean; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRotatedPillar; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CleanBirch extends BlockRotatedPillar { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public CleanBirch(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(3.0F); + this.setStepSound(Block.soundTypeWood); + + } + +public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(player.inventory.getCurrentItem()!=null){ + if(player.getCurrentEquippedItem().getItem() instanceof ItemAxe){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":splitlog", 1.0F, 1.0F); + player.swingItem(); + if(world.rand.nextInt(4)==0){ + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.birchSplitLog, 4, 0))); + return true; + } + } + } + } + return false; + } + + public int onBlockPlaced(World p_149660_1_, int p_149660_2_, int p_149660_3_, int p_149660_4_, int p_149660_5_, float p_149660_6_, float p_149660_7_, float p_149660_8_, int p_149660_9_) + { + int j1 = p_149660_9_ & 3; + byte b0 = 0; + + switch (p_149660_5_) + { + case 0: + case 1: + b0 = 0; + break; + case 2: + case 3: + b0 = 8; + break; + case 4: + case 5: + b0 = 4; + } + + return j1 | b0; + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "cleanBirchSide"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "cleanBirchSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "cleanBirchTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "cleanBirchTop"); + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + int k = metadata & 12; + int l = metadata & 3; + return k == 0 && (side == 1 || side == 0) ? this.getTopIcon(l) : (k == 4 && (side == 5 || side == 4) ? this.getTopIcon(l) : (k == 8 && (side == 2 || side == 3) ? this.getTopIcon(l) : this.getSideIcon(l))); + } + + @SideOnly(Side.CLIENT) + protected IIcon getSideIcon(int p_150163_1_) + { + return this.iconSide; + } + + @SideOnly(Side.CLIENT) + protected IIcon getTopIcon(int p_150161_1_) + { + return this.iconTop; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanDarkOak.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanDarkOak.java new file mode 100644 index 00000000..d43d0db8 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanDarkOak.java @@ -0,0 +1,114 @@ +package com.kitsu.medievalcraft.block.wood.clean; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRotatedPillar; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CleanDarkOak extends BlockRotatedPillar { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public CleanDarkOak(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(3.0F); + this.setStepSound(Block.soundTypeWood); + + } + + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(player.inventory.getCurrentItem()!=null){ + if(player.getCurrentEquippedItem().getItem() instanceof ItemAxe){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":splitlog", 1.0F, 1.0F); + player.swingItem(); + if(world.rand.nextInt(4)==0){ + + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.darkSplitLog, 4, 0))); + return true; + } + } + } + } + return false; + } + + public int onBlockPlaced(World p_149660_1_, int p_149660_2_, int p_149660_3_, int p_149660_4_, int p_149660_5_, float p_149660_6_, float p_149660_7_, float p_149660_8_, int p_149660_9_) + { + int j1 = p_149660_9_ & 3; + byte b0 = 0; + + switch (p_149660_5_) + { + case 0: + case 1: + b0 = 0; + break; + case 2: + case 3: + b0 = 8; + break; + case 4: + case 5: + b0 = 4; + } + + return j1 | b0; + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "cleanDarkOakSide"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "cleanDarkOakSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "cleanDarkOakTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "cleanDarkOakTop"); + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + int k = metadata & 12; + int l = metadata & 3; + return k == 0 && (side == 1 || side == 0) ? this.getTopIcon(l) : (k == 4 && (side == 5 || side == 4) ? this.getTopIcon(l) : (k == 8 && (side == 2 || side == 3) ? this.getTopIcon(l) : this.getSideIcon(l))); + } + + @SideOnly(Side.CLIENT) + protected IIcon getSideIcon(int p_150163_1_) + { + return this.iconSide; + } + + @SideOnly(Side.CLIENT) + protected IIcon getTopIcon(int p_150161_1_) + { + return this.iconTop; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanJungle.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanJungle.java new file mode 100644 index 00000000..86f5d018 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanJungle.java @@ -0,0 +1,113 @@ +package com.kitsu.medievalcraft.block.wood.clean; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRotatedPillar; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CleanJungle extends BlockRotatedPillar { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public CleanJungle(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(3.0F); + this.setStepSound(Block.soundTypeWood); + + } + +public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(player.inventory.getCurrentItem()!=null){ + if(player.getCurrentEquippedItem().getItem() instanceof ItemAxe){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":splitlog", 1.0F, 1.0F); + player.swingItem(); + if(world.rand.nextInt(4)==0){ + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.jungleSplitLog, 4, 0))); + return true; + } + } + } + } + return false; + } + + public int onBlockPlaced(World p_149660_1_, int p_149660_2_, int p_149660_3_, int p_149660_4_, int p_149660_5_, float p_149660_6_, float p_149660_7_, float p_149660_8_, int p_149660_9_) + { + int j1 = p_149660_9_ & 3; + byte b0 = 0; + + switch (p_149660_5_) + { + case 0: + case 1: + b0 = 0; + break; + case 2: + case 3: + b0 = 8; + break; + case 4: + case 5: + b0 = 4; + } + + return j1 | b0; + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "cleanJungleSide"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "cleanJungleSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "cleanJungleTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "cleanJungleTop"); + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + int k = metadata & 12; + int l = metadata & 3; + return k == 0 && (side == 1 || side == 0) ? this.getTopIcon(l) : (k == 4 && (side == 5 || side == 4) ? this.getTopIcon(l) : (k == 8 && (side == 2 || side == 3) ? this.getTopIcon(l) : this.getSideIcon(l))); + } + + @SideOnly(Side.CLIENT) + protected IIcon getSideIcon(int p_150163_1_) + { + return this.iconSide; + } + + @SideOnly(Side.CLIENT) + protected IIcon getTopIcon(int p_150161_1_) + { + return this.iconTop; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanOak.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanOak.java new file mode 100644 index 00000000..413958d3 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanOak.java @@ -0,0 +1,113 @@ +package com.kitsu.medievalcraft.block.wood.clean; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRotatedPillar; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CleanOak extends BlockRotatedPillar { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public CleanOak(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(3.0F); + this.setStepSound(Block.soundTypeWood); + + } + +public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(player.inventory.getCurrentItem()!=null){ + if(player.getCurrentEquippedItem().getItem() instanceof ItemAxe){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":splitlog", 1.0F, 1.0F); + player.swingItem(); + if(world.rand.nextInt(4)==0){ + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.oakSplitLog, 4, 0))); + return true; + } + } + } + } + return false; + } + + public int onBlockPlaced(World p_149660_1_, int p_149660_2_, int p_149660_3_, int p_149660_4_, int p_149660_5_, float p_149660_6_, float p_149660_7_, float p_149660_8_, int p_149660_9_) + { + int j1 = p_149660_9_ & 3; + byte b0 = 0; + + switch (p_149660_5_) + { + case 0: + case 1: + b0 = 0; + break; + case 2: + case 3: + b0 = 8; + break; + case 4: + case 5: + b0 = 4; + } + + return j1 | b0; + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "cleanOakSide"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "cleanOakSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "cleanOakTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "cleanOakTop"); + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + int k = metadata & 12; + int l = metadata & 3; + return k == 0 && (side == 1 || side == 0) ? this.getTopIcon(l) : (k == 4 && (side == 5 || side == 4) ? this.getTopIcon(l) : (k == 8 && (side == 2 || side == 3) ? this.getTopIcon(l) : this.getSideIcon(l))); + } + + @SideOnly(Side.CLIENT) + protected IIcon getSideIcon(int p_150163_1_) + { + return this.iconSide; + } + + @SideOnly(Side.CLIENT) + protected IIcon getTopIcon(int p_150161_1_) + { + return this.iconTop; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanSpruce.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanSpruce.java new file mode 100644 index 00000000..204aa1ed --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/clean/CleanSpruce.java @@ -0,0 +1,114 @@ +package com.kitsu.medievalcraft.block.wood.clean; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRotatedPillar; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CleanSpruce extends BlockRotatedPillar { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public CleanSpruce(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(3.0F); + this.setStepSound(Block.soundTypeWood); + + } + +public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(player.inventory.getCurrentItem()!=null){ + if(player.getCurrentEquippedItem().getItem() instanceof ItemAxe){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":splitlog", 1.0F, 1.0F); + player.swingItem(); + if(world.rand.nextInt(4)==0){ + + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModBlocks.spruceSplitLog, 4, 0))); + return true; + } + } + } + } + return false; + } + + public int onBlockPlaced(World p_149660_1_, int p_149660_2_, int p_149660_3_, int p_149660_4_, int p_149660_5_, float p_149660_6_, float p_149660_7_, float p_149660_8_, int p_149660_9_) + { + int j1 = p_149660_9_ & 3; + byte b0 = 0; + + switch (p_149660_5_) + { + case 0: + case 1: + b0 = 0; + break; + case 2: + case 3: + b0 = 8; + break; + case 4: + case 5: + b0 = 4; + } + + return j1 | b0; + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "cleanSpruceSide"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "cleanSpruceSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "cleanSpruceTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "cleanSpruceTop"); + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + int k = metadata & 12; + int l = metadata & 3; + return k == 0 && (side == 1 || side == 0) ? this.getTopIcon(l) : (k == 4 && (side == 5 || side == 4) ? this.getTopIcon(l) : (k == 8 && (side == 2 || side == 3) ? this.getTopIcon(l) : this.getSideIcon(l))); + } + + @SideOnly(Side.CLIENT) + protected IIcon getSideIcon(int p_150163_1_) + { + return this.iconSide; + } + + @SideOnly(Side.CLIENT) + protected IIcon getTopIcon(int p_150161_1_) + { + return this.iconTop; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/AcaciaSplitLog.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/AcaciaSplitLog.java new file mode 100644 index 00000000..bfe1a67a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/AcaciaSplitLog.java @@ -0,0 +1,189 @@ +package com.kitsu.medievalcraft.block.wood.quartersplit; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRotatedPillar; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class AcaciaSplitLog extends BlockRotatedPillar { + + @SideOnly(Side.CLIENT) + private IIcon blockIcon; + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public AcaciaSplitLog(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(3.0F); + this.setStepSound(Block.soundTypeWood); + this.setBlockBounds(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "cleanAcaciaSide"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "acaciaSplitLogSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "acaciaSplitLogTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "acaciaSplitLogTop"); + } + + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(player.inventory.getCurrentItem()!=null){ + if(player.getCurrentEquippedItem().getItem() instanceof ItemAxe){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":splitlog", 1.0F, 1.0F); + player.swingItem(); + if(world.rand.nextInt(2)==0){ + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModItems.splitBoard, 4, 0))); + return true; + } + } + } + } + return false; + } + + public int onBlockPlaced(World world, int x, int y, int z, int side, float hitx, float hity, float hitz, int meta) + { + //System.out.println(side); + int j1 = meta & 3; + byte b0 = 0; + + switch (side) + { + case 0: + b0=0; + break; + case 1: + b0=0; + break; + case 2: + b0=8; + break; + case 3: + b0=8; + break; + case 4: + b0=4; + case 5: + b0=4; + } + + return j1 | b0; + } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) + { + this.setBlockBoundsBasedOnState(p_149668_1_, p_149668_2_, p_149668_3_, p_149668_4_); + return super.getCollisionBoundingBoxFromPool(p_149668_1_, p_149668_2_, p_149668_3_, p_149668_4_); + } + + /** + * Updates the blocks bounds based on its current state. Args: world, x, y, z + */ + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) + { + this.func_149797_b(p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_)); + } + + /** + * Returns the bounding box of the wired rectangular prism to render. + */ + @SideOnly(Side.CLIENT) + public AxisAlignedBB getSelectedBoundingBoxFromPool(World p_149633_1_, int p_149633_2_, int p_149633_3_, int p_149633_4_) + { + this.setBlockBoundsBasedOnState(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + return super.getSelectedBoundingBoxFromPool(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + } + + public void func_149797_b(int p_149797_1_) + { + + if (p_149797_1_ == 0) + { + this.setBlockBounds(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + } + + if (p_149797_1_ == 4) + { + this.setBlockBounds(0.0F, 0.25F, 0.25F, 1.0F, 0.75F, 0.75F); + } + + if (p_149797_1_ == 8) + { + this.setBlockBounds(0.25F, 0.25F, 0.0F, 0.75F, 0.75F, 1.0F); + //this.setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + } + + + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + int k = metadata & 12; + int l = metadata & 3; + return k == 0 && (side == 1 || side == 0) ? this.getTopIcon(l) : (k == 4 && (side == 5 || side == 4) ? this.getTopIcon(l) : (k == 8 && (side == 2 || side == 3) ? this.getTopIcon(l) : this.getSideIcon(l))); + } + + @SideOnly(Side.CLIENT) + protected IIcon getSideIcon(int p_150163_1_) + { + return this.iconSide; + } + + @SideOnly(Side.CLIENT) + protected IIcon getTopIcon(int p_150161_1_) + { + return this.iconTop; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess access, int x, int y, int z, int side) + { + return true; + } + @Override + public boolean isOpaqueCube() + { + return false; + } + + @Override + public boolean renderAsNormalBlock() + { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/BirchSplitLog.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/BirchSplitLog.java new file mode 100644 index 00000000..bba3f5b6 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/BirchSplitLog.java @@ -0,0 +1,188 @@ +package com.kitsu.medievalcraft.block.wood.quartersplit; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRotatedPillar; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BirchSplitLog extends BlockRotatedPillar { + + @SideOnly(Side.CLIENT) + private IIcon blockIcon; + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public BirchSplitLog(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(3.0F); + this.setStepSound(Block.soundTypeWood); + this.setBlockBounds(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "cleanBirchSide"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "birchSplitLogSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "birchSplitLogTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "birchSplitLogTop"); + } + + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(player.inventory.getCurrentItem()!=null){ + if(player.getCurrentEquippedItem().getItem() instanceof ItemAxe){ + player.swingItem(); + player.worldObj.playSoundAtEntity(player, Main.MODID + ":splitlog", 1.0F, 1.0F); + if(world.rand.nextInt(2)==0){ + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModItems.splitBoard, 4, 0))); + return true; + } + } + } + } + return false; + } + + public int onBlockPlaced(World world, int x, int y, int z, int side, float hitx, float hity, float hitz, int meta) + { + //System.out.println(side); + int j1 = meta & 3; + byte b0 = 0; + + switch (side) + { + case 0: + b0=0; + break; + case 1: + b0=0; + break; + case 2: + b0=8; + break; + case 3: + b0=8; + break; + case 4: + b0=4; + case 5: + b0=4; + } + + return j1 | b0; + } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) + { + this.setBlockBoundsBasedOnState(p_149668_1_, p_149668_2_, p_149668_3_, p_149668_4_); + return super.getCollisionBoundingBoxFromPool(p_149668_1_, p_149668_2_, p_149668_3_, p_149668_4_); + } + + /** + * Updates the blocks bounds based on its current state. Args: world, x, y, z + */ + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) + { + this.func_149797_b(p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_)); + } + + /** + * Returns the bounding box of the wired rectangular prism to render. + */ + @SideOnly(Side.CLIENT) + public AxisAlignedBB getSelectedBoundingBoxFromPool(World p_149633_1_, int p_149633_2_, int p_149633_3_, int p_149633_4_) + { + this.setBlockBoundsBasedOnState(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + return super.getSelectedBoundingBoxFromPool(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + } + + public void func_149797_b(int p_149797_1_) + { + + if (p_149797_1_ == 0) + { + this.setBlockBounds(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + } + + if (p_149797_1_ == 4) + { + this.setBlockBounds(0.0F, 0.25F, 0.25F, 1.0F, 0.75F, 0.75F); + } + + if (p_149797_1_ == 8) + { + this.setBlockBounds(0.25F, 0.25F, 0.0F, 0.75F, 0.75F, 1.0F); + //this.setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + //this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + int k = metadata & 12; + int l = metadata & 3; + return k == 0 && (side == 1 || side == 0) ? this.getTopIcon(l) : (k == 4 && (side == 5 || side == 4) ? this.getTopIcon(l) : (k == 8 && (side == 2 || side == 3) ? this.getTopIcon(l) : this.getSideIcon(l))); + } + + @SideOnly(Side.CLIENT) + protected IIcon getSideIcon(int p_150163_1_) + { + return this.iconSide; + } + + @SideOnly(Side.CLIENT) + protected IIcon getTopIcon(int p_150161_1_) + { + return this.iconTop; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess access, int x, int y, int z, int side) + { + return true; + } + @Override + public boolean isOpaqueCube() + { + return false; + } + + @Override + public boolean renderAsNormalBlock() + { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/DarkSplitLog.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/DarkSplitLog.java new file mode 100644 index 00000000..b547a8cd --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/DarkSplitLog.java @@ -0,0 +1,184 @@ +package com.kitsu.medievalcraft.block.wood.quartersplit; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRotatedPillar; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class DarkSplitLog extends BlockRotatedPillar { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public DarkSplitLog(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(3.0F); + this.setStepSound(Block.soundTypeWood); + this.setBlockBounds(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "darkSplitLogIcon"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "darkSplitLogSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "darkSplitLogTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "darkSplitLogTop"); + } + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(player.inventory.getCurrentItem()!=null){ + if(player.getCurrentEquippedItem().getItem() instanceof ItemAxe){ + player.swingItem(); + player.worldObj.playSoundAtEntity(player, Main.MODID + ":splitlog", 1.0F, 1.0F); + if(world.rand.nextInt(2)==0){ + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModItems.splitBoard, 4, 0))); + return true; + } + } + } + } + return false; + } + + public int onBlockPlaced(World world, int x, int y, int z, int side, float hitx, float hity, float hitz, int meta) + { + //System.out.println(side); + int j1 = meta & 3; + byte b0 = 0; + + switch (side) + { + case 0: + b0=0; + break; + case 1: + b0=0; + break; + case 2: + b0=8; + break; + case 3: + b0=8; + break; + case 4: + b0=4; + case 5: + b0=4; + } + + return j1 | b0; + } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) + { + this.setBlockBoundsBasedOnState(p_149668_1_, p_149668_2_, p_149668_3_, p_149668_4_); + return super.getCollisionBoundingBoxFromPool(p_149668_1_, p_149668_2_, p_149668_3_, p_149668_4_); + } + + /** + * Updates the blocks bounds based on its current state. Args: world, x, y, z + */ + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) + { + this.func_149797_b(p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_)); + } + + /** + * Returns the bounding box of the wired rectangular prism to render. + */ + @SideOnly(Side.CLIENT) + public AxisAlignedBB getSelectedBoundingBoxFromPool(World p_149633_1_, int p_149633_2_, int p_149633_3_, int p_149633_4_) + { + this.setBlockBoundsBasedOnState(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + return super.getSelectedBoundingBoxFromPool(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + } + + public void func_149797_b(int p_149797_1_) + { + + if (p_149797_1_ == 0) + { + this.setBlockBounds(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + } + + if (p_149797_1_ == 4) + { + this.setBlockBounds(0.0F, 0.25F, 0.25F, 1.0F, 0.75F, 0.75F); + } + + if (p_149797_1_ == 8) + { + this.setBlockBounds(0.25F, 0.25F, 0.0F, 0.75F, 0.75F, 1.0F); + //this.setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + //this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + int k = metadata & 12; + int l = metadata & 3; + return k == 0 && (side == 1 || side == 0) ? this.getTopIcon(l) : (k == 4 && (side == 5 || side == 4) ? this.getTopIcon(l) : (k == 8 && (side == 2 || side == 3) ? this.getTopIcon(l) : this.getSideIcon(l))); + } + + @SideOnly(Side.CLIENT) + protected IIcon getSideIcon(int p_150163_1_) + { + return this.iconSide; + } + + @SideOnly(Side.CLIENT) + protected IIcon getTopIcon(int p_150161_1_) + { + return this.iconTop; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess access, int x, int y, int z, int side) + { + return true; + } + @Override + public boolean isOpaqueCube() + { + return false; + } + + @Override + public boolean renderAsNormalBlock() + { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/JungleSplitLog.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/JungleSplitLog.java new file mode 100644 index 00000000..ab67e300 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/JungleSplitLog.java @@ -0,0 +1,186 @@ +package com.kitsu.medievalcraft.block.wood.quartersplit; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRotatedPillar; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class JungleSplitLog extends BlockRotatedPillar { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public JungleSplitLog(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(3.0F); + this.setStepSound(Block.soundTypeWood); + this.setBlockBounds(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "jungleSplitLogIcon"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "jungleSplitLogSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "jungleSplitLogTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "jungleSplitLogTop"); + } + + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(player.inventory.getCurrentItem()!=null){ + if(player.getCurrentEquippedItem().getItem() instanceof ItemAxe){ + player.swingItem(); + player.worldObj.playSoundAtEntity(player, Main.MODID + ":splitlog", 1.0F, 1.0F); + if(world.rand.nextInt(2)==0){ + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModItems.splitBoard, 4, 0))); + return true; + } + } + } + } + return false; + } + + public int onBlockPlaced(World world, int x, int y, int z, int side, float hitx, float hity, float hitz, int meta) + { + //System.out.println(side); + int j1 = meta & 3; + byte b0 = 0; + + switch (side) + { + case 0: + b0=0; + break; + case 1: + b0=0; + break; + case 2: + b0=8; + break; + case 3: + b0=8; + break; + case 4: + b0=4; + case 5: + b0=4; + } + + return j1 | b0; + } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) + { + this.setBlockBoundsBasedOnState(p_149668_1_, p_149668_2_, p_149668_3_, p_149668_4_); + return super.getCollisionBoundingBoxFromPool(p_149668_1_, p_149668_2_, p_149668_3_, p_149668_4_); + } + + /** + * Updates the blocks bounds based on its current state. Args: world, x, y, z + */ + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) + { + this.func_149797_b(p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_)); + } + + /** + * Returns the bounding box of the wired rectangular prism to render. + */ + @SideOnly(Side.CLIENT) + public AxisAlignedBB getSelectedBoundingBoxFromPool(World p_149633_1_, int p_149633_2_, int p_149633_3_, int p_149633_4_) + { + this.setBlockBoundsBasedOnState(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + return super.getSelectedBoundingBoxFromPool(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + } + + public void func_149797_b(int p_149797_1_) + { + + if (p_149797_1_ == 0) + { + this.setBlockBounds(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + } + + if (p_149797_1_ == 4) + { + this.setBlockBounds(0.0F, 0.25F, 0.25F, 1.0F, 0.75F, 0.75F); + } + + if (p_149797_1_ == 8) + { + this.setBlockBounds(0.25F, 0.25F, 0.0F, 0.75F, 0.75F, 1.0F); + //this.setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + } + + + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + int k = metadata & 12; + int l = metadata & 3; + return k == 0 && (side == 1 || side == 0) ? this.getTopIcon(l) : (k == 4 && (side == 5 || side == 4) ? this.getTopIcon(l) : (k == 8 && (side == 2 || side == 3) ? this.getTopIcon(l) : this.getSideIcon(l))); + } + + @SideOnly(Side.CLIENT) + protected IIcon getSideIcon(int p_150163_1_) + { + return this.iconSide; + } + + @SideOnly(Side.CLIENT) + protected IIcon getTopIcon(int p_150161_1_) + { + return this.iconTop; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess access, int x, int y, int z, int side) + { + return true; + } + @Override + public boolean isOpaqueCube() + { + return false; + } + + @Override + public boolean renderAsNormalBlock() + { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/OakSplitLog.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/OakSplitLog.java new file mode 100644 index 00000000..69a88447 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/OakSplitLog.java @@ -0,0 +1,186 @@ +package com.kitsu.medievalcraft.block.wood.quartersplit; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRotatedPillar; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class OakSplitLog extends BlockRotatedPillar { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public OakSplitLog(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(3.0F); + this.setStepSound(Block.soundTypeWood); + this.setBlockBounds(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "oakSplitLogIcon"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "oakSplitLogSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "oakSplitLogTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "oakSplitLogTop"); + } + + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(player.inventory.getCurrentItem()!=null){ + if(player.getCurrentEquippedItem().getItem() instanceof ItemAxe){ + player.swingItem(); + player.worldObj.playSoundAtEntity(player, Main.MODID + ":splitlog", 1.0F, 1.0F); + if(world.rand.nextInt(2)==0){ + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModItems.splitBoard, 4, 0))); + return true; + } + } + } + } + return false; + } + + public int onBlockPlaced(World world, int x, int y, int z, int side, float hitx, float hity, float hitz, int meta) + { + //System.out.println(side); + int j1 = meta & 3; + byte b0 = 0; + + switch (side) + { + case 0: + b0=0; + break; + case 1: + b0=0; + break; + case 2: + b0=8; + break; + case 3: + b0=8; + break; + case 4: + b0=4; + case 5: + b0=4; + } + + return j1 | b0; + } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) + { + this.setBlockBoundsBasedOnState(p_149668_1_, p_149668_2_, p_149668_3_, p_149668_4_); + return super.getCollisionBoundingBoxFromPool(p_149668_1_, p_149668_2_, p_149668_3_, p_149668_4_); + } + + /** + * Updates the blocks bounds based on its current state. Args: world, x, y, z + */ + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) + { + this.func_149797_b(p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_)); + } + + /** + * Returns the bounding box of the wired rectangular prism to render. + */ + @SideOnly(Side.CLIENT) + public AxisAlignedBB getSelectedBoundingBoxFromPool(World p_149633_1_, int p_149633_2_, int p_149633_3_, int p_149633_4_) + { + this.setBlockBoundsBasedOnState(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + return super.getSelectedBoundingBoxFromPool(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + } + + public void func_149797_b(int p_149797_1_) + { + + if (p_149797_1_ == 0) + { + this.setBlockBounds(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + } + + if (p_149797_1_ == 4) + { + this.setBlockBounds(0.0F, 0.25F, 0.25F, 1.0F, 0.75F, 0.75F); + } + + if (p_149797_1_ == 8) + { + this.setBlockBounds(0.25F, 0.25F, 0.0F, 0.75F, 0.75F, 1.0F); + //this.setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + } + + + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + int k = metadata & 12; + int l = metadata & 3; + return k == 0 && (side == 1 || side == 0) ? this.getTopIcon(l) : (k == 4 && (side == 5 || side == 4) ? this.getTopIcon(l) : (k == 8 && (side == 2 || side == 3) ? this.getTopIcon(l) : this.getSideIcon(l))); + } + + @SideOnly(Side.CLIENT) + protected IIcon getSideIcon(int p_150163_1_) + { + return this.iconSide; + } + + @SideOnly(Side.CLIENT) + protected IIcon getTopIcon(int p_150161_1_) + { + return this.iconTop; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess access, int x, int y, int z, int side) + { + return true; + } + @Override + public boolean isOpaqueCube() + { + return false; + } + + @Override + public boolean renderAsNormalBlock() + { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/SpruceSplitLog.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/SpruceSplitLog.java new file mode 100644 index 00000000..b8322c19 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/block/wood/quartersplit/SpruceSplitLog.java @@ -0,0 +1,185 @@ +package com.kitsu.medievalcraft.block.wood.quartersplit; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRotatedPillar; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class SpruceSplitLog extends BlockRotatedPillar { + + @SideOnly(Side.CLIENT) + private IIcon iconSide; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + @SideOnly(Side.CLIENT) + private IIcon iconBot; + + public SpruceSplitLog(String unlocalizedName, Material mat) { + super(mat); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Main.MODID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setHardness(3.0F); + this.setResistance(3.0F); + this.setStepSound(Block.soundTypeWood); + this.setBlockBounds(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(Main.MODID + ":" + "spruceSplitLogIcon"); + this.iconSide = iconRegister.registerIcon(Main.MODID + ":" + "spruceSplitLogSide"); + this.iconBot = iconRegister.registerIcon(Main.MODID + ":" + "spruceSplitLogTop"); + this.iconTop = iconRegister.registerIcon(Main.MODID + ":" + "spruceSplitLogTop"); + } + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + + if(player.inventory.getCurrentItem()!=null){ + if(player.getCurrentEquippedItem().getItem() instanceof ItemAxe){ + player.swingItem(); + player.worldObj.playSoundAtEntity(player, Main.MODID + ":splitlog", 1.0F, 1.0F); + if(world.rand.nextInt(2)==0){ + if(!world.isRemote){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModItems.splitBoard, 4, 0))); + return true; + } + } + } + } + return false; + } + + public int onBlockPlaced(World world, int x, int y, int z, int side, float hitx, float hity, float hitz, int meta) + { + //System.out.println(side); + int j1 = meta & 3; + byte b0 = 0; + + switch (side) + { + case 0: + b0=0; + break; + case 1: + b0=0; + break; + case 2: + b0=8; + break; + case 3: + b0=8; + break; + case 4: + b0=4; + case 5: + b0=4; + } + + return j1 | b0; + } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) + { + this.setBlockBoundsBasedOnState(p_149668_1_, p_149668_2_, p_149668_3_, p_149668_4_); + return super.getCollisionBoundingBoxFromPool(p_149668_1_, p_149668_2_, p_149668_3_, p_149668_4_); + } + + /** + * Updates the blocks bounds based on its current state. Args: world, x, y, z + */ + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) + { + this.func_149797_b(p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_)); + } + + /** + * Returns the bounding box of the wired rectangular prism to render. + */ + @SideOnly(Side.CLIENT) + public AxisAlignedBB getSelectedBoundingBoxFromPool(World p_149633_1_, int p_149633_2_, int p_149633_3_, int p_149633_4_) + { + this.setBlockBoundsBasedOnState(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + return super.getSelectedBoundingBoxFromPool(p_149633_1_, p_149633_2_, p_149633_3_, p_149633_4_); + } + + public void func_149797_b(int p_149797_1_) + { + + if (p_149797_1_ == 0) + { + this.setBlockBounds(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + } + + if (p_149797_1_ == 4) + { + this.setBlockBounds(0.0F, 0.25F, 0.25F, 1.0F, 0.75F, 0.75F); + } + + if (p_149797_1_ == 8) + { + this.setBlockBounds(0.25F, 0.25F, 0.0F, 0.75F, 0.75F, 1.0F); + //this.setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + } + + + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + int k = metadata & 12; + int l = metadata & 3; + return k == 0 && (side == 1 || side == 0) ? this.getTopIcon(l) : (k == 4 && (side == 5 || side == 4) ? this.getTopIcon(l) : (k == 8 && (side == 2 || side == 3) ? this.getTopIcon(l) : this.getSideIcon(l))); + } + + @SideOnly(Side.CLIENT) + protected IIcon getSideIcon(int p_150163_1_) + { + return this.iconSide; + } + + @SideOnly(Side.CLIENT) + protected IIcon getTopIcon(int p_150161_1_) + { + return this.iconTop; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess access, int x, int y, int z, int side) + { + return true; + } + @Override + public boolean isOpaqueCube() + { + return false; + } + + @Override + public boolean renderAsNormalBlock() + { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/compat/FuelHandler.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/compat/FuelHandler.java new file mode 100644 index 00000000..e5a91678 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/compat/FuelHandler.java @@ -0,0 +1,27 @@ +package com.kitsu.medievalcraft.compat; + +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; + +import cpw.mods.fml.common.IFuelHandler; + +public class FuelHandler implements IFuelHandler +{ + @Override + public int getBurnTime(ItemStack fuel) + { + ItemStack stack = fuel; + //MagnumOpus.logger.info("fuel handler: " + fuel); + + /** Mod Real Fuel Items **/ + if ( stack.isItemEqual(new ItemStack(ModItems.itemShit)) ) { return 150; } + else if ( stack.isItemEqual(new ItemStack(ModBlocks.shitblock)) ) { return 1500; } + + + /** that is all **/ + else { return 0; } + + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/compat/ModDict.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/compat/ModDict.java new file mode 100644 index 00000000..48b08364 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/compat/ModDict.java @@ -0,0 +1,52 @@ +package com.kitsu.medievalcraft.compat; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; + +public class ModDict { + + public static void RegisterOres () { + + //OreDictionary.registerOre("itemLeather", Items.leather); + + OreDictionary.registerOre("strapLeather", new ItemStack(ModItems.leatherStrap, 1, 0)); + OreDictionary.registerOre("ringIron", new ItemStack(ModItems.ironRing, 1, 0)); + OreDictionary.registerOre("ingotIron", new ItemStack(ModBlocks.refinedIron, 1, 0)); + OreDictionary.registerOre("nuggetIron", new ItemStack(ModItems.ironChunk, 1, 0)); + OreDictionary.registerOre("ingotSteel", new ItemStack(ModBlocks.damascus, 1, 0)); + OreDictionary.registerOre("materialHardenedLeather", new ItemStack(ModItems.finishedLeather, 1, 0)); + OreDictionary.registerOre("bladeTool", new ItemStack(ModItems.workBlade, 1, 0)); + OreDictionary.registerOre("foodSalt", new ItemStack(ModItems.salt, 1, 0)); + OreDictionary.registerOre("pulpWood", new ItemStack(ModItems.woodPulp, 1, 0)); + OreDictionary.registerOre("knappedFlint", new ItemStack(ModItems.flintKnapped, 1, 0)); + + OreDictionary.registerOre("blockClay", new ItemStack(Blocks.clay, 1, 0)); + OreDictionary.registerOre("clumpClay", new ItemStack(Items.clay_ball, 1, 0)); + OreDictionary.registerOre("clumpFuel", new ItemStack(ModBlocks.shitblock, 1, 0)); + + OreDictionary.registerOre("ingotBrickClay", new ItemStack(Items.brick, 1, 0)); + OreDictionary.registerOre("cordageStrong", new ItemStack(Items.string, 1, 0)); + //OreDictionary.registerOre("cordage", new ItemStack(ModItems.leatherString, 1, 0)); + //OreDictionary.registerOre("itemLeather", ModItems.cutLeather); + //OreDictionary.replacements.put(new ItemStack(Item.leather), "itemLeather"); + + + //OreDictionary.registerOre("strapLeather", new ItemStack(ModItems.leatherStrap)); + + } +} + + +/* + * + * OreDictionary.registerOre("foodSalt", new ItemStack(ModItems.saltRock, 1, 0)); + OreDictionary.registerOre("foodSalt", new ItemStack(ModItems.saltFire, 1, 0)); + OreDictionary.registerOre("foodSalt", new ItemStack(ModItems.saltVoid, 1, 0)); + OreDictionary.registerOre("foodSalt", new ItemStack(ModItems.saltNetjry, 1, 0)); + * + */ \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerCannon_28.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerCannon_28.java new file mode 100644 index 00000000..c1c5f74e --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerCannon_28.java @@ -0,0 +1,81 @@ +package com.kitsu.medievalcraft.contain; + +import com.kitsu.medievalcraft.tileents.cannon.TileCannon_28; +import com.kitsu.medievalcraft.tileents.machine.TileForge; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCannon_28 extends Container { + + protected TileCannon_28 tileEnt; + + @Override + public boolean canInteractWith(EntityPlayer player) { + return tileEnt.isUseableByPlayer(player); + } + + public ContainerCannon_28 (InventoryPlayer inventoryPlayer, TileCannon_28 te){ + tileEnt = te; + + //the Slot constructor takes the IInventory and the slot number in that it binds to + //and the x-y coordinates it resides on-screen + /* for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + addSlotToContainer(new Slot(tileEnt, j + i * 3, 62 + j * 18, 17 + i * 18)); + } + }*/ + addSlotToContainer(new Slot(tileEnt, 0, 30, 34)); + addSlotToContainer(new Slot(tileEnt, 1, 48, 34)); + //commonly used vanilla code that adds the player's inventory + bindPlayerInventory(inventoryPlayer); + } + + protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) { + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 9; j++) { + addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, + 8 + j * 18, 84 + i * 18)); + } + } + + for (int i = 0; i < 9; i++) { + addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot) { + ItemStack stack = null; + Slot slotObject = (Slot) inventorySlots.get(slot); + + //null checks and checks if the item can be stacked (maxStackSize > 1) + /*if (slotObject != null && slotObject.getHasStack()) { + ItemStack stackInSlot = slotObject.getStack(); + stack = stackInSlot.copy(); + + //merges the item into player inventory since its in the tileEntity + if (slot < 9) { + if (!this.mergeItemStack(stackInSlot, 9, this.inventorySlots.size(), true)) { + return null; + } + } + //places it into the tileEntity is possible since its in the player inventory + else if (!this.mergeItemStack(stackInSlot, 0, 9, false)) { + return null; + } + + if (stackInSlot.stackSize == 0) { + slotObject.putStack((ItemStack)null); + } else { + slotObject.onSlotChanged(); + } + + }*/ + return stack; + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerFirebox.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerFirebox.java new file mode 100644 index 00000000..68cd5609 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerFirebox.java @@ -0,0 +1,63 @@ +package com.kitsu.medievalcraft.contain; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.tileents.machine.TileEntityAnvilForge; +import com.kitsu.medievalcraft.tileents.machine.TileEntityFirebox; +import com.kitsu.medievalcraft.tileents.machine.TileEntityShelfFour; + +public class ContainerFirebox extends Container { + + protected TileEntityFirebox tileEnt; + + @Override + public boolean canInteractWith(EntityPlayer player) { + return tileEnt.isUseableByPlayer(player); + } + + public ContainerFirebox (InventoryPlayer inventoryPlayer, TileEntityFirebox te){ + tileEnt = te; + addSlotToContainer(new Slot(tileEnt, 0, 80, 34)); + bindPlayerInventory(inventoryPlayer); + } + protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) { + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 9; j++) { + addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, + 8 + j * 18, 84 + i * 18)); + } + } + for (int i = 0; i < 9; i++) { + addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot) { + ItemStack stack = null; + Slot slotObject = (Slot) inventorySlots.get(slot); + if (slotObject != null && slotObject.getHasStack()) { + ItemStack stackInSlot = slotObject.getStack(); + stack = stackInSlot.copy(); + if (slot < 9) { + if (!this.mergeItemStack(stackInSlot, 9, this.inventorySlots.size(), true)) { + return null; + } + } + else if (!this.mergeItemStack(stackInSlot, 0, 9, false)) { + return null; + } + if (stackInSlot.stackSize == 0) { + slotObject.putStack((ItemStack)null); + } else { + slotObject.onSlotChanged(); + } + } + return stack; + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerForge.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerForge.java new file mode 100644 index 00000000..b9b06b10 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerForge.java @@ -0,0 +1,85 @@ +package com.kitsu.medievalcraft.contain; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.tileents.machine.TileEntityFirebox; +import com.kitsu.medievalcraft.tileents.machine.TileForge; + +public class ContainerForge extends Container { + + protected TileForge tileEnt; + + @Override + public boolean canInteractWith(EntityPlayer player) { + return tileEnt.isUseableByPlayer(player); + } + + public ContainerForge (InventoryPlayer inventoryPlayer, TileForge te){ + tileEnt = te; + + //the Slot constructor takes the IInventory and the slot number in that it binds to + //and the x-y coordinates it resides on-screen + /* for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + addSlotToContainer(new Slot(tileEnt, j + i * 3, 62 + j * 18, 17 + i * 18)); + } + }*/ + addSlotToContainer(new Slot(tileEnt, 0, 80, 34)); + addSlotToContainer(new Slot(tileEnt, 0, 81, 34)); + //commonly used vanilla code that adds the player's inventory + bindPlayerInventory(inventoryPlayer); + } + + protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) { + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 9; j++) { + addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, + 8 + j * 18, 84 + i * 18)); + } + } + + for (int i = 0; i < 9; i++) { + addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot) { + ItemStack stack = null; + Slot slotObject = (Slot) inventorySlots.get(slot); + + //null checks and checks if the item can be stacked (maxStackSize > 1) + if (slotObject != null && slotObject.getHasStack()) { + ItemStack stackInSlot = slotObject.getStack(); + stack = stackInSlot.copy(); + + //merges the item into player inventory since its in the tileEntity + if (slot < 9) { + if (!this.mergeItemStack(stackInSlot, 9, this.inventorySlots.size(), true)) { + return null; + } + } + //places it into the tileEntity is possible since its in the player inventory + else if (!this.mergeItemStack(stackInSlot, 0, 9, false)) { + return null; + } + + if (stackInSlot.stackSize == 0) { + slotObject.putStack((ItemStack)null); + } else { + slotObject.onSlotChanged(); + } + + /*if (stackInSlot.stackSize == stack.stackSize) { + return null; + }*/ + //slotObject.onPickupFromSlot(player, stackInSlot); + } + return stack; + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerForgeAnvil.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerForgeAnvil.java new file mode 100644 index 00000000..afe679d0 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerForgeAnvil.java @@ -0,0 +1,62 @@ +package com.kitsu.medievalcraft.contain; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.tileents.machine.TileEntityAnvilForge; +import com.kitsu.medievalcraft.tileents.machine.TileEntityFirebox; + +public class ContainerForgeAnvil extends Container { + + protected TileEntityAnvilForge tileEnt; + + @Override + public boolean canInteractWith(EntityPlayer player) { + return tileEnt.isUseableByPlayer(player); + } + + public ContainerForgeAnvil (InventoryPlayer inventoryPlayer, TileEntityAnvilForge te){ + tileEnt = te; + addSlotToContainer(new Slot(tileEnt, 0, 80, 34)); + bindPlayerInventory(inventoryPlayer); + } + protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) { + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 9; j++) { + addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, + 8 + j * 18, 84 + i * 18)); + } + } + for (int i = 0; i < 9; i++) { + addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot) { + ItemStack stack = null; + Slot slotObject = (Slot) inventorySlots.get(slot); + if (slotObject != null && slotObject.getHasStack()) { + ItemStack stackInSlot = slotObject.getStack(); + stack = stackInSlot.copy(); + if (slot < 9) { + if (!this.mergeItemStack(stackInSlot, 9, this.inventorySlots.size(), true)) { + return null; + } + } + else if (!this.mergeItemStack(stackInSlot, 0, 9, false)) { + return null; + } + if (stackInSlot.stackSize == 0) { + slotObject.putStack((ItemStack)null); + } else { + slotObject.onSlotChanged(); + } + } + return stack; + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerFormTable.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerFormTable.java new file mode 100644 index 00000000..5fb7b3da --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerFormTable.java @@ -0,0 +1,146 @@ +package com.kitsu.medievalcraft.contain; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.InventoryCraftResult; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.inventory.SlotCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.crafting.FormTableCraftManager; + +public class ContainerFormTable extends Container { + + public InventoryCrafting craftMatrix; + public IInventory craftResult; + private World worldObj; + private int posX; + private int posY; + private int posZ; + + public ContainerFormTable (InventoryPlayer invplayer, World world, int x, int y, int z) { + craftMatrix = new InventoryCrafting (this, 5, 5); + craftResult = new InventoryCraftResult(); + worldObj = world; + posX = x; + posY = y; + posZ = z; + + this.addSlotToContainer(new SlotCrafting(invplayer.player, craftMatrix, craftResult, 0, 141, 43)); + + for(int i=0; i<5; i++) { + for (int k=0; k<5; k++) { + this.addSlotToContainer (new Slot(craftMatrix, k+i*5, 8+k*18, 7+i*18)); + } + } + + for(int i=0; i<3; i++) { + for (int k=0; k<9; k++) { + this.addSlotToContainer (new Slot(invplayer, k+i*9+9, 8+k*18, 106+i*18)); + } + } + + for(int i=0; i<9; i++) { + this.addSlotToContainer (new Slot(invplayer, i, 8+i*18, 164)); + } + + onCraftMatrixChanged(craftMatrix); + } + + public void onCraftMatrixChanged (IInventory iinventory) { + craftResult.setInventorySlotContents(0,FormTableCraftManager.getInstance().findMatchingRecipe(craftMatrix, worldObj)); + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + + if (worldObj.getBlock(posX, posY, posZ) != ModBlocks.formtable) { + return false; + } + return player.getDistanceSq(posX + 0.5D, posY + 0.5D, posZ + 0.5D) <= 64.0D; + } + + /** + * Called when the container is closed. + */ + /*public void onContainerClosed(EntityPlayer player) + { + super.onContainerClosed(player); + + if (!this.worldObj.isRemote) + { + for (int i = 0; i < 25; ++i) + { + ItemStack itemstack = this.craftMatrix.getStackInSlotOnClosing(i); + + if (itemstack != null) + { + player.dropPlayerItemWithRandomChoice(itemstack, false); + } + } + } + }*/ + + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) + { + ItemStack itemstack = null; + Slot slot = (Slot)this.inventorySlots.get(p_82846_2_); + + if (slot != null && slot.getHasStack()) + { + ItemStack itemstack1 = slot.getStack(); + itemstack = itemstack1.copy(); + + if (p_82846_2_ == 0) + { + if (!this.mergeItemStack(itemstack1, 10, 46, true)) + { + return null; + } + + slot.onSlotChange(itemstack1, itemstack); + } + else if (p_82846_2_ >= 10 && p_82846_2_ < 37) + { + if (!this.mergeItemStack(itemstack1, 37, 46, false)) + { + return null; + } + } + else if (p_82846_2_ >= 37 && p_82846_2_ < 46) + { + if (!this.mergeItemStack(itemstack1, 10, 37, false)) + { + return null; + } + } + else if (!this.mergeItemStack(itemstack1, 10, 46, false)) + { + return null; + } + + if (itemstack1.stackSize == 0) + { + slot.putStack((ItemStack)null); + } + else + { + slot.onSlotChanged(); + } + + if (itemstack1.stackSize == itemstack.stackSize) + { + return null; + } + + slot.onPickupFromSlot(p_82846_1_, itemstack1); + } + + return itemstack; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerShelfFour.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerShelfFour.java new file mode 100644 index 00000000..5ae60a29 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerShelfFour.java @@ -0,0 +1,85 @@ +package com.kitsu.medievalcraft.contain; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.tileents.machine.TileEntityAnvilForge; +import com.kitsu.medievalcraft.tileents.machine.TileEntityShelfFour; + +public class ContainerShelfFour extends Container { + + protected TileEntityShelfFour tileEnt; + + @Override + public boolean canInteractWith(EntityPlayer player) { + return tileEnt.isUseableByPlayer(player); + } + + public ContainerShelfFour (InventoryPlayer inventoryPlayer, TileEntityShelfFour te){ + tileEnt = te; + + //the Slot constructor takes the IInventory and the slot number in that it binds to + //and the x-y coordinates it resides on-screen + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + addSlotToContainer(new Slot(tileEnt, j + i * 3, 62 + j * 18, 17 + i * 18)); + } + } + // addSlotToContainer(new Slot(tileEnt, 0, 80, 34)); + + //commonly used vanilla code that adds the player's inventory + bindPlayerInventory(inventoryPlayer); + } + + protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) { + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 9; j++) { + addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, + 8 + j * 18, 84 + i * 18)); + } + } + + for (int i = 0; i < 9; i++) { + addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot) { + ItemStack stack = null; + Slot slotObject = (Slot) inventorySlots.get(slot); + + //null checks and checks if the item can be stacked (maxStackSize > 1) + if (slotObject != null && slotObject.getHasStack()) { + ItemStack stackInSlot = slotObject.getStack(); + stack = stackInSlot.copy(); + + //merges the item into player inventory since its in the tileEntity + if (slot < 9) { + if (!this.mergeItemStack(stackInSlot, 9, this.inventorySlots.size(), true)) { + return null; + } + } + //places it into the tileEntity is possible since its in the player inventory + else if (!this.mergeItemStack(stackInSlot, 0, 9, false)) { + return null; + } + + if (stackInSlot.stackSize == 0) { + slotObject.putStack((ItemStack)null); + } else { + slotObject.onSlotChanged(); + } + + /*if (stackInSlot.stackSize == stack.stackSize) { + return null; + }*/ + //slotObject.onPickupFromSlot(player, stackInSlot); + } + return stack; + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerSolidFilter.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerSolidFilter.java new file mode 100644 index 00000000..29ba55d5 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerSolidFilter.java @@ -0,0 +1,95 @@ +package com.kitsu.medievalcraft.contain; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.tileents.machine.TileEntitySolidFilter; + +public class ContainerSolidFilter extends Container { + + protected TileEntitySolidFilter tileEnt; + + @Override + public boolean canInteractWith(EntityPlayer player) { + return tileEnt.isUseableByPlayer(player); + } + + public ContainerSolidFilter (InventoryPlayer inventoryPlayer, TileEntitySolidFilter te){ + tileEnt = te; + + //the Slot constructor takes the IInventory and the slot number in that it binds to + //and the x-y coordinates it resides on-screen + /*for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + addSlotToContainer(new Slot(tileEnt, j + i * 3, 62 + j * 18, 17 + i * 18)); + } + }*/ + addSlotToContainer(new Slot(tileEnt, 0, 80, 34)); + + //commonly used vanilla code that adds the player's inventory + bindPlayerInventory(inventoryPlayer); + } + + protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) { + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 9; j++) { + addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, + 8 + j * 18, 84 + i * 18)); + } + } + + for (int i = 0; i < 9; i++) { + addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot) { + ItemStack stack = null; + Slot slotObject = (Slot) inventorySlots.get(slot); + + //null checks and checks if the item can be stacked (maxStackSize > 1) + if (slotObject != null && slotObject.getHasStack()) { + ItemStack stackInSlot = slotObject.getStack(); + stack = stackInSlot.copy(); + + //merges the item into player inventory since its in the tileEntity + if (slot < 9) { + if (!this.mergeItemStack(stackInSlot, 9, this.inventorySlots.size(), true)) { + return null; + } + } + //places it into the tileEntity is possible since its in the player inventory + else if (!this.mergeItemStack(stackInSlot, 0, 9, false)) { + return null; + } + + if (stackInSlot.stackSize == 0) { + slotObject.putStack((ItemStack)null); + } else { + slotObject.onSlotChanged(); + } + + /*if (stackInSlot.stackSize == stack.stackSize) { + return null; + }*/ + //slotObject.onPickupFromSlot(player, stackInSlot); + } + return stack; + } + +} + + + + + + + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerTestForge.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerTestForge.java new file mode 100644 index 00000000..a636ae4f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/contain/ContainerTestForge.java @@ -0,0 +1,95 @@ +package com.kitsu.medievalcraft.contain; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.tileents.machine.TileEntityTestForge; + +public class ContainerTestForge extends Container { + + protected TileEntityTestForge tileEnt; + + @Override + public boolean canInteractWith(EntityPlayer player) { + return tileEnt.isUseableByPlayer(player); + } + + public ContainerTestForge (InventoryPlayer inventoryPlayer, TileEntityTestForge te){ + tileEnt = te; + + //the Slot constructor takes the IInventory and the slot number in that it binds to + //and the x-y coordinates it resides on-screen + /*for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + addSlotToContainer(new Slot(tileEnt, j + i * 3, 62 + j * 18, 17 + i * 18)); + } + }*/ + addSlotToContainer(new Slot(tileEnt, 0, 80, 34)); + + //commonly used vanilla code that adds the player's inventory + bindPlayerInventory(inventoryPlayer); + } + + protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) { + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 9; j++) { + addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, + 8 + j * 18, 84 + i * 18)); + } + } + + for (int i = 0; i < 9; i++) { + addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot) { + ItemStack stack = null; + Slot slotObject = (Slot) inventorySlots.get(slot); + + //null checks and checks if the item can be stacked (maxStackSize > 1) + if (slotObject != null && slotObject.getHasStack()) { + ItemStack stackInSlot = slotObject.getStack(); + stack = stackInSlot.copy(); + + //merges the item into player inventory since its in the tileEntity + if (slot < 9) { + if (!this.mergeItemStack(stackInSlot, 9, this.inventorySlots.size(), true)) { + return null; + } + } + //places it into the tileEntity is possible since its in the player inventory + else if (!this.mergeItemStack(stackInSlot, 0, 9, false)) { + return null; + } + + if (stackInSlot.stackSize == 0) { + slotObject.putStack((ItemStack)null); + } else { + slotObject.onSlotChanged(); + } + + /*if (stackInSlot.stackSize == stack.stackSize) { + return null; + }*/ + //slotObject.onPickupFromSlot(player, stackInSlot); + } + return stack; + } + +} + + + + + + + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/CraftingHandle.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/CraftingHandle.java new file mode 100644 index 00000000..60cbcb56 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/CraftingHandle.java @@ -0,0 +1,190 @@ +package com.kitsu.medievalcraft.crafting; + +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.PlayerEvent; + +public class CraftingHandle { + + public static int craftflag; + //ItemStack j; + //ItemStack R; + + + @SubscribeEvent + public void onItemCrafting(PlayerEvent.ItemCraftedEvent event) { + + for (int i = 0; i < event.craftMatrix.getSizeInventory(); i++) { // Checks all the slots + + if (event.craftMatrix.getStackInSlot(i) != null) { // If there is an item + //ItemStack a = event.craftMatrix.getStackInSlot(i); + ItemStack j = event.craftMatrix.getStackInSlot(i); // Gets the item + //ItemStack L = event.craftMatrix.getStackInSlot(i - 1); + //ItemStack R = event.craftMatrix.getStackInSlot(i+3); + + //FORGE HAMMER + if (j.getItem() != null && j.getItem() == ModItems.forgeHammer) { + + ItemStack k = new ItemStack(ModItems.forgeHammer, 2, (j.getItemDamage() + 1)); + + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + event.player.worldObj.playSoundAtEntity(event.player, "random.anvil_use", 0.8F, 1.0F ); + + //IRONSAW + } if (j.getItem() != null && j.getItem() == ModItems.ironSaw) { + ItemStack k = new ItemStack(ModItems.ironSaw, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.player.worldObj.playSoundAtEntity(event.player, Main.MODID + ":sawwood", 0.1F, 2.0F); + event.craftMatrix.setInventorySlotContents(i, k); + //FLINTSAW + } if (j.getItem() != null && j.getItem() == ModItems.flintSaw) { + ItemStack k = new ItemStack(ModItems.flintSaw, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.player.worldObj.playSoundAtEntity(event.player, Main.MODID + ":sawwood", 0.1F, 3.0F); + event.craftMatrix.setInventorySlotContents(i, k); + + //WORKBLADE + } if (j.getItem() != null && j.getItem() == ModItems.workBlade) { + ItemStack k = new ItemStack(ModItems.workBlade, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON AXE FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironAxeForm) { + ItemStack k = new ItemStack(ModItems.ironAxeForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON BATTLE AXE FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironBattleAxeForm) { + ItemStack k = new ItemStack(ModItems.ironBattleAxeForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON DAGGER FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironDaggerForm) { + ItemStack k = new ItemStack(ModItems.ironDaggerForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON HALBERD FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironHandleForm) { + ItemStack k = new ItemStack(ModItems.ironHandleForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON HOE FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironHoeForm) { + ItemStack k = new ItemStack(ModItems.ironHoeForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON LONGSWORD FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironLongswordForm) { + ItemStack k = new ItemStack(ModItems.ironLongswordForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON MACE HEAD FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironMaceHeadForm) { + ItemStack k = new ItemStack(ModItems.ironMaceHeadForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON PICKAXE FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironPickaxeForm) { + ItemStack k = new ItemStack(ModItems.ironPickaxeForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON RING FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironRingForm) { + ItemStack k = new ItemStack(ModItems.ironRingForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON SAWBLADE FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironSawBladeForm) { + ItemStack k = new ItemStack(ModItems.ironSawBladeForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON SHARP TIP FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironSharpTipForm) { + ItemStack k = new ItemStack(ModItems.ironSharpTipForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON SHORT SWORD FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironShortSwordForm) { + ItemStack k = new ItemStack(ModItems.ironShortSwordForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON SPADE FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironSpadForm) { + ItemStack k = new ItemStack(ModItems.ironSpadForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //IRON SPEAR TIP FORM + } if (j.getItem() != null && j.getItem() == ModItems.ironSpearTipForm) { + ItemStack k = new ItemStack(ModItems.ironSpearTipForm, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + + //LEATHER SHEARS + } if (j.getItem() != null && j.getItem() == ModItems.leatherShears) { + ItemStack k = new ItemStack(ModItems.leatherShears, 2, (j.getItemDamage() + 1)); + if (k.getItemDamage() >= k.getMaxDamage()) { + k.stackSize--; + } + event.craftMatrix.setInventorySlotContents(i, k); + event.player.worldObj.playSoundAtEntity(event.player, "mob.sheep.shear", 0.8F, 1.0F ); + + } + } + } + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/ForgeAnvilCrafting.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/ForgeAnvilCrafting.java new file mode 100644 index 00000000..bb011c3a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/ForgeAnvilCrafting.java @@ -0,0 +1,85 @@ +package com.kitsu.medievalcraft.crafting; + +import java.util.Hashtable; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.item.ModItems; + +public class ForgeAnvilCrafting { + +public static final Hashtable itemToCheck = new Hashtable (){{ + + put(0, ModItems.ironPickaxeForm); + put(1, ModItems.ironSpadForm); + put(2, ModItems.ironHoeForm); + put(3, ModItems.ironAxeForm); + put(4, ModItems.ironLongswordForm); + put(5, ModItems.ironShortSwordForm); + put(6, ModItems.ironDaggerForm); + put(7, ModItems.ironSpearTipForm); + put(8, ModItems.ironMaceHeadForm); + put(9, ModItems.ironBattleAxeForm); + put(10, ModItems.ironSawBladeForm); + put(11, ModItems.ironSharpTipForm); + put(12, ModItems.ironRingForm); + put(13, ModItems.ironHandleForm); + + }}; + +public static final Hashtable itemToCheckClay = new Hashtable (){{ + + put(0, ModItems.cookedpickaxeClayForm); + put(1, ModItems.cookedspadeHeadClayForm); + put(2, ModItems.cookedhoeHeadClayForm); + put(3, ModItems.cookedaxeHeadClayForm); + put(4, ModItems.cookedlongswordClayForm); + put(5, ModItems.cookedshortswordClayForm); + put(6, ModItems.cookeddaggerClayForm); + put(7, ModItems.cookedspeartipClayForm); + put(8, ModItems.cookedmaceheadClayForm); + put(9, ModItems.cookedbattleaxeClayForm); + put(10, ModItems.cookedsawbladeClayForm); + put(11, ModItems.cookedsharptipClayForm); + put(12, ModItems.cookedringClayForm); + + }}; + +public static final Hashtable itemToGive = new Hashtable (){{ + + put(0, new ItemStack (ModItems.ironpickaxeHead, 1, 0)); + put(1, new ItemStack (ModItems.ironspadeHead, 1, 0)); + put(2, new ItemStack (ModItems.ironhoeHead, 1, 0)); + put(3, new ItemStack (ModItems.ironaxeHead, 1, 0)); + put(4, new ItemStack (ModItems.ironlongswordBlade, 1, 0)); + put(5, new ItemStack (ModItems.ironshortswordBlade,2,0)); + put(6, new ItemStack (ModItems.irondaggerBlade, 3,0)); + put(7, new ItemStack (ModItems.ironspearTip, 1, 0)); + put(8, new ItemStack (ModItems.ironmaceHead, 1, 0)); + + put(9, new ItemStack (ModItems.ironbattleaxeHead, 1, 0)); + put(10, new ItemStack (ModItems.ironsawBlade, 1, 0)); + put(11, new ItemStack (ModItems.ironsharpTip,9,0)); + put(12, new ItemStack (ModItems.ironRing,9,0)); + put(13, new ItemStack (ModItems.ironweaponHandle, 2, 0)); + + }}; + + public static final Hashtable toolToRepair = new Hashtable (){{ + + put(0, "Forged Pickaxe"); + put(1, "Forged Shovel"); + put(2, "Forged Lumber Axe"); + put(3, "Leather Shears"); + put(4, "Iron Saw"); + put(5, "Iron Shield"); + put(6, "Heavy Mace"); + put(7, "Longsword"); + put(8, "Forge Hammer"); + put(9, "Crafting Blade"); + put(10, "Gladius"); + + }}; + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableCraftManager.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableCraftManager.java new file mode 100644 index 00000000..61354acd --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableCraftManager.java @@ -0,0 +1,259 @@ +package com.kitsu.medievalcraft.crafting; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.init.Items; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.item.crafting.ShapelessRecipes; +import net.minecraft.world.World; +import net.minecraftforge.oredict.OreDictionary; +import net.minecraftforge.oredict.ShapedOreRecipe; + +import com.kitsu.medievalcraft.item.ModItems; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class FormTableCraftManager implements IRecipe{ + + private static final FormTableCraftManager instance = new FormTableCraftManager(); + private List recipes = new ArrayList(); + private ItemStack output = null; + private Object[] input = null; + private int width = 0; + private int height = 0; + private boolean mirrored = true; + //private static final String __OBFID = "CL_00000090"; + + public static final FormTableCraftManager getInstance() { + return instance; + } + + private FormTableCraftManager () { + + recipes = new ArrayList(); + ////////RECIPES//////////////////////////////////////////////////////// + //EXAMPLE RECIPE + //this.addRecipe(new ItemStack(ModItems.longSword, 1), new Object[]{"S", "S", "S", "S", "S", 'S', Items.stick}); + //this.addRecipe(new ItemStack(ModItems.xxx, 1), new Object[]{"", "", "", "", "", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.pickaxeClayForm, 1), new Object[]{ "ccccc", "cc cc", "c c", " c ", "ccccc", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.spadeHeadClayForm, 1), new Object[]{ "ccccc", "cc cc", "c c", "c c", "ccccc", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.hoeHeadClayForm, 1), new Object[]{ "ccccc", "c c", "c ccc", "ccccc", "ccccc", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.axeHeadClayForm, 1), new Object[]{ "ccccc", "c ccc", " c", "c ccc", "ccccc", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.longswordClayForm, 1), new Object[]{ "cccc ", "ccc c", "cc cc", "c ccc", " cccc", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.shortswordClayForm, 1), new Object[]{"cc cc", "cc cc", "cc cc", "c c", "cc cc", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.daggerClayForm, 1), new Object[]{ "ccccc", "cc cc", "cc cc", "cc cc", "ccccc", 'c', Items.clay_ball}); + //this.addRecipe(new ItemStack(ModItems.halberdClayForm, 1), new Object[]{ "ccccc", "c ccc", " ", " cc", "c ccc", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.speartipClayForm, 1), new Object[]{ "ccccc", "cc cc", "cc cc", "c c", "ccccc", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.maceheadClayForm, 1), new Object[]{ "cc cc", "c c", " ", "c c", "cc cc", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.sharptipClayForm, 1), new Object[]{ "ccccc", "cc cc", "c c", "ccccc", "ccccc", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.battleaxeClayForm, 1), new Object[]{ "c c c", " ", " ", " ", "c c c", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.ringClayForm, 1), new Object[]{ "ccccc", "cc cc", "c c", "cc cc", "ccccc", 'c', Items.clay_ball}); + //this.addRecipe(new ItemStack(ModItems.plateClayForm, 1), new Object[]{ "ccccc", "c c", "c c", "c c", "ccccc", 'c', Items.clay_ball}); + this.addRecipe(new ItemStack(ModItems.sawbladeClayForm, 1), new Object[]{ "ccccc", "ccccc", " ", "c ", "ccccc", 'c', Items.clay_ball}); + + Collections.sort(this.recipes, new FormTableRecipeSorter(this)); + } + + public FormTableShapedRecipes addRecipe(ItemStack p_92103_1_, Object ... p_92103_2_) + { + String s = ""; + int i = 0; + int j = 0; + int k = 0; + + if (p_92103_2_[i] instanceof String[]) + { + @SuppressWarnings("cast") + String[] astring = (String[])((String[])p_92103_2_[i++]); + + for (int l = 0; l < astring.length; ++l) + { + String s1 = astring[l]; + ++k; + j = s1.length(); + s = s + s1; + } + } + else + { + while (p_92103_2_[i] instanceof String) + { + String s2 = (String)p_92103_2_[i++]; + ++k; + j = s2.length(); + s = s + s2; + } + } + + HashMap hashmap; + + for (hashmap = new HashMap(); i < p_92103_2_.length; i += 2) + { + Character character = (Character)p_92103_2_[i]; + ItemStack itemstack1 = null; + + if (p_92103_2_[i + 1] instanceof Item) + { + itemstack1 = new ItemStack((Item)p_92103_2_[i + 1]); + } + else if (p_92103_2_[i + 1] instanceof Block) + { + itemstack1 = new ItemStack((Block)p_92103_2_[i + 1], 1, 32767); + } + else if (p_92103_2_[i + 1] instanceof ItemStack) + { + itemstack1 = (ItemStack)p_92103_2_[i + 1]; + } + + hashmap.put(character, itemstack1); + } + + ItemStack[] aitemstack = new ItemStack[j * k]; + + for (int i1 = 0; i1 < j * k; ++i1) + { + char c0 = s.charAt(i1); + + if (hashmap.containsKey(Character.valueOf(c0))) + { + aitemstack[i1] = ((ItemStack)hashmap.get(Character.valueOf(c0))).copy(); + } + else + { + aitemstack[i1] = null; + } + } + + FormTableShapedRecipes shapedrecipes = new FormTableShapedRecipes(j, k, aitemstack, p_92103_1_); + this.recipes.add(shapedrecipes); + return shapedrecipes; + } + + public void addShapelessRecipe(ItemStack p_77596_1_, Object ... p_77596_2_) + { + ArrayList arraylist = new ArrayList(); + Object[] aobject = p_77596_2_; + int i = p_77596_2_.length; + + for (int j = 0; j < i; ++j) + { + Object object1 = aobject[j]; + + if (object1 instanceof ItemStack) + { + arraylist.add(((ItemStack)object1).copy()); + } + else if (object1 instanceof Item) + { + arraylist.add(new ItemStack((Item)object1)); + } + else + { + if (!(object1 instanceof Block)) + { + throw new RuntimeException("Invalid shapeless recipy!"); + } + + arraylist.add(new ItemStack((Block)object1)); + } + } + + + this.recipes.add(new ShapelessRecipes(p_77596_1_, arraylist)); + } + + + public ItemStack findMatchingRecipe(InventoryCrafting p_82787_1_, World p_82787_2_) + { + int i = 0; + ItemStack itemstack = null; + ItemStack itemstack1 = null; + int j; + + for (j = 0; j < p_82787_1_.getSizeInventory(); ++j) + { + ItemStack itemstack2 = p_82787_1_.getStackInSlot(j); + + if (itemstack2 != null) + { + if (i == 0) + { + itemstack = itemstack2; + } + + if (i == 1) + { + itemstack1 = itemstack2; + } + + ++i; + } + } + + if (i == 2 && itemstack.getItem() == itemstack1.getItem() && itemstack.stackSize == 1 && itemstack1.stackSize == 1 && itemstack.getItem().isRepairable()) + { + Item item = itemstack.getItem(); + int j1 = item.getMaxDamage() - itemstack.getItemDamageForDisplay(); + int k = item.getMaxDamage() - itemstack1.getItemDamageForDisplay(); + int l = j1 + k + item.getMaxDamage() * 5 / 100; + int i1 = item.getMaxDamage() - l; + + if (i1 < 0) + { + i1 = 0; + } + + return new ItemStack(itemstack.getItem(), 1, i1); + } + for (j = 0; j < this.recipes.size(); ++j) + { + IRecipe irecipe = (IRecipe)this.recipes.get(j); + + if (irecipe.matches(p_82787_1_, p_82787_2_)) + { + return irecipe.getCraftingResult(p_82787_1_); + } + } + + return null; + } + + /** + * returns the List<> of all recipes + */ + public List getRecipeList() + { + return this.recipes; + } + + @Override + public boolean matches(InventoryCrafting p_77569_1_, World p_77569_2_) { + // TODO Auto-generated method stub + return false; + } + + @Override + public ItemStack getCraftingResult(InventoryCrafting p_77572_1_) { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRecipeSize() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public ItemStack getRecipeOutput() { + // TODO Auto-generated method stub + return null; + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableRecipeSorter.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableRecipeSorter.java new file mode 100644 index 00000000..6219d1fa --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableRecipeSorter.java @@ -0,0 +1,24 @@ +package com.kitsu.medievalcraft.crafting; + +import java.util.Comparator; + +import net.minecraft.item.crafting.IRecipe; + +public class FormTableRecipeSorter implements Comparator { + + final FormTableCraftManager formTable; + + public FormTableRecipeSorter(FormTableCraftManager ftcraftmanage) { + this.formTable = ftcraftmanage; + } + + public int compareRecipes(IRecipe irecipe1, IRecipe irecipe2) { + return irecipe1 instanceof FormTableShapelessRecipes && irecipe2 instanceof FormTableShapedRecipes ? 1 : (irecipe2 instanceof FormTableShapelessRecipes && irecipe1 instanceof FormTableShapedRecipes ? -1 : (irecipe2.getRecipeSize() > irecipe1.getRecipeSize() ? -1 : (irecipe2.getRecipeSize() > irecipe1.getRecipeSize() ? 1 : 0))); + } + + @Override + public int compare(Object o1, Object o2) { + return this.compareRecipes((IRecipe)o1, (IRecipe)o2); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableShapedRecipes.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableShapedRecipes.java new file mode 100644 index 00000000..c4e223ca --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableShapedRecipes.java @@ -0,0 +1,145 @@ +package com.kitsu.medievalcraft.crafting; + +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class FormTableShapedRecipes implements IRecipe +{ + /** How many horizontal slots this recipe is wide. */ + public final int recipeWidth; + /** How many vertical slots this recipe uses. */ + public final int recipeHeight; + /** Is a array of ItemStack that composes the recipe. */ + public final ItemStack[] recipeItems; + /** Is the ItemStack that you get when craft the recipe. */ + private ItemStack recipeOutput; + private boolean field_92101_f; + //private static final String __OBFID = "CL_00000093"; + + public FormTableShapedRecipes(int p_i1917_1_, int p_i1917_2_, ItemStack[] p_i1917_3_, ItemStack p_i1917_4_) + { + this.recipeWidth = p_i1917_1_; + this.recipeHeight = p_i1917_2_; + this.recipeItems = p_i1917_3_; + this.recipeOutput = p_i1917_4_; + } + + public ItemStack getRecipeOutput() + { + return this.recipeOutput; + } + + /** + * Used to check if a recipe matches current crafting inventory + */ + public boolean matches(InventoryCrafting p_77569_1_, World p_77569_2_) + { + for (int i = 0; i <= 5 - this.recipeWidth; ++i) + { + for (int j = 0; j <= 5 - this.recipeHeight; ++j) + { + if (this.checkMatch(p_77569_1_, i, j, true)) + { + return true; + } + + if (this.checkMatch(p_77569_1_, i, j, false)) + { + return true; + } + } + } + + return false; + } + + /** + * Checks if the region of a crafting inventory is match for the recipe. + */ + private boolean checkMatch(InventoryCrafting p_77573_1_, int p_77573_2_, int p_77573_3_, boolean p_77573_4_) + { + for (int k = 0; k < 5; ++k) + { + for (int l = 0; l < 5; ++l) + { + int i1 = k - p_77573_2_; + int j1 = l - p_77573_3_; + ItemStack itemstack = null; + + if (i1 >= 0 && j1 >= 0 && i1 < this.recipeWidth && j1 < this.recipeHeight) + { + if (p_77573_4_) + { + itemstack = this.recipeItems[this.recipeWidth - i1 - 1 + j1 * this.recipeWidth]; + } + else + { + itemstack = this.recipeItems[i1 + j1 * this.recipeWidth]; + } + } + + ItemStack itemstack1 = p_77573_1_.getStackInRowAndColumn(k, l); + + if (itemstack1 != null || itemstack != null) + { + if (itemstack1 == null && itemstack != null || itemstack1 != null && itemstack == null) + { + return false; + } + + if (itemstack.getItem() != itemstack1.getItem()) + { + return false; + } + + if (itemstack.getItemDamage() != 32767 && itemstack.getItemDamage() != itemstack1.getItemDamage()) + { + return false; + } + } + } + } + + return true; + } + + /** + * Returns an Item that is the result of this recipe + */ + public ItemStack getCraftingResult(InventoryCrafting p_77572_1_) + { + ItemStack itemstack = this.getRecipeOutput().copy(); + + if (this.field_92101_f) + { + for (int i = 0; i < p_77572_1_.getSizeInventory(); ++i) + { + ItemStack itemstack1 = p_77572_1_.getStackInSlot(i); + + if (itemstack1 != null && itemstack1.hasTagCompound()) + { + itemstack.setTagCompound((NBTTagCompound)itemstack1.stackTagCompound.copy()); + } + } + } + + return itemstack; + } + + /** + * Returns the size of the recipe area + */ + public int getRecipeSize() + { + return this.recipeWidth * this.recipeHeight; + } + + public FormTableShapedRecipes func_92100_c() + { + this.field_92101_f = true; + return this; + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableShapelessRecipes.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableShapelessRecipes.java new file mode 100644 index 00000000..d9f19aa7 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/FormTableShapelessRecipes.java @@ -0,0 +1,87 @@ +package com.kitsu.medievalcraft.crafting; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.world.World; + +public class FormTableShapelessRecipes implements IRecipe{ + + /** Is the ItemStack that you get when craft the recipe. */ + private final ItemStack recipeOutput; + /** Is a List of ItemStack that composes the recipe. */ + public final List recipeItems; + //private static final String __OBFID = "CL_00000094"; + + public FormTableShapelessRecipes(ItemStack p_i1918_1_, List p_i1918_2_) + { + this.recipeOutput = p_i1918_1_; + this.recipeItems = p_i1918_2_; + } + + public ItemStack getRecipeOutput() + { + return this.recipeOutput; + } + + /** + * Used to check if a recipe matches current crafting inventory + */ + public boolean matches(InventoryCrafting p_77569_1_, World p_77569_2_) + { + ArrayList arraylist = new ArrayList(this.recipeItems); + + for (int i = 0; i < 5; ++i) + { + for (int j = 0; j < 5; ++j) + { + ItemStack itemstack = p_77569_1_.getStackInRowAndColumn(j, i); + + if (itemstack != null) + { + boolean flag = false; + Iterator iterator = arraylist.iterator(); + + while (iterator.hasNext()) + { + ItemStack itemstack1 = (ItemStack)iterator.next(); + + if (itemstack.getItem() == itemstack1.getItem() && (itemstack1.getItemDamage() == 32767 || itemstack.getItemDamage() == itemstack1.getItemDamage())) + { + flag = true; + arraylist.remove(itemstack1); + break; + } + } + + if (!flag) + { + return false; + } + } + } + } + + return arraylist.isEmpty(); + } + + /** + * Returns an Item that is the result of this recipe + */ + public ItemStack getCraftingResult(InventoryCrafting p_77572_1_) + { + return this.recipeOutput.copy(); + } + + /** + * Returns the size of the recipe area + */ + public int getRecipeSize() + { + return this.recipeItems.size(); + } + } \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/ModCrafting.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/ModCrafting.java new file mode 100644 index 00000000..ba0b446b --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/ModCrafting.java @@ -0,0 +1,1971 @@ +package com.kitsu.medievalcraft.crafting; + +import java.util.Hashtable; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.oredict.OreDictionary; +import net.minecraftforge.oredict.ShapedOreRecipe; +import net.minecraftforge.oredict.ShapelessOreRecipe; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; + +import cpw.mods.fml.common.registry.GameRegistry; + + +public final class ModCrafting { + + public static final Hashtable pickheads = new Hashtable (){{ + + put(0, ModItems.unbreakingOneHead); + put(1, ModItems.unbreakingTwoHead); + put(2, ModItems.fortuneOneHead); + put(3, ModItems.fortuneTwoHead); + put(4, ModItems.efficOneHead); + put(5, ModItems.efficTwoHead); + put(6, ModItems.efficOneFortuneOneHead); + put(7, ModItems.unbreakingOneEfficOneHead); + put(8, ModItems.unbreakingOneFortuneOneHead); + }}; + + public static final Hashtable rods = new Hashtable (){{ + + put(0, ModItems.woodentoolHandle); + put(1, ModItems.unbreakingWoodRod); + put(2, ModItems.fortuneWoodRod); + put(3, ModItems.ironweaponHandle); + put(4, ModItems.efficIronRod); + put(5, ModItems.fortuneIronRod); + }}; + + public static final Hashtable spadeheads = new Hashtable (){{ + + put(0, ModItems.unbreakingOneSpade); + put(1, ModItems.unbreakingTwoSpade); + put(2, ModItems.fortuneOneSpade); + put(3, ModItems.fortuneTwoSpade); + put(4, ModItems.efficOneSpade); + put(5, ModItems.efficTwoSpade); + put(6, ModItems.efficOneFortuneOneSpade); + put(7, ModItems.unbreakingOneEfficOneSpade); + put(8, ModItems.unbreakingOneFortuneOneSpade); + + }}; + + public static final Hashtable lumberaxeheads = new Hashtable (){{ + + put(0, ModItems.unbreakingOneLumberAxe); + put(1, ModItems.unbreakingTwoLumberAxe); + put(2, ModItems.fortuneOneLumberAxe); + put(3, ModItems.fortuneTwoLumberAxe); + put(4, ModItems.efficOneLumberAxe); + put(5, ModItems.efficTwoLumberAxe); + put(6, ModItems.efficOneFortuneOneLumberAxe); + put(7, ModItems.unbreakingOneEfficOneLumberAxe); + put(8, ModItems.unbreakingOneFortuneOneLumberAxe); + + }}; + + public static final void init() { + + GameRegistry.addRecipe(new ItemStack(Items.iron_horse_armor), new Object[] {"jjj", "lll", "www", 'j', Items.iron_ingot, 'l', ModItems.wovenLeather, 'w', Blocks.wool}); + GameRegistry.addRecipe(new ItemStack(Items.golden_horse_armor), new Object[] {"jjj", "lll", "www", 'j', Items.gold_ingot, 'l', ModItems.wovenLeather, 'w', Blocks.wool}); + GameRegistry.addRecipe(new ItemStack(ModItems.wovenLeather), new Object[] {"sss", "sss", "sss", 's', ModItems.leatherStrap}); + GameRegistry.addRecipe(new ItemStack(ModItems.linkedRings), new Object[] {" ", " ", "xx ", 'x', ModItems.ironRing}); + GameRegistry.addRecipe(new ItemStack(ModItems.ironRingMesh), new Object[] {"xxx", "xxx", "xxx", 'x', ModItems.linkedRings}); + GameRegistry.addRecipe(new ItemStack(Items.chainmail_helmet), new Object[] {"xxx", "x x", " ", 'x', ModItems.ironRingMesh}); + GameRegistry.addRecipe(new ItemStack(Items.chainmail_chestplate), new Object[] {"x x", "xxx", "xxx", 'x', ModItems.ironRingMesh}); + GameRegistry.addRecipe(new ItemStack(Items.chainmail_leggings), new Object[] {"xxx", "x x", "x x", 'x', ModItems.ironRingMesh}); + GameRegistry.addRecipe(new ItemStack(Items.chainmail_boots), new Object[] {" ", "x x", "x x", 'x', ModItems.ironRingMesh}); + //Character.valueOf('x'), new ItemStack(ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE) + GameRegistry.addRecipe(new ItemStack(Items.saddle), new Object[]{"WWW", "i i", "x x", 'W', ModItems.wovenLeather, 'i', ModItems.leatherStrap, 'x', ModItems.ironRing}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.shitblock), new Object[]{"xxx", "xxx","xxx", 'x', ModItems.itemShit}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.eggWashedWall, 5), new Object[]{"xyx", "yxy","xyx", 'y', Items.egg, 'x', Blocks.stone}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.eggWashedBrick, 5), new Object[]{"xyx", "yxy","xyx", 'y', Items.egg, 'x', ModBlocks.eggWashedWall}); + GameRegistry.addRecipe(new ItemStack(ModItems.woodenPlate), new Object[]{" x ", "xxx", " x ", 'x', Blocks.wooden_slab}); + + //GameRegistry.addRecipe(new ShapedOreRecipe(ModItems.workBlade, true, new Object[]{"x", "y", 'x', ModItems.irondaggerBlade, Character.valueOf('y'), "strapLeather"})); + GameRegistry.addRecipe(new ItemStack(Blocks.iron_block), new Object[]{"xxx", "xxx","xxx", 'x', ModBlocks.refinedIron}); + GameRegistry.addRecipe(new ItemStack(Items.paper), new Object[]{"xxx", "xxx","xxx", 'x', ModItems.woodPulp}); + GameRegistry.addRecipe(new ItemStack(ModItems.saplingRing), new Object[]{" x ", "x x"," x ", 'x', ModItems.strippedSapling}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.limestoneRaw), new Object[]{"xx", "xx", 'x', ModItems.limestoneDust}); + GameRegistry.addRecipe(new ItemStack(Items.shears), new Object[]{"x x"," y ", 'x', ModItems.irondaggerBlade, 'y', ModItems.ironRing}); + GameRegistry.addRecipe(new ItemStack(Blocks.iron_bars, 18), new Object[]{"xx", "xx", 'x', ModItems.ironweaponHandle}); + + //-----------------------FILTERS-----------------------// + GameRegistry.addRecipe(new ItemStack(ModItems.charcoalFilter), new Object[] + {"xyx", "zzz", "xyx", + 'x', Items.string, + 'y', Items.paper, + 'z', new ItemStack(Items.coal,0,1)}); + GameRegistry.addRecipe(new ItemStack(ModItems.coarseFilter), new Object[] + {"xyx", " z ", "xyx", + 'x', Items.string, + 'y', Items.paper, + 'z', new ItemStack(ModItems.woodPulp,1,0)}); + GameRegistry.addRecipe(new ItemStack(ModItems.mediumFilter), new Object[] + {"xyx", "zz ", "xyx", + 'x', Items.string, + 'y', Items.paper, + 'z', new ItemStack(ModItems.woodPulp,2,0)}); + + GameRegistry.addRecipe(new ItemStack(ModItems.fineFilter), new Object[] + {"xyx", "zzz", "xyx", + 'x', Items.string, + 'y', Items.paper, + 'z', new ItemStack(ModItems.woodPulp,4,0)}); + + //-----------------------TOOLS-----------------------// + GameRegistry.addRecipe(new ItemStack(ModItems.forgeHammer), new Object[] + {"bii", " i ", " i ", + 'b', Blocks.iron_block, + 'i', ModBlocks.refinedIron}); + + GameRegistry.addRecipe(new ItemStack(ModItems.leatherShears), new Object[] + {" x ", " x", 'x', ModItems.irondaggerBlade}); + + GameRegistry.addRecipe(new ItemStack(ModItems.slottedTongs), new Object[] + {"x x", "aya", "y y", + 'y', Items.stick, + 'x', Blocks.stone, + 'a', Items.string}); + + GameRegistry.addRecipe(new ShapedOreRecipe(ModItems.inlayHammer, true, new Object[] + {"xxx"," x ", " y ", + 'x', ModBlocks.damascus, + 'y', ModItems.ironweaponHandle})); + + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.fireBow), + new Object[]{" x ", "xyx", 'x', Items.stick, Character.valueOf('y'), "cordageStrong"})); + + GameRegistry.addRecipe(new ShapedOreRecipe(ModItems.workBlade, true, new Object[] + {"x", "y", + 'x', ModItems.irondaggerBlade, + 'y', Items.stick})); + + GameRegistry.addRecipe(new ItemStack(ModItems.ironSaw), new Object [] + {"x", "y", + 'x', Blocks.planks, + 'y', ModItems.ironsawBlade}); + + GameRegistry.addRecipe(new ItemStack(ModItems.flintSaw), new Object []{" x ", "xyx",'x', Items.stick,'y', Items.flint}); + + //-----------------------MACHINES-----------------------// + GameRegistry.addRecipe(new ItemStack(ModBlocks.forgeAnvil), new Object[] + {"xyx", " x ","xxx", + 'x',ModBlocks.refinedIron, + 'y', Blocks.iron_block}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.formtable), new Object[] + {"ccc", "bbb", "bbb", + 'c', Blocks.crafting_table, + 'b', Blocks.brick_block}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.forge), new Object [] + {"xax", "xsx", "xxx", + 'x', Blocks.stonebrick, 'a', Blocks.stone_slab, 's', ModBlocks.firebox}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.forge), new Object [] + {"xax", "xsx", "xxx", + 'x', Blocks.nether_brick, 'a', Blocks.stone_slab, 's', ModBlocks.firebox}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.solidFilter), new Object[] + {"xyx", "y y", "xyx", + 'x', ModItems.splitBoard, + 'y', Items.stick}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.waterFilter), new Object[] + {" i ", "xyx", " i ", + 'x', ModBlocks.ironPlate, + 'i', Blocks.iron_bars, + 'y', ModItems.charcoalFilter}); + GameRegistry.addRecipe(new ItemStack(ModItems.itemSmallBarrelLid), new Object[] + {"ixi", "xxx", "ixi", + 'x', ModItems.halfSplitBoard, + 'i', ModItems.strippedSapling}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.shelfFour), new Object[] + {"ixi", "x x", "ixi", + 'x', ModItems.halfSplitBoard, + 'i', ModItems.splitBoard}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.firebox), new Object[] + {"x x", "x x", "xxx", + 'x', Items.brick}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.firebox), new Object[] + {"x x", "x x", "xxx", + 'x', Items.netherbrick}); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.firebox), new Object[] + {"x x", "x x", "xxx", + ('x'), "ingotBrickClay"})); + + //-----------------------LEATHER STUFF-----------------------// + + //GameRegistry.addRecipe(new ItemStack(ModItems.rawCuredLeather), new Object[]{"x", "z", 'x', Items.leather, 'z', ModItems.salt}); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.rawCuredLeather), new Object[]{Items.leather, "foodSalt"})); + GameRegistry.addRecipe(new ItemStack(ModItems.finishedLeather), new Object[]{"x",'x', ModItems.tannedLeather}); + //GameRegistry.addRecipe(new ItemStack(ModItems.rawCuredLeather), new Object[]{"x", "z", 'x', Items.leather, 'z', ModItems.salt}); + + + //-----------------------ARROWS STUFF-----------------------// + + GameRegistry.addRecipe(new ItemStack(ModItems.itemModelArrow, 4), new Object[]{" x", "zy", 'x', Items.stick, 'y', Items.feather, 'z', ModItems.leatherString}); + GameRegistry.addRecipe(new ItemStack(ModItems.itemModelArrow, 4), new Object[]{" x", "zy", 'x', Items.stick, 'y', Items.feather, 'z', Items.string}); + GameRegistry.addRecipe(new ItemStack(ModItems.itemIronTippedModelArrow), new Object[]{"x", "z", 'z', ModItems.itemModelArrow, 'x', ModItems.ironsharpTip}); + + //GameRegistry.addRecipe(new ItemStack(ModItems.itemIronTippedModelArrow, 4), new Object[]{" a"," x", "zy", 'x', Items.stick, 'y', Items.feather, 'z', ModItems.leatherString, 'a', ModItems.ironsharpTip}); + //GameRegistry.addRecipe(new ItemStack(ModItems.itemIronTippedModelArrow, 4), new Object[]{" a"," x", "zy", 'x', Items.stick, 'y', Items.feather, 'z', Items.string, 'a', ModItems.ironsharpTip}); + //Temp Recipe + ItemStack longbow0 = new ItemStack(ModItems.longbow); + longbow0.stackTagCompound = new NBTTagCompound(); + longbow0.stackTagCompound.setInteger("D", 0); + GameRegistry.addRecipe(longbow0, new Object[]{"ya", 'y', ModItems.unstrungLongbow, 'a', Items.string}); + + //-----------------------CRUCIBLE STUFF-----------------------// + //GameRegistry.addRecipe(new ItemStack(ModItems.crucibleLid), new Object[]{"x", "y", 'x', Items.clay_ball, 'y', Blocks.stone_slab}); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.emptySoftCrucible), new Object[]{"y y", "y y", "yyy", 'y', "clumpClay"})); + GameRegistry.addRecipe(new ItemStack(ModItems.charcoalLeafPellet), new Object[]{"xxx", "xyx", "xxx", 'x', new ItemStack(Blocks.leaves,0,3), 'y', new ItemStack(Items.coal,0,1)}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.crucibleIronOre), + new Object[]{" x ", "abc", " y ", + 'x', Blocks.stone_slab, + 'y', ModBlocks.emptyCookedCrucible, + 'a', Blocks.sand, + 'b', Blocks.iron_ore, + 'c', new ItemStack(Items.coal,0,1)}); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.crucibleIronIngot), + new Object[]{" x ", "abc"," y ", + 'x', Blocks.stone_slab, + 'y', ModBlocks.emptyCookedCrucible, + 'a', Blocks.sand, + 'b', "ingotIron", + 'c', new ItemStack(Items.coal,0,1)})); + + GameRegistry.addRecipe(new ItemStack(ModBlocks.crucibleWootz), + new Object[]{" x ", "abc", " y ", + 'x', Blocks.stone_slab, + 'y', ModBlocks.emptyCookedCrucible, + 'a', Blocks.sand, + 'b', ModBlocks.wootzOre, + 'c', ModItems.charcoalLeafPellet}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.crucibleLapis), + new Object[]{" x ", "abb", " y ", + 'x', Blocks.stone_slab, + 'a', Blocks.sand, 'b', Blocks.lapis_block, + 'y', ModBlocks.emptyCookedCrucible}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.crucibleRedstone), + new Object[]{" x ", "abb", " y ", + 'x', Blocks.stone_slab, + 'a', Blocks.sand, 'b', Blocks.redstone_block, + 'y', ModBlocks.emptyCookedCrucible}); + + //-----------------------WEAPONS-----------------------// + GameRegistry.addRecipe(new ShapedOreRecipe((ModItems.longSword), new Object[]{"b", "a", Character.valueOf('a'), "strapLeather", 'b', ModItems.ironlongswordBlade})); + GameRegistry.addRecipe(new ShapedOreRecipe((ModItems.heavyMace), new Object[]{" a ", "aba", " c ", 'a', ModItems.ironsharpTip, 'b', ModItems.ironmaceHead, 'c', ModItems.ironweaponHandle})); + + ItemStack woodenknockshield = new ItemStack(ModItems.woodenShield); + woodenknockshield.addEnchantment(Enchantment.knockback, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(woodenknockshield, new Object[]{"xxx", "sxs", "xxx", Character.valueOf('s'), "strapLeather", 'x', ModItems.woodenPlate})); + + ItemStack ironknockshield = new ItemStack(ModItems.ironShield); + ironknockshield.addEnchantment(Enchantment.knockback, 2); + //GameRegistry.addRecipe(new ShapedOreRecipe(ironknockshield, new Object[]{"xxx", "sxs", "xxx", Character.valueOf('s'), "strapLeather", 'x', ModBlocks.ironPlate})); + + ItemStack gladius0 = new ItemStack(ModItems.gladius); + gladius0.stackTagCompound = new NBTTagCompound(); + gladius0.stackTagCompound.setInteger("GLADIUSTEXTURE", 0); + GameRegistry.addRecipe(new ShapedOreRecipe(gladius0, new Object[]{"x", "y", Character.valueOf('y'), "strapLeather", 'x', ModItems.ironshortswordBlade})); + GameRegistry.addRecipe(new ShapedOreRecipe((ModItems.itemITSpear), new Object[]{"a", "c", "b", 'a', ModItems.ironspearTip, 'b', ModItems.woodentoolHandle, Character.valueOf('c'), "strapLeather"})); + + //-----------------------CANNONS-----------------------// + GameRegistry.addRecipe(new ItemStack(ModItems.cannonBarrel), + new Object[]{" xx", " ", " xx", + 'x', ModBlocks.ironPlate}); + GameRegistry.addRecipe(new ItemStack(ModItems.cannonBreach), + new Object[]{" x ", " x", " x ", + 'x', ModBlocks.ironPlate}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.cannon_28), + new Object[]{" x ","cyc", "ccc", + 'y', ModItems.cannonBreach, + 'c', ModItems.splitBoard, + 'x', ModItems.cannonBarrel}); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.cannonBall_28,4), + new Object[]{" x ", "xyx", " x ", + 'x', "nuggetIron", + 'y', Blocks.stone})); + + //-----------------------PICKAXE COMBOS-----------------------// + //BASE PICK + GameRegistry.addRecipe(new ItemStack(Items.iron_pickaxe), new Object[]{"a", "b", 'a',ModItems.ironpickaxeHead, 'b', ModItems.woodentoolHandle}); + GameRegistry.addRecipe(new ItemStack(Items.iron_pickaxe), new Object[]{"a", "b", 'a',ModItems.ironpickaxeHead, 'b', ModItems.ironweaponHandle}); + GameRegistry.addRecipe(new ItemStack(Items.iron_shovel), new Object[]{"a", "b", 'a',ModItems.ironspadeHead, 'b', ModItems.woodentoolHandle}); + GameRegistry.addRecipe(new ItemStack(Items.iron_shovel), new Object[]{"a", "b", 'a',ModItems.ironspadeHead, 'b', ModItems.ironweaponHandle}); + GameRegistry.addRecipe(new ItemStack(Items.iron_axe), new Object[]{"a", "b", 'a',ModItems.ironaxeHead, 'b', ModItems.woodentoolHandle}); + GameRegistry.addRecipe(new ItemStack(Items.iron_axe), new Object[]{"a", "b", 'a',ModItems.ironaxeHead, 'b', ModItems.ironweaponHandle}); + + GameRegistry.addRecipe(new ShapedOreRecipe((ModItems.customIronPick), new Object[]{"a", "c", "b", Character.valueOf('c'), "strapLeather", 'a',ModItems.ironpickaxeHead, 'b', ModItems.woodentoolHandle})); + GameRegistry.addRecipe(new ShapedOreRecipe((ModItems.customHandleIronPick), new Object[]{"a", "c", "b", Character.valueOf('c'), "strapLeather", 'a',ModItems.ironpickaxeHead, 'b', ModItems.ironweaponHandle})); + GameRegistry.addRecipe(new ShapedOreRecipe((ModItems.customIronShovel), new Object[]{"a", "c", "b", Character.valueOf('c'), "strapLeather", 'a',ModItems.ironspadeHead, 'b', ModItems.woodentoolHandle})); + GameRegistry.addRecipe(new ShapedOreRecipe((ModItems.customHandleIronShovel), new Object[]{"a", "c", "b", Character.valueOf('c'), "strapLeather", 'a',ModItems.ironspadeHead, 'b', ModItems.ironweaponHandle})); + GameRegistry.addRecipe(new ShapedOreRecipe((ModItems.customIronLumberAxe), new Object[]{"a", "c", "b", Character.valueOf('c'), "strapLeather", 'a', ModItems.ironaxeHead, 'b', ModItems.woodentoolHandle})); + GameRegistry.addRecipe(new ShapedOreRecipe((ModItems.customHandleIronLumberAxe), new Object[]{"a", "c", "b", Character.valueOf('c'), "strapLeather", 'a', ModItems.ironaxeHead, 'b', ModItems.ironweaponHandle})); + + GameRegistry.addRecipe(new ShapedOreRecipe((ModItems.customIronHoe), new Object[]{"a", "c", "b", Character.valueOf('c'), "strapLeather", 'a', ModItems.ironhoeHead, 'b', ModItems.woodentoolHandle})); + + ItemStack sTouchpick = new ItemStack(ModItems.customIronPick1); + sTouchpick.addEnchantment(Enchantment.silkTouch, 1); + + ItemStack sTouchpick1 = new ItemStack(ModItems.customIronPick2); + sTouchpick1.addEnchantment(Enchantment.silkTouch, 1); + sTouchpick1.addEnchantment(Enchantment.unbreaking, 1); + + ItemStack sTouchpick3 = new ItemStack(ModItems.customIronPick4); + sTouchpick3.addEnchantment(Enchantment.silkTouch, 1); + + ItemStack sTouchpick2 = new ItemStack(ModItems.customIronPick3); + sTouchpick2.addEnchantment(Enchantment.silkTouch, 1); + sTouchpick2.addEnchantment(Enchantment.efficiency, 1); + + GameRegistry.addRecipe(new ShapedOreRecipe(sTouchpick, new Object[]{"a", "c", "b", 'a', ModItems.silkTouchIronHead, 'b', ModItems.woodentoolHandle, Character.valueOf('c'), "strapLeather"})); + GameRegistry.addRecipe(new ShapedOreRecipe(sTouchpick1, new Object[]{"a", "c", "b", 'a', ModItems.silkTouchIronHead, 'b', ModItems.unbreakingWoodRod, Character.valueOf('c'), "strapLeather"})); + GameRegistry.addRecipe(new ShapedOreRecipe(sTouchpick3, new Object[]{"a", "c", "b", 'a', ModItems.silkTouchIronHead, 'b', ModItems.ironweaponHandle, Character.valueOf('c'), "strapLeather"})); + GameRegistry.addRecipe(new ShapedOreRecipe(sTouchpick2, new Object[]{"a", "c", "b", 'a', ModItems.silkTouchIronHead, 'b', ModItems.efficIronRod, Character.valueOf('c'), "strapLeather"})); + + ItemStack sTouchspade0 = new ItemStack(ModItems.customIronShovel0); + sTouchspade0.addEnchantment(Enchantment.silkTouch, 1); + + ItemStack sTouchspade2 = new ItemStack(ModItems.customIronShovel2); + sTouchspade2.addEnchantment(Enchantment.silkTouch, 1); + + ItemStack sTouchspade1 = new ItemStack(ModItems.customIronShovel1); + sTouchspade1.addEnchantment(Enchantment.silkTouch, 1); + sTouchspade1.addEnchantment(Enchantment.unbreaking, 1); + + ItemStack sTouchspade3 = new ItemStack(ModItems.customIronShovel3); + sTouchspade3.addEnchantment(Enchantment.silkTouch, 1); + sTouchspade3.addEnchantment(Enchantment.efficiency, 1); + + GameRegistry.addRecipe(new ShapedOreRecipe(sTouchspade0, new Object[]{"a", "c", "b", 'a', ModItems.silkTouchIronSpade, 'b', ModItems.woodentoolHandle, Character.valueOf('c'), "strapLeather"})); + GameRegistry.addRecipe(new ShapedOreRecipe(sTouchspade1, new Object[]{"a", "c", "b", 'a', ModItems.silkTouchIronSpade, 'b', ModItems.unbreakingWoodRod, Character.valueOf('c'), "strapLeather"})); + GameRegistry.addRecipe(new ShapedOreRecipe(sTouchspade2, new Object[]{"a", "c", "b", 'a', ModItems.silkTouchIronSpade, 'b', ModItems.ironweaponHandle, Character.valueOf('c'), "strapLeather"})); + GameRegistry.addRecipe(new ShapedOreRecipe(sTouchspade3, new Object[]{"a", "c", "b", 'a', ModItems.silkTouchIronSpade, 'b', ModItems.efficIronRod, Character.valueOf('c'), "strapLeather"})); + + ItemStack sTouchaxe = new ItemStack(ModItems.customIronLumberAxe0); + sTouchaxe.addEnchantment(Enchantment.silkTouch, 1); + + ItemStack sTouchaxe3 = new ItemStack(ModItems.customIronLumberAxe3); + sTouchaxe3.addEnchantment(Enchantment.silkTouch, 1); + + ItemStack sTouchaxe1 = new ItemStack(ModItems.customIronLumberAxe1); + sTouchaxe1.addEnchantment(Enchantment.silkTouch, 1); + sTouchaxe1.addEnchantment(Enchantment.unbreaking, 1); + + ItemStack sTouchaxe2 = new ItemStack(ModItems.customIronLumberAxe2); + sTouchaxe2.addEnchantment(Enchantment.silkTouch, 1); + sTouchaxe2.addEnchantment(Enchantment.efficiency, 1); + + GameRegistry.addRecipe(new ShapedOreRecipe(sTouchaxe, new Object[]{"a", "c", "b", 'a', ModItems.silkTouchIronLumberAxe, 'b', ModItems.woodentoolHandle, Character.valueOf('c'), "strapLeather"})); + GameRegistry.addRecipe(new ShapedOreRecipe(sTouchaxe1, new Object[]{"a", "c", "b", 'a', ModItems.silkTouchIronLumberAxe, 'b', ModItems.unbreakingWoodRod, Character.valueOf('c'), "strapLeather"})); + GameRegistry.addRecipe(new ShapedOreRecipe(sTouchaxe3, new Object[]{"a", "c", "b", 'a', ModItems.silkTouchIronLumberAxe, 'b', ModItems.ironweaponHandle, Character.valueOf('c'), "strapLeather"})); + GameRegistry.addRecipe(new ShapedOreRecipe(sTouchaxe2, new Object[]{"a", "c", "b", 'a', ModItems.silkTouchIronLumberAxe, 'b', ModItems.efficIronRod, Character.valueOf('c'), "strapLeather"})); + + //REGISTERS ALL POSSIBLE COMBINATIONS OF PICKAXE + for (int i = 0; i < pickheads.size(); i++) { + for (int j = 0; j < rods.size(); j++) { + //UNBREAKING 1 + if ((i == 0 && j == 0)){ + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase0); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 0 && j == 3)){ + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronPickCase0); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING 2 + ((i == 0 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //CUSTOMSTRONGIRONPICK + ((i == 1 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 1 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase3); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + //UNBREAKING 3 + ((i == 1 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase4); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 3); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE 1 + ((i == 2 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase5); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 2 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase6); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE 2 + ((i == 3 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase7); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 2 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase8); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 3 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase9); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 2 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase10); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE 3 + ((i == 3 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase11); + enchantedSwitch.addEnchantment(Enchantment.fortune, 3); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE 3 + ((i == 3 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase12); + enchantedSwitch.addEnchantment(Enchantment.fortune, 3); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC 1 + ((i == 4 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase13); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 4 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase14); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC 2 + ((i == 5 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase15); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 5 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase16); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 4 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase17); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC 3 + ((i == 5 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase18); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 3); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING ONE + FORTUNE ONE + ((i == 0 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase19); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 0 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase20); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING ONE + EFFIC ONE + ((i == 0 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase21); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING TWO + FORTUNE ONE + ((i == 1 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase22); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 1 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase23); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING TWO + EFFIC ONE + ((i == 1 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase24); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE ONE + UNBREAKING + ((i == 2 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase25); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE ONE + EFFIC ONE + ((i == 2 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase26); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE TWO + UNBREAKING ONE + ((i == 3 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase27); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE TWO + EFFIC ONE + ((i == 3 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase28); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONE + UNBREAKING + ((i == 4 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase29); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONE + FORTUNE + ((i == 4 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase30); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 4 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase31); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC TWO + UNBREAKING + ((i == 5 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase32); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC TWO + FORTUNE + ((i == 5 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase33); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 5 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase34); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONE + FORTUNE + ((i == 6 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase35); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONEFORTUNE + WOOD/IRON + ((i == 6 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase36); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 6 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase37); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 6 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase38); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONEFORTUNE + FORTUNE + ((i == 6 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase39); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONEFORTUNE + EFFIC + ((i == 6 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase40); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEEFFICONE + WOOD/IRON + ((i == 7 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase41); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 7 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase42); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEEFFICONE + unbreaking + ((i == 7 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase43); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEEFFICONE + fortune + ((i == 7 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase44); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 7 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase45); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEEFFICONE + effic + ((i == 7 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase46); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEFORTUNEONE + wood/iron + ((i == 8 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase47); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 8 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase48); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEFORTUNEONE + fortune + ((i == 8 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase49); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 8 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase50); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEFORTUNEONE + unbreaking + ((i == 8 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase51); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEFORTUNEONE + effic + ((i == 8 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronPickCase52); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', pickheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } + } + } + + //REGISTERS ALL POSSIBLE COMBINATIONS OF SHOVEL + for (int i = 0; i < spadeheads.size(); i++) { + for (int j = 0; j < rods.size(); j++) { + //UNBREAKING 1 + if ((i == 0 && j == 0)){ + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase0); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 0 && j == 3)){ + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase00); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING 2 + ((i == 0 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //CUSTOMSTRONGIRONPICK + ((i == 1 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 1 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase3); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + //UNBREAKING 3 + ((i == 1 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase4); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 3); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE 1 + ((i == 2 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase5); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 2 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase6); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE 2 + ((i == 3 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase7); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 2 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase8); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 3 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase9); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 2 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase10); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE 3 + ((i == 3 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase11); + enchantedSwitch.addEnchantment(Enchantment.fortune, 3); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE 3 + ((i == 3 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase12); + enchantedSwitch.addEnchantment(Enchantment.fortune, 3); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC 1 + ((i == 4 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase13); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 4 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase14); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC 2 + ((i == 5 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase15); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 5 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase16); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 4 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase17); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC 3 + ((i == 5 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase18); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 3); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING ONE + FORTUNE ONE + ((i == 0 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase19); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 0 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase20); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING ONE + EFFIC ONE + ((i == 0 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase21); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING TWO + FORTUNE ONE + ((i == 1 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase22); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 1 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase23); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING TWO + EFFIC ONE + ((i == 1 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase24); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE ONE + UNBREAKING + ((i == 2 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase25); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE ONE + EFFIC ONE + ((i == 2 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase26); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE TWO + UNBREAKING ONE + ((i == 3 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase27); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE TWO + EFFIC ONE + ((i == 3 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase28); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONE + UNBREAKING + ((i == 4 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase29); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONE + FORTUNE + ((i == 4 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase30); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 4 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase31); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC TWO + UNBREAKING + ((i == 5 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase32); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC TWO + FORTUNE + ((i == 5 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase33); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 5 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase34); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONE + FORTUNE + ((i == 6 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase35); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONEFORTUNE + WOOD/IRON + ((i == 6 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase36); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 6 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase37); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 6 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase38); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONEFORTUNE + FORTUNE + ((i == 6 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase39); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONEFORTUNE + EFFIC + ((i == 6 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase40); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEEFFICONE + WOOD/IRON + ((i == 7 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase41); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 7 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase42); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEEFFICONE + unbreaking + ((i == 7 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase43); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEEFFICONE + fortune + ((i == 7 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase44); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 7 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase45); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEEFFICONE + effic + ((i == 7 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase46); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEFORTUNEONE + wood/iron + ((i == 8 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase47); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 8 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase48); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEFORTUNEONE + fortune + ((i == 8 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase49); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 8 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase50); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEFORTUNEONE + unbreaking + ((i == 8 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase51); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEFORTUNEONE + effic + ((i == 8 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronShovelCase52); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', spadeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } + } + } + + //REGISTERS ALL POSSIBLE COMBINATIONS OF LUMBERAXE + for (int i = 0; i < lumberaxeheads.size(); i++) { + for (int j = 0; j < rods.size(); j++) { + //UNBREAKING 1 + if ((i == 0 && j == 0)){ + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 0 && j == 3)){ + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING 2 + ((i == 0 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //CUSTOMSTRONGIronLumberAxe + ((i == 1 && j == 0) || (i == 1 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customStrongIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 1 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleStrongIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING 3 + ((i == 1 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customStrongIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 3); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE 1 + ((i == 2 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customWeakIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 2 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE 2 + ((i == 3 && j == 0) || (i == 2 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customWeakIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 3 && j == 3) || (i == 2 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE 3 + ((i == 3 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customWeakIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.fortune, 3); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 3 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.fortune, 3); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC 1 + ((i == 4 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customWeakIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + + ((i == 4 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC 2 + ((i == 5 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customWeakIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 5 && j == 3) || (i == 4 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC 3 + ((i == 5 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 3); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING ONE + FORTUNE ONE + + ((i == 0 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 0 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING ONE + EFFIC ONE + ((i == 0 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING TWO + FORTUNE ONE + ((i == 1 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customStrongIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 1 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleStrongIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKING TWO + EFFIC ONE + ((i == 1 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleStrongIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE ONE + UNBREAKING + ((i == 2 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE ONE + EFFIC ONE + ((i == 2 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE TWO + UNBREAKING ONE + ((i == 3 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //FORTUNE TWO + EFFIC ONE + ((i == 3 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONE + UNBREAKING + ((i == 4 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONE + FORTUNE + ((i == 4 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customWeakIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 4 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC TWO + UNBREAKING + ((i == 5 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC TWO + FORTUNE + ((i == 5 && j == 2) || (i == 5 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customWeakIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 5 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONE + FORTUNE + UNBREAKING + ((i == 6 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customWeakIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONEFORTUNE + WOOD/IRON + ((i == 6 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 6 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONEFORTUNE + FORTUNE + ((i == 6 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customWeakIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 6 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //EFFIC ONEFORTUNE + EFFIC + ((i == 6 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEEFFICONE + WOOD/IRON + ((i == 7 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 7 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEEFFICONE + unbreaking + ((i == 7 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEEFFICONE + fortune + ((i == 7 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 7 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEEFFICONE + effic + ((i == 7 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEFORTUNEONE + wood/iron + ((i == 8 && j == 0)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 8 && j == 3)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEFORTUNEONE + fortune + ((i == 8 && j == 2)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + ((i == 8 && j == 5)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.fortune, 2); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEFORTUNEONE + unbreaking + ((i == 8 && j == 1)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 2); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } else if + //UNBREAKONEFORTUNEONE + effic + ((i == 8 && j == 4)) { + ItemStack enchantedSwitch = new ItemStack(ModItems.customHandleIronLumberAxe); + enchantedSwitch.addEnchantment(Enchantment.fortune, 1); + enchantedSwitch.addEnchantment(Enchantment.unbreaking, 1); + enchantedSwitch.addEnchantment(Enchantment.efficiency, 1); + GameRegistry.addRecipe(new ShapedOreRecipe(enchantedSwitch, + new Object[]{"a", "c", "b", 'a', lumberaxeheads.get(i), 'b', rods.get(j), Character.valueOf('c'), "strapLeather"})); + } + } + } + + //ItemStack enchanted = new ItemStack(ModItems.customIronPick); + //enchanted.addEnchantment(Enchantment.unbreaking, 2); + //GameRegistry.addRecipe(enchanted, new Object[]{"a","b", 'a', pickheads.get(2), 'b', rods.get(0)}); + + //-----------------------TOOL ROD CRAFTING-----------------------// + GameRegistry.addRecipe(new ItemStack(ModItems.fortuneWoodRod), new Object []{"a", "b", 'a', ModItems.woodentoolHandle, 'b', Blocks.lapis_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingWoodRod), new Object []{"a", "b", 'a', ModItems.woodentoolHandle, 'b', Items.diamond}); + GameRegistry.addRecipe(new ItemStack(ModItems.fortuneIronRod), new Object []{"a", "b", 'a', ModItems.ironweaponHandle, 'b', Blocks.lapis_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficIronRod), new Object[]{"a", "b", 'a', ModItems.ironweaponHandle, 'b', Blocks.redstone_block}); + + //-----------------------PICKAXE HEAD CRAFTING-----------------------// + /*GameRegistry.addRecipe(new ItemStack(ModItems.silkTouchIronHead), new Object []{"aba", 'a', Items.emerald, 'b', ModItems.ironpickaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneHead), new Object []{"ab", 'a', Items.diamond, 'b', ModItems.ironpickaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneHead), new Object []{"ba", 'a', Items.diamond, 'b', ModItems.ironpickaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingTwoHead), new Object []{"aba", 'a', Items.diamond, 'b', ModItems.ironpickaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficOneHead), new Object[]{"ab", 'a', Blocks.redstone_block, 'b', ModItems.ironpickaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficOneHead), new Object[]{"ba", 'a', Blocks.redstone_block, 'b', ModItems.ironpickaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficTwoHead), new Object []{"aba", 'a', Blocks.redstone_block, 'b', ModItems.ironpickaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.fortuneOneHead), new Object[]{"ab", 'a', Blocks.lapis_block, 'b', ModItems.ironpickaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.fortuneOneHead), new Object[]{"ba", 'a', Blocks.lapis_block, 'b', ModItems.ironpickaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.fortuneTwoHead), new Object []{"aba", 'a', Blocks.lapis_block, 'b', ModItems.ironpickaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficOneFortuneOneHead), new Object[]{"abc", 'a', Blocks.redstone_block, 'b', ModItems.ironpickaxeHead, 'c', Blocks.lapis_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficOneFortuneOneHead), new Object[]{"cba", 'a', Blocks.redstone_block, 'b', ModItems.ironpickaxeHead, 'c', Blocks.lapis_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneEfficOneHead), new Object[]{"abc", 'a', Items.diamond, 'b', ModItems.ironpickaxeHead, 'c', Blocks.redstone_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneEfficOneHead), new Object[]{"cba", 'a', Items.diamond, 'b', ModItems.ironpickaxeHead, 'c', Blocks.redstone_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneFortuneOneHead), new Object[]{"abc", 'a', Items.diamond, 'b', ModItems.ironpickaxeHead, 'c', Blocks.lapis_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneFortuneOneHead), new Object[]{"cba", 'a', Items.diamond, 'b', ModItems.ironpickaxeHead, 'c', Blocks.lapis_block}); + + //-----------------------SPADE CRAFTING-----------------------// + GameRegistry.addRecipe(new ItemStack(ModItems.silkTouchIronSpade), new Object []{"aba", 'a', Items.emerald, 'b', ModItems.ironspadeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneSpade), new Object []{"ab", 'a', Items.diamond, 'b', ModItems.ironspadeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneSpade), new Object []{"ba", 'a', Items.diamond, 'b', ModItems.ironspadeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingTwoSpade), new Object []{"aba", 'a', Items.diamond, 'b', ModItems.ironspadeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficOneSpade), new Object[]{"ab", 'a', Blocks.redstone_block, 'b', ModItems.ironspadeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficOneSpade), new Object[]{"ba", 'a', Blocks.redstone_block, 'b', ModItems.ironspadeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficTwoSpade), new Object []{"aba", 'a', Blocks.redstone_block, 'b', ModItems.ironspadeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.fortuneOneSpade), new Object[]{"ab", 'a', Blocks.lapis_block, 'b', ModItems.ironspadeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.fortuneOneSpade), new Object[]{"ba", 'a', Blocks.lapis_block, 'b', ModItems.ironspadeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.fortuneTwoSpade), new Object []{"aba", 'a', Blocks.lapis_block, 'b', ModItems.ironspadeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficOneFortuneOneSpade), new Object[]{"abc", 'a', Blocks.redstone_block, 'b', ModItems.ironspadeHead, 'c', Blocks.lapis_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficOneFortuneOneSpade), new Object[]{"cba", 'a', Blocks.redstone_block, 'b', ModItems.ironspadeHead, 'c', Blocks.lapis_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneEfficOneSpade), new Object[]{"abc", 'a', Items.diamond, 'b', ModItems.ironspadeHead, 'c', Blocks.redstone_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneEfficOneSpade), new Object[]{"cba", 'a', Items.diamond, 'b', ModItems.ironspadeHead, 'c', Blocks.redstone_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneFortuneOneSpade), new Object[]{"abc", 'a', Items.diamond, 'b', ModItems.ironspadeHead, 'c', Blocks.lapis_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneFortuneOneSpade), new Object[]{"cba", 'a', Items.diamond, 'b', ModItems.ironspadeHead, 'c', Blocks.lapis_block}); + + + //-----------------------SPADE CRAFTING-----------------------// + GameRegistry.addRecipe(new ItemStack(ModItems.silkTouchIronLumberAxe), new Object []{"a", "b", "a", 'a', Items.emerald, 'b', ModItems.ironaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneLumberAxe), new Object []{"a", "b", 'a', Items.diamond, 'b', ModItems.ironaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneLumberAxe), new Object []{"b", "a", 'a', Items.diamond, 'b', ModItems.ironaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingTwoLumberAxe), new Object []{"a", "b", "a", 'a', Items.diamond, 'b', ModItems.ironaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficOneLumberAxe), new Object[]{"a", "b", 'a', Blocks.redstone_block, 'b', ModItems.ironaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficOneLumberAxe), new Object[]{"b", "a", 'a', Blocks.redstone_block, 'b', ModItems.ironaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficTwoLumberAxe), new Object []{"a", "b", "a", 'a', Blocks.redstone_block, 'b', ModItems.ironaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.fortuneOneLumberAxe), new Object[]{"a", "b", 'a', Blocks.lapis_block, 'b', ModItems.ironaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.fortuneOneLumberAxe), new Object[]{"b", "a", 'a', Blocks.lapis_block, 'b', ModItems.ironaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.fortuneTwoLumberAxe), new Object []{"a", "b", "a", 'a', Blocks.lapis_block, 'b', ModItems.ironaxeHead}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficOneFortuneOneLumberAxe), new Object[]{"a", "b", "c", 'a', Blocks.redstone_block, 'b', ModItems.ironaxeHead, 'c', Blocks.lapis_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.efficOneFortuneOneLumberAxe), new Object[]{"c", "b", "a", 'a', Blocks.redstone_block, 'b', ModItems.ironaxeHead, 'c', Blocks.lapis_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneEfficOneLumberAxe), new Object[]{"a", "b", "c", 'a', Items.diamond, 'b', ModItems.ironaxeHead, 'c', Blocks.redstone_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneEfficOneLumberAxe), new Object[]{"c", "b", "a", 'a', Items.diamond, 'b', ModItems.ironaxeHead, 'c', Blocks.redstone_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneFortuneOneLumberAxe), new Object[]{"a", "b", "c", 'a', Items.diamond, 'b', ModItems.ironaxeHead, 'c', Blocks.lapis_block}); + GameRegistry.addRecipe(new ItemStack(ModItems.unbreakingOneFortuneOneLumberAxe), new Object[]{"c", "b", "a", 'a', Items.diamond, 'b', ModItems.ironaxeHead, 'c', Blocks.lapis_block}); + */ + //-----------------------SMELTING RECIPES-----------------------// + //GameRegistry.addSmelting(xxx, new ItemStack(ModItems.yyy), 0.0F); + GameRegistry.addSmelting(ModItems.pickaxeClayForm, new ItemStack(ModItems.cookedpickaxeClayForm), 0.0F); + GameRegistry.addSmelting(ModItems.spadeHeadClayForm, new ItemStack(ModItems.cookedspadeHeadClayForm), 0.0F); + GameRegistry.addSmelting(ModItems.hoeHeadClayForm, new ItemStack(ModItems.cookedhoeHeadClayForm), 0.0F); + GameRegistry.addSmelting(ModItems.axeHeadClayForm, new ItemStack(ModItems.cookedaxeHeadClayForm), 0.0F); + GameRegistry.addSmelting(ModItems.longswordClayForm, new ItemStack(ModItems.cookedlongswordClayForm), 0.0F); + GameRegistry.addSmelting(ModItems.shortswordClayForm, new ItemStack(ModItems.cookedshortswordClayForm), 0.0F); + GameRegistry.addSmelting(ModItems.daggerClayForm, new ItemStack(ModItems.cookeddaggerClayForm), 0.0F); + //GameRegistry.addSmelting(ModItems.halberdClayForm, new ItemStack(ModItems.cookedhalberdClayForm), 0.0F); + GameRegistry.addSmelting(ModItems.speartipClayForm, new ItemStack(ModItems.cookedspeartipClayForm), 0.0F); + GameRegistry.addSmelting(ModItems.maceheadClayForm, new ItemStack(ModItems.cookedmaceheadClayForm), 0.0F); + GameRegistry.addSmelting(ModItems.sharptipClayForm, new ItemStack(ModItems.cookedsharptipClayForm), 0.0F); + GameRegistry.addSmelting(ModItems.battleaxeClayForm, new ItemStack(ModItems.cookedbattleaxeClayForm), 0.0F); + GameRegistry.addSmelting(ModItems.ringClayForm, new ItemStack(ModItems.cookedringClayForm), 0.0F); + //GameRegistry.addSmelting(ModItems.plateClayForm, new ItemStack(ModItems.cookedplateClayForm), 0.0F); + GameRegistry.addSmelting(ModItems.sawbladeClayForm, new ItemStack(ModItems.cookedsawbladeClayForm), 0.0F); + //GameRegistry.addSmelting(ModItems.ironsquarePlate, new ItemStack(ModBlocks.hotIronPlate), 0.0F); + GameRegistry.addSmelting(ModItems.ironChunk, new ItemStack(ModItems.hotironChunk), 0.0F); + + //-----------------------FORGE HAMMER CRAFTING-----------------------// + //IRON CHUNK + GameRegistry.addRecipe(new ShapedOreRecipe (new ItemStack(ModItems.ironChunk, 9, 0), new Object[]{"x", "y", + Character.valueOf('y'), "ingotIron", + Character.valueOf('x'), new ItemStack(ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE) })); + /* + //IRON PICKAXE HEAD FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironpickaxeHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookedpickaxeClayForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON SPADE HEAD FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironspadeHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookedspadeHeadClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON HOE HEAD FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironhoeHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookedhoeHeadClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON AXE HEAD FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironaxeHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookedaxeHeadClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON LONGSWORD FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironlongswordBlade, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookedlongswordClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON SHORT SWORD FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironshortswordBlade, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookedshortswordClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON DAGGER FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.irondaggerBlade, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookeddaggerClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON HALBERD FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironhalberdHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookedhalberdClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON SPEAR TIP FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironspearTip, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookedspeartipClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON SHARP TIP FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironsharpTip, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotironChunk, + Character.valueOf('z'), new ItemStack (ModItems.cookedsharptipClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON MACE HEAD FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironmaceHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookedmaceheadClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON BATTLE AXE FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironbattleaxeHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookedbattleaxeClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON SAW BLADE FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironsawBlade, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookedsawbladeClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON SQUARE PLATE FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironsquarePlate, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.cookedplateClayForm, OreDictionary.WILDCARD_VALUE) }); + + //IRON RING FROM CLAY FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironRing, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotironChunk, + Character.valueOf('z'), new ItemStack (ModItems.cookedringClayForm, OreDictionary.WILDCARD_VALUE) }); + */ + //IRON WEAPON HANDLE + //GameRegistry.addRecipe(new ItemStack(ModItems.ironweaponHandle, 1, 0), new Object []{"ab ", " ", " ", + // Character.valueOf('b'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + // Character.valueOf('a'), ModItems.hotIronIngot}); + /* + //IRON PICKAXE HEAD FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironpickaxeHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.ironPickaxeForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON SPADE HEAD FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironspadeHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'),new ItemStack (ModItems.ironSpadForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON HOE HEAD FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironhoeHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.ironHoeForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON AXE HEAD FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironaxeHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.ironAxeForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON LONGSWORD FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironlongswordBlade, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.ironLongswordForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON SHORT SWORD FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironshortswordBlade, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.ironShortSwordForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON DAGGER FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.irondaggerBlade, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.ironDaggerForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON HALBERD FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironhalberdHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.ironHalberdForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON SPEAR TIP FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironspearTip, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.ironSpearTipForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON SHARP TIP FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironsharpTip, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotironChunk, + Character.valueOf('z'), new ItemStack (ModItems.ironSharpTipForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON MACE HEAD FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironmaceHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.ironMaceHeadForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON BATTLE AXE FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironbattleaxeHead, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.ironBattleAxeForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON SAW BLADE FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironsawBlade, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotIronIngot, + Character.valueOf('z'), new ItemStack (ModItems.ironSawBladeForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON RING FROM IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironRing, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.hotironChunk, + Character.valueOf('z'), new ItemStack (ModItems.ironRingForm, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON PLATE FORM FROM IRON PLATE + GameRegistry.addRecipe(new ItemStack(ModItems.ironsquarePlate, 1, 0), new Object []{"x", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('z'), ModItems.hotIronIngot }); + + //IRON FORM TEMPLATES + //IRON PICK FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironPickaxeForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironpickaxeHead, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + //IRON SPADE FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironSpadForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironspadeHead, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + //IRON HOE FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironHoeForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironhoeHead, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + //IRON AXE FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironAxeForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironaxeHead, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + //IRON LONG SWORD FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironLongswordForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironlongswordBlade, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + //IRON SHORT SWORD FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironShortSwordForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironshortswordBlade, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + //IRON DAGGER FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironDaggerForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.irondaggerBlade, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + //IRON HALBERD HEAD FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironHalberdForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironhalberdHead, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + //IRON SPEAR TIP FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironSpearTipForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironspearTip, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + //IRON SHARPTIP FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironSharpTipForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironsharpTip, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + //IRON MACE HEAD FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironMaceHeadForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironmaceHead, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + + //IRON BATTLEAXE FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironBattleAxeForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironbattleaxeHead, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + //IRON SAW BLADE FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironSawBladeForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironsawBlade, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + //IRON RING IRON FORM + GameRegistry.addRecipe(new ItemStack(ModItems.ironRingForm, 1, 0), new Object []{"x", "y", "z", + Character.valueOf('x'), new ItemStack (ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.ironRing, + Character.valueOf('z'), new ItemStack (ModBlocks.hotIronPlate, 1, OreDictionary.WILDCARD_VALUE) }); + */ + + + + //-----------------------LEATHER SHEARS CRAFTING-----------------------// + GameRegistry.addRecipe(new ItemStack(ModItems.leatherStrap, 9, 0), new Object[] + {"x", "y", + Character.valueOf('x'), new ItemStack(ModItems.leatherShears, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.cutLeather}); + + GameRegistry.addRecipe(new ItemStack(ModItems.leatherString, 9, 0), new Object[] + {"x", "y", + Character.valueOf('x'), new ItemStack(ModItems.leatherShears, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.leatherStrap}); + + GameRegistry.addRecipe(new ItemStack(ModItems.cutLeather, 9, 0), new Object[] + {"x", "y", + Character.valueOf('x'), new ItemStack(ModItems.leatherShears, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.finishedLeather}); + + //-----------------------CRAFTINGBLADE-----------------------// + GameRegistry.addRecipe(new ItemStack(ModItems.strippedSapling, 1, 0), new Object[] + {"x", "y", + Character.valueOf('x'), new ItemStack(ModItems.workBlade, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), Blocks.sapling }); + + GameRegistry.addRecipe(new ItemStack(ModItems.scuddedLeather, 1, 0), new Object[] + {"x", "y", + Character.valueOf('x'), new ItemStack(ModItems.workBlade, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.slackedLeather }); + + //-----------------------SAW CRAFTING-----------------------// + //GameRegistry.addRecipe(new ItemStack(Blocks.planks, 4, 0), new Object[]{"x ", "y ", " ", Character.valueOf('x'), new ItemStack(ModItems.ironSaw, 1, OreDictionary.WILDCARD_VALUE), Character.valueOf('y'), Blocks.log }); + //GameRegistry.addRecipe(new ItemStack(Blocks.wooden_slab, 3, 0), new Object[]{"x ", "y ", " ", Character.valueOf('x'), new ItemStack(ModItems.ironSaw, 1, OreDictionary.WILDCARD_VALUE), Character.valueOf('y'), Blocks.planks }); + GameRegistry.addRecipe(new ItemStack(ModItems.woodentoolHandle, 3, 0), new Object[]{"x", "y", + Character.valueOf('x'), new ItemStack(ModItems.ironSaw, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), Blocks.wooden_slab }); + GameRegistry.addRecipe(new ItemStack(ModItems.woodentoolHandle, 3, 0), new Object[]{"x", "y", + Character.valueOf('x'), new ItemStack(ModItems.flintSaw, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), Blocks.wooden_slab }); + GameRegistry.addRecipe(new ItemStack(ModItems.slackedLeather, 1, 0), new Object[]{"x", "y", + Character.valueOf('x'), new ItemStack(ModItems.workBlade, 1, OreDictionary.WILDCARD_VALUE), + Character.valueOf('y'), ModItems.scuddedLeather }); + GameRegistry.addRecipe(new ItemStack(ModItems.halfSplitBoard, 2, 0), new Object[]{"x", "y", Character.valueOf('x'), new ItemStack(ModItems.flintSaw, 1, OreDictionary.WILDCARD_VALUE), Character.valueOf('y'), ModItems.splitBoard}); + GameRegistry.addRecipe(new ItemStack(ModItems.halfSplitBoard, 2, 0), new Object[]{"x", "y", Character.valueOf('x'), new ItemStack(ModItems.ironSaw, 1, OreDictionary.WILDCARD_VALUE), Character.valueOf('y'), ModItems.splitBoard}); + + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/TestForgeCrafting.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/TestForgeCrafting.java new file mode 100644 index 00000000..bbe946ac --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/crafting/TestForgeCrafting.java @@ -0,0 +1,61 @@ +package com.kitsu.medievalcraft.crafting; + +import java.util.Hashtable; + +import net.minecraft.block.Block; + +import com.kitsu.medievalcraft.block.ModBlocks; + +public class TestForgeCrafting { + + public static final Hashtable blockToCheck = new Hashtable (){{ + + /*put(0, ModBlocks.myIronIngot); + put(1, ModBlocks.filledCrucibleIron); + put(2, ModBlocks.emptySoftCrucible); + put(3, ModBlocks.ironPlate); + put(4, ModBlocks.filledCrucibleIronIngot); + put(5, ModBlocks.filledCrucibleDamascus); + put(6, ModBlocks.damascusIngot); + put(7, ModBlocks.filledLapisCrucible); + put(8, ModBlocks.lapisIngot); + put(9, ModBlocks.redstoneIngot); + put(10, ModBlocks.filledRedstoneCrucible);*/ + + }}; + + /*public static final Hashtable cookTable= new Hashtable (){{ + + put(0, 300); + put(1, 1000); + put(2, 200); + put(3, 250); + put(4, 750); + put(5, 1200); + put(6, 400); + put(7, 900); + put(8, 400); + put(9, 400); + put(10, 900); + }};*/ + + public static final Hashtable blockToCook = new Hashtable (){{ + + put(0, ModBlocks.refinedIron); + //put(1, ModBlocks.crucibleIronOre); + //put(2, ModBlocks.emptyCookedCrucible); + put(3, ModBlocks.ironPlate); + //put(4, ModBlocks.hotCrucibleIron); + //put(5, ModBlocks.hotCrucibleDamascus); + put(6, ModBlocks.damascus); + //put(7, ModBlocks.hotLapisCrucible); + //put(8, ModBlocks.hotLapisIngot); + //put(9, ModBlocks.hotRedstoneIngot); + //put(10, ModBlocks.hotRedstoneCrucible); + + }}; + + + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityCannonBall.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityCannonBall.java new file mode 100644 index 00000000..c25e0a8f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityCannonBall.java @@ -0,0 +1,152 @@ +package com.kitsu.medievalcraft.entity; + +import java.util.List; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.util.CannonUtil; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.IProjectile; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.play.server.S2BPacketChangeGameState; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityCannonBall extends Entity implements CannonUtil{ + + private EntityLivingBase tntPlacedBy; + public int damage = 100; + private int field_145791_d = -1; + private int field_145792_e = -1; + private int field_145789_f = -1; + private int h; + public Entity shootingEntity; + private boolean smoke = true; + + public EntityCannonBall(World p_i1582_1_) { + super(p_i1582_1_); + this.preventEntitySpawning = true; + this.setSize(0.5F, 0.5F); + //this.yOffset = this.height / 2.0F; + this.boundingBox.setBounds(0.49, 0.49, 0.49, 0.51, 0.51, 0.51); + + } + + public EntityCannonBall(World world, double x, double y, double z, EntityLivingBase entLiving) + { + this(world); + this.setPosition(x, y, z); + float f = (float)(Math.random() * Math.PI * 2.0D); + this.motionX = (double)(-((float)Math.sin((double)f)) * 0.02F); + this.motionY = 0.05D; + this.motionZ = (double)(-((float)Math.cos((double)f)) * 0.02F); + this.prevPosX = x; + this.prevPosY = y; + this.prevPosZ = z; + this.tntPlacedBy = entLiving; + this.renderDistanceWeight = 100; + this.smoke = true; + } + + public void onUpdate() + { + + if(h > 0 && h < 2){ + if(this.smoke==true){ + for(int g = 0; g < 50; g++){ + this.worldObj.spawnParticle("explode", this.posX + (worldObj.rand.nextFloat()*2 - 1), this.posY + (worldObj.rand.nextFloat()*2 - 1), (this.posZ + worldObj.rand.nextFloat()*2 - 1),0.0, 0.0, 0.0); + } + this.smoke=false; + } + } + h++; + /*double x = this.posX; + double y = this.posY; + double z = this.posZ; + + if(worldObj.isRemote){ + if(this.smoke==true){ + for(int g = 0; g < 10; g++){ + worldObj.spawnParticle("largesmoke", x +worldObj.rand.nextFloat()/10, y+worldObj.rand.nextFloat()/10, z +worldObj.rand.nextFloat()/10, + 1.0, 1.0D, 1.0); + } + this.smoke=false; + } + }*/ + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + this.motionY -= 0.03999999910593033D; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.motionX *= 0.9800000190734863D; + this.motionY *= 0.9800000190734863D; + this.motionZ *= 0.9800000190734863D; + + Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + MovingObjectPosition mop = this.worldObj.func_147447_a(vec31, vec3, false, true, false); + vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + + if (mop != null) + { + vec3 = Vec3.createVectorHelper(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + //System.out.println(mop.entityHit); + } + + if(!worldObj.isRemote){ + + if(this.motionX==0||this.motionY==0||this.motionZ==0){ + this.explode(); + this.setDead(); + } + } + + } + @Override + public boolean canBeCollidedWith() + { + return true; + } + + private void explode() + { + float f = 1F+(this.worldObj.rand.nextFloat()/3)+(this.worldObj.rand.nextFloat()/4)+this.worldObj.rand.nextFloat()/5; + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, f, true); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { + + } + + @Override + protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { + + } + + public EntityLivingBase getTntPlacedBy() + { + return this.tntPlacedBy; + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); + } + + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityITSpear.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityITSpear.java new file mode 100644 index 00000000..c275c0bf --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityITSpear.java @@ -0,0 +1,597 @@ +package com.kitsu.medievalcraft.entity; + +import java.util.List; + +import com.kitsu.medievalcraft.item.ModItems; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.IProjectile; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.play.server.S2BPacketChangeGameState; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityITSpear extends EntityArrow implements IProjectile { + private int field_145791_d = -1; + private int field_145792_e = -1; + private int field_145789_f = -1; + private Block field_145790_g; + private int inData; + private boolean inGround; + /** 1 if the player can pick up the arrow */ + public int canBePickedUp; + /** Seems to be some sort of timer for animating an arrow. */ + public int arrowShake; + /** The owner of this arrow. */ + public Entity shootingEntity; + private int ticksInGround; + private int ticksInAir; + private double damage = 35.0D; + /** The amount of knockback an arrow applies when it hits a mob. */ + private int knockbackStrength; + + public EntityITSpear(World world) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + } + + public EntityITSpear(World world, double x, double y, double z) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + this.setPosition(x, y, z); + this.yOffset = 0.0F; + } + + @SuppressWarnings("cast") + public EntityITSpear(World world, EntityLivingBase player, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.shootingEntity = player; + + if (player instanceof EntityPlayer) + { + this.canBePickedUp = 1; + } + + this.posY = player.posY + (double)player.getEyeHeight() + 0.10000000149011612D; + double d0 = p_i1755_3_.posX - player.posX; + double d1 = p_i1755_3_.boundingBox.minY + (double)(p_i1755_3_.height / 3.0F) - this.posY; + double d2 = p_i1755_3_.posZ - player.posZ; + double d3 = (double)MathHelper.sqrt_double(d0 * d0 + d2 * d2); + + if (d3 >= 1.0E-7D) + { + float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; + float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); + double d4 = d0 / d3; + double d5 = d2 / d3; + this.setLocationAndAngles(player.posX + d4, this.posY, player.posZ + d5, f2, f3); + this.yOffset = 0.0F; + float f4 = (float)d3 * 0.2F; + this.setThrowableHeading(d0, d1 + (double)f4, d2, p_i1755_4_, p_i1755_5_); + } + } + + @SuppressWarnings("cast") + public EntityITSpear(World world, EntityLivingBase player, float p_i1756_3_) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.shootingEntity = player; + + if (player instanceof EntityPlayer) + { + this.canBePickedUp = 1; + } + + this.setSize(0.5F, 0.5F); + this.setLocationAndAngles(player.posX, player.posY + (double)player.getEyeHeight(), player.posZ, player.rotationYaw, player.rotationPitch); + + this.posX += (player.getLookVec().xCoord); + //this.posY -= 0.10000000149011612D; + this.posZ += (player.getLookVec().zCoord); + //this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); + this.posY += player.getLookVec().yCoord; + if(player.getLookVec().yCoord < 0){ + this.posY += player.getLookVec().yCoord * 2; + } + + this.setPosition(this.posX, this.posY, this.posZ); + + //this.setSize(0.5F, 0.5F); + //this.setLocationAndAngles(player.posX, player.posY + (double)player.getEyeHeight(), player.posZ, player.rotationYaw, player.rotationPitch); + //this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); + //this.posY -= 0.10000000149011612D; + //this.posZ -= (double)(MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); + //this.setPosition(this.posX, this.posY, this.posZ); + this.yOffset = 0.0F; + this.motionX = (double)(-MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI)); + this.motionZ = (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI)); + this.motionY = (double)(-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); + } + + protected void entityInit() + { + this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); + } + + /** + * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. + */ + @SuppressWarnings("cast") + public void setThrowableHeading(double x, double y, double z, float p_70186_7_, float p_70186_8_) + { + float f2 = MathHelper.sqrt_double(x * x + y * y + z * z); + x /= (double)f2; + y /= (double)f2; + z /= (double)f2; + x += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_; + y += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_; + z += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_; + x *= (double)p_70186_7_; + y *= (double)p_70186_7_; + z *= (double)p_70186_7_; + this.motionX = x/2.5; + this.motionY = y/1.75; + this.motionZ = z/2.5; + float f3 = MathHelper.sqrt_double(x * x + z * z); + this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(x, z) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(y, (double)f3) * 180.0D / Math.PI); + this.ticksInGround = 1; + } + + /** + * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, + * posY, posZ, yaw, pitch + */ + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) + { + this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); + this.setRotation(p_70056_7_, p_70056_8_); + } + + /** + * Sets the velocity to the args. Args: x, y, z + */ + @SuppressWarnings("cast") + @SideOnly(Side.CLIENT) + public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) + { + + this.motionX = p_70016_1_ ; + this.motionY = p_70016_3_ ; + this.motionZ = p_70016_5_ ; + + if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) + { + float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); + this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, (double)f) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch; + this.prevRotationYaw = this.rotationYaw; + this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); + this.ticksInGround = 0; + } + } + + /** + * Called to update the entity's position/logic. + */ + @SuppressWarnings("cast") + public void onUpdate() + { + super.onUpdate(); + + if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) + { + float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); + } + + Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); + //this.getEntityData().setInteger("blockX", this.field_145791_d); + + if (block.getMaterial() != Material.air) + { + block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); + AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); + + if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) + { + this.inGround = true; + } + } + + if (this.arrowShake > 0) + { + --this.arrowShake; + } + + if (this.inGround) + { + int j = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); + + if (block == this.field_145790_g && j == this.inData) + { + ++this.ticksInGround; + + if (this.ticksInGround == -1) + { + //this.setDead(); + } + } + else + { + this.inGround = false; + this.motionX *= (double)(this.rand.nextFloat() * 0.2F); + this.motionY *= (double)(this.rand.nextFloat() * 0.2F); + this.motionZ *= (double)(this.rand.nextFloat() * 0.2F); + this.ticksInGround = 0; + this.ticksInAir = 0; + } + } + else + { + ++this.ticksInAir; + Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); + vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + + if (movingobjectposition != null) + { + vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); + } + + Entity entity = null; + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); + double d0 = 0.0D; + int i; + float f1; + + for (i = 0; i < list.size(); ++i) + { + Entity entity1 = (Entity)list.get(i); + + if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) + { + f1 = 0.3F; + AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand((double)f1, (double)f1, (double)f1); + MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); + + if (movingobjectposition1 != null) + { + double d1 = vec31.distanceTo(movingobjectposition1.hitVec); + + if (d1 < d0 || d0 == 0.0D) + { + entity = entity1; + d0 = d1; + } + } + } + } + + if (entity != null) + { + movingobjectposition = new MovingObjectPosition(entity); + this.inGround=true; + } + + if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) + { + EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; + + if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) + { + movingobjectposition = null; + } + } + + float f2; + float f4; + + if (movingobjectposition != null) + { + if (movingobjectposition.entityHit != null) + + { + f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); + int k = MathHelper.ceiling_double_int((double)f2 * this.damage); + + DamageSource damagesource = null; + + if (this.shootingEntity == null) + { + //EntityPlayer player = (EntityPlayer) movingobjectposition.entityHit; + //System.out.println(player.inventory.getTotalArmorValue()); + damagesource = DamageSource.causeArrowDamage(this, this.shootingEntity); + //damagesource = DamageSource. + } + else + { + damagesource = DamageSource.causeThrownDamage(this, this.shootingEntity); + } + + if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) + { + movingobjectposition.entityHit.setFire(5); + } + + if (movingobjectposition.entityHit.attackEntityFrom(damagesource, (float)k)) + { + if (movingobjectposition.entityHit instanceof EntityLivingBase) + { + EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; + + if (!this.worldObj.isRemote) + { + //entitylivingbase.setArrowCountInEntity(entitylivingbase.getArrowCountInEntity() + 1); + } + + if (this.knockbackStrength > 0) + { + f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + + if (f4 > 0.0F) + { + movingobjectposition.entityHit.addVelocity(this.motionX * (double)this.knockbackStrength * 0.6000000238418579D / (double)f4, 0.1D, this.motionZ * (double)this.knockbackStrength * 0.6000000238418579D / (double)f4); + } + } + + if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) + { + EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); + EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); + } + + if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) + { + ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); + } + } + + //this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); + + if (!(movingobjectposition.entityHit instanceof EntityEnderman)) + { + this.inGround = true; + } + } + else + { + this.motionX *= -0.10000000149011612D; + this.motionY *= -0.10000000149011612D; + this.motionZ *= -0.10000000149011612D; + this.rotationYaw += 180.0F; + this.prevRotationYaw += 180.0F; + this.ticksInAir = 0; + } + this.inGround=true; + } + else + { + + this.field_145791_d = movingobjectposition.blockX; + this.field_145792_e = movingobjectposition.blockY; + this.field_145789_f = movingobjectposition.blockZ; + this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); + this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); + this.motionX = (double)((float)(movingobjectposition.hitVec.xCoord - this.posX)); + this.motionY = (double)((float)(movingobjectposition.hitVec.yCoord - this.posY)); + this.motionZ = (double)((float)(movingobjectposition.hitVec.zCoord - this.posZ)); + f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); + this.posX -= this.motionX / (double)f2 * 0.05000000074505806D; + this.posY -= this.motionY / (double)f2 * 0.05000000074505806D; + this.posZ -= this.motionZ / (double)f2 * 0.05000000074505806D; + //this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); + this.inGround = true; + this.arrowShake = 7; + + + if (this.field_145790_g.getMaterial() != Material.air) + { + this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); + } + } + this.inGround=true; + } + + this.posX += this.motionX; + this.posY += this.motionY; + this.posZ += this.motionZ; + f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + + for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) + { + ; + } + + while (this.rotationPitch - this.prevRotationPitch >= 180.0F) + { + this.prevRotationPitch += 360.0F; + } + + while (this.rotationYaw - this.prevRotationYaw < -180.0F) + { + this.prevRotationYaw -= 360.0F; + } + + while (this.rotationYaw - this.prevRotationYaw >= 180.0F) + { + this.prevRotationYaw += 360.0F; + } + + this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + float f3 = 0.99F; + f1 = 0.05F; + + if (this.isInWater()) + { + for (int l = 0; l < 4; ++l) + { + f4 = 0.25F; + this.worldObj.spawnParticle("bubble", this.posX - this.motionX * (double)f4, this.posY - this.motionY * (double)f4, this.posZ - this.motionZ * (double)f4, this.motionX, this.motionY, this.motionZ); + } + + f3 = 0.8F; + } + + if (this.isWet()) + { + this.extinguish(); + } + + if (movingobjectposition != null) + { + if (movingobjectposition.entityHit != null) + { + this.inGround=true; + } + } + + this.motionX *= (double)f3; + this.motionY *= (double)f3; + this.motionZ *= (double)f3; + this.motionY -= (double)f1; + this.setPosition(this.posX, this.posY, this.posZ); + this.func_145775_I(); + } + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + p_70014_1_.setShort("xTile", (short)this.field_145791_d); + p_70014_1_.setShort("yTile", (short)this.field_145792_e); + p_70014_1_.setShort("zTile", (short)this.field_145789_f); + p_70014_1_.setShort("life", (short)this.ticksInGround); + p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); + p_70014_1_.setByte("inData", (byte)this.inData); + p_70014_1_.setByte("shake", (byte)this.arrowShake); + p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); + p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); + p_70014_1_.setDouble("damage", this.damage); + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + this.field_145791_d = p_70037_1_.getShort("xTile"); + this.field_145792_e = p_70037_1_.getShort("yTile"); + this.field_145789_f = p_70037_1_.getShort("zTile"); + this.ticksInGround = p_70037_1_.getShort("life"); + this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); + this.inData = p_70037_1_.getByte("inData") & 255; + this.arrowShake = p_70037_1_.getByte("shake") & 255; + this.inGround = p_70037_1_.getByte("inGround") == 1; + + if (p_70037_1_.hasKey("damage", 99)) + { + this.damage = p_70037_1_.getDouble("damage"); + } + + if (p_70037_1_.hasKey("pickup", 99)) + { + this.canBePickedUp = p_70037_1_.getByte("pickup"); + } + else if (p_70037_1_.hasKey("player", 99)) + { + this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; + } + } + + /** + * Called by a player entity when they collide with an entity + */ + public void onCollideWithPlayer(EntityPlayer p_70100_1_) + { + if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) + { + boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; + + if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.itemITSpear, 1))) + { + flag = false; + } + + if (flag) + { + this.playSound("random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); + p_70100_1_.onItemPickup(this, 1); + this.setDead(); + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + protected boolean canTriggerWalking() + { + return false; + } + + @SideOnly(Side.CLIENT) + public float getShadowSize() + { + return 2.0F; + } + + public void setDamage(double p_70239_1_) + { + this.damage = p_70239_1_; + } + + public double getDamage() + { + return this.damage; + } + + /** + * Sets the amount of knockback the arrow applies when it hits a mob. + */ + public void setKnockbackStrength(int p_70240_1_) + { + this.knockbackStrength = p_70240_1_; + } + + /** + * If returns false, the item will not inflict any damage against entities. + */ + public boolean canAttackWithItem() + { + return true; + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityModelArrow.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityModelArrow.java new file mode 100644 index 00000000..d9741def --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityModelArrow.java @@ -0,0 +1,582 @@ +package com.kitsu.medievalcraft.entity; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.IProjectile; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.play.server.S2BPacketChangeGameState; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.item.ModItems; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class EntityModelArrow extends EntityArrow implements IProjectile { + private int field_145791_d = -1; + private int field_145792_e = -1; + private int field_145789_f = -1; + private Block field_145790_g; + private int inData; + private boolean inGround; + /** 1 if the player can pick up the arrow */ + public int canBePickedUp; + /** Seems to be some sort of timer for animating an arrow. */ + public int arrowShake; + /** The owner of this arrow. */ + public Entity shootingEntity; + private int ticksInGround; + private int ticksInAir; + private double damage = 4.0D; + /** The amount of knockback an arrow applies when it hits a mob. */ + private int knockbackStrength; + + public EntityModelArrow(World world) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + } + + public EntityModelArrow(World world, double x, double y, double z) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + this.setPosition(x, y, z); + this.yOffset = 0.0F; + } + + @SuppressWarnings("cast") + public EntityModelArrow(World world, EntityLivingBase player, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.shootingEntity = player; + + if (player instanceof EntityPlayer) + { + this.canBePickedUp = 1; + } + + this.posY = player.posY + (double)player.getEyeHeight() + 0.10000000149011612D; + double d0 = p_i1755_3_.posX - player.posX; + double d1 = p_i1755_3_.boundingBox.minY + (double)(p_i1755_3_.height / 3.0F) - this.posY; + double d2 = p_i1755_3_.posZ - player.posZ; + double d3 = (double)MathHelper.sqrt_double(d0 * d0 + d2 * d2); + + if (d3 >= 1.0E-7D) + { + float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; + float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); + double d4 = d0 / d3; + double d5 = d2 / d3; + this.setLocationAndAngles(player.posX + d4, this.posY, player.posZ + d5, f2, f3); + this.yOffset = 0.0F; + float f4 = (float)d3 * 0.2F; + this.setThrowableHeading(d0, d1 + (double)f4, d2, p_i1755_4_, p_i1755_5_); + } + } + + @SuppressWarnings("cast") + public EntityModelArrow(World world, EntityLivingBase player, float p_i1756_3_) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.shootingEntity = player; + + if (player instanceof EntityPlayer) + { + this.canBePickedUp = 1; + } + + this.setSize(0.5F, 0.5F); + this.setLocationAndAngles(player.posX, player.posY + (double)player.getEyeHeight(), player.posZ, player.rotationYaw, player.rotationPitch); + + this.posX += (player.getLookVec().xCoord); + //this.posY -= 0.10000000149011612D; + this.posZ += (player.getLookVec().zCoord); + //this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); + this.posY += player.getLookVec().yCoord; + if(player.getLookVec().yCoord < 0){ + this.posY += player.getLookVec().yCoord * 2; + } + + this.setPosition(this.posX, this.posY, this.posZ); + + //this.setSize(0.5F, 0.5F); + //this.setLocationAndAngles(player.posX, player.posY + (double)player.getEyeHeight(), player.posZ, player.rotationYaw, player.rotationPitch); + //this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); + //this.posY -= 0.10000000149011612D; + //this.posZ -= (double)(MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); + //this.setPosition(this.posX, this.posY, this.posZ); + this.yOffset = 0.0F; + this.motionX = (double)(-MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI)); + this.motionZ = (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI)); + this.motionY = (double)(-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); + } + + protected void entityInit() + { + this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); + } + + /** + * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. + */ + @SuppressWarnings("cast") + public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) + { + float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); + p_70186_1_ /= (double)f2; + p_70186_3_ /= (double)f2; + p_70186_5_ /= (double)f2; + p_70186_1_ += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_; + p_70186_3_ += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_; + p_70186_5_ += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_; + p_70186_1_ *= (double)p_70186_7_; + p_70186_3_ *= (double)p_70186_7_; + p_70186_5_ *= (double)p_70186_7_; + this.motionX = p_70186_1_; + this.motionY = p_70186_3_; + this.motionZ = p_70186_5_; + float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); + this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, (double)f3) * 180.0D / Math.PI); + this.ticksInGround = 1; + } + + /** + * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, + * posY, posZ, yaw, pitch + */ + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) + { + this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); + this.setRotation(p_70056_7_, p_70056_8_); + } + + /** + * Sets the velocity to the args. Args: x, y, z + */ + @SuppressWarnings("cast") + @SideOnly(Side.CLIENT) + public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) + { + this.motionX = p_70016_1_ ; + this.motionY = p_70016_3_ ; + this.motionZ = p_70016_5_ ; + + if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) + { + float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); + this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, (double)f) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch; + this.prevRotationYaw = this.rotationYaw; + this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); + this.ticksInGround = 0; + } + } + + /** + * Called to update the entity's position/logic. + */ + @SuppressWarnings("cast") + public void onUpdate() + { + super.onUpdate(); + + if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) + { + float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); + } + + Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); + //this.getEntityData().setInteger("blockX", this.field_145791_d); + + if (block.getMaterial() != Material.air) + { + block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); + AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); + + if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) + { + this.inGround = true; + } + } + + if (this.arrowShake > 0) + { + --this.arrowShake; + } + + if (this.inGround) + { + int j = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); + + if (block == this.field_145790_g && j == this.inData) + { + ++this.ticksInGround; + + if (this.ticksInGround == -1) + { + this.setDead(); + } + } + else + { + this.inGround = false; + this.motionX *= (double)(this.rand.nextFloat() * 0.2F); + this.motionY *= (double)(this.rand.nextFloat() * 0.2F); + this.motionZ *= (double)(this.rand.nextFloat() * 0.2F); + this.ticksInGround = 0; + this.ticksInAir = 0; + } + } + else + { + ++this.ticksInAir; + Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); + vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + + if (movingobjectposition != null) + { + vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); + } + + Entity entity = null; + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); + double d0 = 0.0D; + int i; + float f1; + + for (i = 0; i < list.size(); ++i) + { + Entity entity1 = (Entity)list.get(i); + + if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) + { + f1 = 0.3F; + AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand((double)f1, (double)f1, (double)f1); + MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); + + if (movingobjectposition1 != null) + { + double d1 = vec31.distanceTo(movingobjectposition1.hitVec); + + if (d1 < d0 || d0 == 0.0D) + { + entity = entity1; + d0 = d1; + } + } + } + } + + if (entity != null) + { + movingobjectposition = new MovingObjectPosition(entity); + } + + if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) + { + EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; + + if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) + { + movingobjectposition = null; + } + } + + float f2; + float f4; + + if (movingobjectposition != null) + { + if (movingobjectposition.entityHit != null) + { + f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); + int k = MathHelper.ceiling_double_int((double)f2 * this.damage); + + DamageSource damagesource = null; + + if (this.shootingEntity == null) + { + damagesource = DamageSource.causeArrowDamage(this, this.shootingEntity); + } + else + { + damagesource = DamageSource.causeThrownDamage(this, this.shootingEntity); + } + + if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) + { + movingobjectposition.entityHit.setFire(5); + } + + if (movingobjectposition.entityHit.attackEntityFrom(damagesource, (float)k)) + { + if (movingobjectposition.entityHit instanceof EntityLivingBase) + { + EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; + + if (!this.worldObj.isRemote) + { + entitylivingbase.setArrowCountInEntity(entitylivingbase.getArrowCountInEntity() + 1); + } + + if (this.knockbackStrength > 0) + { + f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + + if (f4 > 0.0F) + { + movingobjectposition.entityHit.addVelocity(this.motionX * (double)this.knockbackStrength * 0.6000000238418579D / (double)f4, 0.1D, this.motionZ * (double)this.knockbackStrength * 0.6000000238418579D / (double)f4); + } + } + + if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) + { + EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); + EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); + } + + if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) + { + ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); + } + } + + this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); + + if (!(movingobjectposition.entityHit instanceof EntityEnderman)) + { + this.setDead(); + } + } + else + { + this.motionX *= -0.10000000149011612D; + this.motionY *= -0.10000000149011612D; + this.motionZ *= -0.10000000149011612D; + this.rotationYaw += 180.0F; + this.prevRotationYaw += 180.0F; + this.ticksInAir = 0; + } + } + else + { + + this.field_145791_d = movingobjectposition.blockX; + this.field_145792_e = movingobjectposition.blockY; + this.field_145789_f = movingobjectposition.blockZ; + this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); + this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); + this.motionX = (double)((float)(movingobjectposition.hitVec.xCoord - this.posX)); + this.motionY = (double)((float)(movingobjectposition.hitVec.yCoord - this.posY)); + this.motionZ = (double)((float)(movingobjectposition.hitVec.zCoord - this.posZ)); + f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); + this.posX -= this.motionX / (double)f2 * 0.05000000074505806D; + this.posY -= this.motionY / (double)f2 * 0.05000000074505806D; + this.posZ -= this.motionZ / (double)f2 * 0.05000000074505806D; + this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); + this.inGround = true; + this.arrowShake = 7; + + + if (this.field_145790_g.getMaterial() != Material.air) + { + this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); + } + } + } + + this.posX += this.motionX; + this.posY += this.motionY; + this.posZ += this.motionZ; + f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + + for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) + { + ; + } + + while (this.rotationPitch - this.prevRotationPitch >= 180.0F) + { + this.prevRotationPitch += 360.0F; + } + + while (this.rotationYaw - this.prevRotationYaw < -180.0F) + { + this.prevRotationYaw -= 360.0F; + } + + while (this.rotationYaw - this.prevRotationYaw >= 180.0F) + { + this.prevRotationYaw += 360.0F; + } + + this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + float f3 = 0.99F; + f1 = 0.05F; + + if (this.isInWater()) + { + for (int l = 0; l < 4; ++l) + { + f4 = 0.25F; + this.worldObj.spawnParticle("bubble", this.posX - this.motionX * (double)f4, this.posY - this.motionY * (double)f4, this.posZ - this.motionZ * (double)f4, this.motionX, this.motionY, this.motionZ); + } + + f3 = 0.8F; + } + + if (this.isWet()) + { + this.extinguish(); + } + + this.motionX *= (double)f3; + this.motionY *= (double)f3; + this.motionZ *= (double)f3; + this.motionY -= (double)f1; + this.setPosition(this.posX, this.posY, this.posZ); + this.func_145775_I(); + } + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + p_70014_1_.setShort("xTile", (short)this.field_145791_d); + p_70014_1_.setShort("yTile", (short)this.field_145792_e); + p_70014_1_.setShort("zTile", (short)this.field_145789_f); + p_70014_1_.setShort("life", (short)this.ticksInGround); + p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); + p_70014_1_.setByte("inData", (byte)this.inData); + p_70014_1_.setByte("shake", (byte)this.arrowShake); + p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); + p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); + p_70014_1_.setDouble("damage", this.damage); + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + this.field_145791_d = p_70037_1_.getShort("xTile"); + this.field_145792_e = p_70037_1_.getShort("yTile"); + this.field_145789_f = p_70037_1_.getShort("zTile"); + this.ticksInGround = p_70037_1_.getShort("life"); + this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); + this.inData = p_70037_1_.getByte("inData") & 255; + this.arrowShake = p_70037_1_.getByte("shake") & 255; + this.inGround = p_70037_1_.getByte("inGround") == 1; + + if (p_70037_1_.hasKey("damage", 99)) + { + this.damage = p_70037_1_.getDouble("damage"); + } + + if (p_70037_1_.hasKey("pickup", 99)) + { + this.canBePickedUp = p_70037_1_.getByte("pickup"); + } + else if (p_70037_1_.hasKey("player", 99)) + { + this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; + } + } + + /** + * Called by a player entity when they collide with an entity + */ + public void onCollideWithPlayer(EntityPlayer p_70100_1_) + { + if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) + { + boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; + + if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.itemModelArrow, 1))) + { + flag = false; + } + + if (flag) + { + this.playSound("random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); + p_70100_1_.onItemPickup(this, 1); + this.setDead(); + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + protected boolean canTriggerWalking() + { + return false; + } + + @SideOnly(Side.CLIENT) + public float getShadowSize() + { + return 0.0F; + } + + public void setDamage(double p_70239_1_) + { + this.damage = p_70239_1_; + } + + public double getDamage() + { + return this.damage; + } + + /** + * Sets the amount of knockback the arrow applies when it hits a mob. + */ + public void setKnockbackStrength(int p_70240_1_) + { + this.knockbackStrength = p_70240_1_; + } + + /** + * If returns false, the item will not inflict any damage against entities. + */ + public boolean canAttackWithItem() + { + return false; + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityModelITArrow.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityModelITArrow.java new file mode 100644 index 00000000..dded28e0 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityModelITArrow.java @@ -0,0 +1,581 @@ +package com.kitsu.medievalcraft.entity; + +import java.util.List; + +import com.kitsu.medievalcraft.item.ModItems; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.IProjectile; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.play.server.S2BPacketChangeGameState; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityModelITArrow extends EntityArrow implements IProjectile { + private int field_145791_d = -1; + private int field_145792_e = -1; + private int field_145789_f = -1; + private Block field_145790_g; + private int inData; + private boolean inGround; + /** 1 if the player can pick up the arrow */ + public int canBePickedUp; + /** Seems to be some sort of timer for animating an arrow. */ + public int arrowShake; + /** The owner of this arrow. */ + public Entity shootingEntity; + private int ticksInGround; + private int ticksInAir; + private double damage = 8.0D; + /** The amount of knockback an arrow applies when it hits a mob. */ + private int knockbackStrength; + + public EntityModelITArrow(World world) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + } + + public EntityModelITArrow(World world, double x, double y, double z) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + this.setPosition(x, y, z); + this.yOffset = 0.0F; + } + + @SuppressWarnings("cast") + public EntityModelITArrow(World world, EntityLivingBase player, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.shootingEntity = player; + + if (player instanceof EntityPlayer) + { + this.canBePickedUp = 1; + } + + this.posY = player.posY + (double)player.getEyeHeight() + 0.10000000149011612D; + double d0 = p_i1755_3_.posX - player.posX; + double d1 = p_i1755_3_.boundingBox.minY + (double)(p_i1755_3_.height / 3.0F) - this.posY; + double d2 = p_i1755_3_.posZ - player.posZ; + double d3 = (double)MathHelper.sqrt_double(d0 * d0 + d2 * d2); + + if (d3 >= 1.0E-7D) + { + float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; + float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); + double d4 = d0 / d3; + double d5 = d2 / d3; + this.setLocationAndAngles(player.posX + d4, this.posY, player.posZ + d5, f2, f3); + this.yOffset = 0.0F; + float f4 = (float)d3 * 0.2F; + this.setThrowableHeading(d0, d1 + (double)f4, d2, p_i1755_4_, p_i1755_5_); + } + } + + @SuppressWarnings("cast") + public EntityModelITArrow(World world, EntityLivingBase player, float p_i1756_3_) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.shootingEntity = player; + + if (player instanceof EntityPlayer) + { + this.canBePickedUp = 1; + } + + this.setSize(0.5F, 0.5F); + this.setLocationAndAngles(player.posX, player.posY + (double)player.getEyeHeight(), player.posZ, player.rotationYaw, player.rotationPitch); + + this.posX += (player.getLookVec().xCoord); + //this.posY -= 0.10000000149011612D; + this.posZ += (player.getLookVec().zCoord); + //this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); + this.posY += player.getLookVec().yCoord; + if(player.getLookVec().yCoord < 0){ + this.posY += player.getLookVec().yCoord * 2; + } + + this.setPosition(this.posX, this.posY, this.posZ); + + //this.setSize(0.5F, 0.5F); + //this.setLocationAndAngles(player.posX, player.posY + (double)player.getEyeHeight(), player.posZ, player.rotationYaw, player.rotationPitch); + //this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); + //this.posY -= 0.10000000149011612D; + //this.posZ -= (double)(MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); + //this.setPosition(this.posX, this.posY, this.posZ); + this.yOffset = 0.0F; + this.motionX = (double)(-MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI)); + this.motionZ = (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI)); + this.motionY = (double)(-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); + } + + protected void entityInit() + { + this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); + } + + /** + * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. + */ + @SuppressWarnings("cast") + public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) + { + float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); + p_70186_1_ /= (double)f2; + p_70186_3_ /= (double)f2; + p_70186_5_ /= (double)f2; + p_70186_1_ += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_; + p_70186_3_ += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_; + p_70186_5_ += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_; + p_70186_1_ *= (double)p_70186_7_; + p_70186_3_ *= (double)p_70186_7_; + p_70186_5_ *= (double)p_70186_7_; + this.motionX = p_70186_1_; + this.motionY = p_70186_3_; + this.motionZ = p_70186_5_; + float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); + this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, (double)f3) * 180.0D / Math.PI); + this.ticksInGround = 1; + } + + /** + * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, + * posY, posZ, yaw, pitch + */ + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) + { + this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); + this.setRotation(p_70056_7_, p_70056_8_); + } + + /** + * Sets the velocity to the args. Args: x, y, z + */ + @SuppressWarnings("cast") + @SideOnly(Side.CLIENT) + public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) + { + this.motionX = p_70016_1_ ; + this.motionY = p_70016_3_ ; + this.motionZ = p_70016_5_ ; + + if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) + { + float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); + this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, (double)f) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch; + this.prevRotationYaw = this.rotationYaw; + this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); + this.ticksInGround = 0; + } + } + + /** + * Called to update the entity's position/logic. + */ + @SuppressWarnings("cast") + public void onUpdate() + { + super.onUpdate(); + + if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) + { + float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); + } + + Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); + //this.getEntityData().setInteger("blockX", this.field_145791_d); + + if (block.getMaterial() != Material.air) + { + block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); + AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); + + if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) + { + this.inGround = true; + } + } + + if (this.arrowShake > 0) + { + --this.arrowShake; + } + + if (this.inGround) + { + int j = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); + + if (block == this.field_145790_g && j == this.inData) + { + ++this.ticksInGround; + + if (this.ticksInGround == -1) + { + this.setDead(); + } + } + else + { + this.inGround = false; + this.motionX *= (double)(this.rand.nextFloat() * 0.2F); + this.motionY *= (double)(this.rand.nextFloat() * 0.2F); + this.motionZ *= (double)(this.rand.nextFloat() * 0.2F); + this.ticksInGround = 0; + this.ticksInAir = 0; + } + } + else + { + ++this.ticksInAir; + Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); + vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + + if (movingobjectposition != null) + { + vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); + } + + Entity entity = null; + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); + double d0 = 0.0D; + int i; + float f1; + + for (i = 0; i < list.size(); ++i) + { + Entity entity1 = (Entity)list.get(i); + + if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) + { + f1 = 0.3F; + AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand((double)f1, (double)f1, (double)f1); + MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); + + if (movingobjectposition1 != null) + { + double d1 = vec31.distanceTo(movingobjectposition1.hitVec); + + if (d1 < d0 || d0 == 0.0D) + { + entity = entity1; + d0 = d1; + } + } + } + } + + if (entity != null) + { + movingobjectposition = new MovingObjectPosition(entity); + } + + if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) + { + EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; + + if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) + { + movingobjectposition = null; + } + } + + float f2; + float f4; + + if (movingobjectposition != null) + { + if (movingobjectposition.entityHit != null) + { + f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); + int k = MathHelper.ceiling_double_int((double)f2 * this.damage); + + DamageSource damagesource = null; + + if (this.shootingEntity == null) + { + damagesource = DamageSource.causeArrowDamage(this, this.shootingEntity); + } + else + { + damagesource = DamageSource.causeThrownDamage(this, this.shootingEntity); + } + + if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) + { + movingobjectposition.entityHit.setFire(5); + } + + if (movingobjectposition.entityHit.attackEntityFrom(damagesource, (float)k)) + { + if (movingobjectposition.entityHit instanceof EntityLivingBase) + { + EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; + + if (!this.worldObj.isRemote) + { + entitylivingbase.setArrowCountInEntity(entitylivingbase.getArrowCountInEntity() + 1); + } + + if (this.knockbackStrength > 0) + { + f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + + if (f4 > 0.0F) + { + movingobjectposition.entityHit.addVelocity(this.motionX * (double)this.knockbackStrength * 0.6000000238418579D / (double)f4, 0.1D, this.motionZ * (double)this.knockbackStrength * 0.6000000238418579D / (double)f4); + } + } + + if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) + { + EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); + EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); + } + + if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) + { + ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); + } + } + + this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); + + if (!(movingobjectposition.entityHit instanceof EntityEnderman)) + { + this.setDead(); + } + } + else + { + this.motionX *= -0.10000000149011612D; + this.motionY *= -0.10000000149011612D; + this.motionZ *= -0.10000000149011612D; + this.rotationYaw += 180.0F; + this.prevRotationYaw += 180.0F; + this.ticksInAir = 0; + } + } + else + { + + this.field_145791_d = movingobjectposition.blockX; + this.field_145792_e = movingobjectposition.blockY; + this.field_145789_f = movingobjectposition.blockZ; + this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); + this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); + this.motionX = (double)((float)(movingobjectposition.hitVec.xCoord - this.posX)); + this.motionY = (double)((float)(movingobjectposition.hitVec.yCoord - this.posY)); + this.motionZ = (double)((float)(movingobjectposition.hitVec.zCoord - this.posZ)); + f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); + this.posX -= this.motionX / (double)f2 * 0.05000000074505806D; + this.posY -= this.motionY / (double)f2 * 0.05000000074505806D; + this.posZ -= this.motionZ / (double)f2 * 0.05000000074505806D; + this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); + this.inGround = true; + this.arrowShake = 7; + + + if (this.field_145790_g.getMaterial() != Material.air) + { + this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); + } + } + } + + this.posX += this.motionX; + this.posY += this.motionY; + this.posZ += this.motionZ; + f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + + for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) + { + ; + } + + while (this.rotationPitch - this.prevRotationPitch >= 180.0F) + { + this.prevRotationPitch += 360.0F; + } + + while (this.rotationYaw - this.prevRotationYaw < -180.0F) + { + this.prevRotationYaw -= 360.0F; + } + + while (this.rotationYaw - this.prevRotationYaw >= 180.0F) + { + this.prevRotationYaw += 360.0F; + } + + this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + float f3 = 0.99F; + f1 = 0.05F; + + if (this.isInWater()) + { + for (int l = 0; l < 4; ++l) + { + f4 = 0.25F; + this.worldObj.spawnParticle("bubble", this.posX - this.motionX * (double)f4, this.posY - this.motionY * (double)f4, this.posZ - this.motionZ * (double)f4, this.motionX, this.motionY, this.motionZ); + } + + f3 = 0.8F; + } + + if (this.isWet()) + { + this.extinguish(); + } + + this.motionX *= (double)f3; + this.motionY *= (double)f3; + this.motionZ *= (double)f3; + this.motionY -= (double)f1; + this.setPosition(this.posX, this.posY, this.posZ); + this.func_145775_I(); + } + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + p_70014_1_.setShort("xTile", (short)this.field_145791_d); + p_70014_1_.setShort("yTile", (short)this.field_145792_e); + p_70014_1_.setShort("zTile", (short)this.field_145789_f); + p_70014_1_.setShort("life", (short)this.ticksInGround); + p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); + p_70014_1_.setByte("inData", (byte)this.inData); + p_70014_1_.setByte("shake", (byte)this.arrowShake); + p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); + p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); + p_70014_1_.setDouble("damage", this.damage); + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + this.field_145791_d = p_70037_1_.getShort("xTile"); + this.field_145792_e = p_70037_1_.getShort("yTile"); + this.field_145789_f = p_70037_1_.getShort("zTile"); + this.ticksInGround = p_70037_1_.getShort("life"); + this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); + this.inData = p_70037_1_.getByte("inData") & 255; + this.arrowShake = p_70037_1_.getByte("shake") & 255; + this.inGround = p_70037_1_.getByte("inGround") == 1; + + if (p_70037_1_.hasKey("damage", 99)) + { + this.damage = p_70037_1_.getDouble("damage"); + } + + if (p_70037_1_.hasKey("pickup", 99)) + { + this.canBePickedUp = p_70037_1_.getByte("pickup"); + } + else if (p_70037_1_.hasKey("player", 99)) + { + this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; + } + } + + /** + * Called by a player entity when they collide with an entity + */ + public void onCollideWithPlayer(EntityPlayer p_70100_1_) + { + if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) + { + boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; + + if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.itemIronTippedModelArrow, 1))) + { + flag = false; + } + + if (flag) + { + this.playSound("random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); + p_70100_1_.onItemPickup(this, 1); + this.setDead(); + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + protected boolean canTriggerWalking() + { + return false; + } + + @SideOnly(Side.CLIENT) + public float getShadowSize() + { + return 0.0F; + } + + public void setDamage(double p_70239_1_) + { + this.damage = p_70239_1_; + } + + public double getDamage() + { + return this.damage; + } + + /** + * Sets the amount of knockback the arrow applies when it hits a mob. + */ + public void setKnockbackStrength(int p_70240_1_) + { + this.knockbackStrength = p_70240_1_; + } + + /** + * If returns false, the item will not inflict any damage against entities. + */ + public boolean canAttackWithItem() + { + return false; + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityShit.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityShit.java new file mode 100644 index 00000000..5cd9d005 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityShit.java @@ -0,0 +1,60 @@ +package com.kitsu.medievalcraft.entity; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class EntityShit extends EntityThrowable { + + public EntityShit(World world) + { + super(world); + } + + public EntityShit(World world, EntityLivingBase entity) + { + super(world, entity); + } + + //@SideOnly(Side.CLIENT) + public EntityShit(World world, double x, double y, double z) + { + super(world, x, y, z); + } + + + + @Override + protected void onImpact(MovingObjectPosition object) { + + if (object.entityHit != null) { + + float impactDamage = 1.0F; + + object.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), impactDamage); + } + + for (int i = 0; i < 8; ++i) + { + this.worldObj.spawnParticle("snowballpoof", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D); + } + + if (!this.worldObj.isRemote) + { + this.setDead(); + //this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.posX, this.posY, this.posZ, new ItemStack(ModItems.itemShit))); + } + + } + + + + @Override + public void onUpdate() + { + super.onUpdate(); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityShortLivedShit.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityShortLivedShit.java new file mode 100644 index 00000000..e1a0bd1d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityShortLivedShit.java @@ -0,0 +1,25 @@ +package com.kitsu.medievalcraft.entity; + +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityShortLivedShit extends EntityItem { + + public EntityShortLivedShit(World p_i1709_1_, double p_i1709_2_, double p_i1709_4_, double p_i1709_6_) + { + super(p_i1709_1_); + } + + public EntityShortLivedShit(World world, double x, double y, double z,ItemStack stack) { + super(world, x, y, z, stack); + this.lifespan = 500; + } + + public EntityShortLivedShit(World world) + { + super(world); + } + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityTester.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityTester.java new file mode 100644 index 00000000..a98c9696 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/EntityTester.java @@ -0,0 +1,70 @@ +package com.kitsu.medievalcraft.entity; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.item.weapon.ItemHeavyMace; + +public class EntityTester extends EntityThrowable { + + private Vec3 vectest; + private Vec3 vecplayer; + + + public EntityTester(World world) + { + super(world); + } + + public EntityTester(World world, EntityLivingBase entity) + { + super(world, entity); + } + + //@SideOnly(Side.CLIENT) + public EntityTester(World world, double x, double y, double z) + { + super(world, x, y, z); + } + + + + @Override + protected void onImpact(MovingObjectPosition object) { + + if(Minecraft.getMinecraft().theWorld.difficultySetting.getDifficultyId() == 3){ + if(object.entityHit != null){ + if((ItemHeavyMace.attack == true)){ + vecplayer = ItemHeavyMace.vecp; + vectest = vectest.createVectorHelper(object.entityHit.posX, object.entityHit.posY, object.entityHit.posZ); + if((vecplayer.distanceTo(vectest) < 6)){ + ItemHeavyMace.damage = true; + object.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), 8); + } + } + + } + } + + + if (!this.worldObj.isRemote){ + this.setDead(); + //this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.posX, this.posY, this.posZ, new ItemStack(ModItems.itemShit))); + } + + } + + + + @Override + public void onUpdate() + { + super.onUpdate(); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/ProjectileCannonBall.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/ProjectileCannonBall.java new file mode 100644 index 00000000..6ce3cd04 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entity/ProjectileCannonBall.java @@ -0,0 +1,592 @@ +package com.kitsu.medievalcraft.entity; + +import java.util.List; + +import com.kitsu.medievalcraft.item.ModItems; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.IProjectile; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.play.server.S2BPacketChangeGameState; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class ProjectileCannonBall extends EntityArrow implements IProjectile { + private int field_145791_d = -1; + private int field_145792_e = -1; + private int field_145789_f = -1; + private Block field_145790_g; + private int inData; + private boolean inGround; + /** 1 if the player can pick up the arrow */ + public int canBePickedUp; + /** Seems to be some sort of timer for animating an arrow. */ + public int arrowShake; + /** The owner of this arrow. */ + public Entity shootingEntity; + private int ticksInGround; + private int ticksInAir; + private double damage = 35.0D; + /** The amount of knockback an arrow applies when it hits a mob. */ + private int knockbackStrength; + + public ProjectileCannonBall(World world) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + } + + public ProjectileCannonBall(World world, double x, double y, double z) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + this.setPosition(x, y, z); + this.yOffset = 0.0F; + } + + @SuppressWarnings("cast") + public ProjectileCannonBall(World world, EntityLivingBase player, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.shootingEntity = player; + + if (player instanceof EntityPlayer) + { + this.canBePickedUp = 1; + } + + this.posY = player.posY + (double)player.getEyeHeight() + 0.10000000149011612D; + double d0 = p_i1755_3_.posX - player.posX; + double d1 = p_i1755_3_.boundingBox.minY + (double)(p_i1755_3_.height / 3.0F) - this.posY; + double d2 = p_i1755_3_.posZ - player.posZ; + double d3 = (double)MathHelper.sqrt_double(d0 * d0 + d2 * d2); + + if (d3 >= 1.0E-7D) + { + float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; + float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); + double d4 = d0 / d3; + double d5 = d2 / d3; + this.setLocationAndAngles(player.posX + d4, this.posY, player.posZ + d5, f2, f3); + this.yOffset = 0.0F; + float f4 = (float)d3 * 0.2F; + this.setThrowableHeading(d0, d1 + (double)f4, d2, p_i1755_4_, p_i1755_5_); + } + } + + @SuppressWarnings("cast") + public ProjectileCannonBall(World world, EntityLivingBase player, float p_i1756_3_) + { + super(world); + this.renderDistanceWeight = 10.0D; + this.shootingEntity = player; + + this.setSize(0.5F, 0.5F); + this.setLocationAndAngles(player.posX, player.posY + (double)player.getEyeHeight(), player.posZ, player.rotationYaw, player.rotationPitch); + + this.posX += (player.getLookVec().xCoord); + //this.posY -= 0.10000000149011612D; + this.posZ += (player.getLookVec().zCoord); + //this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); + this.posY += player.getLookVec().yCoord; + if(player.getLookVec().yCoord < 0){ + this.posY += player.getLookVec().yCoord * 2; + } + + this.setPosition(this.posX, this.posY, this.posZ); + + //this.setSize(0.5F, 0.5F); + //this.setLocationAndAngles(player.posX, player.posY + (double)player.getEyeHeight(), player.posZ, player.rotationYaw, player.rotationPitch); + //this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); + //this.posY -= 0.10000000149011612D; + //this.posZ -= (double)(MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); + //this.setPosition(this.posX, this.posY, this.posZ); + this.yOffset = 0.0F; + this.motionX = (double)(-MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI)); + this.motionZ = (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI)); + this.motionY = (double)(-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); + } + + protected void entityInit() + { + this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); + } + + /** + * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. + */ + @SuppressWarnings("cast") + public void setThrowableHeading(double x, double y, double z, float p_70186_7_, float p_70186_8_) + { + float f2 = MathHelper.sqrt_double(x * x + y * y + z * z); + x /= (double)f2; + y /= (double)f2; + z /= (double)f2; + x += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_; + y += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_; + z += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_; + x *= (double)p_70186_7_; + y *= (double)p_70186_7_; + z *= (double)p_70186_7_; + this.motionX = x/2.5; + this.motionY = y/1.75; + this.motionZ = z/2.5; + float f3 = MathHelper.sqrt_double(x * x + z * z); + this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(x, z) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(y, (double)f3) * 180.0D / Math.PI); + this.ticksInGround = 1; + } + + /** + * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, + * posY, posZ, yaw, pitch + */ + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) + { + this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); + this.setRotation(p_70056_7_, p_70056_8_); + } + + /** + * Sets the velocity to the args. Args: x, y, z + */ + @SuppressWarnings("cast") + @SideOnly(Side.CLIENT) + public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) + { + + this.motionX = p_70016_1_ ; + this.motionY = p_70016_3_ ; + this.motionZ = p_70016_5_ ; + + if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) + { + float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); + this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, (double)f) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch; + this.prevRotationYaw = this.rotationYaw; + this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); + this.ticksInGround = 0; + } + } + + /** + * Called to update the entity's position/logic. + */ + @SuppressWarnings("cast") + public void onUpdate() + { + super.onUpdate(); + + if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) + { + float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); + } + + Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); + //this.getEntityData().setInteger("blockX", this.field_145791_d); + + if (block.getMaterial() != Material.air) + { + block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); + AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); + + if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) + { + this.inGround = true; + } + } + + if (this.arrowShake > 0) + { + --this.arrowShake; + } + + if (this.inGround) + { + int j = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); + + if (block == this.field_145790_g && j == this.inData) + { + ++this.ticksInGround; + + if (this.ticksInGround == -1) + { + //this.setDead(); + } + } + else + { + this.inGround = false; + this.motionX *= (double)(this.rand.nextFloat() * 0.2F); + this.motionY *= (double)(this.rand.nextFloat() * 0.2F); + this.motionZ *= (double)(this.rand.nextFloat() * 0.2F); + this.ticksInGround = 0; + this.ticksInAir = 0; + } + } + else + { + ++this.ticksInAir; + Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); + vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + + if (movingobjectposition != null) + { + vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); + } + + Entity entity = null; + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); + double d0 = 0.0D; + int i; + float f1; + + for (i = 0; i < list.size(); ++i) + { + Entity entity1 = (Entity)list.get(i); + + if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) + { + f1 = 0.3F; + AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand((double)f1, (double)f1, (double)f1); + MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); + + if (movingobjectposition1 != null) + { + double d1 = vec31.distanceTo(movingobjectposition1.hitVec); + + if (d1 < d0 || d0 == 0.0D) + { + entity = entity1; + d0 = d1; + } + } + } + } + + if (entity != null) + { + movingobjectposition = new MovingObjectPosition(entity); + this.inGround=true; + } + + if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) + { + EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; + + if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) + { + movingobjectposition = null; + } + } + + float f2; + float f4; + + if (movingobjectposition != null) + { + if (movingobjectposition.entityHit != null) + + { + f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); + int k = MathHelper.ceiling_double_int((double)f2 * this.damage); + + DamageSource damagesource = null; + + if (this.shootingEntity == null) + { + //EntityPlayer player = (EntityPlayer) movingobjectposition.entityHit; + //System.out.println(player.inventory.getTotalArmorValue()); + damagesource = DamageSource.causeArrowDamage(this, this.shootingEntity); + //damagesource = DamageSource. + } + else + { + damagesource = DamageSource.causeThrownDamage(this, this.shootingEntity); + } + + if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) + { + movingobjectposition.entityHit.setFire(5); + } + + if (movingobjectposition.entityHit.attackEntityFrom(damagesource, (float)k)) + { + if (movingobjectposition.entityHit instanceof EntityLivingBase) + { + EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; + + if (!this.worldObj.isRemote) + { + //entitylivingbase.setArrowCountInEntity(entitylivingbase.getArrowCountInEntity() + 1); + } + + if (this.knockbackStrength > 0) + { + f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + + if (f4 > 0.0F) + { + movingobjectposition.entityHit.addVelocity(this.motionX * (double)this.knockbackStrength * 0.6000000238418579D / (double)f4, 0.1D, this.motionZ * (double)this.knockbackStrength * 0.6000000238418579D / (double)f4); + } + } + + if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) + { + EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); + EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); + } + + if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) + { + ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); + } + } + + //this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); + + if (!(movingobjectposition.entityHit instanceof EntityEnderman)) + { + this.inGround = true; + } + } + else + { + this.motionX *= -0.10000000149011612D; + this.motionY *= -0.10000000149011612D; + this.motionZ *= -0.10000000149011612D; + this.rotationYaw += 180.0F; + this.prevRotationYaw += 180.0F; + this.ticksInAir = 0; + } + this.inGround=true; + } + else + { + + this.field_145791_d = movingobjectposition.blockX; + this.field_145792_e = movingobjectposition.blockY; + this.field_145789_f = movingobjectposition.blockZ; + this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); + this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); + this.motionX = (double)((float)(movingobjectposition.hitVec.xCoord - this.posX)); + this.motionY = (double)((float)(movingobjectposition.hitVec.yCoord - this.posY)); + this.motionZ = (double)((float)(movingobjectposition.hitVec.zCoord - this.posZ)); + f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); + this.posX -= this.motionX / (double)f2 * 0.05000000074505806D; + this.posY -= this.motionY / (double)f2 * 0.05000000074505806D; + this.posZ -= this.motionZ / (double)f2 * 0.05000000074505806D; + //this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); + this.inGround = true; + this.arrowShake = 7; + + + if (this.field_145790_g.getMaterial() != Material.air) + { + this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); + } + } + this.inGround=true; + } + + this.posX += this.motionX; + this.posY += this.motionY; + this.posZ += this.motionZ; + f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + + for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) + { + ; + } + + while (this.rotationPitch - this.prevRotationPitch >= 180.0F) + { + this.prevRotationPitch += 360.0F; + } + + while (this.rotationYaw - this.prevRotationYaw < -180.0F) + { + this.prevRotationYaw -= 360.0F; + } + + while (this.rotationYaw - this.prevRotationYaw >= 180.0F) + { + this.prevRotationYaw += 360.0F; + } + + this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + float f3 = 0.99F; + f1 = 0.05F; + + if (this.isInWater()) + { + for (int l = 0; l < 4; ++l) + { + f4 = 0.25F; + this.worldObj.spawnParticle("bubble", this.posX - this.motionX * (double)f4, this.posY - this.motionY * (double)f4, this.posZ - this.motionZ * (double)f4, this.motionX, this.motionY, this.motionZ); + } + + f3 = 0.8F; + } + + if (this.isWet()) + { + this.extinguish(); + } + + if (movingobjectposition != null) + { + if (movingobjectposition.entityHit != null) + { + this.inGround=true; + } + } + + this.motionX *= (double)f3; + this.motionY *= (double)f3; + this.motionZ *= (double)f3; + this.motionY -= (double)f1; + this.setPosition(this.posX, this.posY, this.posZ); + this.func_145775_I(); + } + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + p_70014_1_.setShort("xTile", (short)this.field_145791_d); + p_70014_1_.setShort("yTile", (short)this.field_145792_e); + p_70014_1_.setShort("zTile", (short)this.field_145789_f); + p_70014_1_.setShort("life", (short)this.ticksInGround); + p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); + p_70014_1_.setByte("inData", (byte)this.inData); + p_70014_1_.setByte("shake", (byte)this.arrowShake); + p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); + p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); + p_70014_1_.setDouble("damage", this.damage); + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + this.field_145791_d = p_70037_1_.getShort("xTile"); + this.field_145792_e = p_70037_1_.getShort("yTile"); + this.field_145789_f = p_70037_1_.getShort("zTile"); + this.ticksInGround = p_70037_1_.getShort("life"); + this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); + this.inData = p_70037_1_.getByte("inData") & 255; + this.arrowShake = p_70037_1_.getByte("shake") & 255; + this.inGround = p_70037_1_.getByte("inGround") == 1; + + if (p_70037_1_.hasKey("damage", 99)) + { + this.damage = p_70037_1_.getDouble("damage"); + } + + if (p_70037_1_.hasKey("pickup", 99)) + { + this.canBePickedUp = p_70037_1_.getByte("pickup"); + } + else if (p_70037_1_.hasKey("player", 99)) + { + this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; + } + } + + /** + * Called by a player entity when they collide with an entity + */ + public void onCollideWithPlayer(EntityPlayer p_70100_1_) + { + if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) + { + boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; + + if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.itemITSpear, 1))) + { + flag = false; + } + + if (flag) + { + this.playSound("random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); + p_70100_1_.onItemPickup(this, 1); + this.setDead(); + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + protected boolean canTriggerWalking() + { + return false; + } + + @SideOnly(Side.CLIENT) + public float getShadowSize() + { + return 2.0F; + } + + public void setDamage(double p_70239_1_) + { + this.damage = p_70239_1_; + } + + public double getDamage() + { + return this.damage; + } + + /** + * Sets the amount of knockback the arrow applies when it hits a mob. + */ + public void setKnockbackStrength(int p_70240_1_) + { + this.knockbackStrength = p_70240_1_; + } + + /** + * If returns false, the item will not inflict any damage against entities. + */ + public boolean canAttackWithItem() + { + return true; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entityAI/EntityAIWaterMob.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entityAI/EntityAIWaterMob.java new file mode 100644 index 00000000..f3a167a2 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/entityAI/EntityAIWaterMob.java @@ -0,0 +1,221 @@ +package com.kitsu.medievalcraft.entityAI; + +import java.util.List; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAINearestAttackableTarget; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.passive.EntitySquid; +import net.minecraft.entity.passive.EntityWaterMob; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.pathfinding.PathEntity; +import net.minecraft.pathfinding.PathFinder; +import net.minecraft.profiler.Profiler; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.ChunkCache; +import net.minecraft.world.World; + +public class EntityAIWaterMob extends EntityWaterMob implements IAnimals{ + + protected int attackInterval = 50; + protected float attackSpeed = 1.2F; + protected float swimSpeed = 0.5F; + private double targetX; + private double targetY; + private double targetZ; + private Entity targetedEntity; + private boolean isAttacking; + protected float swimRadius = 4.0F; + protected float swimRadiusHeight = 4.0F; + protected boolean Agrooed = false; + protected boolean landBounce = true; + protected float moreDamage = 0.5F; + public Profiler theProfiler; + + + public EntityAIWaterMob(World world) + { + super(world); + this.targetTasks.addTask(0, new EntityAINearestAttackableTarget(this, EntitySquid.class, 32, true, true, IMob.mobSelector)); + } + + + protected boolean canTriggerWalking() + { + return false; + } + + protected boolean isAIEnabled() + { + return true; + } + public boolean canBreatheUnderwater() + { + return true; + } + protected void applyEntityAttributes() + { + super.applyEntityAttributes(); + getAttributeMap().registerAttribute(SharedMonsterAttributes.attackDamage); + } + + public boolean isInWater() + { + return this.worldObj.handleMaterialAcceleration(this.boundingBox, Material.water, this); + } + + public void onUpdate() + { + super.onUpdate(); + if (isInWater()) { + this.motionY *= 0.1D; + } + } + public void applyEntityCollision(Entity entity) + { + super.applyEntityCollision(entity); + if ((this.Agrooed) && (this.targetedEntity == entity)) + { + attackEntityAsMob(entity); + + } + } + + + protected Entity findPreyHuman() + { + EntityPlayer player = this.worldObj.getClosestVulnerablePlayerToEntity(this, 16.0D); + return (player != null) && (canEntityBeSeen(player)) ? player : null; + + } + + + public boolean attackEntityAsMob(Entity entity) + { + float f = (float)getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue(); + + return entity.attackEntityFrom(DamageSource.causeMobDamage(this), f + moreDamage); + + } + + + public void onEntityUpdate() + { + int air = getAir(); + super.onEntityUpdate(); + if ((isEntityAlive()) && (!isInWater())) + { + air--; + setAir(air); + if (getAir() == -20) + { + setAir(0); + attackEntityFrom(DamageSource.drown, 2.0F); + } + } + else + { + setAir(300); + } + } + + + protected void updateAITasks() + { + super.updateAITasks(); + if (isInWater()) + { + double dx = this.targetX - this.posX; + double dy = this.targetY - this.posY; + double dz = this.targetZ - this.posZ; + double dist = MathHelper.sqrt_double(dx * dx + dy * dy + dz * dz); + if ((dist < 1.0D) || (dist > 1000.0D)) + { + this.targetX = (this.posX + (this.rand.nextFloat() * 2.0F - 1.0F) * this.swimRadius); + this.targetY = (this.posY + (this.rand.nextFloat() * 2.0F - 1.0F) * this.swimRadiusHeight); + this.targetZ = (this.posZ + (this.rand.nextFloat() * 2.0F - 1.0F) * this.swimRadius); + this.isAttacking = false; + } + if (this.worldObj.getBlock(MathHelper.floor_double(this.targetX), MathHelper.floor_double(this.targetY + this.height), MathHelper.floor_double(this.targetZ)).getMaterial() == Material.water) + { + this.motionX += dx / dist * 0.05D * this.swimSpeed; + this.motionY += dy / dist * 0.1D * this.swimSpeed; + this.motionZ += dz / dist * 0.05D * this.swimSpeed; + } + else + { + this.targetX = this.posX; + this.targetY = (this.posY + 0.1D); + this.targetZ = this.posZ; + } + if (this.isAttacking) + { + this.motionX *= this.attackSpeed; + this.motionY *= this.attackSpeed; + this.motionZ *= this.attackSpeed; + } + if ((this.Agrooed) && (this.rand.nextInt(this.attackInterval) == 0)) + { + this.targetedEntity = findPreyHuman(); + if ((this.targetedEntity != null) && (this.targetedEntity.isInWater())) + { + this.targetX = this.targetedEntity.posX; + this.targetY = this.targetedEntity.posY; + this.targetZ = this.targetedEntity.posZ; + this.isAttacking = true; + } + + } + this.renderYawOffset += (-(float)Math.atan2(this.motionX, this.motionZ) * 180.0F / 3.141593F - this.renderYawOffset) * 0.5F; + this.rotationYaw = this.renderYawOffset; + float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationPitch += ((float)Math.atan2(this.motionY, f) * 180.0F / 3.141593F - this.rotationPitch) * 0.5F; + } + else + { + this.motionX = 0.0D; + this.motionY -= 0.08D; + this.motionY *= 0.9800000190734863D; + this.motionZ = 0.0D; + if ((this.landBounce) && (this.onGround) && (this.rand.nextInt(30) == 0)) + { + this.motionY = 0.300000011920929D; + this.motionX = (-0.4F + this.rand.nextFloat() * 0.8F); + this.motionZ = (-0.4F + this.rand.nextFloat() * 0.8F); + } + } + } + +} + +/*when you extend it, +you want to add these to your constructor: + +this.Agrooed = true; + this.swimRadius = 25F; + this.swimSpeed = 0.5F; + this.attackInterval = 23; + this.landBounce = true; + +what these stand for are pretty self explanitory. add this to your class: + + @Override + protected Entity findPrey() + { + AxisAlignedBB area = this.boundingBox.expand(16.0D, 16.0D, 16.0D); + + EntityPlayer player = (EntityPlayer)super.findPrey(); + if (player != null) { + return player; + } + + return worldObj.findNearestEntityWithinAABB(EntityPlayer.class, area, this); + */ + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/events/BucketHandle.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/events/BucketHandle.java new file mode 100644 index 00000000..87955b9a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/events/BucketHandle.java @@ -0,0 +1,46 @@ +package com.kitsu.medievalcraft.events; + +import java.util.HashMap; +import java.util.Map; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.eventhandler.Event.Result; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.event.entity.player.FillBucketEvent; + +public class BucketHandle { + public static BucketHandle INSTANCE = new BucketHandle(); + public Map buckets = new HashMap(); + + private BucketHandle() { + } + + @SubscribeEvent + public void onBucketFill(FillBucketEvent event) { + + ItemStack result = fillCustomBucket(event.world, event.target); + + if (result == null) + return; + + event.result = result; + event.setResult(Result.ALLOW); + } + + private ItemStack fillCustomBucket(World world, MovingObjectPosition pos) { + + Block block = world.getBlock(pos.blockX, pos.blockY, pos.blockZ); + + Item bucket = buckets.get(block); + if (bucket != null && world.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ) == 0) { + world.setBlockToAir(pos.blockX, pos.blockY, pos.blockZ); + return new ItemStack(bucket); + } //else + return null; + + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/events/EventHandle.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/events/EventHandle.java new file mode 100644 index 00000000..f5a31135 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/events/EventHandle.java @@ -0,0 +1,652 @@ +package com.kitsu.medievalcraft.events; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.passive.EntityCow; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraftforge.client.event.MouseEvent; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import net.minecraftforge.event.entity.player.PlayerInteractEvent; +import net.minecraftforge.event.entity.player.PlayerUseItemEvent; +import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.item.craftingtools.ForgeHammer; +import com.kitsu.medievalcraft.util.ShieldSwitchTable; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class EventHandle { + + //private int wKey, sKey; + //public static int longbowD; + public int longbowTicks; + //public static boolean longbowUse; + public static boolean mobcheck, weaponUse; + + Random rand = new Random(); + + /*@SubscribeEvent +public void zombieJoinsEvent(EntityJoinWorldEvent event){ + if(event.entity instanceof EntityRazorBack){ + event.entity.po + System.out.println(event.entity.posX + ":" + event.entity.posy + ":" + event.entity.posZ); + } +}*/ + + @SubscribeEvent + public void ironOreJungleEvent (HarvestDropsEvent event){ + if(BiomeDictionary.isBiomeOfType(event.world.getBiomeGenForCoords(event.x, event.z), Type.JUNGLE)){ + if(event.block.equals(Blocks.iron_ore)){ + event.drops.clear(); + ItemStack testStack = new ItemStack(ModBlocks.wootzOre); + event.drops.add(testStack); + } + } + } + + @SubscribeEvent + @SideOnly(Side.CLIENT) + public void longbowUseEvent (PlayerUseItemEvent.Tick event) { + if (event.entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) event.entity; + if(player.worldObj.isRemote == true){ + + if(player.getItemInUse().getItem().equals(ModItems.longbow)){ + longbowTicks = player.getItemInUseDuration(); + ItemStack stack = player.inventory.getCurrentItem(); + + if((longbowTicks > 0) && (longbowTicks <=5)){ + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 1); + } + if((longbowTicks > 5) && (longbowTicks <=10)){ + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 2); + } + if((longbowTicks > 10) && (longbowTicks <=15)){ + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 3); + } + if((longbowTicks > 15) && (longbowTicks <=20)){ + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 4); + } + if((longbowTicks > 20) && (longbowTicks <=25)){ + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 5); + } + if((longbowTicks > 25) && (longbowTicks <=30)){ + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 6); + } + if((longbowTicks > 30) && (longbowTicks <=35)){ + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 7); + } + if((longbowTicks > 35) && (longbowTicks <=40)){ + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 8); + } + if((longbowTicks > 40) && (longbowTicks <=45)){ + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 9); + } + if(longbowTicks == 45){ + player.playSound((Main.MODID + ":tautBow"), 0.8F, 1.0F); + //player.worldObj.playSoundAtEntity(player, (Main.MODID + ":tautBow"), 0.8F, 1.0F); + } + if((longbowTicks > 45) && (longbowTicks <=55)){ + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 10); + } + + if((longbowTicks > 100)){ + longbowTicks = 100; + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 10); + } + } + } + } + } + + @SubscribeEvent + @SideOnly(Side.CLIENT) + public void getMouseEvent(MouseEvent event){ + if((event.button == 0) && (event.buttonstate == true)){ + ForgeHammer.forgeHammerLeftClick = true; + } + if(event.buttonstate == false){ + ForgeHammer.forgeHammerLeftClick = false; + } + //System.out.println("Button: " + event.button); + //System.out.println("ButtonState: " + event.buttonstate); + } + + /*@SubscribeEvent +public void splitLogEvent(PlayerInteractEvent event){ + if(event.entityPlayer instanceof EntityPlayer){ + EntityPlayer player = event.entityPlayer; + if((event.useBlock.equals(ModBlocks.cleanAcacia)) + ||(event.useBlock.equals(ModBlocks.cleanBirch)) + ||(event.useBlock.equals(ModBlocks.cleanDarkOak)) + ||(event.useBlock.equals(ModBlocks.cleanJungle)) + ||(event.useBlock.equals(ModBlocks.cleanOak)) + ||(event.useBlock.equals(ModBlocks.cleanSpruce))){ + System.out.println("Player Used Wood"); + if(player.inventory.getCurrentItem()!=null){ + System.out.println(player.inventory.getCurrentItem().getClass()); + if(player.getItemInUse().getItem() instanceof ItemAxe){ + player.swingItem(); + if(!event.world.isRemote){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.splitLog, 0, 2); + } + } + } + } + } +}*/ + + @SubscribeEvent + public void emptyHandBarkEvent(PlayerInteractEvent event) { + if(!event.entity.worldObj.isRemote){ + if (event.entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) event.entity; + if(player.inventory.getCurrentItem()!=null){ + Block test = event.world.getBlock(event.x, event.y, event.z); + //Block isEmpty = event.world.getBlock(event.x, event.y + 1, event.z); + ItemStack itemStack = new ItemStack(ModItems.itemBark); + //ItemStack stickStack = new ItemStack(Items.stick); + + if((player.inventory.getCurrentItem().getItem() == Items.stick)) { + if((event.action == event.action.RIGHT_CLICK_BLOCK ) && ((test == Blocks.log)||test == Blocks.log2) ) { //&& (test == ModBlocks.testForge) && (isEmpty == Blocks.air) + if(test == Blocks.log){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":scrapes1", 0.15F, 0.85F); + int woodMeta = event.world.getBlockMetadata(event.x,event.y, event.z); + if(woodMeta == 0 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanOak, 0, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 4 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanOak, 4, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 8 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanOak, 8, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 1 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanSpruce, 0, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 5 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanSpruce, 4, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 9 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanSpruce, 8, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 2 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanBirch, 0, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 6 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanBirch, 4, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 10 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanBirch, 8, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 3 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanJungle, 0, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 7 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanJungle, 4, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 11 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanJungle, 8, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + } + if(test == Blocks.log2){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":scrapes1", 0.2F, 0.8F); + int woodMeta = event.world.getBlockMetadata(event.x, event.y, event.z); + if(woodMeta == 0 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.cleanAcacia, 0, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 4 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.cleanAcacia, 4, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 8 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.cleanAcacia, 8, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 1 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.cleanDarkOak, 0, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 5 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.cleanDarkOak, 4, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 9 && event.world.rand.nextInt(9)==0){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.cleanDarkOak, 8, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 1 + event.world.rand.nextInt(2), 0))); + } + } + } + } + } + } + } + } + + /*@SubscribeEvent + public void flintKnappedEvent(PlayerInteractEvent event) { + if(!event.entity.worldObj.isRemote){ + if (event.entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) event.entity; + Block test = event.world.getBlock(event.x, event.y, event.z); + ItemStack flint = new ItemStack(Items.flint); + ItemStack flintKnapped = new ItemStack(ModItems.flintKnapped, 1 + event.world.rand.nextInt(3), 0); + //if(player.isSneaking()){ + if((player.inventory.getCurrentItem() != null)) { + if((player.inventory.getCurrentItem().getItem().equals(Items.flint)) && (test==Blocks.stone)){ + + if(player.isSwingInProgress == false){ + player.worldObj.playSoundAtEntity(player, "mob.chicken.step", 1.0f, 1.0f); + player.swingItem(); + if((event.world.rand.nextInt(4)==0)){ + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + if((event.world.rand.nextInt(2)==0)){ + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y+1, event.z, flintKnapped)); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + + } + } + } + } + } + }*/ + + @SubscribeEvent + public void flintHandBarkEvent(PlayerInteractEvent event) { + if(!event.entity.worldObj.isRemote){ + if (event.entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) event.entity; + Block test = event.world.getBlock(event.x, event.y, event.z); + //Block isEmpty = event.world.getBlock(event.x, event.y + 1, event.z); + ItemStack itemStack = new ItemStack(ModItems.itemBark); + ItemStack flint = new ItemStack(ModItems.flintKnapped); + //if(player.isSneaking()){ + if((player.inventory.getCurrentItem() != null)) { + if((player.inventory.getCurrentItem().getUnlocalizedName().contains("flintKnapped"))){ + if((event.action == event.action.RIGHT_CLICK_BLOCK ) && ((test == Blocks.log)||test == Blocks.log2)) { + if(test == Blocks.log){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":scrapes1", 0.15F, 0.85F); + int woodMeta = event.world.getBlockMetadata(event.x,event.y, event.z); + if(woodMeta == 0 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanOak, 0, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 4 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanOak, 4, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 8 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanOak, 8, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 1 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanSpruce, 0, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 5 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanSpruce, 4, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 9 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanSpruce, 8, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 2 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanBirch, 0, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 6 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanBirch, 4, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 10 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanBirch, 8, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 3 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanJungle, 0, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 7 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanJungle, 4, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 11 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y,event.z, ModBlocks.cleanJungle, 8, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + } + if(test == Blocks.log2){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":scrapes1", 0.2F, 0.8F); + int woodMeta = event.world.getBlockMetadata(event.x, event.y, event.z); + if(woodMeta == 0 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.cleanAcacia, 0, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 4 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.cleanAcacia, 4, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 8 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.cleanAcacia, 8, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 1 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.cleanDarkOak, 0, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 5 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.cleanDarkOak, 4, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + if(woodMeta == 9 && event.world.rand.nextInt(6)==0){ + event.world.setBlock(event.x, event.y, event.z, ModBlocks.cleanDarkOak, 8, 2); + event.world.spawnEntityInWorld(new EntityItem(event.world, event.x, event.y, event.z, new ItemStack(ModItems.itemBark, 2 + event.world.rand.nextInt(2), 0))); + } + } + if(event.world.rand.nextInt(50)==0){ + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + } + } + } + } + } + } + + @SubscribeEvent + public void myDiamondPlayerInteractEvent(PlayerInteractEvent event) { + if(!event.entity.worldObj.isRemote){ + if (event.entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) event.entity; + ItemStack itemStack = new ItemStack(Items.diamond); + if(player.isSneaking()){ + if((player.inventory.getCurrentItem() != null)) { + if((player.inventory.getCurrentItem().getItem().equals(Items.diamond))){ + if((event.action == event.action.RIGHT_CLICK_BLOCK )){ + if(event.world.getBlock(event.x, event.y + 1, event.z).equals(Blocks.air)){ + event.world.setBlock(event.x, event.y + 1, event.z, ModBlocks.myDiamond, 0, 2); + //event.world.setBlock(event.x, event.y+1, event.z, Blocks.bedrock); + player.inventory.consumeInventoryItem(Items.diamond); + } + } + } + } + } + } + } + } + + @SubscribeEvent + public void myEmeraldPlayerInteractEvent(PlayerInteractEvent event) { + if(!event.entity.worldObj.isRemote){ + if (event.entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) event.entity; + //Block test = event.world.getBlock(event.x, event.y, event.z); + //Block isEmpty = event.world.getBlock(event.x, event.y + 1, event.z); + ItemStack itemStack = new ItemStack(Items.emerald); + if(player.isSneaking()){ + if((player.inventory.getCurrentItem() != null)) { + if((player.inventory.getCurrentItem().isItemEqual(itemStack)) && (player.inventory.getStackInSlot(player.inventory.currentItem).stackSize >= 2)){ + if((event.action == event.action.RIGHT_CLICK_BLOCK ) ) { //&& (test == ModBlocks.testForge) && (isEmpty == Blocks.air) + if(event.world.getBlock(event.x, event.y + 1, event.z).equals(Blocks.air)){ + player.inventory.decrStackSize(player.inventory.currentItem, 1); + event.world.setBlock(event.x, event.y + 1, event.z, ModBlocks.myEmerald, 0, 2); + player.inventory.consumeInventoryItem(Items.emerald); + } + } + } + } + } + } + } + } + + /*@SubscribeEvent + public void onItemShitJoinEvent(ItemEvent event){ + + if(!event.entity.worldObj.isRemote){ + + if(event.entity.getgetEntityItem().getItem() == ModItems.itemShit){ + //System.out.println(event.entityItem.worldObj.getBlock((int)event.entityItem.posX, (int)event.entityItem.posY-2, (int)event.entityItem.posZ)); + /*if(event.entityItem.worldObj.getBlock((int)event.entityItem.posX, (int)event.entityItem.posY-1, (int)event.entityItem.posZ)==Blocks.grass){ + event.entityItem.setDead(); + } + event.lifespan=200; + } + } + }*/ + + @SubscribeEvent + public void onLivingUpdateEventShit(LivingUpdateEvent event) { + //eventLongbowTicks = ItemLongbow.longbowTicks; + //System.out.println(eventLongbowTicks); + //MAKE COWS SHIT + //Differentiates Client and Server + if (!event.entity.worldObj.isRemote) { + //Default to 100000 + if ( rand.nextInt(1500) == 0 ) { + //Checks to see if the LivingUpdate is being applied to cow, if so: + if (event.entity instanceof EntityCow) { + + event.entityLiving.dropItem(ModItems.itemShit, 1); + } + } + } + } + + /* +@SubscribeEvent +@SideOnly(Side.CLIENT) +public void onLivingUpdateLongSword (LivingUpdateEvent event) { + + if (event.entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) event.entity; + + if (player.isUsingItem() == true) { + useItem = player.inventory.getCurrentItem(); + j = useItem.getItemDamage(); + + if(useItem.isItemEqual(new ItemStack(ModItems.longSword, OreDictionary.WILDCARD_VALUE, j))) { + + player.inventory.changeCurrentItem(1); + + if (player.inventory.getCurrentItem() != null) { + switchedItem = player.inventory.getCurrentItem(); + i = switchedItem.getItemDamage(); + + if ((switchedItem.isItemEqual(new ItemStack(ModItems.woodenShield, OreDictionary.WILDCARD_VALUE, i))) || (switchedItem.isItemEqual(new ItemStack(ModItems.ironShield, OreDictionary.WILDCARD_VALUE, i)))){ + + } else player.inventory.changeCurrentItem(-1); + + } else player.inventory.changeCurrentItem(-1); + } + } + } +}*/ + + + /*@SubscribeEvent +@SideOnly(Side.CLIENT) +public void onPlayerUpdateMaceWoodenShield (LivingUpdateEvent event) { + + if (event.entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) event.entity; + + if (player.isUsingItem() == true) { + useItem2 = player.inventory.getCurrentItem(); + j = useItem2.getItemDamage(); + + if(useItem2.isItemEqual(new ItemStack(ModItems.heavyMace, OreDictionary.WILDCARD_VALUE, j))) { + + player.inventory.changeCurrentItem(1); + + if (player.inventory.getCurrentItem() != null) { + switchedItem2 = player.inventory.getCurrentItem(); + i = switchedItem2.getItemDamage(); + + if ((switchedItem2.isItemEqual(new ItemStack(ModItems.woodenShield, OreDictionary.WILDCARD_VALUE, i))) || (switchedItem2.isItemEqual(new ItemStack(ModItems.ironShield, OreDictionary.WILDCARD_VALUE, i)))){ + + } else player.inventory.changeCurrentItem(-1); + + } else player.inventory.changeCurrentItem(-1); + } + } + } +}*/ +/* + @SubscribeEvent + @SideOnly(Side.CLIENT) + public void SwordToShieldSwitch (LivingUpdateEvent event) { + + if (event.entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) event.entity; + + if(player.isUsingItem() == true){ + if((checkWeapon(player.getItemInUse().getItem())) == true){ + if(weaponUse == true){ + if(player.inventory.currentItem != 0){ + int a = player.inventory.currentItem; + if(player.inventory.getStackInSlot(a-1) != null){ + if((checkShield(player.inventory.getStackInSlot(a-1).getItem())) == true){ + player.inventory.changeCurrentItem(+1); + weaponUse = false; + } + } + } + } + } + } + } + } + + private boolean checkWeapon(Item testItem){ + for(int i = 0; i < ShieldSwitchTable.weapons.size(); i++){ + if(testItem == ShieldSwitchTable.weapons.get(i)){ + return true; + } + } + return false; + } + private Boolean checkShield(Item testItem){ + for(int i = 0; i < ShieldSwitchTable.shields.size(); i++){ + if(testItem == ShieldSwitchTable.shields.get(i)){ + return true; + } + } + return false; + } + + + @SubscribeEvent + public void onPlayerHurtShield (LivingHurtEvent event) { + + if(event.entity.worldObj.isRemote){ + if (event.entity instanceof EntityPlayer && event.ammount > 0) { + EntityPlayer player = (EntityPlayer) event.entity; + Entity mobEntity = event.source.getEntity(); + String mobString = event.source.getDamageType(); + //System.out.println(mobEntity); + //System.out.println(mobString); + if (player.inventory.getCurrentItem()!=null){ + if(player.isUsingItem()==true){ + if (player.inventory.getCurrentItem()!=null){ + if (player.inventory.getCurrentItem().getItem().equals(checkShield(player.inventory.getCurrentItem().getItem()))) { + if ((mobString.equals("explosion")) || (mobString.equals("thrown")) || (mobString.equals("arrow") || (mobString.equals("player")) || (mobString.equals("mob")) || (mobString.equals("fireball")))) { + + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(mobEntity.posX - player.posX, mobEntity.boundingBox.minY + mobEntity.height / 2.0F - (player.posY + player.getEyeHeight()), mobEntity.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + double d2 = 1.0D - 0.025D / d0; + + if (d1 + 0.3 > d2) { + + if(player.inventory.getCurrentItem().getItem().equals(ModItems.woodenShield)){ + if(event.ammount > 1.5F){ + event.ammount = event.ammount-2F; + } else event.ammount = 0; + player.getCurrentEquippedItem().damageItem(2, player); + player.worldObj.playSoundAtEntity(player, Main.MODID + ":woodshieldbash", 1.0F, 1.0F); + //event.entityLiving.addPotionEffect(new PotionEffect(Potion.resistance.id, 60, 0, true)); + if (mobString.equals("explosion") && rand.nextInt(5) == 1) { + --player.getCurrentEquippedItem().stackSize; + } + } + if(player.inventory.getCurrentItem().getItem().equals(ModItems.ironShield)){ + if(event.ammount > 4F){ + event.ammount = event.ammount-4F; + } else event.ammount = 0; + player.getCurrentEquippedItem().damageItem(4, player); + player.worldObj.playSoundAtEntity(player, Main.MODID + ":ironShieldBash", 1.0F, 1.0F); + } + + } + } + } + } + } + } + } + } + } +*/ + + +} + + + + + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiCannon_28.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiCannon_28.java new file mode 100644 index 00000000..cab62c1a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiCannon_28.java @@ -0,0 +1,38 @@ +package com.kitsu.medievalcraft.gui; + +import org.lwjgl.opengl.GL11; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.contain.ContainerCannon_28; +import com.kitsu.medievalcraft.tileents.cannon.TileCannon_28; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GuiCannon_28 extends GuiContainer { + private ResourceLocation texture = new ResourceLocation(Main.MODID + ":" + "textures/gui/cannongui.png"); + + public GuiCannon_28(InventoryPlayer inventoryPlayer, TileCannon_28 tileEntity) { + super(new ContainerCannon_28(inventoryPlayer, tileEntity)); + // TODO Auto-generated constructor stub + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + //String name = "Forge"; + + //this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + //this.fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 8, this.ySize - 96 + 2, 4210752); + + } + + @Override + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + GL11.glColor4f(1F, 1F, 1F, 1F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiForgeAnvil.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiForgeAnvil.java new file mode 100644 index 00000000..11adfc12 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiForgeAnvil.java @@ -0,0 +1,38 @@ +package com.kitsu.medievalcraft.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.contain.ContainerForgeAnvil; +import com.kitsu.medievalcraft.tileents.machine.TileEntityAnvilForge; + +public class GuiForgeAnvil extends GuiContainer { + private ResourceLocation texture = new ResourceLocation(Main.MODID + ":" + "textures/gui/forgeovengui.png"); + + public GuiForgeAnvil(InventoryPlayer inventoryPlayer, TileEntityAnvilForge tileEntity) { + super(new ContainerForgeAnvil(inventoryPlayer, tileEntity)); + // TODO Auto-generated constructor stub + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + //String name = "Forge"; + + //this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + //this.fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 8, this.ySize - 96 + 2, 4210752); + + } + + @Override + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + GL11.glColor4f(1F, 1F, 1F, 1F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiFormTable.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiFormTable.java new file mode 100644 index 00000000..556b91a3 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiFormTable.java @@ -0,0 +1,48 @@ +package com.kitsu.medievalcraft.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + +import org.lwjgl.opengl.GL11; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.contain.ContainerFormTable; + +public class GuiFormTable extends GuiContainer { + + private ResourceLocation texture = new ResourceLocation(Main.MODID + ":" + "textures/gui/formtablegui.png"); + + public GuiFormTable(InventoryPlayer playerinv, World world, int x, int y, int z) { + + super(new ContainerFormTable(playerinv, world, x, y, z)); + this.xSize = 200; + this.ySize = 200; + + } + + public void onGuiClosed(){ + super.onGuiClosed(); + } + + + protected void drawGuiContainerForegroundLayer(int i, int j) { + //Name xstart ystart color + this.fontRendererObj.drawString(StatCollector.translateToLocal("Form Table"), 100, 5, 0xFFFFFF); + + } + + @Override + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + GL11.glColor4f(1F, 1F, 1F, 1F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + } + + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiHandler.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiHandler.java new file mode 100644 index 00000000..a658cc64 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiHandler.java @@ -0,0 +1,76 @@ +package com.kitsu.medievalcraft.gui; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.contain.ContainerCannon_28; +import com.kitsu.medievalcraft.contain.ContainerForgeAnvil; +import com.kitsu.medievalcraft.contain.ContainerFormTable; +import com.kitsu.medievalcraft.contain.ContainerSolidFilter; +import com.kitsu.medievalcraft.contain.ContainerTestForge; +import com.kitsu.medievalcraft.tileents.cannon.TileCannon_28; +import com.kitsu.medievalcraft.tileents.machine.TileEntityAnvilForge; +import com.kitsu.medievalcraft.tileents.machine.TileEntitySolidFilter; +import com.kitsu.medievalcraft.tileents.machine.TileEntityTestForge; + +import cpw.mods.fml.common.network.IGuiHandler; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class GuiHandler implements IGuiHandler { + + public static final int guiIDformTable = 1; + public static final int guiIDforge = 2; + public static final int guiIDforgeAnvil = 3; + public static final int guiIDsolidFilter = 4; + public static final int guiIDcannon28 = 5; + + //returns an instance of the Container you made earlier + @Override + public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) + { + TileEntity entity = world.getTileEntity(x, y, z); + if (id == guiIDformTable) { + return id == guiIDformTable && world.getBlock(x, y, z) == ModBlocks.formtable ? new ContainerFormTable(player.inventory, world, x, y, z) : null; + } + if (entity instanceof TileEntityTestForge) { + return new ContainerTestForge(player.inventory, (TileEntityTestForge) entity); + } + if (entity instanceof TileEntityAnvilForge) { + return new ContainerForgeAnvil(player.inventory, (TileEntityAnvilForge) entity); + } + if (entity instanceof TileEntitySolidFilter) { + return new ContainerSolidFilter(player.inventory, (TileEntitySolidFilter) entity); + } + if (entity instanceof TileCannon_28) { + return new ContainerCannon_28(player.inventory, (TileCannon_28) entity); + } + return null; + } + + //returns an instance of the Gui you made earlier + @Override + public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) + { + TileEntity entity = world.getTileEntity(x, y, z); + if (id == guiIDformTable) { + return id == guiIDformTable && world.getBlock(x, y, z) == ModBlocks.formtable ? new GuiFormTable(player.inventory, world, x, y, z) : null; + } + if (entity instanceof TileEntityTestForge) { + return new GuiTestForge(player.inventory, (TileEntityTestForge) entity); + } + if (entity instanceof TileEntityAnvilForge) { + return new GuiForgeAnvil(player.inventory, (TileEntityAnvilForge) entity); + } + if (entity instanceof TileEntitySolidFilter) { + return new GuiSolidFilter(player.inventory, (TileEntitySolidFilter) entity); + } + if (entity instanceof TileCannon_28) { + return new GuiCannon_28(player.inventory, (TileCannon_28) entity); + } + + return null; + } + + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiSolidFilter.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiSolidFilter.java new file mode 100644 index 00000000..f7fc51d0 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiSolidFilter.java @@ -0,0 +1,40 @@ +package com.kitsu.medievalcraft.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.contain.ContainerSolidFilter; +import com.kitsu.medievalcraft.tileents.machine.TileEntitySolidFilter; + +public class GuiSolidFilter extends GuiContainer { + + private ResourceLocation texture = new ResourceLocation(Main.MODID + ":" + "textures/gui/solidfiltergui.png"); + + public GuiSolidFilter(InventoryPlayer inventoryPlayer, TileEntitySolidFilter tileEntity) { + super(new ContainerSolidFilter(inventoryPlayer, tileEntity)); + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + //String name = "28lb Cannon"; + + //this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + //this.fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 8, this.ySize - 96 + 2, 4210752); + + } + + @Override + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + GL11.glColor4f(1F, 1F, 1F, 1F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } + + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiTestForge.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiTestForge.java new file mode 100644 index 00000000..fb281d07 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/gui/GuiTestForge.java @@ -0,0 +1,38 @@ +package com.kitsu.medievalcraft.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.contain.ContainerTestForge; +import com.kitsu.medievalcraft.tileents.machine.TileEntityTestForge; + +public class GuiTestForge extends GuiContainer { + private ResourceLocation texture = new ResourceLocation(Main.MODID + ":" + "textures/gui/forgeovengui.png"); + + public GuiTestForge(InventoryPlayer inventoryPlayer, TileEntityTestForge tileEntity) { + super(new ContainerTestForge(inventoryPlayer, tileEntity)); + // TODO Auto-generated constructor stub + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + //String name = "Forge"; + + //this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + //this.fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 8, this.ySize - 96 + 2, 4210752); + + } + + @Override + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + GL11.glColor4f(1F, 1F, 1F, 1F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/FluidBucket.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/FluidBucket.java new file mode 100644 index 00000000..98dd63a0 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/FluidBucket.java @@ -0,0 +1,13 @@ +package com.kitsu.medievalcraft.item; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemBucket; + +public class FluidBucket extends ItemBucket { + + public FluidBucket(Block p_i45331_1_) { + super(p_i45331_1_); + + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/ItemClayFormBook.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/ItemClayFormBook.java new file mode 100644 index 00000000..8da8415a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/ItemClayFormBook.java @@ -0,0 +1,65 @@ +/*package com.kitsu.medievalcraft.item; + +import com.kitsu.medievalcraft.CustomTab; + +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemEditableBook; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagString; +import net.minecraft.world.World; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.common.registry.LanguageRegistry; + +public class ItemClayFormBook extends ItemEditableBook { + private String name = "clayFormBook"; + + public ItemClayFormBook() + { + super(); + setCreativeTab(CustomTab.MedievalCraftTab); + this.setUnlocalizedName(name); + LanguageRegistry.addName(this, name); + this.setTextureName(name); + this.setMaxStackSize(1); + + GameRegistry.registerItem(this, name); + } + + private NBTTagList putTableOfContents(NBTTagList bookTagList) { + // Create NBT data and add to the book + NBTTagCompound tag = new NBTTagCompound(); + + NBTTagList bookPages = new NBTTagList(); + + bookTagList.appendTag(new NBTTagString("Test Book")); + + return bookTagList; + } + + @Override + public void onUpdate(ItemStack itemStack, World world, Entity entity, int unknownInt, boolean unknownBool) + { + NBTTagList bookTagList = new NBTTagList(); + + bookTagList = putTableOfContents(bookTagList); + itemStack.setTagInfo("pages", bookTagList); + itemStack.setTagInfo("author", new NBTTagString("delpi")); + itemStack.setTagInfo("title", new NBTTagString("Cloth Uses")); + + } +} + +/* +@Override +public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player) { + //stack = new ItemStack(ModItems.clayFormBook); + player.displayGUIBook(stack); + + return super.onItemRightClick(stack, world, player); +}*/ \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/ModItems.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/ModItems.java new file mode 100644 index 00000000..a57c5d33 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/ModItems.java @@ -0,0 +1,1044 @@ +package com.kitsu.medievalcraft.item; + +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.EnumHelper; +import net.minecraftforge.fluids.FluidContainerRegistry; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.craftingtools.FireBow; +import com.kitsu.medievalcraft.item.craftingtools.FlintSaw; +import com.kitsu.medievalcraft.item.craftingtools.ForgeHammer; +import com.kitsu.medievalcraft.item.craftingtools.InlayHammer; +import com.kitsu.medievalcraft.item.craftingtools.IronSaw; +import com.kitsu.medievalcraft.item.craftingtools.LeatherShears; +import com.kitsu.medievalcraft.item.craftingtools.SlottedTongs; +import com.kitsu.medievalcraft.item.craftingtools.WorkBlade; +import com.kitsu.medievalcraft.item.craftingtools.filters.CoarseFilter; +import com.kitsu.medievalcraft.item.craftingtools.filters.FineFilter; +import com.kitsu.medievalcraft.item.craftingtools.filters.MediumFilter; +import com.kitsu.medievalcraft.item.forms.clay.CClayAxeForm; +import com.kitsu.medievalcraft.item.forms.clay.CClayBattleAxeForm; +import com.kitsu.medievalcraft.item.forms.clay.CClayDaggerForm; +import com.kitsu.medievalcraft.item.forms.clay.CClayHoeForm; +import com.kitsu.medievalcraft.item.forms.clay.CClayLongswordForm; +import com.kitsu.medievalcraft.item.forms.clay.CClayMaceHeadForm; +import com.kitsu.medievalcraft.item.forms.clay.CClayPickaxeForm; +import com.kitsu.medievalcraft.item.forms.clay.CClayRingForm; +import com.kitsu.medievalcraft.item.forms.clay.CClaySawBladeForm; +import com.kitsu.medievalcraft.item.forms.clay.CClaySharpTipForm; +import com.kitsu.medievalcraft.item.forms.clay.CClayShortSwordForm; +import com.kitsu.medievalcraft.item.forms.clay.CClaySpadeForm; +import com.kitsu.medievalcraft.item.forms.clay.CClaySpearTipForm; +import com.kitsu.medievalcraft.item.forms.iron.IronAxeForm; +import com.kitsu.medievalcraft.item.forms.iron.IronBattleAxeForm; +import com.kitsu.medievalcraft.item.forms.iron.IronDaggerForm; +import com.kitsu.medievalcraft.item.forms.iron.IronHandleForm; +import com.kitsu.medievalcraft.item.forms.iron.IronHoeForm; +import com.kitsu.medievalcraft.item.forms.iron.IronLongswordForm; +import com.kitsu.medievalcraft.item.forms.iron.IronMaceHeadForm; +import com.kitsu.medievalcraft.item.forms.iron.IronPickaxeForm; +import com.kitsu.medievalcraft.item.forms.iron.IronRingForm; +import com.kitsu.medievalcraft.item.forms.iron.IronSawBladeForm; +import com.kitsu.medievalcraft.item.forms.iron.IronSharpTipForm; +import com.kitsu.medievalcraft.item.forms.iron.IronShortSwordForm; +import com.kitsu.medievalcraft.item.forms.iron.IronSpadeForm; +import com.kitsu.medievalcraft.item.forms.iron.IronSpearTipForm; +import com.kitsu.medievalcraft.item.misc.ItemBark; +import com.kitsu.medievalcraft.item.misc.ItemSmallBarrelLid; +import com.kitsu.medievalcraft.item.misc.RawCuredLeather; +import com.kitsu.medievalcraft.item.throwable.ItemITSpear; +import com.kitsu.medievalcraft.item.throwable.ItemShit; +import com.kitsu.medievalcraft.item.throwable.ItemTester; +import com.kitsu.medievalcraft.item.tools.CustomIronHoe; +import com.kitsu.medievalcraft.item.tools.CustomIronLumberAxe; +import com.kitsu.medievalcraft.item.tools.CustomIronPick; +import com.kitsu.medievalcraft.item.tools.CustomIronShovel; +import com.kitsu.medievalcraft.item.weapon.ItemBattleAxe; +import com.kitsu.medievalcraft.item.weapon.ItemGladius; +import com.kitsu.medievalcraft.item.weapon.ItemHeavyMace; +import com.kitsu.medievalcraft.item.weapon.ItemIronShield; +import com.kitsu.medievalcraft.item.weapon.ItemIronTippedModelArrow; +//import com.kitsu.medievalcraft.item.weapon.ItemIronShield; +import com.kitsu.medievalcraft.item.weapon.ItemLongSword; +import com.kitsu.medievalcraft.item.weapon.ItemLongbow; +import com.kitsu.medievalcraft.item.weapon.ItemModelArrow; +import com.kitsu.medievalcraft.item.weapon.ItemWoodenShield; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + + +public final class ModItems { + + public static Item slottedTongs; + + + public static Item leatherStrap; + public static Item wovenLeather; + public static Item ironChunk; + public static Item hotironChunk; + public static Item ironRing; + + public static Item itemShit; + public static Item itemITSpear; + public static Item itemTester; + + public static Item linkedRings; + public static Item ironRingMesh; + public static Item chainMailPlate; + //public static Item hotIronIngot; + public static Item woodenPlate; + public static Item ironweaponHandle; + public static Item woodentoolHandle; + //public static Item refinedIngot; + public static Item charcoalLeafPellet; + public static Item unstrungLongbow; + public static Item itemBark; + public static Item quartzDust; + public static Item salt; + public static Item strippedSapling; + public static Item saplingRing; + public static Item limestoneDust; + public static Item leatherString; + public static Item flintKnapped; + //public static Item crucibleLid; + //public static Item emptyCrucible; + //public static Item clayFormBook; + //SPLIT BOARD + public static Item halfSplitBoard; + public static Item splitBoard; + public static Item acaciaSplitBoard; + public static Item birchSplitBoard; + public static Item darkSplitBoard; + public static Item jungleSplitBoard; + public static Item oakSplitBoard; + public static Item spruceSplitBoard; + public static Item itemSmallBarrelLid; + +//-----------------------FILTERS-----------------------// + public static Item coarseFilter; + public static Item mediumFilter; + public static Item fineFilter; + public static Item charcoalFilter; + public static Item woodPulp; + +//-----------------------LEATHER STUFF-----------------------// + public static Item rawCuredLeather; + public static Item soakedLeather; + public static Item slackedLeather; + public static Item scuddedLeather; + public static Item tannedLeather; + public static Item finishedLeather; + public static Item cutLeather; + +//-----------------------BUCKETS-----------------------// + public static Item filteredBucket; + public static Item tanninBucket; + public static Item slackBucket; + +//-----------------------WEAPONS AND SHIELDS-----------------------// + public static Item heavyMace; + public static Item longSword; + public static Item woodenShield; + public static Item ironShield; + public static Item battleAxe; + public static Item gladius; + +//-----------------------BOWS AND ARROWS-----------------------// + //public static Item testLongbow0; + //public static Item testLongbow1; + //public static Item testLongbow10; + public static Item longbow; + public static Item itemModelArrow; + public static Item itemIronTippedModelArrow; + + //-----------------------CRAFTING TOOLS-----------------------// + public static Item leatherShears; + public static Item flintSaw; + public static Item ironSaw; + public static Item forgeHammer; + public static Item inlayHammer; + public static Item fireBow; + public static Item workBlade; + + //-----------------------FINISHED TOOL COMBOS-----------------------/// + public static Item customIronPick; + public static Item customIronPick1; + public static Item customIronPick2; + public static Item customIronPick3; + public static Item customIronPick4; + public static Item customIronPickCase0; + public static Item customHandleIronPickCase0; + public static Item customIronPickCase1; + public static Item customIronPickCase2; + public static Item customIronPickCase3; + public static Item customIronPickCase4; + public static Item customIronPickCase5; + public static Item customIronPickCase6; + public static Item customIronPickCase7; + public static Item customIronPickCase8; + public static Item customIronPickCase9; + public static Item customIronPickCase10; + public static Item customIronPickCase11; + public static Item customIronPickCase12; + public static Item customIronPickCase13; + public static Item customIronPickCase14; + public static Item customIronPickCase15; + public static Item customIronPickCase16; + public static Item customIronPickCase17; + public static Item customIronPickCase18; + public static Item customIronPickCase19; + public static Item customIronPickCase20; + public static Item customIronPickCase21; + public static Item customIronPickCase22; + public static Item customIronPickCase23; + public static Item customIronPickCase24; + public static Item customIronPickCase25; + public static Item customIronPickCase26; + public static Item customIronPickCase27; + public static Item customIronPickCase28; + public static Item customIronPickCase29; + public static Item customIronPickCase30; + public static Item customIronPickCase31; + public static Item customIronPickCase32; + public static Item customIronPickCase33; + public static Item customIronPickCase34; + public static Item customIronPickCase35; + public static Item customIronPickCase36; + public static Item customIronPickCase37; + public static Item customIronPickCase38; + public static Item customIronPickCase39; + public static Item customIronPickCase40; + public static Item customIronPickCase41; + public static Item customIronPickCase42; + public static Item customIronPickCase43; + public static Item customIronPickCase44; + public static Item customIronPickCase45; + public static Item customIronPickCase46; + public static Item customIronPickCase47; + public static Item customIronPickCase48; + public static Item customIronPickCase49; + public static Item customIronPickCase50; + public static Item customIronPickCase51; + public static Item customIronPickCase52; + + + public static Item customStrongIronPick; + public static Item customWeakIronPick; + public static Item customHandleIronPick; + public static Item customHandleStrongIronPick; + + public static Item customIronShovel0; + public static Item customIronShovel1; + public static Item customIronShovel2; + public static Item customIronShovel3; + public static Item customIronShovelCase0; + public static Item customIronShovelCase00; + public static Item customIronShovelCase1; + public static Item customIronShovelCase2; + public static Item customIronShovelCase3; + public static Item customIronShovelCase4; + public static Item customIronShovelCase5; + public static Item customIronShovelCase6; + public static Item customIronShovelCase7; + public static Item customIronShovelCase8; + public static Item customIronShovelCase9; + public static Item customIronShovelCase10; + public static Item customIronShovelCase11; + public static Item customIronShovelCase12; + public static Item customIronShovelCase13; + public static Item customIronShovelCase14; + public static Item customIronShovelCase15; + public static Item customIronShovelCase16; + public static Item customIronShovelCase17; + public static Item customIronShovelCase18; + public static Item customIronShovelCase19; + public static Item customIronShovelCase20; + public static Item customIronShovelCase21; + public static Item customIronShovelCase22; + public static Item customIronShovelCase23; + public static Item customIronShovelCase24; + public static Item customIronShovelCase25; + public static Item customIronShovelCase26; + public static Item customIronShovelCase27; + public static Item customIronShovelCase28; + public static Item customIronShovelCase29; + public static Item customIronShovelCase30; + public static Item customIronShovelCase31; + public static Item customIronShovelCase32; + public static Item customIronShovelCase33; + public static Item customIronShovelCase34; + public static Item customIronShovelCase35; + public static Item customIronShovelCase36; + public static Item customIronShovelCase37; + public static Item customIronShovelCase38; + public static Item customIronShovelCase39; + public static Item customIronShovelCase40; + public static Item customIronShovelCase41; + public static Item customIronShovelCase42; + public static Item customIronShovelCase43; + public static Item customIronShovelCase44; + public static Item customIronShovelCase45; + public static Item customIronShovelCase46; + public static Item customIronShovelCase47; + public static Item customIronShovelCase48; + public static Item customIronShovelCase49; + public static Item customIronShovelCase50; + public static Item customIronShovelCase51; + public static Item customIronShovelCase52; + public static Item customIronShovelCase53; + + + + public static Item customIronShovel; + public static Item customStrongIronShovel; + public static Item customWeakIronShovel; + public static Item customHandleIronShovel; + public static Item customHandleStrongIronShovel; + + public static Item customIronLumberAxe0; + public static Item customIronLumberAxe1; + public static Item customIronLumberAxe2; + public static Item customIronLumberAxe3; + + public static Item customIronLumberAxe; + public static Item customStrongIronLumberAxe; + public static Item customWeakIronLumberAxe; + public static Item customHandleIronLumberAxe; + public static Item customHandleStrongIronLumberAxe; + + public static Item customIronHoe; + + //-----------------------CLAYFORMS-----------------------/// + public static Item pickaxeClayForm; + public static Item spadeHeadClayForm; + public static Item hoeHeadClayForm; + public static Item axeHeadClayForm; + public static Item longswordClayForm; + public static Item shortswordClayForm; + public static Item daggerClayForm; + //public static Item halberdClayForm; + public static Item speartipClayForm; + public static Item maceheadClayForm; + public static Item sharptipClayForm; + public static Item battleaxeClayForm; + public static Item ringClayForm; + //public static Item plateClayForm; + public static Item sawbladeClayForm; + + //-----------------------COOKED CLAYFORMS-----------------------// + public static Item cookedpickaxeClayForm; + public static Item cookedspadeHeadClayForm; + public static Item cookedhoeHeadClayForm; + public static Item cookedaxeHeadClayForm; + public static Item cookedlongswordClayForm; + public static Item cookedshortswordClayForm; + public static Item cookeddaggerClayForm; + //public static Item cookedhalberdClayForm; + public static Item cookedspeartipClayForm; + public static Item cookedmaceheadClayForm; + public static Item cookedsharptipClayForm; + public static Item cookedbattleaxeClayForm; + public static Item cookedringClayForm; + public static Item cookedplateClayForm; + public static Item cookedsawbladeClayForm; + + //-----------------------TOOLHEADS-----------------------// + public static Item ironpickaxeHead; + public static Item ironspadeHead; + public static Item ironhoeHead; + public static Item ironaxeHead; + public static Item ironlongswordBlade; + public static Item ironshortswordBlade; + public static Item irondaggerBlade; + public static Item ironHandleForm; + public static Item ironspearTip; + public static Item ironsharpTip; + public static Item ironmaceHead; + public static Item ironbattleaxeHead; + public static Item ironsquarePlate; + public static Item ironsawBlade; + + + //-----------------------IRON FORMS-----------------------// + public static Item ironPickaxeForm; + public static Item ironSpadForm; + public static Item ironHoeForm; + public static Item ironAxeForm; + public static Item ironLongswordForm; + public static Item ironShortSwordForm; + public static Item ironDaggerForm; + //public static Item ironHalberdForm; + public static Item ironSpearTipForm; + public static Item ironMaceHeadForm; + public static Item ironBattleAxeForm; + public static Item ironSharpTipForm; + public static Item ironSawBladeForm; + public static Item ironRingForm; + + //-----------------------PICK PARTS-----------------------// + public static Item silkTouchIronHead; + public static Item unbreakingOneHead; + public static Item unbreakingTwoHead; + public static Item efficOneHead; + public static Item efficTwoHead; + public static Item fortuneOneHead; + public static Item fortuneTwoHead; + public static Item unbreakingOneEfficOneHead; + public static Item unbreakingOneFortuneOneHead; + public static Item efficOneFortuneOneHead; + + //-----------------------SHOVEL PARTS-----------------------// + public static Item silkTouchIronSpade; + public static Item unbreakingOneSpade; + public static Item unbreakingTwoSpade; + public static Item efficOneSpade; + public static Item efficTwoSpade; + public static Item fortuneOneSpade; + public static Item fortuneTwoSpade; + public static Item unbreakingOneEfficOneSpade; + public static Item unbreakingOneFortuneOneSpade; + public static Item efficOneFortuneOneSpade; + + //-----------------------LUMBERAXE PARTS-----------------------// + public static Item silkTouchIronLumberAxe; + public static Item unbreakingOneLumberAxe; + public static Item unbreakingTwoLumberAxe; + public static Item efficOneLumberAxe; + public static Item efficTwoLumberAxe; + public static Item fortuneOneLumberAxe; + public static Item fortuneTwoLumberAxe; + public static Item unbreakingOneEfficOneLumberAxe; + public static Item unbreakingOneFortuneOneLumberAxe; + public static Item efficOneFortuneOneLumberAxe; + + //-----------------------ROD PARTS-----------------------// + public static Item fortuneWoodRod; + public static Item unbreakingWoodRod; + public static Item fortuneIronRod; + public static Item efficIronRod; + + //-----------------------TEMP CANNON PARTS-----------------------// + public static Item cannonBreach; + public static Item cannonBarrel; + + //EnumHelper.addToolMaterial(name, harvestLevel, maxUses, efficiency, damage, enchantability) + //Max stats a tool / weapon can have + //public static ToolMaterial TUTORIAL = EnumHelper.addToolMaterial("TUTORIAL", 3, 1000, 15.0F, 4.0F, 30); + /*Vanilla Tools + WOOD(0, 59, 2.0F, 0, 15), STONE(1, 131, 4.0F, 1, 5), IRON(2, 250, 6.0F, 2, 14), EMERALD(3, 1561, 8.0F, 3, 10), GOLD(0, 32, 12.0F, 0, 22);*/ + + public static ToolMaterial longswordmat = EnumHelper.addToolMaterial("LONGSWORD", 1, 350, 2.0F, 2.0F, 0); + public static ToolMaterial ironspearmat = EnumHelper.addToolMaterial("IRONSPEAR", 1, 350, 2.0F, 2.0F, 0); + public static ToolMaterial woodenshieldmat = EnumHelper.addToolMaterial("WOODENSHIELD", 0, 65, 2.0F, -3.5F, 0); + public static ToolMaterial ironshieldmat = EnumHelper.addToolMaterial("IRONSHIELD", 0, 500, 2.0F, -3.5F, 0); + public static ToolMaterial heavymacemat = EnumHelper.addToolMaterial("HEAVYMACE", 0, 350, 4.0F, -4.0F, 0); + public static ToolMaterial customIronPickmat = EnumHelper.addToolMaterial("WOODWEAK", 2, 250, 6.0F, 0, 0); + //public static ToolMaterial customIronPickDiamondTip = EnumHelper.addToolMaterial("DIAMONDTIP", 3, 500, 7.0F, 2, 0); + public static ToolMaterial customWoodNormal = EnumHelper.addToolMaterial("WOODNORMAL", 2, 350, 6.25F, 0, 0); + public static ToolMaterial customWoodStrong = EnumHelper.addToolMaterial("WOODSTRONG", 3, 500, 6.75F, 0, 0); + public static ToolMaterial customWoodWeak = EnumHelper.addToolMaterial("WOODWEAK", 2, 300, 6.0F, 0, 0); + public static ToolMaterial customIronToolRodStrong = EnumHelper.addToolMaterial("IRONSTRONG", 3, 350, 7.5F, 0, 0); + public static ToolMaterial customIronToolRodNormal = EnumHelper.addToolMaterial("IRONNORMAL", 2, 300, 7.5F, 0, 0); + public static ToolMaterial customIronToolRodWeak = EnumHelper.addToolMaterial("IRONWEAK", 2, 250, 7.5F, 0, 0); + + public static void init() { + + /* + tutorialItem = new Item().setUnlocalizedName("tutorialItem").setCreativeTab(CreativeTabs.tabMisc) + .setTextureName(Main.MODID + ":tutorialItem"); + GameRegistry.registerItem(tutorialItem, "tutorialItem"); + COPY TEMPLATE + xxx = new Item().setUnlocalizedName("xxx").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "xxx"); + GameRegistry.registerItem(xxx, "xxx"); + + + + //longbow = new Item().setUnlocalizedName("longbow").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":longbow"); + //GameRegistry.registerItem(longbow, "longbow"); + + //hotIronPlate = new Item().setUnlocalizedName("hotIronPlate").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":hotIronPlate"); + //GameRegistry.registerItem(hotIronPlate, "hotIronPlate"); + + salt = new Item().setUnlocalizedName("salt").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":salt"); + GameRegistry.registerItem(salt, "salt"); +*/ + //acaciaSplitBoard = new Item().setUnlocalizedName("acaciaSplitBoard").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":acaciaSplitBoard"); + //GameRegistry.registerItem(acaciaSplitBoard, "acaciaSplitBoard"); + + //birchSplitBoard = new Item().setUnlocalizedName("birchSplitBoard").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":birchSplitBoard"); + //GameRegistry.registerItem(birchSplitBoard, "birchSplitBoard"); + + //darkSplitBoard = new Item().setUnlocalizedName("darkSplitBoard").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":darkSplitBoard"); + //GameRegistry.registerItem(darkSplitBoard, "darkSplitBoard"); + + //jungleSplitBoard = new Item().setUnlocalizedName("jungleSplitBoard").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":jungleSplitBoard"); + //GameRegistry.registerItem(jungleSplitBoard, "jungleSplitBoard"); + + //oakSplitBoard = new Item().setUnlocalizedName("oakSplitBoard").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":oakSplitBoard"); + //GameRegistry.registerItem(oakSplitBoard, "oakSplitBoard"); + + //spruceSplitBoard = new Item().setUnlocalizedName("spruceSplitBoard").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":spruceSplitBoard"); + //GameRegistry.registerItem(spruceSplitBoard, "spruceSplitBoard"); + + //itemSmallBarrelLid = new Item().setUnlocalizedName("itemSmallBarrelLid").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":itemSmallBarrelLid"); + //GameRegistry.registerItem(itemSmallBarrelLid, "itemSmallBarrelLid"); + cannonBreach = new Item().setUnlocalizedName("cannonBreach").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":cannonBreach"); + GameRegistry.registerItem(cannonBreach, "cannonBreach"); + + cannonBarrel = new Item().setUnlocalizedName("cannonBarrel").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":cannonBarrel"); + GameRegistry.registerItem(cannonBarrel, "cannonBarrel"); + + woodPulp = new Item().setUnlocalizedName("woodPulp").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":woodPulp"); + GameRegistry.registerItem(woodPulp, "woodPulp"); + + halfSplitBoard = new Item().setUnlocalizedName("halfSplitBoard").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":halfSplitBoard"); + GameRegistry.registerItem(halfSplitBoard, "halfSplitBoard"); + + splitBoard = new Item().setUnlocalizedName("splitBoard").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":splitBoard"); + GameRegistry.registerItem(splitBoard, "splitBoard"); + + finishedLeather = new Item().setUnlocalizedName("finishedLeather").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":finishedLeather"); + GameRegistry.registerItem(finishedLeather, "finishedLeather"); + + cutLeather = new Item().setUnlocalizedName("cutLeather").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":cutLeather"); + GameRegistry.registerItem(cutLeather, "cutLeather"); + + tannedLeather = new Item().setUnlocalizedName("tannedLeather").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":tannedLeather"); + GameRegistry.registerItem(tannedLeather, "tannedLeather"); + + scuddedLeather = new Item().setUnlocalizedName("scuddedLeather").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":scuddedLeather"); + GameRegistry.registerItem(scuddedLeather, "scuddedLeather"); + + slackedLeather = new Item().setUnlocalizedName("slackedLeather").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":slackedLeather"); + GameRegistry.registerItem(slackedLeather, "slackedLeather"); + + soakedLeather = new Item().setUnlocalizedName("soakedLeather").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":soakedLeather"); + GameRegistry.registerItem(soakedLeather, "soakedLeather"); + + //rawCuredLeather = new Item().setUnlocalizedName("rawCuredLeather").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":rawCuredLeather"); + //GameRegistry.registerItem(rawCuredLeather, "rawCuredLeather"); + + strippedSapling = new Item().setUnlocalizedName("strippedSapling").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":strippedSapling"); + GameRegistry.registerItem(strippedSapling, "strippedSapling"); + + saplingRing = new Item().setUnlocalizedName("saplingRing").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":saplingRing"); + GameRegistry.registerItem(saplingRing, "saplingRing"); + + quartzDust = new Item().setUnlocalizedName("quartzDust").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":quartzDust"); + GameRegistry.registerItem(quartzDust, "quartzDust"); + + salt = new Item().setUnlocalizedName("salt").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":salt"); + GameRegistry.registerItem(salt, "salt"); + + limestoneDust = new Item().setUnlocalizedName("limestoneDust").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":limestoneDust"); + GameRegistry.registerItem(limestoneDust, "limestoneDust"); + + charcoalLeafPellet = new Item().setUnlocalizedName("charcoalLeafPellet").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":charcoalLeafPellet"); + GameRegistry.registerItem(charcoalLeafPellet, "charcoalLeafPellet"); + + unstrungLongbow = new Item().setUnlocalizedName("unstrungLongbow").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":unstrungLongbow"); + GameRegistry.registerItem(unstrungLongbow, "unstrungLongbow"); + + leatherString = new Item().setUnlocalizedName("leatherString").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":leatherString"); + GameRegistry.registerItem(leatherString, "leatherString"); + + //refinedIngot = new Item().setUnlocalizedName("refinedIngot").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":refinedIngot"); + //GameRegistry.registerItem(refinedIngot, "refinedIngot"); + + //coarseFilter = new Item().setUnlocalizedName("coarseFilter").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":coarseFilter").setMaxStackSize(1).setMaxDamage(300); + //GameRegistry.registerItem(coarseFilter, "coarseFilter"); + //mediumFilter = new Item().setUnlocalizedName("mediumFilter").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":mediumFilter").setMaxStackSize(1).setMaxDamage(300); + //GameRegistry.registerItem(mediumFilter, "mediumFilter"); + //fineFilter = new Item().setUnlocalizedName("fineFilter").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":fineFilter").setMaxStackSize(1).setMaxDamage(300); + //GameRegistry.registerItem(fineFilter, "fineFilter"); + + leatherStrap = new Item().setUnlocalizedName("leatherStrap").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":leatherStrap"); + GameRegistry.registerItem(leatherStrap, "leatherStrap"); + + wovenLeather = new Item().setUnlocalizedName("wovenLeather").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":wovenLeather"); + GameRegistry.registerItem(wovenLeather, "wovenLeather"); + + ironChunk = new Item().setUnlocalizedName("ironChunk").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":ironChunk"); + GameRegistry.registerItem(ironChunk, "ironChunk"); + + hotironChunk = new Item().setUnlocalizedName("hotironChunk").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":hotironChunk"); + GameRegistry.registerItem(hotironChunk, "hotironChunk"); + + ironRing = new Item().setUnlocalizedName("ironRing").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":ironRing").setMaxStackSize(16); + GameRegistry.registerItem(ironRing, "ironRing"); + + linkedRings = new Item().setUnlocalizedName("linkedRings").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":linkedRings").setMaxStackSize(1); + GameRegistry.registerItem(linkedRings, "linkedRings"); + + ironRingMesh = new Item().setUnlocalizedName("ironRingMesh").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":ironRingMesh"); + GameRegistry.registerItem(ironRingMesh, "ironRingMesh"); + + //hotIronIngot = new Item().setUnlocalizedName("hotIronIngot").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":hotIronIngot"); + //GameRegistry.registerItem(hotIronIngot, "hotIronIngot"); + + ironweaponHandle = new Item().setUnlocalizedName("ironweaponHandle").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":ironweaponHandle"); + GameRegistry.registerItem(ironweaponHandle, "ironweaponHandle"); + + woodenPlate = new Item().setUnlocalizedName("woodenPlate").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":woodenPlate"); + GameRegistry.registerItem(woodenPlate, "woodenPlate"); + + woodentoolHandle = new Item().setUnlocalizedName("woodentoolHandle").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":woodentoolHandle"); + GameRegistry.registerItem(woodentoolHandle, "woodentoolHandle"); + + flintKnapped = new Item().setUnlocalizedName("flintKnapped").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":flintKnapped"); + GameRegistry.registerItem(flintKnapped, "flintKnapped"); + + //-----------------------CLAY FORMS-----------------------// + pickaxeClayForm = new Item().setUnlocalizedName("pickaxeClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "pickaxeClayForm"); + GameRegistry.registerItem(pickaxeClayForm, "pickaxeClayForm"); + + spadeHeadClayForm = new Item().setUnlocalizedName("spadeHeadClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "spadeHeadClayForm"); + GameRegistry.registerItem(spadeHeadClayForm, "spadeHeadClayForm"); + + hoeHeadClayForm = new Item().setUnlocalizedName("hoeHeadClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "hoeHeadClayForm"); + GameRegistry.registerItem(hoeHeadClayForm, "hoeHeadClayForm"); + + axeHeadClayForm = new Item().setUnlocalizedName("axeHeadClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "axeHeadClayForm"); + GameRegistry.registerItem(axeHeadClayForm, "axeHeadClayForm"); + + longswordClayForm = new Item().setUnlocalizedName("longswordClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "longswordClayForm"); + GameRegistry.registerItem(longswordClayForm, "longswordClayForm"); + + shortswordClayForm = new Item().setUnlocalizedName("shortswordClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "shortswordClayForm"); + GameRegistry.registerItem(shortswordClayForm, "shortswordClayForm"); + + daggerClayForm = new Item().setUnlocalizedName("daggerClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "daggerClayForm"); + GameRegistry.registerItem(daggerClayForm, "daggerClayForm"); + + //halberdClayForm = new Item().setUnlocalizedName("halberdClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "halberdClayForm"); + //GameRegistry.registerItem(halberdClayForm, "halberdClayForm"); + + speartipClayForm = new Item().setUnlocalizedName("speartipClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "speartipClayForm"); + GameRegistry.registerItem(speartipClayForm, "speartipClayForm"); + + maceheadClayForm = new Item().setUnlocalizedName("maceheadClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "maceheadClayForm"); + GameRegistry.registerItem(maceheadClayForm, "maceheadClayForm"); + + sharptipClayForm = new Item().setUnlocalizedName("sharptipClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "sharptipClayForm"); + GameRegistry.registerItem(sharptipClayForm, "sharptipClayForm"); + + battleaxeClayForm = new Item().setUnlocalizedName("battleaxeClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "battleaxeClayForm"); + GameRegistry.registerItem(battleaxeClayForm, "battleaxeClayForm"); + + ringClayForm = new Item().setUnlocalizedName("ringClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ringClayForm"); + GameRegistry.registerItem(ringClayForm, "ringClayForm"); + + //plateClayForm = new Item().setUnlocalizedName("plateClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "plateClayForm"); + //GameRegistry.registerItem(plateClayForm, "plateClayForm"); + + sawbladeClayForm = new Item().setUnlocalizedName("sawbladeClayForm").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "sawbladeClayForm"); + GameRegistry.registerItem(sawbladeClayForm, "sawbladeClayForm"); + + + + //-----------------------COOKED CLAY FORMS-----------------------// + cookedpickaxeClayForm = new CClayPickaxeForm("cookedpickaxeClayForm", cookedpickaxeClayForm); + cookedspadeHeadClayForm = new CClaySpadeForm("cookedspadeHeadClayForm", cookedspadeHeadClayForm); + cookedhoeHeadClayForm = new CClayHoeForm("cookedhoeHeadClayForm", cookedhoeHeadClayForm); + cookedaxeHeadClayForm = new CClayAxeForm("cookedaxeHeadClayForm", cookedaxeHeadClayForm); + cookedlongswordClayForm = new CClayLongswordForm("cookedlongswordClayForm", cookedlongswordClayForm); + cookedshortswordClayForm = new CClayShortSwordForm("cookedshortswordClayForm", cookedshortswordClayForm); + cookeddaggerClayForm = new CClayDaggerForm("cookeddaggerClayForm", cookeddaggerClayForm); + cookedspeartipClayForm = new CClaySpearTipForm("cookedspeartipClayForm", cookedspeartipClayForm); + cookedmaceheadClayForm = new CClayMaceHeadForm("cookedmaceheadClayForm", cookedmaceheadClayForm); + cookedsharptipClayForm = new CClaySharpTipForm("cookedsharptipClayForm", cookedsharptipClayForm); + cookedbattleaxeClayForm = new CClayBattleAxeForm("cookedbattleaxeClayForm", cookedbattleaxeClayForm); + cookedringClayForm = new CClayRingForm("cookedringClayForm", cookedringClayForm); + cookedsawbladeClayForm = new CClaySawBladeForm("cookedsawbladeClayForm", cookedsawbladeClayForm); + + //-----------------------IRON PARTS-----------------------// + ironpickaxeHead = new Item().setUnlocalizedName("ironpickaxeHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironpickaxeHead").setMaxStackSize(64); + GameRegistry.registerItem(ironpickaxeHead, "ironpickaxeHead"); + + ironspadeHead = new Item().setUnlocalizedName("ironspadeHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironspadeHead").setMaxStackSize(64); + GameRegistry.registerItem(ironspadeHead, "ironspadeHead"); + + ironhoeHead = new Item().setUnlocalizedName("ironhoeHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironhoeHead").setMaxStackSize(64); + GameRegistry.registerItem(ironhoeHead, "ironhoeHead"); + + ironaxeHead = new Item().setUnlocalizedName("ironaxeHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironaxeHead").setMaxStackSize(64); + GameRegistry.registerItem(ironaxeHead, "ironaxeHead"); + + ironlongswordBlade = new Item().setUnlocalizedName("ironlongswordBlade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironlongswordBlade").setMaxStackSize(64); + GameRegistry.registerItem(ironlongswordBlade, "ironlongswordBlade"); + + ironshortswordBlade = new Item().setUnlocalizedName("ironshortswordBlade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironshortswordBlade").setMaxStackSize(64); + GameRegistry.registerItem(ironshortswordBlade, "ironshortswordBlade"); + + irondaggerBlade = new Item().setUnlocalizedName("irondaggerBlade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "irondaggerBlade").setMaxStackSize(64); + GameRegistry.registerItem(irondaggerBlade, "irondaggerBlade"); + + //ironhalberdHead = new Item().setUnlocalizedName("ironhalberdHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironhalberdHead"); + //GameRegistry.registerItem(ironhalberdHead, "ironhalberdHead"); + + ironspearTip = new Item().setUnlocalizedName("ironspearTip").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironspearTip").setMaxStackSize(64); + GameRegistry.registerItem(ironspearTip, "ironspearTip"); + + ironsharpTip = new Item().setUnlocalizedName("ironsharpTip").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironsharpTip").setMaxStackSize(64); + GameRegistry.registerItem(ironsharpTip, "ironsharpTip"); + + ironmaceHead = new Item().setUnlocalizedName("ironmaceHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironmaceHead").setMaxStackSize(64); + GameRegistry.registerItem(ironmaceHead, "ironmaceHead"); + + ironbattleaxeHead = new Item().setUnlocalizedName("ironbattleaxeHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironbattleaxeHead").setMaxStackSize(64); + GameRegistry.registerItem(ironbattleaxeHead, "ironbattleaxeHead"); + + ironsquarePlate = new Item().setUnlocalizedName("ironsquarePlate").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironsquarePlate").setMaxStackSize(64); + GameRegistry.registerItem(ironsquarePlate, "ironsquarePlate"); + + ironsawBlade = new Item().setUnlocalizedName("ironsawBlade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "ironsawBlade").setMaxStackSize(64); + GameRegistry.registerItem(ironsawBlade, "ironsawBlade"); + + //-----------------------TOOL ROD PARTS-----------------------// + //FORTUNE WOOD ROD + fortuneWoodRod = new Item().setUnlocalizedName("fortuneWoodRod").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "fortuneWoodRod"); + GameRegistry.registerItem(fortuneWoodRod, "fortuneWoodRod"); + + //UNBREAKING WOOD ROD + unbreakingWoodRod = new Item().setUnlocalizedName("unbreakingWoodRod").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingWoodRod"); + GameRegistry.registerItem(unbreakingWoodRod, "unbreakingWoodRod"); + + //FORTUNE IRON ROD + fortuneIronRod = new Item().setUnlocalizedName("fortuneIronRod").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "fortuneIronRod"); + GameRegistry.registerItem(fortuneIronRod, "fortuneIronRod"); + + //EFFIC IRON ROD + efficIronRod = new Item().setUnlocalizedName("efficIronRod").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "efficIronRod"); + GameRegistry.registerItem(efficIronRod, "efficIronRod"); + + + //-----------------------ENCHANTED PICK HEAD PARTS-----------------------// + + silkTouchIronHead = new Item().setUnlocalizedName("silkTouchIronHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "silkTouchIronHead").setMaxStackSize(1); + GameRegistry.registerItem(silkTouchIronHead, "silkTouchIronHead"); + + unbreakingOneHead = new Item().setUnlocalizedName("unbreakingOneHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingOneHead").setMaxStackSize(1); + GameRegistry.registerItem(unbreakingOneHead, "unbreakingOneHead"); + + unbreakingTwoHead = new Item().setUnlocalizedName("unbreakingTwoHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingTwoHead").setMaxStackSize(1); + GameRegistry.registerItem(unbreakingTwoHead, "unbreakingTwoHead"); + + efficOneHead = new Item().setUnlocalizedName("efficOneHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "efficOneHead").setMaxStackSize(1); + GameRegistry.registerItem(efficOneHead, "efficOneHead"); + + efficTwoHead = new Item().setUnlocalizedName("efficTwoHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "efficTwoHead").setMaxStackSize(1); + GameRegistry.registerItem(efficTwoHead, "efficTwoHead"); + + fortuneOneHead = new Item().setUnlocalizedName("fortuneOneHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "fortuneOneHead").setMaxStackSize(1); + GameRegistry.registerItem(fortuneOneHead, "fortuneOneHead"); + + fortuneTwoHead = new Item().setUnlocalizedName("fortuneTwoHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "fortuneTwoHead").setMaxStackSize(1); + GameRegistry.registerItem(fortuneTwoHead, "fortuneTwoHead"); + + unbreakingOneEfficOneHead = new Item().setUnlocalizedName("unbreakingOneEfficOneHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingOneEfficOneHead").setMaxStackSize(1); + GameRegistry.registerItem(unbreakingOneEfficOneHead, "unbreakingOneEfficOneHead"); + + unbreakingOneFortuneOneHead = new Item().setUnlocalizedName("unbreakingOneFortuneOneHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingOneFortuneOneHead").setMaxStackSize(1); + GameRegistry.registerItem(unbreakingOneFortuneOneHead, "unbreakingOneFortuneOneHead"); + + efficOneFortuneOneHead = new Item().setUnlocalizedName("efficOneFortuneOneHead").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "efficOneFortuneOneHead").setMaxStackSize(1); + GameRegistry.registerItem(efficOneFortuneOneHead, "efficOneFortuneOneHead"); + + //-----------------------ENCHANTED SPADE PARTS-----------------------// + + silkTouchIronSpade = new Item().setUnlocalizedName("silkTouchIronSpade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "silkTouchIronSpade").setMaxStackSize(1); + GameRegistry.registerItem(silkTouchIronSpade, "silkTouchIronSpade"); + + unbreakingOneSpade = new Item().setUnlocalizedName("unbreakingOneSpade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingOneSpade").setMaxStackSize(1); + GameRegistry.registerItem(unbreakingOneSpade, "unbreakingOneSpade"); + + unbreakingTwoSpade = new Item().setUnlocalizedName("unbreakingTwoSpade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingTwoSpade").setMaxStackSize(1); + GameRegistry.registerItem(unbreakingTwoSpade, "unbreakingTwoSpade"); + + efficOneSpade = new Item().setUnlocalizedName("efficOneSpade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "efficOneSpade").setMaxStackSize(1); + GameRegistry.registerItem(efficOneSpade, "efficOneSpade"); + + efficTwoSpade = new Item().setUnlocalizedName("efficTwoSpade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "efficTwoSpade").setMaxStackSize(1); + GameRegistry.registerItem(efficTwoSpade, "efficTwoSpade"); + + fortuneOneSpade = new Item().setUnlocalizedName("fortuneOneSpade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "fortuneOneSpade").setMaxStackSize(1); + GameRegistry.registerItem(fortuneOneSpade, "fortuneOneSpade"); + + fortuneTwoSpade = new Item().setUnlocalizedName("fortuneTwoSpade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "fortuneTwoSpade").setMaxStackSize(1); + GameRegistry.registerItem(fortuneTwoSpade, "fortuneTwoSpade"); + + unbreakingOneEfficOneSpade = new Item().setUnlocalizedName("unbreakingOneEfficOneSpade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingOneEfficOneSpade").setMaxStackSize(1); + GameRegistry.registerItem(unbreakingOneEfficOneSpade, "unbreakingOneEfficOneSpade"); + + unbreakingOneFortuneOneSpade = new Item().setUnlocalizedName("unbreakingOneFortuneOneSpade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingOneFortuneOneSpade").setMaxStackSize(1); + GameRegistry.registerItem(unbreakingOneFortuneOneSpade, "unbreakingOneFortuneOneSpade"); + + efficOneFortuneOneSpade = new Item().setUnlocalizedName("efficOneFortuneOneSpade").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "efficOneFortuneOneSpade").setMaxStackSize(1); + GameRegistry.registerItem(efficOneFortuneOneSpade, "efficOneFortuneOneSpade"); + + //-----------------------ENCHANTED LUMBERAXE PARTS-----------------------// + + silkTouchIronLumberAxe = new Item().setUnlocalizedName("silkTouchIronLumberAxe").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "silkTouchIronLumberAxe").setMaxStackSize(1); + GameRegistry.registerItem(silkTouchIronLumberAxe, "silkTouchIronLumberAxe"); + + unbreakingOneLumberAxe = new Item().setUnlocalizedName("unbreakingOneLumberAxe").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingOneLumberAxe").setMaxStackSize(1); + GameRegistry.registerItem(unbreakingOneLumberAxe, "unbreakingOneLumberAxe"); + + unbreakingTwoLumberAxe = new Item().setUnlocalizedName("unbreakingTwoLumberAxe").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingTwoLumberAxe").setMaxStackSize(1); + GameRegistry.registerItem(unbreakingTwoLumberAxe, "unbreakingTwoLumberAxe"); + + efficOneLumberAxe = new Item().setUnlocalizedName("efficOneLumberAxe").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "efficOneLumberAxe").setMaxStackSize(1); + GameRegistry.registerItem(efficOneLumberAxe, "efficOneLumberAxe"); + + efficTwoLumberAxe = new Item().setUnlocalizedName("efficTwoLumberAxe").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "efficTwoLumberAxe").setMaxStackSize(1); + GameRegistry.registerItem(efficTwoLumberAxe, "efficTwoLumberAxe"); + + fortuneOneLumberAxe = new Item().setUnlocalizedName("fortuneOneLumberAxe").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "fortuneOneLumberAxe").setMaxStackSize(1); + GameRegistry.registerItem(fortuneOneLumberAxe, "fortuneOneLumberAxe"); + + fortuneTwoLumberAxe = new Item().setUnlocalizedName("fortuneTwoLumberAxe").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "fortuneTwoLumberAxe").setMaxStackSize(1); + GameRegistry.registerItem(fortuneTwoLumberAxe, "fortuneTwoLumberAxe"); + + unbreakingOneEfficOneLumberAxe = new Item().setUnlocalizedName("unbreakingOneEfficOneLumberAxe").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingOneEfficOneLumberAxe").setMaxStackSize(1); + GameRegistry.registerItem(unbreakingOneEfficOneLumberAxe, "unbreakingOneEfficOneLumberAxe"); + + unbreakingOneFortuneOneLumberAxe = new Item().setUnlocalizedName("unbreakingOneFortuneOneLumberAxe").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "unbreakingOneFortuneOneLumberAxe").setMaxStackSize(1); + GameRegistry.registerItem(unbreakingOneFortuneOneLumberAxe, "unbreakingOneFortuneOneLumberAxe"); + + efficOneFortuneOneLumberAxe = new Item().setUnlocalizedName("efficOneFortuneOneLumberAxe").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "efficOneFortuneOneLumberAxe").setMaxStackSize(1); + GameRegistry.registerItem(efficOneFortuneOneLumberAxe, "efficOneFortuneOneLumberAxe"); + + //BUCKETS + filteredBucket = new FluidBucket(ModBlocks.blockFilteredWater); + filteredBucket.setUnlocalizedName("filteredBucket").setContainerItem(Items.bucket).setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "filteredBucket"); + GameRegistry.registerItem(filteredBucket, "filteredBucket"); + FluidContainerRegistry.registerFluidContainer(ModBlocks.fluidFiltered, new ItemStack(filteredBucket), new ItemStack(Items.bucket)); + + tanninBucket = new FluidBucket(ModBlocks.blockTannin); + tanninBucket.setUnlocalizedName("tanninBucket").setContainerItem(Items.bucket).setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "tanninBucket"); + GameRegistry.registerItem(tanninBucket, "tanninBucket"); + FluidContainerRegistry.registerFluidContainer(ModBlocks.fluidTan, new ItemStack(tanninBucket), new ItemStack(Items.bucket)); + + slackBucket = new FluidBucket(ModBlocks.blockSlackedLime); + slackBucket.setUnlocalizedName("slackBucket").setContainerItem(Items.bucket).setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":" + "slackBucket"); + GameRegistry.registerItem(slackBucket, "slackBucket"); + FluidContainerRegistry.registerFluidContainer(ModBlocks.fluidSlackedLime, new ItemStack(slackBucket), new ItemStack(Items.bucket)); + + itemShit = new ItemShit(); + itemTester = new ItemTester(); + + itemModelArrow = new ItemModelArrow(); + itemIronTippedModelArrow = new ItemIronTippedModelArrow(); + itemITSpear = new ItemITSpear("itemITSpear", ironspearmat); + + itemBark= new ItemBark(); + itemSmallBarrelLid = new ItemSmallBarrelLid(); + + forgeHammer = new ForgeHammer(); + inlayHammer = new InlayHammer(); + workBlade = new WorkBlade(); + + slottedTongs = new SlottedTongs(); + //testLongbow0 = new ItemTestLongbow0(); + //testLongbow1 = new ItemTestLongbow1(); + //testLongbow10 = new ItemTestLongbow10(); + longbow = new ItemLongbow(); + + coarseFilter = new CoarseFilter(); + mediumFilter = new MediumFilter(); + fineFilter = new FineFilter(); + charcoalFilter = new Item().setUnlocalizedName("charcoalFilter").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":charcoalFilter"); + GameRegistry.registerItem(charcoalFilter, "charcoalFilter"); + + rawCuredLeather = new RawCuredLeather(); + fireBow = new FireBow(); + leatherShears = new LeatherShears(); + ironSaw = new IronSaw(); + flintSaw = new FlintSaw(); + + ironAxeForm = new IronAxeForm("ironAxeForm", ironAxeForm); + ironBattleAxeForm = new IronBattleAxeForm("ironBattleAxeForm", ironBattleAxeForm); + ironDaggerForm = new IronDaggerForm("ironDaggerForm", ironDaggerForm); + ironHandleForm = new IronHandleForm("ironHandleForm", ironHandleForm); + ironHoeForm = new IronHoeForm("ironHoeForm", ironHoeForm); + ironLongswordForm = new IronLongswordForm("ironLongswordForm", ironLongswordForm); + ironMaceHeadForm = new IronMaceHeadForm("ironMaceHeadForm", ironMaceHeadForm); + ironPickaxeForm = new IronPickaxeForm("ironPickaxeForm", ironPickaxeForm); + ironRingForm = new IronRingForm("ironRingForm", ironRingForm); + ironSawBladeForm = new IronSawBladeForm("ironSawBladeForm", ironSawBladeForm); + ironSharpTipForm = new IronSharpTipForm("ironSharpTipForm", ironSharpTipForm); + ironShortSwordForm = new IronShortSwordForm("ironShortSwordForm", ironShortSwordForm); + ironSpadForm = new IronSpadeForm("ironSpadeForm", ironSpadForm); + ironSpearTipForm = new IronSpearTipForm("ironSpearTipForm", ironSpearTipForm); + //clayFormBook = new ItemClayFormBook(); + + //-----------------------MATERIALS REGISTERY-----------------------// + + GameRegistry.registerItem(gladius = new ItemGladius("gladius", longswordmat), "gladius"); + GameRegistry.registerItem(longSword = new ItemLongSword("longSword", longswordmat), "longSword"); + GameRegistry.registerItem(woodenShield = new ItemWoodenShield("woodenShield", woodenshieldmat), "woodenShield"); + GameRegistry.registerItem(ironShield = new ItemIronShield("ironShield", ironshieldmat), "ironShield"); + //GameRegistry.registerItem(ironShield = new ItemIronShield("ironShield", ironshieldmat), "ironShield"); + + GameRegistry.registerItem(heavyMace = new ItemHeavyMace("heavyMace", heavymacemat), "heavyMace"); + GameRegistry.registerItem(battleAxe = new ItemBattleAxe("battleAxe", heavymacemat), "battleAxe"); + //PICKAXES + //Silk Touch + GameRegistry.registerItem(customIronPick1 = new CustomIronPick("customIronPick1", customWoodWeak), "customIronPick1"); + GameRegistry.registerItem(customIronPick2 = new CustomIronPick("customIronPick2", customWoodNormal), "customIronPick2"); + GameRegistry.registerItem(customIronPick3 = new CustomIronPick("customIronPick3", customIronToolRodWeak), "customIronPick3"); + GameRegistry.registerItem(customIronPick4 = new CustomIronPick("customIronPick4", customIronToolRodWeak), "customIronPick4"); + + //Pickaxe Casetypes + GameRegistry.registerItem(customIronPickCase0 = new CustomIronPick("customIronPickCase0", customWoodNormal), "customIronPickCase0"); + GameRegistry.registerItem(customHandleIronPickCase0 = new CustomIronPick("customHandleIronPickCase0", customIronToolRodNormal), "customHandleIronPickCase0"); + GameRegistry.registerItem(customIronPickCase1 = new CustomIronPick("customIronPickCase1", customWoodNormal), "customIronPickCase1"); + GameRegistry.registerItem(customIronPickCase2 = new CustomIronPick("customIronPickCase2", customWoodNormal), "customIronPickCase2"); + GameRegistry.registerItem(customIronPickCase3 = new CustomIronPick("customIronPickCase3", customIronToolRodNormal), "customIronPickCase3"); + GameRegistry.registerItem(customIronPickCase4 = new CustomIronPick("customIronPickCase4", customWoodStrong), "customIronPickCase4"); + GameRegistry.registerItem(customIronPickCase5 = new CustomIronPick("customIronPickCase5", customWoodWeak), "customIronPickCase5"); + GameRegistry.registerItem(customIronPickCase6 = new CustomIronPick("customIronPickCase6", customIronToolRodWeak), "customIronPickCase6"); + GameRegistry.registerItem(customIronPickCase7 = new CustomIronPick("customIronPickCase7", customWoodWeak), "customIronPickCase7"); + GameRegistry.registerItem(customIronPickCase8 = new CustomIronPick("customIronPickCase8", customWoodWeak), "customIronPickCase8"); + GameRegistry.registerItem(customIronPickCase9 = new CustomIronPick("customIronPickCase9", customIronToolRodWeak), "customIronPickCase9"); + GameRegistry.registerItem(customIronPickCase10 = new CustomIronPick("customIronPickCase10", customIronToolRodWeak), "customIronPickCase10"); + GameRegistry.registerItem(customIronPickCase11 = new CustomIronPick("customIronPickCase11", customWoodWeak), "customIronPickCase11"); + GameRegistry.registerItem(customIronPickCase12 = new CustomIronPick("customIronPickCase12", customIronToolRodWeak), "customIronPickCase12"); + GameRegistry.registerItem(customIronPickCase13 = new CustomIronPick("customIronPickCase13", customWoodNormal), "customIronPickCase13"); + GameRegistry.registerItem(customIronPickCase14 = new CustomIronPick("customIronPickCase14", customIronToolRodNormal), "customIronPickCase14"); + GameRegistry.registerItem(customIronPickCase15 = new CustomIronPick("customIronPickCase15", customWoodWeak), "customIronPickCase15"); + GameRegistry.registerItem(customIronPickCase16 = new CustomIronPick("customIronPickCase16", customIronToolRodWeak), "customIronPickCase16"); + GameRegistry.registerItem(customIronPickCase17 = new CustomIronPick("customIronPickCase17", customIronToolRodWeak), "customIronPickCase17"); + GameRegistry.registerItem(customIronPickCase18 = new CustomIronPick("customIronPickCase18", customIronToolRodWeak), "customIronPickCase18"); + GameRegistry.registerItem(customIronPickCase19 = new CustomIronPick("customIronPickCase19", customWoodNormal), "customIronPickCase19"); + GameRegistry.registerItem(customIronPickCase20 = new CustomIronPick("customIronPickCase20", customIronToolRodNormal), "customIronPickCase20"); + GameRegistry.registerItem(customIronPickCase21 = new CustomIronPick("customIronPickCase21", customIronToolRodNormal), "customIronPickCase21"); + GameRegistry.registerItem(customIronPickCase22 = new CustomIronPick("customIronPickCase22", customWoodNormal), "customIronPickCase22"); + GameRegistry.registerItem(customIronPickCase23 = new CustomIronPick("customIronPickCase23", customIronToolRodStrong), "customIronPickCase23"); + GameRegistry.registerItem(customIronPickCase24 = new CustomIronPick("customIronPickCase24", customIronToolRodStrong), "customIronPickCase24"); + GameRegistry.registerItem(customIronPickCase25 = new CustomIronPick("customIronPickCase25", customWoodNormal), "customIronPickCase25"); + GameRegistry.registerItem(customIronPickCase26 = new CustomIronPick("customIronPickCase26", customIronToolRodWeak), "customIronPickCase26"); + GameRegistry.registerItem(customIronPickCase27 = new CustomIronPick("customIronPickCase27", customWoodNormal), "customIronPickCase27"); + GameRegistry.registerItem(customIronPickCase28 = new CustomIronPick("customIronPickCase28", customIronToolRodWeak), "customIronPickCase28"); + GameRegistry.registerItem(customIronPickCase29 = new CustomIronPick("customIronPickCase29", customWoodNormal), "customIronPickCase29"); + GameRegistry.registerItem(customIronPickCase30 = new CustomIronPick("customIronPickCase30", customWoodWeak), "customIronPickCase30"); + GameRegistry.registerItem(customIronPickCase31 = new CustomIronPick("customIronPickCase31", customIronToolRodWeak), "customIronPickCase31"); + GameRegistry.registerItem(customIronPickCase32 = new CustomIronPick("customIronPickCase32", customWoodNormal), "customIronPickCase32"); + GameRegistry.registerItem(customIronPickCase33 = new CustomIronPick("customIronPickCase33", customWoodWeak), "customIronPickCase33"); + GameRegistry.registerItem(customIronPickCase34 = new CustomIronPick("customIronPickCase34", customIronToolRodWeak), "customIronPickCase34"); + GameRegistry.registerItem(customIronPickCase35 = new CustomIronPick("customIronPickCase35", customWoodWeak), "customIronPickCase35"); + GameRegistry.registerItem(customIronPickCase36 = new CustomIronPick("customIronPickCase36", customWoodWeak), "customIronPickCase36"); + GameRegistry.registerItem(customIronPickCase37 = new CustomIronPick("customIronPickCase37", customWoodNormal), "customIronPickCase37"); + GameRegistry.registerItem(customIronPickCase38 = new CustomIronPick("customIronPickCase38", customIronToolRodWeak), "customIronPickCase38"); + GameRegistry.registerItem(customIronPickCase39 = new CustomIronPick("customIronPickCase39", customIronToolRodWeak), "customIronPickCase39"); + GameRegistry.registerItem(customIronPickCase40 = new CustomIronPick("customIronPickCase40", customIronToolRodWeak), "customIronPickCase40"); + GameRegistry.registerItem(customIronPickCase41 = new CustomIronPick("customIronPickCase41", customWoodNormal), "customIronPickCase41"); + GameRegistry.registerItem(customIronPickCase42 = new CustomIronPick("customIronPickCase42", customIronToolRodNormal), "customIronPickCase42"); + GameRegistry.registerItem(customIronPickCase43 = new CustomIronPick("customIronPickCase43", customWoodNormal), "customIronPickCase43"); + GameRegistry.registerItem(customIronPickCase44 = new CustomIronPick("customIronPickCase44", customWoodWeak), "customIronPickCase44"); + GameRegistry.registerItem(customIronPickCase45 = new CustomIronPick("customIronPickCase45", customIronToolRodWeak), "customIronPickCase45"); + GameRegistry.registerItem(customIronPickCase46 = new CustomIronPick("customIronPickCase46", customIronToolRodWeak), "customIronPickCase46"); + GameRegistry.registerItem(customIronPickCase47 = new CustomIronPick("customIronPickCase47", customWoodNormal), "customIronPickCase47"); + GameRegistry.registerItem(customIronPickCase48 = new CustomIronPick("customIronPickCase48", customIronToolRodNormal), "customIronPickCase48"); + GameRegistry.registerItem(customIronPickCase49 = new CustomIronPick("customIronPickCase49", customWoodWeak), "customIronPickCase49"); + GameRegistry.registerItem(customIronPickCase50 = new CustomIronPick("customIronPickCase50", customIronToolRodWeak), "customIronPickCase50"); + GameRegistry.registerItem(customIronPickCase51 = new CustomIronPick("customIronPickCase51", customWoodNormal), "customIronPickCase51"); + GameRegistry.registerItem(customIronPickCase52 = new CustomIronPick("customIronPickCase52", customIronToolRodWeak), "customIronPickCase52"); + + + GameRegistry.registerItem(customIronPick = new CustomIronPick("customIronPick", customWoodNormal), "customIronPick"); + GameRegistry.registerItem(customStrongIronPick = new CustomIronPick("customStrongIronPick", customWoodStrong), "customStrongIronPick"); + GameRegistry.registerItem(customWeakIronPick = new CustomIronPick("customWeakIronPick", customWoodWeak), "customWeakIronPick"); + GameRegistry.registerItem(customHandleIronPick = new CustomIronPick("customHandleIronPick", customIronToolRodNormal), "customHandleIronPick"); + GameRegistry.registerItem(customHandleStrongIronPick = new CustomIronPick("customHandleStrongIronPick", customIronToolRodStrong), "customHandleStrongIronPick"); + + //SHOVELS + //SilkTouch Numbers + GameRegistry.registerItem(customIronShovel0 = new CustomIronShovel("customIronShovel0", customWoodWeak), "customIronShovel0"); + GameRegistry.registerItem(customIronShovel1 = new CustomIronShovel("customIronShovel1", customIronToolRodWeak), "customIronShovel1"); + GameRegistry.registerItem(customIronShovel2 = new CustomIronShovel("customIronShovel2", customWoodNormal), "customIronShovel2"); + GameRegistry.registerItem(customIronShovel3 = new CustomIronShovel("customIronShovel3", customIronToolRodWeak), "customIronShovel3"); + + GameRegistry.registerItem(customIronShovelCase0 = new CustomIronShovel("customIronShovelCase0", customWoodNormal), "customIronShovelCase0"); + GameRegistry.registerItem(customIronShovelCase00 = new CustomIronShovel("customIronShovelCase00", customIronToolRodNormal), "customIronShovelCase00"); + GameRegistry.registerItem(customIronShovelCase1 = new CustomIronShovel("customIronShovelCase1", customWoodNormal), "customIronShovelCase1"); + GameRegistry.registerItem(customIronShovelCase2 = new CustomIronShovel("customIronShovelCase2", customWoodNormal), "customIronShovelCase2"); + GameRegistry.registerItem(customIronShovelCase3 = new CustomIronShovel("customIronShovelCase3", customIronToolRodNormal), "customIronShovelCase3"); + GameRegistry.registerItem(customIronShovelCase4 = new CustomIronShovel("customIronShovelCase4", customWoodStrong), "customIronShovelCase4"); + GameRegistry.registerItem(customIronShovelCase5 = new CustomIronShovel("customIronShovelCase5", customWoodWeak), "customIronShovelCase5"); + GameRegistry.registerItem(customIronShovelCase6 = new CustomIronShovel("customIronShovelCase6", customIronToolRodWeak), "customIronShovelCase6"); + GameRegistry.registerItem(customIronShovelCase7 = new CustomIronShovel("customIronShovelCase7", customWoodWeak), "customIronShovelCase7"); + GameRegistry.registerItem(customIronShovelCase8 = new CustomIronShovel("customIronShovelCase8", customWoodWeak), "customIronShovelCase8"); + GameRegistry.registerItem(customIronShovelCase9 = new CustomIronShovel("customIronShovelCase9", customIronToolRodWeak), "customIronShovelCase9"); + GameRegistry.registerItem(customIronShovelCase10 = new CustomIronShovel("customIronShovelCase10", customIronToolRodWeak), "customIronShovelCase10"); + GameRegistry.registerItem(customIronShovelCase11 = new CustomIronShovel("customIronShovelCase11", customWoodWeak), "customIronShovelCase11"); + GameRegistry.registerItem(customIronShovelCase12 = new CustomIronShovel("customIronShovelCase12", customIronToolRodWeak), "customIronShovelCase12"); + GameRegistry.registerItem(customIronShovelCase13 = new CustomIronShovel("customIronShovelCase13", customWoodNormal), "customIronShovelCase13"); + GameRegistry.registerItem(customIronShovelCase14 = new CustomIronShovel("customIronShovelCase14", customIronToolRodNormal), "customIronShovelCase14"); + GameRegistry.registerItem(customIronShovelCase15 = new CustomIronShovel("customIronShovelCase15", customWoodWeak), "customIronShovelCase15"); + GameRegistry.registerItem(customIronShovelCase16 = new CustomIronShovel("customIronShovelCase16", customIronToolRodWeak), "customIronShovelCase16"); + GameRegistry.registerItem(customIronShovelCase17 = new CustomIronShovel("customIronShovelCase17", customIronToolRodWeak), "customIronShovelCase17"); + GameRegistry.registerItem(customIronShovelCase18 = new CustomIronShovel("customIronShovelCase18", customIronToolRodWeak), "customIronShovelCase18"); + GameRegistry.registerItem(customIronShovelCase19 = new CustomIronShovel("customIronShovelCase19", customWoodNormal), "customIronShovelCase19"); + GameRegistry.registerItem(customIronShovelCase20 = new CustomIronShovel("customIronShovelCase20", customIronToolRodNormal), "customIronShovelCase20"); + GameRegistry.registerItem(customIronShovelCase21 = new CustomIronShovel("customIronShovelCase21", customIronToolRodNormal), "customIronShovelCase21"); + GameRegistry.registerItem(customIronShovelCase22 = new CustomIronShovel("customIronShovelCase22", customWoodNormal), "customIronShovelCase22"); + GameRegistry.registerItem(customIronShovelCase23 = new CustomIronShovel("customIronShovelCase23", customIronToolRodStrong), "customIronShovelCase23"); + GameRegistry.registerItem(customIronShovelCase24 = new CustomIronShovel("customIronShovelCase24", customIronToolRodStrong), "customIronShovelCase24"); + GameRegistry.registerItem(customIronShovelCase25 = new CustomIronShovel("customIronShovelCase25", customWoodNormal), "customIronShovelCase25"); + GameRegistry.registerItem(customIronShovelCase26 = new CustomIronShovel("customIronShovelCase26", customIronToolRodWeak), "customIronShovelCase26"); + GameRegistry.registerItem(customIronShovelCase27 = new CustomIronShovel("customIronShovelCase27", customWoodNormal), "customIronShovelCase27"); + GameRegistry.registerItem(customIronShovelCase28 = new CustomIronShovel("customIronShovelCase28", customIronToolRodWeak), "customIronShovelCase28"); + GameRegistry.registerItem(customIronShovelCase29 = new CustomIronShovel("customIronShovelCase29", customWoodNormal), "customIronShovelCase29"); + GameRegistry.registerItem(customIronShovelCase30 = new CustomIronShovel("customIronShovelCase30", customWoodWeak), "customIronShovelCase30"); + GameRegistry.registerItem(customIronShovelCase31 = new CustomIronShovel("customIronShovelCase31", customIronToolRodWeak), "customIronShovelCase31"); + GameRegistry.registerItem(customIronShovelCase32 = new CustomIronShovel("customIronShovelCase32", customWoodNormal), "customIronShovelCase32"); + GameRegistry.registerItem(customIronShovelCase33 = new CustomIronShovel("customIronShovelCase33", customWoodWeak), "customIronShovelCase33"); + GameRegistry.registerItem(customIronShovelCase34 = new CustomIronShovel("customIronShovelCase34", customIronToolRodWeak), "customIronShovelCase34"); + GameRegistry.registerItem(customIronShovelCase35 = new CustomIronShovel("customIronShovelCase35", customWoodWeak), "customIronShovelCase35"); + GameRegistry.registerItem(customIronShovelCase36 = new CustomIronShovel("customIronShovelCase36", customWoodWeak), "customIronShovelCase36"); + GameRegistry.registerItem(customIronShovelCase37 = new CustomIronShovel("customIronShovelCase37", customWoodNormal), "customIronShovelCase37"); + GameRegistry.registerItem(customIronShovelCase38 = new CustomIronShovel("customIronShovelCase38", customIronToolRodWeak), "customIronShovelCase38"); + GameRegistry.registerItem(customIronShovelCase39 = new CustomIronShovel("customIronShovelCase39", customIronToolRodWeak), "customIronShovelCase39"); + GameRegistry.registerItem(customIronShovelCase40 = new CustomIronShovel("customIronShovelCase40", customIronToolRodWeak), "customIronShovelCase40"); + GameRegistry.registerItem(customIronShovelCase41 = new CustomIronShovel("customIronShovelCase41", customWoodNormal), "customIronShovelCase41"); + GameRegistry.registerItem(customIronShovelCase42 = new CustomIronShovel("customIronShovelCase42", customIronToolRodNormal), "customIronShovelCase42"); + GameRegistry.registerItem(customIronShovelCase43 = new CustomIronShovel("customIronShovelCase43", customWoodNormal), "customIronShovelCase43"); + GameRegistry.registerItem(customIronShovelCase44 = new CustomIronShovel("customIronShovelCase44", customWoodWeak), "customIronShovelCase44"); + GameRegistry.registerItem(customIronShovelCase45 = new CustomIronShovel("customIronShovelCase45", customIronToolRodWeak), "customIronShovelCase45"); + GameRegistry.registerItem(customIronShovelCase46 = new CustomIronShovel("customIronShovelCase46", customIronToolRodWeak), "customIronShovelCase46"); + GameRegistry.registerItem(customIronShovelCase47 = new CustomIronShovel("customIronShovelCase47", customWoodNormal), "customIronShovelCase47"); + GameRegistry.registerItem(customIronShovelCase48 = new CustomIronShovel("customIronShovelCase48", customIronToolRodNormal), "customIronShovelCase48"); + GameRegistry.registerItem(customIronShovelCase49 = new CustomIronShovel("customIronShovelCase49", customWoodWeak), "customIronShovelCase49"); + GameRegistry.registerItem(customIronShovelCase50 = new CustomIronShovel("customIronShovelCase50", customIronToolRodWeak), "customIronShovelCase50"); + GameRegistry.registerItem(customIronShovelCase51 = new CustomIronShovel("customIronShovelCase51", customWoodNormal), "customIronShovelCase51"); + GameRegistry.registerItem(customIronShovelCase52 = new CustomIronShovel("customIronShovelCase52", customIronToolRodWeak), "customIronShovelCase52"); + + GameRegistry.registerItem(customIronShovel = new CustomIronShovel("customIronShovel", customWoodNormal), "customIronShovel"); + GameRegistry.registerItem(customStrongIronShovel = new CustomIronShovel("customStrongIronShovel", customWoodStrong), "customStrongIronShovel"); + GameRegistry.registerItem(customWeakIronShovel = new CustomIronShovel("customWeakIronShovel", customWoodWeak), "customWeakIronShovel"); + GameRegistry.registerItem(customHandleIronShovel = new CustomIronShovel("customHandleIronShovel", customIronToolRodNormal), "customHandleIronShovel"); + GameRegistry.registerItem(customHandleStrongIronShovel = new CustomIronShovel("customHandleStrongIronShovel", customIronToolRodStrong), "customHandleStrongIronShovel"); + + //LUMBERAXE + //Silk Touch + GameRegistry.registerItem(customIronLumberAxe0 = new CustomIronLumberAxe("customIronLumberAxe0", customWoodWeak), "customIronLumberAxe0"); + GameRegistry.registerItem(customIronLumberAxe1 = new CustomIronLumberAxe("customIronLumberAxe1", customWoodNormal), "customIronLumberAxe1"); + GameRegistry.registerItem(customIronLumberAxe2 = new CustomIronLumberAxe("customIronLumberAxe2", customIronToolRodWeak), "customIronLumberAxe2"); + GameRegistry.registerItem(customIronLumberAxe3 = new CustomIronLumberAxe("customIronLumberAxe3", customIronToolRodWeak), "customIronLumberAxe3"); + + GameRegistry.registerItem(customIronLumberAxe = new CustomIronLumberAxe("customIronLumberAxe", customWoodNormal), "customIronLumberAxe"); + GameRegistry.registerItem(customStrongIronLumberAxe = new CustomIronLumberAxe("customStrongIronLumberAxe", customWoodStrong), "customStrongIronLumberAxe"); + GameRegistry.registerItem(customWeakIronLumberAxe = new CustomIronLumberAxe("customWeakIronLumberAxe", customWoodWeak), "customWeakIronLumberAxe"); + GameRegistry.registerItem(customHandleIronLumberAxe = new CustomIronLumberAxe("customHandleIronLumberAxe", customIronToolRodNormal), "customHandleIronLumberAxe"); + GameRegistry.registerItem(customHandleStrongIronLumberAxe = new CustomIronLumberAxe("customHandleStrongIronLumberAxe", customIronToolRodStrong), "customHandleStrongIronLumberAxe"); + + GameRegistry.registerItem(customIronHoe = new CustomIronHoe("customIronHoe", customWoodNormal), "customIronHoe"); + + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/TongsDamageTable.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/TongsDamageTable.java new file mode 100644 index 00000000..520d5466 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/TongsDamageTable.java @@ -0,0 +1,44 @@ +package com.kitsu.medievalcraft.item; + +import java.util.Hashtable; + +import com.kitsu.medievalcraft.block.ModBlocks; + +import net.minecraft.block.Block; +import net.minecraft.item.Item; + +public class TongsDamageTable { + +public static final Hashtable blockToStore = new Hashtable (){{ + + put(ModBlocks.crucibleIronOre, 1); + put(ModBlocks.crucibleIronIngot, 2); + put(ModBlocks.crucibleLapis, 3); + put(ModBlocks.crucibleRedstone, 4); + put(ModBlocks.crucibleWootz, 5); + put(ModBlocks.lapisIngot, 6); + put(ModBlocks.redstoneIngot, 7); + put(ModBlocks.damascus, 8); + put(ModBlocks.refinedIron, 9); + put(ModBlocks.ironPlate, 10); + + }}; + +public static final Hashtable blockToGet = new Hashtable (){{ + + put(1, ModBlocks.crucibleIronOre); + put(2, ModBlocks.crucibleIronIngot); + put(3, ModBlocks.crucibleLapis); + put(4, ModBlocks.crucibleRedstone); + put(5, ModBlocks.crucibleWootz); + put(6, ModBlocks.lapisIngot); + put(7, ModBlocks.redstoneIngot); + put(8, ModBlocks.damascus); + put(9, ModBlocks.refinedIron); + put(10, ModBlocks.ironPlate); + //put(11, ModBlocks.hotDamascusIngot); + //put(12, ModBlocks.hotIronPlate); + //put(13, ModBlocks.hotLapisIngot); + //put(14, ModBlocks.hotRedstoneIngot); + }}; +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/FireBow.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/FireBow.java new file mode 100644 index 00000000..9ba8abfe --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/FireBow.java @@ -0,0 +1,87 @@ +package com.kitsu.medievalcraft.item.craftingtools; + +import java.util.Random; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + + +public class FireBow extends Item { + + private String name = "fireBow"; + private Item item; + Random rand = new Random(); + + public FireBow() { + + setMaxStackSize(1); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(100); + setNoRepair(); + + item = this; + + GameRegistry.registerItem(this, name); + + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_){ + if(!world.isRemote){ + if(rand.nextInt(5) == 0){ + world.setBlock(x, y + 1, z , Blocks.fire); + stack.damageItem(1, player); + //player.worldObj.playSoundAtEntity(player, Main.MODID + ":anvilhammer", 1.0F, 1.0F); + /*for(int i=0; i < player.worldObj.playerEntities.size(); i++){ + EntityPlayer test = (EntityPlayer) player.worldObj.playerEntities.get(i); + Vec3 vecTest = Vec3.createVectorHelper(test.posX, test.posY, test.posZ); + Vec3 vecPlayer = Vec3.createVectorHelper(player.posX, player.posY, player.posZ); + if(vecPlayer.distanceTo(vecTest)>10f && vecPlayer.distanceTo(vecTest)<100f){ + test.worldObj.playSoundAtEntity(test, Main.MODID + ":anvilhammer", 1.0F, 1.0F); + } + }*/ + } + } + return true; + } + + @Override + public int getItemEnchantability () { + return 0; + + } + + @Override + public boolean getIsRepairable(ItemStack item, ItemStack repair){ + return Items.stick == repair.getItem() ? true : false; + } + + @Override + public boolean doesContainerItemLeaveCraftingGrid(ItemStack itemstack) { + return false; + } + + @Override + public Item getContainerItem() + { + item.setDamage(new ItemStack(item), +1); + return item; + } + +} + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/FlintSaw.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/FlintSaw.java new file mode 100644 index 00000000..5ab6cd25 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/FlintSaw.java @@ -0,0 +1,43 @@ +package com.kitsu.medievalcraft.item.craftingtools; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class FlintSaw extends Item { + private String name = "flintSaw"; + private Item item; + +public FlintSaw() { + + setMaxStackSize(1); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(128); + setNoRepair(); + item = this; + GameRegistry.registerItem(this, name); + } + + @Override + public boolean doesContainerItemLeaveCraftingGrid(ItemStack itemstack) { + return false; + } + + @Override + public Item getContainerItem() + { + item.setDamage(new ItemStack(item), +1); + return item; + } + + public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_) + { + return false; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/ForgeHammer.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/ForgeHammer.java new file mode 100644 index 00000000..6e075818 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/ForgeHammer.java @@ -0,0 +1,343 @@ +package com.kitsu.medievalcraft.item.craftingtools; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.block.ingots.IngotBase; +import com.kitsu.medievalcraft.crafting.ForgeAnvilCrafting; +import com.kitsu.medievalcraft.crafting.TestForgeCrafting; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.item.forms.clay.ClayForms; +import com.kitsu.medievalcraft.item.forms.iron.IronForms; +import com.kitsu.medievalcraft.packethandle.forgeHammerParticles.MsgPacket; +import com.kitsu.medievalcraft.packethandle.forgeHammerParticles.MsgPacketLocX; +import com.kitsu.medievalcraft.packethandle.forgeHammerParticles.MsgPacketLocY; +import com.kitsu.medievalcraft.packethandle.forgeHammerParticles.MsgPacketLocZ; +import com.kitsu.medievalcraft.tileents.ingots.TileIngotBase; +import com.kitsu.medievalcraft.tileents.ingots.TileIronPlate; +import com.kitsu.medievalcraft.tileents.ingots.TileMyIronIngot; +import com.kitsu.medievalcraft.tileents.machine.TileEntityAnvilForge; +import com.kitsu.medievalcraft.util.AnvilUtil; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + + +public class ForgeHammer extends Item implements AnvilUtil{ + + private String name = "forgeHammer"; + private Item item; + //private Block test; + private int hit, key, blockKey, keys; + public static boolean forgeHammerLeftClick; + TileMyIronIngot tileRefIngot; + TileIronPlate tilePlate; + Random rand; + private ItemStack stackGive; + + public ForgeHammer() { + + setMaxStackSize(1); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(500); + setNoRepair(); + + item = this; + GameRegistry.registerItem(this, name); + } + + private Block blockToRun(Block block) { + + if(block == TestForgeCrafting.blockToCook.get(0)){ + blockKey = 0; + return TestForgeCrafting.blockToCook.get(0); + } else + if(block == TestForgeCrafting.blockToCook.get(3)){ + blockKey = 3; + return TestForgeCrafting.blockToCook.get(3); + } else + if(block == TestForgeCrafting.blockToCook.get(6)){ + blockKey = 6; + return TestForgeCrafting.blockToCook.get(6); + } else return block = Blocks.air; + } + + private void onClick(Block block, Block blockSub, World world, int x, int y, int z, EntityPlayer p, ItemStack stack, Random rand){ + //System.out.println("Layer 1"); + if(block == ModBlocks.refinedIron){ + tileRefIngot = (TileMyIronIngot) world.getTileEntity(x, y, z); + } + if(block == ModBlocks.ironPlate){ + tilePlate = (TileIronPlate) world.getTileEntity(x, y, z); + } + if((blockSub == ModBlocks.forgeAnvil)&&(p.isSwingInProgress == false)){ + + TileEntityAnvilForge tileEnt = (TileEntityAnvilForge) world.getTileEntity(x, y-1, z); + if((block instanceof IngotBase)&&(block==ModBlocks.refinedIron)){ + TileIngotBase tile = (TileIngotBase) world.getTileEntity(x, y, z); + + if(tileEnt.getStackInSlot(0)==null){ + p.worldObj.playSoundAtEntity(p, Main.MODID + ":anvilhammer", 1.0F, 1.0F); + Main.sNet.sendToAll(new MsgPacket(true)); + Main.sNet.sendToAll(new MsgPacketLocX(x)); + Main.sNet.sendToAll(new MsgPacketLocY(y)); + Main.sNet.sendToAll(new MsgPacketLocZ(z)); + tile.hits++; + stack.damageItem(1, p); + if(tile.hits >= 4 + rand.nextInt(3)){ + world.setBlock(x, y, z, ModBlocks.ironPlate, 0, 2); + } + } + if(tileEnt.getStackInSlot(0)!=null){ + if((tileEnt.getStackInSlot(0).getItem().equals(Items.flower_pot))||tileEnt.getStackInSlot(0).getItem().equals(Items.bucket)){ + p.worldObj.playSoundAtEntity(p, Main.MODID + ":anvilhammer", 1.0F, 1.0F); + Main.sNet.sendToAll(new MsgPacket(true)); + Main.sNet.sendToAll(new MsgPacketLocX(x)); + Main.sNet.sendToAll(new MsgPacketLocY(y)); + Main.sNet.sendToAll(new MsgPacketLocZ(z)); + tile.hits++; + stack.damageItem(1, p); + if(tile.hits >= 4 + rand.nextInt(3)){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + + if(tileEnt.getStackInSlot(0).getItem().equals(Items.flower_pot)){ + tileEnt.decrStackSize(0, 1); + } + world.spawnEntityInWorld(new EntityItem(world, x+0.5D, y+0.6D, z+0.5D, new ItemStack(Items.bucket, 1))); + } + } + + + //IRON FORMS + if(tileEnt.getStackInSlot(0)!=null){ + if((tileEnt.getStackInSlot(0).getItem() instanceof IronForms)&&(tile.hot==true)){ + //System.out.println("working"); + p.worldObj.playSoundAtEntity(p, Main.MODID + ":anvilhammer", 1.0F, 1.0F); + Main.sNet.sendToAll(new MsgPacket(true)); + Main.sNet.sendToAll(new MsgPacketLocX(x)); + Main.sNet.sendToAll(new MsgPacketLocY(y)); + Main.sNet.sendToAll(new MsgPacketLocZ(z)); + tile.hits++; + stack.damageItem(1, p); + if(tile.hits >= 4 + rand.nextInt(3)){ + Item itemGive = formsIronTest.get(tileEnt.getStackInSlot(0).getItem()); + if(itemGive == ModItems.irondaggerBlade){ + stackGive = new ItemStack (itemGive, 3); + } else if (itemGive == ModItems.ironweaponHandle){ + stackGive = new ItemStack (itemGive, 2); + } else if (itemGive == ModItems.ironRing){ + stackGive = new ItemStack (itemGive, 9); + } else if (itemGive == ModItems.ironsharpTip){ + stackGive = new ItemStack (itemGive, 9); + } else if (itemGive == ModItems.ironshortswordBlade){ + stackGive = new ItemStack (itemGive, 2); + } else { + stackGive = new ItemStack (itemGive, 1); + } + + System.out.println(stackGive); + world.spawnEntityInWorld(new EntityItem(world, x+0.5D, y+0.6D, z+0.5D, stackGive)); + //formsIron.get(tileEnt.getStackInSlot(0).getItem()) + System.out.println(formsIron.get(tileEnt.getStackInSlot(0).getItem())); + world.setBlock(x, y, z, Blocks.air, 0, 2); + if(tileEnt.getStackInSlot(0).getMaxStackSize() == 1){ + if(tileEnt.getStackInSlot(0).getItemDamage() == tileEnt.getStackInSlot(0).getMaxDamage()-1){ + tileEnt.decrStackSize(0, 1); + } + else {tileEnt.getStackInSlot(0).setItemDamage(tileEnt.getStackInSlot(0).getItemDamage()+1); + } + } + } + } + //CLAY FORMS + if((tileEnt.getStackInSlot(0).getItem() instanceof ClayForms)&&(tile.hot==true)){ + p.worldObj.playSoundAtEntity(p, Main.MODID + ":anvilhammer", 1.0F, 1.0F); + Main.sNet.sendToAll(new MsgPacket(true)); + Main.sNet.sendToAll(new MsgPacketLocX(x)); + Main.sNet.sendToAll(new MsgPacketLocY(y)); + Main.sNet.sendToAll(new MsgPacketLocZ(z)); + tile.hits++; + stack.damageItem(1, p); + if(tile.hits >= 4 + rand.nextInt(3)){ + world.spawnEntityInWorld(new EntityItem(world, x+0.5D, y+0.6D, z+0.5D, formsClay.get(tileEnt.getStackInSlot(0).getItem()))); + world.setBlock(x, y, z, Blocks.air, 0, 2); + tileEnt.decrStackSize(0, 1); + tile.markForUpdate(); + } + } + } + } + + if((block instanceof IngotBase)){ + //TileIngotBase tile = (TileIngotBase) world.getTileEntity(x, y, z); + //REPAIR TOOLS + + if(tileEnt.getStackInSlot(0) != null){ + Item checkItem = tileEnt.getStackInSlot(0).getItem(); + String displayName = tileEnt.getStackInSlot(0).getDisplayName(); + if(displayName.equals(getTool(tileEnt.getStackInSlot(0)))&&(tile.hot == true)&&(block==ModBlocks.refinedIron)){ + if(tileEnt.getStackInSlot(0).isItemDamaged() == true){ + p.worldObj.playSoundAtEntity(p, Main.MODID + ":anvilhammer", 1.0F, 1.0F); + Main.sNet.sendToAll(new MsgPacket(true)); + Main.sNet.sendToAll(new MsgPacketLocX(x)); + Main.sNet.sendToAll(new MsgPacketLocY(y)); + Main.sNet.sendToAll(new MsgPacketLocZ(z)); + stack.damageItem(1, p); + tile.hits++; + if(tile.hits >= 4 + rand.nextInt(3)){ + checkItem.setDamage(tileEnt.getStackInSlot(0), 0); + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + } + } + } + //MAKE FORMS + if((block instanceof IngotBase)&&(block==ModBlocks.ironPlate)){ + TileIngotBase tile = (TileIngotBase) world.getTileEntity(x, y, z); + if(tileEnt.getStackInSlot(0)!= null){ + if((makeForms.containsKey(tileEnt.getStackInSlot(0).getItem())==true)){ + if((tile.hot == true)&&(block==ModBlocks.ironPlate)){ + p.worldObj.playSoundAtEntity(p, Main.MODID + ":anvilhammer", 1.0F, 1.0F); + Main.sNet.sendToAll(new MsgPacket(true)); + Main.sNet.sendToAll(new MsgPacketLocX(x)); + Main.sNet.sendToAll(new MsgPacketLocY(y)); + Main.sNet.sendToAll(new MsgPacketLocZ(z)); + stack.damageItem(1, p); + tile.hits++; + if(tile.hits >= 4 + rand.nextInt(3)){ + world.spawnEntityInWorld(new EntityItem(world, x+0.5D, y+0.6D, z+0.5D, makeForms.get(tileEnt.getStackInSlot(0).getItem()))); + world.setBlock(x, y, z, Blocks.air, 0, 2); + tileEnt.decrStackSize(0, 1); + tile.markForUpdate(); + } + } + } + } + } + } + } + + /* + * ItemStack gladius0 = new ItemStack(ModItems.gladius); + gladius0.stackTagCompound = new NBTTagCompound(); + gladius0.stackTagCompound.setInteger("GLADIUSTEXTURE", 0); + */ + + public void giveItem(int a, World world, int x, int y, int z, EntityPlayer p){ + if(blockKey == 0){ + world.setBlock(x, y, z, Blocks.air, 0, 2); + p.worldObj.playSoundAtEntity(p, Main.MODID + ":anvilhammer", 1.0F, 1.0F); + world.spawnEntityInWorld(new EntityItem(world, x+0.5D, y+0.6D, z+0.5D, ForgeAnvilCrafting.itemToGive.get(key))); + } + if(blockKey == 3){ + Item item = ForgeAnvilCrafting.itemToCheck.get(key); + world.setBlock(x, y, z, Blocks.air, 0, 2); + p.worldObj.playSoundAtEntity(p, Main.MODID + ":anvilhammer", 1.0F, 1.0F); + world.spawnEntityInWorld(new EntityItem(world, x+0.5D, y+0.6D, z+0.5D, new ItemStack(item, 1, 0))); + } + + } + + private Item getItem(Item testItem){ + for(int i = 0; i < ForgeAnvilCrafting.itemToCheck.size(); i++){ + if(testItem == ForgeAnvilCrafting.itemToCheck.get(i)){ + key = i; + } + } + return ForgeAnvilCrafting.itemToCheck.get(key); + } + + private ItemStack getItem2(Item testItem){ + for(int i = 0; i < ForgeAnvilCrafting.itemToGive.size(); i++){ + if(testItem == ForgeAnvilCrafting.itemToGive.get(i).getItem()){ + key = i; + } + } + return ForgeAnvilCrafting.itemToGive.get(key); + } + + private Item getItem3(Item testItem){ + for(int i = 0; i < ForgeAnvilCrafting.itemToCheckClay.size(); i++){ + if(testItem == ForgeAnvilCrafting.itemToCheckClay.get(i)){ + key = i; + } + } + return ForgeAnvilCrafting.itemToCheckClay.get(key); + } + + + private String getTool(ItemStack s){ + for(int i = 0; i < ForgeAnvilCrafting.toolToRepair.size(); i++){ + if(s.getDisplayName().equals(ForgeAnvilCrafting.toolToRepair.get(i)) ){ + keys = i; + } + } + return ForgeAnvilCrafting.toolToRepair.get(keys); + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_){ + Block block = world.getBlock(x, y, z); + Block anvil = world.getBlock(x, y-1, z); + if(!world.isRemote){ + onClick(block, anvil, world, x, y, z, player, stack, world.rand); + } + return true; + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity player, int p_77663_4_, boolean using) { + + if(using == true){ + ((EntityLivingBase) player).addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 10, 4, true)); + } + } + + @Override + public int getItemEnchantability () { + return 0; + } + + @Override + public boolean getIsRepairable(ItemStack item, ItemStack repair) + { + return Items.iron_ingot == repair.getItem() ? true : false; + } + + @Override + public boolean doesContainerItemLeaveCraftingGrid(ItemStack itemstack) { + return false; + } + + @Override + public Item getContainerItem() + { + item.setDamage(new ItemStack(item), +1); + return item; + } + + + +} + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/InlayHammer.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/InlayHammer.java new file mode 100644 index 00000000..de80b0a9 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/InlayHammer.java @@ -0,0 +1,749 @@ +package com.kitsu.medievalcraft.item.craftingtools; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.tileents.ingots.TileEntityMyDiamond; +import com.kitsu.medievalcraft.tileents.ingots.TileEntityMyEmerald; +import com.kitsu.medievalcraft.tileents.ingots.TileLapisIngot; +import com.kitsu.medievalcraft.tileents.ingots.TileRedstoneIngot; +import com.kitsu.medievalcraft.tileents.machine.TileEntityAnvilForge; +import com.kitsu.medievalcraft.util.CustomTab; +import com.kitsu.medievalcraft.util.InlayTables; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class InlayHammer extends Item implements InlayTables{ + + private String name = "inlayHammer"; + //private Item item; + //private Block test; + private int keyUpgrade, keyCheck, keyCheckOne, hit; + public static boolean forgeHammerLeftClick; + TileEntityMyDiamond tileDiamond; + TileEntityMyEmerald tileEmerald; + TileRedstoneIngot tileRedstone; + TileLapisIngot tileLapis; + //TileEntityHotIronPlate tilePlate; + Random rand; + + public InlayHammer() { + + setMaxStackSize(1); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(500); + setNoRepair(); + + //item = this; + GameRegistry.registerItem(this, name); + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_){ + + Block block = world.getBlock(x, y, z); + Block anvil = world.getBlock(x, y-1, z); + if(!world.isRemote){ + onClick(block, anvil, world, x, y, z, player, stack, world.rand); + } + + return true; + } + /* + * ItemStack gladius0 = new ItemStack(ModItems.gladius); + gladius0.stackTagCompound = new NBTTagCompound(); + gladius0.stackTagCompound.setInteger("GLADIUSTEXTURE", 0);*/ + + private void onClick(Block block, Block blockSub, World world, int x, int y, int z, EntityPlayer player, ItemStack stack, Random rand){ + if(block == ModBlocks.myDiamond){ + tileDiamond = (TileEntityMyDiamond) world.getTileEntity(x, y, z); + } + if(block == ModBlocks.myEmerald){ + tileEmerald = (TileEntityMyEmerald) world.getTileEntity(x, y, z); + } + if(block == ModBlocks.redstoneIngot){ + tileRedstone = (TileRedstoneIngot) world.getTileEntity(x, y, z); + } + if(block == ModBlocks.lapisIngot){ + tileLapis = (TileLapisIngot) world.getTileEntity(x, y, z); + } + + if((block == blockToRun(block)) + && (blockSub == ModBlocks.forgeAnvil) + && (player.isSwingInProgress == false)){ + TileEntityAnvilForge tileAnvil = (TileEntityAnvilForge) world.getTileEntity(x, y-1, z); + //DIAMOND BLOCK + if(keyUpgrade == 0){ + + if(tileAnvil.getStackInSlot(0) != null){ + + player.worldObj.playSoundAtEntity(player, Main.MODID + ":anvilhammer", 1.0F, 2.25F); + + if(tileAnvil.getStackInSlot(0).getItem().equals(ModItems.woodentoolHandle)){ + if (rand.nextInt(2) == 0 ) { + tileDiamond.hits++; + } + if(tileDiamond.hits >= 8){ + tileDiamond.hits=0; + ItemStack resetStack = new ItemStack(ModItems.unbreakingWoodRod); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + + if(tileAnvil.getStackInSlot(0).isItemEqual(new ItemStack(oneUpgradeCheck(tileAnvil.getStackInSlot(0).getItem())))){ + if(keyCheckOne == 0){ + if (rand.nextInt(2) == 0 ) { + tileDiamond.hits++; + } + if(tileDiamond.hits >= 8){ + tileDiamond.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("unbreaking")){ + Item reset = InlayTables.twoUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 1){ + if (rand.nextInt(2) == 0 ) { + tileDiamond.hits++; + } + if(tileDiamond.hits >= 8){ + tileDiamond.hits = 0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("unbreaking")){ + Item reset = InlayTables.twoUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 2){ + if (rand.nextInt(2) == 0 ) { + tileDiamond.hits++; + } + if(tileDiamond.hits >= 8){ + tileDiamond.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("unbreaking")){ + Item reset = InlayTables.twoUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 3){ + if (rand.nextInt(2) == 0 ) { + tileDiamond.hits++; + } + if(tileDiamond.hits >= 8){ + tileDiamond.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("effic")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne-3); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 4){ + if (rand.nextInt(2) == 0 ) { + tileDiamond.hits++; + } + if(tileDiamond.hits >= 8){ + tileDiamond.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("effic")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne-3); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 5){ + if (rand.nextInt(2) == 0 ) { + tileDiamond.hits++; + } + if(tileDiamond.hits >= 8){ + tileDiamond.hits = 0; + + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("effic")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne-3); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 6){ + if (rand.nextInt(2) == 0 ) { + tileDiamond.hits++; + } + if(tileDiamond.hits >= 8){ + tileDiamond.hits=0; + + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("fortune")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 7){ + if (rand.nextInt(2) == 0 ) { + tileDiamond.hits++; + } + if(tileDiamond.hits >= 8){ + tileDiamond.hits=0; + + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("fortune")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 8){ + if (rand.nextInt(2) == 0 ) { + tileDiamond.hits++; + } + if(tileDiamond.hits >= 8){ + tileDiamond.hits=0; + + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("fortune")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + } + if (rand.nextInt(2) == 0 ) { + tileDiamond.hits++; + } + if(tileDiamond.hits >= 8){ + tileDiamond.hits=0; + //CHECKS IF ITS A ZERO UPGRADED TOOL HEAD AND RETURNS THE LVL 1 UNBREAKING VARIANT + if(tileAnvil.getStackInSlot(0).isItemEqual(new ItemStack(zeroUpgradeCheck(tileAnvil.getStackInSlot(0).getItem())))){ + Item reset = InlayTables.oneUpgrade.get(keyCheck); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + resetStack.stackTagCompound.setInteger("UPGRADES", 1); + resetStack.stackTagCompound.setString("ENCHANTTYPE", "unbreaking"); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + } + + if(keyUpgrade == 1){ + if(tileAnvil.getStackInSlot(0) != null){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":anvilhammer", 1.0F, 2.25F); + if (rand.nextInt(2) == 0 ) { + tileEmerald.hits++; + } + if(tileEmerald.hits >= 8){ + tileEmerald.hits = 0; + if(tileAnvil.getStackInSlot(0).isItemEqual(new ItemStack(zeroUpgradeCheck(tileAnvil.getStackInSlot(0).getItem())))){ + Item reset = InlayTables.silkTouch.get(keyCheck); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + } + + if(keyUpgrade == 2){ + if(tileAnvil.getStackInSlot(0) != null){ + if(tileLapis.hot==true){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":anvilhammer", 1.0F, 2.25F); + if(tileAnvil.getStackInSlot(0).getItem().equals(ModItems.woodentoolHandle)){ + if (rand.nextInt(2) == 0 ) { + tileLapis.hits++; + } + if(tileLapis.hits >= 8){ + tileLapis.hits=0; + ItemStack resetStack = new ItemStack(ModItems.fortuneWoodRod); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + if(tileAnvil.getStackInSlot(0).getItem().equals(ModItems.ironweaponHandle)){ + if (rand.nextInt(2) == 0 ) { + tileLapis.hits++; + } + if(tileLapis.hits >= 8){ + tileLapis.hits=0; + ItemStack resetStack = new ItemStack(ModItems.fortuneIronRod); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + + if(tileAnvil.getStackInSlot(0).isItemEqual(new ItemStack(oneUpgradeCheck(tileAnvil.getStackInSlot(0).getItem())))){ + //System.out.println("Lvl 1 second upgrade"); + //System.out.println(keyCheckOne); + //System.out.println(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE")); + //ItemStack tempStack = tileAnvil.getStackInSlot(0); + //keyCHeckone is oneUpgrade check + if(keyCheckOne == 0){ + if (rand.nextInt(2) == 0 ) { + tileLapis.hits++; + } + if(tileLapis.hits >= 8){ + tileLapis.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("unbreaking")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne+6); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 1){ + if (rand.nextInt(2) == 0 ) { + tileLapis.hits++; + } + if(tileLapis.hits >= 8){ + tileLapis.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("unbreaking")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne+6); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 2){ + if (rand.nextInt(2) == 0 ) { + tileLapis.hits++; + } + if(tileLapis.hits >= 8){ + tileLapis.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("unbreaking")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne+6); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 3){ + if (rand.nextInt(2) == 0 ) { + tileLapis.hits++; + } + if(tileLapis.hits >= 8){ + tileLapis.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("effic")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 4){ + if (rand.nextInt(2) == 0 ) { + tileLapis.hits++; + } + if(tileLapis.hits >= 8){ + tileLapis.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("effic")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 5){ + if (rand.nextInt(2) == 0 ) { + tileLapis.hits++; + } + if(tileLapis.hits >= 8){ + tileLapis.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("effic")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 6){ + if (rand.nextInt(2) == 0 ) { + tileLapis.hits++; + } + if(tileLapis.hits >= 8){ + tileLapis.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("fortune")){ + Item reset = InlayTables.twoUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 7){ + if (rand.nextInt(2) == 0 ) { + tileLapis.hits++; + } + if(tileLapis.hits >= 8){ + tileLapis.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("fortune")){ + Item reset = InlayTables.twoUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 8){ + if (rand.nextInt(2) == 0 ) { + tileLapis.hits++; + } + if(tileLapis.hits >= 8){ + tileLapis.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("fortune")){ + Item reset = InlayTables.twoUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + } + + if(tileAnvil.getStackInSlot(0).isItemEqual(new ItemStack(zeroUpgradeCheck(tileAnvil.getStackInSlot(0).getItem())))){ + if (rand.nextInt(2) == 0 ) { + tileLapis.hits++; + } + if(tileLapis.hits >= 8){ + tileLapis.hits=0; + Item reset = InlayTables.oneUpgrade.get(keyCheck+6); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + resetStack.stackTagCompound.setInteger("UPGRADES", 1); + resetStack.stackTagCompound.setString("ENCHANTTYPE", "fortune"); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + //System.out.println(resetStack.stackTagCompound.getString("ENCHANTTYPE")); + } + } + } + } + } + if(keyUpgrade == 3){ + if(tileAnvil.getStackInSlot(0) != null){ + if(tileRedstone.hot==true){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":anvilhammer", 1.0F, 2.25F); + + if(tileAnvil.getStackInSlot(0).getItem().equals(ModItems.ironweaponHandle)){ + if (rand.nextInt(2) == 0 ) { + tileRedstone.hits++; + } + if(tileRedstone.hits >= 8){ + tileRedstone.hits=0; + ItemStack resetStack = new ItemStack(ModItems.efficIronRod); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + + if(tileAnvil.getStackInSlot(0).isItemEqual(new ItemStack(oneUpgradeCheck(tileAnvil.getStackInSlot(0).getItem())))){ + //System.out.println("Lvl 1 second upgrade"); + //System.out.println(keyCheckOne); + //System.out.println(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE")); + //ItemStack tempStack = tileAnvil.getStackInSlot(0); + //keyCHeckone is oneUpgrade check + if(keyCheckOne == 0){ + if (rand.nextInt(2) == 0 ) { + tileRedstone.hits++; + } + if(tileRedstone.hits >= 8){ + tileRedstone.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("unbreaking")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 1){ + if (rand.nextInt(2) == 0 ) { + tileRedstone.hits++; + } + if(tileRedstone.hits >= 8){ + tileRedstone.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("unbreaking")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 2){ + if (rand.nextInt(2) == 0 ) { + tileRedstone.hits++; + } + if(tileRedstone.hits >= 8){ + tileRedstone.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("unbreaking")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 3){ + if (rand.nextInt(2) == 0 ) { + tileRedstone.hits++; + } + if(tileRedstone.hits >= 8){ + tileRedstone.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("effic")){ + Item reset = InlayTables.twoUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 4){ + if (rand.nextInt(2) == 0 ) { + tileRedstone.hits++; + } + if(tileRedstone.hits >= 8){ + tileRedstone.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("effic")){ + Item reset = InlayTables.twoUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 5){ + if (rand.nextInt(2) == 0 ) { + tileRedstone.hits++; + } + if(tileRedstone.hits >= 8){ + tileRedstone.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("effic")){ + Item reset = InlayTables.twoUpgrade.get(keyCheckOne); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 6){ + if (rand.nextInt(2) == 0 ) { + tileRedstone.hits++; + } + if(tileRedstone.hits >= 8){ + tileRedstone.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("fortune")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne-3); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 7){ + if (rand.nextInt(2) == 0 ) { + tileRedstone.hits++; + } + if(tileRedstone.hits >= 8){ + tileRedstone.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("fortune")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne-3); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + if(keyCheckOne == 8){ + if (rand.nextInt(2) == 0 ) { + tileRedstone.hits++; + } + if(tileRedstone.hits >= 8){ + tileRedstone.hits=0; + if(tileAnvil.getStackInSlot(0).stackTagCompound.getString("ENCHANTTYPE").equals("fortune")){ + Item reset = InlayTables.multiUpgrade.get(keyCheckOne-3); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + } + } + } + + } + + if(tileAnvil.getStackInSlot(0).isItemEqual(new ItemStack(zeroUpgradeCheck(tileAnvil.getStackInSlot(0).getItem())))){ + if (rand.nextInt(2) == 0 ) { + tileRedstone.hits++; + } + if(tileRedstone.hits >= 8){ + tileRedstone.hits=0; + Item reset = InlayTables.oneUpgrade.get(keyCheck+3); + ItemStack resetStack = new ItemStack(reset); + resetStack.stackTagCompound = new NBTTagCompound(); + resetStack.stackTagCompound.setInteger("UPGRADES", 1); + resetStack.stackTagCompound.setString("ENCHANTTYPE", "effic"); + tileAnvil.setInventorySlotContents(0, resetStack); + world.setBlock(x, y, z, Blocks.air, 0, 2); + stack.damageItem(1, player); + //System.out.println(resetStack.stackTagCompound.getString("ENCHANTTYPE")); + } + } + } + } + } + } + } + + private Block blockToRun(Block testBlock){ + for(int i = 0; i < InlayTables.upgrade.size(); i++){ + if(testBlock == InlayTables.upgrade.get(i)){ + keyUpgrade = i; + } + } + return InlayTables.upgrade.get(keyUpgrade); + } + + private Item zeroUpgradeCheck(Item testItem){ + for(int i = 0; i < InlayTables.zeroUpgrade.size(); i++){ + if(testItem == InlayTables.zeroUpgrade.get(i)){ + keyCheck = i; + } + } + return InlayTables.zeroUpgrade.get(keyCheck); + } + + private Item oneUpgradeCheck(Item testItem){ + for(int i = 0; i < InlayTables.oneUpgrade.size(); i++){ + if(testItem == InlayTables.oneUpgrade.get(i)){ + keyCheckOne = i; + } + } + return InlayTables.oneUpgrade.get(keyCheckOne); + } + + +} + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/IronSaw.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/IronSaw.java new file mode 100644 index 00000000..28ca5370 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/IronSaw.java @@ -0,0 +1,43 @@ +package com.kitsu.medievalcraft.item.craftingtools; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronSaw extends Item { + private String name = "ironSaw"; + private Item item; + +public IronSaw() { + + setMaxStackSize(1); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(512); + setNoRepair(); + item = this; + GameRegistry.registerItem(this, name); + } + + @Override + public boolean doesContainerItemLeaveCraftingGrid(ItemStack itemstack) { + return false; + } + + @Override + public Item getContainerItem() + { + item.setDamage(new ItemStack(item), +1); + return item; + } + + public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_) + { + return false; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/LeatherShears.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/LeatherShears.java new file mode 100644 index 00000000..49f4fcbc --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/LeatherShears.java @@ -0,0 +1,42 @@ +package com.kitsu.medievalcraft.item.craftingtools; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemShears; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class LeatherShears extends ItemShears { + + private String name = "leatherShears"; + private Item item; + +public LeatherShears() { + setMaxStackSize(1); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(64); + setNoRepair(); + item = this; + GameRegistry.registerItem(this, name); + } + + @Override + public boolean doesContainerItemLeaveCraftingGrid(ItemStack itemstack) { + return false; + } + + @Override + public Item getContainerItem(){ + item.setDamage(new ItemStack(item), +1); + return item; + } + + public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_){ + return false; + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/SlottedTongs.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/SlottedTongs.java new file mode 100644 index 00000000..8985b030 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/SlottedTongs.java @@ -0,0 +1,96 @@ +package com.kitsu.medievalcraft.item.craftingtools; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.crucible.CrucibleBase; +import com.kitsu.medievalcraft.block.ingots.IngotBase; +import com.kitsu.medievalcraft.item.TongsDamageTable; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleBase; +import com.kitsu.medievalcraft.tileents.ingots.TileIngotBase; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class SlottedTongs extends Item { + + private String name = "slottedTongs"; + private Item item; + + public SlottedTongs() { + + setMaxStackSize(1); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(100); + setNoRepair(); + item = this; + GameRegistry.registerItem(this, name); + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_){ + if(!world.isRemote){ + if((world.getBlock(x, y, z).getMaterial().isSolid()==true)){ + if((player.isSneaking())){ + if(stack.getItemDamage()!=0){ + if(world.getBlock(x, y+1, z).equals(Blocks.air)){ + world.setBlock(x, y+1, z, TongsDamageTable.blockToGet.get(stack.getItemDamage()), 0, 2); + if(world.getBlock(x, y+1, z) instanceof CrucibleBase){ + TileCrucibleBase tile = (TileCrucibleBase) world.getTileEntity(x, y+1, z); + tile.hot=true; + stack.setItemDamage(0); + } + if(world.getBlock(x, y+1, z) instanceof IngotBase){ + TileIngotBase tile = (TileIngotBase) world.getTileEntity(x, y+1, z); + tile.hot=true; + stack.setItemDamage(0); + } + } + } + } + } + if((world.getBlock(x, y, z) instanceof CrucibleBase) && (player.isSneaking())){ + TileCrucibleBase tile = (TileCrucibleBase) world.getTileEntity(x, y, z); + Block tempBlock = world.getBlock(x, y, z); + if(tile.hot==true){ + this.setDamage(stack, TongsDamageTable.blockToStore.get(tempBlock)); + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + if((world.getBlock(x, y, z) instanceof IngotBase) && (player.isSneaking())){ + TileIngotBase tile = (TileIngotBase) world.getTileEntity(x, y, z); + Block tempBlock = world.getBlock(x, y, z); + if(tile.hot==true){ + this.setDamage(stack, TongsDamageTable.blockToStore.get(tempBlock)); + world.setBlock(x, y, z, Blocks.air, 0, 2); + } + } + } + return true; + } + + @Override + public boolean doesContainerItemLeaveCraftingGrid(ItemStack itemstack) { + return false; + } + + @Override + public Item getContainerItem() + { + item.setDamage(new ItemStack(item), +1); + return item; + } + + public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_) + { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/WorkBlade.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/WorkBlade.java new file mode 100644 index 00000000..f10b6ac4 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/WorkBlade.java @@ -0,0 +1,213 @@ +package com.kitsu.medievalcraft.item.craftingtools; + +import java.util.Random; + +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; +//import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class WorkBlade extends Item { + + private String name = "workBlade"; + private Item item; + //private int[] locarray = new int[3]; + //private int hits; + //private boolean inUse; + Random rand; + + public WorkBlade() { + + setMaxStackSize(1); + setUnlocalizedName(name); + //setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(500); + setNoRepair(); + + item = this; + + GameRegistry.registerItem(this, name); + } + + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_){ + + if(!world.isRemote){ + getBark(world, x, y, z, player, stack); + makeLonbow(world, x, y, z, player, stack); + } + return true; + } + + private void getBark(World world, int x, int y, int z, EntityPlayer player, ItemStack stack){ + if(player.isSwingInProgress == false){ + if(world.getBlock(x, y, z).getUnlocalizedName().equals("tile.log")){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":scrapes1", 0.25F, 1.8F); + if(world.rand.nextInt(8)==1){ + if(world.getBlock(x, y, z).equals(Blocks.log)){ + //System.out.println("lvl5"); + int woodMeta = world.getBlockMetadata(x, y, z); + if(woodMeta == 0){ + world.setBlock(x, y, z, ModBlocks.cleanOak, 0, 2); + } + if(woodMeta == 4){ + world.setBlock(x, y, z, ModBlocks.cleanOak, 4, 2); + } + if(woodMeta == 8){ + world.setBlock(x, y, z, ModBlocks.cleanOak, 8, 2); + } + if(woodMeta == 1){ + world.setBlock(x, y, z, ModBlocks.cleanSpruce, 0, 2); + } + if(woodMeta == 5){ + world.setBlock(x, y, z, ModBlocks.cleanSpruce, 4, 2); + } + if(woodMeta == 9){ + world.setBlock(x, y, z, ModBlocks.cleanSpruce, 8, 2); + } + if(woodMeta == 2){ + world.setBlock(x, y, z, ModBlocks.cleanBirch, 0, 2); + } + if(woodMeta == 6){ + world.setBlock(x, y, z, ModBlocks.cleanBirch, 4, 2); + } + if(woodMeta == 10){ + world.setBlock(x, y, z, ModBlocks.cleanBirch, 8, 2); + } + if(woodMeta == 3){ + world.setBlock(x, y, z, ModBlocks.cleanJungle, 0, 2); + } + if(woodMeta == 7){ + world.setBlock(x, y, z, ModBlocks.cleanJungle, 4, 2); + } + if(woodMeta == 11){ + world.setBlock(x, y, z, ModBlocks.cleanJungle, 8, 2); + } + } + if(world.getBlock(x, y, z).equals(Blocks.log2)){ + //System.out.println("lvl6"); + int woodMeta = world.getBlockMetadata(x, y, z); + if(woodMeta == 0){ + world.setBlock(x, y, z, ModBlocks.cleanAcacia, 0, 2); + } + if(woodMeta == 4){ + world.setBlock(x, y, z, ModBlocks.cleanAcacia, 4, 2); + } + if(woodMeta == 8){ + world.setBlock(x, y, z, ModBlocks.cleanAcacia, 8, 2); + } + if(woodMeta == 1){ + world.setBlock(x, y, z, ModBlocks.cleanDarkOak, 0, 2); + } + if(woodMeta == 5){ + world.setBlock(x, y, z, ModBlocks.cleanDarkOak, 4, 2); + } + if(woodMeta == 9){ + world.setBlock(x, y, z, ModBlocks.cleanDarkOak, 8, 2); + } + } + + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModItems.itemBark, 5 + world.rand.nextInt(4), 0))); + } + } + } + } + + private void makeLonbow(World world, int x, int y, int z, EntityPlayer player, ItemStack stack){ + if(!world.isRemote){ + if((world.getBlock(x, y, z).equals(ModBlocks.jungleSplitLog))&&world.getBlock(x, y-1, z).equals(ModBlocks.jungleSplitLog)){ + player.worldObj.playSoundAtEntity(player, Main.MODID + ":scrapes1", 0.25F, 1.8F); + player.swingItem(); + if(world.rand.nextInt(10)==0){ + world.setBlockToAir(x, y, z); + world.setBlockToAir(x, y-1, z); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModItems.unstrungLongbow, 1, 0))); + } + } + } + } + + + /*@Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_){ + if(player.isSwingInProgress == false){ + if(!world.isRemote){ + if((world.getBlock(x, y, z).equals(Blocks.log)) && (world.getBlockMetadata(x, y, z)==3)){ + if((world.getBlock(x, y-1, z).equals(Blocks.log)) && (world.getBlockMetadata(x, y-1, z)==3)){ + if(world.getBlock(x, y+1, z).equals(Blocks.air)){ + + if((stack.stackTagCompound.getInteger("HITS") == 0) || (stack.stackTagCompound.getInteger("X") != x) || (stack.stackTagCompound.getInteger("Y") != y) || (stack.stackTagCompound.getInteger("Z") != z)){ + stack.stackTagCompound.setInteger("X", x); + stack.stackTagCompound.setInteger("Y", y); + stack.stackTagCompound.setInteger("Z", z); + stack.stackTagCompound.setInteger("HITS", 1); + } + if(stack.stackTagCompound.getInteger("HITS") > 0){ + if((stack.stackTagCompound.getInteger("X") == x) && (stack.stackTagCompound.getInteger("Y") == y) && (stack.stackTagCompound.getInteger("Z") == z)){ + if (world.rand.nextInt(2) == 0 ) { + stack.stackTagCompound.setInteger("HITS", stack.stackTagCompound.getInteger("HITS") + 1); + stack.stackTagCompound.setInteger("X", x); + stack.stackTagCompound.setInteger("Y", y); + stack.stackTagCompound.setInteger("Z", z); + stack.damageItem(1, player); + } + } + } + if(stack.stackTagCompound.getInteger("HITS") == 10){ + stack.stackTagCompound.setInteger("HITS", 0); + stack.stackTagCompound.setInteger("X", 0); + stack.stackTagCompound.setInteger("Y", 0); + stack.stackTagCompound.setInteger("Z", 0); + world.setBlock(x, y, z, Blocks.air, 0, 2); + world.setBlock(x, y-1, z, Blocks.air, 0, 2); + world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(ModItems.unstrungLongbow, 1, 0))); + } + } + } + } + } + } + + return true; + }*/ + + @Override + public int getItemEnchantability () { + return 0; + + } + + @Override + public boolean getIsRepairable(ItemStack item, ItemStack repair) + { + return Items.iron_ingot == repair.getItem() ? true : false; + } + + @Override + public boolean doesContainerItemLeaveCraftingGrid(ItemStack itemstack) { + return false; + } + + @Override + public Item getContainerItem() + { + item.setDamage(new ItemStack(item), +1); + return item; + } + +} + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/filters/CoarseFilter.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/filters/CoarseFilter.java new file mode 100644 index 00000000..3302ad2f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/filters/CoarseFilter.java @@ -0,0 +1,43 @@ +package com.kitsu.medievalcraft.item.craftingtools.filters; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class CoarseFilter extends Item { + private String name = "coarseFilter"; + private Item item; + + public CoarseFilter() { + + setMaxStackSize(1); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(300); + setNoRepair(); + item = this; + GameRegistry.registerItem(this, name); + } + + /*@Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_){ + + return true; + }*/ + + + + public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_) + { + return false; + } + + + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/filters/FineFilter.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/filters/FineFilter.java new file mode 100644 index 00000000..a8ba9b86 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/filters/FineFilter.java @@ -0,0 +1,33 @@ +package com.kitsu.medievalcraft.item.craftingtools.filters; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class FineFilter extends Item { + private String name = "fineFilter"; + private Item item; + +public FineFilter() { + + setMaxStackSize(1); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(300); + setNoRepair(); + item = this; + GameRegistry.registerItem(this, name); + } + + public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_) + { + return false; + } + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/filters/MediumFilter.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/filters/MediumFilter.java new file mode 100644 index 00000000..a5a6c752 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/craftingtools/filters/MediumFilter.java @@ -0,0 +1,33 @@ +package com.kitsu.medievalcraft.item.craftingtools.filters; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class MediumFilter extends Item { + private String name = "mediumFilter"; + private Item item; + +public MediumFilter() { + + setMaxStackSize(1); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(300); + setNoRepair(); + item = this; + GameRegistry.registerItem(this, name); + } + + public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_) + { + return false; + } + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayAxeForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayAxeForm.java new file mode 100644 index 00000000..40a00cf5 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayAxeForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClayAxeForm extends ClayForms{ + + public CClayAxeForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayBattleAxeForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayBattleAxeForm.java new file mode 100644 index 00000000..3a3d9bf7 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayBattleAxeForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClayBattleAxeForm extends ClayForms{ + + public CClayBattleAxeForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayDaggerForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayDaggerForm.java new file mode 100644 index 00000000..845338e8 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayDaggerForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClayDaggerForm extends ClayForms{ + + public CClayDaggerForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayHoeForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayHoeForm.java new file mode 100644 index 00000000..edb48b28 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayHoeForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClayHoeForm extends ClayForms{ + + public CClayHoeForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayLongswordForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayLongswordForm.java new file mode 100644 index 00000000..01373875 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayLongswordForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClayLongswordForm extends ClayForms{ + + public CClayLongswordForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayMaceHeadForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayMaceHeadForm.java new file mode 100644 index 00000000..d423cf6f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayMaceHeadForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClayMaceHeadForm extends ClayForms{ + + public CClayMaceHeadForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayPickaxeForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayPickaxeForm.java new file mode 100644 index 00000000..71037b02 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayPickaxeForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClayPickaxeForm extends ClayForms{ + + public CClayPickaxeForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayRingForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayRingForm.java new file mode 100644 index 00000000..e2555b59 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayRingForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClayRingForm extends ClayForms{ + + public CClayRingForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySawBladeForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySawBladeForm.java new file mode 100644 index 00000000..7da5004b --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySawBladeForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClaySawBladeForm extends ClayForms{ + + public CClaySawBladeForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySharpTipForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySharpTipForm.java new file mode 100644 index 00000000..06731252 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySharpTipForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClaySharpTipForm extends ClayForms{ + + public CClaySharpTipForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayShortSwordForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayShortSwordForm.java new file mode 100644 index 00000000..04791dfd --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClayShortSwordForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClayShortSwordForm extends ClayForms{ + + public CClayShortSwordForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySpadeForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySpadeForm.java new file mode 100644 index 00000000..a2ec3d70 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySpadeForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClaySpadeForm extends ClayForms{ + + public CClaySpadeForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySpearTipForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySpearTipForm.java new file mode 100644 index 00000000..6867276d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/CClaySpearTipForm.java @@ -0,0 +1,12 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; + +public class CClaySpearTipForm extends ClayForms{ + + public CClaySpearTipForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/ClayForms.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/ClayForms.java new file mode 100644 index 00000000..f6affc49 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/clay/ClayForms.java @@ -0,0 +1,23 @@ +package com.kitsu.medievalcraft.item.forms.clay; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public abstract class ClayForms extends Item { + + protected ClayForms(String name, Item item){ + setMaxStackSize(1); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setHasSubtypes(false); + item = this; + GameRegistry.registerItem(this, name); + + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronAxeForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronAxeForm.java new file mode 100644 index 00000000..5742fd57 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronAxeForm.java @@ -0,0 +1,17 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; +import com.kitsu.medievalcraft.item.ModItems; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronAxeForm extends IronForms { + + public IronAxeForm(String name, Item item) { + super(name, item); + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronBattleAxeForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronBattleAxeForm.java new file mode 100644 index 00000000..e73d0b89 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronBattleAxeForm.java @@ -0,0 +1,16 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronBattleAxeForm extends IronForms { + + public IronBattleAxeForm(String name, Item item) { + super(name, item); + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronDaggerForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronDaggerForm.java new file mode 100644 index 00000000..1a2171da --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronDaggerForm.java @@ -0,0 +1,18 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronDaggerForm extends IronForms { + + public IronDaggerForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronForms.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronForms.java new file mode 100644 index 00000000..343501aa --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronForms.java @@ -0,0 +1,40 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public abstract class IronForms extends Item { + + protected IronForms(String name, Item item){ + setMaxStackSize(1); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(64); + setNoRepair(); + item = this; + GameRegistry.registerItem(this, name); + } + + @Override + public boolean doesContainerItemLeaveCraftingGrid(ItemStack itemstack) { + return false; + } + + @Override + public Item getContainerItem() + { + this.setDamage(new ItemStack(this), +1); + return this; + } + + public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_) + { + return false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronHandleForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronHandleForm.java new file mode 100644 index 00000000..9c7d6648 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronHandleForm.java @@ -0,0 +1,18 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronHandleForm extends IronForms { + + public IronHandleForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronHoeForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronHoeForm.java new file mode 100644 index 00000000..d7ffeb65 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronHoeForm.java @@ -0,0 +1,18 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronHoeForm extends IronForms { + + public IronHoeForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronLongswordForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronLongswordForm.java new file mode 100644 index 00000000..3271a443 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronLongswordForm.java @@ -0,0 +1,18 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronLongswordForm extends IronForms { + + public IronLongswordForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronMaceHeadForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronMaceHeadForm.java new file mode 100644 index 00000000..a2a18dda --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronMaceHeadForm.java @@ -0,0 +1,17 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronMaceHeadForm extends IronForms { + + public IronMaceHeadForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronPickaxeForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronPickaxeForm.java new file mode 100644 index 00000000..9f038f0a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronPickaxeForm.java @@ -0,0 +1,17 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronPickaxeForm extends IronForms { + + public IronPickaxeForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronRingForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronRingForm.java new file mode 100644 index 00000000..0313f937 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronRingForm.java @@ -0,0 +1,17 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronRingForm extends IronForms { + + public IronRingForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSawBladeForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSawBladeForm.java new file mode 100644 index 00000000..3e2f12d5 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSawBladeForm.java @@ -0,0 +1,18 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronSawBladeForm extends IronForms { + + public IronSawBladeForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSharpTipForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSharpTipForm.java new file mode 100644 index 00000000..e8ad9976 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSharpTipForm.java @@ -0,0 +1,18 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronSharpTipForm extends IronForms { + + public IronSharpTipForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronShortSwordForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronShortSwordForm.java new file mode 100644 index 00000000..f0392d6e --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronShortSwordForm.java @@ -0,0 +1,17 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronShortSwordForm extends IronForms { + + public IronShortSwordForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSpadeForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSpadeForm.java new file mode 100644 index 00000000..9db021c4 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSpadeForm.java @@ -0,0 +1,19 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronSpadeForm extends IronForms { + + public IronSpadeForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSpearTipForm.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSpearTipForm.java new file mode 100644 index 00000000..1b930a8a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/forms/iron/IronSpearTipForm.java @@ -0,0 +1,17 @@ +package com.kitsu.medievalcraft.item.forms.iron; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class IronSpearTipForm extends IronForms { + + public IronSpearTipForm(String name, Item item) { + super(name, item); + // TODO Auto-generated constructor stub + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/CrucibleLid.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/CrucibleLid.java new file mode 100644 index 00000000..3de0280a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/CrucibleLid.java @@ -0,0 +1,25 @@ +package com.kitsu.medievalcraft.item.misc; + +import net.minecraft.item.Item; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class CrucibleLid extends Item { + + private String name = "crucibleLid"; + + public CrucibleLid () { + + super(); + + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + name); + GameRegistry.registerItem(this, name); + + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/ItemBark.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/ItemBark.java new file mode 100644 index 00000000..563c685d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/ItemBark.java @@ -0,0 +1,35 @@ +package com.kitsu.medievalcraft.item.misc; + +import net.minecraft.item.Item; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class ItemBark extends Item { + + private String name = "itemBark"; + + public ItemBark () { + + super(); + + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + GameRegistry.registerItem(this, name); + + } + + /*public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player){ + + int x = Minecraft.getMinecraft().objectMouseOver.blockX; + int y = Minecraft.getMinecraft().objectMouseOver.blockY; + int z = Minecraft.getMinecraft().objectMouseOver.blockZ; + System.out.println(world.getBlock(x, y, z)); + + return super.onItemRightClick(stack, world, player); + }*/ + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/ItemSmallBarrelLid.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/ItemSmallBarrelLid.java new file mode 100644 index 00000000..09770658 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/ItemSmallBarrelLid.java @@ -0,0 +1,43 @@ +package com.kitsu.medievalcraft.item.misc; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class ItemSmallBarrelLid extends Item { + + private String name = "itemSmallBarrelLid"; + + public ItemSmallBarrelLid () { + + super(); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + GameRegistry.registerItem(this, name); + + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_){ + + if((world.getBlock(x, y+1, z).equals(Blocks.air))&&(world.getBlock(x, y, z)!=ModBlocks.smallBarrelLid)){ + if(!world.isRemote){ + world.setBlock(x, y+1, z, ModBlocks.smallBarrelLid, 0, 2); + } + //System.out.println(world.getTileEntity(x, y+1, z)); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + return true; + } + return false; + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/RawCuredLeather.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/RawCuredLeather.java new file mode 100644 index 00000000..c593027a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/misc/RawCuredLeather.java @@ -0,0 +1,145 @@ +package com.kitsu.medievalcraft.item.misc; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.packethandle.curedLeather.MsgPacketCuredLeatherX; +import com.kitsu.medievalcraft.packethandle.curedLeather.MsgPacketCuredLeatherY; +import com.kitsu.medievalcraft.packethandle.curedLeather.MsgPacketCuredLeatherZ; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class RawCuredLeather extends Item { + + private String name = "rawCuredLeather"; + private boolean setWater; + private int x, y, z; + public static int serverX, serverY, serverZ; + + public RawCuredLeather () { + + super(); + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name).setMaxStackSize(1); + GameRegistry.registerItem(this, name); + + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + { + //stack.stackTagCompound = new NBTTagCompound(); + if(world.isRemote) { + + //System.out.println(player.rayTrace(3.0F, 1.0F).blockX); + //System.out.println(player.rayTrace(3.0F, 1.0F).sideHit); + //System.out.println(Minecraft.getMinecraft().objectMouseOver.typeOfHit); + //System.out.println(Minecraft.getMinecraft().objectMouseOver.sideHit); + + if(player.rayTrace(3.0F, 1.0F).typeOfHit.BLOCK.equals(player.rayTrace(3.0F, 1.0F).typeOfHit.BLOCK)){ + //System.out.println(Minecraft.getMinecraft().objectMouseOver.sideHit); + + if(player.rayTrace(3.0F, 1.0F).sideHit==1){ + x = player.rayTrace(3.0F, 1.0F).blockX; + y = player.rayTrace(3.0F, 1.0F).blockY+1; + z = player.rayTrace(3.0F, 1.0F).blockZ; + Main.sNet.sendToServer(new MsgPacketCuredLeatherX(x)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherY(y)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherZ(z)); + + } + if(player.rayTrace(3.0F, 1.0F).sideHit==2){ + x = player.rayTrace(3.0F, 1.0F).blockX; + y = player.rayTrace(3.0F, 1.0F).blockY; + z = player.rayTrace(3.0F, 1.0F).blockZ-1; + Main.sNet.sendToServer(new MsgPacketCuredLeatherX(x)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherY(y)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherZ(z)); + + } + if(player.rayTrace(3.0F, 1.0F).sideHit==3){ + x = player.rayTrace(3.0F, 1.0F).blockX; + y = player.rayTrace(3.0F, 1.0F).blockY; + z = player.rayTrace(3.0F, 1.0F).blockZ+1; + Main.sNet.sendToServer(new MsgPacketCuredLeatherX(x)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherY(y)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherZ(z)); + + } + if(player.rayTrace(3.0F, 1.0F).sideHit==4){ + x = player.rayTrace(3.0F, 1.0F).blockX-1; + y = player.rayTrace(3.0F, 1.0F).blockY; + z = player.rayTrace(3.0F, 1.0F).blockZ; + Main.sNet.sendToServer(new MsgPacketCuredLeatherX(x)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherY(y)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherZ(z)); + + } + if(player.rayTrace(3.0F, 1.0F).sideHit==5){ + x = player.rayTrace(3.0F, 1.0F).blockX+1; + y = player.rayTrace(3.0F, 1.0F).blockY; + z = player.rayTrace(3.0F, 1.0F).blockZ; + Main.sNet.sendToServer(new MsgPacketCuredLeatherX(x)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherY(y)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherZ(z)); + + } + if(player.rayTrace(3.0F, 1.0F).sideHit==0){ + x = player.rayTrace(3.0F, 1.0F).blockX; + y = player.rayTrace(3.0F, 1.0F).blockY-1; + z = player.rayTrace(3.0F, 1.0F).blockZ; +//Main.sNet.sendToAll(new MsgPacketLocZ(z)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherX(x)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherY(y)); + Main.sNet.sendToServer(new MsgPacketCuredLeatherZ(z)); + } + + } + //stack.stackTagCompound = new NBTTagCompound(); + //stack.stackTagCompound.setInteger("X", x); + //stack.stackTagCompound.setInteger("Y", y); + //stack.stackTagCompound.setInteger("Z", z); + + //System.out.println(stack.stackTagCompound.getInteger("X")); + //System.out.println(stack.stackTagCompound.getInteger("Y")); + //System.out.println(stack.stackTagCompound.getInteger("Z")); + } + if(!world.isRemote){ + //System.out.println(serverX + ":" + serverY + ":" + serverZ); + if(world.getBlock(serverX, serverY, serverZ).equals(ModBlocks.blockFilteredWater)){ + world.setBlock(serverX, serverY, serverZ, Blocks.water, 0, 2); + player.inventory.decrStackSize(player.inventory.currentItem, 1); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.soakedLeather, 1)); + player.inventoryContainer.detectAndSendChanges(); + } + } + + //System.out.println(stack.stackTagCompound.getBoolean("WATER")); + if(world.isRemote){ + if(world.getBlock(serverX, serverY, serverZ).equals(ModBlocks.blockFilteredWater)){ + //player.inventory.decrStackSize(player.inventory.currentItem, 1); + //player.inventory.addItemStackToInventory(new ItemStack(ModItems.soakedLeather, 1)); + } + } + + + + return super.onItemRightClick(stack, world, player); + } + + private void setToWater(World world, int x, int y, int z, EntityPlayer player){ + world.setBlock(x, y, z, Blocks.water, 0, 2); + + } + +} + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/throwable/ItemITSpear.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/throwable/ItemITSpear.java new file mode 100644 index 00000000..6e7b2f37 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/throwable/ItemITSpear.java @@ -0,0 +1,127 @@ +package com.kitsu.medievalcraft.item.throwable; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.entity.EntityITSpear; +import com.kitsu.medievalcraft.entity.EntityShit; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.player.ArrowLooseEvent; +import net.minecraftforge.event.entity.player.ArrowNockEvent; + +public class ItemITSpear extends ItemSword { + + private String name = "itemITSpear"; + + public ItemITSpear(String name, ToolMaterial mat) { + super(mat); + setUnlocalizedName(name); + setMaxStackSize(1); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(100); + GameRegistry.registerItem(this, name); + + } + + @Override + public EnumAction getItemUseAction(ItemStack stack) { + return EnumAction.bow; + } + + @Override + public int getMaxItemUseDuration(ItemStack p_77626_1_) { + return 72000; + } + + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + { + ArrowNockEvent event = new ArrowNockEvent(player, stack); + MinecraftForge.EVENT_BUS.post(event); + if (event.isCanceled()) + { + return event.result; + } + if (player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.itemITSpear)) + { + player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); + } + if(!world.isRemote){ + this.setMaxDamage(500); + } + return stack; + } + + public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) + { + if (!p_77615_2_.isRemote) + { + int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; + ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); + MinecraftForge.EVENT_BUS.post(event); + if (event.isCanceled()) + { + return; + } + j = event.charge; + //boolean flag = p_77615_3_.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; + if (p_77615_3_.inventory.hasItem(ModItems.itemITSpear)) + { + float f = (float)j / 20.0F; + f = (f * f + f * 2.0F) / 3.0F; + if ((double)f < 0.1D) + { + return; + } + if (f > 1.0F) + { + f = 1.0F; + } + EntityITSpear entityspear = new EntityITSpear(p_77615_2_, p_77615_3_, f * 2.0F); + if (f == 1.0F) + { + entityspear.setIsCritical(true); + } + /*int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, p_77615_1_); + if (k > 0) + { + entityspear.setDamage(entityspear.getDamage() + (double)k * 0.5D + 0.5D); + } + int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, p_77615_1_); + if (l > 0) + { + entityspear.setKnockbackStrength(l); + } + if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, p_77615_1_) > 0) + { + entityspear.setFire(100); + }*/ + //p_77615_1_.damageItem(1, p_77615_3_); + p_77615_2_.playSoundAtEntity(p_77615_3_, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F); + + p_77615_3_.inventory.consumeInventoryItem(ModItems.itemITSpear); + + + this.setMaxDamage(100); + p_77615_2_.spawnEntityInWorld(entityspear); + + } + } + } + + public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) + { + return p_77654_1_; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/throwable/ItemShit.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/throwable/ItemShit.java new file mode 100644 index 00000000..0457e74b --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/throwable/ItemShit.java @@ -0,0 +1,57 @@ +package com.kitsu.medievalcraft.item.throwable; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.entity.EntityShit; +import com.kitsu.medievalcraft.entity.EntityShortLivedShit; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemShit extends Item { + + private String name = "itemShit"; + + public ItemShit() { + + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + GameRegistry.registerItem(this, name); + + } + + @Override + public boolean hasCustomEntity(ItemStack stack){ + return true; + } + public Entity createEntity(World world, Entity location, ItemStack stack){ + EntityShortLivedShit entity = new EntityShortLivedShit(world, location.posX, location.posY, location.posZ, stack); + entity.motionX = location.motionX; + entity.motionY = location.motionY; + entity.motionZ = location.motionZ; + + return entity; + } + + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + { + + --stack.stackSize; + + + world.playSoundAtEntity(player, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + + if (!world.isRemote) + { + world.spawnEntityInWorld(new EntityShit(world, player)); + } + + return stack; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/throwable/ItemTester.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/throwable/ItemTester.java new file mode 100644 index 00000000..6cafa5c3 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/throwable/ItemTester.java @@ -0,0 +1,38 @@ +package com.kitsu.medievalcraft.item.throwable; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.entity.EntityTester; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class ItemTester extends Item { + + private String name = "itemTester"; + + public ItemTester() { + + setUnlocalizedName(name); + //setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + GameRegistry.registerItem(this, name); + + } + + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + --stack.stackSize; + + if (!world.isRemote) + { + world.spawnEntityInWorld(new EntityTester(world, player)); + } + + return stack; + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronHoe.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronHoe.java new file mode 100644 index 00000000..97b71668 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronHoe.java @@ -0,0 +1,55 @@ +package com.kitsu.medievalcraft.item.tools; + +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemPickaxe; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Item.ToolMaterial; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CustomIronHoe extends ItemHoe{ + //private String name = "customIronPick"; + //private Item item; + + public CustomIronHoe(String name, ToolMaterial mat) { + super(mat); + //item = this; + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + //this.toolMaterial = ModItems.customWoodNormal; + //GameRegistry.registerItem(this, name); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) + { + list.add("Uses Left: " + Integer.toString(stack.getMaxDamage()-stack.getItemDamage())); + } + + + @Override + public int getItemEnchantability () { + return 0; + } + + @Override + public boolean getIsRepairable(ItemStack item, ItemStack repair) + { + return Items.iron_ingot == repair.getItem() ? true : false; + } + + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack par1ItemStack) + { + return false; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronLumberAxe.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronLumberAxe.java new file mode 100644 index 00000000..c5b03d9f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronLumberAxe.java @@ -0,0 +1,54 @@ +package com.kitsu.medievalcraft.item.tools; + +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CustomIronLumberAxe extends ItemAxe{ + + private String name = "customIronLumberAxe"; + private Item item; + + public CustomIronLumberAxe(String name, ToolMaterial mat) { + super(mat); + //item = this; + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + //this.toolMaterial = ModItems.customWoodNormal; + setTextureName(Main.MODID + ":" + name); + //GameRegistry.registerItem(this, name); + } + @Override + public int getItemEnchantability () { + return 0; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4){ + list.add("Uses Left: " + Integer.toString(stack.getMaxDamage()-stack.getItemDamage())); + } + + @Override + public boolean getIsRepairable(ItemStack item, ItemStack repair) + { + return Items.iron_ingot == repair.getItem() ? true : false; + } + + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack par1ItemStack) + { + return false; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronPick.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronPick.java new file mode 100644 index 00000000..45e8e6f9 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronPick.java @@ -0,0 +1,60 @@ +package com.kitsu.medievalcraft.item.tools; + +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemPickaxe; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CustomIronPick extends ItemPickaxe{ + //private String name = "customIronPick"; + //private Item item; + + public CustomIronPick(String name, ToolMaterial mat) { + super(mat); + //item = this; + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + //this.toolMaterial = ModItems.customWoodNormal; + //GameRegistry.registerItem(this, name); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) + { + list.add("Uses Left: " + Integer.toString(stack.getMaxDamage()-stack.getItemDamage())); + } + + @Override + public int getItemEnchantability () { + return 0; + } + + @Override + public boolean getIsRepairable(ItemStack item, ItemStack repair) + { + return Items.iron_ingot == repair.getItem() ? true : false; + } + + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack par1ItemStack){ + return false; + } + + @Override + public void onCreated(ItemStack stack, World world, EntityPlayer player) { + + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronShovel.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronShovel.java new file mode 100644 index 00000000..19e03d03 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/tools/CustomIronShovel.java @@ -0,0 +1,51 @@ +package com.kitsu.medievalcraft.item.tools; + +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemSpade; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class CustomIronShovel extends ItemSpade{ + private String name = "customIronShovel"; + private Item item; + + public CustomIronShovel(String name, ToolMaterial mat) { + super(mat); + //item = this; + this.setUnlocalizedName(name); + this.setCreativeTab(CustomTab.MedievalCraftTab); + this.setTextureName(Main.MODID + ":" + name); + //this.toolMaterial = ModItems.customWoodNormal; + //GameRegistry.registerItem(this, name); + } + @Override + public int getItemEnchantability () { + return 0; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4){ + list.add("Uses Left: " + Integer.toString(stack.getMaxDamage()-stack.getItemDamage())); + } + + @Override + public boolean getIsRepairable(ItemStack item, ItemStack repair) { + return Items.iron_ingot == repair.getItem() ? true : false; + } + + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack par1ItemStack){ + return false; + } + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemBattleAxe.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemBattleAxe.java new file mode 100644 index 00000000..3d8cec87 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemBattleAxe.java @@ -0,0 +1,85 @@ +package com.kitsu.medievalcraft.item.weapon; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.events.EventHandle; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemBattleAxe extends ItemSword { + + //public static boolean longswordused; + //private int sKey; + + public ItemBattleAxe(String unlocalizedName, ToolMaterial mat) { + + super(mat); + this.setUnlocalizedName(unlocalizedName); + this.setTextureName(Main.MODID + ":" + unlocalizedName); + setCreativeTab(CustomTab.MedievalCraftTab); + setMaxStackSize(1); + setMaxDamage(mat.getMaxUses()); + setFull3D().isRepairable(); + + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity player, int p_77663_4_, boolean using) { + + if(using == true){ + ((EntityLivingBase) player).addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 10, 4, true)); + player.motionX *= 0.45D; + player.motionZ *= 0.45D; + } + + + } + + @Override + public int getItemEnchantability () { + return 0; + } + + @Override + @SideOnly(Side.CLIENT) + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player){ + EventHandle.weaponUse = true; + return super.onItemRightClick(stack, world, player); + } + + /*private Item checkWeapon(Item testItem){ + for(int i = 0; i < ShieldSwitchTable.shields.size(); i++){ + if(testItem == ShieldSwitchTable.shields.get(i)){ + sKey = i; + } + } + return ShieldSwitchTable.shields.get(sKey); + }*/ + + @Override + public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int p_77615_4_) { + + } + + +} + + + + + + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemGladius.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemGladius.java new file mode 100644 index 00000000..6348d643 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemGladius.java @@ -0,0 +1,74 @@ +package com.kitsu.medievalcraft.item.weapon; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.events.EventHandle; +//import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemGladius extends ItemSword { + + DamageSource source = null; + //public static boolean longswordused; + //private int sKey, damage; + + public ItemGladius(String unlocalizedName, ToolMaterial mat) { + + super(mat); + this.setUnlocalizedName(unlocalizedName); + this.setTextureName(Main.MODID + ":" + unlocalizedName); + //setCreativeTab(CustomTab.MedievalCraftTab); + setMaxStackSize(1); + setMaxDamage(mat.getMaxUses()); + setFull3D().isRepairable(); + + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity player, int p_77663_4_, boolean using) { + + } + + @Override + public int getItemEnchantability () { + return 0; + } + + @Override + @SideOnly(Side.CLIENT) + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player){ + EventHandle.weaponUse = true; + return super.onItemRightClick(stack, world, player); + } + + /*private Item checkWeapon(Item testItem){ + for(int i = 0; i < ShieldSwitchTable.shields.size(); i++){ + if(testItem == ShieldSwitchTable.shields.get(i)){ + sKey = i; + } + } + return ShieldSwitchTable.shields.get(sKey); + }*/ + + + + +} + + + + + + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemHeavyMace.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemHeavyMace.java new file mode 100644 index 00000000..109bebd1 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemHeavyMace.java @@ -0,0 +1,111 @@ +package com.kitsu.medievalcraft.item.weapon; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.events.EventHandle; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemHeavyMace extends ItemSword { + + public static boolean maceInUse; + public static boolean attack; + public static Vec3 vecp; + public static boolean damage; + + public ItemHeavyMace (String unlocalizedName, ToolMaterial mat) { + + super(mat); + this.setUnlocalizedName(unlocalizedName); + this.setTextureName(Main.MODID + ":" + unlocalizedName); + setCreativeTab(CustomTab.MedievalCraftTab); + setMaxStackSize(1); + setMaxDamage(mat.getMaxUses()+ 75); + setFull3D().isRepairable(); + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity player, int p_77663_4_, boolean using) { + //world.getGameRules(). + /*if(damage == true){ + stack.damageItem(1, (EntityLivingBase) player); + damage = false; + }*/ + + /*if ((Minecraft.getMinecraft().thePlayer.isSwingInProgress == true) && (using == true)) { + if(damage == false){ + vecp = vecp.createVectorHelper(player.posX, player.posY, player.posZ); + attack = true; + if (!world.isRemote) + { + world.spawnEntityInWorld(new EntityTester(world, (EntityLivingBase) player)); + } + } + }*/ + + if(using == true){ + ((EntityLivingBase) player).addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 10, 4, true)); + //((EntityLivingBase) player).attackEntityFrom(DamageSource.causeMobDamage(this), 2.0f); + + player.motionX *= 0.45D; + player.motionZ *= 0.45D; + } + /*if (Minecraft.getMinecraft(). .isSwingInProgress == false)){ + attack = false; + }*/ + + } + + @Override + public int getItemEnchantability () { + return 0; + + } + + + @Override + @SideOnly(Side.CLIENT) + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player){ + EventHandle.weaponUse = true; + return super.onItemRightClick(stack, world, player); + } + + /*private Item checkWeapon(Item testItem){ + for(int i = 0; i < ShieldSwitchTable.shields.size(); i++){ + if(testItem == ShieldSwitchTable.shields.get(i)){ + sKey = i; + } + } + return ShieldSwitchTable.shields.get(sKey); + }*/ + + @Override + public boolean getIsRepairable(ItemStack item, ItemStack repair) + { + return Items.iron_ingot == repair.getItem() ? true : false; + } +} + + + + + + + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemIronShield.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemIronShield.java new file mode 100644 index 00000000..69217724 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemIronShield.java @@ -0,0 +1,75 @@ +package com.kitsu.medievalcraft.item.weapon; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; +import com.kitsu.medievalcraft.util.ShieldSwitchTable; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemIronShield extends ItemSword { + + public static boolean ironShieldInUse; + private int wKey; + + public ItemIronShield(String unlocalizedName, ToolMaterial mat) { + super(mat); + this.setUnlocalizedName(unlocalizedName); + this.setTextureName(Main.MODID + ":" + unlocalizedName); + //setCreativeTab(CustomTab.MedievalCraftTab); + setMaxStackSize(1); + setMaxDamage(mat.getMaxUses()); + setFull3D(); + isRepairable(); + } + + @Override + public int getItemEnchantability () { + return 0; + } + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack par1ItemStack){ + return false; + } + + @Override + public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player) { + //ironShieldInUse = true; + return super.onItemRightClick(stack, world, player); + } + + @Override + @SideOnly(Side.CLIENT) + public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int p_77615_4_) { + //ironShieldInUse = false; + int a = player.inventory.currentItem; + //ItemStack newStack = player.inventory.getStackInSlot(a+1); + if(a!=8){ + if(player.inventory.getStackInSlot(a+1) != null){ + Item check = player.inventory.getStackInSlot(a+1).getItem(); + if(player.inventory.getStackInSlot(a+1).getItem().equals(checkWeapon(check))){ + player.inventory.changeCurrentItem(-1); + } + } + } + } + + private Item checkWeapon(Item testItem){ + for(int i = 0; i < ShieldSwitchTable.weapons.size(); i++){ + if(testItem == ShieldSwitchTable.weapons.get(i)){ + wKey = i; + } + } + return ShieldSwitchTable.weapons.get(wKey); + } + + +} + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemIronTippedModelArrow.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemIronTippedModelArrow.java new file mode 100644 index 00000000..fc3265a9 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemIronTippedModelArrow.java @@ -0,0 +1,24 @@ +package com.kitsu.medievalcraft.item.weapon; + +import net.minecraft.item.Item; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class ItemIronTippedModelArrow extends Item { + + + private String name = "itemIronTippedModelArrow"; + + public ItemIronTippedModelArrow() { + + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + GameRegistry.registerItem(this, name); + + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemLongSword.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemLongSword.java new file mode 100644 index 00000000..41bbb3e3 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemLongSword.java @@ -0,0 +1,71 @@ +package com.kitsu.medievalcraft.item.weapon; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.events.EventHandle; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemLongSword extends ItemSword { + + + //private String unlocalizedname = "forgeHammer"; + //ItemStack repair = new ItemStack(Items.iron_ingot); + //ItemStack item = new ItemStack(ModItems.longSword); + //public static boolean longswordused; + //private int sKey; + + public ItemLongSword(String unlocalizedName, ToolMaterial mat) { + + super(mat); + this.setUnlocalizedName(unlocalizedName); + this.setTextureName(Main.MODID + ":" + unlocalizedName); + setCreativeTab(CustomTab.MedievalCraftTab); + setMaxStackSize(1); + setMaxDamage(mat.getMaxUses()); + setFull3D().isRepairable(); + + } + + @Override + public int getItemEnchantability () { + return 0; + } + + @Override + @SideOnly(Side.CLIENT) + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player){ + EventHandle.weaponUse = true; + //player.setItemInUse(stack, 72000); + return super.onItemRightClick(stack, world, player); + } + + /*private Item checkWeapon(Item testItem){ + for(int i = 0; i < ShieldSwitchTable.shields.size(); i++){ + if(testItem == ShieldSwitchTable.shields.get(i)){ + sKey = i; + } + } + return ShieldSwitchTable.shields.get(sKey); + }*/ + + + + +} + + + + + + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemLongbow.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemLongbow.java new file mode 100644 index 00000000..82ddacc7 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemLongbow.java @@ -0,0 +1,150 @@ +/* + * SERIOUS ISSUE WITH RENDERING OTHER PLAYERS BOW USAGE PROPERLY + * CURRENT IMPLEMENTATION ONLY RENDERS ON THE CLIENT FOR THE FIRST PERSON VIEW, THE ICON, AND AS AN ENTITY + * + * THE CURRENT IDEA IS TO CREATE A CASE WHERE IF ANOTHER PLAYER BESIDES THE CURRENT PLAYER IS USING THE LONBOW + * THEN IT WILL REGISTER A DIFFERENT SET OF IItemRenderer's FOR THEM. THE NEW SET OF BOW RENDERS WILL BE ONLY + * FOR THE THIRD PERSON CASE. + * + * THIS APPROACH REQUIRES THAT THE CLIENT SIDE PLAYER RECIEVES WHICH PLAYER IS USING THE BOW IN 3RD PERSON AND + * THAT THEY ARE USING A BOW. THE FINAL REQUIREMENT IS TO RECEIVE A PACKET THAT STATES WHICH PLAYER STOPPED USING THEIR BOW. + * + * THE ITEMSTACKS NEED TO BE INSTANCED SO THAT IF A THIRD PLAYER IS USING THE LONGBOW THEN THEY WILL RENDER A DIFFERENT SET + * OF MODELS. + * + */ + +package com.kitsu.medievalcraft.item.weapon; + +import java.util.Random; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.entity.EntityModelArrow; +import com.kitsu.medievalcraft.entity.EntityModelITArrow; +import com.kitsu.medievalcraft.item.ModItems; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class ItemLongbow extends Item{ + + public static int longbowTicks; + private String name = "longbow"; + private boolean bowUse ; + Random rand = new Random(); + //private NBTTagCompound bowTag = new NBTTagCompound(); + + public ItemLongbow() { + setMaxStackSize(1); + setUnlocalizedName(name); + //setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + setMaxDamage(1000); + setNoRepair(); + + GameRegistry.registerItem(this, name); + } + + @Override + public EnumAction getItemUseAction(ItemStack stack) { + return EnumAction.bow; + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity player, int p_77663_4_, boolean using) { + + if((using == true)&&(bowUse == false)){ + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 0); + } + } + + @Override + public int getMaxItemUseDuration(ItemStack p_77626_1_) { + return 72000; + } + + @Override + public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player) { + + if((player.inventory.getStackInSlot(player.inventory.currentItem - 1)!=null)){ + if((player.inventory.getStackInSlot(player.inventory.currentItem - 1).getItem()==(ModItems.itemModelArrow))){ + player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); + bowUse = true; + } + if((player.inventory.getStackInSlot(player.inventory.currentItem - 1).getItem()==(ModItems.itemIronTippedModelArrow))){ + player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); + bowUse = true; + } + } + return stack; + } + + @Override + public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int p_77615_4_) { + + int j = this.getMaxItemUseDuration(stack) - p_77615_4_; + + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("D", 0); + stack.damageItem(1, player); + player.worldObj.playSoundAtEntity(player, (Main.MODID + ":longbowRelease"), 0.8F, 1.0F); + + if((player.inventory.getStackInSlot(player.inventory.currentItem - 1)!=null)){ + if((player.inventory.getStackInSlot(player.inventory.currentItem - 1).getItem()==(ModItems.itemModelArrow))){ + float f = j / 20.0F; + f = (f * f + f * 2.0F) / 3.0F; + + if (f < 0.1D){ + return; + } + + if (f > 1.0F){ + f = 1.0F; + } + + player.inventory.consumeInventoryItem(ModItems.itemModelArrow); + + //EntityArrow arrow = new EntityArrow(world, player, f * 2.0F); + + if (!world.isRemote) { + EntityModelArrow arrow = new EntityModelArrow(world, player, f * 2.0F); + world.spawnEntityInWorld(arrow); + } + } + if((player.inventory.getStackInSlot(player.inventory.currentItem - 1).getItem()==(ModItems.itemIronTippedModelArrow))){ + float f = j / 20.0F; + f = (f * f + f * 2.0F) / 3.0F; + + if (f < 0.1D){ + return; + } + + if (f > 1.0F){ + f = 1.0F; + } + + player.inventory.consumeInventoryItem(ModItems.itemIronTippedModelArrow); + + //EntityArrow arrow = new EntityArrow(world, player, f * 2.0F); + + if (!world.isRemote) { + EntityModelITArrow arrow = new EntityModelITArrow(world, player, f * 2.0F); + world.spawnEntityInWorld(arrow); + } + } + } + bowUse = false; + } +} + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemModelArrow.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemModelArrow.java new file mode 100644 index 00000000..f7fd666c --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemModelArrow.java @@ -0,0 +1,23 @@ +package com.kitsu.medievalcraft.item.weapon; + +import net.minecraft.item.Item; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class ItemModelArrow extends Item { + + private String name = "itemModelArrow"; + + public ItemModelArrow() { + + setUnlocalizedName(name); + setCreativeTab(CustomTab.MedievalCraftTab); + setTextureName(Main.MODID + ":" + name); + GameRegistry.registerItem(this, name); + + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemWoodenShield.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemWoodenShield.java new file mode 100644 index 00000000..940be9f7 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/item/weapon/ItemWoodenShield.java @@ -0,0 +1,98 @@ +package com.kitsu.medievalcraft.item.weapon; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.Main; +import com.kitsu.medievalcraft.util.CustomTab; +import com.kitsu.medievalcraft.util.ShieldSwitchTable; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemWoodenShield extends ItemSword { + + + public static boolean woodenShieldInUse; + private int wKey; + //private float yaw; + + public ItemWoodenShield(String unlocalizedName, ToolMaterial mat) { + super(mat); + this.setUnlocalizedName(unlocalizedName); + this.setTextureName(Main.MODID + ":" + unlocalizedName); + setCreativeTab(CustomTab.MedievalCraftTab); + setMaxStackSize(1); + setMaxDamage(mat.getMaxUses()); + setFull3D(); + isRepairable(); + } + + @Override + public int getItemEnchantability () { + return 0; + } + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack par1ItemStack){ + return false; + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity player, int p_77663_4_, boolean using) { + //if((stack.stackTagCompound.getBoolean("WOODSHIELDUSE")) == true){ + //player.setLocationAndAngles(player.posX, player.posY, player.posZ, yaw - 45, player.rotationPitch); + //} + } + + @Override + public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player) { + woodenShieldInUse = true; + //yaw = player.rotationYaw; + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setBoolean("WOODSHIELDUSE", true); + return super.onItemRightClick(stack, world, player); + } + + @Override + @SideOnly(Side.CLIENT) + public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int p_77615_4_) { + woodenShieldInUse = false; + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setBoolean("WOODSHIELDUSE", false); + int a = player.inventory.currentItem; + //ItemStack newStack = player.inventory.getStackInSlot(a+1); + if(a!=8){ + if(player.inventory.getStackInSlot(a+1) != null){ + //int a = player.inventory.currentItem; + Item check = player.inventory.getStackInSlot(a+1).getItem(); + if(player.inventory.getStackInSlot(a+1).getItem().equals(checkWeapon(check))){ + player.inventory.changeCurrentItem(-1); + } + } + } + } + + private Item checkWeapon(Item testItem){ + for(int i = 0; i < ShieldSwitchTable.weapons.size(); i++){ + if(testItem == ShieldSwitchTable.weapons.get(i)){ + wKey = i; + } + } + return ShieldSwitchTable.weapons.get(wKey); + } + + @Override + public boolean getIsRepairable(ItemStack item, ItemStack repair){ + return Item.getItemFromBlock(Blocks.planks) == repair.getItem() ? true : false; + } + + +} + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgHandleCuredLeatherX.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgHandleCuredLeatherX.java new file mode 100644 index 00000000..298fabfb --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgHandleCuredLeatherX.java @@ -0,0 +1,24 @@ +package com.kitsu.medievalcraft.packethandle.curedLeather; + +import com.kitsu.medievalcraft.item.misc.RawCuredLeather; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public class MsgHandleCuredLeatherX implements IMessageHandler{ + + @Override + public IMessage onMessage(MsgPacketCuredLeatherX message, MessageContext ctx) { + + //HotIronBlock.locX = message.locx; + //HotIronPlate.locX = message.locx; + RawCuredLeather.serverX = message.curedLeatherx; + //ItemRendererLongbow.tick = message.lTick; + + //System.out.println(message.lTick); + //ctx.getClientHandler().addToSendQueue(new MsgPacket(message.useme)); + + return null; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgHandleCuredLeatherY.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgHandleCuredLeatherY.java new file mode 100644 index 00000000..25230de0 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgHandleCuredLeatherY.java @@ -0,0 +1,24 @@ +package com.kitsu.medievalcraft.packethandle.curedLeather; + +import com.kitsu.medievalcraft.item.misc.RawCuredLeather; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public class MsgHandleCuredLeatherY implements IMessageHandler{ + + @Override + public IMessage onMessage(MsgPacketCuredLeatherY message, MessageContext ctx) { + + //HotIronBlock.locX = message.locx; + //HotIronPlate.locX = message.locx; + RawCuredLeather.serverY = message.curedLeathery; + //ItemRendererLongbow.tick = message.lTick; + + //System.out.println(message.lTick); + //ctx.getClientHandler().addToSendQueue(new MsgPacket(message.useme)); + + return null; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgHandleCuredLeatherZ.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgHandleCuredLeatherZ.java new file mode 100644 index 00000000..2b8a643c --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgHandleCuredLeatherZ.java @@ -0,0 +1,24 @@ +package com.kitsu.medievalcraft.packethandle.curedLeather; + +import com.kitsu.medievalcraft.item.misc.RawCuredLeather; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public class MsgHandleCuredLeatherZ implements IMessageHandler{ + + @Override + public IMessage onMessage(MsgPacketCuredLeatherZ message, MessageContext ctx) { + + //HotIronBlock.locX = message.locx; + //HotIronPlate.locX = message.locx; + RawCuredLeather.serverZ = message.curedLeatherz; + //ItemRendererLongbow.tick = message.lTick; + + //System.out.println(message.lTick); + //ctx.getClientHandler().addToSendQueue(new MsgPacket(message.useme)); + + return null; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgPacketCuredLeatherX.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgPacketCuredLeatherX.java new file mode 100644 index 00000000..f2eb2325 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgPacketCuredLeatherX.java @@ -0,0 +1,28 @@ +package com.kitsu.medievalcraft.packethandle.curedLeather; + +import io.netty.buffer.ByteBuf; +import cpw.mods.fml.common.network.simpleimpl.IMessage; + +public class MsgPacketCuredLeatherX implements IMessage { + + public int curedLeatherx; + + public MsgPacketCuredLeatherX() {} + + public MsgPacketCuredLeatherX(int x){ + this.curedLeatherx = x; + } + + + @Override + public void fromBytes(ByteBuf buf) { + + this.curedLeatherx = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(this.curedLeatherx); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgPacketCuredLeatherY.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgPacketCuredLeatherY.java new file mode 100644 index 00000000..2c5e0164 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgPacketCuredLeatherY.java @@ -0,0 +1,28 @@ +package com.kitsu.medievalcraft.packethandle.curedLeather; + +import io.netty.buffer.ByteBuf; +import cpw.mods.fml.common.network.simpleimpl.IMessage; + +public class MsgPacketCuredLeatherY implements IMessage { + + public int curedLeathery; + + public MsgPacketCuredLeatherY() {} + + public MsgPacketCuredLeatherY(int y){ + this.curedLeathery = y; + } + + + @Override + public void fromBytes(ByteBuf buf) { + + this.curedLeathery = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(this.curedLeathery); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgPacketCuredLeatherZ.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgPacketCuredLeatherZ.java new file mode 100644 index 00000000..ae04b5a6 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/curedLeather/MsgPacketCuredLeatherZ.java @@ -0,0 +1,28 @@ +package com.kitsu.medievalcraft.packethandle.curedLeather; + +import io.netty.buffer.ByteBuf; +import cpw.mods.fml.common.network.simpleimpl.IMessage; + +public class MsgPacketCuredLeatherZ implements IMessage { + + public int curedLeatherz; + + public MsgPacketCuredLeatherZ() {} + + public MsgPacketCuredLeatherZ(int z){ + this.curedLeatherz = z; + } + + + @Override + public void fromBytes(ByteBuf buf) { + + this.curedLeatherz = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(this.curedLeatherz); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forge/MsgHandleForge.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forge/MsgHandleForge.java new file mode 100644 index 00000000..19fec3cc --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forge/MsgHandleForge.java @@ -0,0 +1,18 @@ +package com.kitsu.medievalcraft.packethandle.forge; + +import com.kitsu.medievalcraft.block.machines.Forge; +import com.kitsu.medievalcraft.block.wood.ShelfFour; +import com.kitsu.medievalcraft.packethandle.shelf.MsgPacketShelfCase; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public class MsgHandleForge implements IMessageHandler{ + + @Override + public IMessage onMessage(MsgPacketForge message, MessageContext ctx) { + Forge.sideMeta = message.caseType; + return null; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forge/MsgPacketForge.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forge/MsgPacketForge.java new file mode 100644 index 00000000..9103a826 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forge/MsgPacketForge.java @@ -0,0 +1,26 @@ +package com.kitsu.medievalcraft.packethandle.forge; + +import io.netty.buffer.ByteBuf; +import cpw.mods.fml.common.network.simpleimpl.IMessage; + +public class MsgPacketForge implements IMessage { + + public int caseType; + + public MsgPacketForge() {} + + public MsgPacketForge(int x){ + this.caseType = x; + } + + @Override + public void fromBytes(ByteBuf buf) { + this.caseType = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(this.caseType); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandle.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandle.java new file mode 100644 index 00000000..ccd53b1a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandle.java @@ -0,0 +1,20 @@ +package com.kitsu.medievalcraft.packethandle.forgeHammerParticles; + +import com.kitsu.medievalcraft.block.ingots.IngotBase; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public class MsgHandle implements IMessageHandler{ + + @Override + public IMessage onMessage(MsgPacket message, MessageContext ctx) { + IngotBase.makeParts = message.useme; + //HotIronPlate.makeParts = message.useme; + //System.out.println(message.useme); + //ctx.getClientHandler().addToSendQueue(new MsgPacket(message.useme)); + + return null; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocX.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocX.java new file mode 100644 index 00000000..7dd8cf97 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocX.java @@ -0,0 +1,19 @@ +package com.kitsu.medievalcraft.packethandle.forgeHammerParticles; + +import com.kitsu.medievalcraft.block.ingots.IngotBase; +import com.kitsu.medievalcraft.block.machines.Forge; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public class MsgHandleLocX implements IMessageHandler{ + + @Override + public IMessage onMessage(MsgPacketLocX message, MessageContext ctx) { + + IngotBase.locX = message.locx; + + return null; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocY.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocY.java new file mode 100644 index 00000000..492e25ab --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocY.java @@ -0,0 +1,23 @@ +package com.kitsu.medievalcraft.packethandle.forgeHammerParticles; + +import com.kitsu.medievalcraft.block.ingots.IngotBase; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public class MsgHandleLocY implements IMessageHandler{ + + @Override + public IMessage onMessage(MsgPacketLocY message, MessageContext ctx) { + + IngotBase.locY = message.locy; + //HotIronPlate.locY = message.locy; + //ItemRendererLongbow.tick = message.lTick; + + //System.out.println(message.lTick); + //ctx.getClientHandler().addToSendQueue(new MsgPacket(message.useme)); + + return null; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocZ.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocZ.java new file mode 100644 index 00000000..25481191 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocZ.java @@ -0,0 +1,23 @@ +package com.kitsu.medievalcraft.packethandle.forgeHammerParticles; + +import com.kitsu.medievalcraft.block.ingots.IngotBase; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public class MsgHandleLocZ implements IMessageHandler{ + + @Override + public IMessage onMessage(MsgPacketLocZ message, MessageContext ctx) { + + IngotBase.locZ = message.locz; + //HotIronPlate.locZ = message.locz; + //ItemRendererLongbow.tick = message.lTick; + + //System.out.println(message.lTick); + //ctx.getClientHandler().addToSendQueue(new MsgPacket(message.useme)); + + return null; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacket.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacket.java new file mode 100644 index 00000000..e7213086 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacket.java @@ -0,0 +1,29 @@ +package com.kitsu.medievalcraft.packethandle.forgeHammerParticles; + +import io.netty.buffer.ByteBuf; +import cpw.mods.fml.common.network.simpleimpl.IMessage; + +public class MsgPacket implements IMessage { + + public boolean useme; + public MsgPacket() {} + + public MsgPacket(boolean b){ + this.useme = b; + } + + + @Override + public void fromBytes(ByteBuf buf) { + this.useme = buf.readBoolean(); + + + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeBoolean(this.useme); + + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocX.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocX.java new file mode 100644 index 00000000..6a182cd7 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocX.java @@ -0,0 +1,27 @@ +package com.kitsu.medievalcraft.packethandle.forgeHammerParticles; + +import io.netty.buffer.ByteBuf; +import cpw.mods.fml.common.network.simpleimpl.IMessage; + +public class MsgPacketLocX implements IMessage { + + public int locx; + + public MsgPacketLocX() {} + + public MsgPacketLocX(int x){ + this.locx = x; + } + + @Override + public void fromBytes(ByteBuf buf) { + + this.locx = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(this.locx); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocY.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocY.java new file mode 100644 index 00000000..b9741b3c --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocY.java @@ -0,0 +1,28 @@ +package com.kitsu.medievalcraft.packethandle.forgeHammerParticles; + +import io.netty.buffer.ByteBuf; +import cpw.mods.fml.common.network.simpleimpl.IMessage; + +public class MsgPacketLocY implements IMessage { + + public int locy; + + public MsgPacketLocY() {} + + public MsgPacketLocY(int y){ + this.locy = y; + } + + + @Override + public void fromBytes(ByteBuf buf) { + + this.locy = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(this.locy); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocZ.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocZ.java new file mode 100644 index 00000000..0100433d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocZ.java @@ -0,0 +1,28 @@ +package com.kitsu.medievalcraft.packethandle.forgeHammerParticles; + +import io.netty.buffer.ByteBuf; +import cpw.mods.fml.common.network.simpleimpl.IMessage; + +public class MsgPacketLocZ implements IMessage { + + public int locz; + + public MsgPacketLocZ() {} + + public MsgPacketLocZ(int z){ + this.locz = z; + } + + + @Override + public void fromBytes(ByteBuf buf) { + + this.locz = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(this.locz); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/sandFilterRender/MsgHandleSandFilterRender.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/sandFilterRender/MsgHandleSandFilterRender.java new file mode 100644 index 00000000..f4514c07 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/sandFilterRender/MsgHandleSandFilterRender.java @@ -0,0 +1,19 @@ +package com.kitsu.medievalcraft.packethandle.sandFilterRender; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public class MsgHandleSandFilterRender implements IMessageHandler{ + + @Override + public IMessage onMessage(MsgPacketSandFilterRender message, MessageContext ctx) { + //TileEntitySandFilter.renderFilter = message.render; + //SandFilter.renderInt = message.render; + + //System.out.println(message.useme); + //ctx.getClientHandler().addToSendQueue(new MsgPacket(message.useme)); + + return null; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/sandFilterRender/MsgPacketSandFilterRender.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/sandFilterRender/MsgPacketSandFilterRender.java new file mode 100644 index 00000000..79d387a0 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/sandFilterRender/MsgPacketSandFilterRender.java @@ -0,0 +1,29 @@ +package com.kitsu.medievalcraft.packethandle.sandFilterRender; + +import io.netty.buffer.ByteBuf; +import cpw.mods.fml.common.network.simpleimpl.IMessage; + +public class MsgPacketSandFilterRender implements IMessage { + + public int render; + public MsgPacketSandFilterRender() {} + + public MsgPacketSandFilterRender(int b){ + this.render = b; + } + + + @Override + public void fromBytes(ByteBuf buf) { + this.render = buf.readInt(); + + + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(this.render); + + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/shelf/MsgHandleShelfCase.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/shelf/MsgHandleShelfCase.java new file mode 100644 index 00000000..b302365d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/shelf/MsgHandleShelfCase.java @@ -0,0 +1,18 @@ +package com.kitsu.medievalcraft.packethandle.shelf; + +import com.kitsu.medievalcraft.block.wood.ShelfFour; +import com.kitsu.medievalcraft.item.misc.RawCuredLeather; +import com.kitsu.medievalcraft.packethandle.curedLeather.MsgPacketCuredLeatherX; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public class MsgHandleShelfCase implements IMessageHandler{ + + @Override + public IMessage onMessage(MsgPacketShelfCase message, MessageContext ctx) { + ShelfFour.caseType = message.caseType; + return null; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/shelf/MsgPacketShelfCase.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/shelf/MsgPacketShelfCase.java new file mode 100644 index 00000000..14ee68c5 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/packethandle/shelf/MsgPacketShelfCase.java @@ -0,0 +1,26 @@ +package com.kitsu.medievalcraft.packethandle.shelf; + +import io.netty.buffer.ByteBuf; +import cpw.mods.fml.common.network.simpleimpl.IMessage; + +public class MsgPacketShelfCase implements IMessage { + + public int caseType; + + public MsgPacketShelfCase() {} + + public MsgPacketShelfCase(int x){ + this.caseType = x; + } + + @Override + public void fromBytes(ByteBuf buf) { + this.caseType = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(this.caseType); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/player/ExtendedPlayer.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/player/ExtendedPlayer.java new file mode 100644 index 00000000..7daa672f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/player/ExtendedPlayer.java @@ -0,0 +1,56 @@ +/*package com.kitsu.medievalcraft.player; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraftforge.common.IExtendedEntityProperties; + +public class ExtendedPlayer implements IExtendedEntityProperties{ + + public final static String EXT_PROP_NAME = "ExtendedPlayer"; + private final EntityPlayer player; + private int reach; + + public ExtendedPlayer(EntityPlayer player){ + this.player = player; + this.reach = 8; + } + + public static final void register(EntityPlayer player) + { + player.registerExtendedProperties(ExtendedPlayer.EXT_PROP_NAME, new ExtendedPlayer(player)); + } + + public static final ExtendedPlayer get(EntityPlayer player) + { + return (ExtendedPlayer) player.getExtendedProperties(EXT_PROP_NAME); + } + + + + + @Override + public void saveNBTData(NBTTagCompound compound) { + NBTTagCompound properties = new NBTTagCompound(); + properties.setInteger("reach", this.reach); + compound.setTag(EXT_PROP_NAME, properties); + + } + + @Override + public void loadNBTData(NBTTagCompound compound) { + NBTTagCompound properties = (NBTTagCompound) compound.getTag(EXT_PROP_NAME); + this.reach = properties.getInteger("reach"); + } + + @Override + public void init(Entity entity, World world) { + // TODO Auto-generated method stub + + } + + + +} +*/ \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/player/MyModClientPlayerBase.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/player/MyModClientPlayerBase.java new file mode 100644 index 00000000..76f9fe2d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/player/MyModClientPlayerBase.java @@ -0,0 +1,36 @@ +/*package com.kitsu.medievalcraft.player; + +import api.player.client.ClientPlayerAPI; +import api.player.client.ClientPlayerBase; + +public class MyModClientPlayerBase extends ClientPlayerBase +{ + public MyModClientPlayerBase(ClientPlayerAPI playerapi) + { + super(playerapi); + } +/* + // one of my client player hook functions + public void jump() + { + if(myModIsActive) + { + // my code + if(callJumpOfEntityPlayerSP) + player.localJump(); + else if(callJumpOfEntityPlayer) + player.superJump(); + // my code + if(doGigaJump) + player.motionY = gigaJumpSpeed; + else if(doMiniJump) + player.motionY = miniJumpSpeed; + // my code + } + else + super.jump(); + } + } + + +*/ diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/player/MyModServerPlayerBase.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/player/MyModServerPlayerBase.java new file mode 100644 index 00000000..c17569fb --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/player/MyModServerPlayerBase.java @@ -0,0 +1,26 @@ +/*package com.kitsu.medievalcraft.player; + +import api.player.server.ServerPlayerAPI; +import api.player.server.ServerPlayerBase; + +public class MyModServerPlayerBase extends ServerPlayerBase +{ + public MyModServerPlayerBase(ServerPlayerAPI playerapi) + { + super(playerapi); + } +/* + // one of my server player hook functions + public boolean canBreatheUnderwater() + { + if(myModIsActive) + { + // my code + return myResult; + } + else + return super.canBreatheUnderwater(); + } + } + + */ \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/RenderId.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/RenderId.java new file mode 100644 index 00000000..ee89b375 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/RenderId.java @@ -0,0 +1,81 @@ +package com.kitsu.medievalcraft.renderer; + +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class RenderId { + + public static int myironingotID; + public static int hotIronIngotID; + public static int coolCrucibleID; + public static int hotCrucibleID; + public static int emptyCrucibleID; + public static int ironPlateID; + public static int hotIronPlateID; + public static int coolCrucibleIronIngotID; + public static int filledCrucibleDamascusID; + public static int hotCrucibleDamascusID; + public static int myDamascusIngotID; + public static int hotDamascusIngotID; + public static int anvilForgeID; + public static int myDiamondID; + public static int lapisCrucibleID; + public static int myEmeraldID; + public static int hotLapisCrucibleID; + public static int lapisIngotID; + public static int hotLapisIngotID; + public static int redstoneIngotID; + public static int testBlockID; + public static int waterFilterID; + public static int sandFilterID; + public static int sandFilterEmptyID; + public static int filledWaterCrucibleID; + public static int solidFilterID; + public static int smallLidID; + public static int smallBarrelID; + public static int shelfFourID; + public static int fireboxID; + public static int forgeID; + public static int cannon_28ID; + public static int my28CannonBallID; + + public static void init(){ + myironingotID = RenderingRegistry.getNextAvailableRenderId(); + hotIronIngotID = RenderingRegistry.getNextAvailableRenderId(); + coolCrucibleID = RenderingRegistry.getNextAvailableRenderId(); + hotCrucibleID = RenderingRegistry.getNextAvailableRenderId(); + coolCrucibleID = RenderingRegistry.getNextAvailableRenderId(); + emptyCrucibleID = RenderingRegistry.getNextAvailableRenderId(); + ironPlateID = RenderingRegistry.getNextAvailableRenderId(); + hotIronPlateID = RenderingRegistry.getNextAvailableRenderId(); + coolCrucibleIronIngotID = RenderingRegistry.getNextAvailableRenderId(); + filledCrucibleDamascusID = RenderingRegistry.getNextAvailableRenderId(); + hotCrucibleDamascusID = RenderingRegistry.getNextAvailableRenderId(); + myDamascusIngotID = RenderingRegistry.getNextAvailableRenderId(); + hotDamascusIngotID = RenderingRegistry.getNextAvailableRenderId(); + anvilForgeID = RenderingRegistry.getNextAvailableRenderId(); + myDiamondID = RenderingRegistry.getNextAvailableRenderId(); + lapisCrucibleID = RenderingRegistry.getNextAvailableRenderId(); + myEmeraldID = RenderingRegistry.getNextAvailableRenderId(); + hotLapisCrucibleID = RenderingRegistry.getNextAvailableRenderId(); + lapisIngotID = RenderingRegistry.getNextAvailableRenderId(); + hotLapisIngotID = RenderingRegistry.getNextAvailableRenderId(); + redstoneIngotID = RenderingRegistry.getNextAvailableRenderId(); + waterFilterID = RenderingRegistry.getNextAvailableRenderId(); + sandFilterID = RenderingRegistry.getNextAvailableRenderId(); + sandFilterEmptyID = RenderingRegistry.getNextAvailableRenderId(); + filledWaterCrucibleID = RenderingRegistry.getNextAvailableRenderId(); + solidFilterID = RenderingRegistry.getNextAvailableRenderId(); + smallLidID = RenderingRegistry.getNextAvailableRenderId(); + smallBarrelID = RenderingRegistry.getNextAvailableRenderId(); + shelfFourID = RenderingRegistry.getNextAvailableRenderId(); + fireboxID = RenderingRegistry.getNextAvailableRenderId(); + forgeID = RenderingRegistry.getNextAvailableRenderId(); + cannon_28ID = RenderingRegistry.getNextAvailableRenderId(); + my28CannonBallID = RenderingRegistry.getNextAvailableRenderId(); + + testBlockID = RenderingRegistry.getNextAvailableRenderId(); + } + +} + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/RendererRegistry.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/RendererRegistry.java new file mode 100644 index 00000000..390f4a86 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/RendererRegistry.java @@ -0,0 +1,200 @@ +package com.kitsu.medievalcraft.renderer; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.renderer.blocks.BarrelLidRender; +import com.kitsu.medievalcraft.renderer.blocks.SmallBarrelRender; +import com.kitsu.medievalcraft.renderer.blocks.TestBlockRenderer; +import com.kitsu.medievalcraft.renderer.blocks.cannons.Render_CannonBall_Iron_Block; +import com.kitsu.medievalcraft.renderer.blocks.cannons.Render_Cannon_28; +import com.kitsu.medievalcraft.renderer.blocks.crucibles.IronOreCrucibleRenderer; +import com.kitsu.medievalcraft.renderer.blocks.crucibles.LapisCrucibleRenderer; +import com.kitsu.medievalcraft.renderer.blocks.crucibles.RedstoneCrucibleRenderer; +import com.kitsu.medievalcraft.renderer.blocks.crucibles.WootzCrucibleRenderer; +import com.kitsu.medievalcraft.renderer.blocks.emptycrucibles.BoilCrucibleRender; +import com.kitsu.medievalcraft.renderer.blocks.emptycrucibles.ECCrucibleRenderer; +import com.kitsu.medievalcraft.renderer.blocks.emptycrucibles.SECrucibleRenderer; +import com.kitsu.medievalcraft.renderer.blocks.emptycrucibles.SlackCrucibleRender; +import com.kitsu.medievalcraft.renderer.blocks.emptycrucibles.TanCrucibleRender; +import com.kitsu.medievalcraft.renderer.blocks.emptycrucibles.WaterCrucibleRender; +import com.kitsu.medievalcraft.renderer.blocks.ingot.DamascusIngotRenderer; +import com.kitsu.medievalcraft.renderer.blocks.ingot.IronIngotRenderer; +import com.kitsu.medievalcraft.renderer.blocks.ingot.IronPlateRenderer; +import com.kitsu.medievalcraft.renderer.blocks.ingot.LapisIngotRenderer; +import com.kitsu.medievalcraft.renderer.blocks.ingot.MyDiamondRenderer; +import com.kitsu.medievalcraft.renderer.blocks.ingot.MyEmeraldRenderer; +import com.kitsu.medievalcraft.renderer.blocks.ingot.RedstoneIngotRenderer; +import com.kitsu.medievalcraft.renderer.blocks.machine.FireboxRenderer; +import com.kitsu.medievalcraft.renderer.blocks.machine.ForgeAnvilRenderer; +import com.kitsu.medievalcraft.renderer.blocks.machine.ForgeRenderer; +import com.kitsu.medievalcraft.renderer.blocks.machine.FourShelfRenderer; +import com.kitsu.medievalcraft.renderer.blocks.machine.SolidFilterRender; +import com.kitsu.medievalcraft.renderer.blocks.machine.WaterFilterRenderer; +import com.kitsu.medievalcraft.renderer.itemrenderer.IRITSpear; +import com.kitsu.medievalcraft.renderer.itemrenderer.ItemRendererITModelArrow; +import com.kitsu.medievalcraft.renderer.itemrenderer.ItemRendererLongbow; +import com.kitsu.medievalcraft.renderer.itemrenderer.ItemRendererModelArrow; +import com.kitsu.medievalcraft.renderer.itemrenderer.cannons.IR_CannonBall_28; +import com.kitsu.medievalcraft.renderer.itemrenderer.cannons.IR_Cannon_28; +import com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.IRCrucible; +import com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty.IRSlackCrucible; +import com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty.IRTanninCrucible; +import com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty.IRWaterCrucible; +import com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty.ItemRendererECCrucible; +import com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty.ItemRendererSECrucible; +import com.kitsu.medievalcraft.renderer.itemrenderer.ingotsplates.DamascusIngotIR; +import com.kitsu.medievalcraft.renderer.itemrenderer.ingotsplates.IronIngotIR; +import com.kitsu.medievalcraft.renderer.itemrenderer.ingotsplates.IronPlateIR; +import com.kitsu.medievalcraft.renderer.itemrenderer.ingotsplates.LapisIngotIR; +import com.kitsu.medievalcraft.renderer.itemrenderer.ingotsplates.RedstoneIngotIR; +import com.kitsu.medievalcraft.renderer.itemrenderer.machines.ForgeIR; +import com.kitsu.medievalcraft.renderer.itemrenderer.machines.IRBarrelLid; +import com.kitsu.medievalcraft.renderer.itemrenderer.machines.IRFirebox; +import com.kitsu.medievalcraft.renderer.itemrenderer.machines.IRForgeAnvil; +import com.kitsu.medievalcraft.renderer.itemrenderer.machines.IRShelfFour; +import com.kitsu.medievalcraft.renderer.itemrenderer.machines.IRSmallBarrel; +import com.kitsu.medievalcraft.renderer.itemrenderer.machines.IRSolidFilter; +import com.kitsu.medievalcraft.renderer.itemrenderer.machines.IRWaterFilter; +import com.kitsu.medievalcraft.renderer.itemrenderer.tongs.IRSlottedTongs; +import com.kitsu.medievalcraft.renderer.itemrenderer.tools.IRForgeHammer; +import com.kitsu.medievalcraft.renderer.itemrenderer.tools.IRInlayHammer; +import com.kitsu.medievalcraft.renderer.itemrenderer.weapons.IRBattleAxe; +import com.kitsu.medievalcraft.renderer.itemrenderer.weapons.IRGladius; +import com.kitsu.medievalcraft.renderer.itemrenderer.weapons.ItemRenderHeavymace; +import com.kitsu.medievalcraft.renderer.itemrenderer.weapons.ItemRenderLongsword; +import com.kitsu.medievalcraft.renderer.itemrenderer.weapons.ItemRenderWoodenShield; +import com.kitsu.medievalcraft.renderer.itemrenderer.weapons.NewIronShield; +import com.kitsu.medievalcraft.tileents.TileEntitySmallBarrel; +import com.kitsu.medievalcraft.tileents.TileEntitySmallLid; +import com.kitsu.medievalcraft.tileents.TileEntityTestBlock; +import com.kitsu.medievalcraft.tileents.cannon.TileCannonBall28; +import com.kitsu.medievalcraft.tileents.cannon.TileCannon_28; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleIronOre; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleLapis; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleRedstone; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleWootz; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityBoilingWaterCrucible; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityEmptyCookedCrucible; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityFilledWaterCrucible; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntitySlackWaterCrucible; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntitySoftEmptyCrucible; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityTanWaterCrucible; +import com.kitsu.medievalcraft.tileents.ingots.TileDamascus; +import com.kitsu.medievalcraft.tileents.ingots.TileEntityMyDiamond; +import com.kitsu.medievalcraft.tileents.ingots.TileEntityMyEmerald; +import com.kitsu.medievalcraft.tileents.ingots.TileIronPlate; +import com.kitsu.medievalcraft.tileents.ingots.TileLapisIngot; +import com.kitsu.medievalcraft.tileents.ingots.TileMyIronIngot; +import com.kitsu.medievalcraft.tileents.ingots.TileRedstoneIngot; +import com.kitsu.medievalcraft.tileents.machine.TileEntityAnvilForge; +import com.kitsu.medievalcraft.tileents.machine.TileEntityFirebox; +import com.kitsu.medievalcraft.tileents.machine.TileEntityShelfFour; +import com.kitsu.medievalcraft.tileents.machine.TileEntitySolidFilter; +import com.kitsu.medievalcraft.tileents.machine.TileEntityWaterFilter; +import com.kitsu.medievalcraft.tileents.machine.TileForge; + +import cpw.mods.fml.client.registry.ClientRegistry; +import net.minecraft.item.Item; +import net.minecraftforge.client.MinecraftForgeClient; + +public class RendererRegistry { + + public static final void init() { + MinecraftForgeClient.registerItemRenderer(ModItems.woodenShield, new ItemRenderWoodenShield()); + MinecraftForgeClient.registerItemRenderer(ModItems.ironShield, new NewIronShield()); + + MinecraftForgeClient.registerItemRenderer(ModItems.longSword, new ItemRenderLongsword()); + MinecraftForgeClient.registerItemRenderer(ModItems.heavyMace, new ItemRenderHeavymace()); + MinecraftForgeClient.registerItemRenderer(ModItems.battleAxe, new IRBattleAxe()); + MinecraftForgeClient.registerItemRenderer(ModItems.gladius, new IRGladius()); + //MinecraftForgeClient.registerItemRenderer(ModItems.workBlade, new IRCraftingBlade()); + + MinecraftForgeClient.registerItemRenderer(ModItems.slottedTongs, new IRSlottedTongs()); + + MinecraftForgeClient.registerItemRenderer(ModItems.longbow, new ItemRendererLongbow()); + + MinecraftForgeClient.registerItemRenderer(ModItems.forgeHammer, new IRForgeHammer()); + MinecraftForgeClient.registerItemRenderer(ModItems.inlayHammer, new IRInlayHammer()); + //MinecraftForgeClient.registerItemRenderer(ModItems.customIronPick, new IRironPicks()); + + MinecraftForgeClient.registerItemRenderer(ModItems.itemModelArrow, new ItemRendererModelArrow()); + MinecraftForgeClient.registerItemRenderer(ModItems.itemIronTippedModelArrow, new ItemRendererITModelArrow()); + MinecraftForgeClient.registerItemRenderer(ModItems.itemITSpear, new IRITSpear()); + + + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.cannon_28), new IR_Cannon_28()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.cannonBall_28), new IR_CannonBall_28()); + + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.emptySoftCrucible), new ItemRendererSECrucible()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.emptyCookedCrucible), new ItemRendererECCrucible()); + + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.forgeAnvil), new IRForgeAnvil()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.waterFilter), new IRWaterFilter()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.solidFilter), new IRSolidFilter()); + + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.filledWaterCrucible), new IRWaterCrucible()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.boilingWaterCrucible), new IRWaterCrucible()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.tanWaterCrucible), new IRTanninCrucible()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.slackWaterCrucible), new IRSlackCrucible()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.smallBarrel), new IRSmallBarrel()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.smallBarrelLid), new IRBarrelLid()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.shelfFour), new IRShelfFour()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.firebox), new IRFirebox()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.forge), new ForgeIR()); + + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.crucibleIronOre), new IRCrucible()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.crucibleIronIngot), new IRCrucible()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.crucibleWootz), new IRCrucible()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.crucibleLapis), new IRCrucible()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.crucibleRedstone), new IRCrucible()); + + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.refinedIron), new IronIngotIR()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.damascus), new DamascusIngotIR()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.ironPlate), new IronPlateIR()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.lapisIngot), new LapisIngotIR()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.redstoneIngot), new RedstoneIngotIR()); + + ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoftEmptyCrucible.class, new SECrucibleRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEmptyCookedCrucible.class, new ECCrucibleRenderer()); + + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAnvilForge.class, new ForgeAnvilRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMyDiamond.class, new MyDiamondRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMyEmerald.class, new MyEmeraldRenderer()); + + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWaterFilter.class, new WaterFilterRenderer()); + + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTanWaterCrucible.class, new TanCrucibleRender()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFilledWaterCrucible.class, new WaterCrucibleRender()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBoilingWaterCrucible.class, new BoilCrucibleRender()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySlackWaterCrucible.class, new SlackCrucibleRender()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySolidFilter.class, new SolidFilterRender()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySmallLid.class, new BarrelLidRender()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySmallBarrel.class, new SmallBarrelRender()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShelfFour.class, new FourShelfRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFirebox.class, new FireboxRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFirebox.class, new FireboxRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileForge.class, new ForgeRenderer()); + + ClientRegistry.bindTileEntitySpecialRenderer(TileCrucibleLapis.class, new LapisCrucibleRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileCrucibleIronOre.class, new IronOreCrucibleRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileCrucibleWootz.class, new WootzCrucibleRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileCrucibleRedstone.class, new RedstoneCrucibleRenderer()); + + ClientRegistry.bindTileEntitySpecialRenderer(TileMyIronIngot.class, new IronIngotRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileDamascus.class, new DamascusIngotRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileIronPlate.class, new IronPlateRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileRedstoneIngot.class, new RedstoneIngotRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileLapisIngot.class, new LapisIngotRenderer()); + + ClientRegistry.bindTileEntitySpecialRenderer(TileCannon_28.class, new Render_Cannon_28()); + ClientRegistry.bindTileEntitySpecialRenderer(TileCannonBall28.class, new Render_CannonBall_Iron_Block()); + + + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTestBlock.class, new TestBlockRenderer()); + + + + + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/BarrelLidRender.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/BarrelLidRender.java new file mode 100644 index 00000000..b2c9de44 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/BarrelLidRender.java @@ -0,0 +1,115 @@ +package com.kitsu.medievalcraft.renderer.blocks; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.tileents.TileEntitySmallLid; + +import cpw.mods.fml.client.FMLClientHandler; + +public class BarrelLidRender extends TileEntitySpecialRenderer { + + public static final ResourceLocation MODEL = new ResourceLocation("kitsumedievalcraft:models/BarrelLid.obj"); + private ResourceLocation loc; + private ResourceLocation TEXTURE9 = new ResourceLocation("kitsumedievalcraft:models/BarrelLidRing.png"); + private ResourceLocation TEXTURE8 = new ResourceLocation("kitsumedievalcraft:models/BarrelLid8.png"); + private ResourceLocation TEXTURE7 = new ResourceLocation("kitsumedievalcraft:models/BarrelLid7.png"); + private ResourceLocation TEXTURE6 = new ResourceLocation("kitsumedievalcraft:models/BarrelLid6.png"); + private ResourceLocation TEXTURE5 = new ResourceLocation("kitsumedievalcraft:models/BarrelLid5.png"); + private ResourceLocation TEXTURE4 = new ResourceLocation("kitsumedievalcraft:models/BarrelLid4.png"); + private ResourceLocation TEXTURE3 = new ResourceLocation("kitsumedievalcraft:models/BarrelLid3.png"); + private ResourceLocation TEXTURE2 = new ResourceLocation("kitsumedievalcraft:models/BarrelLid2.png"); + private ResourceLocation TEXTURE1 = new ResourceLocation("kitsumedievalcraft:models/BarrelLid1.png"); + private ResourceLocation TEXTURE0 = new ResourceLocation("kitsumedievalcraft:models/BarrelLid0.png"); + + //private IModelCustom model; + private IModelCustom model = AdvancedModelLoader.loadModel(MODEL); + + @Override + public void renderTileEntityAt(TileEntity tileEnt, double x, double y, double z, float scale) { + + GL11.glPushMatrix(); + // This will move our renderer so that it will be on proper place in the + // world + GL11.glTranslatef((float) x, (float) y, (float) z); + TileEntitySmallLid tile = (TileEntitySmallLid) tileEnt; + + if(tile.logs==0){ + loc = TEXTURE0; + tile.markForUpdate(); + tile.markDirty(); + } + if(tile.logs==1){ + loc = TEXTURE1; + tile.markForUpdate(); + tile.markDirty(); + } + if(tile.logs==2){ + loc = TEXTURE2; + tile.markForUpdate(); + tile.markDirty(); + } + if(tile.logs==3){ + loc = TEXTURE3; + tile.markForUpdate(); + tile.markDirty(); + } + if(tile.logs==4){ + loc = TEXTURE4; + tile.markForUpdate(); + tile.markDirty(); + } + if(tile.logs==5){ + loc = TEXTURE5; + tile.markForUpdate(); + tile.markDirty(); + } + if(tile.logs==6){ + loc = TEXTURE6; + tile.markForUpdate(); + tile.markDirty(); + } + if(tile.logs==7){ + loc = TEXTURE7; + tile.markForUpdate(); + tile.markDirty(); + } + if(tile.logs==8){ + loc = TEXTURE8; + tile.markForUpdate(); + tile.markDirty(); + } + if(tile.ring==1){ + loc = TEXTURE9; + tile.markForUpdate(); + tile.markDirty(); + } + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(loc); + renderBlock(tile, tileEnt.getWorldObj(), tileEnt.xCoord,tileEnt.yCoord, tileEnt.zCoord, ModBlocks.smallBarrelLid); + GL11.glPopMatrix(); + } + + + public void renderBlock(TileEntitySmallLid tl, World world, int i, int j,int k, Block block) { + + GL11.glPushMatrix(); + //GL11.glRotatef(15F, 0F, 1F, 0F); + float scale = 0.3F; + GL11.glScalef(scale, scale+0.1F, scale); + GL11.glTranslatef(1.66F,0.06F,1.66F); + GL11.glRotatef(45F, 0.0F, 1.0F, 0.0F); + + this.model.renderAll(); + GL11.glPopMatrix(); + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/RenderModelArrow.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/RenderModelArrow.java new file mode 100644 index 00000000..e6b3b51e --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/RenderModelArrow.java @@ -0,0 +1,64 @@ +package com.kitsu.medievalcraft.renderer.blocks; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +import com.kitsu.medievalcraft.entity.EntityModelArrow; + + +public class RenderModelArrow extends Render +{ + + //private static final ResourceLocation arrowTextures = new ResourceLocation("textures/entity/arrow.png"); + private static final ResourceLocation arrowTextures = new ResourceLocation("kitsumedievalcraft:models/modelarrow.png"); + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/ModelArrow.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/modelarrow.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + public void doRender(EntityModelArrow p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) + { + GL11.glPushMatrix(); + GL11.glScalef(1.0F, 1.0F, 1.0F); + GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_ ); + GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } + + /*protected ResourceLocation getEntityTexture(EntityModelArrow p_110775_1_) + { + return arrowTextures; + }*/ + + /** + * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture. + */ + protected ResourceLocation getEntityTexture(Entity p_110775_1_) + { + return this.getEntityTexture((EntityModelArrow)p_110775_1_); + } + + /** + * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then + * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic + * (Render3&&tile.getBlockMetadata()<8){ + loc = TEXTURE1; + } + if(tile.getBlockMetadata()>7){ + loc = TEXTURE2; + } + + if(loc == null){ + loc = TEXTURE; + } + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(loc); + renderBlock(tileEntity, tile.getWorldObj(), tile.xCoord,tile.yCoord, tile.zCoord, ModBlocks.forge); + GL11.glPopMatrix(); + + } + + public void renderBlock(TileForge tl, World world, int i, int j,int k, Block block) { + GL11.glPushMatrix(); + float scale = 0.50f; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(1.0F, 1.0F, 1.0F); + int dir = world.getBlockMetadata(i, j, k); + + if(dir == 2||dir == 6||dir == 10){ + GL11.glRotated(-180F, 0.0, 1.0F, 0.0F); + } + if(dir == 3||dir == 7||dir == 11){ + } + if(dir == 0||dir == 4||dir == 8){ + GL11.glRotated(90F, 0.0, 1.0F, 0.0F); + } + if(dir == 1||dir == 5||dir == 9){ + GL11.glRotated(-90F, 0.0, 1.0F, 0.0F); + } + + + this.model.renderAll(); + GL11.glPopMatrix(); + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/FourShelfRenderer.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/FourShelfRenderer.java new file mode 100644 index 00000000..ce0cfb68 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/FourShelfRenderer.java @@ -0,0 +1,263 @@ +package com.kitsu.medievalcraft.renderer.blocks.machine; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.tileents.machine.TileEntityShelfFour; + +import cpw.mods.fml.client.FMLClientHandler; + +public class FourShelfRenderer extends TileEntitySpecialRenderer { + + private EntityItem entItem = null; + private EntityItem entItem1 = null; + private EntityItem entItem2 = null; + private EntityItem entItem3 = null; + private static final ResourceLocation MODEL = new ResourceLocation("kitsumedievalcraft:models/Shelf.obj"); + private static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/ShelfMini32.png"); + private IModelCustom model = AdvancedModelLoader.loadModel(MODEL); + + // THE FKNG RENDERER NEEDS TO KNOW WHAT THE FK TO RENDER; SEND IT A FKNG ITEMSTACK + @Override + public void renderTileEntityAt(TileEntity tileEnt, double x, double y, double z, float scale) { + TileEntityShelfFour tileEntityBlock = (TileEntityShelfFour) tileEnt; + //World world = tileEnt.getWorldObj(); + //System.out.println(tileEntityBlock.getStackInSlot(0)); + int dir = tileEnt.blockMetadata; + GL11.glPushMatrix(); + + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotated(90F, 0.0, 1.0F, 0.0F); + + renderBlock(tileEntityBlock, tileEnt.getWorldObj(), tileEnt.xCoord,tileEnt.yCoord, tileEnt.zCoord, ModBlocks.shelfFour); + + if(tileEntityBlock.getStackInSlot(0) != null){ + entItem = new EntityItem(tileEntityBlock.getWorldObj(), x, y, z, tileEntityBlock.getStackInSlot(0)); + if(dir == 0){ + GL11.glPushMatrix(); + this.entItem.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + GL11.glRotatef(90, 0, 1, 0); + RenderManager.instance.renderEntityWithPosYaw(entItem, -1.175D, 0.95D, -0.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + if(dir == 1){ + GL11.glPushMatrix(); + this.entItem.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + RenderManager.instance.renderEntityWithPosYaw(entItem, -1.175D, 0.95D, 1.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + if(dir == 2){ + GL11.glPushMatrix(); + this.entItem.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + GL11.glRotatef(-90, 0, 1, 0); + RenderManager.instance.renderEntityWithPosYaw(entItem, 0.5D, 0.95D, 1.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + if(dir == 3){ + GL11.glPushMatrix(); + this.entItem.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + GL11.glRotatef(180, 0, 1, 0); + RenderManager.instance.renderEntityWithPosYaw(entItem, 0.5D, 0.95D, -0.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + tileEntityBlock.markForUpdate(); + tileEntityBlock.markDirty(); + } + if(tileEntityBlock.getStackInSlot(1) != null){ + entItem1 = new EntityItem(tileEntityBlock.getWorldObj(), x, y, z, tileEntityBlock.getStackInSlot(1)); + if(dir == 0){ + GL11.glPushMatrix(); + this.entItem1.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + GL11.glRotatef(90, 0, 1, 0);; + RenderManager.instance.renderEntityWithPosYaw(entItem1, -0.4D, 0.95D, -0.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + if(dir == 1){ + GL11.glPushMatrix(); + this.entItem1.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + RenderManager.instance.renderEntityWithPosYaw(entItem1, -0.4D, 0.95D, 1.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + if(dir == 2){ + GL11.glPushMatrix(); + this.entItem1.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + GL11.glRotatef(-90, 0, 1, 0); + RenderManager.instance.renderEntityWithPosYaw(entItem1, 1.25D, 0.95D, 1.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + if(dir == 3){ + GL11.glPushMatrix(); + this.entItem1.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + GL11.glRotatef(180, 0, 1, 0); + RenderManager.instance.renderEntityWithPosYaw(entItem1, 1.25D, 0.95D, -0.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + tileEntityBlock.markForUpdate(); + tileEntityBlock.markDirty(); + } + if(tileEntityBlock.getStackInSlot(2) != null){ + entItem2 = new EntityItem(tileEntityBlock.getWorldObj(), x, y, z, tileEntityBlock.getStackInSlot(2)); + if(dir == 0){ + GL11.glPushMatrix(); + this.entItem2.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + GL11.glRotatef(90, 0, 1, 0);; + RenderManager.instance.renderEntityWithPosYaw(entItem2, -1.175D, 0.25D, -0.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + if(dir == 1){ + GL11.glPushMatrix(); + this.entItem2.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + RenderManager.instance.renderEntityWithPosYaw(entItem2, -1.175D, 0.25D, 1.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + if(dir == 2){ + GL11.glPushMatrix(); + this.entItem2.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + GL11.glRotatef(-90, 0, 1, 0); + RenderManager.instance.renderEntityWithPosYaw(entItem2, 0.5D, 0.25D, 1.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + if(dir == 3){ + GL11.glPushMatrix(); + this.entItem2.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + GL11.glRotatef(180, 0, 1, 0); + RenderManager.instance.renderEntityWithPosYaw(entItem2, 0.5D, 0.25D, -0.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + tileEntityBlock.markForUpdate(); + tileEntityBlock.markDirty(); + } + if(tileEntityBlock.getStackInSlot(3) != null){ + entItem3 = new EntityItem(tileEntityBlock.getWorldObj(), x, y, z, tileEntityBlock.getStackInSlot(3)); + if(dir == 0){ + GL11.glPushMatrix(); + this.entItem3.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + GL11.glRotatef(90, 0, 1, 0);; + RenderManager.instance.renderEntityWithPosYaw(entItem3, -0.4D, 0.25D, -0.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + if(dir == 1){ + GL11.glPushMatrix(); + this.entItem3.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + RenderManager.instance.renderEntityWithPosYaw(entItem3, -0.4D, 0.25D, 1.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + if(dir == 2){ + GL11.glPushMatrix(); + this.entItem3.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + GL11.glRotatef(-90, 0, 1, 0); + RenderManager.instance.renderEntityWithPosYaw(entItem3, 1.25D, 0.25D, 1.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + if(dir == 3){ + GL11.glPushMatrix(); + this.entItem3.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScalef(0.6f, 0.6f, 0.6f); + GL11.glRotatef(180, 0, 1, 0); + RenderManager.instance.renderEntityWithPosYaw(entItem3, 1.25D, 0.25D, -0.35D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); + } + tileEntityBlock.markForUpdate(); + tileEntityBlock.markDirty(); + } + GL11.glPopMatrix(); + } + +public void renderBlock(TileEntityShelfFour tl, World world, int i, int j,int k, Block block) { + Tessellator tessellator = Tessellator.instance; + // This will make your block brightness dependent from surroundings + // lighting. + float f = block.getLightOpacity(world, i, j, k); + int l = world.getLightBrightnessForSkyBlocks(i, j, k, 0); + int l1 = l % 65536; + int l2 = l / 65536; + tessellator.setColorOpaque_F(f, f, f); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit,(float) l1, (float) l2); + + + GL11.glPushMatrix(); + + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(0F, 1F, 1F); + int dir = world.getBlockMetadata(i, j, k); + if(dir == 1){ + GL11.glTranslatef(-1F, 0F, 1F); + GL11.glRotated(-90F, 0.0, 1.0F, 0.0F); + } + if(dir == 2){ + GL11.glTranslatef(-2F, 0F, 0F); + GL11.glRotated(-180F, 0.0, 1.0F, 0.0F); + } + if(dir == 3){ + GL11.glTranslatef(-1F, 0F, -1F); + GL11.glRotated(90F, 0.0, 1.0F, 0.0F); + } + //GL11.glRotatef(15F, 0F, 1F, 0F); + FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE); + + this.model.renderAll(); + GL11.glPopMatrix(); +} + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/SolidFilterRender.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/SolidFilterRender.java new file mode 100644 index 00000000..6f437bb7 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/SolidFilterRender.java @@ -0,0 +1,74 @@ +package com.kitsu.medievalcraft.renderer.blocks.machine; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.tileents.machine.TileEntitySolidFilter; + +import cpw.mods.fml.client.FMLClientHandler; + +public class SolidFilterRender extends TileEntitySpecialRenderer { + + private ResourceLocation loc; + private static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/SandFilter.obj"); + private static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/SandFilter.png"); + private static final ResourceLocation TEXTUREEMPTY = new ResourceLocation("kitsumedievalcraft:models/SandFilterEmpty.png"); + private IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public void renderTileEntityAt(TileEntity tileEnt, double x, double y, double z, float scale) { + + GL11.glPushMatrix(); + + GL11.glTranslatef((float) x, (float) y, (float) z); + TileEntitySolidFilter tileEntityBlock = (TileEntitySolidFilter) tileEnt; + if(tileEntityBlock.getStackInSlot(0)!=null){ + if((tileEntityBlock.getStackInSlot(0).getItem()==ModItems.coarseFilter)||(tileEntityBlock.getStackInSlot(0).getItem()==ModItems.mediumFilter)||(tileEntityBlock.getStackInSlot(0).getItem()==ModItems.fineFilter)){ + loc = TEXTURE; + } + } + if(tileEntityBlock.getStackInSlot(0)==null){ + loc = TEXTUREEMPTY; + } + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(loc); + renderBlock(tileEntityBlock, tileEnt.getWorldObj(), tileEnt.xCoord,tileEnt.yCoord, tileEnt.zCoord, ModBlocks.solidFilter); + GL11.glPopMatrix(); + } + + @SuppressWarnings({ "cast"}) + public void renderBlock(TileEntitySolidFilter tl, World world, int i, int j,int k, Block block) { + Tessellator tessellator = Tessellator.instance; + // This will make your block brightness dependent from surroundings + // lighting. + float f = block.getLightOpacity(world, i, j, k); + int l = world.getLightBrightnessForSkyBlocks(i, j, k, 0); + int l1 = l % 65536; + int l2 = l / 65536; + tessellator.setColorOpaque_F(f, f, f); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit,(float) l1, (float) l2); + + GL11.glPushMatrix(); + //GL11.glRotatef(15F, 0F, 1F, 0F); + float scale = 0.8F; + GL11.glScalef(scale, scale-0.05F, scale); + GL11.glTranslatef(0.62F,0.58F,0.62F); + + this.model.renderAll(); + GL11.glPopMatrix(); + } + +} + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/WaterFilterRenderer.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/WaterFilterRenderer.java new file mode 100644 index 00000000..9c977f4e --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/blocks/machine/WaterFilterRenderer.java @@ -0,0 +1,51 @@ +package com.kitsu.medievalcraft.renderer.blocks.machine; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.tileents.machine.TileEntityWaterFilter; + +import cpw.mods.fml.client.FMLClientHandler; + +public class WaterFilterRenderer extends TileEntitySpecialRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/WaterFilter.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/WaterFilter.png"); + private IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public void renderTileEntityAt(TileEntity tileEnt, double x, double y, double z, float scale) { + + GL11.glPushMatrix(); + + GL11.glTranslatef((float) x, (float) y, (float) z); + TileEntityWaterFilter tileEntityBlock = (TileEntityWaterFilter) tileEnt; + + renderBlock(tileEntityBlock, tileEnt.getWorldObj(), tileEnt.xCoord,tileEnt.yCoord, tileEnt.zCoord, ModBlocks.waterFilter); + GL11.glPopMatrix(); + } + + @SuppressWarnings({ "cast"}) + public void renderBlock(TileEntityWaterFilter tl, World world, int i, int j,int k, Block block) { + + GL11.glPushMatrix(); + + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(1.0F, 1.09F, 1.0F); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE); + + this.model.renderAll(); + GL11.glPopMatrix(); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/IRITSpear.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/IRITSpear.java new file mode 100644 index 00000000..495ec26f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/IRITSpear.java @@ -0,0 +1,145 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class IRITSpear implements IItemRenderer{ + + public static final ResourceLocation MODEL = new ResourceLocation("kitsumedievalcraft:models/Spear.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/Spear.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return false; + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + case EQUIPPED: { + GL11.glPushMatrix(); + GL11.glScalef(1.0F, 1.0F, 1.0F); + if(item.getMaxDamage()==500){ + GL11.glTranslatef(0.5F, 0.6F, -0.125F); + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + } + if(item.getMaxDamage()==100){ + GL11.glTranslatef(0.5F, 0.4F, -0.0F); + GL11.glRotatef(140F, 0.0F, 0.0F, 1.0F); + } + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + GL11.glScalef(1.0F, 1.0F, 1.0F); + + if(item.getMaxDamage()==500){ + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0.0F, 0.8F, -0.2F); + } + if(item.getMaxDamage()==100){ + GL11.glRotatef(110F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0.0F, -0.5F, -0.2F); + } + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float iscale = 5F; + GL11.glScalef(iscale, iscale, iscale); + GL11.glTranslatef(1.5F, 1.5F, 0.0F); + GL11.glRotatef(-45, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + //GL11.glTranslatef(0.2F, 1.2F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + GL11.glScalef(2.0F, 2.0F, 2.0F); + //GL11.glTranslatef(5.0F, 5.0F, 5.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); + //GL11.glRotatef(90F, 1.0F, 0.0F, 1.0F); + //GL11.glRotatef(45F, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + model.renderAll(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/IRIronShieldNOT.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/IRIronShieldNOT.java new file mode 100644 index 00000000..807f21e8 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/IRIronShieldNOT.java @@ -0,0 +1,166 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; +//import com.kitsu.medievalcraft.models.Model; + + + +public class IRIronShieldNOT implements IItemRenderer { + + public static final ResourceLocation IRON_SHIELD = new ResourceLocation("kitsumedievalcraft:models/IronShield.obj"); + public static final ResourceLocation ironshield = new ResourceLocation("kitsumedievalcraft:models/ironshield.png"); + //private static RenderItem renderItem = new RenderItem(); + public static boolean use; + + + public IModelCustom model = AdvancedModelLoader.loadModel(IRON_SHIELD); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + //System.out.println(use); + + switch(type) { + + case EQUIPPED: { + + //EntityClientPlayerMP entityclientplayermp = this.mc.thePlayer; + + + //System.out.println(a + " : " + b); + GL11.glPushMatrix(); + + float scale = 0.75F; + GL11.glScalef(scale, scale, scale); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(30F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-20F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.5F, -0.1F, -0.1F); + + Minecraft.getMinecraft().renderEngine.bindTexture(ironshield); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + + GL11.glPushMatrix(); + GL11.glScalef(0.6F, 0.6F, 0.6F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(0F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(10F, 0.0F, 0.0F, 0.0F); + GL11.glRotatef(50F, 0.0F, 1.0F, 0.0F); + + GL11.glRotated(75, 1.0, 0.0, 0.0); + GL11.glRotated(90, 0.0, 1.0, 0.0); + + GL11.glTranslatef(1.3F, 0.5F, 1.2F); + + Minecraft.getMinecraft().renderEngine.bindTexture(ironshield); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glScalef(4.4F, 4.4F, 4.4F); + GL11.glTranslatef(1.2F, 1.5F, 5.0F); + //GL11.glRotatef(10, 0.0F, 1.0F, 1.0F); + GL11.glRotatef(180, 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(4, 0.0F, 1.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(ironshield); + model.renderAll(); + + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + + GL11.glScalef(0.9F, 0.9F, 0.9F); + //GL11.glTranslatef(1.8F, 2.46F, 0.0F); + //GL11.glRotatef(180, 0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(ironshield); + model.renderAll(); + + GL11.glPopMatrix(); + + + } break; + + default: + break; + } + } + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ItemRendererITModelArrow.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ItemRendererITModelArrow.java new file mode 100644 index 00000000..ec45599f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ItemRendererITModelArrow.java @@ -0,0 +1,154 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class ItemRendererITModelArrow implements IItemRenderer{ + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/ModelArrow.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/irontippedmodelarrow.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.EQUIPPED_BLOCK || + helper == ItemRendererHelper.INVENTORY_BLOCK || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glScalef(1.0F, 1.0F, 1.0F); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-20F, 0.0F, 1.0F, 0.0F); + //GL11.glRotatef(40F, 1.0F, 0.0F, 0.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.1F, -0.55F, 0.05F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + GL11.glScalef(1.0F, 1.0F, 1.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + + //GL11.glRotated(-85, 1.0, 0.0, 0.0); + //GL11.glRotated(50, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(3, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float iscale = 9F; + GL11.glScalef(iscale, iscale, iscale); + GL11.glRotatef(-45, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(45, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(0.2F, 1.2F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + GL11.glScalef(1.0F, 1.0F, 1.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(45F, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(-0.0F, -0.2F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ItemRendererLongbow.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ItemRendererLongbow.java new file mode 100644 index 00000000..1662f522 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ItemRendererLongbow.java @@ -0,0 +1,436 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class ItemRendererLongbow implements IItemRenderer { + + //MODELS + //public static final ResourceLocation MODEL_X = new ResourceLocation("kitsumedievalcraft:models/NewLongbow.obj"); + public static final ResourceLocation MODEL_0 = new ResourceLocation("kitsumedievalcraft:models/Longbow0.obj"); + public static final ResourceLocation MODEL_1 = new ResourceLocation("kitsumedievalcraft:models/Longbow1.obj"); + public static final ResourceLocation MODEL_2 = new ResourceLocation("kitsumedievalcraft:models/Longbow2.obj"); + public static final ResourceLocation MODEL_3 = new ResourceLocation("kitsumedievalcraft:models/Longbow3.obj"); + public static final ResourceLocation MODEL_4 = new ResourceLocation("kitsumedievalcraft:models/Longbow4.obj"); + public static final ResourceLocation MODEL_5 = new ResourceLocation("kitsumedievalcraft:models/Longbow5.obj"); + public static final ResourceLocation MODEL_6 = new ResourceLocation("kitsumedievalcraft:models/Longbow6.obj"); + public static final ResourceLocation MODEL_7 = new ResourceLocation("kitsumedievalcraft:models/Longbow7.obj"); + public static final ResourceLocation MODEL_8 = new ResourceLocation("kitsumedievalcraft:models/Longbow8.obj"); + public static final ResourceLocation MODEL_9 = new ResourceLocation("kitsumedievalcraft:models/Longbow9.obj"); + public static final ResourceLocation MODEL_10 = new ResourceLocation("kitsumedievalcraft:models/Longbow10.obj"); + public static final ResourceLocation MODELARROW = new ResourceLocation("kitsumedievalcraft:models/ModelArrow.obj"); + //TEXTURES + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/LongbowRig.png"); + public static final ResourceLocation ARROWTEXTURE = new ResourceLocation("kitsumedievalcraft:models/modelarrow.png"); + + //ASSIGN MODELLOADER + public IModelCustom model_0 = AdvancedModelLoader.loadModel(MODEL_0); + //public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_X);; + public IModelCustom model_1 = AdvancedModelLoader.loadModel(MODEL_1); + public IModelCustom model_2 = AdvancedModelLoader.loadModel(MODEL_2); + public IModelCustom model_3 = AdvancedModelLoader.loadModel(MODEL_3); + public IModelCustom model_4 = AdvancedModelLoader.loadModel(MODEL_4); + public IModelCustom model_5 = AdvancedModelLoader.loadModel(MODEL_5); + public IModelCustom model_6 = AdvancedModelLoader.loadModel(MODEL_6); + public IModelCustom model_7 = AdvancedModelLoader.loadModel(MODEL_7); + public IModelCustom model_8 = AdvancedModelLoader.loadModel(MODEL_8); + public IModelCustom model_9 = AdvancedModelLoader.loadModel(MODEL_9); + public IModelCustom model_10 = AdvancedModelLoader.loadModel(MODEL_10); + public IModelCustom model_arrow = AdvancedModelLoader.loadModel(MODELARROW); + + private float x0 = 0.15F; + private float x1 = 0.30F; + private float x2 = 0.45F; + private float x3 = 0.60F; + private float x4 = 0.75F; + private float x5 = 0.90F; + private float x6 = 1.05F; + private float x7 = 1.2F; + private float x8 = 1.35F; + private float x9 = 1.5F; + //private float x10 = 1.65F; + private float a = 1.8F; + + + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + private void shootingRotate(){ + GL11.glTranslatef(-1.75F, -0.75F, 1.5F); + GL11.glRotated(70, 1.0, 0.0, 0.0); + GL11.glRotated(20, 0.0, 1.0, 0.0); + GL11.glRotated(10, 0.0, 0.0, 1.0); + } + + @Override + public void renderItem(ItemRenderType type, ItemStack stack, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glRotated(190, 0.0, 1.0, 0.0); + GL11.glRotated(-14, 0.0, 0.0, 1.0); + GL11.glRotated(-11, 1.0, 0.0, 0.0); + float equipScale = 0.55F; + GL11.glScalef(equipScale,equipScale, equipScale); + + GL11.glTranslatef(-0.75F, 0.0F, -0.45F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + + if(stack.stackTagCompound.getInteger("D") == 0){ + GL11.glTranslatef(0.0F, 0.0F, 0.2F); + model_0.renderAll(); + } + + if(stack.stackTagCompound.getInteger("D") == 1){ + model_1.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F-x0, -0.075F, 0.1F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 2){ + model_2.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x1, -0.075F, 0.1F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 3){ + + model_3.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x2, -0.075F, 0.1F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 4){ + + model_4.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x3, -0.075F, 0.1F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 5){ + + model_5.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x4, -0.075F, 0.1F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 6){ + + model_6.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x5, -0.075F, 0.1F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 7){ + + model_7.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x6, -0.075F, 0.1F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 8){ + + model_8.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x7, -0.075F, 0.1F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 9){ + + model_9.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x8, -0.075F, 0.1F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 10){ + + model_10.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x9, -0.075F, 0.1F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + GL11.glRotated(-20, 0.0, 1.0, 0.0); + GL11.glRotated(50, 0.0, 0.0, 1.0); + GL11.glRotated(5, 1.0, 0.0, 0.0); + float equipScale = 0.55F; + GL11.glScalef(equipScale,equipScale, equipScale); + GL11.glRotatef(270F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(280F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(0.4F, 1.4F, -2.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + + if(stack.stackTagCompound.getInteger("D") == 0){ + + model_0.renderAll(); + } + + if(stack.stackTagCompound.getInteger("D") == 1){ + shootingRotate(); + + model_1.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F-x0, -0.075F, 0.2F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 2){ + + shootingRotate(); + + model_2.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x1, -0.075F, 0.2F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 3){ + shootingRotate(); + + model_3.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x2, -0.075F, 0.2F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 4){ + shootingRotate(); + + model_4.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x3, -0.075F, 0.2F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 5){ + shootingRotate(); + + model_5.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x4, -0.075F, 0.2F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 6){ + shootingRotate(); + + model_6.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x5, -0.075F, 0.2F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 7){ + shootingRotate(); + + model_7.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x6, -0.075F, 0.2F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 8){ + shootingRotate(); + + model_8.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x7, -0.075F, 0.2F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 9){ + shootingRotate(); + + model_9.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x8, -0.075F, 0.2F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + if(stack.stackTagCompound.getInteger("D") == 10){ + shootingRotate(); + + model_10.renderAll(); + GL11.glPushMatrix(); + GL11.glScalef(a, a, a); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.68F - x9, -0.075F, 0.2F); + Minecraft.getMinecraft().renderEngine.bindTexture(ARROWTEXTURE); + model_arrow.renderAll(); + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + float invScale = 1.8F; + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glScalef(invScale+1, invScale, invScale); + + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-35, 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(0, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(-15.0F, 2.2F, 3.9F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model_0.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float eScale = 0.45F; + GL11.glScalef(eScale, eScale, eScale); + + GL11.glTranslatef(0.0F, 3.9F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model_0.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ItemRendererModelArrow.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ItemRendererModelArrow.java new file mode 100644 index 00000000..654bbf0a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ItemRendererModelArrow.java @@ -0,0 +1,154 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class ItemRendererModelArrow implements IItemRenderer{ + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/ModelArrow.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/modelarrow.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.EQUIPPED_BLOCK || + helper == ItemRendererHelper.INVENTORY_BLOCK || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glScalef(1.0F, 1.0F, 1.0F); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-20F, 0.0F, 1.0F, 0.0F); + //GL11.glRotatef(40F, 1.0F, 0.0F, 0.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.1F, -0.55F, 0.05F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + GL11.glScalef(1.0F, 1.0F, 1.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + + //GL11.glRotated(-85, 1.0, 0.0, 0.0); + //GL11.glRotated(50, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(3, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float iscale = 9F; + GL11.glScalef(iscale, iscale, iscale); + GL11.glRotatef(-45, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(45, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(0.2F, 1.2F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + GL11.glScalef(1.0F, 1.0F, 1.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(45F, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(-0.0F, -0.2F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/cannons/IR_CannonBall_28.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/cannons/IR_CannonBall_28.java new file mode 100644 index 00000000..390a4e5f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/cannons/IR_CannonBall_28.java @@ -0,0 +1,143 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.cannons; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class IR_CannonBall_28 implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/cannon_ball.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/CannonBall.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(22F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.8F, 0.4F, 0.3F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.8F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + GL11.glTranslatef(0.5F, 1.F, 1.0F); + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(-50F, 0.0F, 1.0F, 0.0F); + //GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 1.4F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.0F, -0.05F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + //GL11.glScalef(1.75F, 1.75F, 1.75F); + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/cannons/IR_Cannon_28.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/cannons/IR_Cannon_28.java new file mode 100644 index 00000000..aad0d046 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/cannons/IR_Cannon_28.java @@ -0,0 +1,156 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.cannons; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class IR_Cannon_28 implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/Cannon.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/Cannon.png"); + + private static final ResourceLocation MODEL_MOUNT = new ResourceLocation("kitsumedievalcraft:models/cannon_mount.obj"); + private static final ResourceLocation TEXTURE_MOUNT = new ResourceLocation("kitsumedievalcraft:models/cannon_mount.png"); + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + private IModelCustom modelMount = AdvancedModelLoader.loadModel(MODEL_MOUNT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 1.0F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(22F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(0.7F, 0.3F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_MOUNT); + modelMount.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.8F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + GL11.glTranslatef(0.5F, 1.F, 1.0F); + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(-50F, 0.0F, 1.0F, 0.0F); + //GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_MOUNT); + modelMount.renderAll(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.75F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.3F, 0.2F, 0.35F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_MOUNT); + modelMount.renderAll(); + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float scale = 3; + GL11.glScalef(scale, scale, scale); + + + + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_MOUNT); + modelMount.renderAll(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/IRCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/IRCrucible.java new file mode 100644 index 00000000..f18cb06a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/IRCrucible.java @@ -0,0 +1,133 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.crucibles; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRCrucible implements IItemRenderer{ + + private static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/CrucibleModel.obj"); + private static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/Crucible.png"); + + private IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.45F; + GL11.glScalef(scale, scale, scale); + + GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(60F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(0.2F, -2.9F, 2.1F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.4F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.5F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + GL11.glTranslatef(0.0F, -1.1F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/IRSlackCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/IRSlackCrucible.java new file mode 100644 index 00000000..1dec869c --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/IRSlackCrucible.java @@ -0,0 +1,149 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRSlackCrucible implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/EmptyCrucible.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/EmptySlackCrucible.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.45F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(60F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(0.2F, -2.9F, 2.1F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.4F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.5F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.0F, -1.1F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + //GL11.glScalef(1.75F, 1.75F, 1.75F); + + + + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/IRTanninCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/IRTanninCrucible.java new file mode 100644 index 00000000..aca2dc03 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/IRTanninCrucible.java @@ -0,0 +1,149 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRTanninCrucible implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/EmptyCrucible.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/EmptyTanninCrucible.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.45F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(60F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(0.2F, -2.9F, 2.1F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.4F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.5F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.0F, -1.1F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + //GL11.glScalef(1.75F, 1.75F, 1.75F); + + + + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/IRWaterCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/IRWaterCrucible.java new file mode 100644 index 00000000..c1a56913 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/IRWaterCrucible.java @@ -0,0 +1,149 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRWaterCrucible implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/EmptyCrucible.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/EmptyWaterCrucible.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.45F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(60F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(0.2F, -2.9F, 2.1F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.4F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.5F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.0F, -1.1F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + //GL11.glScalef(1.75F, 1.75F, 1.75F); + + + + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/ItemRendererECCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/ItemRendererECCrucible.java new file mode 100644 index 00000000..27cf158c --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/ItemRendererECCrucible.java @@ -0,0 +1,147 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class ItemRendererECCrucible implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/EmptyCrucible.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/emptycookedcrucible.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.45F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(60F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(0.2F, -2.9F, 2.1F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.4F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.5F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.0F, -1.1F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + //GL11.glScalef(1.75F, 1.75F, 1.75F); + + + + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/ItemRendererSECrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/ItemRendererSECrucible.java new file mode 100644 index 00000000..e0cc79cf --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/crucibles/empty/ItemRendererSECrucible.java @@ -0,0 +1,146 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class ItemRendererSECrucible implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/EmptyCrucible.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/EmptyUncookedCrucible.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.45F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(60F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(0.2F, -2.9F, 2.1F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.4F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.5F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.0F, -1.1F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + //GL11.glScalef(1.75F, 1.75F, 1.75F); + + + + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/DamascusIngotIR.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/DamascusIngotIR.java new file mode 100644 index 00000000..84e6c579 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/DamascusIngotIR.java @@ -0,0 +1,140 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.ingotsplates; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class DamascusIngotIR implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/DamascusIngot.png"); + public static final ResourceLocation TEXTURE1 = new ResourceLocation("kitsumedievalcraft:models/HotDamascusIngot.png"); + private ResourceLocation loc; + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + GL11.glPushMatrix(); + GL11.glRotated(90, 0, 1.0, 0); + GL11.glRotated(-20, 1, 0, 0); + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 0.0F, 1.15F); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.75F; + GL11.glPushMatrix(); + GL11.glRotated(45, 0, 1.0, 0); + GL11.glRotated(-20, 1, 0, 0); + GL11.glRotated(30, 0, 0, 1); + GL11.glScalef(f, f, f); + GL11.glTranslatef(-0.2F, 1.0F, 1.15F); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case INVENTORY: { + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case ENTITY: { + GL11.glPushMatrix(); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + default: + break; + } + } + +} + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/IronIngotIR.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/IronIngotIR.java new file mode 100644 index 00000000..117dc5a6 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/IronIngotIR.java @@ -0,0 +1,140 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.ingotsplates; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IronIngotIR implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.png"); + public static final ResourceLocation TEXTURE1 = new ResourceLocation("kitsumedievalcraft:models/HotIronIngotBlock.png"); + private ResourceLocation loc; + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + GL11.glPushMatrix(); + GL11.glRotated(90, 0, 1.0, 0); + GL11.glRotated(-20, 1, 0, 0); + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 0.0F, 1.15F); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.75F; + GL11.glPushMatrix(); + GL11.glRotated(45, 0, 1.0, 0); + GL11.glRotated(-20, 1, 0, 0); + GL11.glRotated(30, 0, 0, 1); + GL11.glScalef(f, f, f); + GL11.glTranslatef(-0.2F, 1.0F, 1.15F); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case INVENTORY: { + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case ENTITY: { + GL11.glPushMatrix(); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + default: + break; + } + } + +} + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/IronPlateIR.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/IronPlateIR.java new file mode 100644 index 00000000..78007c95 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/IronPlateIR.java @@ -0,0 +1,156 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.ingotsplates; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IronPlateIR implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/IronPlate.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/IronPlate.png"); + public static final ResourceLocation TEXTURE1 = new ResourceLocation("kitsumedievalcraft:models/HotIronPlate.png"); + private ResourceLocation loc; + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.75F; + GL11.glScalef(scale, 3.5F, scale); + + GL11.glTranslatef(1.0F, 0.0F, 0.0F); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 2.0F; + GL11.glPushMatrix(); + GL11.glScalef(f, 8.0F, f); + GL11.glRotatef(45F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(1.3F, -0.2F, 1.7F); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 0.66F; + GL11.glScalef(f, 4.0F, f); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + GL11.glScalef(1.0F, 3.0F, 1.0F); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/LapisIngotIR.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/LapisIngotIR.java new file mode 100644 index 00000000..ede2b9a5 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/LapisIngotIR.java @@ -0,0 +1,140 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.ingotsplates; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class LapisIngotIR implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/MyLapisBlock.png"); + public static final ResourceLocation TEXTURE1 = new ResourceLocation("kitsumedievalcraft:models/MyHotLapisBlock.png"); + private ResourceLocation loc; + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + GL11.glPushMatrix(); + GL11.glRotated(90, 0, 1.0, 0); + GL11.glRotated(-20, 1, 0, 0); + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 0.0F, 1.15F); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.75F; + GL11.glPushMatrix(); + GL11.glRotated(45, 0, 1.0, 0); + GL11.glRotated(-20, 1, 0, 0); + GL11.glRotated(30, 0, 0, 1); + GL11.glScalef(f, f, f); + GL11.glTranslatef(-0.2F, 1.0F, 1.15F); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case INVENTORY: { + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case ENTITY: { + GL11.glPushMatrix(); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + default: + break; + } + } + +} + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/RedstoneIngotIR.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/RedstoneIngotIR.java new file mode 100644 index 00000000..3f28f2af --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/ingotsplates/RedstoneIngotIR.java @@ -0,0 +1,140 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.ingotsplates; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class RedstoneIngotIR implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/MyRedstoneBlock.png"); + public static final ResourceLocation TEXTURE1 = new ResourceLocation("kitsumedievalcraft:models/MyHotRedstoneBlock.png"); + private ResourceLocation loc; + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + GL11.glPushMatrix(); + GL11.glRotated(90, 0, 1.0, 0); + GL11.glRotated(-20, 1, 0, 0); + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 0.0F, 1.15F); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.75F; + GL11.glPushMatrix(); + GL11.glRotated(45, 0, 1.0, 0); + GL11.glRotated(-20, 1, 0, 0); + GL11.glRotated(30, 0, 0, 1); + GL11.glScalef(f, f, f); + GL11.glTranslatef(-0.2F, 1.0F, 1.15F); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case INVENTORY: { + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case ENTITY: { + GL11.glPushMatrix(); + if(item.getItemDamage()==0){ + loc=TEXTURE; + } + if(item.getItemDamage()==1){ + loc=TEXTURE1; + } + Minecraft.getMinecraft().renderEngine.bindTexture(loc); + model.renderAll(); + GL11.glPopMatrix(); + } break; + default: + break; + } + } + +} + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/longbow/IRLongbow0.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/longbow/IRLongbow0.java new file mode 100644 index 00000000..56552f7d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/longbow/IRLongbow0.java @@ -0,0 +1,183 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.longbow; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRLongbow0 implements IItemRenderer { + + //MODELS + public static final ResourceLocation MODEL_0 = new ResourceLocation("kitsumedievalcraft:models/Longbow0.obj"); + public static final ResourceLocation MODEL_1 = new ResourceLocation("kitsumedievalcraft:models/Longbow1.obj"); + public static final ResourceLocation MODEL_2 = new ResourceLocation("kitsumedievalcraft:models/Longbow2.obj"); + public static final ResourceLocation MODEL_3 = new ResourceLocation("kitsumedievalcraft:models/Longbow3.obj"); + public static final ResourceLocation MODEL_4 = new ResourceLocation("kitsumedievalcraft:models/Longbow4.obj"); + public static final ResourceLocation MODEL_5 = new ResourceLocation("kitsumedievalcraft:models/Longbow5.obj"); + public static final ResourceLocation MODEL_6 = new ResourceLocation("kitsumedievalcraft:models/Longbow6.obj"); + public static final ResourceLocation MODEL_7 = new ResourceLocation("kitsumedievalcraft:models/Longbow7.obj"); + public static final ResourceLocation MODEL_8 = new ResourceLocation("kitsumedievalcraft:models/Longbow8.obj"); + public static final ResourceLocation MODEL_9 = new ResourceLocation("kitsumedievalcraft:models/Longbow9.obj"); + public static final ResourceLocation MODEL_10 = new ResourceLocation("kitsumedievalcraft:models/Longbow10.obj"); + public static final ResourceLocation MODELARROW = new ResourceLocation("kitsumedievalcraft:models/ModelArrow.obj"); + //TEXTURES + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/LongbowRig.png"); + public static final ResourceLocation ARROWTEXTURE = new ResourceLocation("kitsumedievalcraft:models/modelarrow.png"); + + //ASSIGN MODELLOADER + public IModelCustom model_0 = AdvancedModelLoader.loadModel(MODEL_0); + public IModelCustom model_1 = AdvancedModelLoader.loadModel(MODEL_1); + public IModelCustom model_2 = AdvancedModelLoader.loadModel(MODEL_2); + public IModelCustom model_3 = AdvancedModelLoader.loadModel(MODEL_3); + public IModelCustom model_4 = AdvancedModelLoader.loadModel(MODEL_4); + public IModelCustom model_5 = AdvancedModelLoader.loadModel(MODEL_5); + public IModelCustom model_6 = AdvancedModelLoader.loadModel(MODEL_6); + public IModelCustom model_7 = AdvancedModelLoader.loadModel(MODEL_7); + public IModelCustom model_8 = AdvancedModelLoader.loadModel(MODEL_8); + public IModelCustom model_9 = AdvancedModelLoader.loadModel(MODEL_9); + public IModelCustom model_10 = AdvancedModelLoader.loadModel(MODEL_10); + public IModelCustom model_arrow = AdvancedModelLoader.loadModel(MODELARROW); + + @Override + public boolean handleRenderType(ItemStack stack, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack stack, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float equipScale = 0.6F; + GL11.glScalef(equipScale,equipScale, equipScale); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(195F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-17F, 0.0F, 1.0F, .0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.6F, 0.0F, -0.4F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + + model_0.renderAll(); + //System.out.println(MODEL); + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + //float firstScale = 0.6F; + GL11.glScalef(0.4F, 0.4F, 0.4F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + //GL11.glRotatef(-10F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(270F, 0.0F, 1.0F, 0.0F); + + //GL11.glRotated(20, 0.0D, 1.0D, 0.0D); + + GL11.glTranslatef(-1.6F, -0.5F, -1.4F); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + + model_0.renderAll(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + float invScale = 1.8F; + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glScalef(invScale+1, invScale, invScale); + + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-35, 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(0, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(-15.0F, 2.2F, 3.9F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model_0.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float eScale = 0.45F; + GL11.glScalef(eScale, eScale, eScale); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(-60F, 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(45F, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.0F, 3.9F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model_0.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/longbow/IRLongbow1.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/longbow/IRLongbow1.java new file mode 100644 index 00000000..19c87e2d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/longbow/IRLongbow1.java @@ -0,0 +1,183 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.longbow; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRLongbow1 implements IItemRenderer { + + //MODELS + public static final ResourceLocation MODEL_0 = new ResourceLocation("kitsumedievalcraft:models/Longbow0.obj"); + public static final ResourceLocation MODEL_1 = new ResourceLocation("kitsumedievalcraft:models/Longbow1.obj"); + public static final ResourceLocation MODEL_2 = new ResourceLocation("kitsumedievalcraft:models/Longbow2.obj"); + public static final ResourceLocation MODEL_3 = new ResourceLocation("kitsumedievalcraft:models/Longbow3.obj"); + public static final ResourceLocation MODEL_4 = new ResourceLocation("kitsumedievalcraft:models/Longbow4.obj"); + public static final ResourceLocation MODEL_5 = new ResourceLocation("kitsumedievalcraft:models/Longbow5.obj"); + public static final ResourceLocation MODEL_6 = new ResourceLocation("kitsumedievalcraft:models/Longbow6.obj"); + public static final ResourceLocation MODEL_7 = new ResourceLocation("kitsumedievalcraft:models/Longbow7.obj"); + public static final ResourceLocation MODEL_8 = new ResourceLocation("kitsumedievalcraft:models/Longbow8.obj"); + public static final ResourceLocation MODEL_9 = new ResourceLocation("kitsumedievalcraft:models/Longbow9.obj"); + public static final ResourceLocation MODEL_10 = new ResourceLocation("kitsumedievalcraft:models/Longbow10.obj"); + public static final ResourceLocation MODELARROW = new ResourceLocation("kitsumedievalcraft:models/ModelArrow.obj"); + //TEXTURES + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/LongbowRig.png"); + public static final ResourceLocation ARROWTEXTURE = new ResourceLocation("kitsumedievalcraft:models/modelarrow.png"); + + //ASSIGN MODELLOADER + public IModelCustom model_0 = AdvancedModelLoader.loadModel(MODEL_0); + public IModelCustom model_1 = AdvancedModelLoader.loadModel(MODEL_1); + public IModelCustom model_2 = AdvancedModelLoader.loadModel(MODEL_2); + public IModelCustom model_3 = AdvancedModelLoader.loadModel(MODEL_3); + public IModelCustom model_4 = AdvancedModelLoader.loadModel(MODEL_4); + public IModelCustom model_5 = AdvancedModelLoader.loadModel(MODEL_5); + public IModelCustom model_6 = AdvancedModelLoader.loadModel(MODEL_6); + public IModelCustom model_7 = AdvancedModelLoader.loadModel(MODEL_7); + public IModelCustom model_8 = AdvancedModelLoader.loadModel(MODEL_8); + public IModelCustom model_9 = AdvancedModelLoader.loadModel(MODEL_9); + public IModelCustom model_10 = AdvancedModelLoader.loadModel(MODEL_10); + public IModelCustom model_arrow = AdvancedModelLoader.loadModel(MODELARROW); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float equipScale = 0.6F; + GL11.glScalef(equipScale,equipScale, equipScale); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(195F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-17F, 0.0F, 1.0F, .0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.6F, 0.0F, -0.4F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model_5.renderAll(); + //System.out.println(MODEL); + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + //float firstScale = 0.6F; + GL11.glScalef(0.4F, 0.4F, 0.4F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + //GL11.glRotatef(-10F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(270F, 0.0F, 1.0F, 0.0F); + + //GL11.glRotated(20, 0.0D, 1.0D, 0.0D); + + GL11.glTranslatef(-1.6F, -0.5F, -1.4F); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + + model_5.renderAll(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + float invScale = 1.8F; + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glScalef(invScale+1, invScale, invScale); + + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-35, 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(0, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(-15.0F, 2.2F, 3.9F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model_1.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float eScale = 0.45F; + GL11.glScalef(eScale, eScale, eScale); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(-60F, 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(45F, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.0F, 3.9F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model_1.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/longbow/IRLongbow10.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/longbow/IRLongbow10.java new file mode 100644 index 00000000..0d4b9d48 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/longbow/IRLongbow10.java @@ -0,0 +1,183 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.longbow; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRLongbow10 implements IItemRenderer { + + //MODELS + public static final ResourceLocation MODEL_0 = new ResourceLocation("kitsumedievalcraft:models/Longbow0.obj"); + public static final ResourceLocation MODEL_1 = new ResourceLocation("kitsumedievalcraft:models/Longbow1.obj"); + public static final ResourceLocation MODEL_2 = new ResourceLocation("kitsumedievalcraft:models/Longbow2.obj"); + public static final ResourceLocation MODEL_3 = new ResourceLocation("kitsumedievalcraft:models/Longbow3.obj"); + public static final ResourceLocation MODEL_4 = new ResourceLocation("kitsumedievalcraft:models/Longbow4.obj"); + public static final ResourceLocation MODEL_5 = new ResourceLocation("kitsumedievalcraft:models/Longbow5.obj"); + public static final ResourceLocation MODEL_6 = new ResourceLocation("kitsumedievalcraft:models/Longbow6.obj"); + public static final ResourceLocation MODEL_7 = new ResourceLocation("kitsumedievalcraft:models/Longbow7.obj"); + public static final ResourceLocation MODEL_8 = new ResourceLocation("kitsumedievalcraft:models/Longbow8.obj"); + public static final ResourceLocation MODEL_9 = new ResourceLocation("kitsumedievalcraft:models/Longbow9.obj"); + public static final ResourceLocation MODEL_10 = new ResourceLocation("kitsumedievalcraft:models/Longbow10.obj"); + public static final ResourceLocation MODELARROW = new ResourceLocation("kitsumedievalcraft:models/ModelArrow.obj"); + //TEXTURES + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/LongbowRig.png"); + public static final ResourceLocation ARROWTEXTURE = new ResourceLocation("kitsumedievalcraft:models/modelarrow.png"); + + //ASSIGN MODELLOADER + public IModelCustom model_0 = AdvancedModelLoader.loadModel(MODEL_0); + public IModelCustom model_1 = AdvancedModelLoader.loadModel(MODEL_1); + public IModelCustom model_2 = AdvancedModelLoader.loadModel(MODEL_2); + public IModelCustom model_3 = AdvancedModelLoader.loadModel(MODEL_3); + public IModelCustom model_4 = AdvancedModelLoader.loadModel(MODEL_4); + public IModelCustom model_5 = AdvancedModelLoader.loadModel(MODEL_5); + public IModelCustom model_6 = AdvancedModelLoader.loadModel(MODEL_6); + public IModelCustom model_7 = AdvancedModelLoader.loadModel(MODEL_7); + public IModelCustom model_8 = AdvancedModelLoader.loadModel(MODEL_8); + public IModelCustom model_9 = AdvancedModelLoader.loadModel(MODEL_9); + public IModelCustom model_10 = AdvancedModelLoader.loadModel(MODEL_10); + public IModelCustom model_arrow = AdvancedModelLoader.loadModel(MODELARROW); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float equipScale = 0.6F; + GL11.glScalef(equipScale,equipScale, equipScale); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(195F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-17F, 0.0F, 1.0F, .0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.6F, 0.0F, -0.4F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model_10.renderAll(); + //System.out.println(MODEL); + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + //float firstScale = 0.6F; + GL11.glScalef(0.4F, 0.4F, 0.4F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + //GL11.glRotatef(-10F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(270F, 0.0F, 1.0F, 0.0F); + + //GL11.glRotated(20, 0.0D, 1.0D, 0.0D); + + GL11.glTranslatef(-1.6F, -0.5F, -1.4F); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + + model_10.renderAll(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + float invScale = 1.8F; + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glScalef(invScale+1, invScale, invScale); + + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-35, 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(0, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(-15.0F, 2.2F, 3.9F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model_10.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float eScale = 0.45F; + GL11.glScalef(eScale, eScale, eScale); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(-60F, 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(45F, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.0F, 3.9F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model_10.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/ForgeIR.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/ForgeIR.java new file mode 100644 index 00000000..6b931ebe --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/ForgeIR.java @@ -0,0 +1,134 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.machines; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class ForgeIR implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/SingleForge.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/SingleForge.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.5F; + GL11.glRotatef(22F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(0F, 0.0F, 1.0F, 0.0F); + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(2.25F, -0.75F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.8F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + GL11.glRotatef(-135F, 0.0F, 1.0F, 0.0F); + //GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(1.0F, 0.5F, -0.4F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + //GL11.glScalef(1.75F, 1.75F, 1.75F); + GL11.glTranslatef(0.0F, 0.5F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRBarrelLid.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRBarrelLid.java new file mode 100644 index 00000000..580fc5b7 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRBarrelLid.java @@ -0,0 +1,144 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.machines; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRBarrelLid implements IItemRenderer { + + public static final ResourceLocation MODEL = new ResourceLocation("kitsumedievalcraft:models/BarrelLid.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/BarrelLid0.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(1.5F, 0.3F, -0.2F); + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(22F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 1.5F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(-135F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.0F, -0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.45F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.0F, -1.2F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + GL11.glTranslatef(0.0F, -0.4F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRFirebox.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRFirebox.java new file mode 100644 index 00000000..d75bb9cf --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRFirebox.java @@ -0,0 +1,143 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.machines; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRFirebox implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/Firebox.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/FireboxUV.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.5F; + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(22F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(0F, 0.0F, 1.0F, 0.0F); + GL11.glScalef(scale, 1.0f, scale); + GL11.glTranslatef(2.25F, -0.75F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.8F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(-135F, 0.0F, 1.0F, 0.0F); + //GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.0F, 0.5F, -0.4F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.5F; + GL11.glScalef(scale, 1.0f, scale); + + //GL11.glRotatef(-47, 0.0F, 1.0F, 0.0F); + //GL11.glRotatef(-20, 0.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.0F, -0.3F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + GL11.glScalef(0.5F, 1.0F, 0.5F); + GL11.glTranslatef(0.0F, 0.5F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRForgeAnvil.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRForgeAnvil.java new file mode 100644 index 00000000..2d058a00 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRForgeAnvil.java @@ -0,0 +1,144 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.machines; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRForgeAnvil implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/ForgeAnvil.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/ForgeAnvil.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.8F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(22F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-0.2F, -1.5F, -1.05F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.8F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(-135F, 0.0F, 1.0F, 0.0F); + //GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.0F, -0.2F, -0.4F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.0F, -1.0F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + //GL11.glScalef(1.75F, 1.75F, 1.75F); + + + + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRShelfFour.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRShelfFour.java new file mode 100644 index 00000000..bf8958ae --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRShelfFour.java @@ -0,0 +1,147 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.machines; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRShelfFour implements IItemRenderer { + + private static final ResourceLocation MODEL = new ResourceLocation("kitsumedievalcraft:models/Shelf.obj"); + private static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/ShelfMini32.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(22F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(0F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(2.25F, -0.75F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.8F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(-135F, 0.0F, 1.0F, 0.0F); + //GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.0F, 0.5F, -0.4F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(-47, 0.0F, 1.0F, 0.0F); + //GL11.glRotatef(-20, 0.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.5F, 0.0F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + //GL11.glScalef(1.75F, 1.75F, 1.75F); + + + + + GL11.glTranslatef(0.0F, 0.5F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRSmallBarrel.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRSmallBarrel.java new file mode 100644 index 00000000..b1642e37 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRSmallBarrel.java @@ -0,0 +1,144 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.machines; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRSmallBarrel implements IItemRenderer { + + public static final ResourceLocation MODEL = new ResourceLocation("kitsumedievalcraft:models/BarrelFinished.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/BarrelFinished.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.325F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(3.2F, -0.75F, -0.2F); + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(22F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.5F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(-135F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.0F, -0.9F, 0.3F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.4F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.0F, -1.4F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + GL11.glTranslatef(0.0F, -0.4F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRSolidFilter.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRSolidFilter.java new file mode 100644 index 00000000..7d3d2431 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRSolidFilter.java @@ -0,0 +1,154 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.machines; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRSolidFilter implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/SandFilter.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/SandFilterEmpty.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + //return false; + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.75F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(22F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.2F, 0.0F, 0.0F); + GL11.glRotated(45F, 0.0F, 1.0F, 0.0F); + GL11.glRotated(-30F, 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(0F, 0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 1.0F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + GL11.glTranslatef(0.0F, 0.3F, 0.7F); + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(-135F, 0.0F, 1.0F, 0.0F); + //GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.7F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + //GL11.glScalef(1.75F, 1.75F, 1.75F); + + + + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRWaterFilter.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRWaterFilter.java new file mode 100644 index 00000000..e86697e6 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/machines/IRWaterFilter.java @@ -0,0 +1,148 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.machines; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRWaterFilter implements IItemRenderer { + + public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/WaterFilter.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/WaterFilter.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.325F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(2.65F, 0.65F, -0.5F); + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(22F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + float f = 0.7F; + GL11.glPushMatrix(); + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(-135F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(1.0F, -0.2F, -0.4F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 0.48F; + GL11.glScalef(scale, scale, scale); + + //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + + //GL11.glTranslatef(0.0F, -1.0F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + //GL11.glScalef(1.75F, 1.75F, 1.75F); + + + + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRSlottedTongs.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRSlottedTongs.java new file mode 100644 index 00000000..91f35466 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRSlottedTongs.java @@ -0,0 +1,336 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRSlottedTongs implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/TongsEmpty.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongs.png"); + + public static final ResourceLocation MODEL_TONGS_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsCrucible.obj"); + public static final ResourceLocation TEXTURE_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsCrucible.png"); + + public static final ResourceLocation MODEL_TONGS_INGOT = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.obj"); + public static final ResourceLocation TEXTURE_INGOT = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.png"); + + public static final ResourceLocation MODEL = new ResourceLocation("kitsumedievalcraft:models/CrucibleModel.obj"); + public static final ResourceLocation CRUCIBLETEXT = new ResourceLocation("kitsumedievalcraft:models/HotCrucible.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation LAPIS = new ResourceLocation("kitsumedievalcraft:models/MyHotLapisBlock.png"); + public static final ResourceLocation REDSTONE = new ResourceLocation("kitsumedievalcraft:models/MyHotRedstoneBlock.png"); + public static final ResourceLocation DAMASCUS = new ResourceLocation("kitsumedievalcraft:models/HotDamascusIngot.png"); + public static final ResourceLocation REFINEDIRON = new ResourceLocation("kitsumedievalcraft:models/HotIronIngotBlock.png"); + public static final ResourceLocation IRON_PLATE = new ResourceLocation("kitsumedievalcraft:models/HotIronPlate.png"); + + public static final ResourceLocation MODEL_PLATE = new ResourceLocation("kitsumedievalcraft:models/IronPlate.obj"); + public static final ResourceLocation PLATE_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/IronPlate.png"); + public static final ResourceLocation HOTPLATE_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/HotIronPlate.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modeltc = AdvancedModelLoader.loadModel(MODEL_TONGS_CRUCIBLE); + public IModelCustom modelti = AdvancedModelLoader.loadModel(MODEL_TONGS_INGOT); + public IModelCustom modelC = AdvancedModelLoader.loadModel(MODEL); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + public IModelCustom modelPlate = AdvancedModelLoader.loadModel(MODEL_PLATE); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + default: return false; + } + } + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack stack, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + GL11.glTranslatef(0.2F, 0.0F, 0.85F); + if(stack.isItemDamaged()==false){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + } + //Crucible Renderer + if((stack.getItemDamage()==1)||(stack.getItemDamage()==2)||(stack.getItemDamage()==3)||(stack.getItemDamage()==4)||(stack.getItemDamage()==5)){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_CRUCIBLE); + modeltc.renderAll(); + + GL11.glPushMatrix(); + float scale1 = 0.6F; + GL11.glScalef(scale1, scale1, scale1); + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(7.6F, -1.8F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(CRUCIBLETEXT); + modelC.renderAll(); + GL11.glPopMatrix(); + } + + if(stack.getItemDamage()==6|| + stack.getItemDamage()==7|| + stack.getItemDamage()==8|| + stack.getItemDamage()==9){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_INGOT); + modelti.renderAll(); + GL11.glPushMatrix(); + float scale1 = 1.1F; + GL11.glScalef(scale1, scale1, scale1); + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + if(stack.getItemDamage()==6){Minecraft.getMinecraft().renderEngine.bindTexture(LAPIS);} + if(stack.getItemDamage()==7){Minecraft.getMinecraft().renderEngine.bindTexture(REDSTONE);} + if(stack.getItemDamage()==8){Minecraft.getMinecraft().renderEngine.bindTexture(DAMASCUS);} + if(stack.getItemDamage()==9){Minecraft.getMinecraft().renderEngine.bindTexture(REFINEDIRON);} + modelingot.renderAll(); + GL11.glPopMatrix(); + } + + if((stack.getItemDamage()==10)){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_CRUCIBLE); + modeltc.renderAll(); + GL11.glPushMatrix(); + float scale1 = 0.6F; + GL11.glScalef(scale1, 3.0f, scale1); + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(8.6F, 0.0F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(HOTPLATE_TEXTURE); + modelPlate.renderAll(); + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(-0.05F, 0.0F, -1.0F); + + if(stack.isItemDamaged()==false){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + } + //Crucible Renderer + if((stack.getItemDamage()==1)||(stack.getItemDamage()==2)||(stack.getItemDamage()==3)||(stack.getItemDamage()==4)||(stack.getItemDamage()==5)){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_CRUCIBLE); + modeltc.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(7.5F, -1.8F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(CRUCIBLETEXT); + modelC.renderAll(); + GL11.glPopMatrix(); + } + + if(stack.getItemDamage()==6|| + stack.getItemDamage()==7|| + stack.getItemDamage()==8|| + stack.getItemDamage()==9){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_INGOT); + modelti.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + if(stack.getItemDamage()==6){Minecraft.getMinecraft().renderEngine.bindTexture(LAPIS);} + if(stack.getItemDamage()==7){Minecraft.getMinecraft().renderEngine.bindTexture(REDSTONE);} + if(stack.getItemDamage()==8){Minecraft.getMinecraft().renderEngine.bindTexture(DAMASCUS);} + if(stack.getItemDamage()==9){Minecraft.getMinecraft().renderEngine.bindTexture(REFINEDIRON);} + modelingot.renderAll(); + GL11.glPopMatrix(); + } + + if((stack.getItemDamage()==10)){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_CRUCIBLE); + modeltc.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, 3.0f, scale); + GL11.glTranslatef(8.6F, 0.0F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(HOTPLATE_TEXTURE); + modelPlate.renderAll(); + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 3.0F; + GL11.glScalef(f, f, f); + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-1.8F, 0.0F, -3.7F); + if(stack.isItemDamaged()==false){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + } + + //Crucible Renderer + if((stack.getItemDamage()==1)||(stack.getItemDamage()==2)||(stack.getItemDamage()==3)||(stack.getItemDamage()==4)||(stack.getItemDamage()==5)){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_CRUCIBLE); + modeltc.renderAll(); + GL11.glPushMatrix(); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(9.25F, 0.15F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(CRUCIBLETEXT); + modelC.renderAll(); + GL11.glPopMatrix(); + } + + if(stack.getItemDamage()==6|| + stack.getItemDamage()==7|| + stack.getItemDamage()==8|| + stack.getItemDamage()==9){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_INGOT); + modelti.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + if(stack.getItemDamage()==6){Minecraft.getMinecraft().renderEngine.bindTexture(LAPIS);} + if(stack.getItemDamage()==7){Minecraft.getMinecraft().renderEngine.bindTexture(REDSTONE);} + if(stack.getItemDamage()==8){Minecraft.getMinecraft().renderEngine.bindTexture(DAMASCUS);} + if(stack.getItemDamage()==9){Minecraft.getMinecraft().renderEngine.bindTexture(REFINEDIRON);} + modelingot.renderAll(); + GL11.glPopMatrix(); + } + + if((stack.getItemDamage()==10)){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_CRUCIBLE); + modeltc.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, 3.0f, scale); + GL11.glTranslatef(8.6F, 0.0F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(HOTPLATE_TEXTURE); + modelPlate.renderAll(); + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + if(stack.isItemDamaged()==false){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + } + //Crucible Renderer + if((stack.getItemDamage()==1)||(stack.getItemDamage()==2)||(stack.getItemDamage()==3)||(stack.getItemDamage()==4)||(stack.getItemDamage()==5)){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_CRUCIBLE); + modeltc.renderAll(); + GL11.glPushMatrix(); + float scale = 0.55F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(8.4F, -1.8F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(CRUCIBLETEXT); + modelC.renderAll(); + GL11.glPopMatrix(); + } + + if(stack.getItemDamage()==6|| + stack.getItemDamage()==7|| + stack.getItemDamage()==8|| + stack.getItemDamage()==9){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_INGOT); + modelti.renderAll(); + //Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + //model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + if(stack.getItemDamage()==6){Minecraft.getMinecraft().renderEngine.bindTexture(LAPIS);} + if(stack.getItemDamage()==7){Minecraft.getMinecraft().renderEngine.bindTexture(REDSTONE);} + if(stack.getItemDamage()==8){Minecraft.getMinecraft().renderEngine.bindTexture(DAMASCUS);} + if(stack.getItemDamage()==9){Minecraft.getMinecraft().renderEngine.bindTexture(REFINEDIRON);} + modelingot.renderAll(); + GL11.glPopMatrix(); + } + if((stack.getItemDamage()==10)){ + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_CRUCIBLE); + modeltc.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, 3.0f, scale); + GL11.glTranslatef(8.6F, 0.0F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(HOTPLATE_TEXTURE); + modelPlate.renderAll(); + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsCoolLapisIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsCoolLapisIngot.java new file mode 100644 index 00000000..dd827ec9 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsCoolLapisIngot.java @@ -0,0 +1,198 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsCoolLapisIngot implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/MyLapisBlock.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + + GL11.glTranslatef(0.2F, 0.0F, 0.85F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + + GL11.glTranslatef(-0.05F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsCoolPlate.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsCoolPlate.java new file mode 100644 index 00000000..95186ff8 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsCoolPlate.java @@ -0,0 +1,201 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsCoolPlate implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/IronPlate.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/IronPlate.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.55F; + GL11.glScalef(f, f, f); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 1.0, 0.0); + + GL11.glTranslatef(0.0F, 0.9F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, 6.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.85F, 0.01F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + + + GL11.glTranslatef(-0.05F, 0.0F, 0.5F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, 6.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.85F, 0.01F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.0F; + GL11.glScalef(scale, scale, 6.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(5.3F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, 6.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.75F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsCoolRedstoneIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsCoolRedstoneIngot.java new file mode 100644 index 00000000..8ac9ab97 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsCoolRedstoneIngot.java @@ -0,0 +1,198 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsCoolRedstoneIngot implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/MyRedstoneBlock.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + + GL11.glTranslatef(0.2F, 0.0F, 0.85F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + + GL11.glTranslatef(-0.05F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsDCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsDCrucible.java new file mode 100644 index 00000000..f342dfe5 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsDCrucible.java @@ -0,0 +1,199 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsDCrucible implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsCrucible.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsCrucible.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/CrucibleModel.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/HotDamascusCrucible.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.7F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + + GL11.glTranslatef(0.2F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(7.6F, -1.8F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.7F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + + GL11.glTranslatef(-0.85F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(7.5F, -1.8F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(9.25F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + + GL11.glTranslatef(0.0F, 0.8F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.55F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.4F, -1.8F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotDamascus.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotDamascus.java new file mode 100644 index 00000000..f0cae926 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotDamascus.java @@ -0,0 +1,199 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsHotDamascus implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/HotDamascusIngot.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + + GL11.glTranslatef(0.2F, 0.0F, 0.85F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + + GL11.glTranslatef(-0.05F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotIron.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotIron.java new file mode 100644 index 00000000..30769ab8 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotIron.java @@ -0,0 +1,199 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsHotIron implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/HotIronIngotBlock.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + + GL11.glTranslatef(0.2F, 0.0F, 0.85F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + + GL11.glTranslatef(-0.05F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotLapisIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotLapisIngot.java new file mode 100644 index 00000000..610e2ec3 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotLapisIngot.java @@ -0,0 +1,199 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsHotLapisIngot implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/MyHotLapisBlock.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + + GL11.glTranslatef(0.2F, 0.0F, 0.85F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + + GL11.glTranslatef(-0.05F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotPlate.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotPlate.java new file mode 100644 index 00000000..a0fc439e --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsHotPlate.java @@ -0,0 +1,201 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsHotPlate implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/IronPlate.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/HotIronPlate.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.55F; + GL11.glScalef(f, f, f); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 1.0, 0.0); + + GL11.glTranslatef(0.0F, 0.9F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, 6.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.85F, 0.01F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + + + GL11.glTranslatef(-0.05F, 0.0F, 0.5F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, 6.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.85F, 0.01F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.0F; + GL11.glScalef(scale, scale, 6.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(5.3F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, 6.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.75F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsICrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsICrucible.java new file mode 100644 index 00000000..6db6ea94 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsICrucible.java @@ -0,0 +1,198 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsICrucible implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsCrucible.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsCrucible.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/CrucibleModel.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/HotCrucible.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.7F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + + GL11.glTranslatef(0.2F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(7.6F, -1.8F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.7F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + + GL11.glTranslatef(-0.85F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(7.5F, -1.8F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(9.25F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + + GL11.glTranslatef(0.0F, 0.8F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.55F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.4F, -1.8F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsLapisCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsLapisCrucible.java new file mode 100644 index 00000000..f2180ac3 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsLapisCrucible.java @@ -0,0 +1,5 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +public class IRStoneTongsLapisCrucible { + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsMyDamascusIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsMyDamascusIngot.java new file mode 100644 index 00000000..8e4c2c0d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsMyDamascusIngot.java @@ -0,0 +1,199 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsMyDamascusIngot implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/DamascusIngot.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + + GL11.glTranslatef(0.2F, 0.0F, 0.85F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + + GL11.glTranslatef(-0.05F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsMyIronIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsMyIronIngot.java new file mode 100644 index 00000000..071bd31a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsMyIronIngot.java @@ -0,0 +1,199 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsMyIronIngot implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + + GL11.glTranslatef(0.2F, 0.0F, 0.85F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + + GL11.glTranslatef(-0.05F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsRedCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsRedCrucible.java new file mode 100644 index 00000000..44070c3d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsRedCrucible.java @@ -0,0 +1,199 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsRedCrucible implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsCrucible.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsCrucible.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/CrucibleModel.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/HotDamascusCrucible.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.7F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + + GL11.glTranslatef(0.2F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(7.6F, -1.8F, 0.0F); + + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.7F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + + GL11.glTranslatef(-0.85F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(7.5F, -1.8F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(9.25F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + + GL11.glTranslatef(0.0F, 0.8F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.55F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.4F, -1.8F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsRedIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsRedIngot.java new file mode 100644 index 00000000..53ed5a1a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/IRStoneTongsRedIngot.java @@ -0,0 +1,199 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRStoneTongsRedIngot implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongsIngot.png"); + + public static final ResourceLocation MODEL_INGOT = new ResourceLocation("kitsumedievalcraft:models/IronIngotBlock.obj"); + public static final ResourceLocation INGOT_TEXTURE = new ResourceLocation("kitsumedievalcraft:models/MyHotRedstoneBlock.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + public IModelCustom modelingot = AdvancedModelLoader.loadModel(MODEL_INGOT); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + + GL11.glTranslatef(0.2F, 0.0F, 0.85F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + + GL11.glTranslatef(-0.05F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 1.1F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(4.7F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 2.5F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-2.0F, 0.0F, -4.35F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPushMatrix(); + float scale = 0.6F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + GL11.glTranslatef(8.6F, 0.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(INGOT_TEXTURE); + modelingot.renderAll(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/ItemRendererEmptyStoneTongs.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/ItemRendererEmptyStoneTongs.java new file mode 100644 index 00000000..4bcc7f77 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tongs/ItemRendererEmptyStoneTongs.java @@ -0,0 +1,151 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tongs; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class ItemRendererEmptyStoneTongs implements IItemRenderer { + + public static final ResourceLocation MODEL_TONGS = new ResourceLocation("kitsumedievalcraft:models/TongsEmpty.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/StoneTongs.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_TONGS); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + float scale = 0.5F; + GL11.glScalef(scale, scale, scale); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(100F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(110F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(25, 0.0, 0.0, 1.0); + + GL11.glTranslatef(0.2F, 0.0F, 0.85F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + float f = 0.5F; + GL11.glScalef(f, f, f); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + + GL11.glTranslatef(-0.05F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + float f = 3.0F; + GL11.glScalef(f, f, f); + + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(-1.8F, 0.0F, -3.7F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float f = 0.45F; + GL11.glScalef(f, f, f); + + //GL11.glTranslatef(0.0F, 0.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRCraftingBlade.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRCraftingBlade.java new file mode 100644 index 00000000..b1cdedfa --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRCraftingBlade.java @@ -0,0 +1,153 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tools; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRCraftingBlade implements IItemRenderer { + + public static final ResourceLocation LONGSWORD = new ResourceLocation("kitsumedievalcraft:models/CraftingBlade.obj"); + public static final ResourceLocation blade = new ResourceLocation("kitsumedievalcraft:models/CraftingBlade.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(LONGSWORD); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(190F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-13F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(5, 0.0, 1.0, 0.0); + float scale = 0.4F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(-1.1F, -0.45F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(190F, 0.0F, 1.0F, 0.0F); + GL11.glRotated(80F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); + float scale = 0.4F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.0F, -1.5F, -2.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + GL11.glRotated(90F, 0.0F, 1.0F, 0.0F); + GL11.glRotated(135F, 1.0F, 0.0F, 0.0F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + + GL11.glScalef(4.0F, 4.0F, 4.0F); + GL11.glTranslatef(0.0F, -1.0F, -2.9F); + //GL11.glRotatef(135, 0.0F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + + GL11.glScalef(0.3F, 0.3F, 0.3F); + GL11.glTranslatef(0.0F, 1.0F, 0.0F); + //GL11.glRotatef(180, 0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRForgeHammer.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRForgeHammer.java new file mode 100644 index 00000000..59a30be5 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRForgeHammer.java @@ -0,0 +1,151 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tools; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRForgeHammer implements IItemRenderer { + + public static final ResourceLocation LONGSWORD = new ResourceLocation("kitsumedievalcraft:models/ForgeHammer.obj"); + public static final ResourceLocation blade = new ResourceLocation("kitsumedievalcraft:models/ForgeHammer.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(LONGSWORD); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(10F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(10F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(5, 0.0, 1.0, 0.0); + //float scale = 0.2F; + //GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.45F, 0.2F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + GL11.glRotated(90F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-25F, 1.0F, 0.0F, 0.0F); + float scale = 0.8F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + //GL11.glRotated(180, 0.0, 0.0, 1.0); + //GL11.glRotated(180, 0.0F, 1.0F, 0.0F); + //GL11.glRotated(180, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.3F, -0.2F, 0.7F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + GL11.glRotated(90F, 0.0F, 1.0F, 0.0F); + GL11.glRotated(135F, 1.0F, 0.0F, 0.0F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + + GL11.glScalef(6.0F, 6.0F, 6.0F); + GL11.glTranslatef(0.0F, -0.3F, -1.85F); + //GL11.glRotatef(135, 0.0F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + + GL11.glScalef(0.7F, 0.7F, 0.7F); + GL11.glTranslatef(0.0F, 1.0F, 0.0F); + //GL11.glRotatef(180, 0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRInlayHammer.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRInlayHammer.java new file mode 100644 index 00000000..359d0c1a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRInlayHammer.java @@ -0,0 +1,151 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tools; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class IRInlayHammer implements IItemRenderer { + + public static final ResourceLocation LONGSWORD = new ResourceLocation("kitsumedievalcraft:models/InlayHammer.obj"); + public static final ResourceLocation blade = new ResourceLocation("kitsumedievalcraft:models/InlayHammer.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(LONGSWORD); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(10F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(10F, 1.0F, 0.0F, 0.0F); + //GL11.glRotated(5, 0.0, 1.0, 0.0); + float scale = 0.2F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(2.1F, -0.2F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + GL11.glRotated(80F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); + float scale = 0.15F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + //GL11.glRotated(180, 0.0, 0.0, 1.0); + //GL11.glRotated(180, 0.0F, 1.0F, 0.0F); + //GL11.glRotated(180, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(2.0F, -0.3F, 2.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + GL11.glRotated(90F, 0.0F, 1.0F, 0.0F); + GL11.glRotated(135F, 1.0F, 0.0F, 0.0F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + float scale = 1.5F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(0.0F, -3.4F, -7.9F); + //GL11.glRotatef(135, 0.0F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + float scale = 0.2F; + GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(0.0F, 1.0F, 0.0F); + //GL11.glRotatef(180, 0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRironPicks.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRironPicks.java new file mode 100644 index 00000000..750325ac --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/tools/IRironPicks.java @@ -0,0 +1,130 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.tools; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; +import net.minecraft.util.IIcon; + +public class IRironPicks implements IItemRenderer { + + private static RenderItem renderItem = new RenderItem(); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return false; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack itemStack, Object... data) { + // ====================== Render item texture ====================== + IIcon icon = itemStack.getIconIndex(); + GL11.glTranslatef(0F, 0.5F, 0.0F); + GL11.glRotatef(180, 0.0F, 0.0F, 1.0F); + renderItem.renderIcon(0, 0, icon, 16, 16); + } +} + + +/* + * + * switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(10F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(10F, 1.0F, 0.0F, 0.0F); + GL11.glRotated(5, 0.0, 1.0, 0.0); + //float scale = 0.2F; + //GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.45F, 0.2F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + GL11.glRotated(90F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-25F, 1.0F, 0.0F, 0.0F); + float scale = 0.8F; + GL11.glScalef(scale, scale, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + //GL11.glRotated(180, 0.0, 0.0, 1.0); + //GL11.glRotated(180, 0.0F, 1.0F, 0.0F); + //GL11.glRotated(180, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0.3F, -0.2F, 0.7F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + GL11.glRotated(90F, 0.0F, 1.0F, 0.0F); + GL11.glRotated(135F, 1.0F, 0.0F, 0.0F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + + GL11.glScalef(6.0F, 6.0F, 6.0F); + GL11.glTranslatef(0.0F, -0.3F, -1.85F); + //GL11.glRotatef(135, 0.0F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + + GL11.glScalef(0.7F, 0.7F, 0.7F); + GL11.glTranslatef(0.0F, 1.0F, 0.0F); + //GL11.glRotatef(180, 0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + * + * + */ \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/IRBattleAxe.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/IRBattleAxe.java new file mode 100644 index 00000000..3b81df2b --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/IRBattleAxe.java @@ -0,0 +1,150 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.weapons; + +import java.util.Vector; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class IRBattleAxe implements IItemRenderer { + + public static final ResourceLocation LONGSWORD = new ResourceLocation("kitsumedievalcraft:models/Battleaxev3.obj"); + public static final ResourceLocation blade = new ResourceLocation("kitsumedievalcraft:models/Battleaxe.png"); + public static final ResourceLocation blade1 = new ResourceLocation("kitsumedievalcraft:models/Battleaxe1.png"); + public Vector testVector; + + public IModelCustom model = AdvancedModelLoader.loadModel(LONGSWORD); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glScalef(0.25F, 0.25F, 0.25F); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(45F, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(2.8F, 0.2F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + //Minecraft.getMinecraft().renderEngine.bindTexture(blade1); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + GL11.glScalef(0.3F, 0.4F, 0.3F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + //GL11.glRotated(-85, 1.0, 0.0, 0.0); + //GL11.glRotated(50, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(3, 0.0F, 1.0F, 0.0F); + + //GL11.glTranslatef(0.9F, -0.9F, 0.9F); + GL11.glTranslatef(2.0F, -1.6F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + //Minecraft.getMinecraft().renderEngine.bindTexture(blade1); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glScalef(2.3F, 2.3F, 2.3F); + GL11.glTranslatef(1.8F, 5.25F, 0.0F); + GL11.glRotatef(135, 0.0F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + + GL11.glScalef(0.5F, 0.5F, 0.5F); + GL11.glTranslatef(0.0F, 1.0F, 0.0F); + //GL11.glRotatef(180, 0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } +} + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/IRGladius.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/IRGladius.java new file mode 100644 index 00000000..90be3f13 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/IRGladius.java @@ -0,0 +1,146 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.weapons; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +import com.kitsu.medievalcraft.util.IRTextureModel; + +public class IRGladius implements IItemRenderer { + + public static final ResourceLocation LONGSWORD = new ResourceLocation("kitsumedievalcraft:models/Gladius.obj"); + public static final ResourceLocation blade = new ResourceLocation("kitsumedievalcraft:models/Gladius.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(LONGSWORD); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glRotatef(35F, 0.0F, 0.0F, 1.0F); + float scale = 0.2F; + GL11.glScalef(scale, 0.2F, scale); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(3.5F, -1.1F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(IRTextureModel.weaponText.get(item.stackTagCompound.getInteger("GLADIUSTEXTURE"))); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glScalef(0.2F, 0.2F, 0.2F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + //GL11.glRotated(180, 0.0, 0.0, 1.0); + //GL11.glRotated(180, 0.0F, 1.0F, 0.0F); + //GL11.glRotated(180, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(3.0F, -1.5F, -0.5F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glScalef(2.0F, 2.0F, 2.0F); + GL11.glTranslatef(1.65F, 6.2F, 0.0F); + GL11.glRotatef(135, 0.0F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + + GL11.glScalef(0.2F, 0.2F, 0.2F); + GL11.glTranslatef(0.0F, 1.0F, 0.0F); + //GL11.glRotatef(180, 0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderHeavymace.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderHeavymace.java new file mode 100644 index 00000000..7e83d046 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderHeavymace.java @@ -0,0 +1,145 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.weapons; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +public class ItemRenderHeavymace implements IItemRenderer { + + public static final ResourceLocation LONGSWORD = new ResourceLocation("kitsumedievalcraft:models/Heavymace.obj"); + public static final ResourceLocation blade = new ResourceLocation("kitsumedievalcraft:models/Heavymace.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(LONGSWORD); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glScalef(0.25F, 0.25F, 0.25F); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(45F, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(2.8F, 0.2F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + GL11.glScalef(0.3F, 0.3F, 0.3F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + //GL11.glRotated(-85, 1.0, 0.0, 0.0); + //GL11.glRotated(50, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(3, 0.0F, 1.0F, 0.0F); + + //GL11.glTranslatef(0.9F, -0.9F, 0.9F); + GL11.glTranslatef(2.75F, -1.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glScalef(2.5F, 2.5F, 2.5F); + GL11.glTranslatef(2.5F, 3.75F, 0.0F); + GL11.glRotatef(135, 0.0F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + + GL11.glScalef(0.5F, 0.5F, 0.5F); + GL11.glTranslatef(0.0F, 1.0F, 0.0F); + //GL11.glRotatef(180, 0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderIronShield.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderIronShield.java new file mode 100644 index 00000000..d5c58e54 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderIronShield.java @@ -0,0 +1,166 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.weapons; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; +//import com.kitsu.medievalcraft.models.Model; + + + +public class ItemRenderIronShield implements IItemRenderer { + + public static final ResourceLocation IRON_SHIELD = new ResourceLocation("kitsumedievalcraft:models/IronShield.obj"); + public static final ResourceLocation ironshield = new ResourceLocation("kitsumedievalcraft:models/ironshield.png"); + //private static RenderItem renderItem = new RenderItem(); + public static boolean use; + + + public IModelCustom model = AdvancedModelLoader.loadModel(IRON_SHIELD); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return false; + } + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + //System.out.println(use); + + switch(type) { + + case EQUIPPED: { + + //EntityClientPlayerMP entityclientplayermp = this.mc.thePlayer; + + + //System.out.println(a + " : " + b); + GL11.glPushMatrix(); + + float scale = 0.75F; + GL11.glScalef(scale, scale, scale); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(30F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-20F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(0.5F, -0.1F, -0.1F); + + Minecraft.getMinecraft().renderEngine.bindTexture(ironshield); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case EQUIPPED_FIRST_PERSON: { + + + GL11.glPushMatrix(); + GL11.glScalef(0.7F, 0.7F, 0.7F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(0F, 0.0F, 0.0F, 1.0F); + //GL11.glRotatef(10F, 0.0F, 0.0F, 0.0F); + GL11.glRotatef(50F, 0.0F, 1.0F, 0.0F); + + GL11.glRotated(75, 1.0, 0.0, 0.0); + GL11.glRotated(-90, 0.0, 1.0, 0.0); + GL11.glRotated(180, 0.0, 0.0, 1.0); + GL11.glTranslatef(0.5F, -1.1F, -1.7F); + + Minecraft.getMinecraft().renderEngine.bindTexture(ironshield); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glScalef(4.4F, 4.4F, 4.4F); + GL11.glTranslatef(1.2F, 1.5F, 5.0F); + //GL11.glRotatef(10, 0.0F, 1.0F, 1.0F); + GL11.glRotatef(180, 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(4, 0.0F, 1.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(ironshield); + model.renderAll(); + + GL11.glPopMatrix(); + + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + + GL11.glScalef(0.9F, 0.9F, 0.9F); + //GL11.glTranslatef(1.8F, 2.46F, 0.0F); + //GL11.glRotatef(180, 0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(ironshield); + model.renderAll(); + + GL11.glPopMatrix(); + + + } break; + + default: + break; + } + } + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderLongsword.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderLongsword.java new file mode 100644 index 00000000..43875301 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderLongsword.java @@ -0,0 +1,148 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.weapons; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; +//import com.kitsu.medievalcraft.models.Model; + + + +public class ItemRenderLongsword implements IItemRenderer { + + public static final ResourceLocation LONGSWORD = new ResourceLocation("kitsumedievalcraft:models/Longsword.obj"); + public static final ResourceLocation blade = new ResourceLocation("kitsumedievalcraft:models/Longsword.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(LONGSWORD); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glScalef(0.19F, 0.19F, 0.19F); + + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + //GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(45F, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(3.6F, -3.15F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + + GL11.glPushMatrix(); + GL11.glScalef(0.3F, 0.3F, 0.3F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(40F, 0.0F, 0.0F, 1.0F); + + //GL11.glRotated(-85, 1.0, 0.0, 0.0); + //GL11.glRotated(50, 0.0F, 0.0F, 1.0F); + //GL11.glRotated(3, 0.0F, 1.0F, 0.0F); + + //GL11.glTranslatef(0.9F, -0.9F, 0.9F); + GL11.glTranslatef(2.75F, -4.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glScalef(1.6F, 1.6F, 1.6F); + GL11.glTranslatef(0.9F, 9.25F, 0.0F); + GL11.glRotatef(135, 0.0F, 0.0F, -1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + + GL11.glScalef(0.28F, 0.28F, 0.28F); + //GL11.glTranslatef(1.8F, 2.46F, 0.0F); + //GL11.glRotatef(180, 0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(blade); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + default: + break; + } + } + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderWoodenShield.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderWoodenShield.java new file mode 100644 index 00000000..4ba9a325 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/ItemRenderWoodenShield.java @@ -0,0 +1,151 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.weapons; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +//import com.kitsu.medievalcraft.models.Model; +import com.kitsu.medievalcraft.item.weapon.ItemWoodenShield; + + + +public class ItemRenderWoodenShield implements IItemRenderer { + + public static final ResourceLocation WOODEN_SHIELD = new ResourceLocation("kitsumedievalcraft:models/woodenShieldObjectTriangle.obj"); + public static final ResourceLocation woodenshield = new ResourceLocation("kitsumedievalcraft:models/woodenshield.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(WOODEN_SHIELD); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + default: return false; + } + } + + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glScalef(0.875F, 0.875F, 0.875F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(270F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(10F, 0.0F, 0.0F, -1.0F); + GL11.glRotated(90, 1.0, 0.0, 0.0); + + GL11.glTranslatef(-0.35F, -1.5F, -0.55F); + + Minecraft.getMinecraft().renderEngine.bindTexture(woodenshield); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + if (ItemWoodenShield.woodenShieldInUse == true) { + GL11.glPushMatrix(); + GL11.glScalef(1.0F, 1.0F, 1.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + + GL11.glRotatef(0F, 0.0F, 0.0F, 0.0F); + + GL11.glRotated(-85, 1.0, 0.0, 0.0); + GL11.glRotated(50, 0.0F, 0.0F, 1.0F); + GL11.glRotated(3, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(0.9F, -0.9F, 0.9F); + //GL11.glTranslatef(-0.35F, -1.5F, -0.55F); + + Minecraft.getMinecraft().renderEngine.bindTexture(woodenshield); + model.renderAll(); + + GL11.glPopMatrix(); + } + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glScalef(9.5F, 9.5F, 9.5F); + GL11.glTranslatef(0.85F, 0.1F, 0.0F); + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(woodenshield); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + + GL11.glScalef(1.25F, 1.25F, 1.25F); + //GL11.glTranslatef(1.8F, 2.46F, 0.0F); + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(woodenshield); + model.renderAll(); + + GL11.glPopMatrix(); + + + } break; + + + default: + break; + } + } + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/NewIronShield.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/NewIronShield.java new file mode 100644 index 00000000..9bd0a1d7 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/weapons/NewIronShield.java @@ -0,0 +1,150 @@ +package com.kitsu.medievalcraft.renderer.itemrenderer.weapons; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +import com.kitsu.medievalcraft.item.weapon.ItemIronShield; + +public class NewIronShield implements IItemRenderer { + + public static final ResourceLocation WOODEN_SHIELD = new ResourceLocation("kitsumedievalcraft:models/NewIronShield.obj"); + public static final ResourceLocation woodenshield = new ResourceLocation("kitsumedievalcraft:models/NewIronShield.png"); + + public IModelCustom model = AdvancedModelLoader.loadModel(WOODEN_SHIELD); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, + ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return false; + } + case EQUIPPED_FIRST_PERSON: { + return false; + } + case INVENTORY: { + return false; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + default: return false; + } + } + + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + + GL11.glPushMatrix(); + GL11.glScalef(0.7F, 0.7F, 1.0F); + GL11.glTranslatef(0.87F, 0.23F, 0.0F); + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glRotatef(270F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(10F, 0.0F, 0.0F, -1.0F); + GL11.glRotated(90, 1.0, 0.0, 0.0); + + Minecraft.getMinecraft().renderEngine.bindTexture(woodenshield); + model.renderAll(); + + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + if (ItemIronShield.ironShieldInUse == true) { + GL11.glPushMatrix(); + GL11.glScalef(1.0F, 1.0F, 1.0F); + + //ANGLE, X ROTATE, Y ROTATE, Z ROTATE + GL11.glTranslatef(0.9F, 1.4F, -0.5F); + GL11.glRotated(-115, 1.0, 0.0, 0.0); + GL11.glRotated(50, 0.0F, 0.0F, 1.0F); + + //GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-20F, 0.0F, 1.0F, 0.0F); + //GL11.glRotated(-10, 0.0, 1.0, 0.0); + + //GL11.glRotated(40, 0.0F, 1.0F, 0.0F); + + + //GL11.glTranslatef(-0.35F, -1.5F, -0.55F); + + Minecraft.getMinecraft().renderEngine.bindTexture(woodenshield); + model.renderAll(); + + GL11.glPopMatrix(); + } + } break; + + case INVENTORY: { + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glScalef(6.0F, 6.0F, 6.0F); + GL11.glTranslatef(0.9F, 1.1F, -10.0F); + GL11.glRotatef(-90, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(180, 0.0F, 0.0F, 1.0F); + + Minecraft.getMinecraft().renderEngine.bindTexture(woodenshield); + model.renderAll(); + + GL11.glPopMatrix(); + + } break; + + case ENTITY: { + GL11.glPushMatrix(); + + GL11.glScalef(0.75F, 0.75F, 0.75F); + //GL11.glTranslatef(1.8F, 2.46F, 0.0F); + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.0F, 1.2F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(woodenshield); + model.renderAll(); + + GL11.glPopMatrix(); + + + } break; + + + default: + break; + } + } + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntRegister.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntRegister.java new file mode 100644 index 00000000..83a6b269 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntRegister.java @@ -0,0 +1,73 @@ +package com.kitsu.medievalcraft.tileents; + +import com.kitsu.medievalcraft.tileents.cannon.TileCannonBall28; +import com.kitsu.medievalcraft.tileents.cannon.TileCannon_28; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleIronOre; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleLapis; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleRedstone; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleWootz; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityBoilingWaterCrucible; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityEmptyCookedCrucible; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityFilledWaterCrucible; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntitySlackWaterCrucible; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntitySoftEmptyCrucible; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityTanWaterCrucible; +import com.kitsu.medievalcraft.tileents.ingots.TileDamascus; +import com.kitsu.medievalcraft.tileents.ingots.TileEntityMyDiamond; +import com.kitsu.medievalcraft.tileents.ingots.TileEntityMyEmerald; +import com.kitsu.medievalcraft.tileents.ingots.TileIronPlate; +import com.kitsu.medievalcraft.tileents.ingots.TileLapisIngot; +import com.kitsu.medievalcraft.tileents.ingots.TileMyIronIngot; +import com.kitsu.medievalcraft.tileents.ingots.TileRedstoneIngot; +import com.kitsu.medievalcraft.tileents.machine.TileEntityAnvilForge; +import com.kitsu.medievalcraft.tileents.machine.TileEntityFirebox; +import com.kitsu.medievalcraft.tileents.machine.TileEntityShelfFour; +import com.kitsu.medievalcraft.tileents.machine.TileEntitySolidFilter; +import com.kitsu.medievalcraft.tileents.machine.TileEntityTestForge; +import com.kitsu.medievalcraft.tileents.machine.TileEntityWaterFilter; +import com.kitsu.medievalcraft.tileents.machine.TileForge; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class TileEntRegister { + + public static final void init() { + + GameRegistry.registerTileEntity(TileEntityTestForge.class, "TestForge"); + GameRegistry.registerTileEntity(TileEntityAnvilForge.class, "AnvilForge"); + GameRegistry.registerTileEntity(TileEntitySoftEmptyCrucible.class, "SoftEmptyCrucible"); + GameRegistry.registerTileEntity(TileEntityEmptyCookedCrucible.class, "EmptyCookedCrucible"); + + GameRegistry.registerTileEntity(TileEntityMyDiamond.class, "MyDiamond"); + GameRegistry.registerTileEntity(TileEntityMyEmerald.class, "MyEmerald"); + + GameRegistry.registerTileEntity(TileEntityWaterFilter.class, "WaterFilter"); + + GameRegistry.registerTileEntity(TileEntityFilledWaterCrucible.class, "FilledWaterCrucible"); + GameRegistry.registerTileEntity(TileEntityBoilingWaterCrucible.class, "BoilingWaterCrucible"); + GameRegistry.registerTileEntity(TileEntityTanWaterCrucible.class, "TanWaterCrucible"); + GameRegistry.registerTileEntity(TileEntitySlackWaterCrucible.class, "SlackWaterCrucible"); + GameRegistry.registerTileEntity(TileEntitySolidFilter.class, "SolidFilter"); + GameRegistry.registerTileEntity(TileEntitySmallLid.class, "SmallLid"); + GameRegistry.registerTileEntity(TileEntitySmallBarrel.class, "SmallBarrel"); + GameRegistry.registerTileEntity(TileEntityShelfFour.class, "ShelfFour"); + GameRegistry.registerTileEntity(TileEntityFirebox.class, "Firebox"); + GameRegistry.registerTileEntity(TileForge.class, "Forge"); + + GameRegistry.registerTileEntity(TileCrucibleIronOre.class, "CrucibleIronOre"); + GameRegistry.registerTileEntity(TileCrucibleWootz.class, "CrucibleWootz"); + GameRegistry.registerTileEntity(TileCrucibleLapis.class, "CrucibleLapis"); + GameRegistry.registerTileEntity(TileCrucibleRedstone.class, "CrucibleRedstone"); + + GameRegistry.registerTileEntity(TileMyIronIngot.class, "MyIronIngot"); + GameRegistry.registerTileEntity(TileDamascus.class, "Damascus"); + GameRegistry.registerTileEntity(TileIronPlate.class, "IronPlate"); + GameRegistry.registerTileEntity(TileRedstoneIngot.class, "RedstoneIngot"); + GameRegistry.registerTileEntity(TileLapisIngot.class, "LapisIngot"); + + GameRegistry.registerTileEntity(TileCannon_28.class, "Cannon_28"); + GameRegistry.registerTileEntity(TileCannonBall28.class, "CannonBall_28"); + + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntitySmallBarrel.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntitySmallBarrel.java new file mode 100644 index 00000000..d6e1247d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntitySmallBarrel.java @@ -0,0 +1,134 @@ +package com.kitsu.medievalcraft.tileents; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class TileEntitySmallBarrel extends TileEntity { + + private String smallBarrelName; + private NBTTagCompound nbt = new NBTTagCompound(); + public boolean soakedloaded, scuddedloaded, soakedready, scuddedready; + public int quanta, ticks, case0, case1, case2, case3, case4, case5; + public String type = "empty"; + public String res = "null"; + ResourceLocation unt = new ResourceLocation("kitsumedievalcraft:models/UntitledBarrel.png"); + ResourceLocation unt0 = new ResourceLocation("kitsumedievalcraft:models/UntitledBarrelLid.png"); + ResourceLocation unt1 = new ResourceLocation("kitsumedievalcraft:models/UntitledBarrelSlack1.png"); + ResourceLocation unt2 = new ResourceLocation("kitsumedievalcraft:models/UntitledBarrelSlack2.png"); + ResourceLocation unt3 = new ResourceLocation("kitsumedievalcraft:models/UntitledBarrelTan1.png"); + ResourceLocation unt4 = new ResourceLocation("kitsumedievalcraft:models/UntitledBarrelTan2.png"); + + public void forgeName(String string){ + this.smallBarrelName = string; + } + + @Override + public void updateEntity() { + World world = this.getWorldObj(); + //int x = this.xCoord; + //int y = this.yCoord; + //int z = this.zCoord; + + if(!world.isRemote){ + //System.out.println(this.lid +":"+ this.type +":"+ this.quanta); + //System.out.println("soaked"+this.soakedloaded+":"+this.soakedready); + //System.out.println("scudded"+this.scuddedloaded+":"+this.scuddedready); + + if(soakedloaded==true){ + if(type.equals("slack")){ + //if(lid==true){ + if(soakedready==false){ + if(quanta>0){ + ticks++; + //System.out.println(ticks); + } + if(ticks>=180){ + soakedready=true; + quanta--; + ticks = 0; + if(quanta==0){ + type="empty"; + } + //System.out.println(this.soakedready+":"+this.quanta+":"+this.ticks); + } + } + //} + } + } + + if(scuddedloaded==true){ + if(type.equals("tannin")){ + //if(lid==true){ + if(scuddedready==false){ + if(quanta>0){ + ticks++; + System.out.println(ticks); + } + if(ticks>=180){ + scuddedready=true; + quanta--; + ticks = 0; + if(quanta==0){ + type="empty"; + } + } + } + //} + } + } + } + } + + public void markForUpdate(){ + worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + if (nbt.hasKey("CustomName", 8)) { + this.smallBarrelName = nbt.getString("CustomName"); + } + //this.lid = nbt.getBoolean("LID"); + this.quanta = nbt.getInteger("QUANTA"); + this.soakedloaded = nbt.getBoolean("SOAKEDLOADED"); + this.scuddedloaded = nbt.getBoolean("SCUDDEDLOADED"); + this.soakedready = nbt.getBoolean("SOAKEDREADY"); + this.scuddedready = nbt.getBoolean("SCUDDEDREADY"); + this.type = nbt.getString("TYPE"); + this.res = nbt.getString("RES"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + //nbt.setBoolean("LID", lid); + nbt.setInteger("QUANTA", quanta); + nbt.setBoolean("SOAKEDLOADED", soakedloaded); + nbt.setBoolean("SCUDDEDLOADED", scuddedloaded); + nbt.setBoolean("SOAKEDREADY", soakedready); + nbt.setBoolean("SCUDDEDREADY", scuddedready); + nbt.setString("TYPE", type); + nbt.setString(("RES"), res); + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + writeToNBT(nbt); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 998, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntitySmallLid.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntitySmallLid.java new file mode 100644 index 00000000..22ba7baf --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntitySmallLid.java @@ -0,0 +1,73 @@ +package com.kitsu.medievalcraft.tileents; + +import com.kitsu.medievalcraft.block.ModBlocks; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class TileEntitySmallLid extends TileEntity { + + private String smallLidName; + public int logs; + public int ring; + //public static boolean hitGood = false; + //public NBTTagCompound nbt = new NBTTagCompound(); + + public void smallLidName(String string){ + this.smallLidName = string; + } + + @Override + public void updateEntity() { + World world = this.getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + if(!world.isRemote){ + if(ring>=2){ + world.setBlock(x, y, z, ModBlocks.smallBarrel, 0, 2); + } + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + if (nbt.hasKey("CustomName", 8)) { + this.smallLidName = nbt.getString("CustomName"); + } + this.logs = nbt.getInteger("LOGS"); + this.ring = nbt.getInteger("RING"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("LOGS", logs); + nbt.setInteger("RING", ring); + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + writeToNBT(nbt); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, -999, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } +//func_148857_g() + + public void markForUpdate(){ + worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntityTestBlock.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntityTestBlock.java new file mode 100644 index 00000000..69aa9c5d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/TileEntityTestBlock.java @@ -0,0 +1,13 @@ +package com.kitsu.medievalcraft.tileents; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityTestBlock extends TileEntity{ + + private String testBlockName; + + public void forgeName(String string){ + this.testBlockName = string; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/cannon/TileCannonBall28.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/cannon/TileCannonBall28.java new file mode 100644 index 00000000..b22740d3 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/cannon/TileCannonBall28.java @@ -0,0 +1,16 @@ +package com.kitsu.medievalcraft.tileents.cannon; + +import com.kitsu.medievalcraft.block.ModBlocks; + +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; + +public class TileCannonBall28 extends TileEntity { + + private String stringCannonBall_28; + + public void tileCannonBall28(String string){ + this.stringCannonBall_28 = string; + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/cannon/TileCannon_28.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/cannon/TileCannon_28.java new file mode 100644 index 00000000..55202e47 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/cannon/TileCannon_28.java @@ -0,0 +1,260 @@ +package com.kitsu.medievalcraft.tileents.cannon; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.util.CannonUtil; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class TileCannon_28 extends TileEntity implements IInventory, ISidedInventory, CannonUtil{ + + private String tileCannon_28; + private ItemStack[] inv; + private NBTTagCompound tag = new NBTTagCompound(); + private int ticks; + public boolean isOn; + public static boolean smoke; + public static int xSmoke, ySmoke, zSmoke; + private static final int[] slots_all = new int[] {0,1}; + private static final int[] slots_top = new int[] {0}; + //private static final int[] slots_bottom = new int[] {2, 1}; + private static final int[] slots_sides = new int[] {1}; + + + public TileCannon_28(){ + this.inv = new ItemStack[2]; + } + + @Override + public int getSizeInventory() { + return this.inv.length; + } + @Override + public ItemStack getStackInSlot(int slot) { + return this.inv[slot]; + } + + @Override + public ItemStack decrStackSize(int slot, int par2) + { + if (this.inv[slot] != null) + { + ItemStack itemstack; + + if (this.inv[slot].stackSize <= par2) + { + itemstack = this.inv[slot]; + this.inv[slot] = null; + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + itemstack = this.inv[slot].splitStack(par2); + + if (this.inv[slot].stackSize == 0) + { + this.inv[slot] = null; + } + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + this.markForUpdate(); + this.markDirty(); + return null; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) + { + if (this.inv[i] != null) + { + ItemStack itemstack = this.inv[i]; + this.inv[i] = null; + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + else + { + this.markForUpdate(); + this.markDirty(); + return null; + } + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) + { + this.inv[slot] = stack; + + if (stack != null && stack.stackSize > this.getInventoryStackLimit()) + { + stack.stackSize = this.getInventoryStackLimit(); + } + this.markForUpdate(); + this.markDirty(); + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.tileCannon_28 : "tileCannon_28"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.tileCannon_28 != null && this.tileCannon_28.length() > 0; + } + + @Override + public int getInventoryStackLimit() { + return 5; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : player.getDistanceSq(this.xCoord + 0.5D, this.yCoord + 0.5D, this.zCoord + 0.5D) <= 64.0D; + } + + @Override + public void openInventory() {} + @Override + public void closeInventory() { + + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack itemstack) { + if(this.getStackInSlot(0)==null && slot == 0 && itemstack.getItem() == Items.gunpowder){ + return true; + } + if(this.getStackInSlot(0)!=null && slot == 0 && itemstack.getItem() == Items.gunpowder && this.getStackInSlot(0).stackSize <= 5){ + return true; + } + if(this.getStackInSlot(1)==null && slot == 1 && itemstack.getItem() == Item.getItemFromBlock(ModBlocks.cannonBall_28)){ + return true; + } + if(this.getStackInSlot(1)!=null){ + return false; + } + + return false; + } + + public void markForUpdate(){ + worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } + + @Override + public void readFromNBT(NBTTagCompound tagCompound) { + super.readFromNBT(tagCompound); + NBTTagList tagList = tagCompound.getTagList("Inventory", 10); + this.inv = new ItemStack[this.getSizeInventory()]; + for (int i = 0; i < tagList.tagCount(); i++) { + NBTTagCompound tag = tagList.getCompoundTagAt(i); + byte slot = tag.getByte("Slot"); + if (slot >= 0 && slot < this.inv.length) { + this.inv[slot] = ItemStack.loadItemStackFromNBT(tag); + } + } + if (tagCompound.hasKey("CustomName", 8)) { + this.tileCannon_28 = tagCompound.getString("CustomName"); + } + + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) { + super.writeToNBT(tagCompound); + + NBTTagList itemList = new NBTTagList(); + for (int i = 0; i < inv.length; i++) { + //ItemStack stack = inv[i]; + if (inv[i] != null) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setByte("Slot", (byte) i); + this.inv[i].writeToNBT(tag); + itemList.appendTag(tag); + } + } + tagCompound.setTag("Inventory", itemList); + + } + @Override + public Packet getDescriptionPacket() { + NBTTagCompound tag = new NBTTagCompound(); + this.writeToNBT(tag); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 998, tag); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + + @Override + public void updateEntity() { + + World world = getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + if(!world.isRemote){ + if(this.isOn==true){ + ticks++; + } + if(ticks>=100){ + this.isOn=false; + ticks=0; + } + } + if(world.isRemote){ + + } + if (worldObj.isRemote) return; + } + + @Override + public int[] getAccessibleSlotsFromSide(int par1) { + + /*if(par1 == 1){ + return slots_top; + } + else return slots_sides;*/ + return slots_all; + + } + + @Override + public boolean canInsertItem(int slot, ItemStack itemstack, int p_102007_3_) { + + return this.isItemValidForSlot(slot, itemstack); + } + + @Override + public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { + + return false; + } + + + + +} + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleBase.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleBase.java new file mode 100644 index 00000000..86d9b372 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleBase.java @@ -0,0 +1,95 @@ +package com.kitsu.medievalcraft.tileents.crucible; + +import com.kitsu.medievalcraft.block.ModBlocks; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class TileCrucibleBase extends TileEntity { + + private String specName; + public int coolTicks; + public int heatTicks; + public boolean cooked; + public boolean hot; + //private NBTTagCompound nbt = new NBTTagCompound(); + public TileCrucibleBase(String name){ + specName = name; + } + + public void markForUpdate(){ + worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } + + @Override + public void updateEntity() { + World world = this.getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + if(!world.isRemote){ + if(this.heatTicks<=0){ + world.setBlockMetadataWithNotify(x, y, z, 1, 2); + } + if(this.coolTicks<=0){ + world.setBlockMetadataWithNotify(x, y, z, 2, 2); + } + coolDown(world, x, y, z); + //System.out.println(this.heatTicks); + //System.out.println(this.coolTicks); + } + } + + private void coolDown(World world, int x, int y, int z){ + if(!world.isRemote){ + if((world.getBlock(x, y-1, z)!=ModBlocks.firebox)&&(this.hot==true)){ + coolTicks--; + if(coolTicks <= 0){ + this.cooked=true; + this.hot=false; + this.markForUpdate(); + this.markDirty(); + } + } + } + } + + @Override + public void readFromNBT(NBTTagCompound tagCompound) { + super.readFromNBT(tagCompound); + this.coolTicks = tagCompound.getInteger("COOLTICKS"); + this.heatTicks = tagCompound.getInteger("HEATTICKS"); + this.cooked = tagCompound.getBoolean("COOKED"); + this.hot = tagCompound.getBoolean("HOT"); + if (tagCompound.hasKey("CustomName", 8)) { + specName = tagCompound.getString("CustomName"); + } + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) { + super.writeToNBT(tagCompound); + tagCompound.setInteger("COOLTICKS", this.coolTicks); + tagCompound.setInteger("HEATTICKS", this.heatTicks); + tagCompound.setBoolean("COOKED", this.cooked); + tagCompound.setBoolean("HOT", this.hot); + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + writeToNBT(nbt); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, -998, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleIronOre.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleIronOre.java new file mode 100644 index 00000000..5a0bbb50 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleIronOre.java @@ -0,0 +1,21 @@ +package com.kitsu.medievalcraft.tileents.crucible; + +import com.kitsu.medievalcraft.block.ModBlocks; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.world.World; + +public class TileCrucibleIronOre extends TileCrucibleBase { + + private static String nameCustom = "crucibleIron"; + + public TileCrucibleIronOre() { + super(nameCustom); + this.cooked = false; + this.hot = false; + this.coolTicks = 900; + this.heatTicks = 800; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleLapis.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleLapis.java new file mode 100644 index 00000000..b4b48502 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleLapis.java @@ -0,0 +1,14 @@ +package com.kitsu.medievalcraft.tileents.crucible; + +public class TileCrucibleLapis extends TileCrucibleBase { + + private static String nameCustom = "crucibleLapis"; + + public TileCrucibleLapis() { + super(nameCustom); + this.cooked = false; + this.hot = false; + this.coolTicks = 900; + this.heatTicks = 850; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleRedstone.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleRedstone.java new file mode 100644 index 00000000..4e0db0bb --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleRedstone.java @@ -0,0 +1,14 @@ +package com.kitsu.medievalcraft.tileents.crucible; + +public class TileCrucibleRedstone extends TileCrucibleBase { + + private static String nameCustom = "crucibleRedstone"; + + public TileCrucibleRedstone() { + super(nameCustom); + this.cooked = false; + this.hot = false; + this.coolTicks = 900; + this.heatTicks = 850; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleWootz.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleWootz.java new file mode 100644 index 00000000..9c2e9ccd --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/TileCrucibleWootz.java @@ -0,0 +1,16 @@ +package com.kitsu.medievalcraft.tileents.crucible; + +import net.minecraft.tileentity.TileEntity; + +public class TileCrucibleWootz extends TileCrucibleBase { + + private static String nameCustom = "crucibleWootz"; + + public TileCrucibleWootz() { + super(nameCustom); + this.cooked = false; + this.hot = false; + this.coolTicks = 1100; + this.heatTicks = 900; + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityBoilingWaterCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityBoilingWaterCrucible.java new file mode 100644 index 00000000..75a1974e --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityBoilingWaterCrucible.java @@ -0,0 +1,110 @@ +package com.kitsu.medievalcraft.tileents.crucible.empty; + +import com.kitsu.medievalcraft.block.ModBlocks; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class TileEntityBoilingWaterCrucible extends TileEntity { + + private String boilingWaterCrucibleName; + private int bticks, cticks; + public boolean dotan, dolime; + + public NBTTagCompound nbt = new NBTTagCompound(); + + public void forgeName(String string){ + this.boilingWaterCrucibleName = string; + } + private void heat(World world, int x, int y, int z){ + if(!world.isRemote){ + if(world.getBlock(x, y-1, z).equals(ModBlocks.firebox)&&world.getBlockMetadata(x, y-1, z)==1){ + cticks = 0; + if((dotan==true)){ + bticks++; + if(bticks >= 1000 + world.rand.nextInt(50)){ + world.setBlock(x, y, z, ModBlocks.tanWaterCrucible, 0, 2); + //System.out.println("Tan Crucible"); + } + } + if((dolime==true)){ + bticks++; + if(bticks >= 1000 + world.rand.nextInt(50)){ + world.setBlock(x, y, z, ModBlocks.slackWaterCrucible, 0, 2); + //System.out.println("Tan Crucible"); + } + } + } + } + } + private void cool(World world, int x, int y, int z){ + Block fire = this.worldObj.getBlock(x, y-2, z); + Block ironbar = this.worldObj.getBlock(x, y - 1, z); + if(!world.isRemote){ + if(world.getBlock(x, y-1, z)!=(ModBlocks.firebox)||world.getBlock(x, y-1, z)!=(Blocks.fire)){ + cticks++; + if(cticks >= 500 + world.rand.nextInt(50)){ + world.setBlock(x, y, z, ModBlocks.filledWaterCrucible, 0, 2); + } + } + if(world.getBlock(x, y-1, z)==(ModBlocks.firebox)&&world.getBlockMetadata(x, y, z)==0){ + cticks++; + if(cticks >= 500 + world.rand.nextInt(50)){ + world.setBlock(x, y, z, ModBlocks.filledWaterCrucible, 0, 2); + } + } + } + } + + @Override + public void readFromNBT(NBTTagCompound tagCompound) { + super.readFromNBT(tagCompound); + this.bticks = tagCompound.getInteger("BTICKS"); + this.cticks = tagCompound.getInteger("CTICKS"); + this.dotan = tagCompound.getBoolean("DOTAN"); + this.dotan = tagCompound.getBoolean("DOLIME"); + if (tagCompound.hasKey("CustomName", 8)) { + this.boilingWaterCrucibleName = tagCompound.getString("CustomName"); + } + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) { + super.writeToNBT(tagCompound); + tagCompound.setInteger("BTICKS", bticks); + tagCompound.setInteger("CTICKS", cticks); + tagCompound.setBoolean("DOTAN", dotan); + tagCompound.setBoolean("DOLIME", dolime); + } + + @Override + public void updateEntity() { + World world = this.getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + if(!world.isRemote){ + heat(world, x, y, z); + cool(world, x, y, z); + } + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + writeToNBT(nbt); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, -998, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityEmptyCookedCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityEmptyCookedCrucible.java new file mode 100644 index 00000000..3db13c85 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityEmptyCookedCrucible.java @@ -0,0 +1,13 @@ +package com.kitsu.medievalcraft.tileents.crucible.empty; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityEmptyCookedCrucible extends TileEntity { + + private String emptyCookedCrucibleName; + + public void emptyCookedCrucibleName(String string){ + this.emptyCookedCrucibleName = string; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityFilledWaterCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityFilledWaterCrucible.java new file mode 100644 index 00000000..8bc0dfde --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityFilledWaterCrucible.java @@ -0,0 +1,25 @@ +package com.kitsu.medievalcraft.tileents.crucible.empty; + +import com.kitsu.medievalcraft.block.ModBlocks; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class TileEntityFilledWaterCrucible extends TileEntity { + + private String filledWaterCrucibleName; + public int cookTime = 450; + public int coolTime = 500; + public Block cookBlock = ModBlocks.boilingWaterCrucible; + + public TileEntityFilledWaterCrucible() { + + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntitySlackWaterCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntitySlackWaterCrucible.java new file mode 100644 index 00000000..cea30a2f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntitySlackWaterCrucible.java @@ -0,0 +1,17 @@ +package com.kitsu.medievalcraft.tileents.crucible.empty; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; + +public class TileEntitySlackWaterCrucible extends TileEntity { + + private String slackWaterCrucibleName; + //int cticks; + NBTTagCompound tagCompound = new NBTTagCompound(); + + public void forgeName(String string){ + this.slackWaterCrucibleName = string; + } + + } + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntitySoftEmptyCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntitySoftEmptyCrucible.java new file mode 100644 index 00000000..d94bb9fc --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntitySoftEmptyCrucible.java @@ -0,0 +1,18 @@ +package com.kitsu.medievalcraft.tileents.crucible.empty; + +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; + +import com.kitsu.medievalcraft.block.ModBlocks; + +public class TileEntitySoftEmptyCrucible extends TileEntity { + + private String emptyCrucibleName; + public int cookTime = 250; + public Block cookBlock = ModBlocks.emptyCookedCrucible; + + public void emptyCrucibleName(String string){ + this.emptyCrucibleName = string; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityTanWaterCrucible.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityTanWaterCrucible.java new file mode 100644 index 00000000..a635e449 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/crucible/empty/TileEntityTanWaterCrucible.java @@ -0,0 +1,41 @@ +package com.kitsu.medievalcraft.tileents.crucible.empty; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityTanWaterCrucible extends TileEntity { + + private String tanWaterCrucibleName; + //int cticks; + //NBTTagCompound tagCompound = new NBTTagCompound(); + + public void forgeName(String string){ + this.tanWaterCrucibleName = string; + } + /* + @Override + public void readFromNBT(NBTTagCompound tagCompound) { + super.readFromNBT(tagCompound); + //this.cticks = tagCompound.getInteger("CTICKS"); + if (tagCompound.hasKey("CustomName", 8)) { + this.tanWaterCrucibleName = tagCompound.getString("CustomName"); + } + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) { + super.writeToNBT(tagCompound); + //tagCompound.setInteger("CTICKS", cticks); + } + + /*@Override + public void updateEntity() { + World world = this.getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + if(!world.isRemote){ + //heat(world, x, y, z); + } + }*/ + } + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileDamascus.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileDamascus.java new file mode 100644 index 00000000..74be8912 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileDamascus.java @@ -0,0 +1,16 @@ +package com.kitsu.medievalcraft.tileents.ingots; + +public class TileDamascus extends TileIngotBase{ + + private static String nameCustom = "tileDamascus"; + + public TileDamascus() { + super(nameCustom); + this.hits = 0; + this.hot = false; + + this.heatTicks = 500; + this.heatBase = 500; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileEntityMyDiamond.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileEntityMyDiamond.java new file mode 100644 index 00000000..657a687b --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileEntityMyDiamond.java @@ -0,0 +1,51 @@ +package com.kitsu.medievalcraft.tileents.ingots; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; + +public class TileEntityMyDiamond extends TileEntity { + + private String myDiamond; + public int hits = 0; + public boolean hitGood = false; + private NBTTagCompound nbt = new NBTTagCompound(); + + public void forgeName(String string){ + this.myDiamond = string; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + this.hits = nbt.getInteger("HITS"); + this.hitGood = nbt.getBoolean("HITBOOLEAN"); + //this.visitor1 = nbt.getString("visitor1"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("HITS", hits); + nbt.setBoolean("HITBOOLEAN", hitGood); + //nbt.setString("visitor1", visitor1); + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + writeToNBT(nbt); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, -998, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileEntityMyEmerald.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileEntityMyEmerald.java new file mode 100644 index 00000000..7c96bd82 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileEntityMyEmerald.java @@ -0,0 +1,51 @@ +package com.kitsu.medievalcraft.tileents.ingots; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; + +public class TileEntityMyEmerald extends TileEntity { + + private String myEmerald; + public int hits = 0; + public boolean hitGood = false; + private static NBTTagCompound nbt = new NBTTagCompound(); + + public void forgeName(String string){ + this.myEmerald = string; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + this.hits = nbt.getInteger("HITS"); + this.hitGood = nbt.getBoolean("HITBOOLEAN"); + //this.visitor1 = nbt.getString("visitor1"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("HITS", hits); + nbt.setBoolean("HITBOOLEAN", hitGood); + //nbt.setString("visitor1", visitor1); + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + writeToNBT(nbt); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, -998, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileIngotBase.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileIngotBase.java new file mode 100644 index 00000000..b46fc80e --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileIngotBase.java @@ -0,0 +1,122 @@ +package com.kitsu.medievalcraft.tileents.ingots; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.tileents.machine.TileEntityAnvilForge; +import com.kitsu.medievalcraft.util.AnvilUtil; + +public class TileIngotBase extends TileEntity implements AnvilUtil{ + + private String specName; + public int hits = 0; + public int heatBase = 300; + public int coolTicks = 250; + public int heatTicks = 300; + public int coolBase = 250; + public boolean hot; + + public TileIngotBase(String name){ + specName = name; + } + + public void markForUpdate(){ + worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } + + @Override + public void updateEntity() { + World world = this.getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + if(!world.isRemote){ + //System.out.println(this.heatTicks); + if(this.heatTicks<=0){ + world.setBlockMetadataWithNotify(x, y, z, 1, 2); + this.hot=true; + //this.heatTicks=100; + } + if(this.coolTicks<=0){ + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + } + coolDown(world,x,y,z); + //makeItem(world,x,y,z); + } + + } + + private void coolDown(World world, int x, int y, int z){ + if(!world.isRemote){ + if(this.hot==true){ + if(world.getBlockMetadata(x, y-1, z)<8){ + coolTicks--; + if(coolTicks <= 0){ + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + this.hot=false; + this.coolTicks=coolBase; + this.heatTicks=heatBase; + this.markForUpdate(); + this.markDirty(); + } + } + } + } + } + + /* + private void makeItem(World world, int x, int y, int z){ + if(this.hits==0 && this.hot==true && world.getBlock(x, y-1, z).equals(ModBlocks.forgeAnvil)){ + TileEntityAnvilForge tile = (TileEntityAnvilForge) world.getTileEntity(x, y-1, z); + if(tile.getStackInSlot(0)!=null){ + + + + System.out.println(forms.get(tile.getStackInSlot(0).getItem().getUnlocalizedName())); + if(tile.getStackInSlot(0).equals(forms.get(tile.getStackInSlot(0).getItem().getUnlocalizedName()))){ + System.out.println("Logic is Working"); + } + } + } + } + */ + + @Override + public void readFromNBT(NBTTagCompound tagCompound) + { + super.readFromNBT(tagCompound); + this.hits = tagCompound.getInteger("HITS"); + this.coolTicks = tagCompound.getInteger("COOLTICK"); + this.heatTicks = tagCompound.getInteger("HEATTICKS"); + this.hot = tagCompound.getBoolean("HOT"); + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) + { + super.writeToNBT(tagCompound); + tagCompound.setInteger("HITS", this.hits); + tagCompound.setInteger("COOLTICK", this.coolTicks); + tagCompound.setInteger("HEATTICKS", this.heatTicks); + tagCompound.setBoolean("HOT", this.hot); + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + writeToNBT(nbt); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, -998, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileIronPlate.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileIronPlate.java new file mode 100644 index 00000000..b532043a --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileIronPlate.java @@ -0,0 +1,15 @@ +package com.kitsu.medievalcraft.tileents.ingots; + +public class TileIronPlate extends TileIngotBase{ + + private static String nameCustom = "tileIronPlate"; + + public TileIronPlate() { + super(nameCustom); + this.hits = 0; + this.hot = false; + this.heatTicks = 450; + this.heatBase = 450; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileLapisIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileLapisIngot.java new file mode 100644 index 00000000..114ab23c --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileLapisIngot.java @@ -0,0 +1,17 @@ +package com.kitsu.medievalcraft.tileents.ingots; + +public class TileLapisIngot extends TileIngotBase{ + + private static String nameCustom = "tileLapisIngot"; + + public TileLapisIngot() { + super(nameCustom); + this.hits = 0; + this.hot = false; + this.coolTicks = 300; + this.coolBase = 300; + this.heatTicks = 600; + this.heatBase = 600; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileMyIronIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileMyIronIngot.java new file mode 100644 index 00000000..6274b6b5 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileMyIronIngot.java @@ -0,0 +1,13 @@ +package com.kitsu.medievalcraft.tileents.ingots; + +public class TileMyIronIngot extends TileIngotBase{ + + private static String nameCustom = "tileMyIronIngot"; + + public TileMyIronIngot() { + super(nameCustom); + this.hits = 0; + this.hot = false; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileRedstoneIngot.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileRedstoneIngot.java new file mode 100644 index 00000000..30aca1a7 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/ingots/TileRedstoneIngot.java @@ -0,0 +1,17 @@ +package com.kitsu.medievalcraft.tileents.ingots; + +public class TileRedstoneIngot extends TileIngotBase{ + + private static String nameCustom = "tileRedstoneIngot"; + + public TileRedstoneIngot() { + super(nameCustom); + this.hits = 0; + this.hot = false; + this.coolTicks = 300; + this.coolBase = 300; + this.heatTicks = 600; + this.heatBase = 600; + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityAnvilForge.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityAnvilForge.java new file mode 100644 index 00000000..b1c2c28b --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityAnvilForge.java @@ -0,0 +1,218 @@ +package com.kitsu.medievalcraft.tileents.machine; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.block.crucible.CrucibleBase; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleBase; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityFilledWaterCrucible; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntitySoftEmptyCrucible; + +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.block.Block; +import net.minecraft.block.BlockFurnace; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.item.ItemTool; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityFurnace; +import net.minecraft.world.World; + +public class TileEntityAnvilForge extends TileEntity implements IInventory{ + + private String anvilName; + private ItemStack[] inv; + private NBTTagCompound tag = new NBTTagCompound(); + private int ticks; + public boolean isOn; + + public TileEntityAnvilForge(){ + this.inv = new ItemStack[1]; + } + + @Override + public int getSizeInventory() { + return this.inv.length; + } + @Override + public ItemStack getStackInSlot(int slot) { + return this.inv[slot]; + } + + @Override + public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) + { + if (this.inv[p_70298_1_] != null) + { + ItemStack itemstack; + + if (this.inv[p_70298_1_].stackSize <= p_70298_2_) + { + itemstack = this.inv[p_70298_1_]; + this.inv[p_70298_1_] = null; + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + itemstack = this.inv[p_70298_1_].splitStack(p_70298_2_); + + if (this.inv[p_70298_1_].stackSize == 0) + { + this.inv[p_70298_1_] = null; + } + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + this.markForUpdate(); + this.markDirty(); + return null; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) + { + if (this.inv[i] != null) + { + ItemStack itemstack = this.inv[i]; + this.inv[i] = null; + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + else + { + this.markForUpdate(); + this.markDirty(); + return null; + } + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) + { + this.inv[slot] = stack; + + if (stack != null && stack.stackSize > this.getInventoryStackLimit()) + { + stack.stackSize = this.getInventoryStackLimit(); + } + this.markForUpdate(); + this.markDirty(); + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.anvilName : "anvilName"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.anvilName != null && this.anvilName.length() > 0; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : player.getDistanceSq(this.xCoord + 0.5D, this.yCoord + 0.5D, this.zCoord + 0.5D) <= 64.0D; + } + + @Override + public void openInventory() {} + @Override + public void closeInventory() {} + + @Override + public boolean isItemValidForSlot(int par1, ItemStack itemstack) { + return false; + } + + public void markForUpdate(){ + worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } + + @Override + public void readFromNBT(NBTTagCompound tagCompound) { + super.readFromNBT(tagCompound); + NBTTagList tagList = tagCompound.getTagList("Inventory", 10); + this.inv = new ItemStack[this.getSizeInventory()]; + for (int i = 0; i < tagList.tagCount(); i++) { + NBTTagCompound tag = tagList.getCompoundTagAt(i); + byte slot = tag.getByte("Slot"); + if (slot >= 0 && slot < this.inv.length) { + this.inv[slot] = ItemStack.loadItemStackFromNBT(tag); + } + } + if (tagCompound.hasKey("CustomName", 8)) { + this.anvilName = tagCompound.getString("CustomName"); + } + + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) { + super.writeToNBT(tagCompound); + + NBTTagList itemList = new NBTTagList(); + for (int i = 0; i < inv.length; i++) { + //ItemStack stack = inv[i]; + if (inv[i] != null) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setByte("Slot", (byte) i); + this.inv[i].writeToNBT(tag); + itemList.appendTag(tag); + } + } + tagCompound.setTag("Inventory", itemList); + + } + @Override + public Packet getDescriptionPacket() { + NBTTagCompound tag = new NBTTagCompound(); + this.writeToNBT(tag); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 998, tag); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + + @Override + public void updateEntity() { + + World world = getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + if(!world.isRemote){ + + } + if (worldObj.isRemote) return; + } + + + + +} + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityFirebox.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityFirebox.java new file mode 100644 index 00000000..7875ca63 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityFirebox.java @@ -0,0 +1,373 @@ +package com.kitsu.medievalcraft.tileents.machine; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockFurnace; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.item.ItemTool; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityFurnace; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.block.crucible.CrucibleBase; +import com.kitsu.medievalcraft.tileents.crucible.TileCrucibleBase; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntityFilledWaterCrucible; +import com.kitsu.medievalcraft.tileents.crucible.empty.TileEntitySoftEmptyCrucible; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class TileEntityFirebox extends TileEntity implements IInventory{ + + private String fireboxName; + private ItemStack[] inv; + private NBTTagCompound tag = new NBTTagCompound(); + private int ticks; + public boolean isOn; + + public TileEntityFirebox(){ + this.inv = new ItemStack[1]; + } + + @Override + public int getSizeInventory() { + return this.inv.length; + } + + @Override + public ItemStack getStackInSlot(int slot) { + return this.inv[slot]; + } + + @Override + public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) + { + if (this.inv[p_70298_1_] != null) + { + ItemStack itemstack; + + if (this.inv[p_70298_1_].stackSize <= p_70298_2_) + { + itemstack = this.inv[p_70298_1_]; + this.inv[p_70298_1_] = null; + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + itemstack = this.inv[p_70298_1_].splitStack(p_70298_2_); + + if (this.inv[p_70298_1_].stackSize == 0) + { + this.inv[p_70298_1_] = null; + } + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + this.markForUpdate(); + this.markDirty(); + return null; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) + { + if (this.inv[i] != null) + { + ItemStack itemstack = this.inv[i]; + this.inv[i] = null; + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + else + { + this.markForUpdate(); + this.markDirty(); + return null; + } + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) + { + this.inv[slot] = stack; + + if (stack != null && stack.stackSize > this.getInventoryStackLimit()) + { + stack.stackSize = this.getInventoryStackLimit(); + } + this.markForUpdate(); + this.markDirty(); + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.fireboxName : "Shelf"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.fireboxName != null && this.fireboxName.length() > 0; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : player.getDistanceSq(this.xCoord + 0.5D, this.yCoord + 0.5D, this.zCoord + 0.5D) <= 64.0D; + } + + @Override + public void openInventory() {} + @Override + public void closeInventory() {} + + @Override + public boolean isItemValidForSlot(int par1, ItemStack itemstack) { + return false; + } + + public void markForUpdate(){ + worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } + + @Override + public void readFromNBT(NBTTagCompound tagCompound) { + super.readFromNBT(tagCompound); + NBTTagList tagList = tagCompound.getTagList("Inventory", 10); + this.inv = new ItemStack[this.getSizeInventory()]; + for (int i = 0; i < tagList.tagCount(); i++) { + NBTTagCompound tag = tagList.getCompoundTagAt(i); + byte slot = tag.getByte("Slot"); + if (slot >= 0 && slot < this.inv.length) { + this.inv[slot] = ItemStack.loadItemStackFromNBT(tag); + } + } + if (tagCompound.hasKey("CustomName", 8)) { + this.fireboxName = tagCompound.getString("CustomName"); + } + //this.stack0 = tagCompound.getString("stack0"); + this.ticks = tag.getInteger("TICKS"); + this.isOn = tag.getBoolean("ISON"); + + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) { + super.writeToNBT(tagCompound); + + NBTTagList itemList = new NBTTagList(); + for (int i = 0; i < inv.length; i++) { + //ItemStack stack = inv[i]; + if (inv[i] != null) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setByte("Slot", (byte) i); + this.inv[i].writeToNBT(tag); + itemList.appendTag(tag); + } + } + tagCompound.setTag("Inventory", itemList); + tag.setInteger("TICKS", this.ticks); + tag.setBoolean("ISON", this.isOn); + } + @Override + public Packet getDescriptionPacket() { + NBTTagCompound tag = new NBTTagCompound(); + this.writeToNBT(tag); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 998, tag); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + + @Override + public void updateEntity() { + + World world = getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + if(!world.isRemote){ + + fireboxMaint(world, x, y, z); + fireboxFuelDec(world, x, y, z, this.getStackInSlot(0), this.ticks); + isFurnace(world, x, y, z); + isCrucible(world, x, y, z); + //isIngot(world, x, y, z); + } + if (worldObj.isRemote) return; + } + + private void fireboxMaint(World world, int x, int y, int z){ + if((this.getStackInSlot(0)==null)&&(world.getBlockMetadata(x, y, z)==1)){ + world.setBlockMetadataWithNotify(x, y, z, 0, 3); + if(world.getBlock(x, y+1, z)==Blocks.fire){ + world.setBlock(x, y+1, z, Blocks.air, 0, 2); + } + this.markForUpdate(); + this.markDirty(); + //world.getBlock(x, y, z).setLightLevel(0f); + } + if(world.getBlockMetadata(x, y, z)==1 && world.getBlock(x, y+1, z).equals(Blocks.air)){ + world.setBlock(x, y+1, z, Blocks.fire, 0, 2); + } + } + private void fireboxFuelDec(World world, int x, int y, int z, ItemStack stack, int time){ + if(world.getBlock(x, y+1, z).equals(Blocks.fire)){ + if(stack!=null){ + if(isItemFuel(stack)==true){ + this.ticks++; + double burnTime = (this.getItemBurnTime(stack)+((fuelMulti(stack.stackSize, stack)*this.getItemBurnTime(stack)))); + //System.out.println(this.ticks); + if(time >= burnTime){ + decrStackSize(0, 1); + this.ticks=0; + } + markForUpdate(); + } + } + } + } + private static double fuelMulti(int i, ItemStack stack){ + double a=0; + if(stack!=null){ + if(stack.stackSize<=15){ + a=0.25; + } + if(stack.stackSize>=16 && stack.stackSize<=31){ + a=0.5; + } + if(stack.stackSize>=32 && stack.stackSize<=47){ + a=0.75; + } + if(stack.stackSize>=48){ + a=1; + } + } + return a; + } + public static int getItemBurnTime(ItemStack stack) + { + if (stack == null) + { + return 0; + } + Item item = stack.getItem(); + + if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air) + { + Block block = Block.getBlockFromItem(item); + + if (block == Blocks.wooden_slab) + { + return 150; + } + + if (block.getMaterial() == Material.wood) + { + return 300; + } + + if (block == Blocks.coal_block) + { + return 16000; + } + + } + + if (item instanceof ItemTool && ((ItemTool)item).getToolMaterialName().equals("WOOD")) return 200; + if (item instanceof ItemSword && ((ItemSword)item).getToolMaterialName().equals("WOOD")) return 200; + if (item instanceof ItemHoe && ((ItemHoe)item).getToolMaterialName().equals("WOOD")) return 200; + if (item == Items.stick) return 100; + if (item == Items.coal) return 1600; + if (item == Items.lava_bucket) return 20000; + if (item == Item.getItemFromBlock(Blocks.sapling)) return 100; + if (item == Items.blaze_rod) return 2400; + return GameRegistry.getFuelValue(stack); + } + public static boolean isItemFuel(ItemStack stack) + { + if(getItemBurnTime(stack)>0){ + return true; + } else + return false; + } + public void isFurnace(World world, int x, int y, int z){ + if(world.getBlock(x, y+1, z).equals(Blocks.furnace)&&(world.getBlockMetadata(x, y, z)==1)){ + TileEntityFurnace tile = (TileEntityFurnace) world.getTileEntity(x, y+1, z); + if(tile.getStackInSlot(0)!=null){ + if(isItemFuel(tile.getStackInSlot(1))==false){ + tile.furnaceBurnTime = (int)(this.getItemBurnTime(this.getStackInSlot(0))+((fuelMulti(this.getStackInSlot(0).stackSize, this.getStackInSlot(0))*this.getItemBurnTime(this.getStackInSlot(0))))); + BlockFurnace.updateFurnaceBlockState(true, world, x, y+1, z); + } + } + } + if(world.getBlock(x, y+1, z).equals(Blocks.furnace)&&(world.getBlockMetadata(x, y, z)==1)){ + TileEntityFurnace tile = (TileEntityFurnace) world.getTileEntity(x, y+1, z); + if(tile.getStackInSlot(1)!=null){ + if(isItemFuel(tile.getStackInSlot(1))==false){ + BlockFurnace.updateFurnaceBlockState(false, world, x, y+1, z); + } + } + } + } + public void isCrucible(World world, int x, int y, int z){ + if(world.getBlock(x, y+1, z) instanceof CrucibleBase){ + TileCrucibleBase tile = (TileCrucibleBase) world.getTileEntity(x, y+1, z); + if(tile.hot == false && tile.cooked == false && world.getBlockMetadata(x, y, z)==1){ + tile.heatTicks--; + if(tile.heatTicks<=0){ + tile.hot=true; + tile.markForUpdate(); + tile.markDirty(); + } + } + } + if(world.getBlock(x, y+1, z).equals(ModBlocks.emptySoftCrucible)){ + TileEntitySoftEmptyCrucible tile = (TileEntitySoftEmptyCrucible) world.getTileEntity(x, y+1, z); + if(world.getBlockMetadata(x, y, z)==1){ + tile.cookTime--; + if(tile.cookTime<=0){ + world.setBlock(x, y+1, z, tile.cookBlock, 0, 2); + } + } + } + if(world.getBlock(x, y+1, z).equals(ModBlocks.filledWaterCrucible)){ + TileEntityFilledWaterCrucible tile = (TileEntityFilledWaterCrucible) world.getTileEntity(x, y+1, z); + if(world.getBlockMetadata(x, y, z)==1){ + tile.cookTime--; + if(tile.cookTime<=0){ + world.setBlock(x, y+1, z, tile.cookBlock, 0, 2); + } + } + } + } + + +} + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityShelfFour.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityShelfFour.java new file mode 100644 index 00000000..c99cbd33 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityShelfFour.java @@ -0,0 +1,203 @@ +package com.kitsu.medievalcraft.tileents.machine; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class TileEntityShelfFour extends TileEntity implements IInventory{ + + private String shelfFourName; + private ItemStack[] inv; + private NBTTagCompound tag = new NBTTagCompound(); + //public ItemStack stack0; + public String stack0; + //public boolean slotStack1, slotStack2, slotStack3, slotStack4; + + public TileEntityShelfFour(){ + this.inv = new ItemStack[4]; + } + + @Override + public int getSizeInventory() { + return this.inv.length; + } + @Override + public ItemStack getStackInSlot(int slot) { + return this.inv[slot]; + } + + @Override + public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) + { + if (this.inv[p_70298_1_] != null) + { + ItemStack itemstack; + + if (this.inv[p_70298_1_].stackSize <= p_70298_2_) + { + itemstack = this.inv[p_70298_1_]; + this.inv[p_70298_1_] = null; + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + itemstack = this.inv[p_70298_1_].splitStack(p_70298_2_); + + if (this.inv[p_70298_1_].stackSize == 0) + { + this.inv[p_70298_1_] = null; + } + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + this.markForUpdate(); + this.markDirty(); + return null; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) + { + if (this.inv[i] != null) + { + ItemStack itemstack = this.inv[i]; + this.inv[i] = null; + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + else + { + this.markForUpdate(); + this.markDirty(); + return null; + } + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) + { + this.inv[slot] = stack; + + if (stack != null && stack.stackSize > this.getInventoryStackLimit()) + { + stack.stackSize = this.getInventoryStackLimit(); + } + this.markForUpdate(); + this.markDirty(); + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.shelfFourName : "Shelf"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.shelfFourName != null && this.shelfFourName.length() > 0; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : player.getDistanceSq(this.xCoord + 0.5D, this.yCoord + 0.5D, this.zCoord + 0.5D) <= 64.0D; + } + + @Override + public void openInventory() { + // TODO Auto-generated method stub + + } + @Override + public void closeInventory() { + // TODO Auto-generated method stub + + } + + @Override + public boolean isItemValidForSlot(int par1, ItemStack itemstack) { + + return false; + } + + public void markForUpdate(){ + worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } + + @Override + public void readFromNBT(NBTTagCompound tagCompound) { + super.readFromNBT(tagCompound); + NBTTagList tagList = tagCompound.getTagList("Inventory", 10); + this.inv = new ItemStack[this.getSizeInventory()]; + for (int i = 0; i < tagList.tagCount(); i++) { + NBTTagCompound tag = tagList.getCompoundTagAt(i); + byte slot = tag.getByte("Slot"); + if (slot >= 0 && slot < this.inv.length) { + this.inv[slot] = ItemStack.loadItemStackFromNBT(tag); + } + } + if (tagCompound.hasKey("CustomName", 8)) { + this.shelfFourName = tagCompound.getString("CustomName"); + } + //this.stack0 = tagCompound.getString("stack0"); + + + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) { + super.writeToNBT(tagCompound); + + NBTTagList itemList = new NBTTagList(); + for (int i = 0; i < inv.length; i++) { + //ItemStack stack = inv[i]; + if (inv[i] != null) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setByte("Slot", (byte) i); + this.inv[i].writeToNBT(tag); + itemList.appendTag(tag); + } + } + tagCompound.setTag("Inventory", itemList); + //tagCompound.setString("TYPE", this.getStackInSlot(0).getUnlocalizedName()); + } + @Override + public Packet getDescriptionPacket() { + NBTTagCompound tag = new NBTTagCompound(); + this.writeToNBT(tag); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, tag); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + + @Override + public void updateEntity() { + //if (worldObj.isRemote) return; + World world = getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + } + +} + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntitySolidFilter.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntitySolidFilter.java new file mode 100644 index 00000000..a0fb9942 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntitySolidFilter.java @@ -0,0 +1,232 @@ +package com.kitsu.medievalcraft.tileents.machine; + +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.item.ModItems; + +public class TileEntitySolidFilter extends TileEntity implements IInventory{ + + private String solidFilterName; + public ItemStack[] inv; + private NBTTagCompound tag = new NBTTagCompound(); + public boolean renderFilter; + public int hits; + public int renderInt; + + + public TileEntitySolidFilter(){ + inv = new ItemStack[1]; + } + + public void sandFilterName(String string){ + this.solidFilterName = string; + } + + @Override + public int getSizeInventory() { + return inv.length; + } + + @Override + public ItemStack getStackInSlot(int slot) { + return inv[slot]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int p_70304_1_) + { + if (this.inv[p_70304_1_] != null) + { + ItemStack itemstack = this.inv[p_70304_1_]; + this.inv[p_70304_1_] = null; + return itemstack; + } + return null; + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) + { + this.inv[slot] = stack; + + if (stack != null && stack.stackSize > this.getInventoryStackLimit()) + { + stack.stackSize = this.getInventoryStackLimit(); + } + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.solidFilterName : "Filter"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.solidFilterName != null && this.solidFilterName.length() > 0; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : player.getDistanceSq(this.xCoord + 0.5D, this.yCoord + 0.5D, this.zCoord + 0.5D) <= 64.0D; + } + + @Override + public boolean isItemValidForSlot(int par1, ItemStack itemstack) { + + return false; + } + @Override + public void readFromNBT(NBTTagCompound tagCompound) { + super.readFromNBT(tagCompound); + + NBTTagList tagList = tagCompound.getTagList("Inventory", 10); + for (int i = 0; i < tagList.tagCount(); i++) { + NBTTagCompound tag = tagList.getCompoundTagAt(i); + byte slot = tag.getByte("Slot"); + if (slot >= 0 && slot < inv.length) { + inv[slot] = ItemStack.loadItemStackFromNBT(tag); + } + } + if (tagCompound.hasKey("CustomName", 8)) { + this.solidFilterName = tagCompound.getString("CustomName"); + } + + this.hits = tag.getInteger("FILTERHITS"); + //this.renderFilter = tag.getBoolean("RENDER"); + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) { + super.writeToNBT(tagCompound); + + NBTTagList itemList = new NBTTagList(); + for (int i = 0; i < inv.length; i++) { + ItemStack stack = inv[i]; + if (stack != null) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setByte("Slot", (byte) i); + stack.writeToNBT(tag); + itemList.appendTag(tag); + } + } + tagCompound.setTag("Inventory", itemList); + tag.setInteger("FILTERHITS", this.hits); + //tag.setBoolean("RENDER", this.renderFilter); + } + + @Override + public void openInventory() {} + + @Override + public void closeInventory() {} + + /** + * Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a + * new stack. + */ + + @Override + public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) + { + if (this.inv[p_70298_1_] != null) + { + ItemStack itemstack; + + if (this.inv[p_70298_1_].stackSize <= p_70298_2_) + { + itemstack = this.inv[p_70298_1_]; + this.inv[p_70298_1_] = null; + return itemstack; + } + itemstack = this.inv[p_70298_1_].splitStack(p_70298_2_); + + if (this.inv[p_70298_1_].stackSize == 0) + { + this.inv[p_70298_1_] = null; + } + + return itemstack; + } + return null; + } + + public void updateEntity() { + World world = this.getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + if(!world.isRemote){ + if(hits>=10 + world.rand.nextInt(10)){ + + world.playSoundEffect(x+0.5D, y+0.5D, z+0.5D, "dig.sand", 1.0F, 0.5F); + if(world.getBlock(x, y+1, z).equals(Blocks.sand)){ + if(this.getStackInSlot(0).getItem() == ModItems.coarseFilter){ + world.spawnEntityInWorld(new EntityItem(world, x, y-0.5D, z, new ItemStack(ModItems.quartzDust, 1 + world.rand.nextInt(3)))); + System.out.println("quartzDust Please"); + } + if(this.getStackInSlot(0).getItem() == ModItems.mediumFilter){ + world.spawnEntityInWorld(new EntityItem(world, x, y-0.5D, z, new ItemStack(ModItems.salt, 1 + world.rand.nextInt(3)))); + } + if(this.getStackInSlot(0).getItem() == ModItems.fineFilter){ + world.spawnEntityInWorld(new EntityItem(world, x, y-0.5D, z, new ItemStack(ModItems.limestoneDust, 2 + world.rand.nextInt(3)))); + } + } + if(world.getBlock(x, y+1, z).equals(Blocks.gravel)){ + if(this.getStackInSlot(0).getItem() == ModItems.coarseFilter){ + if(world.rand.nextInt(2) == 0){ + world.spawnEntityInWorld(new EntityItem(world, x, y-0.5D, z, new ItemStack(Items.flint, 1 + world.rand.nextInt(1)))); + } + } + if(this.getStackInSlot(0).getItem() == ModItems.mediumFilter){ + //world.spawnEntityInWorld(new EntityItem(world, x, y-0.5D, z, new ItemStack(ModItems.salt, 1 + world.rand.nextInt(5)))); + if(world.rand.nextInt(2) == 0){ + world.spawnEntityInWorld(new EntityItem(world, x, y-0.5D, z, new ItemStack(Blocks.sand, 1))); + } + } + if(this.getStackInSlot(0).getItem() == ModItems.fineFilter){ + if(world.rand.nextInt(2) == 0){ + world.spawnEntityInWorld(new EntityItem(world, x, y-0.5D, z, new ItemStack(ModItems.limestoneDust, 2 + world.rand.nextInt(2)))); + } + } + } + hits=0; + world.setBlockToAir(x, y+1, z); + } + } + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound tag = new NBTTagCompound(); + writeToNBT(tag); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, -998, tag); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + +} + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityTestForge.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityTestForge.java new file mode 100644 index 00000000..3fedb734 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityTestForge.java @@ -0,0 +1,308 @@ +package com.kitsu.medievalcraft.tileents.machine; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.item.ItemTool; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.block.ingots.IngotBase; +import com.kitsu.medievalcraft.crafting.TestForgeCrafting; +import com.kitsu.medievalcraft.tileents.ingots.TileIngotBase; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class TileEntityTestForge extends TileEntity implements IInventory { + + public ItemStack[] inv; + private String forgeName; + private int type, checkKey, cookKey, ticks, fuelTicks; + public boolean isRunning; + private NBTTagCompound tag = new NBTTagCompound(); + + public TileEntityTestForge(){ + inv = new ItemStack[1]; + } + + public void forgeName(String string){ + this.forgeName = string; + } + + @Override + public int getSizeInventory() { + return inv.length; + } + + @Override + public ItemStack getStackInSlot(int slot) { + return inv[slot]; + } + + @Override + public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) + { + if (this.inv[p_70298_1_] != null) + { + ItemStack itemstack; + + if (this.inv[p_70298_1_].stackSize <= p_70298_2_) + { + itemstack = this.inv[p_70298_1_]; + this.inv[p_70298_1_] = null; + return itemstack; + } + itemstack = this.inv[p_70298_1_].splitStack(p_70298_2_); + + if (this.inv[p_70298_1_].stackSize == 0) + { + this.inv[p_70298_1_] = null; + } + + return itemstack; + } + return null; + } + + @Override + public ItemStack getStackInSlotOnClosing(int p_70304_1_) + { + if (this.inv[p_70304_1_] != null) + { + ItemStack itemstack = this.inv[p_70304_1_]; + this.inv[p_70304_1_] = null; + return itemstack; + } + return null; + } + + @Override + public void setInventorySlotContents(int p_70299_1_, ItemStack p_70299_2_) + { + this.inv[p_70299_1_] = p_70299_2_; + + if (p_70299_2_ != null && p_70299_2_.stackSize > this.getInventoryStackLimit()) + { + p_70299_2_.stackSize = this.getInventoryStackLimit(); + } + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.forgeName : "Forge"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.forgeName != null && this.forgeName.length() > 0; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : player.getDistanceSq(this.xCoord + 0.5D, this.yCoord + 0.5D, this.zCoord + 0.5D) <= 64.0D; + } + + @Override + public boolean isItemValidForSlot(int par1, ItemStack itemstack) { + + return false; + } + + private Block getBlock(Block testBlock){ + for(int i = 0; i < TestForgeCrafting.blockToCheck.size(); i++){ + if(testBlock == TestForgeCrafting.blockToCheck.get(i)){ + checkKey = i; + type = checkKey; + } + } + return TestForgeCrafting.blockToCheck.get(type); + } + /*private int getCookTime(int a){ + for(int i = 0; i < TestForgeCrafting.cookTable.size(); i++){ + if(a == TestForgeCrafting.cookTable.get(i)){ + cookKey = i; + } + } + return TestForgeCrafting.cookTable.get(cookKey); + }*/ + + private void cook(World world, int x, int y, int z){ + Block isAir = world.getBlock(x, y+2, z); + Block checkBlock = world.getBlock(x, y+1, z); + Block fire = world.getBlock(x, y-1, z); + TileEntityTestForge tileEnt = (TileEntityTestForge) world.getTileEntity(x, y, z); + if(!world.isRemote){ + if(fire==ModBlocks.firebox){ + TileEntityFirebox box = (TileEntityFirebox) world.getTileEntity(x, y-1, z); + if(checkBlock instanceof IngotBase && box.isOn==true && isItemFuel(this.getStackInSlot(0))==true){ + TileIngotBase tile = (TileIngotBase) world.getTileEntity(x, y+1, z); + System.out.println(tile.hot); + System.out.println(tile.heatTicks); + if(tile.hot==false){ + tile.heatTicks--; + } + } + } + } + } + + private void fuelDec(World world, int x, int y, int z){ + Block fire = world.getBlock(x, y-1, z); + TileEntityTestForge tileEnt = (TileEntityTestForge) world.getTileEntity(x, y, z); + if(!world.isRemote){ + if(tileEnt.getStackInSlot(0) != null){ + if((isItemFuel(tileEnt.getStackInSlot(0)) == true) && (world.getBlock(x, y-1, z).equals(fire))){ + fuelTicks++; + + //System.out.println(fuelTicks + " " + getItemBurnTime(tileEnt.getStackInSlot(0))); + if(fuelTicks >= 2*getItemBurnTime(tileEnt.getStackInSlot(0))){ + fuelTicks = 0; + + if (tileEnt.getStackInSlot(0).stackSize == 1){ + tileEnt.setInventorySlotContents(0, null); + } else { + tileEnt.getStackInSlot(0).stackSize--; + } + } + } + } + if(tileEnt.getStackInSlot(0) == (null)){ + fuelTicks = 0; + } + } + } + + public static int getItemBurnTime(ItemStack p_145952_0_) + { + if (p_145952_0_ == null) + { + return 0; + } + Item item = p_145952_0_.getItem(); + + if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air) + { + Block block = Block.getBlockFromItem(item); + + if (block == Blocks.wooden_slab) + { + return 150; + } + + if (block.getMaterial() == Material.wood) + { + return 300; + } + + if (block == Blocks.coal_block) + { + return 16000; + } + } + + if (item instanceof ItemTool && ((ItemTool)item).getToolMaterialName().equals("WOOD")) return 200; + if (item instanceof ItemSword && ((ItemSword)item).getToolMaterialName().equals("WOOD")) return 200; + if (item instanceof ItemHoe && ((ItemHoe)item).getToolMaterialName().equals("WOOD")) return 200; + if (item == Items.stick) return 100; + if (item == Items.coal) return 1600; + if (item == Items.lava_bucket) return 20000; + if (item == Item.getItemFromBlock(Blocks.sapling)) return 100; + if (item == Items.blaze_rod) return 2400; + return GameRegistry.getFuelValue(p_145952_0_); + } + + public static boolean isItemFuel(ItemStack stack) + { + return getItemBurnTime(stack) > 0; + } + + @Override + public void updateEntity() { + World world = getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + cook(world, x, y, z); + fuelDec(world, x, y, z); + } + + @Override + public void readFromNBT(NBTTagCompound tagCompound) { + super.readFromNBT(tagCompound); + + NBTTagList tagList = tagCompound.getTagList("Inventory", 10); + for (int i = 0; i < tagList.tagCount(); i++) { + NBTTagCompound tag = tagList.getCompoundTagAt(i); + byte slot = tag.getByte("Slot"); + if (slot >= 0 && slot < inv.length) { + inv[slot] = ItemStack.loadItemStackFromNBT(tag); + } + } + if (tagCompound.hasKey("CustomName", 8)) { + this.forgeName = tagCompound.getString("CustomName"); + } + + this.type = tag.getInteger("TYPE"); + this.ticks = tag.getInteger("TICKS"); + this.fuelTicks = tag.getInteger("FUELTICKS"); + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) { + super.writeToNBT(tagCompound); + + NBTTagList itemList = new NBTTagList(); + for (int i = 0; i < inv.length; i++) { + ItemStack stack = inv[i]; + if (stack != null) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setByte("Slot", (byte) i); + stack.writeToNBT(tag); + itemList.appendTag(tag); + } + } + tagCompound.setTag("Inventory", itemList); + tag.setInteger("TYPE", type); + tag.setInteger("TICKS", this.ticks); + tag.setInteger("FUELTICKS", this.fuelTicks); + } + + @Override + public void openInventory() {} + + @Override + public void closeInventory() {} + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound tag = new NBTTagCompound(); + writeToNBT(tag); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, -998, tag); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityWaterFilter.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityWaterFilter.java new file mode 100644 index 00000000..8e96ae07 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileEntityWaterFilter.java @@ -0,0 +1,84 @@ +package com.kitsu.medievalcraft.tileents.machine; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.block.ModBlocks; + +public class TileEntityWaterFilter extends TileEntity{ + + private String waterFilterName; + private int filterTime; + private NBTTagCompound nbt = new NBTTagCompound(); + + public void forgeName(String string){ + this.waterFilterName = string; + } + + @Override + public void updateEntity() { + World world = this.getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + + if(!world.isRemote){ + + doFilter(world, x, y, z); + } + } + + private void doFilter(World world, int x, int y, int z){ + Block filterInput = world.getBlock(x, y+1, z); + Block filterOutput = world.getBlock(x, y-1, z); + + if((filterOutput.equals(Blocks.air))){ + if(filterInput.equals(Blocks.water)){ + filterTime++; + if(filterTime>=450 + world.rand.nextInt(100)){ + world.setBlock(x, y-1, z, ModBlocks.blockFilteredWater, 0, 2); + world.setBlockToAir(x, y+1, z); + filterTime=0; + } + } + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + //this.hits = nbt.getInteger("HITS"); + this.filterTime = nbt.getInteger("FILTERTIME"); + //this.hitGood = nbt.getBoolean("HITBOOLEAN"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + //nbt.setInteger("HITS", hits); + nbt.setInteger("FILTERTIME", filterTime); + //nbt.setBoolean("HITBOOLEAN", hitGood); + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + writeToNBT(nbt); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, -998, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileForge.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileForge.java new file mode 100644 index 00000000..e84c2aca --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileForge.java @@ -0,0 +1,381 @@ +package com.kitsu.medievalcraft.tileents.machine; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.item.ItemTool; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.block.ingots.IngotBase; +import com.kitsu.medievalcraft.tileents.ingots.TileIngotBase; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class TileForge extends TileEntity implements IInventory{ + private String tileForgeName; + private ItemStack[] inv; + private NBTTagCompound tag = new NBTTagCompound(); + public int heat; + public boolean isOn; + public boolean isBurning; + private int ticks; + private Random rand; + + public TileForge(){ + this.inv = new ItemStack[2]; + } + + @Override + public int getSizeInventory() { + return this.inv.length; + } + @Override + public ItemStack getStackInSlot(int slot) { + return this.inv[slot]; + } + + @Override + public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) + { + if (this.inv[p_70298_1_] != null) + { + ItemStack itemstack; + + if (this.inv[p_70298_1_].stackSize <= p_70298_2_) + { + itemstack = this.inv[p_70298_1_]; + this.inv[p_70298_1_] = null; + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + itemstack = this.inv[p_70298_1_].splitStack(p_70298_2_); + + if (this.inv[p_70298_1_].stackSize == 0) + { + this.inv[p_70298_1_] = null; + } + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + this.markForUpdate(); + this.markDirty(); + return null; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) + { + if (this.inv[i] != null) + { + ItemStack itemstack = this.inv[i]; + this.inv[i] = null; + this.markForUpdate(); + this.markDirty(); + return itemstack; + } + else + { + this.markForUpdate(); + this.markDirty(); + return null; + } + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) + { + this.inv[slot] = stack; + + if (stack != null && stack.stackSize > this.getInventoryStackLimit()) + { + stack.stackSize = this.getInventoryStackLimit(); + } + this.markForUpdate(); + this.markDirty(); + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.tileForgeName : "Forge"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.tileForgeName != null && this.tileForgeName.length() > 0; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : player.getDistanceSq(this.xCoord + 0.5D, this.yCoord + 0.5D, this.zCoord + 0.5D) <= 64.0D; + } + + @Override + public void openInventory() {} + @Override + public void closeInventory() {} + + @Override + public boolean isItemValidForSlot(int par1, ItemStack itemstack) { + return false; + } + + public void markForUpdate(){ + worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } + + @Override + public void readFromNBT(NBTTagCompound tagCompound) { + super.readFromNBT(tagCompound); + NBTTagList tagList = tagCompound.getTagList("Inventory", 10); + this.inv = new ItemStack[this.getSizeInventory()]; + for (int i = 0; i < tagList.tagCount(); i++) { + NBTTagCompound tag = tagList.getCompoundTagAt(i); + byte slot = tag.getByte("Slot"); + if (slot >= 0 && slot < this.inv.length) { + this.inv[slot] = ItemStack.loadItemStackFromNBT(tag); + } + } + if (tagCompound.hasKey("CustomName", 8)) { + this.tileForgeName = tagCompound.getString("CustomName"); + } + //this.stack0 = tagCompound.getString("stack0"); + this.heat = tag.getInteger("HEAT"); + this.isOn = tag.getBoolean("ISON"); + this.ticks = tag.getInteger("TICKS"); + this.isBurning = tag.getBoolean("BURNING"); + + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) { + super.writeToNBT(tagCompound); + + NBTTagList itemList = new NBTTagList(); + for (int i = 0; i < inv.length; i++) { + //ItemStack stack = inv[i]; + if (inv[i] != null) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setByte("Slot", (byte) i); + this.inv[i].writeToNBT(tag); + itemList.appendTag(tag); + } + } + tagCompound.setTag("Inventory", itemList); + tag.setInteger("HEAT", this.heat); + tag.setBoolean("ISON", this.isOn); + tag.setBoolean("BURNING", this.isBurning); + tag.setInteger("TICKS", this.ticks); + + } + @Override + public Packet getDescriptionPacket() { + NBTTagCompound tag = new NBTTagCompound(); + this.writeToNBT(tag); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 998, tag); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + + @Override + public void updateEntity() { + + World world = this.getWorldObj(); + int x = this.xCoord; + int y = this.yCoord; + int z = this.zCoord; + if(!world.isRemote){ + forgeMaint(world,x,y,z); + heatIngot(world, x, y, z); + fireboxFuelDec(world, x, y, z,this.getStackInSlot(0), this.ticks); + fireboxFuelDec2(world, x, y, z,this.getStackInSlot(1), this.ticks); + //System.out.println(world.getBlockMetadata(x, y, z)); + } + + if (worldObj.isRemote) return; + } + + private void heatIngot(World world, int x, int y, int z){ + if(!world.isRemote){ + if(world.getBlock(x, y+1, z) instanceof IngotBase){ + TileIngotBase tile = (TileIngotBase) world.getTileEntity(x, y+1, z); + if(world.getBlockMetadata(x, y, z)>7){ + if(tile.hot==false){ + tile.heatTicks--; + } + } + } + } + } + + private void fireboxFuelDec(World world, int x, int y, int z, ItemStack stack, int time){ + if(world.getBlockMetadata(x, y, z)>3){ + if(stack!=null){ + if(isItemFuel(stack)==true){ + this.ticks++; + double burnTime = (this.getItemBurnTime(stack)+((fuelMulti(stack.stackSize, stack)*this.getItemBurnTime(stack)))); + //System.out.println(this.ticks+" "+ burnTime+" "+this.getStackInSlot(0).stackSize); + if(time >= burnTime){ + if(this.getStackInSlot(0).stackSize==1){ + this.setInventorySlotContents(0, null); + } + decrStackSize(0, 1); + this.ticks=0; + } + markForUpdate(); + } + } + } + } + + + private void fireboxFuelDec2(World world, int x, int y, int z, ItemStack stack, int time){ + if(world.getBlockMetadata(x, y, z)>7){ + if(stack!=null){ + if(isItemFuel(stack)==true){ + this.ticks++; + double burnTime = 1.5*(this.getItemBurnTime(stack)+((fuelMulti(stack.stackSize, stack)*this.getItemBurnTime(stack)))); + //System.out.println(this.ticks+" "+ burnTime+" "+this.getStackInSlot(0).stackSize); + if(time >= burnTime){ + if(this.getStackInSlot(1).stackSize==1){ + this.setInventorySlotContents(1, null); + } + decrStackSize(1, 1); + this.ticks=0; + } + markForUpdate(); + } + } + } + } + + private static double fuelMulti(int i, ItemStack stack){ + if(stack!=null){ + if(stack.stackSize<=15){ + return 0.25; + } + if(stack.stackSize>=16 && stack.stackSize<=31){ + return 0.5; + } + if(stack.stackSize>=32 && stack.stackSize<=47){ + return 0.75; + } + if(stack.stackSize>=48){ + return 1; + } + } + return 0.0d; + } + + public static int getItemBurnTime(ItemStack p_145952_0_) + { + if (p_145952_0_ == null) + { + return 0; + } + Item item = p_145952_0_.getItem(); + + if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air) + { + Block block = Block.getBlockFromItem(item); + + if (block == Blocks.wooden_slab) + { + return 150; + } + + if (block.getMaterial() == Material.wood) + { + return 300; + } + + if (block == Blocks.coal_block) + { + return 16000; + } + } + + if (item instanceof ItemTool && ((ItemTool)item).getToolMaterialName().equals("WOOD")) return 200; + if (item instanceof ItemSword && ((ItemSword)item).getToolMaterialName().equals("WOOD")) return 200; + if (item instanceof ItemHoe && ((ItemHoe)item).getToolMaterialName().equals("WOOD")) return 200; + if (item == Items.stick) return 100; + if (item == Items.coal) return 1600; + if (item == Items.lava_bucket) return 20000; + if (item == Item.getItemFromBlock(Blocks.sapling)) return 100; + if (item == Items.blaze_rod) return 2400; + return GameRegistry.getFuelValue(p_145952_0_); + } + + public static boolean isItemFuel(ItemStack stack) + { + return getItemBurnTime(stack) > 0; + } + + private void forgeMaint(World world, int x, int y, int z){ + if(this.getStackInSlot(0)==null){ + if(world.getBlockMetadata(x, y, z)>=4&&world.getBlockMetadata(x, y, z)<=7){ + world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)-4, 3); + this.markDirty(); + this.markForUpdate(); + //world.getBlock(x, y, z).setLightLevel(0f); + } + } + if(this.getStackInSlot(0)==null){ + if(world.getBlockMetadata(x, y, z)>7){ + world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)-8, 3); + this.markDirty(); + this.markForUpdate(); + //world.getBlock(x, y, z).setLightLevel(0f); + } + } + if(this.getStackInSlot(1)==null){ + if(world.getBlockMetadata(x, y, z)>=8){ + world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)-4, 3); + } + } + if(world.getBlockMetadata(x, y, z)>3&&world.getBlockMetadata(x, y, z)<8){ + if(this.getStackInSlot(1)!=null){ + if(world.canBlockSeeTheSky(x, y+1, z)==true || world.provider.isHellWorld==true){ + world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)+4, 3); + } + } + } + if(world.getBlockMetadata(x, y, z)>7){ + if(world.rand.nextInt(5)==1){ + world.setBlock(x, y+2, z, ModBlocks.blockSmoke, 0, 2); + } + } + } +} + + + + + diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/AnvilUtil.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/AnvilUtil.java new file mode 100644 index 00000000..96de6dd1 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/AnvilUtil.java @@ -0,0 +1,111 @@ +package com.kitsu.medievalcraft.util; + +import java.util.Hashtable; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; + +public interface AnvilUtil { + + static final Hashtable formsIron = new Hashtable (){{ + + put(ModItems.ironAxeForm, new ItemStack(ModItems.ironaxeHead, 1)); + put(ModItems.ironBattleAxeForm, new ItemStack(ModItems.ironbattleaxeHead, 1)); + put(ModItems.ironDaggerForm, new ItemStack(ModItems.irondaggerBlade, 3)); + put(ModItems.ironHandleForm, new ItemStack(ModItems.ironweaponHandle, 2)); + put(ModItems.ironHoeForm, new ItemStack(ModItems.ironhoeHead, 1)); + put(ModItems.ironLongswordForm, new ItemStack(ModItems.ironlongswordBlade, 1)); + put(ModItems.ironMaceHeadForm, new ItemStack(ModItems.ironmaceHead, 1)); + put(ModItems.ironPickaxeForm, new ItemStack(ModItems.ironpickaxeHead, 1)); + put(ModItems.ironRingForm, new ItemStack(ModItems.ironRing, 9)); + put(ModItems.ironSawBladeForm, new ItemStack(ModItems.ironsawBlade, 1)); + put(ModItems.ironSharpTipForm, new ItemStack(ModItems.ironsharpTip, 9)); + put(ModItems.ironShortSwordForm, new ItemStack(ModItems.ironshortswordBlade, 2)); + put(ModItems.ironSpadForm, new ItemStack(ModItems.ironspadeHead, 1)); + put(ModItems.ironSpearTipForm, new ItemStack(ModItems.ironspearTip, 1)); + + }}; + + static final Hashtable makeForms = new Hashtable (){{ + + put(ModItems.ironaxeHead, new ItemStack(ModItems.ironAxeForm, 1)); + put(ModItems.ironbattleaxeHead, new ItemStack(ModItems.ironBattleAxeForm, 1)); + put(ModItems.irondaggerBlade, new ItemStack(ModItems.ironDaggerForm, 1)); + put(ModItems.woodentoolHandle, new ItemStack(ModItems.ironHandleForm, 1)); + put(ModItems.ironhoeHead, new ItemStack(ModItems.ironHoeForm, 1)); + put(ModItems.ironlongswordBlade, new ItemStack(ModItems.ironLongswordForm, 1)); + put(ModItems.ironmaceHead, new ItemStack(ModItems.ironMaceHeadForm, 1)); + put(ModItems.ironpickaxeHead, new ItemStack(ModItems.ironPickaxeForm, 1)); + put(ModItems.ironRing, new ItemStack(ModItems.ironRingForm, 1)); + put(ModItems.ironsawBlade, new ItemStack(ModItems.ironSawBladeForm, 1)); + put(ModItems.ironsharpTip, new ItemStack(ModItems.ironSharpTipForm, 1)); + put(ModItems.ironshortswordBlade, new ItemStack(ModItems.ironShortSwordForm, 1)); + put(ModItems.ironspadeHead, new ItemStack(ModItems.ironSpadForm, 1)); + put(ModItems.ironspearTip, new ItemStack(ModItems.ironSpearTipForm, 1)); + + }}; + + static final Hashtable formsClay = new Hashtable (){{ + + put(ModItems.cookedaxeHeadClayForm, new ItemStack(ModItems.ironaxeHead, 1)); + put(ModItems.cookedbattleaxeClayForm, new ItemStack(ModItems.ironbattleaxeHead, 1)); + put(ModItems.cookeddaggerClayForm, new ItemStack(ModItems.irondaggerBlade, 3)); + //put(ModItems., new ItemStack(ModItems.ironweaponHandle, 1)); + put(ModItems.cookedhoeHeadClayForm, new ItemStack(ModItems.ironhoeHead, 1)); + put(ModItems.cookedlongswordClayForm, new ItemStack(ModItems.ironlongswordBlade, 1)); + put(ModItems.cookedmaceheadClayForm, new ItemStack(ModItems.ironmaceHead, 1)); + put(ModItems.cookedpickaxeClayForm, new ItemStack(ModItems.ironpickaxeHead, 1)); + put(ModItems.cookedringClayForm, new ItemStack(ModItems.ironRing, 9)); + put(ModItems.cookedsawbladeClayForm, new ItemStack(ModItems.ironsawBlade, 1)); + put(ModItems.cookedsharptipClayForm, new ItemStack(ModItems.ironsharpTip, 9)); + put(ModItems.cookedshortswordClayForm, new ItemStack(ModItems.ironshortswordBlade, 2)); + put(ModItems.cookedspadeHeadClayForm, new ItemStack(ModItems.ironspadeHead, 1)); + put(ModItems.cookedspeartipClayForm, new ItemStack(ModItems.ironspearTip, 1)); + + }}; + static final Hashtable makeFormsTest = new Hashtable (){{ + + put(ModItems.ironaxeHead, (ModItems.ironAxeForm)); + put(ModItems.ironbattleaxeHead, (ModItems.ironBattleAxeForm)); + put(ModItems.irondaggerBlade, (ModItems.ironDaggerForm)); + put(ModItems.woodentoolHandle, (ModItems.ironHandleForm)); + put(ModItems.ironhoeHead, (ModItems.ironHoeForm)); + put(ModItems.ironlongswordBlade, (ModItems.ironLongswordForm)); + put(ModItems.ironmaceHead, (ModItems.ironMaceHeadForm)); + put(ModItems.ironpickaxeHead, (ModItems.ironPickaxeForm)); + put(ModItems.ironRing, (ModItems.ironRingForm)); + put(ModItems.ironsawBlade, (ModItems.ironSawBladeForm)); + put(ModItems.ironsharpTip, (ModItems.ironSharpTipForm)); + put(ModItems.ironshortswordBlade, (ModItems.ironShortSwordForm)); + put(ModItems.ironspadeHead, (ModItems.ironSpadForm)); + put(ModItems.ironspearTip, (ModItems.ironSpearTipForm)); + + }}; + + + //==============TESTING========================// + static final Hashtable formsIronTest = new Hashtable (){{ + + put(ModItems.ironAxeForm, (ModItems.ironaxeHead)); + put(ModItems.ironBattleAxeForm, (ModItems.ironbattleaxeHead)); + put(ModItems.ironDaggerForm, (ModItems.irondaggerBlade)); + put(ModItems.ironHandleForm, (ModItems.ironweaponHandle)); + put(ModItems.ironHoeForm, (ModItems.ironhoeHead)); + put(ModItems.ironLongswordForm, (ModItems.ironlongswordBlade)); + put(ModItems.ironMaceHeadForm, (ModItems.ironmaceHead)); + put(ModItems.ironPickaxeForm, (ModItems.ironpickaxeHead)); + put(ModItems.ironRingForm, (ModItems.ironRing)); + put(ModItems.ironSawBladeForm, (ModItems.ironsawBlade)); + put(ModItems.ironSharpTipForm, (ModItems.ironsharpTip)); + put(ModItems.ironShortSwordForm, (ModItems.ironshortswordBlade)); + put(ModItems.ironSpadForm, (ModItems.ironspadeHead)); + put(ModItems.ironSpearTipForm, (ModItems.ironspearTip)); + + }}; + + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/CannonUtil.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/CannonUtil.java new file mode 100644 index 00000000..423041e5 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/CannonUtil.java @@ -0,0 +1,38 @@ +package com.kitsu.medievalcraft.util; + +import java.util.Hashtable; + +import com.kitsu.medievalcraft.item.ModItems; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public interface CannonUtil { + + /*public static float[] angles = new float[] {90, (float)247.5, 270, (float)292.5, 315, (float)337.5, 0, (float)22.5, 45, (float)67.5, 90, (float) 112.5, + 135, (float) 157.5, 180, (float)202.5}; + /*public float[] angles = new float[] {180, (float)202.5, 225, (float)247.5, 270, (float)292.5, 315, (float)337.5, 0, (float)22.5, 45, (float)67.5, 90, (float) 112.5, + 135, (float) 157.5,};*/ + /* + * 0 | 180 + * 1 | 157.5 + * 2 | 135 + * 3 | 112.5 + * 4 | 90 + * 5 | 67.5 + * 6 | 45 + * 7 | 22.5 + * 8 | 0 + * 9 | 337.5 + * 10 | 315 + * 11 | 292.5 + * 12 | 270 + * 13 | 247.5 + * 14 | 225 + * 15 | 202.5 + */ + public static float[] angles = new float[] {180F, 157.5F, 135F, 112.5F, 90F, 67.5F, 45F, 22.5F, 0F, 337.5F, 315F, 292.5F, 270F, 247.5F, 225F, 202.5F}; + + + +} \ No newline at end of file diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/CustomTab.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/CustomTab.java new file mode 100644 index 00000000..7a2e3eb9 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/CustomTab.java @@ -0,0 +1,17 @@ +package com.kitsu.medievalcraft.util; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Items; +import net.minecraft.item.Item; + +public class CustomTab { + + public static CreativeTabs MedievalCraftTab = new CreativeTabs("MedievalCraftTab"){@Override public Item getTabIconItem() {return Items.chainmail_chestplate;}}; + + public static void MedievalTab() { + + + + } + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/IRTextureModel.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/IRTextureModel.java new file mode 100644 index 00000000..cf7d105f --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/IRTextureModel.java @@ -0,0 +1,34 @@ +package com.kitsu.medievalcraft.util; + +import java.util.Hashtable; + +import net.minecraft.util.ResourceLocation; + +public class IRTextureModel { + + //public IModelCustom model_arrow = AdvancedModelLoader.loadModel(MODELARROW); + + public static final Hashtable weaponText = new Hashtable (){{ + + put(0, new ResourceLocation("kitsumedievalcraft:models/Gladius.png")); + //put(1, ModItems.gladius); + //put(2, ModItems.heavyMace); + //put(3, ModItems.battleAxe); + + }}; + + public static final Hashtable longbowText = new Hashtable (){{ + + put(0, new ResourceLocation("kitsumedievalcraft:models/NewLongbow1.png")); + put(1, new ResourceLocation("kitsumedievalcraft:models/NewLongbow2.png")); + put(2, new ResourceLocation("kitsumedievalcraft:models/NewLongbow3.png")); + put(3, new ResourceLocation("kitsumedievalcraft:models/NewLongbow4.png")); + put(4, new ResourceLocation("kitsumedievalcraft:models/NewLongbow5.png")); + + //put(1, ModItems.gladius); + //put(2, ModItems.heavyMace); + //put(3, ModItems.battleAxe); + + }}; + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/InlayTables.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/InlayTables.java new file mode 100644 index 00000000..b2b5293d --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/InlayTables.java @@ -0,0 +1,119 @@ +package com.kitsu.medievalcraft.util; + +import java.util.Hashtable; + +import net.minecraft.block.Block; +import net.minecraft.item.Item; + +import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.item.ModItems; + +public interface InlayTables { + + public static Hashtable upgrade = new Hashtable (){{ + + put(0, ModBlocks.myDiamond); + put(1, ModBlocks.myEmerald); + put(2, ModBlocks.lapisIngot); + put(3, ModBlocks.redstoneIngot); + //put(3, ModItems.battleAxe); + + }}; + + public static Hashtable zeroUpgrade = new Hashtable (){{ + + put(0, ModItems.ironpickaxeHead); + put(1, ModItems.ironspadeHead); + //put(2, ModItems.ironhoeHead); + put(2, ModItems.ironaxeHead); + //put(4, ModItems.ironlongswordBlade); + //put(5, ModItems.ironshortswordBlade); + //put(6, ModItems.irondaggerBlade); + //put(7, ModItems.ironspearTip); + //put(8, ModItems.ironmaceHead); + //put(9, ModItems.ironbattleaxeHead); + //put(10, ModItems.ironsawBlade); + //put(11, ModItems.ironsharpTip); + //put(12, ModItems.ironRing); + //put(13, ModItems.woodentoolHandle); + //put(14, ModItems.ironweaponHandle); + + }}; + + public static Hashtable oneUpgrade = new Hashtable (){{ + + put(0, ModItems.unbreakingOneHead); + put(1, ModItems.unbreakingOneSpade); + //put(2, ModItems.unbreakingOneHoe); + put(2, ModItems.unbreakingOneLumberAxe); + + put(3, ModItems.efficOneHead); + put(4, ModItems.efficOneSpade); + //put(6, ModItems.efficOneHoe); + put(5, ModItems.efficOneLumberAxe); + + put(6, ModItems.fortuneOneHead); + put(7, ModItems.fortuneOneSpade); + //put(10, ModItems.fortuneOneHoe); + put(8, ModItems.fortuneOneLumberAxe); + + }}; + + public static Hashtable twoUpgrade = new Hashtable (){{ + + put(0, ModItems.unbreakingTwoHead); + put(1, ModItems.unbreakingTwoSpade); + //put(2, ModItems.unbreakingTwoHoe); + put(2, ModItems.unbreakingTwoLumberAxe); + + put(3, ModItems.efficTwoHead); + put(4, ModItems.efficTwoSpade); + //put(6, ModItems.efficTwoHoe); + put(5, ModItems.efficTwoLumberAxe); + + put(6, ModItems.fortuneTwoHead); + put(7, ModItems.fortuneTwoSpade); + //put(10, ModItems.fortuneTwoHoe); + put(8, ModItems.fortuneTwoLumberAxe); + + }}; + + public static Hashtable multiUpgrade = new Hashtable (){{ + + put(0, ModItems.unbreakingOneEfficOneHead); + put(1, ModItems.unbreakingOneEfficOneSpade); + //put(2, ModItems.unbreakingTwoHoe); + put(2, ModItems.unbreakingOneEfficOneLumberAxe); + + put(3, ModItems.efficOneFortuneOneHead); + put(4, ModItems.efficOneFortuneOneSpade); + //put(10, ModItems.fortuneTwoHoe); + put(5, ModItems.efficOneFortuneOneLumberAxe); + + put(6, ModItems.unbreakingOneFortuneOneHead); + put(7, ModItems.unbreakingOneFortuneOneSpade); + //put(6, ModItems.efficTwoHoe); + put(8, ModItems.unbreakingOneFortuneOneLumberAxe); + + }}; + + public static Hashtable silkTouch = new Hashtable (){{ + + put(0, ModItems.silkTouchIronHead); + put(1, ModItems.silkTouchIronSpade); + //put(2, ModItems.unbreakingTwoHoe); + put(2, ModItems.silkTouchIronLumberAxe); + + }}; + + + public static Hashtable enchantType = new Hashtable (){{ + + put(0, "unbreaking"); + put(1, "fortune"); + put(2, "effic"); + put(3, "silktouch"); + + }}; + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/SandFilterTexture.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/SandFilterTexture.java new file mode 100644 index 00000000..7edee764 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/SandFilterTexture.java @@ -0,0 +1,18 @@ +package com.kitsu.medievalcraft.util; + +import java.util.Hashtable; + +import net.minecraft.util.ResourceLocation; + +public class SandFilterTexture { + + public static final Hashtable filterText = new Hashtable (){{ + + put(0, new ResourceLocation("kitsumedievalcraft:models/SandFilterEmpty.png")); + put(1, new ResourceLocation("kitsumedievalcraft:models/SandFilter.png")); + //put(2, ModItems.heavyMace); + //put(3, ModItems.battleAxe); + + }}; + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/ShieldSwitchTable.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/ShieldSwitchTable.java new file mode 100644 index 00000000..e06e0734 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/ShieldSwitchTable.java @@ -0,0 +1,28 @@ +package com.kitsu.medievalcraft.util; + +import java.util.Hashtable; + +import net.minecraft.item.Item; + +import com.kitsu.medievalcraft.item.ModItems; + +public class ShieldSwitchTable { + + public static final Hashtable weapons = new Hashtable (){{ + + put(0, ModItems.longSword); + put(1, ModItems.gladius); + put(2, ModItems.heavyMace); + put(3, ModItems.battleAxe); + + }}; + + public static final Hashtable shields = new Hashtable (){{ + + put(0, ModItems.woodenShield); + put(1, ModItems.ironShield); + + }}; + + +} diff --git a/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/TileForgePlaceables.java b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/TileForgePlaceables.java new file mode 100644 index 00000000..f20717b7 --- /dev/null +++ b/1-7-10Resources/src/main/java/com/kitsu/medievalcraft/util/TileForgePlaceables.java @@ -0,0 +1,21 @@ +package com.kitsu.medievalcraft.util; + +import java.util.Hashtable; + +import net.minecraft.item.ItemStack; + +import com.kitsu.medievalcraft.block.ModBlocks; + +public interface TileForgePlaceables { + + static final Hashtable placeMe = new Hashtable (){{ + + put(0, new ItemStack(ModBlocks.refinedIron)); + put(1, new ItemStack(ModBlocks.redstoneIngot)); + put(2, new ItemStack(ModBlocks.lapisIngot)); + put(3, new ItemStack(ModBlocks.ironPlate)); + put(4, new ItemStack(ModBlocks.damascus)); + + }}; + +} diff --git a/1-7-10Resources/src/main/resources/License.txt b/1-7-10Resources/src/main/resources/License.txt new file mode 100644 index 00000000..6fe91e7e --- /dev/null +++ b/1-7-10Resources/src/main/resources/License.txt @@ -0,0 +1,234 @@ +Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this +Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of +Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the +Licensor receives from making the Licensed Material available under these terms and conditions. + +Section 1 – Definitions. + + a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the + Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or + otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or + sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation + with a moving image. + + b. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, + without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to + how the rights are labeled or categorized. For purposes of this Public License, the rights specified in + Section 2(b)(1)-(2) are not Copyright and Similar Rights. + + c. Effective Technological Measures means those measures that, in the absence of proper authority, may not be + circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on + December 20, 1996, and/or similar international agreements. + + d. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright + and Similar Rights that applies to Your use of the Licensed Material. + + e. Licensed Material means the artistic or literary work, database, or other material to which the Licensor + applied this Public License. + + f. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, + which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that + the Licensor has authority to license. + + g. Licensor means the individual(s) or entity(ies) granting rights under this Public License. + + h. NonCommercial means not primarily intended for or directed towards commercial advantage or monetary + compensation. For purposes of this Public License, the exchange of the Licensed Material for other material + subject to Copyright and Similar Rights by digital file-sharing or similar means is NonCommercial provided + there is no payment of monetary compensation in connection with the exchange. + + i. Share means to provide material to the public by any means or process that requires permission under the + Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, + communication, or importation, and to make material available to the public including in ways that members of + the public may access the material from a place and at a time individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European + Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or + succeeded, as well as other essentially equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a + corresponding meaning. + + +Section 2 – Scope. + + a. License grant. + 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, + royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the + Licensed Material to: + + A. reproduce and Share the Licensed Material, in whole or in part, for NonCommercial purposes only; and + + B. produce and reproduce, but not Share, Adapted Material for NonCommercial purposes only. + + 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, + this Public License does not apply, and You do not need to comply with its terms and conditions. + + 3. Term. The term of this Public License is specified in Section 6(a). + + 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed + Rights in all media and formats whether now known or hereafter created, and to make technical modifications + necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You + from making technical modifications necessary to exercise the Licensed Rights, including technical + modifications necessary to circumvent Effective Technological Measures. For purposes of this Public + License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. + + 5. Downstream recipients. + + A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of + this Public License. + + B. No downstream restrictions. You may not offer or impose any additional or different terms or conditions + on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts + exercise of the Licensed Rights by any recipient of the Licensed Material. + + 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or + imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, + or granted official status by, the Licensor or others designated to receive attribution as provided in + Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are + publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor + waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to + allow You to exercise the Licensed Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this Public License. + + 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the + Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory + or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect + such royalties, including when the Licensed Material is used other than for NonCommercial purposes. + + +Section 3 – License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material, You must: + + A. retain the following if it is supplied by the Licensor with the Licensed Material: + + i. identification of the creator(s) of the Licensed Material and any others designated to receive + attribution, in any reasonable manner requested by the Licensor + (including by pseudonym if designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of warranties; + + v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + + B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; + and + + C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the + URI or hyperlink to, this Public License. + + For the avoidance of doubt, You do not have permission under this Public License to Share Adapted Material. + + 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and + context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the + conditions by providing a URI or hyperlink to a resource that includes the required information. + + 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the + extent reasonably practicable. + + +Section 4 – Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or + a substantial portion of the contents of the database for NonCommercial purposes only and provided You do not + Share Adapted Material; + + b. if You include all or a substantial portion of the database contents in a database in which You have Sui + Generis Database Rights, then the database in which You have Sui Generis Database Rights + (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents + of the database. + +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License +where the Licensed Rights include other Copyright and Similar Rights. + + +Section 5 – Disclaimer of Warranties and Limitation of Liability. + + a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the + Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the + Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties + of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other + defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where + disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. + + b. To the extent possible, in no event will the Licensor be liable to You on any legal theory + (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, + consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public + License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such + losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this + limitation may not apply to You. + + c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, + to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. + + +Section 6 – Term and Termination. + + a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You + fail to comply with this Public License, then Your rights under this Public License terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery + of the violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies + for Your violations of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or + conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this + Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + + +Section 7 – Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless + expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate + from and independent of the terms and conditions of this Public License. + + +Section 8 – Interpretation. + + a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, + restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without + permission under this Public License. + + b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be + automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be + reformed, it shall be severed from this Public License without affecting the enforceability of the remaining + terms and conditions. + + c. No term or condition of this Public License will be waived and no failure to comply consented to unless + expressly agreed to by the Licensor. + + d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any + privileges and immunities that apply to the Licensor or You, including from the legal processes of any + jurisdiction or authority. \ No newline at end of file diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/lang/en_US.lang b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/lang/en_US.lang new file mode 100644 index 00000000..51a5af7b --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/lang/en_US.lang @@ -0,0 +1,377 @@ +item.leatherStrap.name=Leather Strap +item.wovenLeather.name=Woven Leather +item.ironChunk.name=Iron Chunk +item.ironRing.name=Iron Ring +item.itemShit.name=Shit +item.linkedRings.name=Linked Rings +item.ironRingMesh.name=Ring Mesh +item.hotIronPlate.name=Hot Iron Plate +item.hotironChunk.name=Hot Iron Chunk +item.swordPlate.name=Sword Plate +item.shortBladePlate.name=Short Blade Plate +item.hotIronIngot.name=Hot Iron Ingot +item.ironBlade.name=Iron Blade +item.shortIronBlade.name=Short Iron Blade +item.woodenPlate.name=Wooden Plate +item.charcoalLeafPellet.name=Charcoal Leaf Ball +item.salt.name=Salt +item.limestoneDust.name=Limestone Dust +item.itemBark.name=Bark +item.quartzDust.name=Quartz Dust +item.itemSmallBarrelLid.name=Small Barrel Lid +item.leatherString=Leather String +item.rawCuredLeather.name=Raw Cured Leather +item.coarseFilter.name=Coarse Filter +item.mediumFilter.name=Medium Filter +item.fineFilter.name=Fine Filter +item.filteredBucket.name=Filtered Water Bucket +item.tanninBucket.name=Tannin Bucket +item.slackBucket.name=Slacked Lime Bucket +item.pickaxeClayForm.name=Soft Pickaxe Clay Form +item.spadeHeadClayForm.name=Soft Shovel Clay Form +item.hoeHeadClayForm.name=Soft Hoe Clay Form +item.axeHeadClayForm.name=Soft Lumber Axe Clay Form +item.longswordClayForm.name=Soft Long Sword Clay Form +item.shortswordClayForm.name=Soft Gladius Clay Form +item.daggerClayForm.name=Soft Knife Clay Form +item.halberdClayForm.name=Soft Halberd Clay Form +item.speartipClayForm.name=Soft Spear Tip Clay Form +item.maceheadClayForm.name=Soft Mace Head Clay Form +item.sharptipClayForm.name=Soft Sharp Tip Clay Form +item.battleaxeClayForm.name=Soft Battle Axe Clay Form +item.ringClayForm.name=Soft Ring Clay Form +item.plateClayForm.name=Soft Plate Clay Form +item.sawbladeClayForm.name=Soft Saw Blade Clay Form +item.cookedpickaxeClayForm.name=Pickaxe Clay Form +item.cookedspadeHeadClayForm.name=Shovel Clay Form +item.cookedhoeHeadClayForm.name=Hoe Clay Form +item.cookedaxeHeadClayForm.name=Lumber Axe Clay Form +item.cookedlongswordClayForm.name=Long Sword Clay Form +item.cookedshortswordClayForm.name=Gladius Clay Form +item.cookeddaggerClayForm.name=Knife Clay Form +item.cookedhalberdClayForm.name=Halberd Clay Form +item.cookedspeartipClayForm.name=Spear Tip Clay Form +item.cookedmaceheadClayForm.name=Mace Head Clay Form +item.cookedsharptipClayForm.name=Sharp Tip Clay Form +item.cookedbattleaxeClayForm.name=Battle Axe Clay Form +item.cookedringClayForm.name=Ring Clay Form +item.cookedplateClayForm.name=Plate Clay Form +item.cookedsawbladeClayForm.name=Saw Blade Clay Form +item.ironpickaxeHead.name=Iron Pickaxe Head +item.ironspadeHead.name=Iron Shovel Head +item.ironhoeHead.name=Iron Hoe Head +item.ironaxeHead.name=Iron Lumber Axe Head +item.ironlongswordBlade.name=Iron Longsword Blade +item.ironshortswordBlade.name=Iron Gladius Blade +item.irondaggerBlade.name=Iron Knife Blade +item.ironhalberdHead.name=Iron Halberd Head +item.ironspearTip.name=Iron Spear Tip +item.ironsharpTip.name=Iron Sharp Tip +item.ironmaceHead.name=Iron Mace Head +item.ironbattleaxeHead.name=Iron Battle Axe Head +item.ironshieldPlate.name=Iron Shield Plate +item.ironsawBlade.name=Iron Saw Blade +item.ironweaponHandle.name=Iron Handle +item.woodentoolHandle.name=Wooden Handle +item.ironPickaxeForm.name=Iron Pickaxe Form +item.ironSpadeForm.name=Iron Shovel Form +item.ironHoeForm.name=Iron Hoe Form +item.ironAxeForm.name=Iron Lumber Axe Form +item.ironLongswordForm.name=Iron Long Sword Form +item.ironShortSwordForm.name=Iron Gladius Form +item.ironDaggerForm.name=Iron Knife Form +item.ironHalberdForm.name=Iron Halberd Form +item.ironSpearTipForm.name=Iron Spear Tip Form +item.ironMaceHeadForm.name=Iron Mace Head Form +item.ironBattleAxeForm.name=Iron Battle Axe Form +item.ironsquarePlate.name=Iron Square Plate +item.ironSawBladeForm.name=Iron Saw Blade Form +item.ironSharpTipForm.name=Iron Sharp Tip Form +item.ironRingForm.name=Iron Ring Form +item.ironHandleForm.name=Iron Handle Form + +item.silkTouchIronHead.name=Emerald Tipped Pickaxe Head +item.unbreakingOneHead.name=Diamond Tip Pickaxe Head +item.unbreakingTwoHead.name=Diamond Tipped Pickaxe Head +item.efficOneHead.name=Redstone Tip Pickaxe Head +item.efficTwoHead.name=Redstone Tipped Pickaxe Head +item.fortuneOneHead.name=Lapis Tip Pickaxe Head +item.fortuneTwoHead.name=Lapis Tipped Pickaxe Head +item.efficOneFortuneOneHead.name=Redstone & Lapis Tipped Pickaxe Head +item.unbreakingOneEfficOneHead.name=Diamond & Redstone Tipped Pickaxe Head +item.unbreakingOneFortuneOneHead.name=Diamond & Lapis Tipped Pickaxe Head +item.silkTouchIronSpade.name=Emerald Tipped Spade +item.unbreakingOneSpade.name=Diamond Tip Spade +item.unbreakingTwoSpade.name=Diamond Tipped Spade +item.efficOneSpade.name=Redstone Tip Spade +item.efficTwoSpade.name=Redstone Tipped Spade +item.fortuneOneSpade.name=Lapis Tip Spade +item.fortuneTwoSpade.name=Lapis Tipped Spade +item.efficOneFortuneOneSpade.name=Redstone & Lapis Tipped Spade +item.unbreakingOneEfficOneSpade.name=Diamond & Redstone Tipped Spade +item.unbreakingOneFortuneOneSpade.name=Diamond & Lapis Tipped Spade +item.silkTouchIronLumberAxe.name=Emerald Tipped Lumber Axe +item.unbreakingOneLumberAxe.name=Diamond Tip Lumber Axe +item.unbreakingTwoLumberAxe.name=Diamond Tipped Lumber Axe +item.efficOneLumberAxe.name=Redstone Tip Lumber Axe +item.efficTwoLumberAxe.name=Redstone Tipped Lumber Axe +item.fortuneOneLumberAxe.name=Lapis Tip Lumber Axe +item.fortuneTwoLumberAxe.name=Lapis Tipped Lumber Axe +item.efficOneFortuneOneLumberAxe.name=Redstone & Lapis Tipped Lumber Axe +item.unbreakingOneEfficOneLumberAxe.name=Diamond & Redstone Tipped Lumber Axe +item.unbreakingOneFortuneOneLumberAxe.name=Diamond & Lapis Tipped Lumber Axe +item.fortuneWoodRod.name=Lapis Inlayed Wood Handle +item.unbreakingWoodRod.name=Diamond Inlayed Wood Handle +item.fortuneIronRod.name=Lapis Inlayed Iron Handle +item.efficIronRod.name=Redstone Inlayed Iron Handle + +item.customIronPick.name=Forged Pickaxe +item.customStrongIronPick.name=Forged Pickaxe +item.customWeakIronPick.name=Forged Pickaxe +item.customHandleStrongIronPick.name=Forged Pickaxe +item.customHandleIronPick.name=Forged Pickaxe +item.customIronHoe.name=Forged Hoe +item.customIronPick1.name=Forged Pickaxe +item.customIronPick2.name=Forged Pickaxe +item.customIronPick3.name=Forged Pickaxe +item.customIronPick4.name=Forged Pickaxe +item.customIronPickCase0.name=Forged Pickaxe +item.customHandleIronPickCase0.name=Forged Pickaxe +item.customIronPickCase1.name=Forged Pickaxe +item.customIronPickCase2.name=Forged Pickaxe +item.customIronPickCase3.name=Forged Pickaxe +item.customIronPickCase4.name=Forged Pickaxe +item.customIronPickCase5.name=Forged Pickaxe +item.customIronPickCase6.name=Forged Pickaxe +item.customIronPickCase7.name=Forged Pickaxe +item.customIronPickCase8.name=Forged Pickaxe +item.customIronPickCase9.name=Forged Pickaxe +item.customIronPickCase10.name=Forged Pickaxe +item.customIronPickCase11.name=Forged Pickaxe +item.customIronPickCase12.name=Forged Pickaxe +item.customIronPickCase13.name=Forged Pickaxe +item.customIronPickCase14.name=Forged Pickaxe +item.customIronPickCase15.name=Forged Pickaxe +item.customIronPickCase16.name=Forged Pickaxe +item.customIronPickCase17.name=Forged Pickaxe +item.customIronPickCase18.name=Forged Pickaxe +item.customIronPickCase19.name=Forged Pickaxe +item.customIronPickCase20.name=Forged Pickaxe +item.customIronPickCase21.name=Forged Pickaxe +item.customIronPickCase22.name=Forged Pickaxe +item.customIronPickCase23.name=Forged Pickaxe +item.customIronPickCase24.name=Forged Pickaxe +item.customIronPickCase25.name=Forged Pickaxe +item.customIronPickCase26.name=Forged Pickaxe +item.customIronPickCase27.name=Forged Pickaxe +item.customIronPickCase28.name=Forged Pickaxe +item.customIronPickCase29.name=Forged Pickaxe +item.customIronPickCase30.name=Forged Pickaxe +item.customIronPickCase31.name=Forged Pickaxe +item.customIronPickCase32.name=Forged Pickaxe +item.customIronPickCase33.name=Forged Pickaxe +item.customIronPickCase34.name=Forged Pickaxe +item.customIronPickCase35.name=Forged Pickaxe +item.customIronPickCase36.name=Forged Pickaxe +item.customIronPickCase37.name=Forged Pickaxe +item.customIronPickCase38.name=Forged Pickaxe +item.customIronPickCase39.name=Forged Pickaxe +item.customIronPickCase40.name=Forged Pickaxe +item.customIronPickCase41.name=Forged Pickaxe +item.customIronPickCase42.name=Forged Pickaxe +item.customIronPickCase43.name=Forged Pickaxe +item.customIronPickCase44.name=Forged Pickaxe +item.customIronPickCase45.name=Forged Pickaxe +item.customIronPickCase46.name=Forged Pickaxe +item.customIronPickCase47.name=Forged Pickaxe +item.customIronPickCase48.name=Forged Pickaxe +item.customIronPickCase49.name=Forged Pickaxe +item.customIronPickCase50.name=Forged Pickaxe +item.customIronPickCase51.name=Forged Pickaxe +item.customIronPickCase52.name=Forged Pickaxe + +item.customIronLumberAxe0.name=Forged Lumber Axe +item.customIronLumberAxe1.name=Forged Lumber Axe +item.customIronLumberAxe2.name=Forged Lumber Axe +item.customIronLumberAxe3.name=Forged Lumber Axe + +item.customIronLumberAxe.name=Forged Lumber Axe +item.customStrongIronLumberAxe.name=Forged Lumber Axe +item.customWeakIronLumberAxe.name=Forged Lumber Axe +item.customHandleIronLumberAxe.name=Forged Lumber Axe +item.customHandleStrongIronLumberAxe.name=Forged Lumber Axe + + +item.customIronShovel0.name=Forged Shovel +item.customIronShovel1.name=Forged Shovel +item.customIronShovel2.name=Forged Shovel +item.customIronShovel3.name=Forged Shovel + +item.customIronShovelCase0.name=Forged Shovel +item.customIronShovelCase00.name=Forged Shovel +item.customIronShovelCase1.name=Forged Shovel +item.customIronShovelCase2.name=Forged Shovel +item.customIronShovelCase3.name=Forged Shovel +item.customIronShovelCase4.name=Forged Shovel +item.customIronShovelCase5.name=Forged Shovel +item.customIronShovelCase6.name=Forged Shovel +item.customIronShovelCase7.name=Forged Shovel +item.customIronShovelCase8.name=Forged Shovel +item.customIronShovelCase9.name=Forged Shovel +item.customIronShovelCase10.name=Forged Shovel +item.customIronShovelCase11.name=Forged Shovel +item.customIronShovelCase12.name=Forged Shovel +item.customIronShovelCase13.name=Forged Shovel +item.customIronShovelCase14.name=Forged Shovel +item.customIronShovelCase15.name=Forged Shovel +item.customIronShovelCase16.name=Forged Shovel +item.customIronShovelCase17.name=Forged Shovel +item.customIronShovelCase18.name=Forged Shovel +item.customIronShovelCase19.name=Forged Shovel +item.customIronShovelCase20.name=Forged Shovel +item.customIronShovelCase21.name=Forged Shovel +item.customIronShovelCase22.name=Forged Shovel +item.customIronShovelCase23.name=Forged Shovel +item.customIronShovelCase24.name=Forged Shovel +item.customIronShovelCase25.name=Forged Shovel +item.customIronShovelCase26.name=Forged Shovel +item.customIronShovelCase27.name=Forged Shovel +item.customIronShovelCase28.name=Forged Shovel +item.customIronShovelCase29.name=Forged Shovel +item.customIronShovelCase30.name=Forged Shovel +item.customIronShovelCase31.name=Forged Shovel +item.customIronShovelCase32.name=Forged Shovel +item.customIronShovelCase33.name=Forged Shovel +item.customIronShovelCase34.name=Forged Shovel +item.customIronShovelCase35.name=Forged Shovel +item.customIronShovelCase36.name=Forged Shovel +item.customIronShovelCase37.name=Forged Shovel +item.customIronShovelCase38.name=Forged Shovel +item.customIronShovelCase39.name=Forged Shovel +item.customIronShovelCase40.name=Forged Shovel +item.customIronShovelCase41.name=Forged Shovel +item.customIronShovelCase42.name=Forged Shovel +item.customIronShovelCase43.name=Forged Shovel +item.customIronShovelCase44.name=Forged Shovel +item.customIronShovelCase45.name=Forged Shovel +item.customIronShovelCase46.name=Forged Shovel +item.customIronShovelCase47.name=Forged Shovel +item.customIronShovelCase48.name=Forged Shovel +item.customIronShovelCase49.name=Forged Shovel +item.customIronShovelCase50.name=Forged Shovel +item.customIronShovelCase51.name=Forged Shovel +item.customIronShovelCase52.name=Forged Shovel + + +item.customIronShovel.name=Forged Shovel +item.customHandleIronShovel.name=Forged Shovel +item.customHandleStrongIronShovel.name=Forged Shovel +item.customWeakIronShovel.name=Forged Shovel +item.customStrongIronShovel.name=Forged Shovel + +item.forgeHammer.name=Forge Hammer +item.inlayHammer.name=Inlay Hammer +item.ironSaw.name=Iron Saw +item.leatherShears.name=Leather Shears +item.heavyMace.name=Heavy Mace +item.woodenShield.name=Wooden Shield +item.ironShield.name=Iron Shield +item.longSword.name=Longsword +item.fireBow.name=Fire Bow +item.longbow.name=Longbow +item.gladius.name=Gladius +item.battleAxe.name=Battle Axe +item.itemITSpear.name=Iron Tipped Spear +item.itemIronTippedModelArrow.name=Iron Tipped Longbow Arrow +item.itemModelArrow.name=Longbow Arrow +item.workBlade.name=Crafting Blade +item.itemTester.name=Tester +item.unstrungLongbow.name=Unstrung Longbow +item.strippedSapling.name= Stripped Sapling +item.cutLeather.name=Cut Leather +item.scuddedLeather.name=Scudded Leather +item.soakedLeather.name=Soaked Leather +item.slackedLeather.name=Slacked Leather +item.saplingRing.name=Sapling Hoop +item.tannedLeather.name=Tanned Leather +item.finishedLeather.name=Finished Leather +item.splitBoard.name=Split Board +item.flintSaw.name=Flint Saw +item.itemSmallBarrelLid.name +item.halfSplitBoard.name=Half Split Board +item.woodPulp.name=Wood Pulp +item.charcoalFilter.name=Charcoal Filter +item.slottedTongs.name=Stone Tongs +item.flintKnapped.name=Knapped Flint +item.cannonBreach.name=CannonBreach +item.cannonBarrel.name=CannonBarrel + +tile.shitBlock.name=Shit Block +tile.formTable.name=Form Table +tile.refinedIron.name=Refined Iron Ingot +tile.crucibleIronOre.name=Iron Ore Crucible +tile.crucibleIronIngot.name=Iron Ore Crucible +tile.crucibleWootz.name=Wootz Ore Crucible +tile.crucibleLapis.name=Lapis Crucible +tile.crucibleRedstone.name=Redstone Crucible +tile.forge.name=Forge +tile.ironPlate.name=Iron Plate +tile.damascus.name=Damascus Steel Ingot +tile.eggWashedWall.name=Egg Washed Wall +tile.eggWashedBrick.name=Egg Washed Brick +tile.wootzOre.name=Wootz Ore +tile.limestoneRaw.name=Raw Limestone +tile.forgeAnvil.name=Forge Anvil +tile.lapisIngot.name=Lapis Ingot +tile.redstoneIngot.name=Redstone Ingot +tile.sandFilterEmpty.name=Filter Stand +tile.sandFilter.name=Filter Stand +tile.waterFilter.name=WaterFilter +tile.cleanOak.name=Stripped Oak Log +tile.cleanSpruce.name=Stripped Spruce Log +tile.cleanBirch.name=Stripped Birch Log +tile.cleanDarkOak.name=Stripped Dark Oak Log +tile.cleanAcacia.name=Stripped Acacia Log +tile.cleanJungle.name=Stripped Jungle Log +tile.myEmerald.name=Emerald +tile.myDiamond.name=Diamond +tile.slackWaterCrucible.name=Slacked Lime Crucible +tile.tanWaterCrucible.name=Tannin Crucible +tile.filledWaterCrucible.name=Water Crucible +tile.boilingWaterCrucible.name=Boiling Water Crucible +tile.blockSmoke.name=Smoke +tile.blockFilteredWater.name=Filtered Water +tile.blockSlackedLime.name=Slacked Lime +tile.blockTannin.name=Tannin +tile.solidFilter.name=Filter Stand +tile.darkSplitLog.name=Dark Oak Split Log +tile.spruceSplitLog.name= Spruce Split Log +tile.jungleSplitLog.name=Jungle Split Log +tile.oakSplitLog.name=Oak Split Log +tile.birchSplitLog.name=Birch Split Log +tile.acaciaSplitLog.name=Acacia Split Log +tile.smallBarrel.name=Small Barrel +tile.smallBarrelLid.name=Small Barrel Lid +tile.shelfFour.name=Shelf +tile.firebox.name=Clay Firebox +tile.emptySoftCrucible.name=Empty Soft Crucible +tile.emptyCookedCrucible.name=Empty Crucible + +tile.cannon_28.name=Cannon 28lb +tile.cannonBallBlock_28.name=Cannon Ball 28lb + +itemGroup.MedievalCraftTab=ForgeCraft + + + + + + + + + + + + + + diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelFinished.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelFinished.obj new file mode 100644 index 00000000..6b9fbdaf --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelFinished.obj @@ -0,0 +1,937 @@ +# Blender v2.72 (sub 0) OBJ File: 'BarrelFinished.blend' +# www.blender.org +mtllib BarrelFinished.mtl +o Circle +v 1.028766 0.091595 -0.000000 +v 1.019465 0.126895 -0.000000 +v 0.997014 0.141517 -0.000000 +v -1.006386 2.606964 -0.000000 +v -1.006386 2.707747 -0.000000 +v -1.029050 2.692988 -0.000000 +v 0.997014 0.041672 -0.000000 +v 1.019465 0.056294 -0.000000 +v 0.727447 0.091595 -0.727447 +v 0.720871 0.126895 -0.720872 +v 0.704995 0.141517 -0.704995 +v -1.038437 2.657356 -0.000000 +v -0.727648 2.621723 -0.727647 +v -0.711623 2.606964 -0.711622 +v 0.704995 0.041672 -0.704995 +v 0.720871 0.056294 -0.720872 +v -0.000000 0.091595 -1.028766 +v -0.000000 0.126895 -1.019466 +v -0.000000 0.141517 -0.997014 +v -0.711623 2.707747 -0.711622 +v -0.727648 2.692988 -0.727647 +v -0.734286 2.657356 -0.734285 +v -0.000000 0.041672 -0.997014 +v -0.000000 0.056294 -1.019466 +v -0.727447 0.091595 -0.727447 +v -0.720872 0.126895 -0.720871 +v -0.704995 0.141517 -0.704995 +v -0.000000 2.621723 -1.029049 +v -0.000000 2.606964 -1.006386 +v -0.000000 2.707747 -1.006386 +v -0.704995 0.041672 -0.704995 +v -0.720872 0.056294 -0.720871 +v -1.028766 0.091595 -0.000000 +v -1.019466 0.126895 -0.000000 +v -0.997014 0.141517 -0.000000 +v -0.000000 2.692988 -1.029049 +v -0.000000 2.657356 -1.038437 +v 0.727647 2.621723 -0.727648 +v -0.997014 0.041672 -0.000000 +v -1.019466 0.056294 -0.000000 +v -0.727447 0.091595 0.727447 +v -0.720872 0.126895 0.720871 +v -0.704995 0.141517 0.704995 +v 0.711622 2.606964 -0.711623 +v 0.711622 2.707747 -0.711623 +v 0.727647 2.692988 -0.727648 +v -0.704995 0.041672 0.704995 +v -0.720872 0.056294 0.720871 +v -0.000000 0.091595 1.028766 +v -0.000000 0.126895 1.019466 +v -0.000000 0.141517 0.997014 +v 0.734285 2.657356 -0.734286 +v 1.029049 2.621723 -0.000000 +v 1.006386 2.606964 -0.000000 +v -0.000000 0.041672 0.997014 +v -0.000000 0.056294 1.019466 +v 0.727447 0.091595 0.727448 +v 0.720871 0.126895 0.720871 +v 0.704995 0.141517 0.704996 +v 1.006386 2.707747 -0.000000 +v 1.029049 2.692988 -0.000000 +v 1.038436 2.657356 -0.000000 +v 0.704995 0.041672 0.704996 +v 0.720871 0.056294 0.720871 +v 0.000000 -0.005607 -1.000000 +v -0.707107 -0.005607 -0.707107 +v -1.000000 -0.005607 0.000000 +v -0.707107 -0.005607 0.707107 +v 0.000000 -0.005607 1.000000 +v 0.707107 -0.005607 0.707107 +v 1.000000 -0.005607 -0.000000 +v 0.707107 -0.005607 -0.707107 +v 0.000000 -0.005607 -0.838998 +v -0.593261 -0.005607 -0.593261 +v -0.838998 -0.005607 0.000000 +v -0.593261 -0.005607 0.593261 +v 0.000000 -0.005607 0.838998 +v 0.593261 -0.005607 0.593261 +v 0.838998 -0.005607 -0.000000 +v 0.593261 -0.005607 -0.593261 +v 0.000000 0.094249 -1.000000 +v -0.707107 0.094249 -0.707107 +v -1.000000 0.094249 0.000000 +v -0.707107 0.094249 0.707107 +v 0.000000 0.094249 1.000000 +v 0.707107 0.094249 0.707107 +v 1.000000 0.094249 -0.000000 +v 0.707107 0.094249 -0.707107 +v 0.000000 0.094249 -0.838998 +v -0.593261 0.094249 -0.593261 +v -0.838998 0.094249 0.000000 +v -0.593261 0.094249 0.593261 +v 0.000000 0.094249 0.838998 +v 0.593261 0.094249 0.593261 +v 0.838998 0.094249 -0.000000 +v 0.593261 0.094249 -0.593261 +v 0.000000 2.832131 -1.000000 +v -0.707107 2.832131 -0.707107 +v -1.000000 2.832131 0.000000 +v -0.707107 2.832131 0.707107 +v 0.000000 2.832131 1.000000 +v 0.707107 2.832131 0.707107 +v 1.000000 2.832131 -0.000000 +v 0.707107 2.832131 -0.707107 +v 0.000000 2.732275 -1.000000 +v -0.707107 2.732275 -0.707107 +v -1.000000 2.732275 0.000000 +v -0.707107 2.732275 0.707107 +v 0.000000 2.732275 1.000000 +v 0.707107 2.732275 0.707107 +v 1.000000 2.732275 -0.000000 +v 0.707107 2.732275 -0.707107 +v 0.000000 2.732275 -0.838998 +v -0.593261 2.732275 -0.593261 +v -0.838998 2.732275 0.000000 +v -0.593261 2.732275 0.593261 +v 0.000000 2.732275 0.838998 +v 0.593261 2.732275 0.593261 +v 0.838998 2.732275 -0.000000 +v 0.593261 2.732275 -0.593261 +v -0.000000 0.621854 -1.144393 +v -0.000000 1.149459 -1.201792 +v -0.000000 1.677064 -1.201792 +v -0.000000 2.204670 -1.144393 +v 1.144392 0.622559 -0.000000 +v 1.144392 2.204670 -0.000000 +v 0.809208 0.621854 -0.809208 +v 0.849796 1.149459 -0.849795 +v 0.849796 1.677064 -0.849795 +v 0.809208 2.204670 -0.809208 +v -0.809208 0.621854 -0.809208 +v -0.849796 1.149459 -0.849796 +v -0.849796 1.677064 -0.849796 +v -0.809208 2.204670 -0.809208 +v -1.144393 0.621854 0.000000 +v -1.201792 1.149459 0.000000 +v -1.201792 1.677064 0.000000 +v -1.144393 2.204670 0.000000 +v -0.809208 0.621854 0.809208 +v -0.849796 1.149459 0.849796 +v -0.849796 1.677064 0.849796 +v -0.809208 2.204670 0.809208 +v 0.000000 0.621854 1.144393 +v 0.000000 1.149459 1.201792 +v 0.000000 1.677064 1.201792 +v 0.000000 2.204670 1.144393 +v 0.809208 0.621854 0.809208 +v 0.849796 1.149459 0.849795 +v 0.849796 1.677064 0.849795 +v 0.809208 2.204670 0.809208 +v 1.201792 1.146602 -0.000000 +v 1.201792 1.670271 -0.000000 +v 0.678924 0.621854 0.678923 +v 0.712977 1.149459 0.712977 +v 0.712977 1.677064 0.712977 +v 0.678924 2.204670 0.678923 +v 0.000000 0.621854 0.960143 +v 0.000000 1.149459 1.008301 +v 0.000000 1.677064 1.008301 +v 0.000000 2.204670 0.960143 +v -0.678924 0.621854 0.678924 +v -0.712977 1.149459 0.712977 +v -0.712977 1.677064 0.712977 +v -0.678924 2.204670 0.678924 +v -0.960143 0.621854 0.000000 +v -1.008301 1.149459 0.000000 +v -1.008301 1.677064 0.000000 +v -0.960143 2.204670 0.000000 +v -0.678924 0.621854 -0.678924 +v -0.712977 1.149459 -0.712977 +v -0.712977 1.677064 -0.712977 +v -0.678924 2.204670 -0.678924 +v -0.000000 0.621854 -0.960143 +v -0.000000 1.149459 -1.008301 +v -0.000000 1.677064 -1.008301 +v -0.000000 2.204670 -0.960143 +v 0.678924 0.621854 -0.678923 +v 0.712977 1.149459 -0.712977 +v 0.712977 1.677064 -0.712977 +v 0.678924 2.204670 -0.678923 +v 0.960143 0.621854 -0.000000 +v 1.008301 1.149459 -0.000000 +v 1.008301 1.677064 -0.000000 +v 0.960143 2.204670 -0.000000 +v -1.029050 2.621723 -0.000000 +v -0.734286 2.657356 0.734285 +v -0.727648 2.692988 0.727647 +v -0.711623 2.707747 0.711622 +v -0.711623 2.606964 0.711622 +v -0.727648 2.621723 0.727647 +v -0.000000 2.657356 1.038437 +v -0.000000 2.692988 1.029049 +v -0.000000 2.707747 1.006386 +v -0.000000 2.606964 1.006386 +v -0.000000 2.621723 1.029049 +v 0.734285 2.657356 0.734286 +v 0.727647 2.692988 0.727648 +v 0.711622 2.707747 0.711623 +v 0.711622 2.606964 0.711623 +v 0.727647 2.621723 0.727648 +vt 0.617422 0.263772 +vt 0.638837 0.233789 +vt 0.609305 0.260707 +vt 0.677238 0.241187 +vt 0.680600 0.233789 +vt 0.702015 0.263772 +vt 0.710132 0.260707 +vt 0.702015 0.295711 +vt 0.710132 0.298776 +vt 0.677238 0.318296 +vt 0.680600 0.325695 +vt 0.642199 0.318296 +vt 0.638837 0.325695 +vt 0.617422 0.295711 +vt 0.609305 0.298776 +vt 0.642199 0.241187 +vt 0.195948 0.699894 +vt 0.203834 0.700619 +vt 0.203834 0.859510 +vt 0.011895 0.857760 +vt 0.016529 0.856011 +vt 0.137073 0.965889 +vt 0.198968 0.869739 +vt 0.206854 0.870463 +vt 0.206854 0.983841 +vt 0.308140 0.967509 +vt 0.428684 0.857631 +vt 0.433318 0.859381 +vt 0.133880 0.971978 +vt 0.135799 0.967754 +vt 0.306274 0.967754 +vt 0.214740 0.869739 +vt 0.214740 0.982091 +vt 0.135238 0.592606 +vt 0.014694 0.702484 +vt 0.010060 0.700735 +vt 0.188062 0.859510 +vt 0.188062 0.700619 +vt 0.195948 0.586517 +vt 0.203834 0.588266 +vt 0.011895 0.698869 +vt 0.016529 0.700619 +vt 0.257399 0.977493 +vt 0.249513 0.979243 +vt 0.249513 0.865865 +vt 0.310060 0.971733 +vt 0.135746 0.971733 +vt 0.308194 0.971978 +vt 0.426818 0.857876 +vt 0.241627 0.977493 +vt 0.241627 0.865140 +vt 0.014694 0.857876 +vt 0.010060 0.859625 +vt 0.188062 0.588266 +vt 0.251834 0.782017 +vt 0.243948 0.781292 +vt 0.243948 0.622401 +vt 0.135153 0.586517 +vt 0.137073 0.590741 +vt 0.257399 0.865140 +vt 0.249513 0.705525 +vt 0.137666 0.967509 +vt 0.012488 0.859381 +vt 0.431452 0.700735 +vt 0.431452 0.859626 +vt 0.241627 0.706249 +vt 0.135238 0.967754 +vt 0.133318 0.971978 +vt 0.259720 0.781292 +vt 0.251834 0.621677 +vt 0.251834 0.895395 +vt 0.243948 0.893645 +vt 0.309467 0.586517 +vt 0.307547 0.590741 +vt 0.257399 0.706249 +vt 0.249513 0.592147 +vt 0.017122 0.857631 +vt 0.012488 0.700490 +vt 0.308194 0.588382 +vt 0.426818 0.702484 +vt 0.241627 0.593897 +vt 0.305712 0.967754 +vt 0.307632 0.971978 +vt 0.259720 0.893645 +vt 0.220740 0.861855 +vt 0.228626 0.861130 +vt 0.228626 0.973483 +vt 0.432725 0.698869 +vt 0.428091 0.700619 +vt 0.270626 0.903874 +vt 0.262740 0.905624 +vt 0.262740 0.792246 +vt 0.134166 0.592361 +vt 0.013622 0.702239 +vt 0.008988 0.700490 +vt 0.306274 0.592606 +vt 0.135800 0.592606 +vt 0.254854 0.903874 +vt 0.254854 0.791521 +vt 0.426256 0.857876 +vt 0.430890 0.859625 +vt 0.212854 0.861130 +vt 0.220740 0.975233 +vt 0.220740 0.701515 +vt 0.228626 0.702239 +vt 0.432725 0.857760 +vt 0.428091 0.856011 +vt 0.270626 0.791521 +vt 0.262740 0.631905 +vt 0.308140 0.592361 +vt 0.137666 0.592361 +vt 0.135746 0.588137 +vt 0.133880 0.588382 +vt 0.015256 0.702484 +vt 0.426256 0.702484 +vt 0.430890 0.700734 +vt 0.212854 0.702239 +vt 0.220740 0.588137 +vt 0.228626 0.589887 +vt 0.309467 0.970113 +vt 0.307548 0.965889 +vt 0.198967 0.598495 +vt 0.206854 0.596745 +vt 0.206854 0.710123 +vt 0.310060 0.588137 +vt 0.433318 0.700490 +vt 0.010622 0.700735 +vt 0.015256 0.857876 +vt 0.214740 0.598495 +vt 0.214740 0.710848 +vt 0.305713 0.592606 +vt 0.307632 0.588382 +vt 0.212854 0.589887 +vt 0.195948 0.860235 +vt 0.203834 0.971863 +vt 0.135153 0.970113 +vt 0.198967 0.710848 +vt 0.428684 0.702239 +vt 0.010622 0.859625 +vt 0.133318 0.588382 +vt 0.195948 0.973612 +vt 0.616746 0.295343 +vt 0.641523 0.240819 +vt 0.616746 0.263404 +vt 0.638698 0.233958 +vt 0.617283 0.263941 +vt 0.642060 0.241357 +vt 0.680462 0.233958 +vt 0.677100 0.241357 +vt 0.709994 0.260877 +vt 0.701877 0.263941 +vt 0.709994 0.298945 +vt 0.701877 0.295881 +vt 0.680462 0.325864 +vt 0.677100 0.318466 +vt 0.638698 0.325864 +vt 0.642060 0.318466 +vt 0.609167 0.298945 +vt 0.617283 0.295881 +vt 0.609167 0.260877 +vt 0.640447 0.317741 +vt 0.615670 0.263217 +vt 0.615670 0.295156 +vt 0.234622 0.204226 +vt 0.195215 0.208864 +vt 0.234616 0.208912 +vt 0.263085 0.204261 +vt 0.235219 0.208912 +vt 0.263079 0.208947 +vt 0.195945 0.209016 +vt 0.161187 0.233764 +vt 0.193070 0.233770 +vt 0.235352 0.204379 +vt 0.235346 0.209065 +vt 0.235145 0.337098 +vt 0.263006 0.332412 +vt 0.235145 0.332412 +vt 0.195744 0.337098 +vt 0.195744 0.332412 +vt 0.167883 0.337098 +vt 0.167883 0.332412 +vt 0.195823 0.204178 +vt 0.167957 0.208829 +vt 0.195818 0.208864 +vt 0.865258 0.833873 +vt 0.945066 0.864006 +vt 0.912009 0.833873 +vt 0.262927 0.332736 +vt 0.237941 0.307947 +vt 0.235066 0.332702 +vt 0.192851 0.307892 +vt 0.195665 0.332653 +vt 0.160967 0.307852 +vt 0.167804 0.332619 +vt 0.167883 0.208622 +vt 0.192900 0.233380 +vt 0.195744 0.208622 +vt 0.237990 0.233380 +vt 0.235145 0.208622 +vt 0.263006 0.208622 +vt 0.235194 0.332854 +vt 0.192979 0.308044 +vt 0.195793 0.332806 +vt 0.272616 0.258340 +vt 0.239102 0.283191 +vt 0.272586 0.282913 +vt 0.450304 0.307906 +vt 0.471106 0.332337 +vt 0.476750 0.307849 +vt 0.415315 0.332458 +vt 0.447997 0.332387 +vt 0.386457 0.308043 +vt 0.412903 0.307986 +vt 0.476851 0.307348 +vt 0.448098 0.331887 +vt 0.471208 0.331837 +vt 0.450405 0.307405 +vt 0.415416 0.331957 +vt 0.476420 0.307423 +vt 0.447614 0.331899 +vt 0.470724 0.331899 +vt 0.412573 0.307423 +vt 0.449974 0.307423 +vt 0.391823 0.331899 +vt 0.414933 0.331899 +vt 0.269916 0.233746 +vt 0.238033 0.233674 +vt 0.192943 0.233618 +vt 0.239133 0.258433 +vt 0.191781 0.258375 +vt 0.191751 0.283132 +vt 0.161059 0.233579 +vt 0.158298 0.258333 +vt 0.158268 0.283091 +vt 0.161016 0.307654 +vt 0.192900 0.307654 +vt 0.158286 0.282896 +vt 0.191769 0.282896 +vt 0.158286 0.258138 +vt 0.191769 0.258138 +vt 0.161016 0.233380 +vt 0.237990 0.307654 +vt 0.239121 0.282896 +vt 0.239121 0.258138 +vt 0.269873 0.307654 +vt 0.272744 0.258627 +vt 0.238160 0.233826 +vt 0.239261 0.258585 +vt 0.272713 0.283384 +vt 0.239230 0.283343 +vt 0.269952 0.308139 +vt 0.238069 0.308100 +vt 0.191909 0.258527 +vt 0.191878 0.283285 +vt 0.158426 0.258352 +vt 0.158396 0.282925 +vt 0.470843 0.209955 +vt 0.450146 0.234476 +vt 0.476592 0.234419 +vt 0.451136 0.258950 +vt 0.478909 0.258891 +vt 0.451189 0.283427 +vt 0.478962 0.283367 +vt 0.447733 0.210004 +vt 0.412745 0.234556 +vt 0.411860 0.259035 +vt 0.411912 0.283512 +vt 0.415052 0.210075 +vt 0.386299 0.234613 +vt 0.384087 0.259095 +vt 0.384140 0.283571 +vt 0.470944 0.209454 +vt 0.450247 0.233975 +vt 0.476693 0.233918 +vt 0.451237 0.258450 +vt 0.479010 0.258390 +vt 0.451290 0.282926 +vt 0.479063 0.282867 +vt 0.447835 0.209504 +vt 0.412846 0.234056 +vt 0.412014 0.283011 +vt 0.413004 0.307486 +vt 0.470724 0.209516 +vt 0.449974 0.233993 +vt 0.476420 0.233993 +vt 0.478685 0.258469 +vt 0.450912 0.282946 +vt 0.478685 0.282946 +vt 0.447614 0.209516 +vt 0.412573 0.233993 +vt 0.411635 0.258469 +vt 0.450912 0.258469 +vt 0.411635 0.282946 +vt 0.414932 0.209516 +vt 0.386127 0.233993 +vt 0.383862 0.258469 +vt 0.383862 0.282946 +vt 0.386127 0.307423 +vt 0.168090 0.204296 +vt 0.168085 0.208982 +vt 0.269825 0.307987 +vt 0.167932 0.332771 +vt 0.161095 0.308005 +vt 0.198967 0.982092 +vt 0.259720 0.622401 +vt 0.257399 0.593897 +vt 0.017122 0.702239 +vt 0.212854 0.973483 +vt 0.270626 0.632630 +vt 0.254854 0.632630 +vt 0.188062 0.971863 +vt 0.641523 0.317928 +vt 0.701339 0.263404 +vt 0.676562 0.317928 +vt 0.701339 0.295343 +vt 0.676562 0.240819 +vt 0.700264 0.295156 +vt 0.675487 0.317741 +vt 0.700264 0.263217 +vt 0.675487 0.240632 +vt 0.640447 0.240632 +vt 0.195221 0.204178 +vt 0.235224 0.204226 +vt 0.195951 0.204330 +vt 0.263006 0.337098 +vt 0.167963 0.204143 +vt 0.832200 0.864006 +vt 0.912009 0.936753 +vt 0.832200 0.906620 +vt 0.865258 0.936753 +vt 0.945066 0.906620 +vt 0.269873 0.233380 +vt 0.392206 0.332507 +vt 0.270044 0.233865 +vt 0.391942 0.210125 +vt 0.415153 0.209574 +vt 0.411961 0.258534 +vt 0.391823 0.209516 +vt 0.913766 0.886319 +vt 0.867015 0.880759 +vt 0.867015 0.886319 +vt 0.833957 0.880759 +vt 0.833957 0.886319 +vt 0.923543 0.858371 +vt 0.890485 0.852812 +vt 0.890485 0.858371 +vt 0.843734 0.852812 +vt 0.843734 0.858371 +vt 0.945708 0.895329 +vt 0.912650 0.889769 +vt 0.912650 0.895329 +vt 0.865900 0.889769 +vt 0.865900 0.895329 +vt 0.832842 0.889769 +vt 0.832842 0.895329 +vt 0.946824 0.886319 +vt 0.913766 0.880759 +vt 0.923543 0.852812 +vt 0.945708 0.889769 +vt 0.946824 0.880759 +usemtl None +s off +f 116/1 107/2 108/3 +f 107/2 114/4 106/5 +f 106/5 113/6 105/7 +f 105/7 120/8 112/9 +f 112/9 119/10 111/11 +f 111/11 118/12 110/13 +f 110/13 117/14 109/15 +f 115/16 107/2 116/1 +f 115/16 114/4 107/2 +f 114/4 113/6 106/5 +f 113/6 120/8 105/7 +f 120/8 119/10 112/9 +f 119/10 118/12 111/11 +f 118/12 117/14 110/13 +s 1 +f 9/17 10/18 2/19 +f 10/20 11/21 3/22 +f 53/23 62/24 196/25 +f 199/26 54/27 53/28 +f 61/29 60/30 198/31 +f 62/24 61/32 197/33 +f 7/34 15/35 16/36 +f 8/37 16/38 9/17 +f 9/17 17/39 18/40 +f 18/41 19/42 11/21 +f 200/43 196/44 191/45 +f 199/26 200/46 195/47 +f 197/48 198/31 193/49 +f 196/44 197/50 192/51 +f 15/35 23/52 24/53 +f 24/54 17/39 9/17 +f 25/55 26/56 18/57 +f 26/58 27/59 19/42 +f 195/60 191/45 186/61 +f 194/62 195/47 190/63 +f 187/64 192/65 193/49 +f 191/45 192/51 187/66 +f 23/52 31/67 32/68 +f 32/69 25/55 17/70 +f 25/55 33/71 34/72 +f 34/73 35/74 27/59 +f 190/75 186/61 12/76 +f 189/77 190/63 185/78 +f 6/79 187/64 188/80 +f 186/61 187/66 6/81 +f 39/82 40/83 32/68 +f 40/84 33/71 25/55 +f 41/85 42/86 34/87 +f 34/73 42/88 43/89 +f 185/90 12/91 22/92 +f 14/93 4/94 185/95 +f 6/79 5/96 20/97 +f 12/91 6/98 21/99 +f 47/100 48/101 40/83 +f 48/102 41/85 33/103 +f 49/104 50/105 42/86 +f 42/88 50/106 51/107 +f 13/108 22/92 37/109 +f 29/110 14/111 13/112 +f 21/113 20/97 30/114 +f 37/109 22/92 21/99 +f 55/115 56/116 48/101 +f 56/117 49/104 41/85 +f 57/118 58/119 50/105 +f 58/120 59/121 51/107 +f 28/122 37/123 52/124 +f 29/110 28/125 38/126 +f 36/127 30/114 45/128 +f 37/123 36/129 46/130 +f 63/131 64/132 56/116 +f 64/133 57/118 49/104 +f 1/134 2/19 58/135 +f 2/136 3/22 59/121 +f 53/23 38/137 52/124 +f 54/27 44/138 38/126 +f 46/139 45/128 60/30 +f 52/124 46/130 61/32 +f 7/34 8/140 64/132 +f 8/37 1/134 57/141 +f 74/142 76/143 75/144 +f 68/145 75/146 76/147 +f 69/148 76/147 77/149 +f 70/150 77/149 78/151 +f 71/152 78/151 79/153 +f 72/154 79/153 80/155 +f 65/156 80/155 73/157 +f 66/158 73/157 74/159 +f 66/158 75/146 67/160 +f 90/161 96/162 89/163 +f 72/164 81/165 88/166 +f 71/167 88/168 87/169 +f 86/170 125/171 147/172 +f 69/173 86/170 85/174 +f 68/175 85/176 84/177 +f 67/178 84/177 83/179 +f 66/180 83/179 82/181 +f 65/182 82/183 81/184 +f 98/185 104/186 97/187 +f 111/188 130/189 112/190 +f 112/190 124/191 105/192 +f 105/192 134/193 106/194 +f 106/195 138/196 107/197 +f 107/197 142/198 108/199 +f 142/198 109/200 108/199 +f 109/201 150/202 110/203 +f 151/204 129/205 152/206 +f 160/207 118/208 156/209 +f 160/207 116/210 117/211 +f 168/212 116/210 164/213 +f 168/214 114/215 115/216 +f 172/217 113/218 114/215 +f 176/219 120/220 113/221 +f 184/222 120/220 180/223 +f 184/222 118/224 119/225 +f 125/226 88/168 127/227 +f 127/227 81/184 121/228 +f 128/229 121/228 122/230 +f 129/205 122/230 123/231 +f 130/189 123/231 124/191 +f 121/228 82/183 131/232 +f 122/230 131/232 132/233 +f 123/231 132/233 133/234 +f 124/191 133/234 134/193 +f 131/235 83/179 135/236 +f 132/237 135/236 136/238 +f 133/239 136/238 137/240 +f 134/241 137/240 138/196 +f 135/236 84/177 139/242 +f 136/238 139/242 140/243 +f 137/240 140/243 141/244 +f 138/196 141/244 142/198 +f 139/242 85/176 143/245 +f 140/246 143/247 144/248 +f 141/249 144/248 145/250 +f 142/251 145/250 146/252 +f 85/174 147/172 143/247 +f 144/248 147/172 148/253 +f 145/250 148/253 149/254 +f 146/252 149/254 150/202 +f 149/254 151/255 152/256 +f 125/226 128/229 151/204 +f 94/257 157/258 153/259 +f 153/259 158/260 154/261 +f 154/261 159/262 155/263 +f 155/263 160/207 156/209 +f 93/264 161/265 157/258 +f 157/258 162/266 158/260 +f 158/260 163/267 159/262 +f 159/262 164/213 160/207 +f 92/268 165/269 161/265 +f 161/265 166/270 162/266 +f 162/266 167/271 163/267 +f 167/271 164/213 163/267 +f 91/272 169/273 165/274 +f 165/274 170/275 166/276 +f 166/276 171/277 167/278 +f 167/278 172/217 168/214 +f 90/279 173/280 169/273 +f 173/280 170/275 169/273 +f 170/275 175/281 171/277 +f 171/277 176/282 172/217 +f 89/283 177/284 173/285 +f 177/284 174/286 173/285 +f 174/286 179/287 175/288 +f 175/288 180/223 176/219 +f 96/289 181/290 177/284 +f 177/284 182/291 178/292 +f 178/292 183/293 179/287 +f 183/293 180/223 179/287 +f 95/294 153/295 181/290 +f 181/290 154/296 182/291 +f 182/291 155/297 183/293 +f 183/293 156/298 184/222 +f 86/170 71/299 87/300 +f 148/253 125/171 151/255 +f 152/206 130/189 126/301 +f 111/302 150/202 126/303 +f 150/202 152/256 126/303 +f 116/1 109/15 117/14 +f 1/134 9/17 2/19 +f 2/136 10/20 3/22 +f 200/304 53/23 196/25 +f 200/46 199/26 53/28 +f 197/48 61/29 198/31 +f 196/25 62/24 197/33 +f 8/140 7/34 16/36 +f 1/134 8/37 9/17 +f 10/18 9/17 18/40 +f 10/20 18/41 11/21 +f 195/60 200/43 191/45 +f 194/62 199/26 195/47 +f 192/65 197/48 193/49 +f 191/45 196/44 192/51 +f 16/36 15/35 24/53 +f 16/38 24/54 9/17 +f 17/70 25/55 18/57 +f 18/41 26/58 19/42 +f 190/75 195/60 186/61 +f 189/77 194/62 190/63 +f 188/80 187/64 193/49 +f 186/61 191/45 187/66 +f 24/53 23/52 32/68 +f 24/305 32/69 17/70 +f 26/56 25/55 34/72 +f 26/58 34/73 27/59 +f 185/306 190/75 12/76 +f 4/307 189/77 185/78 +f 5/96 6/79 188/80 +f 12/76 186/61 6/81 +f 31/67 39/82 32/68 +f 32/69 40/84 25/55 +f 33/103 41/85 34/87 +f 35/74 34/73 43/89 +f 13/108 185/90 22/92 +f 13/112 14/111 185/78 +f 21/113 6/79 20/97 +f 22/92 12/91 21/99 +f 39/82 47/100 40/83 +f 40/308 48/102 33/103 +f 41/85 49/104 42/86 +f 43/89 42/88 51/107 +f 28/309 13/108 37/109 +f 28/125 29/110 13/112 +f 36/127 21/113 30/114 +f 36/310 37/109 21/99 +f 47/100 55/115 48/101 +f 48/102 56/117 41/85 +f 49/104 57/118 50/105 +f 50/106 58/120 51/107 +f 38/137 28/122 52/124 +f 44/138 29/110 38/126 +f 46/139 36/127 45/128 +f 52/124 37/123 46/130 +f 55/115 63/131 56/116 +f 56/117 64/133 49/104 +f 57/141 1/134 58/135 +f 58/120 2/136 59/121 +f 62/24 53/23 52/124 +f 53/28 54/27 38/126 +f 61/29 46/139 60/30 +f 62/24 52/124 61/32 +f 63/131 7/34 64/132 +f 64/311 8/37 57/141 +f 74/142 73/312 78/313 +f 80/314 79/315 73/312 +f 78/313 77/316 74/142 +f 67/160 75/146 68/145 +f 73/312 79/315 78/313 +f 68/145 76/147 69/148 +f 74/142 77/316 76/143 +f 69/148 77/149 70/150 +f 70/150 78/151 71/152 +f 71/152 79/153 72/154 +f 72/154 80/155 65/156 +f 65/156 73/157 66/158 +f 74/159 75/146 66/158 +f 92/317 90/161 91/318 +f 92/317 93/319 90/161 +f 96/162 94/320 95/321 +f 65/322 81/165 72/164 +f 72/323 88/168 71/167 +f 90/161 94/320 96/162 +f 90/161 93/319 94/320 +f 87/300 125/171 86/170 +f 70/324 86/170 69/173 +f 69/325 85/176 68/175 +f 68/175 84/177 67/178 +f 67/178 83/179 66/180 +f 66/326 82/183 65/182 +f 98/185 99/327 102/328 +f 102/328 100/329 101/330 +f 104/186 102/328 103/331 +f 98/185 102/328 104/186 +f 102/328 99/327 100/329 +f 126/301 130/189 111/188 +f 130/189 124/191 112/190 +f 124/191 134/193 105/192 +f 134/241 138/196 106/195 +f 138/196 142/198 107/197 +f 146/332 109/200 142/198 +f 146/252 150/202 109/201 +f 128/229 129/205 151/204 +f 117/211 118/208 160/207 +f 164/213 116/210 160/207 +f 115/333 116/210 168/212 +f 172/217 114/215 168/214 +f 176/282 113/218 172/217 +f 180/223 120/220 176/219 +f 119/225 120/220 184/222 +f 156/298 118/224 184/222 +f 87/169 88/168 125/226 +f 88/168 81/184 127/227 +f 127/227 121/228 128/229 +f 128/229 122/230 129/205 +f 129/205 123/231 130/189 +f 81/184 82/183 121/228 +f 121/228 131/232 122/230 +f 122/230 132/233 123/231 +f 123/231 133/234 124/191 +f 82/181 83/179 131/235 +f 131/235 135/236 132/237 +f 132/237 136/238 133/239 +f 133/239 137/240 134/241 +f 83/179 84/177 135/236 +f 135/236 139/242 136/238 +f 136/238 140/243 137/240 +f 137/240 141/244 138/196 +f 84/177 85/176 139/242 +f 139/334 143/247 140/246 +f 140/246 144/248 141/249 +f 141/249 145/250 142/251 +f 86/170 147/172 85/174 +f 143/247 147/172 144/248 +f 144/248 148/253 145/250 +f 145/250 149/254 146/252 +f 148/253 151/255 149/254 +f 127/227 128/229 125/226 +f 93/264 157/258 94/257 +f 157/258 158/260 153/259 +f 158/260 159/262 154/261 +f 159/262 160/207 155/263 +f 92/268 161/265 93/264 +f 161/265 162/266 157/258 +f 162/266 163/267 158/260 +f 163/267 164/213 159/262 +f 91/335 165/269 92/268 +f 165/269 166/270 161/265 +f 166/270 167/271 162/266 +f 168/212 164/213 167/271 +f 90/279 169/273 91/272 +f 169/273 170/275 165/274 +f 170/275 171/277 166/276 +f 171/277 172/217 167/278 +f 89/336 173/280 90/279 +f 174/337 170/275 173/280 +f 174/337 175/281 170/275 +f 175/281 176/282 171/277 +f 96/289 177/284 89/283 +f 178/292 174/286 177/284 +f 178/292 179/287 174/286 +f 179/287 180/223 175/288 +f 95/294 181/290 96/289 +f 181/290 182/291 177/284 +f 182/291 183/293 178/292 +f 184/222 180/223 183/293 +f 94/338 153/295 95/294 +f 153/295 154/296 181/290 +f 154/296 155/297 182/291 +f 155/297 156/298 183/293 +f 70/324 71/299 86/170 +f 147/172 125/171 148/253 +f 129/205 130/189 152/206 +f 110/203 150/202 111/302 +f 149/254 152/256 150/202 +f 108/3 109/15 116/1 +f 105/339 104/340 112/341 +f 112/341 103/342 111/343 +f 111/344 102/345 110/346 +f 110/346 101/347 109/348 +f 109/349 100/350 108/351 +f 108/351 99/352 107/353 +f 107/353 98/354 106/355 +f 106/356 97/357 105/339 +f 97/357 104/340 105/339 +f 104/340 103/342 112/341 +f 103/358 102/345 111/344 +f 102/345 101/347 110/346 +f 101/359 100/350 109/349 +f 100/350 99/352 108/351 +f 99/352 98/354 107/353 +f 98/360 97/357 106/356 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelFinished.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelFinished.png new file mode 100644 index 0000000000000000000000000000000000000000..e8937e2fa4f53bfa0ba3a0e1c11c88925a944a23 GIT binary patch literal 42880 zcmV*0KzYB3P)`aKX0#o`)+w1sA=c zkU}(xDga$o_vXzhCU-xBjmm}j%?go_kc

Kj)a5>aYL*tEvC(f1SigU>b$H4t7(e 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 W;E1d**R;3*0000;?#s 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 tdKvp`HS-;`;RE_##1yl7<>e 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid6.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/BarrelLid6.png new file mode 100644 index 0000000000000000000000000000000000000000..c076f06380c8314a7d3e4d2a054e4998dbf24b08 GIT binary patch literal 3352 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 i>pMT6;B*UY3;z$0FhXsM;PSKp0000F)P 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Battleaxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Battleaxe.png new file mode 100644 index 0000000000000000000000000000000000000000..a21bae4d93ab60805416b9efff1a35faf85d7ffc GIT binary patch literal 1584 zcmV-02G9A4P)}f9IUJ`IZZ9q2aPYGIWPnAb5o=cmO0GV0K+N?K?DTyl6MG>54}H zsjq-o!3LoY3s6y8N}H6#xADxG!vY&QBah=aGf8anU)es#p7VX@fBh_2a{KCwTgH+G z+pF;0-I}`Ro%8^Y6qH4$-{-Y=^S?E@>;$+K52H1fiF5Z@Cc!46;eqE?j;}2{0k-Qw zI^f0rA-p?%&zs(W{mvV_Y9Hy_N+G=SQQ5&Eu!SOr!0L4 zFdPsM2FNtY4*`)PjYcO4Qd+A;fO0DgQ_b%$_H*~VI_mM~!Qb?v0dZI3TNT^#H&vjQT3D&AE^|cL-dV~B#Y1!yh zau}r;^lIgR!@g!1M@X5U0}uko7IeCrG-b6ypyo-cUX?*VzYj=Bky3$3ahw&a0zVHo z|9x>|BX`eJy$1FgY(giqw)~yo8SRRI|2qNJ_V)Joz~{?$@W+oIiz^SfBH)UED+11H z3n!8=49&F9_xAQg5Cpm3^L^h0K_H3(u)V!)&W(UD42Q=%X%IqSj2VMJwto_+@B08I zZ~dYOuucH{Z!0~8s4Uny%uMr!BFQL}fUJuvrO;Y00-P`m2Pcs>FB!h?-wJ}@m(mCb z!%#wIXa;t7chB-1SIYVG?IamF>mLL`@JHbUWN+OVleF9IGfj+P7=8?prfHF$`_%XS zLc(U|wVW0F$fBj_1G2ZjNUTrG@XcoPw@XjJDBBkXei=K#&Ut_@G7l70Hpc|i#!XF` zcKi12=+fqZ(e3M^emGOg41nV}Zo$={SOSbOs_f_7xpU`o5s*!QWmvP>JodiTYF!=z z#)msir?yBKG@DIPBnc;Vi>G$Yi-^q;3GvDbBH2% zqmUDm-KQ}|wOTEdQrx?Duk>;}br_nr0V;BCALoT9Po5Yd1X^o$c6QFSBNg)`m-7@W zW_jX+2M^LXj%6IjpFVo@=*J=yA;BfJSwu`$lu{+JMGlxPcT+q}1VLct4UcmVfkkg+ zO3ZEqLGX75d{$qasUXi|rF+0M(8idw-EN;$Lf=e+&1qcBNG)y#LGbH^mBAd~p8-FN z-)BToxrpb?$m-#U2!JnxAo%V=3CQ01?(Qy1oo-IbR*qBD_HQT1D7_TREbvM2N-6gC z_D&6cnvMTFDPhzuuN6L{6h0>PlQLYl@L{NEQFNl5{lq0UYXqJ$z@N8mbe#o3&n)R9>>Gx<2+FHdU)rM;2I*OEDqXjKilV~6`@aA6w7$MfJupfI(O^JoB)xtg3ym}>S|=Bx2z`^cP#OsmlxxxL z4~R7!bh;e&hP>QAJehzpMA2E(T^S@)OaeNkY9(CXY;bL@fuj;`G%EQ7j7wnAqUb#B z>fO6{3w>rU5h$gQZi7zu2-{LrYa0w_V3S$RzD)4VW>ZXhg4UW=t5ujc*q(#qNMa2- z7Cd`(fHnrDDzmG=X++Vo;?4Br%E6SVogzxOr_2Wg;9)o?HfJJ-lepV=u^( zKK6t~)!|_jBSngEsu&qzTOP)8*nj;JHs(--eBWOm2^po{_Gy)-kz#Dx?Y0p@$WiAi zgCIDj2yMkLsal4E0aVffiBMQx6*-J}>TR7}5<4$DiI6-|^h5EQs;f9S8qhyFqS2^e iJ2n`_uUwz{TmJx)43;QM?pp2u0000^a>*>s z4>>v!kK@k8S~(=@9BKT1T)5`@&l&x94}AP182#1bcEioJ>H!M_US^|nr&Se{j93rZC@+l@Z!qdJWcyc9AJg;m!<~=U9}CZw zpOF+5&VRuxa7EKw-?O({XLwBy5X;eOo}LxUuyn?Ssm|FOB`%vxo7wq!#)PVtBv*#x z!QMQbyH+lY)M^x)E)?kDX1|wV#}By=zh+C9^)B6bx_YO1+oYLp>}w2PXEl|kW^AjT zw>xoX;HxG9RdspKmeQ{c!SWL7{ZmfcGAL?rAKb}%XmT z*%uy~Hf3oFmw?*A+x-14Qvy!Ky7LQsJ~D^NiZxBBe0y}rrzuf!?rc4ENwb(VoF{cU zMY~)qsIiJax!oZ!Y3)L3<|qxnzYg|iEu!Pu8?;5wNzU>6Qg=k`!IhScM<3b#XVB^3 V%kO7wv<7AX22WQ%mvv4FO#uBGbE5zN literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Battleaxev3.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Battleaxev3.obj new file mode 100644 index 00000000..ecedad52 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Battleaxev3.obj @@ -0,0 +1,541 @@ +# Blender v2.72 (sub 0) OBJ File: 'Battleaxe.blend' +# www.blender.org +mtllib Battleaxe.mtl +o Cylinder +v 0.044109 5.064787 0.101411 +v 0.044108 -1.074345 0.101411 +v 0.119513 5.064787 0.027312 +v 0.119512 -1.074345 0.027311 +v 0.120435 5.064787 -0.078403 +v 0.120435 -1.074345 -0.078404 +v 0.046336 5.064787 -0.153807 +v 0.046336 -1.074345 -0.153808 +v -0.059379 5.064787 -0.154729 +v -0.059379 -1.074345 -0.154730 +v -0.134783 5.064787 -0.080630 +v -0.134783 -1.074345 -0.080631 +v -0.135706 5.064787 0.025085 +v -0.135706 -1.074345 0.025084 +v -0.061606 5.064787 0.100489 +v -0.061606 -1.074345 0.100488 +v -0.679664 5.784341 -0.047840 +v -0.679664 5.784341 0.047840 +v -0.576239 5.487967 -0.047840 +v -0.576239 5.487967 0.047840 +v -0.361899 5.127520 -0.047840 +v -0.361899 5.127520 0.047840 +v -0.025689 4.927773 -0.066943 +v -0.025689 4.927773 0.068930 +v -1.256679 5.167025 -0.047840 +v -1.256679 5.167025 0.047840 +v -1.099140 5.491448 -0.047840 +v -1.099140 5.491448 0.047840 +v -0.893151 5.708220 -0.047840 +v -0.893151 5.708220 0.047840 +v -0.664536 5.804076 0.000000 +v -0.576239 5.487967 0.000000 +v -0.361899 5.127520 0.000000 +v -1.393536 5.227815 0.000000 +v -1.185223 5.567024 0.000000 +v -0.925103 5.775472 0.000000 +v -0.679664 3.784341 -0.047840 +v -0.679664 3.784341 0.047840 +v -0.576239 4.080715 -0.047840 +v -0.576239 4.080715 0.047840 +v -0.361899 4.441162 -0.047840 +v -0.361899 4.441162 0.047840 +v -0.025689 4.640556 -0.066943 +v -0.025689 4.640556 0.068930 +v -1.332799 4.784341 -0.047840 +v -1.332799 4.784341 0.047840 +v -1.256679 4.401657 -0.047840 +v -1.256679 4.401657 0.047840 +v -1.099140 4.077234 -0.047840 +v -1.099140 4.077234 0.047840 +v -0.893151 3.860461 -0.047840 +v -0.893151 3.860461 0.047840 +v -0.664536 3.764606 0.000000 +v -0.576239 4.080715 0.000000 +v -0.361899 4.441162 0.000000 +v -1.522297 4.784341 0.000000 +v -1.393536 4.340867 0.000000 +v -1.185223 4.001658 0.000000 +v -0.925103 3.793210 0.000000 +v 0.679664 5.784341 -0.047840 +v 0.679664 5.784341 0.047840 +v 0.576239 5.487967 -0.047840 +v 0.576239 5.487967 0.047840 +v 0.361899 5.127520 -0.047840 +v 0.361899 5.127520 0.047840 +v 0.024811 4.927773 -0.066943 +v 0.024811 4.927773 0.068930 +v 1.256679 5.167025 -0.047840 +v 1.256679 5.167025 0.047840 +v 1.099140 5.491448 -0.047840 +v 1.099140 5.491448 0.047840 +v 0.893151 5.708220 -0.047840 +v 0.893151 5.708220 0.047840 +v 0.664536 5.804076 0.000000 +v 0.576239 5.487967 0.000000 +v 0.361899 5.127520 0.000000 +v 1.393536 5.227815 0.000000 +v 1.185223 5.567024 0.000000 +v 0.925103 5.775472 0.000000 +v 0.679664 3.784341 -0.047840 +v 0.679664 3.784341 0.047840 +v 0.576239 4.080715 -0.047840 +v 0.576239 4.080715 0.047840 +v 0.361899 4.441162 -0.047840 +v 0.361899 4.441162 0.047840 +v 0.024811 4.640556 -0.066943 +v 0.024811 4.640556 0.068930 +v 1.332799 4.784341 -0.047840 +v 1.332799 4.784341 0.047840 +v 1.256679 4.401657 -0.047840 +v 1.256679 4.401657 0.047840 +v 1.099140 4.077234 -0.047840 +v 1.099140 4.077234 0.047840 +v 0.893151 3.860461 -0.047840 +v 0.893151 3.860461 0.047840 +v 0.664536 3.764606 0.000000 +v 0.576239 4.080715 0.000000 +v 0.361899 4.441162 0.000000 +v 1.522297 4.784341 0.000000 +v 1.393536 4.340867 0.000000 +v 1.185223 4.001658 0.000000 +v 0.925103 3.793210 0.000000 +v -0.040463 0.153481 0.100673 +v -0.019320 1.381308 0.100857 +v 0.001823 2.609135 0.101042 +v 0.022966 3.836961 0.101227 +v 0.044109 4.506685 0.101411 +v 0.044109 3.948582 0.101411 +v 0.044108 3.390479 0.101411 +v 0.044108 2.832376 0.101411 +v 0.044108 2.274273 0.101411 +v 0.044108 1.716170 0.101411 +v 0.044108 1.158067 0.101411 +v 0.044108 0.599964 0.101411 +v 0.044108 0.041861 0.101411 +v 0.044108 -0.516243 0.101411 +vt 0.974946 0.403941 +vt 0.963822 0.400523 +vt 0.963812 0.349137 +vt 0.963822 0.286641 +vt 0.974940 0.286637 +vt 0.057794 0.569925 +vt 0.093378 0.550569 +vt 0.160060 0.596410 +vt 0.234055 0.625773 +vt 0.228237 0.645154 +vt 0.663023 0.709095 +vt 0.652862 0.672868 +vt 0.663023 0.668602 +vt 0.302412 0.635104 +vt 0.305618 0.647790 +vt 0.974930 0.349132 +vt 0.986047 0.349128 +vt 0.986057 0.286632 +vt 0.430376 0.417314 +vt 0.515264 0.368332 +vt 0.532638 0.390825 +vt 0.600817 0.342083 +vt 0.674989 0.352130 +vt 0.678198 0.339446 +vt 0.731044 0.362052 +vt 0.606633 0.361462 +vt 0.465957 0.436667 +vt 0.695255 0.487751 +vt 0.974946 0.424747 +vt 0.974930 0.479555 +vt 0.963812 0.479551 +vt 0.974940 0.542051 +vt 0.963822 0.542047 +vt 0.208344 0.668596 +vt 0.219461 0.668596 +vt 0.223900 0.726896 +vt 0.021263 0.494640 +vt 0.055284 0.489178 +vt 0.013943 0.425838 +vt 0.040454 0.427634 +vt 0.586928 0.709095 +vt 0.576766 0.704829 +vt 0.586928 0.668602 +vt 0.034252 0.370065 +vt 0.049459 0.376223 +vt 0.986047 0.479559 +vt 0.986057 0.542055 +vt 0.148421 0.668596 +vt 0.159539 0.668596 +vt 0.164440 0.726896 +vt 0.427864 0.498059 +vt 0.393847 0.492599 +vt 0.413036 0.559603 +vt 0.386529 0.561401 +vt 0.624976 0.709095 +vt 0.614814 0.672868 +vt 0.624976 0.668602 +vt 0.422043 0.611014 +vt 0.406840 0.617174 +vt 0.139121 0.374713 +vt 0.228714 0.403320 +vt 0.974946 0.265826 +vt 0.974930 0.211018 +vt 0.986047 0.211013 +vt 0.974940 0.148522 +vt 0.986057 0.148518 +vt 0.430506 0.088147 +vt 0.515438 0.039207 +vt 0.532795 0.061711 +vt 0.601014 0.013001 +vt 0.606816 0.032385 +vt 0.396690 0.709102 +vt 0.386529 0.704835 +vt 0.396690 0.668602 +vt 0.678398 0.010403 +vt 0.675181 0.023087 +vt 0.963812 0.211022 +vt 0.963822 0.148526 +vt 0.160217 0.267328 +vt 0.142856 0.289834 +vt 0.057923 0.240896 +vt 0.234238 0.296653 +vt 0.228434 0.316039 +vt 0.434738 0.709102 +vt 0.424576 0.672869 +vt 0.434738 0.668602 +vt 0.302603 0.305950 +vt 0.305818 0.318637 +vt 0.055344 0.160149 +vt 0.139078 0.045641 +vt 0.228697 0.074204 +vt 0.974946 0.010403 +vt 0.986057 0.013829 +vt 0.986047 0.065216 +vt 0.986057 0.127712 +vt 0.974940 0.127707 +vt 0.029500 0.668596 +vt 0.040617 0.668596 +vt 0.045518 0.727034 +vt 0.466073 0.107520 +vt 0.427925 0.168892 +vt 0.413041 0.230429 +vt 0.386529 0.232212 +vt 0.510833 0.709102 +vt 0.500671 0.672869 +vt 0.510833 0.668602 +vt 0.422001 0.281844 +vt 0.406789 0.287996 +vt 0.974930 0.065211 +vt 0.963812 0.065207 +vt 0.963822 0.127703 +vt 0.089422 0.668596 +vt 0.100539 0.668596 +vt 0.104979 0.727034 +vt 0.021324 0.165629 +vt 0.013943 0.096831 +vt 0.049418 0.047197 +vt 0.034202 0.041048 +vt 0.079189 0.010403 +vt 0.040459 0.098612 +vt 0.704483 0.086330 +vt 0.142683 0.618906 +vt 0.358463 0.625183 +vt 0.986057 0.400515 +vt 0.538719 0.704829 +vt 0.548880 0.668602 +vt 0.548880 0.709095 +vt 0.725498 0.363270 +vt 0.704348 0.415357 +vt 0.511705 0.612523 +vt 0.451712 0.643484 +vt 0.731044 0.550076 +vt 0.691726 0.590317 +vt 0.601297 0.583914 +vt 0.963822 0.428164 +vt 0.192326 0.726896 +vt 0.197227 0.668596 +vt 0.079266 0.339443 +vt 0.986057 0.428173 +vt 0.132865 0.726896 +vt 0.137304 0.668596 +vt 0.451854 0.647796 +vt 0.322674 0.499482 +vt 0.358463 0.437156 +vt 0.331770 0.571876 +vt 0.352921 0.623963 +vt 0.319144 0.396916 +vt 0.079127 0.343753 +vt 0.986057 0.262400 +vt 0.731224 0.033036 +vt 0.963822 0.262409 +vt 0.093493 0.221521 +vt 0.358643 0.296003 +vt 0.322744 0.170319 +vt 0.358643 0.107885 +vt 0.331904 0.242708 +vt 0.353102 0.294784 +vt 0.319287 0.067664 +vt 0.079056 0.014711 +vt 0.013943 0.727034 +vt 0.018382 0.668596 +vt 0.393909 0.163414 +vt 0.451776 0.318639 +vt 0.963822 0.013821 +vt 0.073404 0.727034 +vt 0.078305 0.668596 +vt 0.462624 0.704835 +vt 0.472785 0.668602 +vt 0.472785 0.709102 +vt 0.725680 0.034253 +vt 0.601280 0.254835 +vt 0.511662 0.283399 +vt 0.731224 0.221152 +vt 0.691869 0.261373 +vt 0.695325 0.158718 +vt 0.451641 0.314329 +vt 0.768808 0.989597 +vt 0.759110 0.989597 +vt 0.759110 0.010403 +vt 0.861469 0.010403 +vt 0.875066 0.010403 +vt 0.875067 0.989597 +vt 0.884755 0.010403 +vt 0.884755 0.989597 +vt 0.810291 0.010403 +vt 0.823888 0.010403 +vt 0.823888 0.989597 +vt 0.833583 0.010403 +vt 0.833583 0.989597 +vt 0.935926 0.989597 +vt 0.922329 0.989597 +vt 0.922329 0.010403 +vt 0.312500 0.685915 +vt 0.312500 0.675769 +vt 0.322115 0.668596 +vt 0.782405 0.989597 +vt 0.768808 0.900579 +vt 0.768808 0.811562 +vt 0.768808 0.722544 +vt 0.768808 0.633526 +vt 0.768808 0.544509 +vt 0.768808 0.455491 +vt 0.768808 0.366474 +vt 0.768808 0.277456 +vt 0.768808 0.188438 +vt 0.768808 0.099421 +vt 0.768808 0.010403 +vt 0.771528 0.206242 +vt 0.774247 0.402081 +vt 0.776966 0.597919 +vt 0.779686 0.793758 +vt 0.912641 0.989597 +vt 0.912641 0.010403 +vt 0.274999 0.668596 +vt 0.284614 0.675770 +vt 0.284614 0.685915 +vt 0.861470 0.989597 +vt 0.810291 0.989597 +vt 0.935926 0.010403 +vt 0.335712 0.693088 +vt 0.322115 0.693088 +vt 0.345327 0.675769 +vt 0.345327 0.685915 +vt 0.335712 0.668596 +vt 0.782405 0.010403 +vt 0.261401 0.693088 +vt 0.261401 0.668596 +vt 0.251786 0.675770 +vt 0.251786 0.685915 +vt 0.274999 0.693088 +usemtl None +s off +f 31/1 18/2 20/3 +f 20/3 22/4 33/5 +f 56/6 46/7 26/8 +f 26/8 28/9 35/10 +f 30/11 18/12 31/13 +f 28/9 30/14 36/15 +f 31/1 32/16 19/17 +f 32/16 33/5 21/18 +f 56/19 34/20 25/21 +f 25/21 34/20 35/22 +f 29/23 36/24 31/25 +f 27/26 35/22 36/24 +f 45/27 25/21 21/28 +f 53/29 54/30 40/31 +f 55/32 42/33 40/31 +f 55/34 41/35 43/36 +f 56/6 57/37 48/38 +f 58/39 50/40 48/38 +f 53/41 38/42 52/43 +f 59/44 52/45 50/40 +f 39/46 54/30 53/29 +f 41/47 55/32 54/30 +f 33/48 22/49 24/50 +f 47/51 57/52 56/19 +f 47/51 49/53 58/54 +f 51/55 37/56 53/57 +f 49/53 51/58 59/59 +f 48/38 40/60 42/61 +f 74/62 75/63 63/64 +f 76/65 65/66 63/64 +f 99/67 77/68 69/69 +f 78/70 71/71 69/69 +f 74/72 61/73 73/74 +f 79/75 73/76 71/71 +f 62/77 75/63 74/62 +f 64/78 76/65 75/63 +f 68/79 77/80 99/81 +f 68/79 70/82 78/83 +f 72/84 60/85 74/86 +f 70/82 72/87 79/88 +f 90/89 82/90 84/91 +f 96/92 81/93 83/94 +f 83/94 85/95 98/96 +f 98/97 85/98 87/99 +f 99/67 89/100 91/101 +f 91/101 93/102 101/103 +f 95/104 81/105 96/106 +f 93/102 95/107 102/108 +f 96/92 97/109 82/110 +f 97/109 98/96 84/111 +f 76/112 64/113 66/114 +f 99/81 100/115 90/89 +f 90/89 100/115 101/116 +f 94/117 102/118 96/119 +f 92/120 101/116 102/118 +f 69/69 71/71 63/121 +f 32/16 31/1 20/3 +f 32/16 20/3 33/5 +f 34/122 56/6 26/8 +f 34/122 26/8 35/10 +f 36/15 30/14 31/123 +f 35/10 28/9 36/15 +f 17/124 31/1 19/17 +f 19/17 32/16 21/18 +f 45/27 56/19 25/21 +f 27/26 25/21 35/22 +f 17/125 29/126 31/127 +f 29/23 27/26 36/24 +f 29/23 17/128 19/129 +f 29/23 19/129 27/26 +f 54/30 55/32 40/31 +f 47/51 39/130 49/53 +f 39/130 37/131 51/58 +f 23/132 43/133 41/134 +f 41/134 47/51 45/27 +f 38/135 53/29 40/31 +f 39/130 51/58 49/53 +f 21/28 23/132 41/134 +f 25/21 19/129 21/28 +f 47/51 41/134 39/130 +f 41/134 45/27 21/28 +f 19/129 25/21 27/26 +f 44/136 42/137 55/34 +f 44/136 55/34 43/36 +f 57/37 58/39 48/38 +f 46/7 56/6 48/38 +f 59/44 53/138 52/45 +f 58/39 59/44 50/40 +f 37/139 39/46 53/29 +f 39/46 41/47 54/30 +f 23/140 21/141 33/48 +f 23/140 33/48 24/50 +f 57/52 47/51 58/54 +f 45/27 47/51 56/19 +f 59/59 51/58 53/142 +f 58/54 49/53 59/59 +f 22/143 42/61 24/144 +f 20/145 18/146 30/14 +f 75/63 76/65 63/64 +f 22/143 26/8 46/7 +f 26/8 20/145 28/9 +f 42/61 44/147 24/144 +f 52/45 40/60 50/40 +f 52/45 38/148 40/60 +f 22/143 46/7 42/61 +f 40/60 48/38 50/40 +f 61/149 74/62 63/64 +f 26/8 22/143 20/145 +f 20/145 30/14 28/9 +f 46/7 48/38 42/61 +f 89/100 99/67 69/69 +f 77/68 78/70 69/69 +f 79/75 74/150 73/76 +f 78/70 79/75 71/71 +f 60/151 62/77 74/62 +f 62/77 64/78 75/63 +f 88/152 68/79 99/81 +f 77/80 68/79 78/83 +f 79/88 72/87 74/153 +f 78/83 70/82 79/88 +f 64/154 84/91 66/155 +f 62/156 60/157 72/87 +f 97/109 83/94 98/96 +f 64/154 68/79 88/152 +f 68/79 62/156 70/82 +f 84/91 86/158 66/155 +f 94/117 82/90 92/120 +f 94/117 80/159 82/90 +f 64/154 88/152 84/91 +f 82/90 90/89 92/120 +f 97/109 96/92 83/94 +f 68/79 64/154 62/156 +f 62/156 72/87 70/82 +f 88/152 90/89 84/91 +f 86/160 84/161 98/97 +f 86/160 98/97 87/99 +f 100/162 91/101 101/103 +f 100/162 99/67 91/101 +f 102/108 95/107 96/163 +f 101/103 93/102 102/108 +f 80/164 96/92 82/110 +f 82/110 97/109 84/111 +f 67/165 65/166 76/112 +f 67/165 76/112 66/114 +f 92/120 90/89 101/116 +f 88/152 99/81 90/89 +f 80/167 94/168 96/169 +f 94/117 92/120 102/118 +f 61/170 63/121 73/76 +f 89/100 85/171 91/101 +f 93/102 83/172 95/107 +f 67/173 87/174 85/171 +f 63/121 71/71 73/76 +f 65/175 67/173 85/171 +f 93/102 91/101 83/172 +f 83/172 81/176 95/107 +f 91/101 85/171 83/172 +f 65/175 89/100 69/69 +f 65/175 85/171 89/100 +f 65/175 69/69 63/121 +s 1 +f 2/177 4/178 3/179 +f 4/180 6/181 5/182 +f 6/181 8/183 7/184 +f 8/185 10/186 9/187 +f 10/186 12/188 11/189 +f 12/190 14/191 13/192 +f 4/193 2/194 16/195 +f 16/196 2/177 116/197 +f 14/191 16/212 15/213 +f 1/214 3/215 5/216 +f 1/207 107/206 108/205 +f 3/217 4/180 5/182 +f 5/182 6/181 7/184 +f 7/218 8/185 9/187 +f 9/187 10/186 11/189 +f 11/219 12/190 13/192 +f 8/220 6/221 4/193 +f 12/222 10/223 8/220 +f 16/195 14/224 12/222 +f 15/225 16/196 103/211 +f 12/222 8/220 4/193 +f 4/193 16/195 12/222 +f 13/192 14/191 15/213 +f 1/214 9/226 15/227 +f 13/228 15/227 11/229 +f 5/216 7/230 9/226 +f 15/227 9/226 11/229 +f 1/214 5/216 9/226 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Cannon.mtl b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Cannon.mtl new file mode 100644 index 00000000..f650320b --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Cannon.mtl @@ -0,0 +1,12 @@ +# Blender MTL File: 'None' +# Material Count: 1 + +newmtl None +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.640000 0.640000 0.640000 +Ks 0.800000 0.800000 0.800000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd /home/kitsudesktop/Development/Blends/Cannon.png diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Cannon.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Cannon.obj new file mode 100644 index 00000000..69ea8cd4 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Cannon.obj @@ -0,0 +1,270 @@ +# Blender v2.71 (sub 0) OBJ File: '' +# www.blender.org +mtllib Cannon.mtl +o Cube_Cube.001 +v -0.227758 0.230880 -1.021209 +v -0.227758 -0.219120 -1.021209 +v -0.252758 -0.244120 0.853791 +v -0.252758 0.255880 -1.171209 +v -0.252758 -0.244120 -1.171209 +v -0.252758 -0.244120 -1.021209 +v 0.247242 0.255880 0.853791 +v 0.247242 -0.244120 0.853791 +v 0.222242 -0.219120 -1.021209 +v 0.222242 0.230880 -1.021209 +v -0.252758 0.255880 0.853791 +v 0.247242 0.255880 -1.021209 +v 0.247242 -0.244120 -1.021209 +v 0.247242 -0.244120 -1.171209 +v 0.247242 0.255880 -1.171209 +v -0.252758 0.255880 -1.021209 +v 0.122241 0.130880 -1.171209 +v -0.127758 0.130880 0.628791 +v 0.122241 0.130880 0.628791 +v 0.122241 -0.119120 0.628791 +v -0.103698 0.106819 0.853791 +v -0.103698 0.106819 0.928791 +v 0.098181 0.106819 0.928791 +v -0.103698 -0.095060 0.853791 +v 0.098181 -0.095060 0.853791 +v 0.098181 0.106819 0.853791 +v 0.098181 -0.095060 0.928791 +v -0.103698 -0.095060 0.928791 +v 0.402396 0.057539 0.053052 +v 0.402396 -0.048694 0.053052 +v 0.402396 -0.048694 -0.053180 +v -0.127758 -0.119120 0.628791 +v -0.413744 -0.048694 0.053052 +v -0.413744 0.057539 0.053052 +v -0.413744 0.057539 -0.053180 +v 0.402396 0.057539 -0.053180 +v -0.413744 -0.048694 -0.053180 +v -0.127758 0.130880 -1.171209 +v -0.127758 -0.119120 -1.171209 +v 0.122242 -0.119120 -1.171209 +v 0.225342 0.057539 -0.053180 +v 0.225342 0.057539 0.053052 +v 0.225342 -0.048694 -0.053180 +v 0.225342 -0.048694 0.053052 +v -0.236690 0.057539 -0.053180 +v -0.236690 -0.048694 -0.053180 +v -0.236690 -0.048694 0.053052 +v -0.236690 0.057539 0.053052 +vt 0.425000 0.440784 +vt 0.237500 0.440784 +vt 0.227083 0.005226 +vt 0.735416 0.625443 +vt 0.735416 0.451232 +vt 0.777083 0.451232 +vt 0.006250 0.005226 +vt 0.214583 0.005226 +vt 0.204167 0.440784 +vt 0.679167 0.005226 +vt 0.866667 0.005226 +vt 0.877083 0.440779 +vt 0.645833 0.440779 +vt 0.458333 0.440779 +vt 0.447917 0.005226 +vt 0.831249 0.451232 +vt 0.831249 0.625443 +vt 0.789583 0.625443 +vt 0.006250 0.994774 +vt 0.006250 0.820563 +vt 0.016667 0.829274 +vt 0.681250 0.625443 +vt 0.681250 0.451232 +vt 0.722916 0.451232 +vt 0.343750 0.625447 +vt 0.343750 0.451237 +vt 0.385416 0.451237 +vt 0.162500 0.494789 +vt 0.214583 0.451237 +vt 0.214583 0.625447 +vt 0.204167 0.986063 +vt 0.214583 0.994774 +vt 0.993750 0.423329 +vt 0.889583 0.005226 +vt 0.889583 0.423329 +vt 0.564583 0.869334 +vt 0.668750 0.451232 +vt 0.564583 0.451232 +vt 0.214583 0.820563 +vt 0.254436 0.699925 +vt 0.233603 0.699925 +vt 0.233603 0.629586 +vt 0.152475 0.758175 +vt 0.152475 0.687836 +vt 0.214583 0.635900 +vt 0.068359 0.758175 +vt 0.214583 0.810111 +vt 0.068359 0.687836 +vt 0.006250 0.810111 +vt 0.006250 0.635900 +vt 0.227083 0.619134 +vt 0.227083 0.548795 +vt 0.311200 0.548795 +vt 0.843749 0.602363 +vt 0.843749 0.532024 +vt 0.864582 0.532024 +vt 0.857619 0.706234 +vt 0.836786 0.706234 +vt 0.836786 0.635895 +vt 0.843749 0.451232 +vt 0.864582 0.451232 +vt 0.864582 0.521571 +vt 0.296445 0.701728 +vt 0.296445 0.738742 +vt 0.266936 0.738742 +vt 0.331250 0.538342 +vt 0.227083 0.451237 +vt 0.227083 0.538342 +vt 0.681250 0.745051 +vt 0.681250 0.708037 +vt 0.710759 0.708037 +vt 0.435417 0.005226 +vt 0.777083 0.625443 +vt 0.016667 0.440784 +vt 0.668750 0.440779 +vt 0.656250 0.005226 +vt 0.789583 0.451232 +vt 0.016667 0.986063 +vt 0.722916 0.625443 +vt 0.385416 0.625447 +vt 0.204167 0.829274 +vt 0.254436 0.629586 +vt 0.311200 0.619134 +vt 0.864582 0.602363 +vt 0.857619 0.635895 +vt 0.843749 0.521571 +vt 0.266936 0.701728 +vt 0.331250 0.451237 +vt 0.710759 0.745051 +vt 0.058333 0.494789 +vt 0.006250 0.451237 +vt 0.058333 0.581895 +vt 0.889583 0.433782 +vt 0.993750 0.851885 +vt 0.993750 0.433782 +vt 0.162500 0.581895 +vt 0.006250 0.625447 +vt 0.400513 0.697589 +vt 0.400513 0.635900 +vt 0.430022 0.635900 +vt 0.397916 0.585068 +vt 0.397916 0.523379 +vt 0.427425 0.523379 +vt 0.311200 0.691276 +vt 0.266936 0.691276 +vt 0.266936 0.629586 +vt 0.725514 0.697585 +vt 0.681250 0.697585 +vt 0.681250 0.635895 +vt 0.552083 0.869334 +vt 0.447917 0.451232 +vt 0.447917 0.869334 +vt 0.794777 0.697585 +vt 0.794777 0.635895 +vt 0.824286 0.635895 +vt 0.427425 0.451237 +vt 0.427425 0.512926 +vt 0.397916 0.512926 +vt 0.738014 0.635895 +vt 0.782277 0.635895 +vt 0.782277 0.697585 +vt 0.388013 0.697589 +vt 0.343750 0.697589 +vt 0.343750 0.635900 +vt 0.993750 0.005226 +vt 0.668750 0.869334 +vt 0.889583 0.851885 +vt 0.430022 0.697589 +vt 0.427425 0.585068 +vt 0.311200 0.629586 +vt 0.725514 0.635895 +vt 0.552083 0.451232 +vt 0.824286 0.697585 +vt 0.397916 0.451237 +vt 0.738014 0.697585 +vt 0.388013 0.635900 +usemtl None +s off +f 1/1 2/2 3/3 +f 4/4 5/5 6/6 +f 7/7 8/8 9/9 +f 2/10 9/11 8/12 +f 10/13 1/14 11/15 +f 12/16 13/17 14/18 +f 13/19 12/20 10/21 +f 5/22 14/23 13/24 +f 15/25 4/26 16/27 +f 17/28 15/29 14/30 +f 2/31 6/32 13/19 +f 18/33 17/34 19/35 +f 17/36 20/37 19/38 +f 10/21 12/20 16/39 +f 16/39 6/32 2/31 +f 21/40 22/41 23/42 +f 24/43 21/44 11/45 +f 25/46 24/43 3/47 +f 26/48 25/46 8/49 +f 21/44 26/48 7/50 +f 27/51 23/52 22/53 +f 25/54 26/55 23/56 +f 25/57 27/58 28/59 +f 24/60 28/61 22/62 +f 29/63 30/64 31/65 +f 32/66 19/67 20/68 +f 33/69 34/70 35/71 +f 11/72 1/1 3/3 +f 16/73 4/4 6/6 +f 10/74 7/7 9/9 +f 3/75 2/10 8/12 +f 7/76 10/13 11/15 +f 15/77 12/16 14/18 +f 9/78 13/19 10/21 +f 6/79 5/22 13/24 +f 12/80 15/25 16/27 +f 9/78 2/31 13/19 +f 1/81 10/21 16/39 +f 1/81 16/39 2/31 +f 26/82 21/40 23/42 +f 3/47 24/43 11/45 +f 8/49 25/46 3/47 +f 7/50 26/48 8/49 +f 11/45 21/44 7/50 +f 28/83 27/51 22/53 +f 27/84 25/54 23/56 +f 24/85 25/57 28/59 +f 21/86 24/60 22/62 +f 36/87 29/63 31/65 +f 18/88 19/67 32/66 +f 37/89 33/69 35/71 +f 38/90 4/91 15/29 +f 4/91 38/90 39/92 +f 20/93 39/94 32/95 +f 40/96 14/30 5/97 +f 36/98 41/99 42/100 +f 43/101 31/102 30/103 +f 42/104 44/105 30/106 +f 36/107 31/108 43/109 +f 32/110 38/111 18/112 +f 45/113 35/114 34/115 +f 37/116 46/117 47/118 +f 34/119 33/120 47/121 +f 45/122 46/123 37/124 +f 17/28 38/90 15/29 +f 40/96 17/28 14/30 +f 5/97 4/91 39/92 +f 38/125 17/34 18/33 +f 40/126 20/37 17/36 +f 40/127 39/94 20/93 +f 39/92 40/96 5/97 +f 29/128 36/98 42/100 +f 44/129 43/101 30/103 +f 29/130 42/104 30/106 +f 41/131 36/107 43/109 +f 39/132 38/111 32/110 +f 48/133 45/113 34/115 +f 33/134 37/116 47/118 +f 48/135 34/119 47/121 +f 35/136 45/122 37/124 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Cannon.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Cannon.png new file mode 100644 index 0000000000000000000000000000000000000000..616bd97d7e5ce60a447a6fac4e7cf1c36e109965 GIT binary patch literal 7463 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CannonBall.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CannonBall.png new file mode 100644 index 0000000000000000000000000000000000000000..d00bcaab10e4f80e262be72e8e41753d094e2e29 GIT binary patch literal 604 zcmV-i0;BzjP)s~OOHG<@&_zDT9UUXq z2cbcTcwZ_$@qQ6Q&qW`Bm*WmzK4b(rL7zrxjKE|>Ebau$3Su!1zBhR{iU*s(*9rTr@$2(LLl>Gig*f>EbRiX5>HPDoEK-fLKI055e~;@=eT!I|dqzq-adA zVrU=2H=b%3v8M@|>SV6)7|I3HxQRzimSNi%l1|4)_&ka4MTG-{nef;soERfKA)tO3 zokPx{O9YN<@P38f7taI@6GL<145TnK?hW_@5ykg7X~G9ufk!lBj(X@>Fb^AtZ0sbh zCcLOEn$4rld7#YL8hqSH8|Y!oP#1I|1)YbmfpGe5Ob)#4Gh~Ug4=!DZMB7<3xYOoP qPMDz{bdt1$Q=Iyw=3!!ZZ1EqRPg`6H)cDH)0000-)6-pLTjD`g?pg4gf5J+qGSl+g zufIfhr>G(X0D*9htq)9P?u!Vj3cwhH-@pIC@Zf1NzFdr_#puH^71{{C-#YKj@qop^ z1BxjxRrvB;DMD~>eHLsU^x-^JV;jNiQhwM!M>XSRF`6gnKAdeR?cTW*#Yb>!1ChsL zR23gS=N?eb7hj4}%@Be>PAy`Z)#qy9q8)H&kOBNClia-zWttDe4FCQNGQDp1+`Zf}T3K+s_LeaCe z39_MNpDe)Oq_)7`n$f<>+!m|0Eu`MGdyxv&^q_Y|F}U?Nn@`|mBqxp${1 zY;7b1D$G{^hzOsbmSd9Y|MtEe0`MQsR};F!>!Nfgc@ag#SyWgK&fT5sJ}8!R6>t&s zEV|apVoDs81HA8@_idll?jr>yYI99hSxbV5h}q6d$s(twmZNYV4w0=Xdbr@Hwc_qH z&vrQfAI(ppmRWo;r5r`}k+fG8+?{@0;_g^YaW6#^zzN)hVk&&SZhSrj)%w8Q5fPr3 zGTUGu{QR+Kk4K?>00wI@wtGLUEHn?EtFnziRr$1PGATkiZFHtzF{Qin?R}d<)5DgF zRf<47B7xgJW~iK2tR}1_lQ46{iSl@WiC`wYtoG2rX{(~j(^3(UX)zJuQVZ2&_Eq)J ziwcCZ^@k=r67*Vx+dlAsYl}($X-^ZOoE9{dOhSeF!P9g9gI!PBMKXZ28Y*MPct29~ z1l2|WsgXXMD@rjK5t##LcvL$Iha+k;oJ0)~NtH)_LNjzCxNaF(A~K7$kqOv5U6t!; zy`?0OKi@oE-~s<^jcXfIQ1dq&ss1ytPCG58Gmt!jOHuCK2>}N4lUhw?C=CxHlBK_T zwy6M*&^ZGl;C6udbg}s@7uEm7Zt%8sUe|(0uI-1Y&vtDiSWOOwg?o42_GIUEE&K~7 W7dn=Lur~7m0000^2NW4=Ks^WRf(!v${Z$pW6S}T{l62qCkOLq(GiCW0_@s}DpNDPNJxC1z)=K9I@}AI_Hg$noip zTy794m>r2Q2q%{t5Jl63Xn}Cdj$mg*gzcI3w`9@MG8^`&4giE#R42^Nl;MDAA?HgX z43V_nF`9CzeG=e+B-~D99dMt~a9kac^u`_l$!K_O-)WJFBoL*}_o(FNd^JXth)NJ| z0&M|&&OX9W$*lyMCL$`T1EPg89`MB_qpQ%6Vg#z39#-x%d`&H4CeqxIsa59b>Lx!kO3 zl=fd3g0w`|`kNgQqy?GxxShHW?OClxU7~l-`}2)~P2LFW9B7(W;H=eIbNjtAvAs_u zkv9f5ClN+?#eHVneMPr+O4FP3je(SQO=2Agub98|JDq`0@CJDU5j0=4nXxgjW#&E; zVH}@->kc+4w-N-=rW~s?&EExg#+GBVOM+-)Ms;ZI=M`{7M-Xich^GJHAhmYP7wsIu zW5L22n4JMZwBWH2cJA{)X&uuiVM@DCIp~v65+bDo6*@q^YA~)~c6GyWKOs7HyWRyz z{*;5Q3k1Q}L6q|)NG7En5r!=8^N7u54#y#@RF_A~zg^p-zkS64}H00000NkvXXu0mjf>C}$~ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanDarkOakLog.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanDarkOakLog.png new file mode 100644 index 0000000000000000000000000000000000000000..c3dc33472887deaf0bc83355c9846db3c75d720d GIT binary patch literal 1029 zcmV+g1p51lP)uRmpsftsQs)RSZ?knGz|Go`f#A~dbzv00Efe4 z2X|OI1aR8{f&Bg+q}2M%0&1CosPVxXm!*R!=|O8sWMF3OhtX7t1QGB|uD3gx3z;yY zioQ_{2=Ewi4Dh*;Y5|ZUl1MlXu#6Fz1)3Bq*KY;JLM}i-0W9MZ((bez_ zBFe0n4xc{2eJdtfhwToM&|A@NR=^&6tr-JCVH;ooCW@*eR2MWAetCYzrw1~EFV|Pd zBr_1ex&qLxXns1^nE%teS^Y0k=DhDnEH?5 zcm$@6oLylJmSt|9RXhRfQz3<>(EE>WNs1AZ$-v9U7skGW2ci%o$xMDU9t?MuZgew( zEFjkF1QdV>XsyQKHGlYz&ahte%Vf?Pm^S70^)J?!&vX_12z)qAmCJgXk|-vE0)p_K zS7Qu@!)XFI9C}s`Y)3J`?2dJT{a%bboolWMm>;78CVp9J8Td2+NTg^T8l17000q0&OwfFpQsw~z}RTerj4Im;wnNa51$RH7r zBm&m8PMZ!sz-Rn!M;SA{=pIp-uI1HuTn z-RsmynJk&3Ok+xc5t(C9gm`01hf^fF)9gWjE9=ydHrA>SMER0qjH%vDr=D?M748svc?9Lxc~dwxJ)}*Z#AlX8U#?5 zX3WhokD{{1UX}3a?%b=BOLH9OGNldLX%tp}@xCPkQx0VMD$Pk6_RSn~VQI!|aqh(_ z7RiG!s4yhKJoa4|3j}QUM{}ptFi?p;jwz}*4nk>R*IV*fRrk}|xHQ8Y+~a@eQnld5 zl!Ywv&?MkqoR_(A9u+|-<}A%uI1`sC;Oht-vhwRGaVtg=VamdFiNL*$9l^J1B$chW zd+|UZiJ%Wj2*RfinbMp?R+>AXUnTo>D*tp>wNzNb;R7Z3Y&JUhP*SvTHnB+M%dkAsjkZIubJQHPz)k0^A=m$tum z89xrf_t_a!Fg`vzw_<^85^{H>YhR@841Zi*$$r$0YH$)kC0aK(M^|)Smk_z72}yk$ zzqvX|oVj}FKy#;hz}K1lqdxRt5P^CUj=wuAI{D@r!HR`~-ijf}Ch5(ce_rc;7JRwZ zt#WhTIqX`{g(fRJt#aLyI_5ZxvO05RYvHs?@1VhjYH^?6d>_M4AM)N?zzC^KDttWa zMz%ilkL%^F@q9=da&rZh9l^(`I1S2mF}}?a{5&fE1Gb(aOP`;>mjD0&07*qoM6N<$ Ef)(Pa2LJ#7 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanLog.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanLog.obj new file mode 100644 index 00000000..cc83e107 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanLog.obj @@ -0,0 +1,50 @@ +# Blender v2.72 (sub 0) OBJ File: '' +# www.blender.org +mtllib CleanLog.mtl +o Cube +v 1.000000 -1.000000 -1.000000 +v 1.000000 -1.000000 1.000000 +v -1.000000 -1.000000 1.000000 +v -1.000000 -1.000000 -1.000000 +v 1.000000 1.000000 -0.999999 +v 0.999999 1.000000 1.000001 +v -1.000000 1.000000 1.000000 +v -1.000000 1.000000 -1.000000 +vt 0.492240 0.988260 +vt 0.492240 0.026513 +vt 0.006236 0.026513 +vt 0.492099 0.026871 +vt 0.006095 0.026871 +vt 0.006094 0.988618 +vt 0.511184 0.991087 +vt 0.512117 0.020438 +vt 0.981450 0.022493 +vt 0.995312 0.024965 +vt 0.995312 0.984154 +vt 0.509987 0.984154 +vt 0.509767 0.010566 +vt 0.998058 0.016029 +vt 0.995479 0.986666 +vt 0.997803 0.974817 +vt 0.509753 0.979599 +vt 0.507496 0.008959 +vt 0.006236 0.988260 +vt 0.492099 0.988618 +vt 0.980518 0.993143 +vt 0.509987 0.024966 +vt 0.507188 0.981203 +vt 0.995547 0.004177 +usemtl Material +s 1 +f 2/1 3/2 4/3 +f 8/4 7/5 6/6 +f 1/7 5/8 6/9 +f 2/10 6/11 7/12 +f 7/13 8/14 4/15 +f 1/16 4/17 8/18 +f 1/19 2/1 4/3 +f 5/20 8/4 6/6 +f 2/21 1/7 6/9 +f 3/22 2/10 7/12 +f 3/23 7/13 4/15 +f 5/24 1/16 8/18 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanOakLog.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CleanOakLog.png new file mode 100644 index 0000000000000000000000000000000000000000..599cf4aa33d5f8e272763d2f7de26ef70681cd6e GIT binary patch literal 1092 zcmV-K1iSl*P)lv6(v+}_Aun=+G(WZO4lCf5&F&hrl4{9G!^?i-&jJCTLZ z%!K1CGLwBcMR7X=MCkW@(9#IdEmVPb7oyIy8`m*Fl+MCTsV>}|(;ZW#8blzwdA;4} z-soRdO9q?Cvz6W009R3JsUBK{q0b z*^>6Pe*jHHqN-#SS*vyTXpW;eBbPz~o5E&>yU|_D2;Ppu8;A-7p}L7mBAUtqfv!T; zs4jMQb{SMRRSgJe;kG@hY7`->IZ`-gQGhnMDck0lK(_MwJ#bfCWJ%J1h;T&kdcSks zE+CNAkdq@$KJFKWI@v|lg7rF-&(Ff`P*fWm&2gJZC&LVt#(khP#~G;VDo~9h0tawW zR25;lz*PAC`GtHi&{h2P?F)3%T?pVq0T`}CDj%MN$fT=LUBH>c@PUYu3AZzFRjL&* zS{fCgy187R@Zoefu13+^&x3DoKd49lBa*Db)#!&Smb5}-(+$B@B0cHl5ZF^TOq7ahd zikqWq%9pQSIL}FUkx^tMrpk4{aNRGMDlUQo!eRy>BHnW#vNf^5hVvJ!V8 zvrvWS56-?T+fY1btN`l5G1Qct#b4jPzRN5k++yYR}{B2+cAlEF&CMf&P^b*~{MYaDd1bn8w)h-%($vGPKU zh@>$hiWXg9N^{KlP*iA9vf%I6W4S;}`1|{JUj2?BWChg)K+a_B8Ok8ZC5lnNLPRDt#A(%(e|WCyba&k17> z0BSXu0Vy?~S`GhNG$8w*lp8%w0$O8BmG-oiJ#7taW+k%H8la;z9R@Z84b0b<>dD>y)q z(zGibWL5$EeAQMDk?j&pXCXM~lms6y;C*$qa(gEyu$*U&#FUV|2IQf=4fHw!MpA26r4v_fY$Qqj?U1F@w@blycPhkn@TY8002ovPDHLkV1hV) B5zhbs literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CoolCrucible.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/CoolCrucible.png new file mode 100644 index 0000000000000000000000000000000000000000..b67e9ff88c5b4289e71e51f67a0b112721e561a8 GIT binary patch literal 1544 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

  • +_3iS_lClT64=}-X%Hv*rhvHvpa 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 z/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%0AI9B+h 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¬21C3yEiZ2%3m{yQP>caG9P$}Axcam`)-=a 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 a5B?ACsSvP_3jX*20000t zBf>#dH&hS3pvF8hSFVU$Yr%iH=oL;siMBIl#uvvfL8^_2iRQ_NCd|l$ zO)4w-c_nFmOXtk8jpLS487WC#4=sIN_hqX$k6ByJ+dcHW7v2EKQ)qOo3zUrA3T{fi zPq;d13PX%D8L3_wdr+6oIlnf8wMeR|*6kRpv)a@Vdd>jNrgFD;N%bie9r^~q7Q!qG zB~MD7)B?L5jOIv5R9OiZ)(FmX&@YoSlwtPf{$mcW>1gpJ#ZwylkTIXci`8fAg55tq z&v$;>C-N3R(oWq2EsAWyuFe|4GJ?4oH#-OePjHh@a|(JNl)ln* zq4x*Yb5gH^(+qv8$R;F&Nie_m3yyroWqyz`A8cr->Sm=?ztrRu*D*iXqct73cKk<# z=+B@1^^bL(MQ^L!ser&gWyFPc4@(&SzWn(tB&`r|-Y{ov#@9ca=pPM~^AP z=8`n$CvJC7K`QC_iy9?=>Y{pS$Kw32l>F-F--{(>j$J8qs6aHtJG)J&LLN#g%08i~ zazv)Zof#L%#*cpXn}2$gdis^_1D4L5!XOdT7*P-@R1#CJ$mwKGLYzw&Sqf`;M(tml zVt$N?4(MZn(yG2DzZPHF;6ozpsJ zSpn!-(F5`$9Ae~=c$^s(VG|`8r1D5A2_J*&tBPxtlkkQXqv)NPoFyqmg~$yIhB?hn z+N@Yfh#Skia-@cQ`IEg<6pm9lFhYW3QRbX9IXSGL)-fhU2P3^Or*k&0x>2@)CS|JA z&x9U>%0y&g5kuv|-}NMBfjGFck!Si!N!C0#EK_69WFchXJO;Hirc|;wsw=u@dRl2m ze%XQP&YlX7SxGg>d&ZhmCfq~0#$;x2aUNcrizzGL=#xDe#0!`EnW#Boxe>?7(Gn$9 zMxPYj@tN_gs5)stJiQ=StI8z>XDEFO`V9JT4sGO_8O705kjR9=%>%!kY^~61u)jKD zBw@scj)`fZ$;pxqQZgijQx!MCX`C&?@uEd~k-%(lHbEYP_3@FMgqjVNFHlYB?i4jV z;Hrt*g4s_BfsdCZEDjO|;Tx2mv_NP}fIu)N6(lFw=F#MSu zi6equ9`VibC9y?E2>NcM$Ru@a7u5TU6?>udimw?TkUY>?kt#@@=*U?E@%zn+J&pY^FRz;>GT{u11 zwK3YpQX9KD`)erD)r9PoJA#yonsE;&#f2VFIgkQ--m%NXk~1SQwWFgm%K5Sb-l>*2 z+dD!O??$Wv+Nq*=?BqikWurx7ov#4)>4*-*E|mGqxdd*;@Pe9Rb*F}~%!LIfremd| znvs$bd&w5L4LmwIHnKZez@l;vL#EL*A+3=<&rA)zRB+8pVM+paELBo(WIjRrfhQ$B zzvqU~GVFOJvC#X()VaEo;x!k}g2v9{;@rElhf+CM(*?9MR;PEvpBzZorN3rENu=iV z1BwTd4$KcqZg4lo`#XzYIEN$i^;dZ<%U=sFSh~Gm{qBpE@!N)=x&x^fLHcav~Yc3g(44UPjR6pj!nC zVk)v2QxcA_jD#FOY6uWDbDytD*d-(F8M8_*AHYA-%E>+}S6>)1six%mkt&&O6#Ch@ n`rx*}HE#g?@Mpgl{vYcfUCA>a4JYEP00000NkvXXu0mjfJnLq` literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/EmptyTanninCrucible.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/EmptyTanninCrucible.png new file mode 100644 index 0000000000000000000000000000000000000000..98300eba923150a4bd082a5e510d89099b824f9e GIT binary patch literal 1740 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 pAs8MFhsBh!fX1^@s6IQ*`u00004XF*Lt006O% z3;baP00006VoOIv0RI600RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_00WIlL_t(I z%T<)SmfJQIMK?eId<!4h zLJXq?C|SqLe}iK}sn~DP2lQ#u&AF_wHQ? zA#^!sgb<=EOSIN_@A>rU6Yt-@C&oyOk;~;mS(XY=-g~y&tyND?Pf|)LilV?;OI1|> z48wrdn$zh-N(tv2IcKJ6BIis>iN5cVo6V+bng-__%d+6Tr>ZKHQskV`T4SwcSr(RM z0idcXVvOXROJ%Lq0LB=)t^>eYi*pX|Jx$YKt>wp$9{{v%i*pWR4BmUGy!V2CqpoWJ zy!V6KYb^jd=T&GNM^Z`veE$3yAq3Mjky2VW za0~VJ?OS4u>x2QyvgGdW4y6>A%LT19Aq3`mUK2?v(ORRFQoMQdhRtTP9xA0sDKU;C zFJ8Q$ZClE+#9B+=_f%Cy&Y7=YzoMLTgb+BN&n(NbiWp@_r9=q9<$NaPjB}3N zZpX`)FY(?}6a^s!zJ2?4-NH0Y2q7rT5~UQ=G@-So?|WXqe$713%=3)*o*3h5_gAl8 zp$>-w#u&zNyy41hEr0&;2Y(-r#2C5XZu#}Y2b^=<-`|sS=6pW${QQg>hJnN3fRvJ) zGciVllsq4g{PpkR6;Mk&Sdcx1odpGNDtLdbaS88v}-*_K}0aKRTZ?{(_a^{zZ2SNx~Yp;U;&MSm~y4mt@I9z*DimIyk z?f2i;wKYwHG3F;Lr$>&J zDvE;reox=`7-Nu9vfXZ(=b2#`nCBU-^(s&l1qxuZ*)Y#DUDt8BT&Sw*%DPf~|Nb2z z#7{nvQeup`ZXxH4wU)MR8HRzB5=Bu^*EQ$!dEL-0tM{I1npQfMwU#emzN|QV?|FE5 rKuUQXl9cPWej8rSncZ&3JkR_CthZs9TxJ2D00000NkvXXu0mjf^D^bw literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ForgeAnvil.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ForgeAnvil.obj new file mode 100644 index 00000000..474f4a87 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ForgeAnvil.obj @@ -0,0 +1,273 @@ +# Blender v2.72 (sub 0) OBJ File: 'ForgeAnvil.blend' +# www.blender.org +mtllib ForgeAnvil.mtl + +v -0.765817 -0.018658 0.436783 +v -0.765817 -0.018658 -0.436515 +v 0.871618 -0.018658 -0.436515 +v 0.871618 -0.018658 0.436783 +v -0.765817 0.230967 0.436783 +v -0.765817 0.230967 -0.436515 +v 0.871618 0.230967 -0.436515 +v 0.871618 0.230967 0.436783 +v -0.356929 0.402611 0.218710 +v -0.356929 0.402611 -0.218442 +v 0.462730 0.402611 -0.218442 +v 0.462730 0.402611 0.218710 +v -0.356929 0.801376 0.218710 +v -0.356929 0.801376 -0.218442 +v 0.462730 0.801376 -0.218442 +v 0.462730 0.801376 0.218710 +v -0.810353 1.084937 0.547865 +v -0.810353 1.084937 -0.547597 +v 0.916153 1.084937 -0.547597 +v 0.916153 1.084937 0.547865 +v -0.810353 1.518206 0.547865 +v -0.810353 1.518206 -0.547597 +v 0.916153 1.518206 -0.547597 +v 0.916153 1.518206 0.547865 +v -1.044737 1.443538 -0.238807 +v -0.836820 1.443538 -0.281570 +v -0.836820 1.443538 0.275910 +v -1.044737 1.443538 0.233147 +v -0.836820 1.304168 0.238566 +v -1.044737 1.304168 0.201532 +v -0.836820 1.202142 0.136540 +v -1.044737 1.202142 0.115159 +v -0.836820 1.164798 -0.002830 +v -1.044737 1.164798 -0.002830 +v -0.836820 1.202142 -0.142200 +v -1.044737 1.202142 -0.120818 +v -0.836820 1.304168 -0.244225 +v -1.044737 1.304168 -0.207192 +v -1.217863 1.442533 -0.195148 +v -1.217863 1.442533 0.189489 +v -1.217863 1.328948 0.163723 +v -1.217863 1.245798 0.093330 +v -1.217863 1.215363 -0.002830 +v -1.217863 1.245798 -0.098989 +v -1.217863 1.328947 -0.169382 +v -1.370971 1.439663 -0.126585 +v -1.370971 1.439663 0.120925 +v -1.370971 1.366572 0.104345 +v -1.370971 1.313066 0.059048 +v -1.370971 1.293482 -0.002830 +v -1.370971 1.313066 -0.064707 +v -1.370971 1.366572 -0.110005 +vt 0.032098 0.122731 +vt 0.032098 0.005630 +vt 0.239615 0.005630 +vt 0.985209 0.611883 +vt 0.985209 0.728631 +vt 0.779518 0.726502 +vt 0.303813 0.122687 +vt 0.303813 0.005630 +vt 0.511330 0.005630 +vt 0.551232 0.124508 +vt 0.551232 0.007759 +vt 0.756923 0.005630 +vt 0.005703 0.737780 +vt 0.213072 0.737780 +vt 0.213072 0.942632 +vt 0.756923 0.122378 +vt 0.698701 0.199204 +vt 0.595737 0.200270 +vt 0.698701 0.385705 +vt 0.595737 0.386771 +vt 0.511330 0.122687 +vt 0.459510 0.204721 +vt 0.355632 0.204721 +vt 0.779518 0.609753 +vt 0.824023 0.533991 +vt 0.926987 0.535057 +vt 0.239615 0.122731 +vt 0.187791 0.203879 +vt 0.083913 0.203879 +vt 0.766011 0.523747 +vt 0.549131 0.525993 +vt 0.459510 0.391714 +vt 0.355632 0.391714 +vt 0.824023 0.347490 +vt 0.926987 0.348556 +vt 0.187791 0.390944 +vt 0.083913 0.390944 +vt 0.766011 0.726386 +vt 0.549131 0.728631 +vt 0.537725 0.522971 +vt 0.277417 0.522971 +vt 0.777417 0.208268 +vt 0.994297 0.210514 +vt 0.266011 0.523269 +vt 0.005703 0.523269 +vt 0.537725 0.726145 +vt 0.277417 0.726145 +vt 0.777417 0.005630 +vt 0.994297 0.007875 +vt 0.005703 0.942632 +vt 0.277417 0.737405 +vt 0.496164 0.737405 +vt 0.496164 0.994370 +vt 0.266011 0.726520 +vt 0.005703 0.726520 +vt 0.068918 0.691452 +vt 0.785186 0.855980 +vt 0.757736 0.854992 +vt 0.757914 0.789225 +vt 0.785186 0.790105 +vt 0.756077 0.739891 +vt 0.508239 0.737405 +vt 0.534570 0.742420 +vt 0.533901 0.770097 +vt 0.534570 0.797774 +vt 0.508239 0.802789 +vt 0.673747 0.806646 +vt 0.673568 0.740879 +vt 0.701018 0.739891 +vt 0.671909 0.855980 +vt 0.701018 0.805766 +vt 0.650615 0.795922 +vt 0.650470 0.742323 +vt 0.649118 0.836129 +vt 0.825995 0.739891 +vt 0.825997 0.763345 +vt 0.803147 0.777622 +vt 0.854032 0.757409 +vt 0.848847 0.777623 +vt 0.734783 0.799949 +vt 0.734637 0.853548 +vt 0.629220 0.779580 +vt 0.629126 0.745089 +vt 0.628256 0.805452 +vt 0.825999 0.799756 +vt 0.811295 0.808944 +vt 0.840702 0.808944 +vt 0.733285 0.759742 +vt 0.713387 0.816291 +vt 0.713294 0.850782 +vt 0.851466 0.834044 +vt 0.855406 0.868332 +vt 0.796592 0.868332 +vt 0.597420 0.850388 +vt 0.575474 0.749922 +vt 0.597420 0.760163 +vt 0.077792 0.626072 +vt 0.102036 0.578210 +vt 0.135153 0.560692 +vt 0.168271 0.578211 +vt 0.192515 0.626072 +vt 0.201388 0.691452 +vt 0.277417 0.994370 +vt 0.782861 0.740476 +vt 0.507570 0.770097 +vt 0.698694 0.855394 +vt 0.797958 0.757409 +vt 0.712424 0.790419 +vt 0.800532 0.834044 +vt 0.549131 0.870660 +vt 0.575474 0.860629 +vt 0.549131 0.739891 +vt 0.616850 0.834305 +vt 0.616850 0.776246 +usemtl None +s off +f 6/1 2/2 1/3 +f 7/4 3/5 2/6 +f 8/7 4/8 3/9 +f 5/10 1/11 4/12 +f 2/13 3/14 4/15 +f 8/16 12/17 9/18 +f 12/17 16/19 13/20 +f 7/21 11/22 12/23 +f 6/24 10/25 11/26 +f 5/27 9/28 10/29 +f 16/19 20/30 17/31 +f 11/22 15/32 16/33 +f 10/25 14/34 15/35 +f 9/28 13/36 14/37 +f 20/30 24/38 21/39 +f 15/32 19/40 20/41 +f 14/34 18/42 19/43 +f 13/36 17/44 18/45 +f 19/40 23/46 24/47 +f 18/42 22/48 23/49 +f 5/27 6/1 1/3 +f 6/24 7/4 2/6 +f 7/21 8/7 3/9 +f 8/16 5/10 4/12 +f 1/50 2/13 4/15 +f 5/10 8/16 9/18 +f 9/18 12/17 13/20 +f 8/7 7/21 12/23 +f 7/4 6/24 11/26 +f 6/1 5/27 10/29 +f 13/20 16/19 17/31 +f 12/23 11/22 16/33 +f 11/26 10/25 15/35 +f 10/29 9/28 14/37 +f 17/31 20/30 21/39 +f 16/33 15/32 20/41 +f 15/35 14/34 19/43 +f 14/37 13/36 18/45 +f 20/41 19/40 24/47 +f 19/43 18/42 23/49 +s 1 +f 23/51 22/52 21/53 +f 21/54 22/55 26/56 +f 27/57 28/58 30/59 +f 29/60 30/59 32/61 +f 31/62 32/63 34/64 +f 34/64 36/65 35/66 +f 38/67 25/68 26/69 +f 36/70 38/67 37/71 +f 38/67 45/72 39/73 +f 36/70 44/74 45/72 +f 34/75 43/76 44/77 +f 34/75 32/78 42/79 +f 32/61 30/59 41/80 +f 30/59 28/58 40/81 +f 45/72 52/82 46/83 +f 44/74 51/84 52/82 +f 43/76 50/85 51/86 +f 43/76 42/79 49/87 +f 42/88 41/80 48/89 +f 41/80 40/81 47/90 +f 48/91 47/92 46/93 +f 40/94 25/95 39/96 +f 18/45 37/97 26/56 +f 37/97 18/45 35/98 +f 35/98 18/45 33/99 +f 18/45 17/44 33/99 +f 33/99 17/44 31/100 +f 31/100 17/44 29/101 +f 17/44 21/54 27/102 +f 24/103 23/51 21/53 +f 27/102 21/54 26/56 +f 29/60 27/57 30/59 +f 31/104 29/60 32/61 +f 33/105 31/62 34/64 +f 33/105 34/64 35/66 +f 37/71 38/67 26/69 +f 35/106 36/70 37/71 +f 25/68 38/67 39/73 +f 38/67 36/70 45/72 +f 36/107 34/75 44/77 +f 43/76 34/75 42/79 +f 42/88 32/61 41/80 +f 41/80 30/59 40/81 +f 39/73 45/72 46/83 +f 45/72 44/74 52/82 +f 44/77 43/76 51/86 +f 50/85 43/76 49/87 +f 49/108 42/88 48/89 +f 48/89 41/80 47/90 +f 48/91 52/109 49/87 +f 50/85 49/87 51/86 +f 52/109 48/91 46/93 +f 27/110 25/95 28/111 +f 27/110 26/112 25/95 +f 49/87 52/109 51/86 +f 40/94 39/96 47/113 +f 29/101 17/44 27/102 +f 22/55 18/45 26/56 +f 39/96 46/114 47/113 +f 25/95 40/94 28/111 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ForgeAnvil.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ForgeAnvil.png new file mode 100644 index 0000000000000000000000000000000000000000..db912da32cd49cdad00f5bad00f4c499148fccce GIT binary patch literal 39487 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Heavymace.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Heavymace.obj new file mode 100644 index 00000000..3a8e0823 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Heavymace.obj @@ -0,0 +1,363 @@ +# Blender v2.72 (sub 0) OBJ File: 'Heavymace.blend' +# www.blender.org +mtllib Heavymace.mtl +o Sphere +v -0.249903 -2.256291 0.000000 +v -0.124952 -2.256291 -0.216423 +v 0.124952 -2.256291 -0.216423 +v 0.249904 -2.256291 0.000000 +v 0.124952 -2.256291 0.216423 +v -0.124952 -2.256291 0.216423 +v 0.000000 3.612764 -0.095000 +v 0.000000 3.897764 0.000000 +v 0.095000 3.612764 0.000000 +v -0.000000 3.612764 0.095000 +v -0.095000 3.612764 0.000000 +v -0.585853 2.527993 -0.095014 +v -0.826574 2.375421 -0.000014 +v -0.636710 2.608234 -0.000014 +v -0.585853 2.527993 0.094986 +v -0.534995 2.447753 -0.000014 +v 0.375403 2.527993 -0.459745 +v 0.413492 2.375421 -0.715716 +v 0.318560 2.608234 -0.551289 +v 0.210859 2.527993 -0.554745 +v 0.267702 2.447753 -0.463202 +v 0.210654 2.527993 0.554864 +v 0.413287 2.375421 0.715834 +v 0.318355 2.608234 0.551407 +v 0.375199 2.527993 0.459863 +v 0.267498 2.447753 0.463320 +v -0.259529 3.313505 -0.448885 +v -0.403071 3.404381 -0.697506 +v -0.369980 3.236468 -0.449746 +v -0.315500 3.159431 -0.545830 +v -0.205049 3.236468 -0.544969 +v -0.258581 3.313505 0.449433 +v -0.402122 3.404381 0.698054 +v -0.204100 3.236468 0.545516 +v -0.314552 3.159431 0.546377 +v -0.369032 3.236468 0.450293 +v 0.518511 3.313505 0.000000 +v 0.805593 3.404381 0.000000 +v 0.574481 3.236468 -0.095223 +v 0.630452 3.159431 0.000000 +v 0.574481 3.236468 0.095223 +v -0.186736 3.543053 0.323436 +v -0.323436 3.269654 0.560207 +v -0.373471 2.896182 0.646871 +v -0.323436 2.522711 0.560207 +v -0.186736 2.249311 0.323436 +v -0.000000 2.149240 0.000000 +v -0.373471 3.543053 0.000000 +v -0.646871 3.269654 0.000000 +v -0.746942 2.896182 0.000000 +v -0.646871 2.522711 0.000000 +v -0.373471 2.249311 0.000000 +v -0.000000 3.643125 0.000000 +v -0.186736 3.543053 -0.323435 +v -0.323436 3.269654 -0.560207 +v -0.373471 2.896182 -0.646871 +v -0.323436 2.522711 -0.560207 +v -0.186736 2.249311 -0.323435 +v 0.186736 3.543053 -0.323435 +v 0.323435 3.269654 -0.560206 +v 0.373471 2.896182 -0.646871 +v 0.323435 2.522711 -0.560206 +v 0.186736 2.249311 -0.323435 +v 0.373471 3.543053 0.000000 +v 0.646871 3.269654 0.000000 +v 0.746942 2.896182 0.000000 +v 0.646871 2.522711 0.000000 +v 0.373471 2.249311 0.000000 +v 0.186735 3.543053 0.323436 +v 0.323435 3.269654 0.560207 +v 0.373471 2.896182 0.646871 +v 0.323435 2.522711 0.560207 +v 0.186735 2.249311 0.323436 +v -0.125000 2.258351 -0.216506 +v 0.125000 2.258351 -0.216506 +v 0.250000 2.258351 -0.000000 +v 0.125000 2.258351 0.216506 +v -0.125000 2.258351 0.216506 +v -0.250000 2.258351 0.000000 +vt 0.862095 0.214930 +vt 0.862095 0.260475 +vt 0.833843 0.220641 +vt 0.833745 0.374149 +vt 0.851956 0.330500 +vt 0.863771 0.374149 +vt 0.881087 0.047412 +vt 0.891113 0.006165 +vt 0.911136 0.047412 +vt 0.882443 0.162373 +vt 0.910893 0.122610 +vt 0.910893 0.163718 +vt 0.785736 0.371128 +vt 0.815538 0.330500 +vt 0.815538 0.375636 +vt 0.814490 0.064729 +vt 0.814490 0.110280 +vt 0.784770 0.069553 +vt 0.174584 0.621658 +vt 0.203697 0.601854 +vt 0.203697 0.627828 +vt 0.125821 0.638760 +vt 0.139735 0.601854 +vt 0.156378 0.638760 +vt 0.314018 0.537049 +vt 0.328751 0.491954 +vt 0.344257 0.537049 +vt 0.910004 0.214930 +vt 0.910004 0.256973 +vt 0.880302 0.218442 +vt 0.785736 0.313228 +vt 0.815388 0.272805 +vt 0.815388 0.318170 +vt 0.832697 0.108694 +vt 0.848009 0.064729 +vt 0.863273 0.108694 +vt 0.929100 0.163305 +vt 0.950492 0.122610 +vt 0.950492 0.168819 +vt 0.949491 0.272805 +vt 0.949491 0.316848 +vt 0.928407 0.272809 +vt 0.911535 0.330500 +vt 0.911535 0.371879 +vt 0.881978 0.333477 +vt 0.814040 0.006165 +vt 0.814040 0.052399 +vt 0.784770 0.010582 +vt 0.928211 0.258648 +vt 0.951170 0.214930 +vt 0.951170 0.259561 +vt 0.949181 0.059902 +vt 0.949181 0.106313 +vt 0.929187 0.064566 +vt 0.342518 0.549379 +vt 0.342518 0.593283 +vt 0.314018 0.555735 +vt 0.785736 0.260475 +vt 0.801898 0.215393 +vt 0.815636 0.260475 +vt 0.910200 0.272805 +vt 0.910200 0.315466 +vt 0.881471 0.279254 +vt 0.343433 0.433225 +vt 0.343433 0.479624 +vt 0.314018 0.437785 +vt 0.784770 0.167028 +vt 0.800063 0.122610 +vt 0.815418 0.167028 +vt 0.863264 0.272805 +vt 0.863264 0.317516 +vt 0.833595 0.277908 +vt 0.833625 0.165945 +vt 0.847985 0.122610 +vt 0.864236 0.165945 +vt 0.832247 0.050268 +vt 0.847090 0.006165 +vt 0.862880 0.050268 +vt 0.882443 0.192975 +vt 0.910375 0.176048 +vt 0.910375 0.201517 +vt 0.910980 0.064729 +vt 0.910980 0.106313 +vt 0.881480 0.070301 +vt 0.193852 0.223802 +vt 0.270282 0.283557 +vt 0.188176 0.303784 +vt 0.295811 0.491103 +vt 0.125821 0.491103 +vt 0.137096 0.433225 +vt 0.284284 0.548312 +vt 0.137069 0.548312 +vt 0.252821 0.589524 +vt 0.167826 0.589524 +vt 0.270282 0.382104 +vt 0.188176 0.360680 +vt 0.350136 0.272322 +vt 0.350136 0.386114 +vt 0.689739 0.407226 +vt 0.689739 0.315050 +vt 0.767530 0.297720 +vt 0.607437 0.387414 +vt 0.607437 0.334197 +vt 0.193852 0.420894 +vt 0.144050 0.383075 +vt 0.603037 0.435043 +vt 0.688007 0.419556 +vt 0.691692 0.484113 +vt 0.607790 0.243754 +vt 0.672904 0.215393 +vt 0.560124 0.293034 +vt 0.606228 0.490951 +vt 0.606228 0.590395 +vt 0.542677 0.566841 +vt 0.691692 0.598941 +vt 0.776168 0.490745 +vt 0.776168 0.590188 +vt 0.561217 0.157589 +vt 0.603968 0.122761 +vt 0.685916 0.142740 +vt 0.212242 0.200024 +vt 0.238356 0.109805 +vt 0.313269 0.140506 +vt 0.139592 0.185864 +vt 0.169746 0.081688 +vt 0.685916 0.044290 +vt 0.766563 0.040237 +vt 0.603968 0.065922 +vt 0.125821 0.327582 +vt 0.144050 0.269284 +vt 0.560124 0.399469 +vt 0.542677 0.350030 +vt 0.374411 0.165562 +vt 0.344257 0.211471 +vt 0.298192 0.192594 +vt 0.542677 0.099335 +vt 0.374411 0.107295 +vt 0.344257 0.052284 +vt 0.292029 0.015267 +vt 0.125821 0.063687 +vt 0.231721 0.006165 +vt 0.561217 0.043910 +vt 0.611869 0.006165 +vt 0.924290 0.423854 +vt 0.924290 0.984381 +vt 0.868433 0.419556 +vt 0.449513 0.701774 +vt 0.392618 0.701780 +vt 0.392640 0.006171 +vt 0.284311 0.433225 +vt 0.767530 0.404155 +vt 0.542677 0.509427 +vt 0.611869 0.203063 +vt 0.766563 0.153917 +vt 0.467742 0.701775 +vt 0.467720 0.006165 +vt 0.524470 0.006234 +vt 0.794375 0.423816 +vt 0.850204 0.419556 +vt 0.850204 0.989576 +vt 0.058358 0.544587 +vt 0.058339 0.006165 +vt 0.107613 0.556785 +vt 0.942497 0.431594 +vt 0.990897 0.419556 +vt 0.990897 0.979193 +vt 0.449513 0.006165 +vt 0.868411 0.980082 +vt 0.942515 0.991226 +vt 0.524470 0.701843 +vt 0.107614 0.018368 +vt 0.794396 0.993835 +vt 0.107614 0.581184 +vt 0.058359 0.593384 +vt 0.009104 0.581186 +vt 0.009103 0.556787 +usemtl None +s 1 +f 10/1 8/2 11/3 +f 7/4 8/5 9/6 +f 11/7 8/8 7/9 +f 9/10 8/11 10/12 +f 15/13 13/14 16/15 +f 12/16 13/17 14/18 +f 16/19 13/20 12/21 +f 14/22 13/23 15/24 +f 20/25 18/26 21/27 +f 17/28 18/29 19/30 +f 21/31 18/32 17/33 +f 19/34 18/35 20/36 +f 25/37 23/38 26/39 +f 22/40 23/41 24/42 +f 26/43 23/44 22/45 +f 24/46 23/47 25/48 +f 30/49 28/50 31/51 +f 27/52 28/53 29/54 +f 31/55 28/56 27/57 +f 29/58 28/59 30/60 +f 35/61 33/62 36/63 +f 32/64 33/65 34/66 +f 36/67 33/68 32/69 +f 34/70 33/71 35/72 +f 40/73 38/74 41/75 +f 37/76 38/77 39/78 +f 41/79 38/80 37/81 +f 39/82 38/83 40/84 +f 45/85 51/86 52/87 +f 44/88 50/89 51/90 +f 43/91 49/92 50/89 +f 42/93 48/94 49/92 +f 51/86 57/95 58/96 +f 51/86 50/97 56/98 +f 49/99 55/100 56/101 +f 48/102 54/103 55/100 +f 57/95 62/104 63/105 +f 57/106 56/107 61/108 +f 55/100 60/109 61/110 +f 55/100 54/103 59/111 +f 62/112 67/113 68/114 +f 62/112 61/108 66/115 +f 60/116 65/117 66/115 +f 59/118 64/119 65/120 +f 67/121 72/122 73/123 +f 66/124 71/125 72/122 +f 65/120 70/126 71/127 +f 64/119 69/128 70/126 +f 47/129 46/130 52/87 +f 42/131 53/132 48/102 +f 47/129 52/87 58/96 +f 48/102 53/132 54/103 +f 47/129 58/96 63/105 +f 54/103 53/132 59/111 +f 47/133 63/134 68/135 +f 59/118 53/136 64/119 +f 47/133 68/135 73/123 +f 64/119 53/136 69/128 +f 47/133 73/123 46/137 +f 72/122 45/138 46/137 +f 71/125 44/139 45/138 +f 71/125 70/140 43/141 +f 69/128 42/142 43/143 +f 69/128 53/136 42/142 +f 1/144 79/145 2/146 +f 78/147 79/148 1/149 +f 46/130 45/85 52/87 +f 45/150 44/88 51/90 +f 44/88 43/91 50/89 +f 43/91 42/93 49/92 +f 52/87 51/86 58/96 +f 57/95 51/86 56/98 +f 50/151 49/99 56/101 +f 49/99 48/102 55/100 +f 58/96 57/95 63/105 +f 62/112 57/106 61/108 +f 56/101 55/100 61/110 +f 60/109 55/100 59/111 +f 63/152 62/112 68/114 +f 67/113 62/112 66/115 +f 61/108 60/116 66/115 +f 60/153 59/118 65/120 +f 68/135 67/121 73/123 +f 67/121 66/124 72/122 +f 66/154 65/120 71/127 +f 65/120 64/119 70/126 +f 73/123 72/122 46/137 +f 72/122 71/125 45/138 +f 44/139 71/125 43/141 +f 70/126 69/128 43/143 +f 3/155 75/156 76/157 +f 76/158 77/159 5/160 +f 5/161 77/162 6/163 +f 74/164 75/165 3/166 +f 6/167 78/147 1/149 +f 79/145 74/168 2/146 +f 2/169 74/164 3/166 +f 4/170 3/155 76/157 +f 77/162 78/171 6/163 +f 4/172 76/158 5/160 +f 1/173 2/174 3/175 +f 4/176 5/161 6/163 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Heavymace.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Heavymace.png new file mode 100644 index 0000000000000000000000000000000000000000..a5436e699ba05a690351a0560739bc88949f25d0 GIT binary patch literal 794 zcmeAS@N?(olHy`uVBq!ia0vp^zd)FS4M=vpiLwP!Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqw*#3#Ftte}2i`OS&=tg5!&Z3yceyo!DFW zIAjH^6iPtY0a*|x0T)~-%?MEn7ir-`=!Xb4qZ;b)0?kl7HWh>)<+#?_k;rue<_cuz zfsA*2abVi3tL$&~>hDZmz4e)&Z4Ro7kqvKL9rFLbY5KQ!*5zjlyDzM_dr&#gJ8lKP z$(&tCo+j4O82;vv#S9+i+bi7+mTwL7VUz}k=z;Q*AH8Sp{Ms%qEt^wv&-KU#!wnaK zVeWS~vGd;VAJ?D%JLwu@W@S+dj{~BebC(066zG+85A!Fhr=}UQq67vkUN%hfPEdC} zVt`#1DRMBwnqd0KV?ojn2@Vd~8(yYOmNO&weT@(_^bvss#Dk}tvFd88Yj)RL08=r8 Mr>mdKI;Vst0Eoa58UO$Q literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/HotCrucible.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/HotCrucible.png new file mode 100644 index 0000000000000000000000000000000000000000..4b4b2d18de88fd901c0bfa388366223774e67d1d GIT binary patch literal 1216 zcmV;x1V8(UP)f!7xTtH#-0M zG~u@Nm_kHRc$_cO3fKYwyPX=UYv6QJ5Z>#rZGp{3eKk;Nks;CKY8N{tSK&byr%2GsMeQ{#*jH*>%+M#LE5y+eqA z7l&brxC{YPhzJq54B;7ozE^MS8hG;txV=>{b*iqa<>1diYH|Fq8K@I*?W$@w_qhqj=%rp0c6jYUhXj}EJC^YoPqXIb| zf&2Rx#7jqrT8dsArl4tvQ2~+oNdZ_Hy02efMUcEWoG%kX)Kbd?7=uHMGZ#X{(-?s< zKGT6$8me}JVbYwBL5b)SBHm=0mjBFf@zbY>qR{#Vl!)Fdv zLRkc*uGJ_tf%Pt81f>jDm4WU1e-wdiDXXqigCUrAb*(jDmI|tA3)8qjx>#yHzN!{ zAah~XwRyJL=t71#S+GbnuL*{cI~>e-SsHInr^ZA@}%$Wn#KrJ zWZk$VQ6H-83?^H`p69wr+ZyxJ9Ez;Z3G9UYCN)5udq?7iVAWF;t8gz76ImLaELD)_it7D)y-qvb>7>T`UZYgk8cOdiuPKP_ z*2v4T+gXa4=7j^yXWQDM5bV^$2&J8oIp!c)>)O&o!2C8P^bAIp5V3aolHuez5zw$P zk0dXFRh91X?VFvRhCv-Vo%DLMvHj*sGJ4V&na*%h@c`iNZvFgtG(hyMC=6iJtd+Ct z?0yC=3riWYrZF)}nai;ABt&l*f#(O5sxpOTl{Jl}aNbuIV$drJ3d6nM8%e#_nHrJS zH;wOhdU8s0T~#`FohjvZn^ZwrzU&gWxAtd*e^B;&-H3VQ(Trf;zSW%H-K~`~Ra;8& zOw?>42xXOG^zNPBU$1sv%yZTB)bms^d00(J&DPF6_->_y%wJhrYfkl_8&T6!Ii3x< ehX;rME|HP)1h7d& zK~zY`)mBTA+cpq=_z?U_^0;J=eU@Az$8eR`F8ct!g*U!L4w1Wz$J9_FDT(-G@zjJg z$tszuB&b4>1RLG2yI(f|{L4eVq_SUsxkqUgPCmhC1%1&T6QC7f3>SuDz;C}l001li zq)(p`-oFQSJK)tTpzi^t0BeB|0Aql01h!jh3;}Qs=sKvcUl%7Tr!o74rsQ)v1+L-{CEUjzot=RfX7E*y#`h*%A`bKeb2S45kf*?6~ea~-zAfI{T1M?hW!ltn>S}jI>%q3Y^^%p5<8ggN`qj%1clu~}v z1l-?qO=}w0`UXHuEJdRgLS!0JA|N5Yz1_kxRG&Y;NJBDOVK@fF#8R^w@KGV93m0O- z$tS?4XMNy>2D_cc9GG(-Nknr+#L_Y?|CyoE_wNZs!BSHSs48+I1m;_~QI_O^b0qB5 zQ+@dGw^OL06pcx%)tZKsVskQvprj;?VM%J8OZ6WN3u9QHKYvoEQh@hRU%n_7#XMt)#5{9WRW{~54NCj1Dk>a?ylxCr zvfbt~Rf_AU6ZPEPF_pux^bieWa$D7!$|b~gO)!!YNz3`1-|ITZv#!Y{IlQWhpqhqH z(Not~0EA#72(bB#WA1cKLz!`8NR=W8c?U8{#cQnzX0ze9IB-7mdzvmBh%p~D&av$Z zxx|3X)hdT~o*C8)2e98Wib|0OO~WbN3LziqA+XH@&}bTl%6l63o}K~(QB~PX;lpl6 zz@qS)xI$2^bBe?PIliwVpcf`v%TsT=r9fF`qsJo^$i1Oy7y&8SrOlO;S+BY8xzYq_ zKOS?*NjXjvy_WlcbJ>`4Y7m)$Ey@bqYz_<12+~0K}aN0B5LO{ zpu-_^;Bd$n*5?-%aZ+yE5>WsehXaj?hfTxhH0AaiLhfk$Jrz1fk0j4cb1PSt{OL|ih@$(avPF9&~^MT!^(zFsf;>{7SV3r;6``Sf&qZVJKn`wYVSrG2Z99~J(O Z;}2l#$|||#Z#e(}002ovPDHLkV1nL~P7?qC literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/HotDamascusIngot.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/HotDamascusIngot.png new file mode 100644 index 0000000000000000000000000000000000000000..82e42b0343d004f4eee2c21ff337728d07decbf3 GIT binary patch literal 97047 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%0A3WJ`4g;OI7ub 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronIngotBlock.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronIngotBlock.obj new file mode 100644 index 00000000..e28c2c67 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronIngotBlock.obj @@ -0,0 +1,67 @@ +# Blender v2.72 (sub 0) OBJ File: 'IronIngotBlock.blend' +# www.blender.org +mtllib IronIngotBlock.mtl +o Cube +v 0.750000 -0.250000 -0.300000 +v 0.750000 -0.250000 0.300000 +v -0.750000 -0.250000 0.300000 +v -0.750000 -0.250000 -0.300000 +v 0.750000 -0.030186 -0.300000 +v 0.750000 -0.030186 0.300000 +v -0.750000 -0.030186 0.300000 +v -0.750000 -0.030186 -0.300000 +v 0.492215 0.157360 -0.116886 +v 0.492214 0.157360 0.116886 +v -0.492215 0.157360 0.116886 +v -0.492215 0.157360 -0.116886 +vt 0.377736 0.000000 +vt 0.377736 0.500000 +vt 0.000000 0.500000 +vt 0.692250 0.500000 +vt 0.530004 0.500000 +vt 0.530004 0.000000 +vt 1.000000 1.000000 +vt 0.833937 1.000000 +vt 0.833937 0.500000 +vt 0.152268 1.000000 +vt 0.152268 0.500000 +vt 0.314514 0.500000 +vt 0.833937 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.692250 0.828143 +vt 0.545077 0.828143 +vt 0.545077 0.500000 +vt 0.000000 0.847405 +vt 0.692250 0.914071 +vt 0.692250 0.585929 +vt 0.692250 0.414072 +vt 0.692250 0.085929 +vt 0.377736 0.347405 +vt 0.000000 0.000000 +vt 0.692250 0.000000 +vt 0.314514 1.000000 +vt 0.000000 0.652595 +vt 0.377736 0.152595 +usemtl Material +s off +f 2/1 3/2 4/3 +f 1/4 5/5 6/6 +f 2/7 6/8 7/9 +f 7/10 8/11 4/12 +f 5/13 1/14 4/15 +f 12/16 11/17 10/18 +f 8/11 7/10 11/19 +f 6/8 10/20 11/21 +f 8/9 12/22 9/23 +f 6/6 5/5 9/24 +f 1/25 2/1 4/3 +f 2/26 1/4 6/6 +f 3/15 2/7 7/9 +f 3/27 7/10 4/12 +f 8/9 5/13 4/15 +f 9/4 12/16 10/18 +f 12/28 8/11 11/19 +f 7/9 6/8 11/21 +f 5/13 8/9 9/23 +f 10/29 6/6 9/24 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronIngotBlock.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronIngotBlock.png new file mode 100644 index 0000000000000000000000000000000000000000..b19a7f154c7215a7be148c98e41eb2771f7a8ea3 GIT binary patch literal 1859 zcmV-J2fX-+P)Sb}nomIcS;8p13CE>57dQGl{$lU$*g zCRIjVC!|p+$Z#6o;JZS7peQv3@j>rIbI}*9?OZ)jD?FysRj3*x79q+ING)28N>DH6 z)|VH(`zqQb$ad^@!NUOf#}{8v+Kg(hQd}3)oXg-A52%w3=vawkbPMVZ?MU5W1e!w0 z#`flteuJ;|a=XZOj>p14uiG1@(xVuUqXEl7>lUM&7rpvQ_yI%+_;t?uCSo82?nK5 zt;n_6Hc+|V;Olr8DI4^pY4oo2Hcl&Q1pWPHn9?}io2Uj4vIb))Zjsn5M1@YlZ_3aO z*Fd#N14*In^(){^{2ibMW~3%~V0KW;DcR5)b4N@WS%es73)*nWCRJb?D#^4UhT)Nr zh8lzeq2DS(m7txcvQ^3DR0FxN(JWImi#8=2LKR)jrg2e0y0O`C759hGnWTJ(T2d;E zNCJDAfZZ-CjHD?A+0GnEiJ`+Fp?y;U<6a<5&ZKSNwx3RDCB&7)DQE{H6qU`Op@ovb zRNvtJ3XshxL1=UqyCLt%vIpvcUyABetYQk~2t{(DT}@bnIJ$)6=5!lU#ZqNRQ?01= z8@#E2DAIvkMs_jtnV>!f)rCqz6qheb6!!vxx$`vz=7}=du}M)>3i{cOfB1tRbDqH; z|M0uEzVYWz|HMZ>|0Qc49IfUpqFQN`M-=WK^4pI;rlYX4o=u15CqMngH!XQX&caRTHaL^2 z6DQDF1vopPD?+}3=Pvem&&b;U}>|7Lz4M*A- zDP$*)f+5b@!j`6LkrQ+(+Dzt1dNigDWoR2oBG!n3ZpG|5Q~+EpL^r)QnSh@7d{AqW ztq6%$lMX`^uL3Qk4KHONcs0_2>IY3-$_OXpK(}GJIn1DiSj{B`-3)CAWsG7}(*qi% zq{*7#Fm*wK#FI+0$qCU51?nsU#b~+>%`R*>VFffhjcqqrgId9KaDLrW8w*)qxM#0!C6ewH=d1 z$6&RgnkWM0KoJe51J^*t9mJ4cpwXAH>2Q@jV8h@Cl7-z zD&Y*H-Z>!+3LOGdY2&34VS-MGT;%Z}$ANjH8ng;60o`;JlTl8_!ZlG6ufSW8R&pok|15a2D;T9ut3QM;gG>}Jq&Gd2 z!kE&K!DBu^VHP-rmIC9Y24XvCGf+~Mrcl$Tk>QwK7?W*H3or^4v<1y-at~I6+0#2p zgqDfa^S5nfvAq$Iml{YBwm7>4tdP`~6ezIS^lsQi%tjlCV{tAJ0jWlGFo3SYx;TKF x7+LvJ10-lDr3O3bqhC^h7ZbyDpeBer{{f`{&FrAD)WrY*002ovPDHLkV1mbKLRkO+ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronPlate.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronPlate.obj new file mode 100644 index 00000000..99e240ba --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronPlate.obj @@ -0,0 +1,40 @@ +# Blender v2.72 (sub 0) OBJ File: 'IronPlate.blend' +# www.blender.org +mtllib IronPlate.mtl +o Cube +v 0.750000 -0.030000 -0.750000 +v 0.750000 -0.030000 0.750000 +v -0.750000 -0.030000 0.750000 +v -0.750000 -0.030000 -0.750000 +v 0.750000 0.030000 -0.750000 +v 0.750000 0.030000 0.750000 +v -0.750000 0.030000 0.750000 +v -0.750000 0.030000 -0.750000 +vt 1.000000 0.333333 +vt 1.000000 0.666667 +vt 0.666667 0.666667 +vt 0.666667 0.333333 +vt 0.666667 0.000000 +vt 0.333333 0.333333 +vt 0.000000 0.333333 +vt 0.000000 0.000000 +vt 0.333333 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.666667 +vt 0.333333 0.666667 +vt 1.000000 0.000000 +vt 0.333333 1.000000 +usemtl Material +s 1 +f 2/1 3/2 4/3 +f 8/1 7/4 6/5 +f 1/6 5/7 6/8 +f 2/6 6/9 7/5 +f 7/10 8/11 4/12 +f 1/6 4/12 8/11 +f 1/4 2/1 4/3 +f 5/13 8/1 6/5 +f 2/9 1/6 6/8 +f 3/4 2/6 7/5 +f 3/14 7/10 4/12 +f 5/7 1/6 8/11 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronPlate.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronPlate.png new file mode 100644 index 0000000000000000000000000000000000000000..2df29e3dc837d26e8962ef3d0aa5b443b2f19500 GIT binary patch literal 734 zcmV<40wMj0P)0&7V` zK~y-)1;NR7TSXK=(NnkD*T`~WSb_ilC1KA0s_trnU~L|s{iXI}$%wQ;qBOB8B&p>^WlwlHd>`hb3Fr0GDP8mU>dJ()r!xs#D2 zdIUaOMU$~HuoT6c3_`mgG@@3>SKZjvz%o!R@Jx*%m1R+wUim*8=O(`~}^!kQ1_Y`IyF>pR2DlwpxW4>r-55YcPly%?sVC@;f_X0nB@IuF0F#K8iG@qJPXZcyg)lX*b2C#VgmH`;#eoO{bXoaLO^hI@*Th{M zb5s;GOK51Huwz1&%xxEZZ73yNS|>|IF80ZnDttdrwC&(LkD=MzjQV9+&XW%jv=V+e zxOq+0jYsKR0rNt*2yC_EL!q4w_okT-#X+Pk0Zs=kV|?NLrD)fNDv*!B|3KSgEf3Ne QqW}N^07*qoM6N<$g3$#-bpQYW literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronShield.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronShield.obj new file mode 100644 index 00000000..981fade6 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/IronShield.obj @@ -0,0 +1,388 @@ +# Blender v2.72 (sub 0) OBJ File: '' +# www.blender.org +mtllib IronShield.mtl +o Plane +v 1.270291 -0.317805 0.070000 +v 1.337159 -0.372859 0.264277 +v 1.262382 -0.418517 0.290014 +v 1.188085 -0.357347 0.074152 +v 1.285151 -0.238723 0.113173 +v 1.337159 -0.281543 0.264276 +v 1.217804 -0.199182 0.160496 +v 1.262382 -0.235885 0.290014 +v 1.135597 -0.238723 0.164647 +v 1.187605 -0.281543 0.315752 +v 1.120738 -0.317805 0.121476 +v 1.187605 -0.372859 0.315752 +v 1.221341 -0.167397 -0.072220 +v 1.133695 -0.190226 -0.083871 +v 1.247078 -0.121739 0.002557 +v 1.185170 -0.098910 0.065684 +v 1.097525 -0.121739 0.054033 +v 1.071787 -0.167397 -0.020744 +v 1.203424 0.038064 -0.124275 +v 1.113787 0.038064 -0.141711 +v 1.233143 0.038064 -0.037931 +v 1.173225 0.038064 0.030979 +v 1.083589 0.038064 0.013544 +v 1.053870 0.038064 -0.072800 +v 1.221341 0.243525 -0.072220 +v 1.133695 0.266354 -0.083871 +v 1.247078 0.197867 0.002557 +v 1.185170 0.175038 0.065683 +v 1.097525 0.197867 0.054032 +v 1.071787 0.243525 -0.020744 +v 1.270291 0.393934 0.070000 +v 1.188085 0.433475 0.074151 +v 1.285151 0.314851 0.113173 +v 1.217804 0.275310 0.160496 +v 1.135597 0.314851 0.164647 +v 1.120737 0.393934 0.121475 +v 1.337159 0.448987 0.264276 +v 1.262382 0.494645 0.290013 +v 1.337159 0.357671 0.264276 +v 1.262382 0.312013 0.290013 +v 1.187605 0.357671 0.315751 +v 1.187605 0.448987 0.315751 +v -0.081913 0.493007 0.266499 +v -0.020096 0.431837 0.046738 +v -0.102405 0.392296 0.047300 +v -0.158041 0.447349 0.245085 +v -0.114769 0.313214 0.091252 +v -0.158041 0.356033 0.245085 +v -0.044823 0.273673 0.134642 +v -0.081913 0.310375 0.266499 +v 0.037487 0.313214 0.134080 +v -0.005785 0.356033 0.287913 +v 0.049850 0.392296 0.090128 +v -0.005785 0.447349 0.287914 +v 0.025158 0.264717 -0.114139 +v -0.061677 0.241888 -0.097489 +v -0.083091 0.196229 -0.021362 +v -0.017671 0.173401 0.038116 +v 0.069164 0.196229 0.021467 +v 0.090578 0.241888 -0.054661 +v 0.041722 0.036426 -0.173024 +v -0.046770 0.036426 -0.150486 +v -0.071496 0.036426 -0.062581 +v -0.007732 0.036426 0.002785 +v 0.080759 0.036426 -0.019753 +v 0.105486 0.036426 -0.107657 +v 0.025158 -0.191864 -0.114139 +v -0.061677 -0.169035 -0.097489 +v -0.083091 -0.123377 -0.021362 +v -0.017671 -0.100548 0.038116 +v 0.069164 -0.123377 0.021467 +v 0.090578 -0.169035 -0.054661 +v -0.020096 -0.358984 0.046738 +v -0.102405 -0.319443 0.047300 +v -0.114769 -0.240361 0.091252 +v -0.044823 -0.200820 0.134642 +v 0.037487 -0.240361 0.134080 +v 0.049850 -0.319443 0.090128 +v -0.081913 -0.420154 0.266499 +v -0.158041 -0.374496 0.245085 +v -0.158041 -0.283180 0.245085 +v -0.081913 -0.237522 0.266499 +v -0.005785 -0.283180 0.287913 +v -0.005785 -0.374496 0.287913 +v 0.270809 -1.900637 0.513350 +v 0.270809 1.416915 0.513350 +v -0.395858 1.391915 0.263460 +v -0.395858 -1.875637 0.263460 +v 1.604142 -1.875637 0.263460 +v 1.604142 1.391915 0.263459 +v 0.937475 1.416915 0.513349 +v 0.937475 -1.900637 0.513350 +v 0.270809 -1.900637 0.383083 +v -0.395858 -1.875637 0.133193 +v -0.395858 1.391915 0.133193 +v 0.270809 1.416915 0.383083 +v 1.604142 -1.875637 0.133193 +v 0.937475 -1.900637 0.383083 +v 0.937475 1.416915 0.383082 +v 1.604142 1.391915 0.133192 +vt 0.552464 0.806973 +vt 0.552464 0.856608 +vt 0.534206 0.856608 +vt 0.534206 0.801458 +vt 0.357670 1.000000 +vt 0.320490 0.986700 +vt 0.328752 0.967595 +vt 0.357670 0.977940 +vt 0.497690 0.834548 +vt 0.497691 0.801458 +vt 0.515948 0.801458 +vt 0.515948 0.840063 +vt 0.479433 0.840063 +vt 0.479433 0.801458 +vt 0.246128 0.814757 +vt 0.283309 0.801458 +vt 0.283309 0.823518 +vt 0.254391 0.833862 +vt 0.515948 0.856608 +vt 0.515948 0.806973 +vt 0.386715 0.946617 +vt 0.409549 0.982953 +vt 0.392328 0.992505 +vt 0.366957 0.952132 +vt 0.293271 0.950364 +vt 0.307582 0.939334 +vt 0.326075 0.933819 +vt 0.344221 0.958043 +vt 0.778932 0.829719 +vt 0.796692 0.801458 +vt 0.813913 0.811010 +vt 0.798690 0.835234 +vt 0.218910 0.851093 +vt 0.233221 0.862123 +vt 0.200417 0.845578 +vt 0.230659 0.805205 +vt 0.378357 0.896981 +vt 0.357670 0.896981 +vt 0.299834 0.900729 +vt 0.283309 0.900729 +vt 0.319434 0.900729 +vt 0.772432 0.868324 +vt 0.793118 0.868324 +vt 0.208947 0.900729 +vt 0.225472 0.900729 +vt 0.189347 0.900729 +vt 0.386715 0.847346 +vt 0.366957 0.841831 +vt 0.307582 0.862123 +vt 0.293271 0.851093 +vt 0.326075 0.867638 +vt 0.778932 0.906930 +vt 0.798690 0.901415 +vt 0.218910 0.950364 +vt 0.233221 0.939334 +vt 0.200417 0.955879 +vt 0.409549 0.811010 +vt 0.392328 0.801458 +vt 0.328752 0.833862 +vt 0.320490 0.814757 +vt 0.344221 0.843415 +vt 0.796692 0.935191 +vt 0.813913 0.925639 +vt 0.246128 0.986700 +vt 0.254391 0.967595 +vt 0.230659 0.996252 +vt 0.570721 0.801458 +vt 0.570721 0.856608 +vt 0.357670 0.823518 +vt 0.357670 0.801458 +vt 0.461175 0.840063 +vt 0.461175 0.806973 +vt 0.442917 0.840063 +vt 0.442917 0.801458 +vt 0.283309 1.000000 +vt 0.283309 0.977940 +vt 0.588979 0.806973 +vt 0.588979 0.856608 +vt 0.716783 0.801458 +vt 0.716783 0.856608 +vt 0.698525 0.851093 +vt 0.698525 0.801458 +vt 0.189347 1.000000 +vt 0.142011 0.986700 +vt 0.152530 0.967595 +vt 0.189347 0.977940 +vt 0.588979 0.868324 +vt 0.588979 0.829719 +vt 0.607237 0.835234 +vt 0.607237 0.868324 +vt 0.625495 0.829719 +vt 0.625495 0.868324 +vt 0.094674 0.823518 +vt 0.057856 0.833862 +vt 0.047337 0.814757 +vt 0.094674 0.801458 +vt 0.735041 0.801458 +vt 0.735041 0.851093 +vt 0.716783 0.896981 +vt 0.698526 0.887429 +vt 0.107358 0.950364 +vt 0.125578 0.939334 +vt 0.739161 0.935191 +vt 0.736145 0.906930 +vt 0.755308 0.901415 +vt 0.757893 0.925638 +vt 0.607237 0.811010 +vt 0.625494 0.801458 +vt 0.030904 0.862123 +vt 0.012684 0.851093 +vt 0.855497 0.811010 +vt 0.851619 0.847346 +vt 0.832456 0.841831 +vt 0.836765 0.801458 +vt 0.830880 0.896981 +vt 0.813913 0.896981 +vt 0.815332 0.847346 +vt 0.094674 0.900729 +vt 0.115712 0.900729 +vt 0.735041 0.868324 +vt 0.754361 0.868324 +vt 0.771328 0.868324 +vt 0.772432 0.906930 +vt 0.021039 0.900729 +vt 0.000000 0.900729 +vt 0.850200 0.896981 +vt 0.832456 0.952132 +vt 0.815332 0.946617 +vt 0.107358 0.851093 +vt 0.125578 0.862123 +vt 0.736145 0.829719 +vt 0.755308 0.835234 +vt 0.772432 0.829719 +vt 0.030904 0.939334 +vt 0.012684 0.950364 +vt 0.851619 0.946617 +vt 0.680268 0.801458 +vt 0.680268 0.841831 +vt 0.662010 0.847346 +vt 0.662010 0.811010 +vt 0.142011 0.814757 +vt 0.152530 0.833862 +vt 0.739161 0.801458 +vt 0.757893 0.811010 +vt 0.643752 0.858772 +vt 0.643752 0.834548 +vt 0.662010 0.840063 +vt 0.662010 0.868324 +vt 0.057856 0.967595 +vt 0.047337 0.986700 +vt 0.855497 0.982953 +vt 0.836765 0.992505 +vt 0.680268 0.896981 +vt 0.662010 0.896981 +vt 0.189347 0.801458 +vt 0.189347 0.823518 +vt 0.625495 0.840063 +vt 0.643752 0.801458 +vt 0.662010 0.801458 +vt 0.094674 0.977940 +vt 0.094674 1.000000 +vt 0.698525 0.847346 +vt 0.698525 0.896981 +vt 0.592057 0.000000 +vt 0.592057 0.801458 +vt 0.427749 0.795418 +vt 0.427749 0.006040 +vt 0.855497 0.006039 +vt 0.855497 0.795418 +vt 0.734640 0.801458 +vt 0.734640 0.000000 +vt 0.263440 0.000000 +vt 0.263440 0.801458 +vt 0.000000 0.006040 +vt 0.120857 0.000000 +vt 0.120857 0.801458 +vt 0.000000 0.795418 +vt 0.855497 0.322108 +vt 0.855497 0.161054 +vt 0.885571 0.161054 +vt 0.885572 0.322108 +vt 0.913189 0.483162 +vt 0.943264 0.483162 +vt 0.855497 0.805270 +vt 0.855497 0.644216 +vt 0.885572 0.644216 +vt 0.885571 0.805270 +vt 0.913189 0.966324 +vt 0.943264 0.966324 +vt 0.913189 0.000000 +vt 0.943264 0.000000 +vt 0.971632 0.000000 +vt 0.971632 0.789379 +vt 0.943264 0.789379 +vt 1.000000 0.000000 +vt 1.000000 0.789379 +usemtl None +s off +f 1/1 2/2 3/3 4/4 +f 2/5 1/6 5/7 6/8 +f 7/9 8/10 6/11 5/12 +f 9/13 10/14 8/10 7/9 +f 11/15 12/16 10/17 9/18 +f 4/4 3/3 12/19 11/20 +f 13/21 1/22 4/23 14/24 +f 1/6 13/25 15/26 5/7 +f 16/27 7/28 5/7 15/26 +f 17/29 9/30 7/31 16/32 +f 18/33 11/15 9/18 17/34 +f 14/35 4/36 11/15 18/33 +f 19/37 13/21 14/24 20/38 +f 21/39 15/26 13/25 19/40 +f 22/41 16/27 15/26 21/39 +f 23/42 17/29 16/32 22/43 +f 24/44 18/33 17/34 23/45 +f 20/46 14/35 18/33 24/44 +f 25/47 19/37 20/38 26/48 +f 27/49 21/39 19/40 25/50 +f 28/51 22/41 21/39 27/49 +f 29/52 23/42 22/43 28/53 +f 30/54 24/44 23/45 29/55 +f 26/56 20/46 24/44 30/54 +f 31/57 25/47 26/48 32/58 +f 33/59 27/49 25/50 31/60 +f 34/61 28/51 27/49 33/59 +f 35/62 29/52 28/53 34/63 +f 36/64 30/54 29/55 35/65 +f 32/66 26/56 30/54 36/64 +f 37/2 31/1 32/67 38/68 +f 39/69 33/59 31/60 37/70 +f 40/71 34/72 33/14 39/13 +f 41/73 35/74 34/72 40/71 +f 42/75 36/64 35/65 41/76 +f 38/68 32/67 36/77 42/78 +f 43/79 44/80 45/81 46/82 +f 46/83 45/84 47/85 48/86 +f 48/87 47/88 49/89 50/90 +f 50/90 49/89 51/91 52/92 +f 52/93 51/94 53/95 54/96 +f 54/97 53/98 44/80 43/79 +f 44/80 55/99 56/100 45/81 +f 45/84 56/101 57/102 47/85 +f 47/103 57/104 58/105 49/106 +f 49/89 58/107 59/108 51/91 +f 51/94 59/109 60/110 53/95 +f 53/111 60/112 55/113 44/114 +f 55/113 61/115 62/116 56/117 +f 56/101 62/118 63/119 57/102 +f 57/104 63/120 64/121 58/105 +f 58/105 64/121 65/122 59/123 +f 59/109 65/124 66/125 60/110 +f 60/112 66/126 61/115 55/113 +f 61/115 67/127 68/128 62/116 +f 62/118 68/129 69/130 63/119 +f 63/120 69/131 70/132 64/121 +f 64/121 70/132 71/133 65/122 +f 65/124 71/134 72/135 66/125 +f 66/126 72/136 67/127 61/115 +f 67/137 73/138 74/139 68/140 +f 68/129 74/141 75/142 69/130 +f 69/131 75/143 76/144 70/132 +f 70/145 76/146 77/147 71/148 +f 71/134 77/149 78/150 72/135 +f 72/136 78/151 73/152 67/127 +f 73/138 79/153 80/154 74/139 +f 74/141 80/155 81/156 75/142 +f 75/157 81/108 82/158 76/146 +f 76/146 82/158 83/159 77/147 +f 77/149 83/160 84/161 78/150 +f 78/162 84/163 79/153 73/138 +f 85/164 86/165 87/166 88/167 +f 89/168 90/169 91/170 92/171 +f 92/171 91/170 86/165 85/164 +f 93/172 94/167 95/166 96/173 +f 97/174 98/175 99/176 100/177 +f 98/175 93/172 96/173 99/176 +f 86/178 91/179 99/180 96/181 +f 87/182 86/178 96/181 95/183 +f 92/184 85/185 93/186 98/187 +f 89/188 92/184 98/187 97/189 +f 91/179 90/190 100/191 99/180 +f 88/192 87/193 95/194 94/191 +f 85/185 88/182 94/183 93/186 +f 90/195 89/196 97/193 100/192 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow0.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow0.obj new file mode 100644 index 00000000..5ee1858c --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow0.obj @@ -0,0 +1,477 @@ +# Blender v2.72 (sub 0) OBJ File: 'LongbowRigFinished.blend' +# www.blender.org +mtllib Longbow0.mtl + +v -0.000268 -3.971003 0.974551 +v -0.000268 -3.971002 0.974018 +v 0.000268 -3.971002 0.974018 +v 0.000268 -3.971003 0.974551 +v -0.000268 -3.563677 0.975389 +v -0.000268 -3.054203 0.976252 +v -0.000268 -2.544791 0.976867 +v -0.000268 -2.035393 0.977417 +v -0.000268 -1.525986 0.978009 +v -0.000268 -1.016573 0.978622 +v -0.000268 -0.132064 0.979633 +v -0.000268 0.002199 0.979633 +v -0.000268 0.136575 0.979633 +v -0.000268 1.020479 0.978624 +v -0.000268 1.529593 0.978012 +v -0.000268 2.038712 0.977421 +v -0.000268 2.547841 0.976871 +v -0.000268 3.056955 0.976257 +v -0.000268 3.566007 0.975393 +v -0.000268 3.566007 0.974857 +v -0.000268 3.056956 0.975727 +v -0.000268 2.547841 0.976336 +v -0.000268 2.038712 0.976885 +v -0.000268 1.529593 0.977477 +v -0.000268 1.020479 0.978089 +v -0.000268 0.136575 0.979097 +v -0.000268 0.002199 0.979097 +v -0.000268 -0.132064 0.979097 +v -0.000268 -1.016573 0.978087 +v -0.000268 -1.525986 0.977474 +v -0.000268 -2.035393 0.976882 +v -0.000268 -2.544791 0.976332 +v -0.000268 -3.054203 0.975717 +v -0.000268 -3.563677 0.974852 +v 0.000268 3.566007 0.974857 +v 0.000268 3.056956 0.975727 +v 0.000268 2.547841 0.976336 +v 0.000268 2.038712 0.976885 +v 0.000268 1.529593 0.977477 +v 0.000268 1.020479 0.978089 +v 0.000268 0.136575 0.979097 +v 0.000268 0.002199 0.979097 +v 0.000268 -0.132064 0.979097 +v 0.000268 -1.016573 0.978087 +v 0.000268 -1.525986 0.977474 +v 0.000268 -2.035393 0.976882 +v 0.000268 -2.544791 0.976332 +v 0.000268 -3.054203 0.975717 +v 0.000268 -3.563677 0.974852 +v 0.000268 3.566007 0.975393 +v 0.000268 3.056957 0.976265 +v 0.000268 2.547841 0.976871 +v 0.000268 2.038712 0.977421 +v 0.000268 1.529593 0.978012 +v 0.000268 1.020479 0.978624 +v 0.000268 0.136575 0.979633 +v 0.000268 0.002199 0.979633 +v 0.000268 -0.132064 0.979633 +v 0.000268 -1.016573 0.978622 +v 0.000268 -1.525986 0.978009 +v 0.000268 -2.035393 0.977417 +v 0.000268 -2.544791 0.976867 +v 0.000268 -3.054203 0.976252 +v 0.000268 -3.563677 0.975388 +v -0.039304 4.088087 1.008390 +v 0.039304 4.088087 1.008390 +v -0.067379 3.551811 0.766182 +v -0.085346 2.833168 0.536092 +v -0.101068 1.833753 0.293927 +v -0.112298 0.733394 0.218256 +v 0.112298 0.733395 0.218256 +v 0.101068 1.833753 0.293927 +v 0.085346 2.833169 0.536092 +v 0.067379 3.551811 0.766182 +v 0.112298 0.733394 0.018256 +v 0.101068 1.833753 0.113926 +v 0.085346 2.833168 0.384088 +v 0.067379 3.551809 0.646174 +v -0.112298 0.733394 0.018256 +v -0.101068 1.833753 0.113926 +v -0.085346 2.833168 0.384088 +v -0.067379 3.551809 0.646174 +v -0.039304 -4.086884 1.008186 +v 0.039304 -4.086884 1.008186 +v -0.067379 -3.551042 0.766179 +v -0.085346 -2.833012 0.536090 +v -0.101068 -1.833982 0.293927 +v -0.112298 -0.733832 0.218256 +v 0.112298 -0.733832 0.218256 +v 0.101068 -1.833982 0.293927 +v 0.085346 -2.833012 0.536090 +v 0.067379 -3.551042 0.766179 +v 0.112298 -0.733832 0.018256 +v 0.101068 -1.833982 0.113926 +v 0.085346 -2.833013 0.384087 +v 0.067379 -3.551044 0.646170 +v -0.112298 -0.733832 0.018256 +v -0.101068 -1.833982 0.113926 +v -0.085346 -2.833013 0.384087 +v -0.067379 -3.551044 0.646170 +v 0.041280 4.050359 0.991414 +v 0.041280 4.050356 0.917882 +v -0.041280 4.050356 0.917882 +v -0.041280 4.050359 0.991413 +v -0.000268 3.973338 0.974556 +v -0.000268 3.973339 0.974022 +v 0.000268 3.973339 0.974022 +v 0.000268 3.973338 0.974556 +v 0.042243 -4.030780 0.982942 +v 0.042243 -4.030783 0.907696 +v -0.042243 -4.030783 0.907696 +v -0.042243 -4.030780 0.982941 +v -0.022828 -0.323007 0.165308 +v 0.112298 -0.000220 0.218252 +v -0.112298 -0.000220 0.218252 +v 0.112298 -0.000220 0.018251 +v -0.112298 -0.000220 0.018251 +v -0.000268 -0.576800 0.979098 +v -0.000268 -0.576800 0.978563 +v 0.000268 -0.576800 0.978563 +v 0.000268 -0.576800 0.979098 +v -0.000268 0.578520 0.979099 +v -0.000268 0.578520 0.978564 +v 0.000268 0.578520 0.978564 +v 0.000268 0.578520 0.979099 +vt 0.168467 0.018892 +vt 0.168467 0.093146 +vt 0.166324 0.001744 +vt 0.078910 0.018892 +vt 0.081053 0.001744 +vt 0.078910 0.093146 +vt 0.663220 0.018892 +vt 0.573663 0.018892 +vt 0.575806 0.001744 +vt 0.661077 0.001744 +vt 0.792729 0.245375 +vt 0.819996 0.027244 +vt 0.911641 0.027244 +vt 0.050599 0.366568 +vt 0.050599 0.245369 +vt 0.196777 0.366568 +vt 0.545353 0.245375 +vt 0.496627 0.796292 +vt 0.508808 0.720291 +vt 0.728075 0.720291 +vt 0.525862 0.476500 +vt 0.711021 0.476500 +vt 0.691530 0.245375 +vt 0.245503 0.998256 +vt 0.233322 0.902066 +vt 0.233322 0.720267 +vt 0.216268 0.630006 +vt 0.216268 0.476487 +vt 0.196777 0.245369 +vt 0.001873 0.998256 +vt 0.014055 0.902066 +vt 0.031109 0.630006 +vt 0.001873 0.796257 +vt 0.014055 0.720267 +vt 0.031109 0.476487 +vt 0.823183 0.001744 +vt 0.908453 0.001744 +vt 0.413700 0.998256 +vt 0.416888 0.896772 +vt 0.416888 0.972757 +vt 0.325242 0.896772 +vt 0.328430 0.998256 +vt 0.325242 0.972757 +vt 0.756185 0.720291 +vt 0.975452 0.720291 +vt 0.987633 0.796292 +vt 0.773239 0.476500 +vt 0.958398 0.476500 +vt 0.938907 0.245375 +vt 0.480698 0.279733 +vt 0.480698 0.097934 +vt 0.492880 0.001744 +vt 0.463644 0.523513 +vt 0.463644 0.369994 +vt 0.444154 0.754631 +vt 0.444154 0.633432 +vt 0.261432 0.097934 +vt 0.249250 0.001744 +vt 0.278486 0.369994 +vt 0.297976 0.633432 +vt 0.261432 0.279733 +vt 0.278486 0.523513 +vt 0.297976 0.754631 +vt 0.994753 0.458915 +vt 0.994753 0.232074 +vt 0.998127 0.232074 +vt 0.994753 0.462403 +vt 0.994753 0.664403 +vt 0.991380 0.664403 +vt 0.994753 0.001744 +vt 0.994753 0.228585 +vt 0.991380 0.228585 +vt 0.994753 0.667891 +vt 0.994753 0.869890 +vt 0.991380 0.869890 +vt 0.998127 0.667891 +vt 0.998127 0.869890 +vt 0.998127 0.001744 +vt 0.998127 0.228585 +vt 0.998127 0.462403 +vt 0.998127 0.664403 +vt 0.991380 0.458915 +vt 0.991380 0.232074 +vt 0.740256 0.796292 +vt 0.245503 0.796257 +vt 0.744003 0.796292 +vt 0.492880 0.203743 +vt 0.249250 0.203743 +vt 0.998127 0.458915 +vt 0.991380 0.462403 +vt 0.991380 0.001744 +vt 0.991380 0.667891 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +usemtl None +s off +f 101/1 102/2 66/3 +f 104/4 65/5 103/6 +f 103/6 65/5 66/3 +f 104/7 101/8 66/9 +f 102/2 103/6 66/3 +f 65/10 104/7 66/9 +s 1 +f 85/11 112/12 109/13 +f 82/14 67/15 104/4 +f 82/14 103/6 102/2 +f 78/16 102/2 101/1 +f 74/17 101/8 104/7 +f 71/18 72/19 69/20 +f 72/19 73/21 68/22 +f 73/21 74/17 67/23 +f 75/24 76/25 72/26 +f 76/25 77/27 73/28 +f 77/27 78/16 74/29 +f 79/30 80/31 76/25 +f 80/31 81/32 77/27 +f 81/32 82/14 78/16 +f 79/30 70/33 69/34 +f 80/31 69/34 68/35 +f 81/32 68/35 67/15 +f 83/36 84/37 109/13 +f 84/38 110/39 109/40 +f 111/41 83/42 112/43 +f 110/39 84/38 83/42 +f 87/44 90/45 89/46 +f 86/47 91/48 90/45 +f 85/11 92/49 91/48 +f 90/50 94/51 93/52 +f 91/53 95/54 94/51 +f 92/55 96/56 95/54 +f 94/51 98/57 97/58 +f 94/51 95/54 99/59 +f 96/56 100/60 99/59 +f 97/58 98/57 87/61 +f 98/57 99/59 86/62 +f 99/59 100/60 85/63 +f 115/64 114/65 71/66 +f 114/67 116/68 75/69 +f 116/70 117/71 79/72 +f 117/73 115/74 70/75 +f 109/40 110/39 96/56 +f 110/39 111/41 100/60 +f 100/60 111/41 112/43 +f 97/76 88/77 115/74 +f 93/78 97/79 117/71 +f 89/80 93/81 116/68 +f 88/82 89/83 114/65 +f 92/49 85/11 109/13 +f 103/6 82/14 104/4 +f 78/16 82/14 102/2 +f 74/29 78/16 101/1 +f 67/23 74/17 104/7 +f 70/84 71/18 69/20 +f 69/20 72/19 68/22 +f 68/22 73/21 67/23 +f 71/85 75/24 72/26 +f 72/26 76/25 73/28 +f 73/28 77/27 74/29 +f 75/24 79/30 76/25 +f 76/25 80/31 77/27 +f 77/27 81/32 78/16 +f 80/31 79/30 69/34 +f 81/32 80/31 68/35 +f 82/14 81/32 67/15 +f 112/12 83/36 109/13 +f 111/41 110/39 83/42 +f 88/86 87/44 89/46 +f 87/44 86/47 90/45 +f 86/47 85/11 91/48 +f 89/87 90/50 93/52 +f 90/50 91/53 94/51 +f 91/53 92/55 95/54 +f 93/52 94/51 97/58 +f 98/57 94/51 99/59 +f 95/54 96/56 99/59 +f 88/88 97/58 87/61 +f 87/61 98/57 86/62 +f 86/62 99/59 85/63 +f 70/89 115/64 71/66 +f 71/90 114/67 75/69 +f 75/91 116/70 79/72 +f 79/92 117/73 70/75 +f 92/55 109/40 96/56 +f 96/56 110/39 100/60 +f 85/63 100/60 112/43 +f 117/73 97/76 115/74 +f 116/70 93/78 117/71 +f 114/67 89/80 116/68 +f 115/64 88/82 114/65 +usemtl None_NONE +s off +f 112/93 109/94 4/95 +f 3/96 4/93 109/94 +f 1/96 112/93 4/95 +s 1 +f 34/93 2/94 1/95 +f 49/93 3/94 2/95 +f 64/93 4/94 3/95 +f 5/93 1/94 4/95 +f 104/96 105/93 108/94 +f 20/93 21/94 18/95 +f 21/93 22/94 17/95 +f 22/93 23/94 16/95 +f 23/93 24/94 15/95 +f 24/93 25/94 14/95 +f 123/93 26/94 13/95 +f 26/93 27/94 12/95 +f 27/93 28/94 11/95 +f 118/96 119/93 29/94 +f 29/93 30/94 9/95 +f 30/93 31/94 8/95 +f 31/93 32/94 7/95 +f 32/93 33/94 6/95 +f 33/93 34/94 5/95 +f 35/93 36/94 21/95 +f 36/93 37/94 22/95 +f 37/93 38/94 23/95 +f 38/93 39/94 24/95 +f 39/93 40/94 25/95 +f 124/93 41/94 26/95 +f 41/93 42/94 27/95 +f 42/93 43/94 28/95 +f 120/93 44/94 29/95 +f 44/93 45/94 30/95 +f 45/93 46/94 31/95 +f 46/93 47/94 32/95 +f 47/93 48/94 33/95 +f 48/93 49/94 34/95 +f 50/93 51/94 36/95 +f 51/93 52/94 37/95 +f 52/93 53/94 38/95 +f 53/93 54/94 39/95 +f 54/93 55/94 40/95 +f 125/93 56/94 41/95 +f 56/93 57/94 42/95 +f 57/93 58/94 43/95 +f 121/93 59/94 44/95 +f 59/93 60/94 45/95 +f 60/93 61/94 46/95 +f 61/93 62/94 47/95 +f 62/93 63/94 48/95 +f 63/93 64/94 49/95 +f 19/93 18/94 51/95 +f 18/93 17/94 52/95 +f 17/93 16/94 53/95 +f 16/93 15/94 54/95 +f 15/93 14/94 55/95 +f 122/93 13/94 56/95 +f 13/93 12/94 57/95 +f 12/93 11/94 58/95 +f 118/93 10/94 59/95 +f 10/93 9/94 60/95 +f 9/93 8/94 61/95 +f 8/93 7/94 62/95 +f 7/93 6/94 63/95 +f 6/93 5/94 64/95 +f 108/96 107/93 101/94 +f 50/93 108/94 105/95 +f 35/93 107/94 108/95 +f 20/93 106/94 107/95 +f 19/93 105/94 106/95 +f 104/93 101/94 107/95 +f 105/96 104/93 106/94 +f 112/96 1/93 2/94 +f 28/93 119/94 118/95 +f 43/93 120/94 119/95 +f 58/93 121/94 120/95 +f 11/93 118/94 121/95 +f 25/93 123/94 122/95 +f 40/93 124/94 123/95 +f 55/93 125/94 124/95 +f 14/93 122/94 125/95 +f 5/96 34/93 1/95 +f 34/96 49/93 2/95 +f 49/96 64/93 3/95 +f 64/96 5/93 4/95 +f 101/95 104/96 108/94 +f 19/96 20/93 18/95 +f 18/96 21/93 17/95 +f 17/96 22/93 16/95 +f 16/96 23/93 15/95 +f 15/96 24/93 14/95 +f 122/96 123/93 13/95 +f 13/96 26/93 12/95 +f 12/96 27/93 11/95 +f 10/95 118/96 29/94 +f 10/96 29/93 9/95 +f 9/96 30/93 8/95 +f 8/96 31/93 7/95 +f 7/96 32/93 6/95 +f 6/96 33/93 5/95 +f 20/96 35/93 21/95 +f 21/96 36/93 22/95 +f 22/96 37/93 23/95 +f 23/96 38/93 24/95 +f 24/96 39/93 25/95 +f 123/96 124/93 26/95 +f 26/96 41/93 27/95 +f 27/96 42/93 28/95 +f 119/96 120/93 29/95 +f 29/96 44/93 30/95 +f 30/96 45/93 31/95 +f 31/96 46/93 32/95 +f 32/96 47/93 33/95 +f 33/96 48/93 34/95 +f 35/96 50/93 36/95 +f 36/96 51/93 37/95 +f 37/96 52/93 38/95 +f 38/96 53/93 39/95 +f 39/96 54/93 40/95 +f 124/96 125/93 41/95 +f 41/96 56/93 42/95 +f 42/96 57/93 43/95 +f 120/96 121/93 44/95 +f 44/96 59/93 45/95 +f 45/96 60/93 46/95 +f 46/96 61/93 47/95 +f 47/96 62/93 48/95 +f 48/96 63/93 49/95 +f 50/96 19/93 51/95 +f 51/96 18/93 52/95 +f 52/96 17/93 53/95 +f 53/96 16/93 54/95 +f 54/96 15/93 55/95 +f 125/96 122/93 56/95 +f 56/96 13/93 57/95 +f 57/96 12/93 58/95 +f 121/96 118/93 59/95 +f 59/96 10/93 60/95 +f 60/96 9/93 61/95 +f 61/96 8/93 62/95 +f 62/96 7/93 63/95 +f 63/96 6/93 64/95 +f 19/96 50/93 105/95 +f 50/96 35/93 108/95 +f 35/96 20/93 107/95 +f 20/96 19/93 106/95 +f 106/96 104/93 107/95 +f 11/96 28/93 118/95 +f 28/96 43/93 119/95 +f 43/96 58/93 120/95 +f 58/96 11/93 121/95 +f 14/96 25/93 122/95 +f 25/96 40/93 123/95 +f 40/96 55/93 124/95 +f 55/96 14/93 125/95 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow1.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow1.obj new file mode 100644 index 00000000..3d8a6574 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow1.obj @@ -0,0 +1,477 @@ +# Blender v2.72 (sub 0) OBJ File: 'LongbowRigFinished.blend' +# www.blender.org +mtllib Longbow1.mtl + +v -0.000268 -3.971003 1.095047 +v -0.000268 -3.971002 1.094596 +v 0.000268 -3.971002 1.094596 +v 0.000268 -3.971003 1.095048 +v -0.000268 -3.563677 1.121438 +v -0.000268 -3.054203 1.148601 +v -0.000268 -2.544791 1.167953 +v -0.000268 -2.035393 1.185269 +v -0.000268 -1.525986 1.203901 +v -0.000268 -1.016573 1.223218 +v -0.000268 -0.132064 1.255030 +v -0.000268 0.002199 1.255030 +v -0.000268 0.136575 1.255030 +v -0.000268 1.020479 1.223279 +v -0.000268 1.529593 1.203991 +v -0.000268 2.038712 1.185382 +v -0.000268 2.547841 1.168085 +v -0.000268 3.056955 1.148743 +v -0.000268 3.566007 1.121545 +v -0.000268 3.566007 1.121008 +v -0.000268 3.056956 1.148383 +v -0.000268 2.547841 1.167555 +v -0.000268 2.038712 1.184854 +v -0.000268 1.529593 1.203466 +v -0.000268 1.020479 1.222760 +v -0.000268 0.136575 1.254494 +v -0.000268 0.002199 1.254494 +v -0.000268 -0.132064 1.254494 +v -0.000268 -1.016573 1.222699 +v -0.000268 -1.525986 1.203376 +v -0.000268 -2.035393 1.184741 +v -0.000268 -2.544791 1.167426 +v -0.000268 -3.054203 1.148070 +v -0.000268 -3.563677 1.120856 +v 0.000268 3.566007 1.121008 +v 0.000268 3.056956 1.148396 +v 0.000268 2.547841 1.167555 +v 0.000268 2.038712 1.184854 +v 0.000268 1.529593 1.203466 +v 0.000268 1.020479 1.222760 +v 0.000268 0.136575 1.254494 +v 0.000268 0.002199 1.254494 +v 0.000268 -0.132064 1.254494 +v 0.000268 -1.016573 1.222699 +v 0.000268 -1.525986 1.203376 +v 0.000268 -2.035393 1.184741 +v 0.000268 -2.544791 1.167426 +v 0.000268 -3.054203 1.148070 +v 0.000268 -3.563677 1.120856 +v 0.000268 3.566007 1.121540 +v 0.000268 3.056957 1.149002 +v 0.000268 2.547841 1.168085 +v 0.000268 2.038712 1.185382 +v 0.000268 1.529593 1.203991 +v 0.000268 1.020479 1.223279 +v 0.000268 0.136575 1.255030 +v 0.000268 0.002199 1.255030 +v 0.000268 -0.132064 1.255030 +v 0.000268 -1.016573 1.223218 +v 0.000268 -1.525986 1.203901 +v 0.000268 -2.035393 1.185269 +v 0.000268 -2.544791 1.167956 +v 0.000268 -3.054203 1.148601 +v 0.000268 -3.563677 1.121388 +v -0.039304 4.088087 1.127305 +v 0.039304 4.088087 1.127294 +v -0.067379 3.551811 0.854880 +v -0.085346 2.833168 0.586509 +v -0.101068 1.833753 0.320212 +v -0.112298 0.733394 0.231499 +v 0.112298 0.733395 0.231499 +v 0.101068 1.833753 0.320211 +v 0.085346 2.833169 0.586508 +v 0.067379 3.551811 0.854878 +v 0.112298 0.733394 0.031496 +v 0.101068 1.833753 0.140182 +v 0.085346 2.833168 0.434388 +v 0.067379 3.551809 0.734612 +v -0.112298 0.733394 0.031495 +v -0.101068 1.833753 0.140182 +v -0.085346 2.833168 0.434388 +v -0.067379 3.551809 0.734611 +v -0.039304 -4.086884 1.120878 +v 0.039304 -4.086884 1.120878 +v -0.067379 -3.551042 0.854765 +v -0.085346 -2.833012 0.586458 +v -0.101068 -1.833982 0.320198 +v -0.112298 -0.733832 0.231497 +v 0.112298 -0.733832 0.231497 +v 0.101068 -1.833982 0.320197 +v 0.085346 -2.833012 0.586458 +v 0.067379 -3.551042 0.854764 +v 0.112298 -0.733832 0.031493 +v 0.101068 -1.833982 0.140168 +v 0.085346 -2.833013 0.434340 +v 0.067379 -3.551044 0.734504 +v -0.112298 -0.733832 0.031493 +v -0.101068 -1.833982 0.140168 +v -0.085346 -2.833013 0.434340 +v -0.067379 -3.551044 0.734503 +v 0.041280 4.050359 1.110385 +v 0.041280 4.050356 1.036461 +v -0.041280 4.050356 1.036471 +v -0.041280 4.050359 1.110370 +v -0.000268 3.973338 1.095213 +v -0.000268 3.973339 1.094711 +v 0.000268 3.973339 1.094710 +v 0.000268 3.973338 1.095213 +v 0.042243 -4.030780 1.095705 +v 0.042243 -4.030783 1.020072 +v -0.042243 -4.030783 1.020085 +v -0.042243 -4.030780 1.095688 +v -0.022828 -0.323007 0.165308 +v 0.112298 -0.000220 0.231369 +v -0.112298 -0.000220 0.231369 +v 0.112298 -0.000220 0.031363 +v -0.112298 -0.000220 0.031362 +v -0.000268 -0.576800 1.238181 +v -0.000268 -0.576800 1.237656 +v 0.000268 -0.576800 1.237656 +v 0.000268 -0.576800 1.238181 +v -0.000268 0.578520 1.238216 +v -0.000268 0.578520 1.237690 +v 0.000268 0.578520 1.237690 +v 0.000268 0.578520 1.238216 +vt 0.168467 0.018892 +vt 0.168467 0.093146 +vt 0.166324 0.001744 +vt 0.078910 0.018892 +vt 0.081053 0.001744 +vt 0.078910 0.093146 +vt 0.663220 0.018892 +vt 0.573663 0.018892 +vt 0.575806 0.001744 +vt 0.661077 0.001744 +vt 0.792729 0.245375 +vt 0.819996 0.027244 +vt 0.911641 0.027244 +vt 0.050599 0.366568 +vt 0.050599 0.245369 +vt 0.196777 0.366568 +vt 0.545353 0.245375 +vt 0.496627 0.796292 +vt 0.508808 0.720291 +vt 0.728075 0.720291 +vt 0.525862 0.476500 +vt 0.711021 0.476500 +vt 0.691530 0.245375 +vt 0.245503 0.998256 +vt 0.233322 0.902066 +vt 0.233322 0.720267 +vt 0.216268 0.630006 +vt 0.216268 0.476487 +vt 0.196777 0.245369 +vt 0.001873 0.998256 +vt 0.014055 0.902066 +vt 0.031109 0.630006 +vt 0.001873 0.796257 +vt 0.014055 0.720267 +vt 0.031109 0.476487 +vt 0.823183 0.001744 +vt 0.908453 0.001744 +vt 0.413700 0.998256 +vt 0.416888 0.896772 +vt 0.416888 0.972757 +vt 0.325242 0.896772 +vt 0.328430 0.998256 +vt 0.325242 0.972757 +vt 0.756185 0.720291 +vt 0.975452 0.720291 +vt 0.987633 0.796292 +vt 0.773239 0.476500 +vt 0.958398 0.476500 +vt 0.938907 0.245375 +vt 0.480698 0.279733 +vt 0.480698 0.097934 +vt 0.492880 0.001744 +vt 0.463644 0.523513 +vt 0.463644 0.369994 +vt 0.444154 0.754631 +vt 0.444154 0.633432 +vt 0.261432 0.097934 +vt 0.249250 0.001744 +vt 0.278486 0.369994 +vt 0.297976 0.633432 +vt 0.261432 0.279733 +vt 0.278486 0.523513 +vt 0.297976 0.754631 +vt 0.994753 0.458915 +vt 0.994753 0.232074 +vt 0.998127 0.232074 +vt 0.994753 0.462403 +vt 0.994753 0.664403 +vt 0.991380 0.664403 +vt 0.994753 0.001744 +vt 0.994753 0.228585 +vt 0.991380 0.228585 +vt 0.994753 0.667891 +vt 0.994753 0.869890 +vt 0.991380 0.869890 +vt 0.998127 0.667891 +vt 0.998127 0.869890 +vt 0.998127 0.001744 +vt 0.998127 0.228585 +vt 0.998127 0.462403 +vt 0.998127 0.664403 +vt 0.991380 0.458915 +vt 0.991380 0.232074 +vt 0.740256 0.796292 +vt 0.245503 0.796257 +vt 0.744003 0.796292 +vt 0.492880 0.203743 +vt 0.249250 0.203743 +vt 0.998127 0.458915 +vt 0.991380 0.462403 +vt 0.991380 0.001744 +vt 0.991380 0.667891 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +usemtl None +s off +f 101/1 102/2 66/3 +f 104/4 65/5 103/6 +f 103/6 65/5 66/3 +f 104/7 101/8 66/9 +f 102/2 103/6 66/3 +f 65/10 104/7 66/9 +s 1 +f 85/11 112/12 109/13 +f 82/14 67/15 104/4 +f 82/14 103/6 102/2 +f 78/16 102/2 101/1 +f 74/17 101/8 104/7 +f 71/18 72/19 69/20 +f 72/19 73/21 68/22 +f 73/21 74/17 67/23 +f 75/24 76/25 72/26 +f 76/25 77/27 73/28 +f 77/27 78/16 74/29 +f 79/30 80/31 76/25 +f 80/31 81/32 77/27 +f 81/32 82/14 78/16 +f 79/30 70/33 69/34 +f 80/31 69/34 68/35 +f 81/32 68/35 67/15 +f 83/36 84/37 109/13 +f 84/38 110/39 109/40 +f 111/41 83/42 112/43 +f 110/39 84/38 83/42 +f 87/44 90/45 89/46 +f 86/47 91/48 90/45 +f 85/11 92/49 91/48 +f 90/50 94/51 93/52 +f 91/53 95/54 94/51 +f 92/55 96/56 95/54 +f 94/51 98/57 97/58 +f 94/51 95/54 99/59 +f 96/56 100/60 99/59 +f 97/58 98/57 87/61 +f 98/57 99/59 86/62 +f 99/59 100/60 85/63 +f 115/64 114/65 71/66 +f 114/67 116/68 75/69 +f 116/70 117/71 79/72 +f 117/73 115/74 70/75 +f 109/40 110/39 96/56 +f 110/39 111/41 100/60 +f 100/60 111/41 112/43 +f 97/76 88/77 115/74 +f 93/78 97/79 117/71 +f 89/80 93/81 116/68 +f 88/82 89/83 114/65 +f 92/49 85/11 109/13 +f 103/6 82/14 104/4 +f 78/16 82/14 102/2 +f 74/29 78/16 101/1 +f 67/23 74/17 104/7 +f 70/84 71/18 69/20 +f 69/20 72/19 68/22 +f 68/22 73/21 67/23 +f 71/85 75/24 72/26 +f 72/26 76/25 73/28 +f 73/28 77/27 74/29 +f 75/24 79/30 76/25 +f 76/25 80/31 77/27 +f 77/27 81/32 78/16 +f 80/31 79/30 69/34 +f 81/32 80/31 68/35 +f 82/14 81/32 67/15 +f 112/12 83/36 109/13 +f 111/41 110/39 83/42 +f 88/86 87/44 89/46 +f 87/44 86/47 90/45 +f 86/47 85/11 91/48 +f 89/87 90/50 93/52 +f 90/50 91/53 94/51 +f 91/53 92/55 95/54 +f 93/52 94/51 97/58 +f 98/57 94/51 99/59 +f 95/54 96/56 99/59 +f 88/88 97/58 87/61 +f 87/61 98/57 86/62 +f 86/62 99/59 85/63 +f 70/89 115/64 71/66 +f 71/90 114/67 75/69 +f 75/91 116/70 79/72 +f 79/92 117/73 70/75 +f 92/55 109/40 96/56 +f 96/56 110/39 100/60 +f 85/63 100/60 112/43 +f 117/73 97/76 115/74 +f 116/70 93/78 117/71 +f 114/67 89/80 116/68 +f 115/64 88/82 114/65 +usemtl None_NONE +s off +f 112/93 109/94 4/95 +f 3/96 4/93 109/94 +f 1/96 112/93 4/95 +s 1 +f 34/93 2/94 1/95 +f 49/93 3/94 2/95 +f 64/93 4/94 3/95 +f 5/93 1/94 4/95 +f 104/96 105/93 108/94 +f 20/93 21/94 18/95 +f 21/93 22/94 17/95 +f 22/93 23/94 16/95 +f 23/93 24/94 15/95 +f 24/93 25/94 14/95 +f 123/93 26/94 13/95 +f 26/93 27/94 12/95 +f 27/93 28/94 11/95 +f 118/96 119/93 29/94 +f 29/93 30/94 9/95 +f 30/93 31/94 8/95 +f 31/93 32/94 7/95 +f 32/93 33/94 6/95 +f 33/93 34/94 5/95 +f 35/93 36/94 21/95 +f 36/93 37/94 22/95 +f 37/93 38/94 23/95 +f 38/93 39/94 24/95 +f 39/93 40/94 25/95 +f 124/93 41/94 26/95 +f 41/93 42/94 27/95 +f 42/93 43/94 28/95 +f 120/93 44/94 29/95 +f 44/93 45/94 30/95 +f 45/93 46/94 31/95 +f 46/93 47/94 32/95 +f 47/93 48/94 33/95 +f 48/93 49/94 34/95 +f 50/93 51/94 36/95 +f 51/93 52/94 37/95 +f 52/93 53/94 38/95 +f 53/93 54/94 39/95 +f 54/93 55/94 40/95 +f 125/93 56/94 41/95 +f 56/93 57/94 42/95 +f 57/93 58/94 43/95 +f 121/93 59/94 44/95 +f 59/93 60/94 45/95 +f 60/93 61/94 46/95 +f 61/93 62/94 47/95 +f 62/93 63/94 48/95 +f 63/93 64/94 49/95 +f 19/93 18/94 51/95 +f 18/93 17/94 52/95 +f 17/93 16/94 53/95 +f 16/93 15/94 54/95 +f 15/93 14/94 55/95 +f 122/93 13/94 56/95 +f 13/93 12/94 57/95 +f 12/93 11/94 58/95 +f 118/93 10/94 59/95 +f 10/93 9/94 60/95 +f 9/93 8/94 61/95 +f 8/93 7/94 62/95 +f 7/93 6/94 63/95 +f 6/93 5/94 64/95 +f 108/96 107/93 101/94 +f 50/93 108/94 105/95 +f 35/93 107/94 108/95 +f 20/93 106/94 107/95 +f 19/93 105/94 106/95 +f 104/93 101/94 107/95 +f 105/96 104/93 106/94 +f 112/96 1/93 2/94 +f 28/93 119/94 118/95 +f 43/93 120/94 119/95 +f 58/93 121/94 120/95 +f 11/93 118/94 121/95 +f 25/93 123/94 122/95 +f 40/93 124/94 123/95 +f 55/93 125/94 124/95 +f 14/93 122/94 125/95 +f 5/96 34/93 1/95 +f 34/96 49/93 2/95 +f 49/96 64/93 3/95 +f 64/96 5/93 4/95 +f 101/95 104/96 108/94 +f 19/96 20/93 18/95 +f 18/96 21/93 17/95 +f 17/96 22/93 16/95 +f 16/96 23/93 15/95 +f 15/96 24/93 14/95 +f 122/96 123/93 13/95 +f 13/96 26/93 12/95 +f 12/96 27/93 11/95 +f 10/95 118/96 29/94 +f 10/96 29/93 9/95 +f 9/96 30/93 8/95 +f 8/96 31/93 7/95 +f 7/96 32/93 6/95 +f 6/96 33/93 5/95 +f 20/96 35/93 21/95 +f 21/96 36/93 22/95 +f 22/96 37/93 23/95 +f 23/96 38/93 24/95 +f 24/96 39/93 25/95 +f 123/96 124/93 26/95 +f 26/96 41/93 27/95 +f 27/96 42/93 28/95 +f 119/96 120/93 29/95 +f 29/96 44/93 30/95 +f 30/96 45/93 31/95 +f 31/96 46/93 32/95 +f 32/96 47/93 33/95 +f 33/96 48/93 34/95 +f 35/96 50/93 36/95 +f 36/96 51/93 37/95 +f 37/96 52/93 38/95 +f 38/96 53/93 39/95 +f 39/96 54/93 40/95 +f 124/96 125/93 41/95 +f 41/96 56/93 42/95 +f 42/96 57/93 43/95 +f 120/96 121/93 44/95 +f 44/96 59/93 45/95 +f 45/96 60/93 46/95 +f 46/96 61/93 47/95 +f 47/96 62/93 48/95 +f 48/96 63/93 49/95 +f 50/96 19/93 51/95 +f 51/96 18/93 52/95 +f 52/96 17/93 53/95 +f 53/96 16/93 54/95 +f 54/96 15/93 55/95 +f 125/96 122/93 56/95 +f 56/96 13/93 57/95 +f 57/96 12/93 58/95 +f 121/96 118/93 59/95 +f 59/96 10/93 60/95 +f 60/96 9/93 61/95 +f 61/96 8/93 62/95 +f 62/96 7/93 63/95 +f 63/96 6/93 64/95 +f 19/96 50/93 105/95 +f 50/96 35/93 108/95 +f 35/96 20/93 107/95 +f 20/96 19/93 106/95 +f 106/96 104/93 107/95 +f 11/96 28/93 118/95 +f 28/96 43/93 119/95 +f 43/96 58/93 120/95 +f 58/96 11/93 121/95 +f 14/96 25/93 122/95 +f 25/96 40/93 123/95 +f 40/96 55/93 124/95 +f 55/96 14/93 125/95 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow10.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow10.obj new file mode 100644 index 00000000..4d617ccf --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow10.obj @@ -0,0 +1,477 @@ +# Blender v2.72 (sub 0) OBJ File: 'LongbowRigFinished.blend' +# www.blender.org +mtllib Longbow10.mtl + +v -0.000268 -3.971003 2.288274 +v -0.000268 -3.971002 2.288631 +v 0.000268 -3.971002 2.288633 +v 0.000268 -3.971003 2.288280 +v -0.000268 -3.563677 2.567706 +v -0.000268 -3.054203 2.855305 +v -0.000268 -2.544791 3.060204 +v -0.000268 -2.035393 3.243553 +v -0.000268 -1.525986 3.440825 +v -0.000268 -1.016573 3.645352 +v -0.000268 -0.132064 3.982184 +v -0.000268 0.002199 3.982184 +v -0.000268 0.136575 3.982184 +v -0.000268 1.020479 3.646000 +v -0.000268 1.529593 3.441777 +v -0.000268 2.038712 3.244744 +v -0.000268 2.547841 3.061608 +v -0.000268 3.056955 2.856813 +v -0.000268 3.566007 2.568837 +v -0.000268 3.566007 2.568282 +v -0.000268 3.056956 2.858131 +v -0.000268 2.547841 3.061132 +v -0.000268 2.038712 3.244290 +v -0.000268 1.529593 3.441359 +v -0.000268 1.020479 3.645644 +v -0.000268 0.136575 3.981648 +v -0.000268 0.002199 3.981648 +v -0.000268 -0.132064 3.981648 +v -0.000268 -1.016573 3.644997 +v -0.000268 -1.525986 3.440407 +v -0.000268 -2.035393 3.243099 +v -0.000268 -2.544791 3.059767 +v -0.000268 -3.054203 2.854815 +v -0.000268 -3.563677 2.566677 +v 0.000268 3.566007 2.568282 +v 0.000268 3.056956 2.858274 +v 0.000268 2.547841 3.061132 +v 0.000268 2.038712 3.244290 +v 0.000268 1.529593 3.441358 +v 0.000268 1.020479 3.645644 +v 0.000268 0.136575 3.981648 +v 0.000268 0.002199 3.981648 +v 0.000268 -0.132064 3.981648 +v 0.000268 -1.016573 3.644997 +v 0.000268 -1.525986 3.440407 +v 0.000268 -2.035393 3.243099 +v 0.000268 -2.544791 3.059767 +v 0.000268 -3.054203 2.854815 +v 0.000268 -3.563677 2.566677 +v 0.000268 3.566007 2.568781 +v 0.000268 3.056957 2.859549 +v 0.000268 2.547841 3.061608 +v 0.000268 2.038712 3.244744 +v 0.000268 1.529593 3.441777 +v 0.000268 1.020479 3.646000 +v 0.000268 0.136575 3.982184 +v 0.000268 0.002199 3.982184 +v 0.000268 -0.132064 3.982184 +v 0.000268 -1.016573 3.645352 +v 0.000268 -1.525986 3.440825 +v 0.000268 -2.035393 3.243553 +v 0.000268 -2.544791 3.060243 +v 0.000268 -3.054203 2.855305 +v 0.000268 -3.563677 2.567173 +v -0.039304 4.088087 2.304876 +v 0.039304 4.088087 2.304755 +v -0.067379 3.551811 1.733217 +v -0.085346 2.833168 1.085765 +v -0.101068 1.833753 0.580503 +v -0.112298 0.733394 0.362642 +v 0.112298 0.733394 0.362640 +v 0.101068 1.833753 0.580492 +v 0.085346 2.833169 1.085763 +v 0.067379 3.551811 1.733202 +v 0.112298 0.733395 0.162606 +v 0.101068 1.833753 0.400181 +v 0.085346 2.833168 0.932493 +v 0.067379 3.551809 1.610384 +v -0.112298 0.733394 0.162599 +v -0.101068 1.833753 0.400180 +v -0.085346 2.833168 0.932492 +v -0.067379 3.551809 1.610374 +v -0.039304 -4.086884 2.236831 +v 0.039304 -4.086884 2.236830 +v -0.067379 -3.551042 1.732005 +v -0.085346 -2.833012 1.085235 +v -0.101068 -1.833982 0.580356 +v -0.112298 -0.733832 0.362620 +v 0.112298 -0.733832 0.362615 +v 0.101068 -1.833982 0.580345 +v 0.085346 -2.833012 1.085233 +v 0.067379 -3.551042 1.731988 +v 0.112298 -0.733832 0.162580 +v 0.101068 -1.833982 0.400037 +v 0.085346 -2.833013 0.931978 +v 0.067379 -3.551044 1.609236 +v -0.112298 -0.733832 0.162580 +v -0.101068 -1.833982 0.400035 +v -0.085346 -2.833013 0.931977 +v -0.067379 -3.551044 1.609225 +v 0.041280 4.050359 2.288514 +v 0.041280 4.050356 2.210705 +v -0.041280 4.050356 2.210816 +v -0.041280 4.050359 2.288356 +v -0.000268 3.973338 2.290029 +v -0.000268 3.973339 2.289846 +v 0.000268 3.973339 2.289845 +v 0.000268 3.973338 2.290033 +v 0.042243 -4.030780 2.212355 +v 0.042243 -4.030783 2.132891 +v -0.042243 -4.030783 2.133031 +v -0.042243 -4.030780 2.212177 +v -0.022828 -0.323007 0.165308 +v 0.112298 -0.000220 0.361264 +v -0.112298 -0.000220 0.361264 +v 0.112298 -0.000220 0.161197 +v -0.112298 -0.000220 0.161186 +v -0.000268 -0.576800 3.803792 +v -0.000268 -0.576800 3.803357 +v 0.000268 -0.576800 3.803357 +v 0.000268 -0.576800 3.803792 +v -0.000268 0.578520 3.804155 +v -0.000268 0.578520 3.803720 +v 0.000268 0.578520 3.803720 +v 0.000268 0.578520 3.804155 +vt 0.168467 0.018892 +vt 0.168467 0.093146 +vt 0.166324 0.001744 +vt 0.078910 0.018892 +vt 0.081053 0.001744 +vt 0.078910 0.093146 +vt 0.663220 0.018892 +vt 0.573663 0.018892 +vt 0.575806 0.001744 +vt 0.661077 0.001744 +vt 0.792729 0.245375 +vt 0.819996 0.027244 +vt 0.911641 0.027244 +vt 0.050599 0.366568 +vt 0.050599 0.245369 +vt 0.196777 0.366568 +vt 0.545353 0.245375 +vt 0.496627 0.796292 +vt 0.508808 0.720291 +vt 0.728075 0.720291 +vt 0.525862 0.476500 +vt 0.711021 0.476500 +vt 0.691530 0.245375 +vt 0.245503 0.998256 +vt 0.233322 0.902066 +vt 0.233322 0.720267 +vt 0.216268 0.630006 +vt 0.216268 0.476487 +vt 0.196777 0.245369 +vt 0.001873 0.998256 +vt 0.014055 0.902066 +vt 0.031109 0.630006 +vt 0.001873 0.796257 +vt 0.014055 0.720267 +vt 0.031109 0.476487 +vt 0.823183 0.001744 +vt 0.908453 0.001744 +vt 0.413700 0.998256 +vt 0.416888 0.896772 +vt 0.416888 0.972757 +vt 0.325242 0.896772 +vt 0.328430 0.998256 +vt 0.325242 0.972757 +vt 0.756185 0.720291 +vt 0.975452 0.720291 +vt 0.987633 0.796292 +vt 0.773239 0.476500 +vt 0.958398 0.476500 +vt 0.938907 0.245375 +vt 0.480698 0.279733 +vt 0.480698 0.097934 +vt 0.492880 0.001744 +vt 0.463644 0.523513 +vt 0.463644 0.369994 +vt 0.444154 0.754631 +vt 0.444154 0.633432 +vt 0.261432 0.097934 +vt 0.249250 0.001744 +vt 0.278486 0.369994 +vt 0.297976 0.633432 +vt 0.261432 0.279733 +vt 0.278486 0.523513 +vt 0.297976 0.754631 +vt 0.994753 0.458915 +vt 0.994753 0.232074 +vt 0.998127 0.232074 +vt 0.994753 0.462403 +vt 0.994753 0.664403 +vt 0.991380 0.664403 +vt 0.994753 0.001744 +vt 0.994753 0.228585 +vt 0.991380 0.228585 +vt 0.994753 0.667891 +vt 0.994753 0.869890 +vt 0.991380 0.869890 +vt 0.998127 0.667891 +vt 0.998127 0.869890 +vt 0.998127 0.001744 +vt 0.998127 0.228585 +vt 0.998127 0.462403 +vt 0.998127 0.664403 +vt 0.991380 0.458915 +vt 0.991380 0.232074 +vt 0.740256 0.796292 +vt 0.245503 0.796257 +vt 0.744003 0.796292 +vt 0.492880 0.203743 +vt 0.249250 0.203743 +vt 0.998127 0.458915 +vt 0.991380 0.462403 +vt 0.991380 0.001744 +vt 0.991380 0.667891 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +usemtl None +s off +f 101/1 102/2 66/3 +f 104/4 65/5 103/6 +f 103/6 65/5 66/3 +f 104/7 101/8 66/9 +f 102/2 103/6 66/3 +f 65/10 104/7 66/9 +s 1 +f 85/11 112/12 109/13 +f 82/14 67/15 104/4 +f 82/14 103/6 102/2 +f 78/16 102/2 101/1 +f 74/17 101/8 104/7 +f 71/18 72/19 69/20 +f 72/19 73/21 68/22 +f 73/21 74/17 67/23 +f 75/24 76/25 72/26 +f 76/25 77/27 73/28 +f 77/27 78/16 74/29 +f 79/30 80/31 76/25 +f 80/31 81/32 77/27 +f 81/32 82/14 78/16 +f 79/30 70/33 69/34 +f 80/31 69/34 68/35 +f 81/32 68/35 67/15 +f 83/36 84/37 109/13 +f 84/38 110/39 109/40 +f 111/41 83/42 112/43 +f 110/39 84/38 83/42 +f 87/44 90/45 89/46 +f 86/47 91/48 90/45 +f 85/11 92/49 91/48 +f 90/50 94/51 93/52 +f 91/53 95/54 94/51 +f 92/55 96/56 95/54 +f 94/51 98/57 97/58 +f 94/51 95/54 99/59 +f 96/56 100/60 99/59 +f 97/58 98/57 87/61 +f 98/57 99/59 86/62 +f 99/59 100/60 85/63 +f 115/64 114/65 71/66 +f 114/67 116/68 75/69 +f 116/70 117/71 79/72 +f 117/73 115/74 70/75 +f 109/40 110/39 96/56 +f 110/39 111/41 100/60 +f 100/60 111/41 112/43 +f 97/76 88/77 115/74 +f 93/78 97/79 117/71 +f 89/80 93/81 116/68 +f 88/82 89/83 114/65 +f 92/49 85/11 109/13 +f 103/6 82/14 104/4 +f 78/16 82/14 102/2 +f 74/29 78/16 101/1 +f 67/23 74/17 104/7 +f 70/84 71/18 69/20 +f 69/20 72/19 68/22 +f 68/22 73/21 67/23 +f 71/85 75/24 72/26 +f 72/26 76/25 73/28 +f 73/28 77/27 74/29 +f 75/24 79/30 76/25 +f 76/25 80/31 77/27 +f 77/27 81/32 78/16 +f 80/31 79/30 69/34 +f 81/32 80/31 68/35 +f 82/14 81/32 67/15 +f 112/12 83/36 109/13 +f 111/41 110/39 83/42 +f 88/86 87/44 89/46 +f 87/44 86/47 90/45 +f 86/47 85/11 91/48 +f 89/87 90/50 93/52 +f 90/50 91/53 94/51 +f 91/53 92/55 95/54 +f 93/52 94/51 97/58 +f 98/57 94/51 99/59 +f 95/54 96/56 99/59 +f 88/88 97/58 87/61 +f 87/61 98/57 86/62 +f 86/62 99/59 85/63 +f 70/89 115/64 71/66 +f 71/90 114/67 75/69 +f 75/91 116/70 79/72 +f 79/92 117/73 70/75 +f 92/55 109/40 96/56 +f 96/56 110/39 100/60 +f 85/63 100/60 112/43 +f 117/73 97/76 115/74 +f 116/70 93/78 117/71 +f 114/67 89/80 116/68 +f 115/64 88/82 114/65 +usemtl None_NONE +s off +f 112/93 109/94 4/95 +f 3/96 4/93 109/94 +f 1/96 112/93 4/95 +s 1 +f 34/93 2/94 1/95 +f 49/93 3/94 2/95 +f 64/93 4/94 3/95 +f 5/93 1/94 4/95 +f 104/96 105/93 108/94 +f 20/93 21/94 18/95 +f 21/93 22/94 17/95 +f 22/93 23/94 16/95 +f 23/93 24/94 15/95 +f 24/93 25/94 14/95 +f 123/93 26/94 13/95 +f 26/93 27/94 12/95 +f 27/93 28/94 11/95 +f 118/96 119/93 29/94 +f 29/93 30/94 9/95 +f 30/93 31/94 8/95 +f 31/93 32/94 7/95 +f 32/93 33/94 6/95 +f 33/93 34/94 5/95 +f 35/93 36/94 21/95 +f 36/93 37/94 22/95 +f 37/93 38/94 23/95 +f 38/93 39/94 24/95 +f 39/93 40/94 25/95 +f 124/93 41/94 26/95 +f 41/93 42/94 27/95 +f 42/93 43/94 28/95 +f 120/93 44/94 29/95 +f 44/93 45/94 30/95 +f 45/93 46/94 31/95 +f 46/93 47/94 32/95 +f 47/93 48/94 33/95 +f 48/93 49/94 34/95 +f 50/93 51/94 36/95 +f 51/93 52/94 37/95 +f 52/93 53/94 38/95 +f 53/93 54/94 39/95 +f 54/93 55/94 40/95 +f 125/93 56/94 41/95 +f 56/93 57/94 42/95 +f 57/93 58/94 43/95 +f 121/93 59/94 44/95 +f 59/93 60/94 45/95 +f 60/93 61/94 46/95 +f 61/93 62/94 47/95 +f 62/93 63/94 48/95 +f 63/93 64/94 49/95 +f 19/93 18/94 51/95 +f 18/93 17/94 52/95 +f 17/93 16/94 53/95 +f 16/93 15/94 54/95 +f 15/93 14/94 55/95 +f 122/93 13/94 56/95 +f 13/93 12/94 57/95 +f 12/93 11/94 58/95 +f 118/93 10/94 59/95 +f 10/93 9/94 60/95 +f 9/93 8/94 61/95 +f 8/93 7/94 62/95 +f 7/93 6/94 63/95 +f 6/93 5/94 64/95 +f 108/96 107/93 101/94 +f 50/93 108/94 105/95 +f 35/93 107/94 108/95 +f 20/93 106/94 107/95 +f 19/93 105/94 106/95 +f 104/93 101/94 107/95 +f 105/96 104/93 106/94 +f 112/96 1/93 2/94 +f 28/93 119/94 118/95 +f 43/93 120/94 119/95 +f 58/93 121/94 120/95 +f 11/93 118/94 121/95 +f 25/93 123/94 122/95 +f 40/93 124/94 123/95 +f 55/93 125/94 124/95 +f 14/93 122/94 125/95 +f 5/96 34/93 1/95 +f 34/96 49/93 2/95 +f 49/96 64/93 3/95 +f 64/96 5/93 4/95 +f 101/95 104/96 108/94 +f 19/96 20/93 18/95 +f 18/96 21/93 17/95 +f 17/96 22/93 16/95 +f 16/96 23/93 15/95 +f 15/96 24/93 14/95 +f 122/96 123/93 13/95 +f 13/96 26/93 12/95 +f 12/96 27/93 11/95 +f 10/95 118/96 29/94 +f 10/96 29/93 9/95 +f 9/96 30/93 8/95 +f 8/96 31/93 7/95 +f 7/96 32/93 6/95 +f 6/96 33/93 5/95 +f 20/96 35/93 21/95 +f 21/96 36/93 22/95 +f 22/96 37/93 23/95 +f 23/96 38/93 24/95 +f 24/96 39/93 25/95 +f 123/96 124/93 26/95 +f 26/96 41/93 27/95 +f 27/96 42/93 28/95 +f 119/96 120/93 29/95 +f 29/96 44/93 30/95 +f 30/96 45/93 31/95 +f 31/96 46/93 32/95 +f 32/96 47/93 33/95 +f 33/96 48/93 34/95 +f 35/96 50/93 36/95 +f 36/96 51/93 37/95 +f 37/96 52/93 38/95 +f 38/96 53/93 39/95 +f 39/96 54/93 40/95 +f 124/96 125/93 41/95 +f 41/96 56/93 42/95 +f 42/96 57/93 43/95 +f 120/96 121/93 44/95 +f 44/96 59/93 45/95 +f 45/96 60/93 46/95 +f 46/96 61/93 47/95 +f 47/96 62/93 48/95 +f 48/96 63/93 49/95 +f 50/96 19/93 51/95 +f 51/96 18/93 52/95 +f 52/96 17/93 53/95 +f 53/96 16/93 54/95 +f 54/96 15/93 55/95 +f 125/96 122/93 56/95 +f 56/96 13/93 57/95 +f 57/96 12/93 58/95 +f 121/96 118/93 59/95 +f 59/96 10/93 60/95 +f 60/96 9/93 61/95 +f 61/96 8/93 62/95 +f 62/96 7/93 63/95 +f 63/96 6/93 64/95 +f 19/96 50/93 105/95 +f 50/96 35/93 108/95 +f 35/96 20/93 107/95 +f 20/96 19/93 106/95 +f 106/96 104/93 107/95 +f 11/96 28/93 118/95 +f 28/96 43/93 119/95 +f 43/96 58/93 120/95 +f 58/96 11/93 121/95 +f 14/96 25/93 122/95 +f 25/96 40/93 123/95 +f 40/96 55/93 124/95 +f 55/96 14/93 125/95 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow2.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow2.obj new file mode 100644 index 00000000..55e3cbba --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow2.obj @@ -0,0 +1,477 @@ +# Blender v2.72 (sub 0) OBJ File: 'LongbowRigFinished.blend' +# www.blender.org +mtllib Longbow2.mtl + +v -0.000268 -3.971003 1.195311 +v -0.000268 -3.971002 1.194927 +v 0.000268 -3.971002 1.194928 +v 0.000268 -3.971003 1.195312 +v -0.000268 -3.563677 1.242964 +v -0.000268 -3.054203 1.292011 +v -0.000268 -2.544791 1.326953 +v -0.000268 -2.035393 1.358221 +v -0.000268 -1.525986 1.391863 +v -0.000268 -1.016573 1.426743 +v -0.000268 -0.132064 1.484185 +v -0.000268 0.002199 1.484185 +v -0.000268 0.136575 1.484185 +v -0.000268 1.020479 1.426854 +v -0.000268 1.529593 1.392026 +v -0.000268 2.038712 1.358424 +v -0.000268 2.547841 1.327193 +v -0.000268 3.056955 1.292268 +v -0.000268 3.566007 1.243157 +v -0.000268 3.566007 1.242618 +v -0.000268 3.056956 1.292048 +v -0.000268 2.547841 1.326668 +v -0.000268 2.038712 1.357903 +v -0.000268 1.529593 1.391510 +v -0.000268 1.020479 1.426349 +v -0.000268 0.136575 1.483650 +v -0.000268 0.002199 1.483650 +v -0.000268 -0.132064 1.483650 +v -0.000268 -1.016573 1.426238 +v -0.000268 -1.525986 1.391348 +v -0.000268 -2.035393 1.357700 +v -0.000268 -2.544791 1.326435 +v -0.000268 -3.054203 1.291483 +v -0.000268 -3.563677 1.242344 +v 0.000268 3.566007 1.242618 +v 0.000268 3.056956 1.292073 +v 0.000268 2.547841 1.326668 +v 0.000268 2.038712 1.357903 +v 0.000268 1.529593 1.391510 +v 0.000268 1.020479 1.426349 +v 0.000268 0.136575 1.483650 +v 0.000268 0.002199 1.483650 +v 0.000268 -0.132064 1.483650 +v 0.000268 -1.016573 1.426238 +v 0.000268 -1.525986 1.391348 +v 0.000268 -2.035393 1.357700 +v 0.000268 -2.544791 1.326435 +v 0.000268 -3.054203 1.291483 +v 0.000268 -3.563677 1.242344 +v 0.000268 3.566007 1.243147 +v 0.000268 3.056957 1.292734 +v 0.000268 2.547841 1.327193 +v 0.000268 2.038712 1.358424 +v 0.000268 1.529593 1.392026 +v 0.000268 1.020479 1.426853 +v 0.000268 0.136575 1.484185 +v 0.000268 0.002199 1.484185 +v 0.000268 -0.132064 1.484185 +v 0.000268 -1.016573 1.426743 +v 0.000268 -1.525986 1.391863 +v 0.000268 -2.035393 1.358221 +v 0.000268 -2.544791 1.326960 +v 0.000268 -3.054203 1.292011 +v 0.000268 -3.563677 1.242873 +v -0.039304 4.088087 1.226253 +v 0.039304 4.088087 1.226233 +v -0.067379 3.551811 0.928684 +v -0.085346 2.833168 0.628460 +v -0.101068 1.833753 0.342084 +v -0.112298 0.733394 0.242519 +v 0.112298 0.733395 0.242518 +v 0.101068 1.833753 0.342082 +v 0.085346 2.833169 0.628459 +v 0.067379 3.551811 0.928681 +v 0.112298 0.733394 0.042512 +v 0.101068 1.833753 0.162029 +v 0.085346 2.833168 0.476243 +v 0.067379 3.551809 0.808201 +v -0.112298 0.733394 0.042511 +v -0.101068 1.833753 0.162028 +v -0.085346 2.833168 0.476243 +v -0.067379 3.551809 0.808199 +v -0.039304 -4.086884 1.214649 +v 0.039304 -4.086884 1.214649 +v -0.067379 -3.551042 0.928477 +v -0.085346 -2.833012 0.628369 +v -0.101068 -1.833982 0.342059 +v -0.112298 -0.733832 0.242515 +v 0.112298 -0.733832 0.242514 +v 0.101068 -1.833982 0.342057 +v 0.085346 -2.833012 0.628369 +v 0.067379 -3.551042 0.928474 +v 0.112298 -0.733832 0.042508 +v 0.101068 -1.833982 0.162004 +v 0.085346 -2.833013 0.476155 +v 0.067379 -3.551044 0.808005 +v -0.112298 -0.733832 0.042508 +v -0.101068 -1.833982 0.162004 +v -0.085346 -2.833013 0.476155 +v -0.067379 -3.551044 0.808003 +v 0.041280 4.050359 1.209380 +v 0.041280 4.050356 1.135129 +v -0.041280 4.050356 1.135148 +v -0.041280 4.050359 1.209353 +v -0.000268 3.973338 1.195610 +v -0.000268 3.973339 1.195135 +v 0.000268 3.973339 1.195134 +v 0.000268 3.973338 1.195611 +v 0.042243 -4.030780 1.189534 +v 0.042243 -4.030783 1.113579 +v -0.042243 -4.030783 1.113603 +v -0.042243 -4.030780 1.189503 +v -0.022828 -0.323007 0.165308 +v 0.112298 -0.000220 0.242284 +v -0.112298 -0.000220 0.242284 +v 0.112298 -0.000220 0.042272 +v -0.112298 -0.000220 0.042270 +v -0.000268 -0.576800 1.453763 +v -0.000268 -0.576800 1.453245 +v 0.000268 -0.576800 1.453245 +v 0.000268 -0.576800 1.453763 +v -0.000268 0.578520 1.453825 +v -0.000268 0.578520 1.453307 +v 0.000268 0.578520 1.453307 +v 0.000268 0.578520 1.453825 +vt 0.168467 0.018892 +vt 0.168467 0.093146 +vt 0.166324 0.001744 +vt 0.078910 0.018892 +vt 0.081053 0.001744 +vt 0.078910 0.093146 +vt 0.663220 0.018892 +vt 0.573663 0.018892 +vt 0.575806 0.001744 +vt 0.661077 0.001744 +vt 0.792729 0.245375 +vt 0.819996 0.027244 +vt 0.911641 0.027244 +vt 0.050599 0.366568 +vt 0.050599 0.245369 +vt 0.196777 0.366568 +vt 0.545353 0.245375 +vt 0.496627 0.796292 +vt 0.508808 0.720291 +vt 0.728075 0.720291 +vt 0.525862 0.476500 +vt 0.711021 0.476500 +vt 0.691530 0.245375 +vt 0.245503 0.998256 +vt 0.233322 0.902066 +vt 0.233322 0.720267 +vt 0.216268 0.630006 +vt 0.216268 0.476487 +vt 0.196777 0.245369 +vt 0.001873 0.998256 +vt 0.014055 0.902066 +vt 0.031109 0.630006 +vt 0.001873 0.796257 +vt 0.014055 0.720267 +vt 0.031109 0.476487 +vt 0.823183 0.001744 +vt 0.908453 0.001744 +vt 0.413700 0.998256 +vt 0.416888 0.896772 +vt 0.416888 0.972757 +vt 0.325242 0.896772 +vt 0.328430 0.998256 +vt 0.325242 0.972757 +vt 0.756185 0.720291 +vt 0.975452 0.720291 +vt 0.987633 0.796292 +vt 0.773239 0.476500 +vt 0.958398 0.476500 +vt 0.938907 0.245375 +vt 0.480698 0.279733 +vt 0.480698 0.097934 +vt 0.492880 0.001744 +vt 0.463644 0.523513 +vt 0.463644 0.369994 +vt 0.444154 0.754631 +vt 0.444154 0.633432 +vt 0.261432 0.097934 +vt 0.249250 0.001744 +vt 0.278486 0.369994 +vt 0.297976 0.633432 +vt 0.261432 0.279733 +vt 0.278486 0.523513 +vt 0.297976 0.754631 +vt 0.994753 0.458915 +vt 0.994753 0.232074 +vt 0.998127 0.232074 +vt 0.994753 0.462403 +vt 0.994753 0.664403 +vt 0.991380 0.664403 +vt 0.994753 0.001744 +vt 0.994753 0.228585 +vt 0.991380 0.228585 +vt 0.994753 0.667891 +vt 0.994753 0.869890 +vt 0.991380 0.869890 +vt 0.998127 0.667891 +vt 0.998127 0.869890 +vt 0.998127 0.001744 +vt 0.998127 0.228585 +vt 0.998127 0.462403 +vt 0.998127 0.664403 +vt 0.991380 0.458915 +vt 0.991380 0.232074 +vt 0.740256 0.796292 +vt 0.245503 0.796257 +vt 0.744003 0.796292 +vt 0.492880 0.203743 +vt 0.249250 0.203743 +vt 0.998127 0.458915 +vt 0.991380 0.462403 +vt 0.991380 0.001744 +vt 0.991380 0.667891 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +usemtl None +s off +f 101/1 102/2 66/3 +f 104/4 65/5 103/6 +f 103/6 65/5 66/3 +f 104/7 101/8 66/9 +f 102/2 103/6 66/3 +f 65/10 104/7 66/9 +s 1 +f 85/11 112/12 109/13 +f 82/14 67/15 104/4 +f 82/14 103/6 102/2 +f 78/16 102/2 101/1 +f 74/17 101/8 104/7 +f 71/18 72/19 69/20 +f 72/19 73/21 68/22 +f 73/21 74/17 67/23 +f 75/24 76/25 72/26 +f 76/25 77/27 73/28 +f 77/27 78/16 74/29 +f 79/30 80/31 76/25 +f 80/31 81/32 77/27 +f 81/32 82/14 78/16 +f 79/30 70/33 69/34 +f 80/31 69/34 68/35 +f 81/32 68/35 67/15 +f 83/36 84/37 109/13 +f 84/38 110/39 109/40 +f 111/41 83/42 112/43 +f 110/39 84/38 83/42 +f 87/44 90/45 89/46 +f 86/47 91/48 90/45 +f 85/11 92/49 91/48 +f 90/50 94/51 93/52 +f 91/53 95/54 94/51 +f 92/55 96/56 95/54 +f 94/51 98/57 97/58 +f 94/51 95/54 99/59 +f 96/56 100/60 99/59 +f 97/58 98/57 87/61 +f 98/57 99/59 86/62 +f 99/59 100/60 85/63 +f 115/64 114/65 71/66 +f 114/67 116/68 75/69 +f 116/70 117/71 79/72 +f 117/73 115/74 70/75 +f 109/40 110/39 96/56 +f 110/39 111/41 100/60 +f 100/60 111/41 112/43 +f 97/76 88/77 115/74 +f 93/78 97/79 117/71 +f 89/80 93/81 116/68 +f 88/82 89/83 114/65 +f 92/49 85/11 109/13 +f 103/6 82/14 104/4 +f 78/16 82/14 102/2 +f 74/29 78/16 101/1 +f 67/23 74/17 104/7 +f 70/84 71/18 69/20 +f 69/20 72/19 68/22 +f 68/22 73/21 67/23 +f 71/85 75/24 72/26 +f 72/26 76/25 73/28 +f 73/28 77/27 74/29 +f 75/24 79/30 76/25 +f 76/25 80/31 77/27 +f 77/27 81/32 78/16 +f 80/31 79/30 69/34 +f 81/32 80/31 68/35 +f 82/14 81/32 67/15 +f 112/12 83/36 109/13 +f 111/41 110/39 83/42 +f 88/86 87/44 89/46 +f 87/44 86/47 90/45 +f 86/47 85/11 91/48 +f 89/87 90/50 93/52 +f 90/50 91/53 94/51 +f 91/53 92/55 95/54 +f 93/52 94/51 97/58 +f 98/57 94/51 99/59 +f 95/54 96/56 99/59 +f 88/88 97/58 87/61 +f 87/61 98/57 86/62 +f 86/62 99/59 85/63 +f 70/89 115/64 71/66 +f 71/90 114/67 75/69 +f 75/91 116/70 79/72 +f 79/92 117/73 70/75 +f 92/55 109/40 96/56 +f 96/56 110/39 100/60 +f 85/63 100/60 112/43 +f 117/73 97/76 115/74 +f 116/70 93/78 117/71 +f 114/67 89/80 116/68 +f 115/64 88/82 114/65 +usemtl None_NONE +s off +f 112/93 109/94 4/95 +f 3/96 4/93 109/94 +f 1/96 112/93 4/95 +s 1 +f 34/93 2/94 1/95 +f 49/93 3/94 2/95 +f 64/93 4/94 3/95 +f 5/93 1/94 4/95 +f 104/96 105/93 108/94 +f 20/93 21/94 18/95 +f 21/93 22/94 17/95 +f 22/93 23/94 16/95 +f 23/93 24/94 15/95 +f 24/93 25/94 14/95 +f 123/93 26/94 13/95 +f 26/93 27/94 12/95 +f 27/93 28/94 11/95 +f 118/96 119/93 29/94 +f 29/93 30/94 9/95 +f 30/93 31/94 8/95 +f 31/93 32/94 7/95 +f 32/93 33/94 6/95 +f 33/93 34/94 5/95 +f 35/93 36/94 21/95 +f 36/93 37/94 22/95 +f 37/93 38/94 23/95 +f 38/93 39/94 24/95 +f 39/93 40/94 25/95 +f 124/93 41/94 26/95 +f 41/93 42/94 27/95 +f 42/93 43/94 28/95 +f 120/93 44/94 29/95 +f 44/93 45/94 30/95 +f 45/93 46/94 31/95 +f 46/93 47/94 32/95 +f 47/93 48/94 33/95 +f 48/93 49/94 34/95 +f 50/93 51/94 36/95 +f 51/93 52/94 37/95 +f 52/93 53/94 38/95 +f 53/93 54/94 39/95 +f 54/93 55/94 40/95 +f 125/93 56/94 41/95 +f 56/93 57/94 42/95 +f 57/93 58/94 43/95 +f 121/93 59/94 44/95 +f 59/93 60/94 45/95 +f 60/93 61/94 46/95 +f 61/93 62/94 47/95 +f 62/93 63/94 48/95 +f 63/93 64/94 49/95 +f 19/93 18/94 51/95 +f 18/93 17/94 52/95 +f 17/93 16/94 53/95 +f 16/93 15/94 54/95 +f 15/93 14/94 55/95 +f 122/93 13/94 56/95 +f 13/93 12/94 57/95 +f 12/93 11/94 58/95 +f 118/93 10/94 59/95 +f 10/93 9/94 60/95 +f 9/93 8/94 61/95 +f 8/93 7/94 62/95 +f 7/93 6/94 63/95 +f 6/93 5/94 64/95 +f 108/96 107/93 101/94 +f 50/93 108/94 105/95 +f 35/93 107/94 108/95 +f 20/93 106/94 107/95 +f 19/93 105/94 106/95 +f 104/93 101/94 107/95 +f 105/96 104/93 106/94 +f 112/96 1/93 2/94 +f 28/93 119/94 118/95 +f 43/93 120/94 119/95 +f 58/93 121/94 120/95 +f 11/93 118/94 121/95 +f 25/93 123/94 122/95 +f 40/93 124/94 123/95 +f 55/93 125/94 124/95 +f 14/93 122/94 125/95 +f 5/96 34/93 1/95 +f 34/96 49/93 2/95 +f 49/96 64/93 3/95 +f 64/96 5/93 4/95 +f 101/95 104/96 108/94 +f 19/96 20/93 18/95 +f 18/96 21/93 17/95 +f 17/96 22/93 16/95 +f 16/96 23/93 15/95 +f 15/96 24/93 14/95 +f 122/96 123/93 13/95 +f 13/96 26/93 12/95 +f 12/96 27/93 11/95 +f 10/95 118/96 29/94 +f 10/96 29/93 9/95 +f 9/96 30/93 8/95 +f 8/96 31/93 7/95 +f 7/96 32/93 6/95 +f 6/96 33/93 5/95 +f 20/96 35/93 21/95 +f 21/96 36/93 22/95 +f 22/96 37/93 23/95 +f 23/96 38/93 24/95 +f 24/96 39/93 25/95 +f 123/96 124/93 26/95 +f 26/96 41/93 27/95 +f 27/96 42/93 28/95 +f 119/96 120/93 29/95 +f 29/96 44/93 30/95 +f 30/96 45/93 31/95 +f 31/96 46/93 32/95 +f 32/96 47/93 33/95 +f 33/96 48/93 34/95 +f 35/96 50/93 36/95 +f 36/96 51/93 37/95 +f 37/96 52/93 38/95 +f 38/96 53/93 39/95 +f 39/96 54/93 40/95 +f 124/96 125/93 41/95 +f 41/96 56/93 42/95 +f 42/96 57/93 43/95 +f 120/96 121/93 44/95 +f 44/96 59/93 45/95 +f 45/96 60/93 46/95 +f 46/96 61/93 47/95 +f 47/96 62/93 48/95 +f 48/96 63/93 49/95 +f 50/96 19/93 51/95 +f 51/96 18/93 52/95 +f 52/96 17/93 53/95 +f 53/96 16/93 54/95 +f 54/96 15/93 55/95 +f 125/96 122/93 56/95 +f 56/96 13/93 57/95 +f 57/96 12/93 58/95 +f 121/96 118/93 59/95 +f 59/96 10/93 60/95 +f 60/96 9/93 61/95 +f 61/96 8/93 62/95 +f 62/96 7/93 63/95 +f 63/96 6/93 64/95 +f 19/96 50/93 105/95 +f 50/96 35/93 108/95 +f 35/96 20/93 107/95 +f 20/96 19/93 106/95 +f 106/96 104/93 107/95 +f 11/96 28/93 118/95 +f 28/96 43/93 119/95 +f 43/96 58/93 120/95 +f 58/96 11/93 121/95 +f 14/96 25/93 122/95 +f 25/96 40/93 123/95 +f 40/96 55/93 124/95 +f 55/96 14/93 125/95 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow3.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow3.obj new file mode 100644 index 00000000..5907fca8 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow3.obj @@ -0,0 +1,477 @@ +# Blender v2.72 (sub 0) OBJ File: 'LongbowRigFinished.blend' +# www.blender.org +mtllib Longbow3.mtl + +v -0.000268 -3.971003 1.302731 +v -0.000268 -3.971002 1.302420 +v 0.000268 -3.971002 1.302421 +v 0.000268 -3.971003 1.302733 +v -0.000268 -3.563677 1.373165 +v -0.000268 -3.054203 1.445657 +v -0.000268 -2.544791 1.497303 +v -0.000268 -2.035393 1.543518 +v -0.000268 -1.525986 1.593243 +v -0.000268 -1.016573 1.644796 +v -0.000268 -0.132064 1.729697 +v -0.000268 0.002199 1.729697 +v -0.000268 0.136575 1.729697 +v -0.000268 1.020479 1.644959 +v -0.000268 1.529593 1.593483 +v -0.000268 2.038712 1.543818 +v -0.000268 2.547841 1.497657 +v -0.000268 3.056955 1.446037 +v -0.000268 3.566007 1.373450 +v -0.000268 3.566007 1.372909 +v -0.000268 3.056956 1.445969 +v -0.000268 2.547841 1.497137 +v -0.000268 2.038712 1.543304 +v -0.000268 1.529593 1.592977 +v -0.000268 1.020479 1.644469 +v -0.000268 0.136575 1.729162 +v -0.000268 0.002199 1.729162 +v -0.000268 -0.132064 1.729162 +v -0.000268 -1.016573 1.644306 +v -0.000268 -1.525986 1.592737 +v -0.000268 -2.035393 1.543003 +v -0.000268 -2.544791 1.496793 +v -0.000268 -3.054203 1.445133 +v -0.000268 -3.563677 1.372504 +v 0.000268 3.566007 1.372909 +v 0.000268 3.056956 1.446004 +v 0.000268 2.547841 1.497137 +v 0.000268 2.038712 1.543304 +v 0.000268 1.529593 1.592977 +v 0.000268 1.020479 1.644469 +v 0.000268 0.136575 1.729162 +v 0.000268 0.002199 1.729162 +v 0.000268 -0.132064 1.729162 +v 0.000268 -1.016573 1.644306 +v 0.000268 -1.525986 1.592737 +v 0.000268 -2.035393 1.543003 +v 0.000268 -2.544791 1.496793 +v 0.000268 -3.054203 1.445133 +v 0.000268 -3.563677 1.372504 +v 0.000268 3.566007 1.373435 +v 0.000268 3.056957 1.446726 +v 0.000268 2.547841 1.497657 +v 0.000268 2.038712 1.543818 +v 0.000268 1.529593 1.593483 +v 0.000268 1.020479 1.644959 +v 0.000268 0.136575 1.729697 +v 0.000268 0.002199 1.729697 +v 0.000268 -0.132064 1.729697 +v 0.000268 -1.016573 1.644796 +v 0.000268 -1.525986 1.593243 +v 0.000268 -2.035393 1.543518 +v 0.000268 -2.544791 1.497313 +v 0.000268 -3.054203 1.445657 +v 0.000268 -3.563677 1.373030 +v -0.039304 4.088087 1.332264 +v 0.039304 4.088087 1.332234 +v -0.067379 3.551811 1.007756 +v -0.085346 2.833168 0.673405 +v -0.101068 1.833753 0.365516 +v -0.112298 0.733394 0.254325 +v 0.112298 0.733395 0.254324 +v 0.101068 1.833753 0.365514 +v 0.085346 2.833169 0.673405 +v 0.067379 3.551811 1.007753 +v 0.112298 0.733394 0.054316 +v 0.101068 1.833753 0.185435 +v 0.085346 2.833168 0.521085 +v 0.067379 3.551809 0.887042 +v -0.112298 0.733394 0.054314 +v -0.101068 1.833753 0.185435 +v -0.085346 2.833168 0.521084 +v -0.067379 3.551809 0.887040 +v -0.039304 -4.086884 1.315113 +v 0.039304 -4.086884 1.315112 +v -0.067379 -3.551042 1.007451 +v -0.085346 -2.833012 0.673272 +v -0.101068 -1.833982 0.365479 +v -0.112298 -0.733832 0.254319 +v 0.112298 -0.733832 0.254318 +v 0.101068 -1.833982 0.365476 +v 0.085346 -2.833012 0.673271 +v 0.067379 -3.551042 1.007447 +v 0.112298 -0.733832 0.054309 +v 0.101068 -1.833982 0.185399 +v 0.085346 -2.833013 0.520955 +v 0.067379 -3.551044 0.886753 +v -0.112298 -0.733832 0.054309 +v -0.101068 -1.833982 0.185399 +v -0.085346 -2.833013 0.520955 +v -0.067379 -3.551044 0.886750 +v 0.041280 4.050359 1.315441 +v 0.041280 4.050356 1.240841 +v -0.041280 4.050356 1.240869 +v -0.041280 4.050359 1.315401 +v -0.000268 3.973338 1.303173 +v -0.000268 3.973339 1.302727 +v 0.000268 3.973339 1.302726 +v 0.000268 3.973338 1.303174 +v 0.042243 -4.030780 1.290060 +v 0.042243 -4.030783 1.213760 +v -0.042243 -4.030783 1.213796 +v -0.042243 -4.030780 1.290015 +v -0.022828 -0.323007 0.165308 +v 0.112298 -0.000220 0.253977 +v -0.112298 -0.000220 0.253977 +v 0.112298 -0.000220 0.053960 +v -0.112298 -0.000220 0.053958 +v -0.000268 -0.576800 1.684732 +v -0.000268 -0.576800 1.684222 +v 0.000268 -0.576800 1.684222 +v 0.000268 -0.576800 1.684732 +v -0.000268 0.578520 1.684824 +v -0.000268 0.578520 1.684314 +v 0.000268 0.578520 1.684314 +v 0.000268 0.578520 1.684824 +vt 0.168467 0.018892 +vt 0.168467 0.093146 +vt 0.166324 0.001744 +vt 0.078910 0.018892 +vt 0.081053 0.001744 +vt 0.078910 0.093146 +vt 0.663220 0.018892 +vt 0.573663 0.018892 +vt 0.575806 0.001744 +vt 0.661077 0.001744 +vt 0.792729 0.245375 +vt 0.819996 0.027244 +vt 0.911641 0.027244 +vt 0.050599 0.366568 +vt 0.050599 0.245369 +vt 0.196777 0.366568 +vt 0.545353 0.245375 +vt 0.496627 0.796292 +vt 0.508808 0.720291 +vt 0.728075 0.720291 +vt 0.525862 0.476500 +vt 0.711021 0.476500 +vt 0.691530 0.245375 +vt 0.245503 0.998256 +vt 0.233322 0.902066 +vt 0.233322 0.720267 +vt 0.216268 0.630006 +vt 0.216268 0.476487 +vt 0.196777 0.245369 +vt 0.001873 0.998256 +vt 0.014055 0.902066 +vt 0.031109 0.630006 +vt 0.001873 0.796257 +vt 0.014055 0.720267 +vt 0.031109 0.476487 +vt 0.823183 0.001744 +vt 0.908453 0.001744 +vt 0.413700 0.998256 +vt 0.416888 0.896772 +vt 0.416888 0.972757 +vt 0.325242 0.896772 +vt 0.328430 0.998256 +vt 0.325242 0.972757 +vt 0.756185 0.720291 +vt 0.975452 0.720291 +vt 0.987633 0.796292 +vt 0.773239 0.476500 +vt 0.958398 0.476500 +vt 0.938907 0.245375 +vt 0.480698 0.279733 +vt 0.480698 0.097934 +vt 0.492880 0.001744 +vt 0.463644 0.523513 +vt 0.463644 0.369994 +vt 0.444154 0.754631 +vt 0.444154 0.633432 +vt 0.261432 0.097934 +vt 0.249250 0.001744 +vt 0.278486 0.369994 +vt 0.297976 0.633432 +vt 0.261432 0.279733 +vt 0.278486 0.523513 +vt 0.297976 0.754631 +vt 0.994753 0.458915 +vt 0.994753 0.232074 +vt 0.998127 0.232074 +vt 0.994753 0.462403 +vt 0.994753 0.664403 +vt 0.991380 0.664403 +vt 0.994753 0.001744 +vt 0.994753 0.228585 +vt 0.991380 0.228585 +vt 0.994753 0.667891 +vt 0.994753 0.869890 +vt 0.991380 0.869890 +vt 0.998127 0.667891 +vt 0.998127 0.869890 +vt 0.998127 0.001744 +vt 0.998127 0.228585 +vt 0.998127 0.462403 +vt 0.998127 0.664403 +vt 0.991380 0.458915 +vt 0.991380 0.232074 +vt 0.740256 0.796292 +vt 0.245503 0.796257 +vt 0.744003 0.796292 +vt 0.492880 0.203743 +vt 0.249250 0.203743 +vt 0.998127 0.458915 +vt 0.991380 0.462403 +vt 0.991380 0.001744 +vt 0.991380 0.667891 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +usemtl None +s off +f 101/1 102/2 66/3 +f 104/4 65/5 103/6 +f 103/6 65/5 66/3 +f 104/7 101/8 66/9 +f 102/2 103/6 66/3 +f 65/10 104/7 66/9 +s 1 +f 85/11 112/12 109/13 +f 82/14 67/15 104/4 +f 82/14 103/6 102/2 +f 78/16 102/2 101/1 +f 74/17 101/8 104/7 +f 71/18 72/19 69/20 +f 72/19 73/21 68/22 +f 73/21 74/17 67/23 +f 75/24 76/25 72/26 +f 76/25 77/27 73/28 +f 77/27 78/16 74/29 +f 79/30 80/31 76/25 +f 80/31 81/32 77/27 +f 81/32 82/14 78/16 +f 79/30 70/33 69/34 +f 80/31 69/34 68/35 +f 81/32 68/35 67/15 +f 83/36 84/37 109/13 +f 84/38 110/39 109/40 +f 111/41 83/42 112/43 +f 110/39 84/38 83/42 +f 87/44 90/45 89/46 +f 86/47 91/48 90/45 +f 85/11 92/49 91/48 +f 90/50 94/51 93/52 +f 91/53 95/54 94/51 +f 92/55 96/56 95/54 +f 94/51 98/57 97/58 +f 94/51 95/54 99/59 +f 96/56 100/60 99/59 +f 97/58 98/57 87/61 +f 98/57 99/59 86/62 +f 99/59 100/60 85/63 +f 115/64 114/65 71/66 +f 114/67 116/68 75/69 +f 116/70 117/71 79/72 +f 117/73 115/74 70/75 +f 109/40 110/39 96/56 +f 110/39 111/41 100/60 +f 100/60 111/41 112/43 +f 97/76 88/77 115/74 +f 93/78 97/79 117/71 +f 89/80 93/81 116/68 +f 88/82 89/83 114/65 +f 92/49 85/11 109/13 +f 103/6 82/14 104/4 +f 78/16 82/14 102/2 +f 74/29 78/16 101/1 +f 67/23 74/17 104/7 +f 70/84 71/18 69/20 +f 69/20 72/19 68/22 +f 68/22 73/21 67/23 +f 71/85 75/24 72/26 +f 72/26 76/25 73/28 +f 73/28 77/27 74/29 +f 75/24 79/30 76/25 +f 76/25 80/31 77/27 +f 77/27 81/32 78/16 +f 80/31 79/30 69/34 +f 81/32 80/31 68/35 +f 82/14 81/32 67/15 +f 112/12 83/36 109/13 +f 111/41 110/39 83/42 +f 88/86 87/44 89/46 +f 87/44 86/47 90/45 +f 86/47 85/11 91/48 +f 89/87 90/50 93/52 +f 90/50 91/53 94/51 +f 91/53 92/55 95/54 +f 93/52 94/51 97/58 +f 98/57 94/51 99/59 +f 95/54 96/56 99/59 +f 88/88 97/58 87/61 +f 87/61 98/57 86/62 +f 86/62 99/59 85/63 +f 70/89 115/64 71/66 +f 71/90 114/67 75/69 +f 75/91 116/70 79/72 +f 79/92 117/73 70/75 +f 92/55 109/40 96/56 +f 96/56 110/39 100/60 +f 85/63 100/60 112/43 +f 117/73 97/76 115/74 +f 116/70 93/78 117/71 +f 114/67 89/80 116/68 +f 115/64 88/82 114/65 +usemtl None_NONE +s off +f 112/93 109/94 4/95 +f 3/96 4/93 109/94 +f 1/96 112/93 4/95 +s 1 +f 34/93 2/94 1/95 +f 49/93 3/94 2/95 +f 64/93 4/94 3/95 +f 5/93 1/94 4/95 +f 104/96 105/93 108/94 +f 20/93 21/94 18/95 +f 21/93 22/94 17/95 +f 22/93 23/94 16/95 +f 23/93 24/94 15/95 +f 24/93 25/94 14/95 +f 123/93 26/94 13/95 +f 26/93 27/94 12/95 +f 27/93 28/94 11/95 +f 118/96 119/93 29/94 +f 29/93 30/94 9/95 +f 30/93 31/94 8/95 +f 31/93 32/94 7/95 +f 32/93 33/94 6/95 +f 33/93 34/94 5/95 +f 35/93 36/94 21/95 +f 36/93 37/94 22/95 +f 37/93 38/94 23/95 +f 38/93 39/94 24/95 +f 39/93 40/94 25/95 +f 124/93 41/94 26/95 +f 41/93 42/94 27/95 +f 42/93 43/94 28/95 +f 120/93 44/94 29/95 +f 44/93 45/94 30/95 +f 45/93 46/94 31/95 +f 46/93 47/94 32/95 +f 47/93 48/94 33/95 +f 48/93 49/94 34/95 +f 50/93 51/94 36/95 +f 51/93 52/94 37/95 +f 52/93 53/94 38/95 +f 53/93 54/94 39/95 +f 54/93 55/94 40/95 +f 125/93 56/94 41/95 +f 56/93 57/94 42/95 +f 57/93 58/94 43/95 +f 121/93 59/94 44/95 +f 59/93 60/94 45/95 +f 60/93 61/94 46/95 +f 61/93 62/94 47/95 +f 62/93 63/94 48/95 +f 63/93 64/94 49/95 +f 19/93 18/94 51/95 +f 18/93 17/94 52/95 +f 17/93 16/94 53/95 +f 16/93 15/94 54/95 +f 15/93 14/94 55/95 +f 122/93 13/94 56/95 +f 13/93 12/94 57/95 +f 12/93 11/94 58/95 +f 118/93 10/94 59/95 +f 10/93 9/94 60/95 +f 9/93 8/94 61/95 +f 8/93 7/94 62/95 +f 7/93 6/94 63/95 +f 6/93 5/94 64/95 +f 108/96 107/93 101/94 +f 50/93 108/94 105/95 +f 35/93 107/94 108/95 +f 20/93 106/94 107/95 +f 19/93 105/94 106/95 +f 104/93 101/94 107/95 +f 105/96 104/93 106/94 +f 112/96 1/93 2/94 +f 28/93 119/94 118/95 +f 43/93 120/94 119/95 +f 58/93 121/94 120/95 +f 11/93 118/94 121/95 +f 25/93 123/94 122/95 +f 40/93 124/94 123/95 +f 55/93 125/94 124/95 +f 14/93 122/94 125/95 +f 5/96 34/93 1/95 +f 34/96 49/93 2/95 +f 49/96 64/93 3/95 +f 64/96 5/93 4/95 +f 101/95 104/96 108/94 +f 19/96 20/93 18/95 +f 18/96 21/93 17/95 +f 17/96 22/93 16/95 +f 16/96 23/93 15/95 +f 15/96 24/93 14/95 +f 122/96 123/93 13/95 +f 13/96 26/93 12/95 +f 12/96 27/93 11/95 +f 10/95 118/96 29/94 +f 10/96 29/93 9/95 +f 9/96 30/93 8/95 +f 8/96 31/93 7/95 +f 7/96 32/93 6/95 +f 6/96 33/93 5/95 +f 20/96 35/93 21/95 +f 21/96 36/93 22/95 +f 22/96 37/93 23/95 +f 23/96 38/93 24/95 +f 24/96 39/93 25/95 +f 123/96 124/93 26/95 +f 26/96 41/93 27/95 +f 27/96 42/93 28/95 +f 119/96 120/93 29/95 +f 29/96 44/93 30/95 +f 30/96 45/93 31/95 +f 31/96 46/93 32/95 +f 32/96 47/93 33/95 +f 33/96 48/93 34/95 +f 35/96 50/93 36/95 +f 36/96 51/93 37/95 +f 37/96 52/93 38/95 +f 38/96 53/93 39/95 +f 39/96 54/93 40/95 +f 124/96 125/93 41/95 +f 41/96 56/93 42/95 +f 42/96 57/93 43/95 +f 120/96 121/93 44/95 +f 44/96 59/93 45/95 +f 45/96 60/93 46/95 +f 46/96 61/93 47/95 +f 47/96 62/93 48/95 +f 48/96 63/93 49/95 +f 50/96 19/93 51/95 +f 51/96 18/93 52/95 +f 52/96 17/93 53/95 +f 53/96 16/93 54/95 +f 54/96 15/93 55/95 +f 125/96 122/93 56/95 +f 56/96 13/93 57/95 +f 57/96 12/93 58/95 +f 121/96 118/93 59/95 +f 59/96 10/93 60/95 +f 60/96 9/93 61/95 +f 61/96 8/93 62/95 +f 62/96 7/93 63/95 +f 63/96 6/93 64/95 +f 19/96 50/93 105/95 +f 50/96 35/93 108/95 +f 35/96 20/93 107/95 +f 20/96 19/93 106/95 +f 106/96 104/93 107/95 +f 11/96 28/93 118/95 +f 28/96 43/93 119/95 +f 43/96 58/93 120/95 +f 58/96 11/93 121/95 +f 14/96 25/93 122/95 +f 25/96 40/93 123/95 +f 40/96 55/93 124/95 +f 55/96 14/93 125/95 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow4.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow4.obj new file mode 100644 index 00000000..e76e3b76 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow4.obj @@ -0,0 +1,477 @@ +# Blender v2.72 (sub 0) OBJ File: 'LongbowRigFinished.blend' +# www.blender.org +mtllib Longbow4.mtl + +v -0.000268 -3.971003 1.429680 +v -0.000268 -3.971002 1.429456 +v 0.000268 -3.971002 1.429456 +v 0.000268 -3.971003 1.429682 +v -0.000268 -3.563677 1.527035 +v -0.000268 -3.054203 1.627235 +v -0.000268 -2.544791 1.698623 +v -0.000268 -2.035393 1.762502 +v -0.000268 -1.525986 1.831232 +v -0.000268 -1.016573 1.902490 +v -0.000268 -0.132064 2.019843 +v -0.000268 0.002199 2.019843 +v -0.000268 0.136575 2.019843 +v -0.000268 1.020479 1.902716 +v -0.000268 1.529593 1.831564 +v -0.000268 2.038712 1.762917 +v -0.000268 2.547841 1.699112 +v -0.000268 3.056955 1.627761 +v -0.000268 3.566007 1.527429 +v -0.000268 3.566007 1.526887 +v -0.000268 3.056956 1.627871 +v -0.000268 2.547841 1.698597 +v -0.000268 2.038712 1.762410 +v -0.000268 1.529593 1.831069 +v -0.000268 1.020480 1.902243 +v -0.000268 0.136575 2.019308 +v -0.000268 0.002199 2.019308 +v -0.000268 -0.132064 2.019308 +v -0.000268 -1.016573 1.902017 +v -0.000268 -1.525986 1.830737 +v -0.000268 -2.035393 1.761995 +v -0.000268 -2.544791 1.698122 +v -0.000268 -3.054203 1.626716 +v -0.000268 -3.563677 1.526327 +v 0.000268 3.566007 1.526887 +v 0.000268 3.056956 1.627921 +v 0.000268 2.547841 1.698597 +v 0.000268 2.038712 1.762410 +v 0.000268 1.529593 1.831069 +v 0.000268 1.020480 1.902243 +v 0.000268 0.136575 2.019308 +v 0.000268 0.002199 2.019308 +v 0.000268 -0.132064 2.019308 +v 0.000268 -1.016573 1.902017 +v 0.000268 -1.525986 1.830737 +v 0.000268 -2.035393 1.761995 +v 0.000268 -2.544791 1.698122 +v 0.000268 -3.054203 1.626716 +v 0.000268 -3.563677 1.526327 +v 0.000268 3.566007 1.527409 +v 0.000268 3.056957 1.628714 +v 0.000268 2.547841 1.699112 +v 0.000268 2.038712 1.762917 +v 0.000268 1.529593 1.831564 +v 0.000268 1.020479 1.902716 +v 0.000268 0.136575 2.019843 +v 0.000268 0.002199 2.019843 +v 0.000268 -0.132064 2.019843 +v 0.000268 -1.016573 1.902490 +v 0.000268 -1.525986 1.831232 +v 0.000268 -2.035393 1.762502 +v 0.000268 -2.544791 1.698636 +v 0.000268 -3.054203 1.627235 +v 0.000268 -3.563677 1.526849 +v -0.039304 4.088087 1.457547 +v 0.039304 4.088087 1.457505 +v -0.067379 3.551811 1.101204 +v -0.085346 2.833168 0.726522 +v -0.101068 1.833753 0.393209 +v -0.112298 0.733394 0.268277 +v 0.112298 0.733395 0.268277 +v 0.101068 1.833753 0.393205 +v 0.085346 2.833169 0.726521 +v 0.067379 3.551811 1.101199 +v 0.112298 0.733394 0.068265 +v 0.101068 1.833753 0.213097 +v 0.085346 2.833168 0.574079 +v 0.067379 3.551809 0.980217 +v -0.112298 0.733394 0.068262 +v -0.101068 1.833753 0.213096 +v -0.085346 2.833168 0.574078 +v -0.067379 3.551809 0.980213 +v -0.039304 -4.086884 1.433840 +v 0.039304 -4.086884 1.433840 +v -0.067379 -3.551042 1.100782 +v -0.085346 -2.833012 0.726337 +v -0.101068 -1.833982 0.393158 +v -0.112298 -0.733832 0.268270 +v 0.112298 -0.733832 0.268268 +v 0.101068 -1.833982 0.393154 +v 0.085346 -2.833012 0.726337 +v 0.067379 -3.551042 1.100776 +v 0.112298 -0.733832 0.068256 +v 0.101068 -1.833982 0.213047 +v 0.085346 -2.833013 0.573899 +v 0.067379 -3.551044 0.979817 +v -0.112298 -0.733832 0.068256 +v -0.101068 -1.833982 0.213046 +v -0.085346 -2.833013 0.573899 +v -0.067379 -3.551044 0.979813 +v 0.041280 4.050359 1.440784 +v 0.041280 4.050356 1.365770 +v -0.041280 4.050356 1.365809 +v -0.041280 4.050359 1.440729 +v -0.000268 3.973338 1.430292 +v -0.000268 3.973339 1.429879 +v 0.000268 3.973339 1.429878 +v 0.000268 3.973338 1.430293 +v 0.042243 -4.030780 1.408862 +v 0.042243 -4.030783 1.332155 +v -0.042243 -4.030783 1.332204 +v -0.042243 -4.030780 1.408800 +v -0.022828 -0.323007 0.165308 +v 0.112298 -0.000220 0.267797 +v -0.112298 -0.000220 0.267797 +v 0.112298 -0.000220 0.067774 +v -0.112298 -0.000220 0.067770 +v -0.000268 -0.576800 1.957691 +v -0.000268 -0.576800 1.957191 +v 0.000268 -0.576800 1.957191 +v 0.000268 -0.576800 1.957691 +v -0.000268 0.578520 1.957817 +v -0.000268 0.578520 1.957317 +v 0.000268 0.578520 1.957317 +v 0.000268 0.578520 1.957817 +vt 0.168467 0.018892 +vt 0.168467 0.093146 +vt 0.166324 0.001744 +vt 0.078910 0.018892 +vt 0.081053 0.001744 +vt 0.078910 0.093146 +vt 0.663220 0.018892 +vt 0.573663 0.018892 +vt 0.575806 0.001744 +vt 0.661077 0.001744 +vt 0.792729 0.245375 +vt 0.819996 0.027244 +vt 0.911641 0.027244 +vt 0.050599 0.366568 +vt 0.050599 0.245369 +vt 0.196777 0.366568 +vt 0.545353 0.245375 +vt 0.496627 0.796292 +vt 0.508808 0.720291 +vt 0.728075 0.720291 +vt 0.525862 0.476500 +vt 0.711021 0.476500 +vt 0.691530 0.245375 +vt 0.245503 0.998256 +vt 0.233322 0.902066 +vt 0.233322 0.720267 +vt 0.216268 0.630006 +vt 0.216268 0.476487 +vt 0.196777 0.245369 +vt 0.001873 0.998256 +vt 0.014055 0.902066 +vt 0.031109 0.630006 +vt 0.001873 0.796257 +vt 0.014055 0.720267 +vt 0.031109 0.476487 +vt 0.823183 0.001744 +vt 0.908453 0.001744 +vt 0.413700 0.998256 +vt 0.416888 0.896772 +vt 0.416888 0.972757 +vt 0.325242 0.896772 +vt 0.328430 0.998256 +vt 0.325242 0.972757 +vt 0.756185 0.720291 +vt 0.975452 0.720291 +vt 0.987633 0.796292 +vt 0.773239 0.476500 +vt 0.958398 0.476500 +vt 0.938907 0.245375 +vt 0.480698 0.279733 +vt 0.480698 0.097934 +vt 0.492880 0.001744 +vt 0.463644 0.523513 +vt 0.463644 0.369994 +vt 0.444154 0.754631 +vt 0.444154 0.633432 +vt 0.261432 0.097934 +vt 0.249250 0.001744 +vt 0.278486 0.369994 +vt 0.297976 0.633432 +vt 0.261432 0.279733 +vt 0.278486 0.523513 +vt 0.297976 0.754631 +vt 0.994753 0.458915 +vt 0.994753 0.232074 +vt 0.998127 0.232074 +vt 0.994753 0.462403 +vt 0.994753 0.664403 +vt 0.991380 0.664403 +vt 0.994753 0.001744 +vt 0.994753 0.228585 +vt 0.991380 0.228585 +vt 0.994753 0.667891 +vt 0.994753 0.869890 +vt 0.991380 0.869890 +vt 0.998127 0.667891 +vt 0.998127 0.869890 +vt 0.998127 0.001744 +vt 0.998127 0.228585 +vt 0.998127 0.462403 +vt 0.998127 0.664403 +vt 0.991380 0.458915 +vt 0.991380 0.232074 +vt 0.740256 0.796292 +vt 0.245503 0.796257 +vt 0.744003 0.796292 +vt 0.492880 0.203743 +vt 0.249250 0.203743 +vt 0.998127 0.458915 +vt 0.991380 0.462403 +vt 0.991380 0.001744 +vt 0.991380 0.667891 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +usemtl None +s off +f 101/1 102/2 66/3 +f 104/4 65/5 103/6 +f 103/6 65/5 66/3 +f 104/7 101/8 66/9 +f 102/2 103/6 66/3 +f 65/10 104/7 66/9 +s 1 +f 85/11 112/12 109/13 +f 82/14 67/15 104/4 +f 82/14 103/6 102/2 +f 78/16 102/2 101/1 +f 74/17 101/8 104/7 +f 71/18 72/19 69/20 +f 72/19 73/21 68/22 +f 73/21 74/17 67/23 +f 75/24 76/25 72/26 +f 76/25 77/27 73/28 +f 77/27 78/16 74/29 +f 79/30 80/31 76/25 +f 80/31 81/32 77/27 +f 81/32 82/14 78/16 +f 79/30 70/33 69/34 +f 80/31 69/34 68/35 +f 81/32 68/35 67/15 +f 83/36 84/37 109/13 +f 84/38 110/39 109/40 +f 111/41 83/42 112/43 +f 110/39 84/38 83/42 +f 87/44 90/45 89/46 +f 86/47 91/48 90/45 +f 85/11 92/49 91/48 +f 90/50 94/51 93/52 +f 91/53 95/54 94/51 +f 92/55 96/56 95/54 +f 94/51 98/57 97/58 +f 94/51 95/54 99/59 +f 96/56 100/60 99/59 +f 97/58 98/57 87/61 +f 98/57 99/59 86/62 +f 99/59 100/60 85/63 +f 115/64 114/65 71/66 +f 114/67 116/68 75/69 +f 116/70 117/71 79/72 +f 117/73 115/74 70/75 +f 109/40 110/39 96/56 +f 110/39 111/41 100/60 +f 100/60 111/41 112/43 +f 97/76 88/77 115/74 +f 93/78 97/79 117/71 +f 89/80 93/81 116/68 +f 88/82 89/83 114/65 +f 92/49 85/11 109/13 +f 103/6 82/14 104/4 +f 78/16 82/14 102/2 +f 74/29 78/16 101/1 +f 67/23 74/17 104/7 +f 70/84 71/18 69/20 +f 69/20 72/19 68/22 +f 68/22 73/21 67/23 +f 71/85 75/24 72/26 +f 72/26 76/25 73/28 +f 73/28 77/27 74/29 +f 75/24 79/30 76/25 +f 76/25 80/31 77/27 +f 77/27 81/32 78/16 +f 80/31 79/30 69/34 +f 81/32 80/31 68/35 +f 82/14 81/32 67/15 +f 112/12 83/36 109/13 +f 111/41 110/39 83/42 +f 88/86 87/44 89/46 +f 87/44 86/47 90/45 +f 86/47 85/11 91/48 +f 89/87 90/50 93/52 +f 90/50 91/53 94/51 +f 91/53 92/55 95/54 +f 93/52 94/51 97/58 +f 98/57 94/51 99/59 +f 95/54 96/56 99/59 +f 88/88 97/58 87/61 +f 87/61 98/57 86/62 +f 86/62 99/59 85/63 +f 70/89 115/64 71/66 +f 71/90 114/67 75/69 +f 75/91 116/70 79/72 +f 79/92 117/73 70/75 +f 92/55 109/40 96/56 +f 96/56 110/39 100/60 +f 85/63 100/60 112/43 +f 117/73 97/76 115/74 +f 116/70 93/78 117/71 +f 114/67 89/80 116/68 +f 115/64 88/82 114/65 +usemtl None_NONE +s off +f 112/93 109/94 4/95 +f 3/96 4/93 109/94 +f 1/96 112/93 4/95 +s 1 +f 34/93 2/94 1/95 +f 49/93 3/94 2/95 +f 64/93 4/94 3/95 +f 5/93 1/94 4/95 +f 104/96 105/93 108/94 +f 20/93 21/94 18/95 +f 21/93 22/94 17/95 +f 22/93 23/94 16/95 +f 23/93 24/94 15/95 +f 24/93 25/94 14/95 +f 123/93 26/94 13/95 +f 26/93 27/94 12/95 +f 27/93 28/94 11/95 +f 118/96 119/93 29/94 +f 29/93 30/94 9/95 +f 30/93 31/94 8/95 +f 31/93 32/94 7/95 +f 32/93 33/94 6/95 +f 33/93 34/94 5/95 +f 35/93 36/94 21/95 +f 36/93 37/94 22/95 +f 37/93 38/94 23/95 +f 38/93 39/94 24/95 +f 39/93 40/94 25/95 +f 124/93 41/94 26/95 +f 41/93 42/94 27/95 +f 42/93 43/94 28/95 +f 120/93 44/94 29/95 +f 44/93 45/94 30/95 +f 45/93 46/94 31/95 +f 46/93 47/94 32/95 +f 47/93 48/94 33/95 +f 48/93 49/94 34/95 +f 50/93 51/94 36/95 +f 51/93 52/94 37/95 +f 52/93 53/94 38/95 +f 53/93 54/94 39/95 +f 54/93 55/94 40/95 +f 125/93 56/94 41/95 +f 56/93 57/94 42/95 +f 57/93 58/94 43/95 +f 121/93 59/94 44/95 +f 59/93 60/94 45/95 +f 60/93 61/94 46/95 +f 61/93 62/94 47/95 +f 62/93 63/94 48/95 +f 63/93 64/94 49/95 +f 19/93 18/94 51/95 +f 18/93 17/94 52/95 +f 17/93 16/94 53/95 +f 16/93 15/94 54/95 +f 15/93 14/94 55/95 +f 122/93 13/94 56/95 +f 13/93 12/94 57/95 +f 12/93 11/94 58/95 +f 118/93 10/94 59/95 +f 10/93 9/94 60/95 +f 9/93 8/94 61/95 +f 8/93 7/94 62/95 +f 7/93 6/94 63/95 +f 6/93 5/94 64/95 +f 108/96 107/93 101/94 +f 50/93 108/94 105/95 +f 35/93 107/94 108/95 +f 20/93 106/94 107/95 +f 19/93 105/94 106/95 +f 104/93 101/94 107/95 +f 105/96 104/93 106/94 +f 112/96 1/93 2/94 +f 28/93 119/94 118/95 +f 43/93 120/94 119/95 +f 58/93 121/94 120/95 +f 11/93 118/94 121/95 +f 25/93 123/94 122/95 +f 40/93 124/94 123/95 +f 55/93 125/94 124/95 +f 14/93 122/94 125/95 +f 5/96 34/93 1/95 +f 34/96 49/93 2/95 +f 49/96 64/93 3/95 +f 64/96 5/93 4/95 +f 101/95 104/96 108/94 +f 19/96 20/93 18/95 +f 18/96 21/93 17/95 +f 17/96 22/93 16/95 +f 16/96 23/93 15/95 +f 15/96 24/93 14/95 +f 122/96 123/93 13/95 +f 13/96 26/93 12/95 +f 12/96 27/93 11/95 +f 10/95 118/96 29/94 +f 10/96 29/93 9/95 +f 9/96 30/93 8/95 +f 8/96 31/93 7/95 +f 7/96 32/93 6/95 +f 6/96 33/93 5/95 +f 20/96 35/93 21/95 +f 21/96 36/93 22/95 +f 22/96 37/93 23/95 +f 23/96 38/93 24/95 +f 24/96 39/93 25/95 +f 123/96 124/93 26/95 +f 26/96 41/93 27/95 +f 27/96 42/93 28/95 +f 119/96 120/93 29/95 +f 29/96 44/93 30/95 +f 30/96 45/93 31/95 +f 31/96 46/93 32/95 +f 32/96 47/93 33/95 +f 33/96 48/93 34/95 +f 35/96 50/93 36/95 +f 36/96 51/93 37/95 +f 37/96 52/93 38/95 +f 38/96 53/93 39/95 +f 39/96 54/93 40/95 +f 124/96 125/93 41/95 +f 41/96 56/93 42/95 +f 42/96 57/93 43/95 +f 120/96 121/93 44/95 +f 44/96 59/93 45/95 +f 45/96 60/93 46/95 +f 46/96 61/93 47/95 +f 47/96 62/93 48/95 +f 48/96 63/93 49/95 +f 50/96 19/93 51/95 +f 51/96 18/93 52/95 +f 52/96 17/93 53/95 +f 53/96 16/93 54/95 +f 54/96 15/93 55/95 +f 125/96 122/93 56/95 +f 56/96 13/93 57/95 +f 57/96 12/93 58/95 +f 121/96 118/93 59/95 +f 59/96 10/93 60/95 +f 60/96 9/93 61/95 +f 61/96 8/93 62/95 +f 62/96 7/93 63/95 +f 63/96 6/93 64/95 +f 19/96 50/93 105/95 +f 50/96 35/93 108/95 +f 35/96 20/93 107/95 +f 20/96 19/93 106/95 +f 106/96 104/93 107/95 +f 11/96 28/93 118/95 +f 28/96 43/93 119/95 +f 43/96 58/93 120/95 +f 58/96 11/93 121/95 +f 14/96 25/93 122/95 +f 25/96 40/93 123/95 +f 40/96 55/93 124/95 +f 55/96 14/93 125/95 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow5.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow5.obj new file mode 100644 index 00000000..5a50554a --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow5.obj @@ -0,0 +1,477 @@ +# Blender v2.72 (sub 0) OBJ File: 'LongbowRigFinished.blend' +# www.blender.org +mtllib Longbow5.mtl + +v -0.000268 -3.971003 1.535027 +v -0.000268 -3.971002 1.534874 +v 0.000268 -3.971002 1.534874 +v 0.000268 -3.971003 1.535029 +v -0.000268 -3.563677 1.654722 +v -0.000268 -3.054203 1.777915 +v -0.000268 -2.544791 1.865684 +v -0.000268 -2.035393 1.944222 +v -0.000268 -1.525986 2.028723 +v -0.000268 -1.016573 2.116333 +v -0.000268 -0.132064 2.260616 +v -0.000268 0.002199 2.260616 +v -0.000268 0.136575 2.260616 +v -0.000268 1.020479 2.116611 +v -0.000268 1.529593 2.029132 +v -0.000268 2.038712 1.944732 +v -0.000268 2.547841 1.866286 +v -0.000268 3.056955 1.778561 +v -0.000268 3.566007 1.655206 +v -0.000268 3.566007 1.654662 +v -0.000268 3.056956 1.778820 +v -0.000268 2.547841 1.865776 +v -0.000268 2.038712 1.944232 +v -0.000268 1.529593 2.028646 +v -0.000268 1.020480 2.116152 +v -0.000268 0.136575 2.260080 +v -0.000268 0.002199 2.260080 +v -0.000268 -0.132064 2.260080 +v -0.000268 -1.016573 2.115875 +v -0.000268 -1.525986 2.028238 +v -0.000268 -2.035393 1.943722 +v -0.000268 -2.544791 1.865191 +v -0.000268 -3.054203 1.777399 +v -0.000268 -3.563677 1.653975 +v 0.000268 3.566007 1.654662 +v 0.000268 3.056956 1.778881 +v 0.000268 2.547841 1.865776 +v 0.000268 2.038712 1.944232 +v 0.000268 1.529593 2.028646 +v 0.000268 1.020480 2.116152 +v 0.000268 0.136575 2.260080 +v 0.000268 0.002199 2.260080 +v 0.000268 -0.132064 2.260080 +v 0.000268 -1.016573 2.115875 +v 0.000268 -1.525986 2.028238 +v 0.000268 -2.035393 1.943722 +v 0.000268 -2.544791 1.865191 +v 0.000268 -3.054203 1.777399 +v 0.000268 -3.563677 1.653975 +v 0.000268 3.566007 1.655182 +v 0.000268 3.056957 1.779733 +v 0.000268 2.547841 1.866286 +v 0.000268 2.038712 1.944732 +v 0.000268 1.529593 2.029132 +v 0.000268 1.020479 2.116611 +v 0.000268 0.136575 2.260616 +v 0.000268 0.002199 2.260616 +v 0.000268 -0.132064 2.260616 +v 0.000268 -1.016573 2.116333 +v 0.000268 -1.525986 2.028723 +v 0.000268 -2.035393 1.944222 +v 0.000268 -2.544791 1.865701 +v 0.000268 -3.054203 1.777915 +v 0.000268 -3.563677 1.654494 +v -0.039304 4.088087 1.561512 +v 0.039304 4.088087 1.561460 +v -0.067379 3.551811 1.178750 +v -0.085346 2.833168 0.770600 +v -0.101068 1.833753 0.416190 +v -0.112298 0.733394 0.279856 +v 0.112298 0.733394 0.279855 +v 0.101068 1.833753 0.416185 +v 0.085346 2.833169 0.770599 +v 0.067379 3.551811 1.178743 +v 0.112298 0.733394 0.079840 +v 0.101068 1.833753 0.236051 +v 0.085346 2.833168 0.618055 +v 0.067379 3.551809 1.057536 +v -0.112298 0.733394 0.079837 +v -0.101068 1.833753 0.236051 +v -0.085346 2.833168 0.618054 +v -0.067379 3.551809 1.057532 +v -0.039304 -4.086884 1.532364 +v 0.039304 -4.086884 1.532364 +v -0.067379 -3.551042 1.178231 +v -0.085346 -2.833012 0.770373 +v -0.101068 -1.833982 0.416126 +v -0.112298 -0.733832 0.279846 +v 0.112298 -0.733832 0.279844 +v 0.101068 -1.833982 0.416122 +v 0.085346 -2.833012 0.770372 +v 0.067379 -3.551042 1.178223 +v 0.112298 -0.733832 0.079829 +v 0.101068 -1.833982 0.235990 +v 0.085346 -2.833013 0.617835 +v 0.067379 -3.551044 1.057044 +v -0.112298 -0.733832 0.079829 +v -0.101068 -1.833982 0.235989 +v -0.085346 -2.833013 0.617834 +v -0.067379 -3.551044 1.057040 +v 0.041280 4.050359 1.544797 +v 0.041280 4.050356 1.469441 +v -0.041280 4.050356 1.469488 +v -0.041280 4.050359 1.544730 +v -0.000268 3.973338 1.535779 +v -0.000268 3.973339 1.535394 +v 0.000268 3.973339 1.535393 +v 0.000268 3.973338 1.535780 +v 0.042243 -4.030780 1.507448 +v 0.042243 -4.030783 1.430403 +v -0.042243 -4.030783 1.430462 +v -0.042243 -4.030780 1.507372 +v -0.022828 -0.323007 0.165308 +v 0.112298 -0.000220 0.279265 +v -0.112298 -0.000220 0.279265 +v 0.112298 -0.000220 0.079236 +v -0.112298 -0.000220 0.079232 +v -0.000268 -0.576800 2.184201 +v -0.000268 -0.576800 2.183709 +v 0.000268 -0.576800 2.183709 +v 0.000268 -0.576800 2.184201 +v -0.000268 0.578520 2.184357 +v -0.000268 0.578520 2.183864 +v 0.000268 0.578520 2.183864 +v 0.000268 0.578520 2.184357 +vt 0.168467 0.018892 +vt 0.168467 0.093146 +vt 0.166324 0.001744 +vt 0.078910 0.018892 +vt 0.081053 0.001744 +vt 0.078910 0.093146 +vt 0.663220 0.018892 +vt 0.573663 0.018892 +vt 0.575806 0.001744 +vt 0.661077 0.001744 +vt 0.792729 0.245375 +vt 0.819996 0.027244 +vt 0.911641 0.027244 +vt 0.050599 0.366568 +vt 0.050599 0.245369 +vt 0.196777 0.366568 +vt 0.545353 0.245375 +vt 0.496627 0.796292 +vt 0.508808 0.720291 +vt 0.728075 0.720291 +vt 0.525862 0.476500 +vt 0.711021 0.476500 +vt 0.691530 0.245375 +vt 0.245503 0.998256 +vt 0.233322 0.902066 +vt 0.233322 0.720267 +vt 0.216268 0.630006 +vt 0.216268 0.476487 +vt 0.196777 0.245369 +vt 0.001873 0.998256 +vt 0.014055 0.902066 +vt 0.031109 0.630006 +vt 0.001873 0.796257 +vt 0.014055 0.720267 +vt 0.031109 0.476487 +vt 0.823183 0.001744 +vt 0.908453 0.001744 +vt 0.413700 0.998256 +vt 0.416888 0.896772 +vt 0.416888 0.972757 +vt 0.325242 0.896772 +vt 0.328430 0.998256 +vt 0.325242 0.972757 +vt 0.756185 0.720291 +vt 0.975452 0.720291 +vt 0.987633 0.796292 +vt 0.773239 0.476500 +vt 0.958398 0.476500 +vt 0.938907 0.245375 +vt 0.480698 0.279733 +vt 0.480698 0.097934 +vt 0.492880 0.001744 +vt 0.463644 0.523513 +vt 0.463644 0.369994 +vt 0.444154 0.754631 +vt 0.444154 0.633432 +vt 0.261432 0.097934 +vt 0.249250 0.001744 +vt 0.278486 0.369994 +vt 0.297976 0.633432 +vt 0.261432 0.279733 +vt 0.278486 0.523513 +vt 0.297976 0.754631 +vt 0.994753 0.458915 +vt 0.994753 0.232074 +vt 0.998127 0.232074 +vt 0.994753 0.462403 +vt 0.994753 0.664403 +vt 0.991380 0.664403 +vt 0.994753 0.001744 +vt 0.994753 0.228585 +vt 0.991380 0.228585 +vt 0.994753 0.667891 +vt 0.994753 0.869890 +vt 0.991380 0.869890 +vt 0.998127 0.667891 +vt 0.998127 0.869890 +vt 0.998127 0.001744 +vt 0.998127 0.228585 +vt 0.998127 0.462403 +vt 0.998127 0.664403 +vt 0.991380 0.458915 +vt 0.991380 0.232074 +vt 0.740256 0.796292 +vt 0.245503 0.796257 +vt 0.744003 0.796292 +vt 0.492880 0.203743 +vt 0.249250 0.203743 +vt 0.998127 0.458915 +vt 0.991380 0.462403 +vt 0.991380 0.001744 +vt 0.991380 0.667891 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +usemtl None +s off +f 101/1 102/2 66/3 +f 104/4 65/5 103/6 +f 103/6 65/5 66/3 +f 104/7 101/8 66/9 +f 102/2 103/6 66/3 +f 65/10 104/7 66/9 +s 1 +f 85/11 112/12 109/13 +f 82/14 67/15 104/4 +f 82/14 103/6 102/2 +f 78/16 102/2 101/1 +f 74/17 101/8 104/7 +f 71/18 72/19 69/20 +f 72/19 73/21 68/22 +f 73/21 74/17 67/23 +f 75/24 76/25 72/26 +f 76/25 77/27 73/28 +f 77/27 78/16 74/29 +f 79/30 80/31 76/25 +f 80/31 81/32 77/27 +f 81/32 82/14 78/16 +f 79/30 70/33 69/34 +f 80/31 69/34 68/35 +f 81/32 68/35 67/15 +f 83/36 84/37 109/13 +f 84/38 110/39 109/40 +f 111/41 83/42 112/43 +f 110/39 84/38 83/42 +f 87/44 90/45 89/46 +f 86/47 91/48 90/45 +f 85/11 92/49 91/48 +f 90/50 94/51 93/52 +f 91/53 95/54 94/51 +f 92/55 96/56 95/54 +f 94/51 98/57 97/58 +f 94/51 95/54 99/59 +f 96/56 100/60 99/59 +f 97/58 98/57 87/61 +f 98/57 99/59 86/62 +f 99/59 100/60 85/63 +f 115/64 114/65 71/66 +f 114/67 116/68 75/69 +f 116/70 117/71 79/72 +f 117/73 115/74 70/75 +f 109/40 110/39 96/56 +f 110/39 111/41 100/60 +f 100/60 111/41 112/43 +f 97/76 88/77 115/74 +f 93/78 97/79 117/71 +f 89/80 93/81 116/68 +f 88/82 89/83 114/65 +f 92/49 85/11 109/13 +f 103/6 82/14 104/4 +f 78/16 82/14 102/2 +f 74/29 78/16 101/1 +f 67/23 74/17 104/7 +f 70/84 71/18 69/20 +f 69/20 72/19 68/22 +f 68/22 73/21 67/23 +f 71/85 75/24 72/26 +f 72/26 76/25 73/28 +f 73/28 77/27 74/29 +f 75/24 79/30 76/25 +f 76/25 80/31 77/27 +f 77/27 81/32 78/16 +f 80/31 79/30 69/34 +f 81/32 80/31 68/35 +f 82/14 81/32 67/15 +f 112/12 83/36 109/13 +f 111/41 110/39 83/42 +f 88/86 87/44 89/46 +f 87/44 86/47 90/45 +f 86/47 85/11 91/48 +f 89/87 90/50 93/52 +f 90/50 91/53 94/51 +f 91/53 92/55 95/54 +f 93/52 94/51 97/58 +f 98/57 94/51 99/59 +f 95/54 96/56 99/59 +f 88/88 97/58 87/61 +f 87/61 98/57 86/62 +f 86/62 99/59 85/63 +f 70/89 115/64 71/66 +f 71/90 114/67 75/69 +f 75/91 116/70 79/72 +f 79/92 117/73 70/75 +f 92/55 109/40 96/56 +f 96/56 110/39 100/60 +f 85/63 100/60 112/43 +f 117/73 97/76 115/74 +f 116/70 93/78 117/71 +f 114/67 89/80 116/68 +f 115/64 88/82 114/65 +usemtl None_NONE +s off +f 112/93 109/94 4/95 +f 3/96 4/93 109/94 +f 1/96 112/93 4/95 +s 1 +f 34/93 2/94 1/95 +f 49/93 3/94 2/95 +f 64/93 4/94 3/95 +f 5/93 1/94 4/95 +f 104/96 105/93 108/94 +f 20/93 21/94 18/95 +f 21/93 22/94 17/95 +f 22/93 23/94 16/95 +f 23/93 24/94 15/95 +f 24/93 25/94 14/95 +f 123/93 26/94 13/95 +f 26/93 27/94 12/95 +f 27/93 28/94 11/95 +f 118/96 119/93 29/94 +f 29/93 30/94 9/95 +f 30/93 31/94 8/95 +f 31/93 32/94 7/95 +f 32/93 33/94 6/95 +f 33/93 34/94 5/95 +f 35/93 36/94 21/95 +f 36/93 37/94 22/95 +f 37/93 38/94 23/95 +f 38/93 39/94 24/95 +f 39/93 40/94 25/95 +f 124/93 41/94 26/95 +f 41/93 42/94 27/95 +f 42/93 43/94 28/95 +f 120/93 44/94 29/95 +f 44/93 45/94 30/95 +f 45/93 46/94 31/95 +f 46/93 47/94 32/95 +f 47/93 48/94 33/95 +f 48/93 49/94 34/95 +f 50/93 51/94 36/95 +f 51/93 52/94 37/95 +f 52/93 53/94 38/95 +f 53/93 54/94 39/95 +f 54/93 55/94 40/95 +f 125/93 56/94 41/95 +f 56/93 57/94 42/95 +f 57/93 58/94 43/95 +f 121/93 59/94 44/95 +f 59/93 60/94 45/95 +f 60/93 61/94 46/95 +f 61/93 62/94 47/95 +f 62/93 63/94 48/95 +f 63/93 64/94 49/95 +f 19/93 18/94 51/95 +f 18/93 17/94 52/95 +f 17/93 16/94 53/95 +f 16/93 15/94 54/95 +f 15/93 14/94 55/95 +f 122/93 13/94 56/95 +f 13/93 12/94 57/95 +f 12/93 11/94 58/95 +f 118/93 10/94 59/95 +f 10/93 9/94 60/95 +f 9/93 8/94 61/95 +f 8/93 7/94 62/95 +f 7/93 6/94 63/95 +f 6/93 5/94 64/95 +f 108/96 107/93 101/94 +f 50/93 108/94 105/95 +f 35/93 107/94 108/95 +f 20/93 106/94 107/95 +f 19/93 105/94 106/95 +f 104/93 101/94 107/95 +f 105/96 104/93 106/94 +f 112/96 1/93 2/94 +f 28/93 119/94 118/95 +f 43/93 120/94 119/95 +f 58/93 121/94 120/95 +f 11/93 118/94 121/95 +f 25/93 123/94 122/95 +f 40/93 124/94 123/95 +f 55/93 125/94 124/95 +f 14/93 122/94 125/95 +f 5/96 34/93 1/95 +f 34/96 49/93 2/95 +f 49/96 64/93 3/95 +f 64/96 5/93 4/95 +f 101/95 104/96 108/94 +f 19/96 20/93 18/95 +f 18/96 21/93 17/95 +f 17/96 22/93 16/95 +f 16/96 23/93 15/95 +f 15/96 24/93 14/95 +f 122/96 123/93 13/95 +f 13/96 26/93 12/95 +f 12/96 27/93 11/95 +f 10/95 118/96 29/94 +f 10/96 29/93 9/95 +f 9/96 30/93 8/95 +f 8/96 31/93 7/95 +f 7/96 32/93 6/95 +f 6/96 33/93 5/95 +f 20/96 35/93 21/95 +f 21/96 36/93 22/95 +f 22/96 37/93 23/95 +f 23/96 38/93 24/95 +f 24/96 39/93 25/95 +f 123/96 124/93 26/95 +f 26/96 41/93 27/95 +f 27/96 42/93 28/95 +f 119/96 120/93 29/95 +f 29/96 44/93 30/95 +f 30/96 45/93 31/95 +f 31/96 46/93 32/95 +f 32/96 47/93 33/95 +f 33/96 48/93 34/95 +f 35/96 50/93 36/95 +f 36/96 51/93 37/95 +f 37/96 52/93 38/95 +f 38/96 53/93 39/95 +f 39/96 54/93 40/95 +f 124/96 125/93 41/95 +f 41/96 56/93 42/95 +f 42/96 57/93 43/95 +f 120/96 121/93 44/95 +f 44/96 59/93 45/95 +f 45/96 60/93 46/95 +f 46/96 61/93 47/95 +f 47/96 62/93 48/95 +f 48/96 63/93 49/95 +f 50/96 19/93 51/95 +f 51/96 18/93 52/95 +f 52/96 17/93 53/95 +f 53/96 16/93 54/95 +f 54/96 15/93 55/95 +f 125/96 122/93 56/95 +f 56/96 13/93 57/95 +f 57/96 12/93 58/95 +f 121/96 118/93 59/95 +f 59/96 10/93 60/95 +f 60/96 9/93 61/95 +f 61/96 8/93 62/95 +f 62/96 7/93 63/95 +f 63/96 6/93 64/95 +f 19/96 50/93 105/95 +f 50/96 35/93 108/95 +f 35/96 20/93 107/95 +f 20/96 19/93 106/95 +f 106/96 104/93 107/95 +f 11/96 28/93 118/95 +f 28/96 43/93 119/95 +f 43/96 58/93 120/95 +f 58/96 11/93 121/95 +f 14/96 25/93 122/95 +f 25/96 40/93 123/95 +f 40/96 55/93 124/95 +f 55/96 14/93 125/95 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow6.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow6.obj new file mode 100644 index 00000000..967c57ba --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow6.obj @@ -0,0 +1,477 @@ +# Blender v2.72 (sub 0) OBJ File: 'LongbowRigFinished.blend' +# www.blender.org +mtllib Longbow6.mtl + +v -0.000268 -3.971003 1.682956 +v -0.000268 -3.971002 1.682903 +v 0.000268 -3.971002 1.682904 +v 0.000268 -3.971003 1.682959 +v -0.000268 -3.563677 1.834022 +v -0.000268 -3.054203 1.989503 +v -0.000268 -2.544791 2.100275 +v -0.000268 -2.035393 2.199396 +v -0.000268 -1.525986 2.306044 +v -0.000268 -1.016573 2.416615 +v -0.000268 -0.132064 2.598712 +v -0.000268 0.002199 2.598712 +v -0.000268 0.136575 2.598712 +v -0.000268 1.020479 2.416966 +v -0.000268 1.529593 2.306559 +v -0.000268 2.038712 2.200040 +v -0.000268 2.547841 2.101033 +v -0.000268 3.056955 1.990318 +v -0.000268 3.566007 1.834633 +v -0.000268 3.566007 1.834087 +v -0.000268 3.056956 1.990785 +v -0.000268 2.547841 2.100530 +v -0.000268 2.038712 2.199549 +v -0.000268 1.529593 2.306087 +v -0.000268 1.020479 2.416527 +v -0.000268 0.136575 2.598177 +v -0.000268 0.002199 2.598177 +v -0.000268 -0.132064 2.598177 +v -0.000268 -1.016573 2.416177 +v -0.000268 -1.525986 2.305572 +v -0.000268 -2.035393 2.198905 +v -0.000268 -2.544791 2.099792 +v -0.000268 -3.054203 1.988992 +v -0.000268 -3.563677 1.833219 +v 0.000268 3.566007 1.834087 +v 0.000268 3.056956 1.990861 +v 0.000268 2.547841 2.100530 +v 0.000268 2.038712 2.199549 +v 0.000268 1.529593 2.306087 +v 0.000268 1.020479 2.416527 +v 0.000268 0.136575 2.598177 +v 0.000268 0.002199 2.598177 +v 0.000268 -0.132064 2.598177 +v 0.000268 -1.016573 2.416177 +v 0.000268 -1.525986 2.305572 +v 0.000268 -2.035393 2.198905 +v 0.000268 -2.544791 2.099792 +v 0.000268 -3.054203 1.988992 +v 0.000268 -3.563677 1.833219 +v 0.000268 3.566007 1.834603 +v 0.000268 3.056957 1.991797 +v 0.000268 2.547841 2.101033 +v 0.000268 2.038712 2.200040 +v 0.000268 1.529593 2.306559 +v 0.000268 1.020479 2.416966 +v 0.000268 0.136575 2.598712 +v 0.000268 0.002199 2.598712 +v 0.000268 -0.132064 2.598712 +v 0.000268 -1.016573 2.416615 +v 0.000268 -1.525986 2.306044 +v 0.000268 -2.035393 2.199396 +v 0.000268 -2.544791 2.100296 +v 0.000268 -3.054203 1.989503 +v 0.000268 -3.563677 1.833734 +v -0.039304 4.088087 1.707500 +v 0.039304 4.088087 1.707435 +v -0.067379 3.551811 1.287641 +v -0.085346 2.833168 0.832495 +v -0.101068 1.833753 0.448459 +v -0.112298 0.733394 0.296114 +v 0.112298 0.733394 0.296113 +v 0.101068 1.833753 0.448453 +v 0.085346 2.833169 0.832493 +v 0.067379 3.551811 1.287633 +v 0.112298 0.733394 0.096094 +v 0.101068 1.833753 0.268285 +v 0.085346 2.833168 0.679807 +v 0.067379 3.551809 1.166109 +v -0.112298 0.733394 0.096091 +v -0.101068 1.833753 0.268284 +v -0.085346 2.833168 0.679806 +v -0.067379 3.551809 1.166104 +v -0.039304 -4.086884 1.670714 +v 0.039304 -4.086884 1.670714 +v -0.067379 -3.551042 1.286986 +v -0.085346 -2.833012 0.832208 +v -0.101068 -1.833982 0.448379 +v -0.112298 -0.733832 0.296102 +v 0.112298 -0.733832 0.296099 +v 0.101068 -1.833982 0.448373 +v 0.085346 -2.833012 0.832207 +v 0.067379 -3.551042 1.286977 +v 0.112298 -0.733832 0.096080 +v 0.101068 -1.833982 0.268207 +v 0.085346 -2.833013 0.679529 +v 0.067379 -3.551044 1.165489 +v -0.112298 -0.733832 0.096080 +v -0.101068 -1.833982 0.268206 +v -0.085346 -2.833013 0.679528 +v -0.067379 -3.551044 1.165483 +v 0.041280 4.050359 1.690855 +v 0.041280 4.050356 1.615017 +v -0.041280 4.050356 1.615077 +v -0.041280 4.050359 1.690770 +v -0.000268 3.973338 1.683905 +v -0.000268 3.973339 1.683560 +v 0.000268 3.973339 1.683559 +v 0.000268 3.973338 1.683907 +v 0.042243 -4.030780 1.645884 +v 0.042243 -4.030783 1.568363 +v -0.042243 -4.030783 1.568439 +v -0.042243 -4.030780 1.645788 +v -0.022828 -0.323007 0.165308 +v 0.112298 -0.000220 0.295369 +v -0.112298 -0.000220 0.295369 +v 0.112298 -0.000220 0.095332 +v -0.112298 -0.000220 0.095327 +v -0.000268 -0.576800 2.502271 +v -0.000268 -0.576800 2.501790 +v 0.000268 -0.576800 2.501790 +v 0.000268 -0.576800 2.502271 +v -0.000268 0.578520 2.502467 +v -0.000268 0.578520 2.501986 +v 0.000268 0.578520 2.501986 +v 0.000268 0.578520 2.502467 +vt 0.168467 0.018892 +vt 0.168467 0.093146 +vt 0.166324 0.001744 +vt 0.078910 0.018892 +vt 0.081053 0.001744 +vt 0.078910 0.093146 +vt 0.663220 0.018892 +vt 0.573663 0.018892 +vt 0.575806 0.001744 +vt 0.661077 0.001744 +vt 0.792729 0.245375 +vt 0.819996 0.027244 +vt 0.911641 0.027244 +vt 0.050599 0.366568 +vt 0.050599 0.245369 +vt 0.196777 0.366568 +vt 0.545353 0.245375 +vt 0.496627 0.796292 +vt 0.508808 0.720291 +vt 0.728075 0.720291 +vt 0.525862 0.476500 +vt 0.711021 0.476500 +vt 0.691530 0.245375 +vt 0.245503 0.998256 +vt 0.233322 0.902066 +vt 0.233322 0.720267 +vt 0.216268 0.630006 +vt 0.216268 0.476487 +vt 0.196777 0.245369 +vt 0.001873 0.998256 +vt 0.014055 0.902066 +vt 0.031109 0.630006 +vt 0.001873 0.796257 +vt 0.014055 0.720267 +vt 0.031109 0.476487 +vt 0.823183 0.001744 +vt 0.908453 0.001744 +vt 0.413700 0.998256 +vt 0.416888 0.896772 +vt 0.416888 0.972757 +vt 0.325242 0.896772 +vt 0.328430 0.998256 +vt 0.325242 0.972757 +vt 0.756185 0.720291 +vt 0.975452 0.720291 +vt 0.987633 0.796292 +vt 0.773239 0.476500 +vt 0.958398 0.476500 +vt 0.938907 0.245375 +vt 0.480698 0.279733 +vt 0.480698 0.097934 +vt 0.492880 0.001744 +vt 0.463644 0.523513 +vt 0.463644 0.369994 +vt 0.444154 0.754631 +vt 0.444154 0.633432 +vt 0.261432 0.097934 +vt 0.249250 0.001744 +vt 0.278486 0.369994 +vt 0.297976 0.633432 +vt 0.261432 0.279733 +vt 0.278486 0.523513 +vt 0.297976 0.754631 +vt 0.994753 0.458915 +vt 0.994753 0.232074 +vt 0.998127 0.232074 +vt 0.994753 0.462403 +vt 0.994753 0.664403 +vt 0.991380 0.664403 +vt 0.994753 0.001744 +vt 0.994753 0.228585 +vt 0.991380 0.228585 +vt 0.994753 0.667891 +vt 0.994753 0.869890 +vt 0.991380 0.869890 +vt 0.998127 0.667891 +vt 0.998127 0.869890 +vt 0.998127 0.001744 +vt 0.998127 0.228585 +vt 0.998127 0.462403 +vt 0.998127 0.664403 +vt 0.991380 0.458915 +vt 0.991380 0.232074 +vt 0.740256 0.796292 +vt 0.245503 0.796257 +vt 0.744003 0.796292 +vt 0.492880 0.203743 +vt 0.249250 0.203743 +vt 0.998127 0.458915 +vt 0.991380 0.462403 +vt 0.991380 0.001744 +vt 0.991380 0.667891 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +usemtl None +s off +f 101/1 102/2 66/3 +f 104/4 65/5 103/6 +f 103/6 65/5 66/3 +f 104/7 101/8 66/9 +f 102/2 103/6 66/3 +f 65/10 104/7 66/9 +s 1 +f 85/11 112/12 109/13 +f 82/14 67/15 104/4 +f 82/14 103/6 102/2 +f 78/16 102/2 101/1 +f 74/17 101/8 104/7 +f 71/18 72/19 69/20 +f 72/19 73/21 68/22 +f 73/21 74/17 67/23 +f 75/24 76/25 72/26 +f 76/25 77/27 73/28 +f 77/27 78/16 74/29 +f 79/30 80/31 76/25 +f 80/31 81/32 77/27 +f 81/32 82/14 78/16 +f 79/30 70/33 69/34 +f 80/31 69/34 68/35 +f 81/32 68/35 67/15 +f 83/36 84/37 109/13 +f 84/38 110/39 109/40 +f 111/41 83/42 112/43 +f 110/39 84/38 83/42 +f 87/44 90/45 89/46 +f 86/47 91/48 90/45 +f 85/11 92/49 91/48 +f 90/50 94/51 93/52 +f 91/53 95/54 94/51 +f 92/55 96/56 95/54 +f 94/51 98/57 97/58 +f 94/51 95/54 99/59 +f 96/56 100/60 99/59 +f 97/58 98/57 87/61 +f 98/57 99/59 86/62 +f 99/59 100/60 85/63 +f 115/64 114/65 71/66 +f 114/67 116/68 75/69 +f 116/70 117/71 79/72 +f 117/73 115/74 70/75 +f 109/40 110/39 96/56 +f 110/39 111/41 100/60 +f 100/60 111/41 112/43 +f 97/76 88/77 115/74 +f 93/78 97/79 117/71 +f 89/80 93/81 116/68 +f 88/82 89/83 114/65 +f 92/49 85/11 109/13 +f 103/6 82/14 104/4 +f 78/16 82/14 102/2 +f 74/29 78/16 101/1 +f 67/23 74/17 104/7 +f 70/84 71/18 69/20 +f 69/20 72/19 68/22 +f 68/22 73/21 67/23 +f 71/85 75/24 72/26 +f 72/26 76/25 73/28 +f 73/28 77/27 74/29 +f 75/24 79/30 76/25 +f 76/25 80/31 77/27 +f 77/27 81/32 78/16 +f 80/31 79/30 69/34 +f 81/32 80/31 68/35 +f 82/14 81/32 67/15 +f 112/12 83/36 109/13 +f 111/41 110/39 83/42 +f 88/86 87/44 89/46 +f 87/44 86/47 90/45 +f 86/47 85/11 91/48 +f 89/87 90/50 93/52 +f 90/50 91/53 94/51 +f 91/53 92/55 95/54 +f 93/52 94/51 97/58 +f 98/57 94/51 99/59 +f 95/54 96/56 99/59 +f 88/88 97/58 87/61 +f 87/61 98/57 86/62 +f 86/62 99/59 85/63 +f 70/89 115/64 71/66 +f 71/90 114/67 75/69 +f 75/91 116/70 79/72 +f 79/92 117/73 70/75 +f 92/55 109/40 96/56 +f 96/56 110/39 100/60 +f 85/63 100/60 112/43 +f 117/73 97/76 115/74 +f 116/70 93/78 117/71 +f 114/67 89/80 116/68 +f 115/64 88/82 114/65 +usemtl None_NONE +s off +f 112/93 109/94 4/95 +f 3/96 4/93 109/94 +f 1/96 112/93 4/95 +s 1 +f 34/93 2/94 1/95 +f 49/93 3/94 2/95 +f 64/93 4/94 3/95 +f 5/93 1/94 4/95 +f 104/96 105/93 108/94 +f 20/93 21/94 18/95 +f 21/93 22/94 17/95 +f 22/93 23/94 16/95 +f 23/93 24/94 15/95 +f 24/93 25/94 14/95 +f 123/93 26/94 13/95 +f 26/93 27/94 12/95 +f 27/93 28/94 11/95 +f 118/96 119/93 29/94 +f 29/93 30/94 9/95 +f 30/93 31/94 8/95 +f 31/93 32/94 7/95 +f 32/93 33/94 6/95 +f 33/93 34/94 5/95 +f 35/93 36/94 21/95 +f 36/93 37/94 22/95 +f 37/93 38/94 23/95 +f 38/93 39/94 24/95 +f 39/93 40/94 25/95 +f 124/93 41/94 26/95 +f 41/93 42/94 27/95 +f 42/93 43/94 28/95 +f 120/93 44/94 29/95 +f 44/93 45/94 30/95 +f 45/93 46/94 31/95 +f 46/93 47/94 32/95 +f 47/93 48/94 33/95 +f 48/93 49/94 34/95 +f 50/93 51/94 36/95 +f 51/93 52/94 37/95 +f 52/93 53/94 38/95 +f 53/93 54/94 39/95 +f 54/93 55/94 40/95 +f 125/93 56/94 41/95 +f 56/93 57/94 42/95 +f 57/93 58/94 43/95 +f 121/93 59/94 44/95 +f 59/93 60/94 45/95 +f 60/93 61/94 46/95 +f 61/93 62/94 47/95 +f 62/93 63/94 48/95 +f 63/93 64/94 49/95 +f 19/93 18/94 51/95 +f 18/93 17/94 52/95 +f 17/93 16/94 53/95 +f 16/93 15/94 54/95 +f 15/93 14/94 55/95 +f 122/93 13/94 56/95 +f 13/93 12/94 57/95 +f 12/93 11/94 58/95 +f 118/93 10/94 59/95 +f 10/93 9/94 60/95 +f 9/93 8/94 61/95 +f 8/93 7/94 62/95 +f 7/93 6/94 63/95 +f 6/93 5/94 64/95 +f 108/96 107/93 101/94 +f 50/93 108/94 105/95 +f 35/93 107/94 108/95 +f 20/93 106/94 107/95 +f 19/93 105/94 106/95 +f 104/93 101/94 107/95 +f 105/96 104/93 106/94 +f 112/96 1/93 2/94 +f 28/93 119/94 118/95 +f 43/93 120/94 119/95 +f 58/93 121/94 120/95 +f 11/93 118/94 121/95 +f 25/93 123/94 122/95 +f 40/93 124/94 123/95 +f 55/93 125/94 124/95 +f 14/93 122/94 125/95 +f 5/96 34/93 1/95 +f 34/96 49/93 2/95 +f 49/96 64/93 3/95 +f 64/96 5/93 4/95 +f 101/95 104/96 108/94 +f 19/96 20/93 18/95 +f 18/96 21/93 17/95 +f 17/96 22/93 16/95 +f 16/96 23/93 15/95 +f 15/96 24/93 14/95 +f 122/96 123/93 13/95 +f 13/96 26/93 12/95 +f 12/96 27/93 11/95 +f 10/95 118/96 29/94 +f 10/96 29/93 9/95 +f 9/96 30/93 8/95 +f 8/96 31/93 7/95 +f 7/96 32/93 6/95 +f 6/96 33/93 5/95 +f 20/96 35/93 21/95 +f 21/96 36/93 22/95 +f 22/96 37/93 23/95 +f 23/96 38/93 24/95 +f 24/96 39/93 25/95 +f 123/96 124/93 26/95 +f 26/96 41/93 27/95 +f 27/96 42/93 28/95 +f 119/96 120/93 29/95 +f 29/96 44/93 30/95 +f 30/96 45/93 31/95 +f 31/96 46/93 32/95 +f 32/96 47/93 33/95 +f 33/96 48/93 34/95 +f 35/96 50/93 36/95 +f 36/96 51/93 37/95 +f 37/96 52/93 38/95 +f 38/96 53/93 39/95 +f 39/96 54/93 40/95 +f 124/96 125/93 41/95 +f 41/96 56/93 42/95 +f 42/96 57/93 43/95 +f 120/96 121/93 44/95 +f 44/96 59/93 45/95 +f 45/96 60/93 46/95 +f 46/96 61/93 47/95 +f 47/96 62/93 48/95 +f 48/96 63/93 49/95 +f 50/96 19/93 51/95 +f 51/96 18/93 52/95 +f 52/96 17/93 53/95 +f 53/96 16/93 54/95 +f 54/96 15/93 55/95 +f 125/96 122/93 56/95 +f 56/96 13/93 57/95 +f 57/96 12/93 58/95 +f 121/96 118/93 59/95 +f 59/96 10/93 60/95 +f 60/96 9/93 61/95 +f 61/96 8/93 62/95 +f 62/96 7/93 63/95 +f 63/96 6/93 64/95 +f 19/96 50/93 105/95 +f 50/96 35/93 108/95 +f 35/96 20/93 107/95 +f 20/96 19/93 106/95 +f 106/96 104/93 107/95 +f 11/96 28/93 118/95 +f 28/96 43/93 119/95 +f 43/96 58/93 120/95 +f 58/96 11/93 121/95 +f 14/96 25/93 122/95 +f 25/96 40/93 123/95 +f 40/96 55/93 124/95 +f 55/96 14/93 125/95 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow7.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow7.obj new file mode 100644 index 00000000..e0a1e639 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow7.obj @@ -0,0 +1,477 @@ +# Blender v2.72 (sub 0) OBJ File: 'LongbowRigFinished.blend' +# www.blender.org +mtllib Longbow7.mtl + +v -0.000268 -3.971003 1.851853 +v -0.000268 -3.971002 1.851914 +v 0.000268 -3.971002 1.851915 +v 0.000268 -3.971003 1.851857 +v -0.000268 -3.563677 2.038736 +v -0.000268 -3.054203 2.231080 +v -0.000268 -2.544791 2.368115 +v -0.000268 -2.035393 2.490738 +v -0.000268 -1.525986 2.622672 +v -0.000268 -1.016573 2.759459 +v -0.000268 -0.132064 2.984730 +v -0.000268 0.002199 2.984730 +v -0.000268 0.136575 2.984730 +v -0.000268 1.020479 2.759892 +v -0.000268 1.529593 2.623309 +v -0.000268 2.038712 2.491534 +v -0.000268 2.547841 2.369054 +v -0.000268 3.056955 2.232089 +v -0.000268 3.566007 2.039492 +v -0.000268 3.566007 2.038943 +v -0.000268 3.056956 2.232793 +v -0.000268 2.547841 2.368559 +v -0.000268 2.038712 2.491054 +v -0.000268 1.529593 2.622852 +v -0.000268 1.020479 2.759477 +v -0.000268 0.136575 2.984195 +v -0.000268 0.002199 2.984195 +v -0.000268 -0.132064 2.984195 +v -0.000268 -1.016573 2.759044 +v -0.000268 -1.525986 2.622215 +v -0.000268 -2.035393 2.490257 +v -0.000268 -2.544791 2.367646 +v -0.000268 -3.054203 2.230575 +v -0.000268 -3.563677 2.037869 +v 0.000268 3.566007 2.038943 +v 0.000268 3.056956 2.232888 +v 0.000268 2.547841 2.368559 +v 0.000268 2.038712 2.491054 +v 0.000268 1.529593 2.622852 +v 0.000268 1.020479 2.759477 +v 0.000268 0.136575 2.984195 +v 0.000268 0.002199 2.984195 +v 0.000268 -0.132064 2.984195 +v 0.000268 -1.016573 2.759044 +v 0.000268 -1.525986 2.622215 +v 0.000268 -2.035393 2.490257 +v 0.000268 -2.544791 2.367646 +v 0.000268 -3.054203 2.230575 +v 0.000268 -3.563677 2.037869 +v 0.000268 3.566007 2.039454 +v 0.000268 3.056957 2.233918 +v 0.000268 2.547841 2.369054 +v 0.000268 2.038712 2.491535 +v 0.000268 1.529593 2.623309 +v 0.000268 1.020479 2.759892 +v 0.000268 0.136575 2.984730 +v 0.000268 0.002199 2.984730 +v 0.000268 -0.132064 2.984730 +v 0.000268 -1.016573 2.759459 +v 0.000268 -1.525986 2.622672 +v 0.000268 -2.035393 2.490738 +v 0.000268 -2.544791 2.368141 +v 0.000268 -3.054203 2.231080 +v 0.000268 -3.563677 2.038379 +v -0.039304 4.088087 1.874181 +v 0.039304 4.088087 1.874100 +v -0.067379 3.551811 1.411966 +v -0.085346 2.833168 0.903163 +v -0.101068 1.833753 0.485302 +v -0.112298 0.733394 0.314677 +v 0.112298 0.733394 0.314675 +v 0.101068 1.833753 0.485295 +v 0.085346 2.833169 0.903161 +v 0.067379 3.551811 1.411956 +v 0.112298 0.733394 0.114652 +v 0.101068 1.833753 0.305087 +v 0.085346 2.833168 0.750312 +v 0.067379 3.551809 1.290071 +v -0.112298 0.733394 0.114648 +v -0.101068 1.833753 0.305086 +v -0.085346 2.833168 0.750311 +v -0.067379 3.551809 1.290065 +v -0.039304 -4.086884 1.828673 +v 0.039304 -4.086884 1.828672 +v -0.067379 -3.551042 1.411156 +v -0.085346 -2.833012 0.902808 +v -0.101068 -1.833982 0.485204 +v -0.112298 -0.733832 0.314662 +v 0.112298 -0.733832 0.314659 +v 0.101068 -1.833982 0.485196 +v 0.085346 -2.833012 0.902807 +v 0.067379 -3.551042 1.411144 +v 0.112298 -0.733832 0.114635 +v 0.101068 -1.833982 0.304990 +v 0.085346 -2.833013 0.749968 +v 0.067379 -3.551044 1.289303 +v -0.112298 -0.733832 0.114635 +v -0.101068 -1.833982 0.304989 +v -0.085346 -2.833013 0.749967 +v -0.067379 -3.551044 1.289297 +v 0.041280 4.050359 1.857615 +v 0.041280 4.050356 1.781227 +v -0.041280 4.050356 1.781301 +v -0.041280 4.050359 1.857509 +v -0.000268 3.973338 1.853027 +v -0.000268 3.973339 1.852727 +v 0.000268 3.973339 1.852726 +v 0.000268 3.973338 1.853029 +v 0.042243 -4.030780 1.803941 +v 0.042243 -4.030783 1.725878 +v -0.042243 -4.030783 1.725972 +v -0.042243 -4.030780 1.803823 +v -0.022828 -0.323007 0.165308 +v 0.112298 -0.000220 0.313755 +v -0.112298 -0.000220 0.313755 +v 0.112298 -0.000220 0.113710 +v -0.112298 -0.000220 0.113703 +v -0.000268 -0.576800 2.865423 +v -0.000268 -0.576800 2.864955 +v 0.000268 -0.576800 2.864955 +v 0.000268 -0.576800 2.865423 +v -0.000268 0.578520 2.865666 +v -0.000268 0.578520 2.865198 +v 0.000268 0.578520 2.865198 +v 0.000268 0.578520 2.865666 +vt 0.168467 0.018892 +vt 0.168467 0.093146 +vt 0.166324 0.001744 +vt 0.078910 0.018892 +vt 0.081053 0.001744 +vt 0.078910 0.093146 +vt 0.663220 0.018892 +vt 0.573663 0.018892 +vt 0.575806 0.001744 +vt 0.661077 0.001744 +vt 0.792729 0.245375 +vt 0.819996 0.027244 +vt 0.911641 0.027244 +vt 0.050599 0.366568 +vt 0.050599 0.245369 +vt 0.196777 0.366568 +vt 0.545353 0.245375 +vt 0.496627 0.796292 +vt 0.508808 0.720291 +vt 0.728075 0.720291 +vt 0.525862 0.476500 +vt 0.711021 0.476500 +vt 0.691530 0.245375 +vt 0.245503 0.998256 +vt 0.233322 0.902066 +vt 0.233322 0.720267 +vt 0.216268 0.630006 +vt 0.216268 0.476487 +vt 0.196777 0.245369 +vt 0.001873 0.998256 +vt 0.014055 0.902066 +vt 0.031109 0.630006 +vt 0.001873 0.796257 +vt 0.014055 0.720267 +vt 0.031109 0.476487 +vt 0.823183 0.001744 +vt 0.908453 0.001744 +vt 0.413700 0.998256 +vt 0.416888 0.896772 +vt 0.416888 0.972757 +vt 0.325242 0.896772 +vt 0.328430 0.998256 +vt 0.325242 0.972757 +vt 0.756185 0.720291 +vt 0.975452 0.720291 +vt 0.987633 0.796292 +vt 0.773239 0.476500 +vt 0.958398 0.476500 +vt 0.938907 0.245375 +vt 0.480698 0.279733 +vt 0.480698 0.097934 +vt 0.492880 0.001744 +vt 0.463644 0.523513 +vt 0.463644 0.369994 +vt 0.444154 0.754631 +vt 0.444154 0.633432 +vt 0.261432 0.097934 +vt 0.249250 0.001744 +vt 0.278486 0.369994 +vt 0.297976 0.633432 +vt 0.261432 0.279733 +vt 0.278486 0.523513 +vt 0.297976 0.754631 +vt 0.994753 0.458915 +vt 0.994753 0.232074 +vt 0.998127 0.232074 +vt 0.994753 0.462403 +vt 0.994753 0.664403 +vt 0.991380 0.664403 +vt 0.994753 0.001744 +vt 0.994753 0.228585 +vt 0.991380 0.228585 +vt 0.994753 0.667891 +vt 0.994753 0.869890 +vt 0.991380 0.869890 +vt 0.998127 0.667891 +vt 0.998127 0.869890 +vt 0.998127 0.001744 +vt 0.998127 0.228585 +vt 0.998127 0.462403 +vt 0.998127 0.664403 +vt 0.991380 0.458915 +vt 0.991380 0.232074 +vt 0.740256 0.796292 +vt 0.245503 0.796257 +vt 0.744003 0.796292 +vt 0.492880 0.203743 +vt 0.249250 0.203743 +vt 0.998127 0.458915 +vt 0.991380 0.462403 +vt 0.991380 0.001744 +vt 0.991380 0.667891 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +usemtl None +s off +f 101/1 102/2 66/3 +f 104/4 65/5 103/6 +f 103/6 65/5 66/3 +f 104/7 101/8 66/9 +f 102/2 103/6 66/3 +f 65/10 104/7 66/9 +s 1 +f 85/11 112/12 109/13 +f 82/14 67/15 104/4 +f 82/14 103/6 102/2 +f 78/16 102/2 101/1 +f 74/17 101/8 104/7 +f 71/18 72/19 69/20 +f 72/19 73/21 68/22 +f 73/21 74/17 67/23 +f 75/24 76/25 72/26 +f 76/25 77/27 73/28 +f 77/27 78/16 74/29 +f 79/30 80/31 76/25 +f 80/31 81/32 77/27 +f 81/32 82/14 78/16 +f 79/30 70/33 69/34 +f 80/31 69/34 68/35 +f 81/32 68/35 67/15 +f 83/36 84/37 109/13 +f 84/38 110/39 109/40 +f 111/41 83/42 112/43 +f 110/39 84/38 83/42 +f 87/44 90/45 89/46 +f 86/47 91/48 90/45 +f 85/11 92/49 91/48 +f 90/50 94/51 93/52 +f 91/53 95/54 94/51 +f 92/55 96/56 95/54 +f 94/51 98/57 97/58 +f 94/51 95/54 99/59 +f 96/56 100/60 99/59 +f 97/58 98/57 87/61 +f 98/57 99/59 86/62 +f 99/59 100/60 85/63 +f 115/64 114/65 71/66 +f 114/67 116/68 75/69 +f 116/70 117/71 79/72 +f 117/73 115/74 70/75 +f 109/40 110/39 96/56 +f 110/39 111/41 100/60 +f 100/60 111/41 112/43 +f 97/76 88/77 115/74 +f 93/78 97/79 117/71 +f 89/80 93/81 116/68 +f 88/82 89/83 114/65 +f 92/49 85/11 109/13 +f 103/6 82/14 104/4 +f 78/16 82/14 102/2 +f 74/29 78/16 101/1 +f 67/23 74/17 104/7 +f 70/84 71/18 69/20 +f 69/20 72/19 68/22 +f 68/22 73/21 67/23 +f 71/85 75/24 72/26 +f 72/26 76/25 73/28 +f 73/28 77/27 74/29 +f 75/24 79/30 76/25 +f 76/25 80/31 77/27 +f 77/27 81/32 78/16 +f 80/31 79/30 69/34 +f 81/32 80/31 68/35 +f 82/14 81/32 67/15 +f 112/12 83/36 109/13 +f 111/41 110/39 83/42 +f 88/86 87/44 89/46 +f 87/44 86/47 90/45 +f 86/47 85/11 91/48 +f 89/87 90/50 93/52 +f 90/50 91/53 94/51 +f 91/53 92/55 95/54 +f 93/52 94/51 97/58 +f 98/57 94/51 99/59 +f 95/54 96/56 99/59 +f 88/88 97/58 87/61 +f 87/61 98/57 86/62 +f 86/62 99/59 85/63 +f 70/89 115/64 71/66 +f 71/90 114/67 75/69 +f 75/91 116/70 79/72 +f 79/92 117/73 70/75 +f 92/55 109/40 96/56 +f 96/56 110/39 100/60 +f 85/63 100/60 112/43 +f 117/73 97/76 115/74 +f 116/70 93/78 117/71 +f 114/67 89/80 116/68 +f 115/64 88/82 114/65 +usemtl None_NONE +s off +f 112/93 109/94 4/95 +f 3/96 4/93 109/94 +f 1/96 112/93 4/95 +s 1 +f 34/93 2/94 1/95 +f 49/93 3/94 2/95 +f 64/93 4/94 3/95 +f 5/93 1/94 4/95 +f 104/96 105/93 108/94 +f 20/93 21/94 18/95 +f 21/93 22/94 17/95 +f 22/93 23/94 16/95 +f 23/93 24/94 15/95 +f 24/93 25/94 14/95 +f 123/93 26/94 13/95 +f 26/93 27/94 12/95 +f 27/93 28/94 11/95 +f 118/96 119/93 29/94 +f 29/93 30/94 9/95 +f 30/93 31/94 8/95 +f 31/93 32/94 7/95 +f 32/93 33/94 6/95 +f 33/93 34/94 5/95 +f 35/93 36/94 21/95 +f 36/93 37/94 22/95 +f 37/93 38/94 23/95 +f 38/93 39/94 24/95 +f 39/93 40/94 25/95 +f 124/93 41/94 26/95 +f 41/93 42/94 27/95 +f 42/93 43/94 28/95 +f 120/93 44/94 29/95 +f 44/93 45/94 30/95 +f 45/93 46/94 31/95 +f 46/93 47/94 32/95 +f 47/93 48/94 33/95 +f 48/93 49/94 34/95 +f 50/93 51/94 36/95 +f 51/93 52/94 37/95 +f 52/93 53/94 38/95 +f 53/93 54/94 39/95 +f 54/93 55/94 40/95 +f 125/93 56/94 41/95 +f 56/93 57/94 42/95 +f 57/93 58/94 43/95 +f 121/93 59/94 44/95 +f 59/93 60/94 45/95 +f 60/93 61/94 46/95 +f 61/93 62/94 47/95 +f 62/93 63/94 48/95 +f 63/93 64/94 49/95 +f 19/93 18/94 51/95 +f 18/93 17/94 52/95 +f 17/93 16/94 53/95 +f 16/93 15/94 54/95 +f 15/93 14/94 55/95 +f 122/93 13/94 56/95 +f 13/93 12/94 57/95 +f 12/93 11/94 58/95 +f 118/93 10/94 59/95 +f 10/93 9/94 60/95 +f 9/93 8/94 61/95 +f 8/93 7/94 62/95 +f 7/93 6/94 63/95 +f 6/93 5/94 64/95 +f 108/96 107/93 101/94 +f 50/93 108/94 105/95 +f 35/93 107/94 108/95 +f 20/93 106/94 107/95 +f 19/93 105/94 106/95 +f 104/93 101/94 107/95 +f 105/96 104/93 106/94 +f 112/96 1/93 2/94 +f 28/93 119/94 118/95 +f 43/93 120/94 119/95 +f 58/93 121/94 120/95 +f 11/93 118/94 121/95 +f 25/93 123/94 122/95 +f 40/93 124/94 123/95 +f 55/93 125/94 124/95 +f 14/93 122/94 125/95 +f 5/96 34/93 1/95 +f 34/96 49/93 2/95 +f 49/96 64/93 3/95 +f 64/96 5/93 4/95 +f 101/95 104/96 108/94 +f 19/96 20/93 18/95 +f 18/96 21/93 17/95 +f 17/96 22/93 16/95 +f 16/96 23/93 15/95 +f 15/96 24/93 14/95 +f 122/96 123/93 13/95 +f 13/96 26/93 12/95 +f 12/96 27/93 11/95 +f 10/95 118/96 29/94 +f 10/96 29/93 9/95 +f 9/96 30/93 8/95 +f 8/96 31/93 7/95 +f 7/96 32/93 6/95 +f 6/96 33/93 5/95 +f 20/96 35/93 21/95 +f 21/96 36/93 22/95 +f 22/96 37/93 23/95 +f 23/96 38/93 24/95 +f 24/96 39/93 25/95 +f 123/96 124/93 26/95 +f 26/96 41/93 27/95 +f 27/96 42/93 28/95 +f 119/96 120/93 29/95 +f 29/96 44/93 30/95 +f 30/96 45/93 31/95 +f 31/96 46/93 32/95 +f 32/96 47/93 33/95 +f 33/96 48/93 34/95 +f 35/96 50/93 36/95 +f 36/96 51/93 37/95 +f 37/96 52/93 38/95 +f 38/96 53/93 39/95 +f 39/96 54/93 40/95 +f 124/96 125/93 41/95 +f 41/96 56/93 42/95 +f 42/96 57/93 43/95 +f 120/96 121/93 44/95 +f 44/96 59/93 45/95 +f 45/96 60/93 46/95 +f 46/96 61/93 47/95 +f 47/96 62/93 48/95 +f 48/96 63/93 49/95 +f 50/96 19/93 51/95 +f 51/96 18/93 52/95 +f 52/96 17/93 53/95 +f 53/96 16/93 54/95 +f 54/96 15/93 55/95 +f 125/96 122/93 56/95 +f 56/96 13/93 57/95 +f 57/96 12/93 58/95 +f 121/96 118/93 59/95 +f 59/96 10/93 60/95 +f 60/96 9/93 61/95 +f 61/96 8/93 62/95 +f 62/96 7/93 63/95 +f 63/96 6/93 64/95 +f 19/96 50/93 105/95 +f 50/96 35/93 108/95 +f 35/96 20/93 107/95 +f 20/96 19/93 106/95 +f 106/96 104/93 107/95 +f 11/96 28/93 118/95 +f 28/96 43/93 119/95 +f 43/96 58/93 120/95 +f 58/96 11/93 121/95 +f 14/96 25/93 122/95 +f 25/96 40/93 123/95 +f 40/96 55/93 124/95 +f 55/96 14/93 125/95 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow8.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow8.obj new file mode 100644 index 00000000..95faaf37 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow8.obj @@ -0,0 +1,477 @@ +# Blender v2.72 (sub 0) OBJ File: 'LongbowRigFinished.blend' +# www.blender.org +mtllib Longbow8.mtl + +v -0.000268 -3.971003 2.020027 +v -0.000268 -3.971002 2.020202 +v 0.000268 -3.971002 2.020204 +v 0.000268 -3.971003 2.020032 +v -0.000268 -3.563677 2.242573 +v -0.000268 -3.054203 2.471624 +v -0.000268 -2.544791 2.634810 +v -0.000268 -2.035393 2.780833 +v -0.000268 -1.525986 2.937945 +v -0.000268 -1.016573 3.100836 +v -0.000268 -0.132064 3.369097 +v -0.000268 0.002199 3.369097 +v -0.000268 0.136575 3.369097 +v -0.000268 1.020479 3.101352 +v -0.000268 1.529593 2.938704 +v -0.000268 2.038712 2.781782 +v -0.000268 2.547841 2.635928 +v -0.000268 3.056955 2.472825 +v -0.000268 3.566007 2.243474 +v -0.000268 3.566007 2.242923 +v -0.000268 3.056956 2.473765 +v -0.000268 2.547841 2.635441 +v -0.000268 2.038712 2.781312 +v -0.000268 1.529593 2.938262 +v -0.000268 1.020479 3.100960 +v -0.000268 0.136575 3.368561 +v -0.000268 0.002199 3.368561 +v -0.000268 -0.132064 3.368561 +v -0.000268 -1.016573 3.100444 +v -0.000268 -1.525986 2.937503 +v -0.000268 -2.035393 2.780363 +v -0.000268 -2.544791 2.634353 +v -0.000268 -3.054203 2.471124 +v -0.000268 -3.563677 2.241644 +v 0.000268 3.566007 2.242923 +v 0.000268 3.056956 2.473879 +v 0.000268 2.547841 2.635441 +v 0.000268 2.038712 2.781312 +v 0.000268 1.529593 2.938262 +v 0.000268 1.020479 3.100960 +v 0.000268 0.136575 3.368561 +v 0.000268 0.002199 3.368561 +v 0.000268 -0.132064 3.368561 +v 0.000268 -1.016573 3.100444 +v 0.000268 -1.525986 2.937503 +v 0.000268 -2.035393 2.780363 +v 0.000268 -2.544791 2.634353 +v 0.000268 -3.054203 2.471124 +v 0.000268 -3.563677 2.241644 +v 0.000268 3.566007 2.243429 +v 0.000268 3.056957 2.475003 +v 0.000268 2.547841 2.635928 +v 0.000268 2.038712 2.781782 +v 0.000268 1.529593 2.938704 +v 0.000268 1.020479 3.101352 +v 0.000268 0.136575 3.369097 +v 0.000268 0.002199 3.369097 +v 0.000268 -0.132064 3.369097 +v 0.000268 -1.016573 3.100836 +v 0.000268 -1.525986 2.937945 +v 0.000268 -2.035393 2.780833 +v 0.000268 -2.544791 2.634841 +v 0.000268 -3.054203 2.471624 +v 0.000268 -3.563677 2.242149 +v -0.039304 4.088087 2.040148 +v 0.039304 4.088087 2.040052 +v -0.067379 3.551811 1.535760 +v -0.085346 2.833168 0.973528 +v -0.101068 1.833753 0.521988 +v -0.112298 0.733394 0.333160 +v 0.112298 0.733394 0.333158 +v 0.101068 1.833753 0.521979 +v 0.085346 2.833169 0.973526 +v 0.067379 3.551811 1.535748 +v 0.112298 0.733394 0.133131 +v 0.101068 1.833753 0.341731 +v 0.085346 2.833168 0.820515 +v 0.067379 3.551809 1.413503 +v -0.112298 0.733394 0.133126 +v -0.101068 1.833753 0.341730 +v -0.085346 2.833168 0.820514 +v -0.067379 3.551809 1.413495 +v -0.039304 -4.086884 1.985956 +v 0.039304 -4.086884 1.985955 +v -0.067379 -3.551042 1.534794 +v -0.085346 -2.833012 0.973106 +v -0.101068 -1.833982 0.521870 +v -0.112298 -0.733832 0.333142 +v 0.112298 -0.733832 0.333139 +v 0.101068 -1.833982 0.521861 +v 0.085346 -2.833012 0.973104 +v 0.067379 -3.551042 1.534781 +v 0.112298 -0.733832 0.133111 +v 0.101068 -1.833982 0.341616 +v 0.085346 -2.833013 0.820105 +v 0.067379 -3.551044 1.412588 +v -0.112298 -0.733832 0.133111 +v -0.101068 -1.833982 0.341615 +v -0.085346 -2.833013 0.820104 +v -0.067379 -3.551044 1.412580 +v 0.041280 4.050359 2.023661 +v 0.041280 4.050356 1.946725 +v -0.041280 4.050356 1.946814 +v -0.041280 4.050359 2.023535 +v -0.000268 3.973338 2.021425 +v -0.000268 3.973339 2.021170 +v 0.000268 3.973339 2.021168 +v 0.000268 3.973338 2.021428 +v 0.042243 -4.030780 1.961322 +v 0.042243 -4.030783 1.882720 +v -0.042243 -4.030783 1.882831 +v -0.042243 -4.030780 1.961181 +v -0.022828 -0.323007 0.165308 +v 0.112298 -0.000220 0.332063 +v -0.112298 -0.000220 0.332063 +v 0.112298 -0.000220 0.132009 +v -0.112298 -0.000220 0.132000 +v -0.000268 -0.576800 3.227021 +v -0.000268 -0.576800 3.226567 +v 0.000268 -0.576800 3.226567 +v 0.000268 -0.576800 3.227021 +v -0.000268 0.578520 3.227311 +v -0.000268 0.578520 3.226855 +v 0.000268 0.578520 3.226855 +v 0.000268 0.578520 3.227311 +vt 0.168467 0.018892 +vt 0.168467 0.093146 +vt 0.166324 0.001744 +vt 0.078910 0.018892 +vt 0.081053 0.001744 +vt 0.078910 0.093146 +vt 0.663220 0.018892 +vt 0.573663 0.018892 +vt 0.575806 0.001744 +vt 0.661077 0.001744 +vt 0.792729 0.245375 +vt 0.819996 0.027244 +vt 0.911641 0.027244 +vt 0.050599 0.366568 +vt 0.050599 0.245369 +vt 0.196777 0.366568 +vt 0.545353 0.245375 +vt 0.496627 0.796292 +vt 0.508808 0.720291 +vt 0.728075 0.720291 +vt 0.525862 0.476500 +vt 0.711021 0.476500 +vt 0.691530 0.245375 +vt 0.245503 0.998256 +vt 0.233322 0.902066 +vt 0.233322 0.720267 +vt 0.216268 0.630006 +vt 0.216268 0.476487 +vt 0.196777 0.245369 +vt 0.001873 0.998256 +vt 0.014055 0.902066 +vt 0.031109 0.630006 +vt 0.001873 0.796257 +vt 0.014055 0.720267 +vt 0.031109 0.476487 +vt 0.823183 0.001744 +vt 0.908453 0.001744 +vt 0.413700 0.998256 +vt 0.416888 0.896772 +vt 0.416888 0.972757 +vt 0.325242 0.896772 +vt 0.328430 0.998256 +vt 0.325242 0.972757 +vt 0.756185 0.720291 +vt 0.975452 0.720291 +vt 0.987633 0.796292 +vt 0.773239 0.476500 +vt 0.958398 0.476500 +vt 0.938907 0.245375 +vt 0.480698 0.279733 +vt 0.480698 0.097934 +vt 0.492880 0.001744 +vt 0.463644 0.523513 +vt 0.463644 0.369994 +vt 0.444154 0.754631 +vt 0.444154 0.633432 +vt 0.261432 0.097934 +vt 0.249250 0.001744 +vt 0.278486 0.369994 +vt 0.297976 0.633432 +vt 0.261432 0.279733 +vt 0.278486 0.523513 +vt 0.297976 0.754631 +vt 0.994753 0.458915 +vt 0.994753 0.232074 +vt 0.998127 0.232074 +vt 0.994753 0.462403 +vt 0.994753 0.664403 +vt 0.991380 0.664403 +vt 0.994753 0.001744 +vt 0.994753 0.228585 +vt 0.991380 0.228585 +vt 0.994753 0.667891 +vt 0.994753 0.869890 +vt 0.991380 0.869890 +vt 0.998127 0.667891 +vt 0.998127 0.869890 +vt 0.998127 0.001744 +vt 0.998127 0.228585 +vt 0.998127 0.462403 +vt 0.998127 0.664403 +vt 0.991380 0.458915 +vt 0.991380 0.232074 +vt 0.740256 0.796292 +vt 0.245503 0.796257 +vt 0.744003 0.796292 +vt 0.492880 0.203743 +vt 0.249250 0.203743 +vt 0.998127 0.458915 +vt 0.991380 0.462403 +vt 0.991380 0.001744 +vt 0.991380 0.667891 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +usemtl None +s off +f 101/1 102/2 66/3 +f 104/4 65/5 103/6 +f 103/6 65/5 66/3 +f 104/7 101/8 66/9 +f 102/2 103/6 66/3 +f 65/10 104/7 66/9 +s 1 +f 85/11 112/12 109/13 +f 82/14 67/15 104/4 +f 82/14 103/6 102/2 +f 78/16 102/2 101/1 +f 74/17 101/8 104/7 +f 71/18 72/19 69/20 +f 72/19 73/21 68/22 +f 73/21 74/17 67/23 +f 75/24 76/25 72/26 +f 76/25 77/27 73/28 +f 77/27 78/16 74/29 +f 79/30 80/31 76/25 +f 80/31 81/32 77/27 +f 81/32 82/14 78/16 +f 79/30 70/33 69/34 +f 80/31 69/34 68/35 +f 81/32 68/35 67/15 +f 83/36 84/37 109/13 +f 84/38 110/39 109/40 +f 111/41 83/42 112/43 +f 110/39 84/38 83/42 +f 87/44 90/45 89/46 +f 86/47 91/48 90/45 +f 85/11 92/49 91/48 +f 90/50 94/51 93/52 +f 91/53 95/54 94/51 +f 92/55 96/56 95/54 +f 94/51 98/57 97/58 +f 94/51 95/54 99/59 +f 96/56 100/60 99/59 +f 97/58 98/57 87/61 +f 98/57 99/59 86/62 +f 99/59 100/60 85/63 +f 115/64 114/65 71/66 +f 114/67 116/68 75/69 +f 116/70 117/71 79/72 +f 117/73 115/74 70/75 +f 109/40 110/39 96/56 +f 110/39 111/41 100/60 +f 100/60 111/41 112/43 +f 97/76 88/77 115/74 +f 93/78 97/79 117/71 +f 89/80 93/81 116/68 +f 88/82 89/83 114/65 +f 92/49 85/11 109/13 +f 103/6 82/14 104/4 +f 78/16 82/14 102/2 +f 74/29 78/16 101/1 +f 67/23 74/17 104/7 +f 70/84 71/18 69/20 +f 69/20 72/19 68/22 +f 68/22 73/21 67/23 +f 71/85 75/24 72/26 +f 72/26 76/25 73/28 +f 73/28 77/27 74/29 +f 75/24 79/30 76/25 +f 76/25 80/31 77/27 +f 77/27 81/32 78/16 +f 80/31 79/30 69/34 +f 81/32 80/31 68/35 +f 82/14 81/32 67/15 +f 112/12 83/36 109/13 +f 111/41 110/39 83/42 +f 88/86 87/44 89/46 +f 87/44 86/47 90/45 +f 86/47 85/11 91/48 +f 89/87 90/50 93/52 +f 90/50 91/53 94/51 +f 91/53 92/55 95/54 +f 93/52 94/51 97/58 +f 98/57 94/51 99/59 +f 95/54 96/56 99/59 +f 88/88 97/58 87/61 +f 87/61 98/57 86/62 +f 86/62 99/59 85/63 +f 70/89 115/64 71/66 +f 71/90 114/67 75/69 +f 75/91 116/70 79/72 +f 79/92 117/73 70/75 +f 92/55 109/40 96/56 +f 96/56 110/39 100/60 +f 85/63 100/60 112/43 +f 117/73 97/76 115/74 +f 116/70 93/78 117/71 +f 114/67 89/80 116/68 +f 115/64 88/82 114/65 +usemtl None_NONE +s off +f 112/93 109/94 4/95 +f 3/96 4/93 109/94 +f 1/96 112/93 4/95 +s 1 +f 34/93 2/94 1/95 +f 49/93 3/94 2/95 +f 64/93 4/94 3/95 +f 5/93 1/94 4/95 +f 104/96 105/93 108/94 +f 20/93 21/94 18/95 +f 21/93 22/94 17/95 +f 22/93 23/94 16/95 +f 23/93 24/94 15/95 +f 24/93 25/94 14/95 +f 123/93 26/94 13/95 +f 26/93 27/94 12/95 +f 27/93 28/94 11/95 +f 118/96 119/93 29/94 +f 29/93 30/94 9/95 +f 30/93 31/94 8/95 +f 31/93 32/94 7/95 +f 32/93 33/94 6/95 +f 33/93 34/94 5/95 +f 35/93 36/94 21/95 +f 36/93 37/94 22/95 +f 37/93 38/94 23/95 +f 38/93 39/94 24/95 +f 39/93 40/94 25/95 +f 124/93 41/94 26/95 +f 41/93 42/94 27/95 +f 42/93 43/94 28/95 +f 120/93 44/94 29/95 +f 44/93 45/94 30/95 +f 45/93 46/94 31/95 +f 46/93 47/94 32/95 +f 47/93 48/94 33/95 +f 48/93 49/94 34/95 +f 50/93 51/94 36/95 +f 51/93 52/94 37/95 +f 52/93 53/94 38/95 +f 53/93 54/94 39/95 +f 54/93 55/94 40/95 +f 125/93 56/94 41/95 +f 56/93 57/94 42/95 +f 57/93 58/94 43/95 +f 121/93 59/94 44/95 +f 59/93 60/94 45/95 +f 60/93 61/94 46/95 +f 61/93 62/94 47/95 +f 62/93 63/94 48/95 +f 63/93 64/94 49/95 +f 19/93 18/94 51/95 +f 18/93 17/94 52/95 +f 17/93 16/94 53/95 +f 16/93 15/94 54/95 +f 15/93 14/94 55/95 +f 122/93 13/94 56/95 +f 13/93 12/94 57/95 +f 12/93 11/94 58/95 +f 118/93 10/94 59/95 +f 10/93 9/94 60/95 +f 9/93 8/94 61/95 +f 8/93 7/94 62/95 +f 7/93 6/94 63/95 +f 6/93 5/94 64/95 +f 108/96 107/93 101/94 +f 50/93 108/94 105/95 +f 35/93 107/94 108/95 +f 20/93 106/94 107/95 +f 19/93 105/94 106/95 +f 104/93 101/94 107/95 +f 105/96 104/93 106/94 +f 112/96 1/93 2/94 +f 28/93 119/94 118/95 +f 43/93 120/94 119/95 +f 58/93 121/94 120/95 +f 11/93 118/94 121/95 +f 25/93 123/94 122/95 +f 40/93 124/94 123/95 +f 55/93 125/94 124/95 +f 14/93 122/94 125/95 +f 5/96 34/93 1/95 +f 34/96 49/93 2/95 +f 49/96 64/93 3/95 +f 64/96 5/93 4/95 +f 101/95 104/96 108/94 +f 19/96 20/93 18/95 +f 18/96 21/93 17/95 +f 17/96 22/93 16/95 +f 16/96 23/93 15/95 +f 15/96 24/93 14/95 +f 122/96 123/93 13/95 +f 13/96 26/93 12/95 +f 12/96 27/93 11/95 +f 10/95 118/96 29/94 +f 10/96 29/93 9/95 +f 9/96 30/93 8/95 +f 8/96 31/93 7/95 +f 7/96 32/93 6/95 +f 6/96 33/93 5/95 +f 20/96 35/93 21/95 +f 21/96 36/93 22/95 +f 22/96 37/93 23/95 +f 23/96 38/93 24/95 +f 24/96 39/93 25/95 +f 123/96 124/93 26/95 +f 26/96 41/93 27/95 +f 27/96 42/93 28/95 +f 119/96 120/93 29/95 +f 29/96 44/93 30/95 +f 30/96 45/93 31/95 +f 31/96 46/93 32/95 +f 32/96 47/93 33/95 +f 33/96 48/93 34/95 +f 35/96 50/93 36/95 +f 36/96 51/93 37/95 +f 37/96 52/93 38/95 +f 38/96 53/93 39/95 +f 39/96 54/93 40/95 +f 124/96 125/93 41/95 +f 41/96 56/93 42/95 +f 42/96 57/93 43/95 +f 120/96 121/93 44/95 +f 44/96 59/93 45/95 +f 45/96 60/93 46/95 +f 46/96 61/93 47/95 +f 47/96 62/93 48/95 +f 48/96 63/93 49/95 +f 50/96 19/93 51/95 +f 51/96 18/93 52/95 +f 52/96 17/93 53/95 +f 53/96 16/93 54/95 +f 54/96 15/93 55/95 +f 125/96 122/93 56/95 +f 56/96 13/93 57/95 +f 57/96 12/93 58/95 +f 121/96 118/93 59/95 +f 59/96 10/93 60/95 +f 60/96 9/93 61/95 +f 61/96 8/93 62/95 +f 62/96 7/93 63/95 +f 63/96 6/93 64/95 +f 19/96 50/93 105/95 +f 50/96 35/93 108/95 +f 35/96 20/93 107/95 +f 20/96 19/93 106/95 +f 106/96 104/93 107/95 +f 11/96 28/93 118/95 +f 28/96 43/93 119/95 +f 43/96 58/93 120/95 +f 58/96 11/93 121/95 +f 14/96 25/93 122/95 +f 25/96 40/93 123/95 +f 40/96 55/93 124/95 +f 55/96 14/93 125/95 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow9.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow9.obj new file mode 100644 index 00000000..02fbfb85 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Longbow9.obj @@ -0,0 +1,477 @@ +# Blender v2.72 (sub 0) OBJ File: 'LongbowRigFinished.blend' +# www.blender.org +mtllib Longbow9.mtl + +v -0.000268 -3.971003 2.148570 +v -0.000268 -3.971002 2.148833 +v 0.000268 -3.971002 2.148835 +v 0.000268 -3.971003 2.148576 +v -0.000268 -3.563677 2.398376 +v -0.000268 -3.054203 2.655483 +v -0.000268 -2.544791 2.838658 +v -0.000268 -2.035393 3.002568 +v -0.000268 -1.525986 3.178924 +v -0.000268 -1.016573 3.361767 +v -0.000268 -0.132064 3.662887 +v -0.000268 0.002199 3.662887 +v -0.000268 0.136575 3.662887 +v -0.000268 1.020479 3.362346 +v -0.000268 1.529593 3.179776 +v -0.000268 2.038712 3.003633 +v -0.000268 2.547841 2.839913 +v -0.000268 3.056955 2.656831 +v -0.000268 3.566007 2.399387 +v -0.000268 3.566007 2.398835 +v -0.000268 3.056956 2.657953 +v -0.000268 2.547841 2.839431 +v -0.000268 2.038712 3.003170 +v -0.000268 1.529593 3.179345 +v -0.000268 1.020479 3.361972 +v -0.000268 0.136575 3.662351 +v -0.000268 0.002199 3.662351 +v -0.000268 -0.132064 3.662351 +v -0.000268 -1.016573 3.361393 +v -0.000268 -1.525986 3.178494 +v -0.000268 -2.035393 3.002106 +v -0.000268 -2.544791 2.838211 +v -0.000268 -3.054203 2.654989 +v -0.000268 -3.563677 2.397399 +v 0.000268 3.566007 2.398835 +v 0.000268 3.056956 2.658080 +v 0.000268 2.547841 2.839431 +v 0.000268 2.038712 3.003170 +v 0.000268 1.529593 3.179345 +v 0.000268 1.020479 3.361972 +v 0.000268 0.136575 3.662351 +v 0.000268 0.002199 3.662351 +v 0.000268 -0.132064 3.662351 +v 0.000268 -1.016573 3.361393 +v 0.000268 -1.525986 3.178494 +v 0.000268 -2.035393 3.002106 +v 0.000268 -2.544791 2.838211 +v 0.000268 -3.054203 2.654989 +v 0.000268 -3.563677 2.397399 +v 0.000268 3.566007 2.399337 +v 0.000268 3.056957 2.659277 +v 0.000268 2.547841 2.839913 +v 0.000268 2.038712 3.003633 +v 0.000268 1.529593 3.179776 +v 0.000268 1.020479 3.362346 +v 0.000268 0.136575 3.662887 +v 0.000268 0.002199 3.662887 +v 0.000268 -0.132064 3.662887 +v 0.000268 -1.016573 3.361767 +v 0.000268 -1.525986 3.178924 +v 0.000268 -2.035393 3.002568 +v 0.000268 -2.544791 2.838693 +v 0.000268 -3.054203 2.655483 +v 0.000268 -3.563677 2.397900 +v -0.039304 4.088087 2.167005 +v 0.039304 4.088087 2.166898 +v -0.067379 3.551811 1.630381 +v -0.085346 2.833168 1.027312 +v -0.101068 1.833753 0.550028 +v -0.112298 0.733394 0.347288 +v 0.112298 0.733394 0.347286 +v 0.101068 1.833753 0.550018 +v 0.085346 2.833169 1.027310 +v 0.067379 3.551811 1.630368 +v 0.112298 0.733394 0.147255 +v 0.101068 1.833753 0.369740 +v 0.085346 2.833168 0.874175 +v 0.067379 3.551809 1.507848 +v -0.112298 0.733394 0.147250 +v -0.101068 1.833753 0.369739 +v -0.085346 2.833168 0.874173 +v -0.067379 3.551809 1.507839 +v -0.039304 -4.086884 2.106175 +v 0.039304 -4.086884 2.106174 +v -0.067379 -3.551042 1.629297 +v -0.085346 -2.833012 1.026838 +v -0.101068 -1.833982 0.549896 +v -0.112298 -0.733832 0.347268 +v 0.112298 -0.733832 0.347264 +v 0.101068 -1.833982 0.549886 +v 0.085346 -2.833012 1.026836 +v 0.067379 -3.551042 1.629282 +v 0.112298 -0.733832 0.147232 +v 0.101068 -1.833982 0.369611 +v 0.085346 -2.833013 0.873715 +v 0.067379 -3.551044 1.506822 +v -0.112298 -0.733832 0.147232 +v -0.101068 -1.833982 0.369610 +v -0.085346 -2.833013 0.873713 +v -0.067379 -3.551044 1.506812 +v 0.041280 4.050359 2.150578 +v 0.041280 4.050356 2.073224 +v -0.041280 4.050356 2.073323 +v -0.041280 4.050359 2.150437 +v -0.000268 3.973338 2.150140 +v -0.000268 3.973339 2.149919 +v 0.000268 3.973339 2.149917 +v 0.000268 3.973338 2.150143 +v 0.042243 -4.030780 2.081617 +v 0.042243 -4.030783 2.002601 +v -0.042243 -4.030783 2.002727 +v -0.042243 -4.030780 2.081458 +v -0.022828 -0.323007 0.165308 +v 0.112298 -0.000220 0.346056 +v -0.112298 -0.000220 0.346056 +v 0.112298 -0.000220 0.145996 +v -0.112298 -0.000220 0.145986 +v -0.000268 -0.576800 3.503409 +v -0.000268 -0.576800 3.502963 +v 0.000268 -0.576800 3.502963 +v 0.000268 -0.576800 3.503409 +v -0.000268 0.578520 3.503734 +v -0.000268 0.578520 3.503288 +v 0.000268 0.578520 3.503288 +v 0.000268 0.578520 3.503734 +vt 0.168467 0.018892 +vt 0.168467 0.093146 +vt 0.166324 0.001744 +vt 0.078910 0.018892 +vt 0.081053 0.001744 +vt 0.078910 0.093146 +vt 0.663220 0.018892 +vt 0.573663 0.018892 +vt 0.575806 0.001744 +vt 0.661077 0.001744 +vt 0.792729 0.245375 +vt 0.819996 0.027244 +vt 0.911641 0.027244 +vt 0.050599 0.366568 +vt 0.050599 0.245369 +vt 0.196777 0.366568 +vt 0.545353 0.245375 +vt 0.496627 0.796292 +vt 0.508808 0.720291 +vt 0.728075 0.720291 +vt 0.525862 0.476500 +vt 0.711021 0.476500 +vt 0.691530 0.245375 +vt 0.245503 0.998256 +vt 0.233322 0.902066 +vt 0.233322 0.720267 +vt 0.216268 0.630006 +vt 0.216268 0.476487 +vt 0.196777 0.245369 +vt 0.001873 0.998256 +vt 0.014055 0.902066 +vt 0.031109 0.630006 +vt 0.001873 0.796257 +vt 0.014055 0.720267 +vt 0.031109 0.476487 +vt 0.823183 0.001744 +vt 0.908453 0.001744 +vt 0.413700 0.998256 +vt 0.416888 0.896772 +vt 0.416888 0.972757 +vt 0.325242 0.896772 +vt 0.328430 0.998256 +vt 0.325242 0.972757 +vt 0.756185 0.720291 +vt 0.975452 0.720291 +vt 0.987633 0.796292 +vt 0.773239 0.476500 +vt 0.958398 0.476500 +vt 0.938907 0.245375 +vt 0.480698 0.279733 +vt 0.480698 0.097934 +vt 0.492880 0.001744 +vt 0.463644 0.523513 +vt 0.463644 0.369994 +vt 0.444154 0.754631 +vt 0.444154 0.633432 +vt 0.261432 0.097934 +vt 0.249250 0.001744 +vt 0.278486 0.369994 +vt 0.297976 0.633432 +vt 0.261432 0.279733 +vt 0.278486 0.523513 +vt 0.297976 0.754631 +vt 0.994753 0.458915 +vt 0.994753 0.232074 +vt 0.998127 0.232074 +vt 0.994753 0.462403 +vt 0.994753 0.664403 +vt 0.991380 0.664403 +vt 0.994753 0.001744 +vt 0.994753 0.228585 +vt 0.991380 0.228585 +vt 0.994753 0.667891 +vt 0.994753 0.869890 +vt 0.991380 0.869890 +vt 0.998127 0.667891 +vt 0.998127 0.869890 +vt 0.998127 0.001744 +vt 0.998127 0.228585 +vt 0.998127 0.462403 +vt 0.998127 0.664403 +vt 0.991380 0.458915 +vt 0.991380 0.232074 +vt 0.740256 0.796292 +vt 0.245503 0.796257 +vt 0.744003 0.796292 +vt 0.492880 0.203743 +vt 0.249250 0.203743 +vt 0.998127 0.458915 +vt 0.991380 0.462403 +vt 0.991380 0.001744 +vt 0.991380 0.667891 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +usemtl None +s off +f 101/1 102/2 66/3 +f 104/4 65/5 103/6 +f 103/6 65/5 66/3 +f 104/7 101/8 66/9 +f 102/2 103/6 66/3 +f 65/10 104/7 66/9 +s 1 +f 85/11 112/12 109/13 +f 82/14 67/15 104/4 +f 82/14 103/6 102/2 +f 78/16 102/2 101/1 +f 74/17 101/8 104/7 +f 71/18 72/19 69/20 +f 72/19 73/21 68/22 +f 73/21 74/17 67/23 +f 75/24 76/25 72/26 +f 76/25 77/27 73/28 +f 77/27 78/16 74/29 +f 79/30 80/31 76/25 +f 80/31 81/32 77/27 +f 81/32 82/14 78/16 +f 79/30 70/33 69/34 +f 80/31 69/34 68/35 +f 81/32 68/35 67/15 +f 83/36 84/37 109/13 +f 84/38 110/39 109/40 +f 111/41 83/42 112/43 +f 110/39 84/38 83/42 +f 87/44 90/45 89/46 +f 86/47 91/48 90/45 +f 85/11 92/49 91/48 +f 90/50 94/51 93/52 +f 91/53 95/54 94/51 +f 92/55 96/56 95/54 +f 94/51 98/57 97/58 +f 94/51 95/54 99/59 +f 96/56 100/60 99/59 +f 97/58 98/57 87/61 +f 98/57 99/59 86/62 +f 99/59 100/60 85/63 +f 115/64 114/65 71/66 +f 114/67 116/68 75/69 +f 116/70 117/71 79/72 +f 117/73 115/74 70/75 +f 109/40 110/39 96/56 +f 110/39 111/41 100/60 +f 100/60 111/41 112/43 +f 97/76 88/77 115/74 +f 93/78 97/79 117/71 +f 89/80 93/81 116/68 +f 88/82 89/83 114/65 +f 92/49 85/11 109/13 +f 103/6 82/14 104/4 +f 78/16 82/14 102/2 +f 74/29 78/16 101/1 +f 67/23 74/17 104/7 +f 70/84 71/18 69/20 +f 69/20 72/19 68/22 +f 68/22 73/21 67/23 +f 71/85 75/24 72/26 +f 72/26 76/25 73/28 +f 73/28 77/27 74/29 +f 75/24 79/30 76/25 +f 76/25 80/31 77/27 +f 77/27 81/32 78/16 +f 80/31 79/30 69/34 +f 81/32 80/31 68/35 +f 82/14 81/32 67/15 +f 112/12 83/36 109/13 +f 111/41 110/39 83/42 +f 88/86 87/44 89/46 +f 87/44 86/47 90/45 +f 86/47 85/11 91/48 +f 89/87 90/50 93/52 +f 90/50 91/53 94/51 +f 91/53 92/55 95/54 +f 93/52 94/51 97/58 +f 98/57 94/51 99/59 +f 95/54 96/56 99/59 +f 88/88 97/58 87/61 +f 87/61 98/57 86/62 +f 86/62 99/59 85/63 +f 70/89 115/64 71/66 +f 71/90 114/67 75/69 +f 75/91 116/70 79/72 +f 79/92 117/73 70/75 +f 92/55 109/40 96/56 +f 96/56 110/39 100/60 +f 85/63 100/60 112/43 +f 117/73 97/76 115/74 +f 116/70 93/78 117/71 +f 114/67 89/80 116/68 +f 115/64 88/82 114/65 +usemtl None_NONE +s off +f 112/93 109/94 4/95 +f 3/96 4/93 109/94 +f 1/96 112/93 4/95 +s 1 +f 34/93 2/94 1/95 +f 49/93 3/94 2/95 +f 64/93 4/94 3/95 +f 5/93 1/94 4/95 +f 104/96 105/93 108/94 +f 20/93 21/94 18/95 +f 21/93 22/94 17/95 +f 22/93 23/94 16/95 +f 23/93 24/94 15/95 +f 24/93 25/94 14/95 +f 123/93 26/94 13/95 +f 26/93 27/94 12/95 +f 27/93 28/94 11/95 +f 118/96 119/93 29/94 +f 29/93 30/94 9/95 +f 30/93 31/94 8/95 +f 31/93 32/94 7/95 +f 32/93 33/94 6/95 +f 33/93 34/94 5/95 +f 35/93 36/94 21/95 +f 36/93 37/94 22/95 +f 37/93 38/94 23/95 +f 38/93 39/94 24/95 +f 39/93 40/94 25/95 +f 124/93 41/94 26/95 +f 41/93 42/94 27/95 +f 42/93 43/94 28/95 +f 120/93 44/94 29/95 +f 44/93 45/94 30/95 +f 45/93 46/94 31/95 +f 46/93 47/94 32/95 +f 47/93 48/94 33/95 +f 48/93 49/94 34/95 +f 50/93 51/94 36/95 +f 51/93 52/94 37/95 +f 52/93 53/94 38/95 +f 53/93 54/94 39/95 +f 54/93 55/94 40/95 +f 125/93 56/94 41/95 +f 56/93 57/94 42/95 +f 57/93 58/94 43/95 +f 121/93 59/94 44/95 +f 59/93 60/94 45/95 +f 60/93 61/94 46/95 +f 61/93 62/94 47/95 +f 62/93 63/94 48/95 +f 63/93 64/94 49/95 +f 19/93 18/94 51/95 +f 18/93 17/94 52/95 +f 17/93 16/94 53/95 +f 16/93 15/94 54/95 +f 15/93 14/94 55/95 +f 122/93 13/94 56/95 +f 13/93 12/94 57/95 +f 12/93 11/94 58/95 +f 118/93 10/94 59/95 +f 10/93 9/94 60/95 +f 9/93 8/94 61/95 +f 8/93 7/94 62/95 +f 7/93 6/94 63/95 +f 6/93 5/94 64/95 +f 108/96 107/93 101/94 +f 50/93 108/94 105/95 +f 35/93 107/94 108/95 +f 20/93 106/94 107/95 +f 19/93 105/94 106/95 +f 104/93 101/94 107/95 +f 105/96 104/93 106/94 +f 112/96 1/93 2/94 +f 28/93 119/94 118/95 +f 43/93 120/94 119/95 +f 58/93 121/94 120/95 +f 11/93 118/94 121/95 +f 25/93 123/94 122/95 +f 40/93 124/94 123/95 +f 55/93 125/94 124/95 +f 14/93 122/94 125/95 +f 5/96 34/93 1/95 +f 34/96 49/93 2/95 +f 49/96 64/93 3/95 +f 64/96 5/93 4/95 +f 101/95 104/96 108/94 +f 19/96 20/93 18/95 +f 18/96 21/93 17/95 +f 17/96 22/93 16/95 +f 16/96 23/93 15/95 +f 15/96 24/93 14/95 +f 122/96 123/93 13/95 +f 13/96 26/93 12/95 +f 12/96 27/93 11/95 +f 10/95 118/96 29/94 +f 10/96 29/93 9/95 +f 9/96 30/93 8/95 +f 8/96 31/93 7/95 +f 7/96 32/93 6/95 +f 6/96 33/93 5/95 +f 20/96 35/93 21/95 +f 21/96 36/93 22/95 +f 22/96 37/93 23/95 +f 23/96 38/93 24/95 +f 24/96 39/93 25/95 +f 123/96 124/93 26/95 +f 26/96 41/93 27/95 +f 27/96 42/93 28/95 +f 119/96 120/93 29/95 +f 29/96 44/93 30/95 +f 30/96 45/93 31/95 +f 31/96 46/93 32/95 +f 32/96 47/93 33/95 +f 33/96 48/93 34/95 +f 35/96 50/93 36/95 +f 36/96 51/93 37/95 +f 37/96 52/93 38/95 +f 38/96 53/93 39/95 +f 39/96 54/93 40/95 +f 124/96 125/93 41/95 +f 41/96 56/93 42/95 +f 42/96 57/93 43/95 +f 120/96 121/93 44/95 +f 44/96 59/93 45/95 +f 45/96 60/93 46/95 +f 46/96 61/93 47/95 +f 47/96 62/93 48/95 +f 48/96 63/93 49/95 +f 50/96 19/93 51/95 +f 51/96 18/93 52/95 +f 52/96 17/93 53/95 +f 53/96 16/93 54/95 +f 54/96 15/93 55/95 +f 125/96 122/93 56/95 +f 56/96 13/93 57/95 +f 57/96 12/93 58/95 +f 121/96 118/93 59/95 +f 59/96 10/93 60/95 +f 60/96 9/93 61/95 +f 61/96 8/93 62/95 +f 62/96 7/93 63/95 +f 63/96 6/93 64/95 +f 19/96 50/93 105/95 +f 50/96 35/93 108/95 +f 35/96 20/93 107/95 +f 20/96 19/93 106/95 +f 106/96 104/93 107/95 +f 11/96 28/93 118/95 +f 28/96 43/93 119/95 +f 43/96 58/93 120/95 +f 58/96 11/93 121/95 +f 14/96 25/93 122/95 +f 25/96 40/93 123/95 +f 40/96 55/93 124/95 +f 55/96 14/93 125/95 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/LongbowRig.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/LongbowRig.png new file mode 100644 index 0000000000000000000000000000000000000000..f956ee40e45904faed8164e64c806b5202be3889 GIT binary patch literal 1541 zcmV+g2KxDlP)6rPHaQs@qIws8~gv=%JOL{7#sC)@*7qxFV&hp-!O0;M@~Hs)-c z&V@_q{Oh+PzZ@slt&t*v?!kJg;|h}@3Ls2L_m6i}*z+m0*7tXUM-b7et>X?UjZ{wA zNMqzMmjG5E&n@wG+UHb0MPRA!HK- zA#hp^M1s~kbIzPSaQBhUq?9`9>iwxuTPOYg>ygKE0oZdq(Yuf6%;@fv>P&f@>~6_; zjObNi-8$=5P=O^SbWz*~e=Ek)nJ0UePqlUK4w>%3{mXgeaeq8uLYZ@5Ha-ZWI3wUv zDz$Z%DH8$5B@+Y$=-yOQR_1J9@Br&pN%t>i=4`j9wiw0MdmthNU^W_kE1jH`Ki-}Y z6-y>h&!`BdWB5#22_K7S4&v0-sV!*DnI>bI673ysM7dk?twrsL1bPHZPOO(o z>p#aUz%nN;Tf>9Ba6ZcBoQ;U!@jQa7ZAkESPJHA$-G81}560#`bp5J`*XOF^X2MoR zkRrm}A&)En3I6g7pT4K(Dndl;ttyy)s^>rJ2TWmk;wL`(fnCo_8E)oUMA>8*lL!uT zBJH`Ja$>y{5cwv5^#i>*$K!-4Y}KFl1HF%pp6Yq+aq|PUJEzNq-|i0_ro`4}YHg?} zwfEha1f_Q7DUtLEpN-lYr|SIv>W=%niPKuY^aEx_5}1-=dm)uJ^t|;TCmSaZun`x* z*fe6am3a~#Pa8x$?+3gGDG9YXL9p%xcGdIN0zp_Wh0;3B#|c%0 z9)9C$>&#PT^8j~J9=foV{vAKCi-+!dp3|p#eq4sX zJun-dviHCv$Vtd4VY>7G{Ppm$4RuUCM9GtoY+UIqnbsWHt#zrN`hnJi%T^H`Uh&2! zC4dQ`iZk4R(B1jv#Z0N4BqAJ^A)6o01ywK^3b}4hG9lvYdM+|H%I=)j1_a5jeETYY z9qsA$n@5t3T-_apT)ur+pS01p_5AuS**Hi9y!&wZVLn}3;<%)nWM2Q}{-_^_2&QTH riR*?x%HRCJ`SSPtzr&tYwfl6)tx*4 zvK{m+-u~ThDT^lY+%wPPme|nU$=L9#U%$h&nn=XAzJ3KL%I5U>3*sX_G0i~;N-#8` zfJ&%d$VOp^4RWJTjh4_3i$Q`K%^&$}0QzuI0~~@`sEKNTq1*`sSemnqzAZ=)!CJ~;fFjWf$p@!8^ z3rbK;ga^6&{p0|K7Bgxt<}_3iC1Tp@tDxI73JstIt_F>di2^_+9Hv=VY#nhCS+8Vn ziF0Yoo{2EZlZ&tebSIunVpt`8hKfX94)9dO+$kBiwt!R6@W%tdGG;|pXQv<=w44}y z5!uKIbyHP@L;;~edEwyImtVF+fQS+m##IFT@W#!Xuity%OV3{R6s8b(OF<$i(@V?@ zMv2U#|97ha1zAFLtU?87ho~bF3faVHRO`4*v!T~79=x$+lCArqr2>iqI%W_R#AFP3 zwNOwsGpWIEa2Sm`ERNdX=9@qMP&=+Piog!6M$n;5k;K>nm|{bg7xe={ zqf$i73jj4XwUpj55n4*=twvsX{_<80i7FVFl=#VS-c_m5l_(0&iIsH0pc65+K2V0$ zgrXQUYA)0bu~==EiHN1-9*fX`I2uM&j7qA^9EGFbU7K%3bPreT7n;N2p?Pa zs6vK0>evZ;3z`dR05i5wHCk*7lpT2~`w~>ZCxWI$13PoENfG5G&YkEUS+;fz$B2+n z^n;T;F_B~|lAybDnA{DUQy0$50wQo2w(}?Z1X(W88bE9GX2SFR0Je6{2M32Vvn}oYN$10$FisN=M)B{XwImre zXb~ubY>gv)Jz3^Ai`8c4U^G(gVE`X&>Z_%obcivJpS^$DJ#*=dRLcv=WO4T5g-_na z9!UrSGqxFFFZ!7co3VJuXq_oVZ}BjICoW(5qq3G)u>RrWOU8_ST%BvzuA1x!aUd`G z;6mG5ss~-gY={BXlO>%VqyV6cCoeyV^U(;5-v8`pK6fAg!3s-ch>!_3WQo|+5kEgz z-@c`v@2^GknOnEl!hG%3@4xJqUiqHy1Mv9Sv-;APzsRWzryto?r_Y}I^b?oPbLzrb z9h=-@%R89pkW55D-7T|!boAT(_4*FLdcFULc_Xaip{xGo&wsu4|3;|C9^3iHeP0{~ tqc1PGBa1E}YnunKUaudy&(sTL<9|ueNw6GSfO7x<002ovPDHLkV1ln;{eu7i literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ModelArrow.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ModelArrow.obj new file mode 100644 index 00000000..e3791522 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ModelArrow.obj @@ -0,0 +1,128 @@ +# Blender v2.66 (sub 1) OBJ File: 'ModelArrow.blend' +# www.blender.org +mtllib ModelArrow4.mtl +o Cube +v -1.200425 0.065637 -0.152574 +v -1.200425 0.079779 -0.138432 +v 0.799575 0.079779 -0.138432 +v 0.799575 0.065637 -0.152574 +v -1.200426 0.051495 -0.138432 +v -1.200424 0.065637 -0.124290 +v 0.799575 0.065637 -0.124290 +v 0.799575 0.051495 -0.138432 +v 0.942923 0.065637 -0.138432 +v -1.048398 0.051495 -0.138432 +v -1.048398 0.079779 -0.138432 +v -1.048398 0.065637 -0.152574 +v -1.048397 0.065637 -0.124290 +v -1.216054 0.037275 -0.110034 +v -1.048398 0.058566 -0.131361 +v -1.200425 0.058566 -0.131361 +v -1.048398 0.072708 -0.131361 +v -1.216054 0.090503 -0.114142 +v -1.200425 0.072708 -0.131361 +v -1.048398 0.072708 -0.145503 +v -1.216054 0.090503 -0.163261 +v -1.200425 0.072708 -0.145503 +v -1.216055 0.041126 -0.163518 +v -1.048398 0.058566 -0.145503 +v -1.200425 0.058566 -0.145503 +vt 0.592617 0.500000 +vt 0.592617 0.651513 +vt 0.328599 0.651514 +vt 0.621191 0.651514 +vt 0.621191 0.348487 +vt 0.885209 0.348486 +vt 0.520603 0.681817 +vt 0.542323 0.681817 +vt 0.542323 0.833330 +vt 0.621191 0.166667 +vt 0.621191 0.015152 +vt 0.885209 0.015152 +vt 0.642911 0.984848 +vt 0.621191 0.984848 +vt 0.621191 0.833333 +vt 0.592617 0.166667 +vt 0.592617 0.318183 +vt 0.328599 0.318183 +vt 0.570897 0.681817 +vt 0.592617 0.681817 +vt 0.592617 0.984848 +vt 0.985713 0.391161 +vt 0.964043 0.389605 +vt 0.985713 0.015152 +vt 0.492029 0.984844 +vt 0.470309 0.984844 +vt 0.470309 0.681817 +vt 0.014287 0.651518 +vt 0.014287 0.348486 +vt 0.157156 0.500002 +vt 0.300025 0.348486 +vt 0.300025 0.651518 +vt 0.935469 0.472457 +vt 0.913783 0.471178 +vt 0.935469 0.015152 +vt 0.935454 0.884510 +vt 0.913783 0.882977 +vt 0.935454 0.502761 +vt 0.300025 0.318183 +vt 0.157156 0.318183 +vt 0.300025 0.015152 +vt 0.985700 0.883500 +vt 0.964028 0.881963 +vt 0.985700 0.502761 +vt 0.592617 0.348486 +vt 0.328599 0.348486 +vt 0.885209 0.500000 +vt 0.885209 0.651514 +vt 0.542323 0.984844 +vt 0.520603 0.984844 +vt 0.621191 0.318183 +vt 0.885209 0.318183 +vt 0.621191 0.681817 +vt 0.642911 0.681817 +vt 0.592617 0.015152 +vt 0.328599 0.015152 +vt 0.014287 0.318183 +vt 0.014287 0.015152 +vt 0.570897 0.984848 +vt 0.570897 0.833333 +vt 0.492029 0.681817 +vt 0.492029 0.833330 +usemtl Material +s 1 +f 20/1 11/2 3/3 +f 8/4 7/5 13/6 +f 13/7 6/8 16/9 +f 17/10 13/11 7/12 +f 10/13 5/14 25/15 +f 24/16 12/17 4/18 +f 6/19 13/20 11/21 +f 17/22 19/23 18/24 +f 2/25 11/26 12/27 +f 7/28 8/29 9/30 +f 8/29 4/31 9/30 +f 3/32 7/28 9/30 +f 4/31 3/32 9/30 +f 15/33 16/34 14/35 +f 20/36 22/37 21/38 +f 1/39 25/40 2/41 +f 24/42 25/43 23/44 +f 12/45 20/1 4/46 +f 13/6 15/47 10/48 +f 16/9 5/49 10/50 +f 20/1 3/3 4/46 +f 10/48 8/4 13/6 +f 11/51 17/10 3/52 +f 10/50 13/7 16/9 +f 25/15 1/53 12/54 +f 10/55 24/16 8/56 +f 17/10 7/12 3/52 +f 12/54 10/13 25/15 +f 5/57 6/58 25/40 +f 2/59 19/60 6/19 +f 24/16 4/18 8/56 +f 11/21 2/59 6/19 +f 1/61 22/62 2/25 +f 12/27 1/61 2/25 +f 25/40 6/58 2/41 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ModelArrow3.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ModelArrow3.obj new file mode 100644 index 00000000..fdea3b2a --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ModelArrow3.obj @@ -0,0 +1,128 @@ +# Blender v2.66 (sub 1) OBJ File: 'ModelArrow.blend' +# www.blender.org +mtllib ModelArrow3.mtl +o Cube +v -1.200425 0.000000 -0.014142 +v -1.200425 0.014142 0.000000 +v 0.799575 0.014142 -0.000000 +v 0.799575 -0.000000 -0.014142 +v -1.200426 -0.014142 0.000000 +v -1.200424 0.000000 0.014142 +v 0.799575 -0.000000 0.014142 +v 0.799575 -0.014142 0.000000 +v 0.942923 -0.000000 -0.000000 +v -1.048398 -0.014142 0.000000 +v -1.048398 0.014142 0.000000 +v -1.048398 0.000000 -0.014142 +v -1.048397 0.000000 0.014142 +v -1.216054 -0.028362 0.028398 +v -1.048398 -0.007071 0.007071 +v -1.200425 -0.007071 0.007071 +v -1.048398 0.007071 0.007071 +v -1.216054 0.024865 0.024290 +v -1.200425 0.007071 0.007071 +v -1.048398 0.007071 -0.007071 +v -1.216054 0.024865 -0.024829 +v -1.200425 0.007071 -0.007071 +v -1.216055 -0.024511 -0.025087 +v -1.048398 -0.007071 -0.007071 +v -1.200425 -0.007071 -0.007071 +vt 0.592617 0.500000 +vt 0.592617 0.651513 +vt 0.328599 0.651514 +vt 0.621191 0.651514 +vt 0.621191 0.348487 +vt 0.885209 0.348486 +vt 0.520603 0.681817 +vt 0.542323 0.681817 +vt 0.542323 0.833330 +vt 0.621191 0.166667 +vt 0.621191 0.015152 +vt 0.885209 0.015152 +vt 0.642911 0.984848 +vt 0.621191 0.984848 +vt 0.621191 0.833333 +vt 0.592617 0.166667 +vt 0.592617 0.318183 +vt 0.328599 0.318183 +vt 0.570897 0.681817 +vt 0.592617 0.681817 +vt 0.592617 0.984848 +vt 0.985713 0.391161 +vt 0.964043 0.389605 +vt 0.985713 0.015152 +vt 0.492029 0.984844 +vt 0.470309 0.984844 +vt 0.470309 0.681817 +vt 0.014287 0.651518 +vt 0.014287 0.348486 +vt 0.157156 0.500002 +vt 0.300025 0.348486 +vt 0.300025 0.651518 +vt 0.935469 0.472457 +vt 0.913783 0.471178 +vt 0.935469 0.015152 +vt 0.935454 0.884510 +vt 0.913783 0.882977 +vt 0.935454 0.502761 +vt 0.300025 0.318183 +vt 0.157156 0.318183 +vt 0.300025 0.015152 +vt 0.985700 0.883500 +vt 0.964028 0.881963 +vt 0.985700 0.502761 +vt 0.592617 0.348486 +vt 0.328599 0.348486 +vt 0.885209 0.500000 +vt 0.885209 0.651514 +vt 0.542323 0.984844 +vt 0.520603 0.984844 +vt 0.621191 0.318183 +vt 0.885209 0.318183 +vt 0.621191 0.681817 +vt 0.642911 0.681817 +vt 0.592617 0.015152 +vt 0.328599 0.015152 +vt 0.014287 0.318183 +vt 0.014287 0.015152 +vt 0.570897 0.984848 +vt 0.570897 0.833333 +vt 0.492029 0.681817 +vt 0.492029 0.833330 +usemtl Material +s 1 +f 20/1 11/2 3/3 +f 8/4 7/5 13/6 +f 13/7 6/8 16/9 +f 17/10 13/11 7/12 +f 10/13 5/14 25/15 +f 24/16 12/17 4/18 +f 6/19 13/20 11/21 +f 17/22 19/23 18/24 +f 2/25 11/26 12/27 +f 7/28 8/29 9/30 +f 8/29 4/31 9/30 +f 3/32 7/28 9/30 +f 4/31 3/32 9/30 +f 15/33 16/34 14/35 +f 20/36 22/37 21/38 +f 1/39 25/40 2/41 +f 24/42 25/43 23/44 +f 12/45 20/1 4/46 +f 13/6 15/47 10/48 +f 16/9 5/49 10/50 +f 20/1 3/3 4/46 +f 10/48 8/4 13/6 +f 11/51 17/10 3/52 +f 10/50 13/7 16/9 +f 25/15 1/53 12/54 +f 10/55 24/16 8/56 +f 17/10 7/12 3/52 +f 12/54 10/13 25/15 +f 5/57 6/58 25/40 +f 2/59 19/60 6/19 +f 24/16 4/18 8/56 +f 11/21 2/59 6/19 +f 1/61 22/62 2/25 +f 12/27 1/61 2/25 +f 25/40 6/58 2/41 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/MyHotLapisBlock.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/MyHotLapisBlock.png new file mode 100644 index 0000000000000000000000000000000000000000..1f68d2ade6bf9700c2a9ef8420b0aa5c76d26999 GIT binary patch literal 2361 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewBarrel.mtl b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewBarrel.mtl new file mode 100644 index 00000000..e5e38dde --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewBarrel.mtl @@ -0,0 +1,12 @@ +# Blender MTL File: 'NewBarrel.blend' +# Material Count: 1 + +newmtl None +Ns 96.078431 +Ka 0.000000 0.000000 0.000000 +Kd 0.640000 0.640000 0.640000 +Ks 0.500000 0.500000 0.500000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\Users\Mohammad\Projects\Untitled.png diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewBarrel.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewBarrel.obj new file mode 100644 index 00000000..0d03cd41 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewBarrel.obj @@ -0,0 +1,1121 @@ +# Blender v2.74 (sub 0) OBJ File: 'NewBarrel.blend' +# www.blender.org +mtllib NewBarrel.mtl +o Circle +v -0.593261 2.732275 0.593261 +v -1.000000 2.732275 0.000000 +v -0.707107 2.732275 0.707107 +v -0.593261 2.732275 -0.593261 +v -0.707107 2.732275 -0.707107 +v 0.000000 2.732275 -0.838998 +v 0.000000 2.732275 -1.000000 +v 0.593261 2.732275 -0.593261 +v 0.707107 2.732275 -0.707107 +v 0.838998 2.732275 0.000000 +v 1.000000 2.732275 0.000000 +v 0.593261 2.732275 0.593261 +v 0.707107 2.732275 0.707107 +v 0.000000 2.732275 0.838998 +v 0.000000 2.732275 1.000000 +v -0.838998 2.732275 0.000000 +v 0.727447 0.091595 -0.727447 +v 0.720871 0.126895 -0.720872 +v 1.019465 0.126895 0.000000 +v 0.704995 0.141517 -0.704995 +v 0.997014 0.141517 0.000000 +v 1.029049 2.621723 0.000000 +v 1.038436 2.657356 0.000000 +v 0.734285 2.657356 0.734286 +v 0.711622 2.606964 0.711623 +v 1.006386 2.606964 0.000000 +v 1.029049 2.692988 0.000000 +v 1.006386 2.707747 0.000000 +v 0.711622 2.707747 0.711623 +v 0.727647 2.692988 0.727648 +v 0.997014 0.041672 0.000000 +v 0.704995 0.041672 -0.704995 +v 0.720871 0.056294 -0.720872 +v 1.019465 0.056294 0.000000 +v 0.000000 0.091595 -1.028766 +v 0.000000 0.126895 -1.019466 +v 0.000000 0.141517 -0.997014 +v 0.727647 2.621723 0.727648 +v 0.000000 2.657356 1.038437 +v 0.000000 2.621723 1.029050 +v 0.000000 2.707747 1.006387 +v 0.000000 2.692988 1.029050 +v 0.000000 0.041672 -0.997014 +v 0.000000 0.056294 -1.019466 +v -0.727447 0.091595 -0.727447 +v -0.720872 0.126895 -0.720871 +v -0.704995 0.141517 -0.704995 +v -0.734286 2.657356 0.734285 +v 0.000000 2.606964 1.006387 +v -0.727648 2.621723 0.727647 +v -0.727648 2.692988 0.727647 +v -0.704995 0.041672 -0.704995 +v -0.720872 0.056294 -0.720871 +v -1.028766 0.091595 0.000000 +v -1.019466 0.126895 0.000000 +v -0.997014 0.141517 0.000000 +v -1.038437 2.657356 0.000000 +v -0.711623 2.606964 0.711622 +v -1.029050 2.621723 0.000000 +v -1.029050 2.692988 0.000000 +v -0.711623 2.707747 0.711622 +v -0.997014 0.041672 0.000000 +v -1.019466 0.056294 0.000000 +v -0.727447 0.091595 0.727447 +v -0.720872 0.126895 0.720871 +v -0.704995 0.141517 0.704995 +v -0.734286 2.657356 -0.734285 +v -0.711623 2.606964 -0.711622 +v -1.006386 2.606964 0.000000 +v -1.006386 2.707747 0.000000 +v -0.711623 2.707747 -0.711622 +v -0.727648 2.692988 -0.727647 +v -0.704995 0.041672 0.704995 +v -0.720872 0.056294 0.720871 +v 0.000000 0.091595 1.028766 +v 0.000000 0.126895 1.019466 +v 0.000000 0.141517 0.997014 +v -0.727648 2.621723 -0.727647 +v 0.000000 2.657356 -1.038437 +v 0.000000 2.606964 -1.006386 +v 0.000000 2.707747 -1.006386 +v 0.000000 0.041672 0.997014 +v 0.000000 0.056294 1.019466 +v 0.727447 0.091595 0.727448 +v 0.720871 0.126895 0.720871 +v 0.704995 0.141517 0.704996 +v 0.000000 2.621723 -1.029049 +v 0.734285 2.657356 -0.734286 +v 0.727647 2.621723 -0.727648 +v 0.000000 2.692988 -1.029049 +v 0.711622 2.707747 -0.711623 +v 0.727647 2.692988 -0.727648 +v 0.704995 0.041672 0.704996 +v 0.720871 0.056294 0.720871 +v 1.028766 0.091595 0.000000 +v 0.711622 2.606964 -0.711623 +v -0.593261 -0.005607 -0.593261 +v -0.593261 -0.005607 0.593261 +v -0.838998 -0.005607 -0.000000 +v -0.707107 -0.005607 0.707107 +v 0.000000 -0.005607 1.000000 +v 0.000000 -0.005607 0.838998 +v 0.707107 -0.005607 0.707107 +v 0.593261 -0.005607 0.593261 +v 1.000000 -0.005607 -0.000000 +v 0.838998 -0.005607 -0.000000 +v 0.707107 -0.005607 -0.707107 +v 0.593261 -0.005607 -0.593261 +v 0.000000 -0.005607 -1.000000 +v 0.000000 -0.005607 -0.838998 +v -0.707107 -0.005607 -0.707107 +v -1.000000 -0.005607 -0.000000 +v -0.593261 0.094249 -0.593261 +v 0.593261 0.094249 -0.593261 +v 0.000000 0.094249 -0.838998 +v 0.000000 0.094249 -1.000000 +v 0.707107 0.094249 -0.707107 +v 1.000000 0.094249 0.000000 +v 0.707107 0.094249 0.707107 +v 1.144392 0.622559 0.000000 +v 0.809208 0.621854 0.809208 +v 0.000000 0.094249 1.000000 +v -0.707107 0.094249 0.707107 +v -1.000000 0.094249 0.000000 +v -0.707107 0.094249 -0.707107 +v -0.707107 2.832131 -0.707107 +v 0.707107 2.832131 -0.707107 +v 0.000000 2.832131 -1.000000 +v 0.809208 2.204670 -0.809208 +v 0.000000 2.204670 -1.144393 +v -0.809208 2.204670 -0.809208 +v -1.144393 2.204670 0.000000 +v -0.809208 2.204670 0.809208 +v 0.809208 2.204670 0.809208 +v 1.201792 1.146602 0.000000 +v 0.849796 1.677064 -0.849795 +v 1.201792 1.670271 0.000000 +v 0.000000 2.204670 0.960143 +v 0.678924 2.204670 0.678923 +v -0.960143 2.204670 0.000000 +v -0.678924 2.204670 0.678924 +v -0.678924 2.204670 -0.678924 +v 0.000000 2.204670 -0.960143 +v 0.960143 2.204670 0.000000 +v 0.678924 2.204670 -0.678923 +v 0.809208 0.621854 -0.809208 +v 0.000000 0.621854 -1.144393 +v 0.849796 1.149459 -0.849795 +v 0.000000 1.149459 -1.201792 +v 0.000000 1.677064 -1.201792 +v -0.809208 0.621854 -0.809208 +v -0.849796 1.149459 -0.849796 +v -0.849796 1.677064 -0.849796 +v -1.144393 0.621854 0.000000 +v -1.201792 1.149459 0.000000 +v -1.201792 1.677064 0.000000 +v -0.809208 0.621854 0.809208 +v -0.849796 1.149459 0.849796 +v -0.849796 1.677064 0.849796 +v 0.000000 0.621854 1.144393 +v 0.000000 1.149459 1.201792 +v 0.000000 1.677064 1.201792 +v 0.000000 2.204670 1.144393 +v 0.849796 1.149459 0.849795 +v 0.849796 1.677064 0.849795 +v 0.593261 0.094249 0.593261 +v 0.000000 0.621854 0.960143 +v 0.678924 0.621854 0.678923 +v 0.000000 1.149459 1.008301 +v 0.712977 1.149459 0.712977 +v 0.000000 1.677064 1.008301 +v 0.712977 1.677064 0.712977 +v 0.000000 0.094249 0.838998 +v -0.678924 0.621854 0.678924 +v -0.712977 1.149459 0.712977 +v -0.712977 1.677064 0.712977 +v -0.593261 0.094249 0.593261 +v -0.960143 0.621854 0.000000 +v -1.008301 1.149459 0.000000 +v -1.008301 1.677064 0.000000 +v -0.838998 0.094249 0.000000 +v -0.678924 0.621854 -0.678924 +v -0.712977 1.149459 -0.712977 +v -0.712977 1.677064 -0.712977 +v 0.000000 0.621854 -0.960143 +v 0.000000 1.677064 -1.008301 +v 0.678924 0.621854 -0.678923 +v 0.000000 1.149459 -1.008301 +v 0.712977 1.677064 -0.712977 +v 0.960143 0.621854 0.000000 +v 1.008301 1.149459 0.000000 +v 0.712977 1.149459 -0.712977 +v 1.008301 1.677064 0.000000 +v 0.838998 0.094249 0.000000 +v 1.144392 2.204670 0.000000 +v -1.000000 2.832131 0.000000 +v 0.707107 2.832131 0.707107 +v -0.707107 2.832131 0.707107 +v 0.000000 2.832131 1.000000 +v 1.000000 2.832131 0.000000 +vt 0.425576 0.470827 +vt 0.462928 0.526514 +vt 0.411418 0.476519 +vt 0.529909 0.512773 +vt 0.535773 0.526514 +vt 0.573125 0.470827 +vt 0.587282 0.476519 +vt 0.573125 0.411507 +vt 0.587282 0.405815 +vt 0.529909 0.369561 +vt 0.535773 0.355820 +vt 0.468792 0.369561 +vt 0.462928 0.355820 +vt 0.425576 0.411507 +vt 0.411418 0.405815 +vt 0.468792 0.512773 +vt 0.263257 0.517310 +vt 0.262931 0.520670 +vt 0.190851 0.520720 +vt 0.143455 0.409923 +vt 0.144273 0.411839 +vt 0.092917 0.461685 +vt 0.163660 0.515023 +vt 0.163974 0.511630 +vt 0.215892 0.511366 +vt 0.218377 0.580815 +vt 0.270215 0.530500 +vt 0.272207 0.531301 +vt 0.143085 0.410159 +vt 0.143910 0.412093 +vt 0.092072 0.462408 +vt 0.163625 0.508241 +vt 0.215073 0.507979 +vt 0.268086 0.460122 +vt 0.216731 0.410277 +vt 0.217548 0.408360 +vt 0.190846 0.514001 +vt 0.262926 0.513950 +vt 0.091098 0.501157 +vt 0.142528 0.500603 +vt 0.142893 0.503959 +vt 0.217718 0.409923 +vt 0.216900 0.411839 +vt 0.088205 0.498414 +vt 0.087441 0.495014 +vt 0.139354 0.495577 +vt 0.219202 0.582749 +vt 0.144241 0.582749 +vt 0.090079 0.461607 +vt 0.092072 0.533563 +vt 0.088279 0.491631 +vt 0.139723 0.492190 +vt 0.144103 0.410276 +vt 0.143285 0.408360 +vt 0.142821 0.497240 +vt 0.215262 0.499821 +vt 0.214969 0.503184 +vt 0.270230 0.460891 +vt 0.268256 0.461685 +vt 0.139649 0.498972 +vt 0.212772 0.496374 +vt 0.145066 0.580815 +vt 0.091235 0.531301 +vt 0.143085 0.585812 +vt 0.090079 0.534364 +vt 0.212477 0.492979 +vt 0.092748 0.460122 +vt 0.090773 0.459329 +vt 0.214897 0.496465 +vt 0.266692 0.499268 +vt 0.265935 0.502636 +vt 0.270230 0.532971 +vt 0.268256 0.532178 +vt 0.212403 0.499762 +vt 0.264685 0.496937 +vt 0.093228 0.530500 +vt 0.091235 0.458544 +vt 0.218046 0.585812 +vt 0.143911 0.583878 +vt 0.263921 0.493538 +vt 0.092748 0.530615 +vt 0.090773 0.531409 +vt 0.265862 0.495916 +vt 0.142107 0.483365 +vt 0.142471 0.486721 +vt 0.091506 0.487270 +vt 0.217718 0.583940 +vt 0.216900 0.582023 +vt 0.088692 0.481688 +vt 0.087927 0.478288 +vt 0.139841 0.478851 +vt 0.145066 0.409030 +vt 0.093228 0.459345 +vt 0.217221 0.583878 +vt 0.269059 0.533563 +vt 0.088765 0.474905 +vt 0.140210 0.475464 +vt 0.144103 0.580461 +vt 0.143285 0.582377 +vt 0.142399 0.480002 +vt 0.090676 0.483919 +vt 0.214840 0.482583 +vt 0.214548 0.485946 +vt 0.143455 0.583940 +vt 0.144273 0.582024 +vt 0.140136 0.482246 +vt 0.213258 0.479648 +vt 0.218377 0.409030 +vt 0.144241 0.407096 +vt 0.271052 0.534364 +vt 0.269059 0.462408 +vt 0.216731 0.580461 +vt 0.217548 0.582377 +vt 0.214475 0.479227 +vt 0.266270 0.482030 +vt 0.265513 0.485398 +vt 0.090943 0.532971 +vt 0.092918 0.532178 +vt 0.212890 0.483036 +vt 0.265172 0.480212 +vt 0.219202 0.407096 +vt 0.272207 0.458544 +vt 0.271052 0.461606 +vt 0.217221 0.412093 +vt 0.212963 0.476253 +vt 0.264408 0.476812 +vt 0.268086 0.530615 +vt 0.270060 0.531409 +vt 0.265441 0.478679 +vt 0.190520 0.517361 +vt 0.139881 0.520753 +vt 0.090943 0.460891 +vt 0.090903 0.515398 +vt 0.090554 0.512008 +vt 0.270215 0.459345 +vt 0.218046 0.410159 +vt 0.090868 0.508615 +vt 0.270060 0.459329 +vt 0.139085 0.517394 +vt 0.197161 0.078440 +vt 0.092828 0.120386 +vt 0.136044 0.078440 +vt 0.078670 0.114694 +vt 0.078670 0.185398 +vt 0.092828 0.179706 +vt 0.130180 0.235393 +vt 0.136044 0.221652 +vt 0.203025 0.235393 +vt 0.197161 0.221652 +vt 0.254534 0.185398 +vt 0.240377 0.179706 +vt 0.254534 0.114694 +vt 0.240377 0.120386 +vt 0.203025 0.064699 +vt 0.130180 0.064699 +vt 0.424870 0.410268 +vt 0.468598 0.511314 +vt 0.425170 0.469588 +vt 0.246453 0.305690 +vt 0.194944 0.296465 +vt 0.246453 0.296465 +vt 0.172216 0.277019 +vt 0.245061 0.286243 +vt 0.172216 0.286243 +vt 0.408388 0.095227 +vt 0.454639 0.144035 +vt 0.395691 0.143967 +vt 0.122094 0.320665 +vt 0.070585 0.311440 +vt 0.122094 0.311440 +vt 0.194939 0.320665 +vt 0.194939 0.311440 +vt 0.246448 0.320665 +vt 0.246448 0.311440 +vt 0.122099 0.305690 +vt 0.070590 0.296465 +vt 0.122099 0.296465 +vt 0.194944 0.305690 +vt 0.855659 0.230407 +vt 0.907168 0.109708 +vt 0.907168 0.180412 +vt 0.459898 0.338928 +vt 0.538002 0.290189 +vt 0.532743 0.338928 +vt 0.408558 0.340032 +vt 0.454693 0.291184 +vt 0.460067 0.339912 +vt 0.538056 0.290989 +vt 0.532912 0.339741 +vt 0.597003 0.290851 +vt 0.584421 0.339620 +vt 0.409142 0.338474 +vt 0.455275 0.289624 +vt 0.460651 0.338351 +vt 0.533496 0.338176 +vt 0.597585 0.289283 +vt 0.585005 0.338053 +vt 0.452549 0.192446 +vt 0.540093 0.241450 +vt 0.452549 0.240822 +vt 0.532161 0.290224 +vt 0.466790 0.339174 +vt 0.462220 0.290449 +vt 0.571122 0.338838 +vt 0.527906 0.338977 +vt 0.532881 0.290310 +vt 0.467492 0.339237 +vt 0.462940 0.290510 +vt 0.571825 0.338941 +vt 0.528608 0.339063 +vt 0.412297 0.291899 +vt 0.466166 0.340639 +vt 0.422950 0.340639 +vt 0.461753 0.291899 +vt 0.527282 0.340639 +vt 0.581151 0.291899 +vt 0.531695 0.291899 +vt 0.412764 0.290608 +vt 0.423574 0.339313 +vt 0.532743 0.095230 +vt 0.538002 0.143970 +vt 0.395404 0.145104 +vt 0.459495 0.096214 +vt 0.454351 0.144966 +vt 0.390471 0.193855 +vt 0.452374 0.193710 +vt 0.390585 0.242595 +vt 0.452488 0.242450 +vt 0.395747 0.291323 +vt 0.532340 0.096043 +vt 0.537714 0.144770 +vt 0.539919 0.193505 +vt 0.540033 0.242244 +vt 0.583849 0.095922 +vt 0.596660 0.144632 +vt 0.601822 0.193360 +vt 0.601936 0.242099 +vt 0.395978 0.143547 +vt 0.460067 0.094653 +vt 0.454925 0.143405 +vt 0.391048 0.192298 +vt 0.452951 0.192150 +vt 0.391165 0.241038 +vt 0.453068 0.240889 +vt 0.396329 0.289765 +vt 0.532912 0.094479 +vt 0.538288 0.143205 +vt 0.540495 0.191940 +vt 0.540612 0.240680 +vt 0.538638 0.289424 +vt 0.597234 0.143064 +vt 0.602398 0.191792 +vt 0.602515 0.240531 +vt 0.390644 0.241447 +vt 0.540093 0.192710 +vt 0.466004 0.095477 +vt 0.531690 0.144005 +vt 0.461749 0.144231 +vt 0.533601 0.192739 +vt 0.460152 0.192976 +vt 0.533758 0.241478 +vt 0.460309 0.241715 +vt 0.527121 0.095280 +vt 0.581146 0.143846 +vt 0.585538 0.192571 +vt 0.585695 0.241311 +vt 0.581617 0.290064 +vt 0.466795 0.095540 +vt 0.532463 0.144092 +vt 0.462522 0.144292 +vt 0.534356 0.192826 +vt 0.460907 0.193036 +vt 0.534496 0.241565 +vt 0.461046 0.241775 +vt 0.527912 0.095365 +vt 0.581920 0.143953 +vt 0.586294 0.192680 +vt 0.586434 0.241419 +vt 0.582338 0.290171 +vt 0.422950 0.096940 +vt 0.461753 0.145680 +vt 0.412297 0.145680 +vt 0.408062 0.194420 +vt 0.459999 0.243159 +vt 0.408062 0.243159 +vt 0.466166 0.096940 +vt 0.531695 0.145680 +vt 0.459999 0.194420 +vt 0.533449 0.243159 +vt 0.527282 0.096940 +vt 0.581151 0.145680 +vt 0.585386 0.194420 +vt 0.533449 0.194420 +vt 0.585386 0.243159 +vt 0.422788 0.095616 +vt 0.412293 0.144390 +vt 0.408215 0.193143 +vt 0.408373 0.241883 +vt 0.120706 0.286241 +vt 0.390644 0.192707 +vt 0.454639 0.290189 +vt 0.395691 0.290186 +vt 0.215108 0.514761 +vt 0.091928 0.504508 +vt 0.091856 0.497788 +vt 0.263847 0.500320 +vt 0.091434 0.480550 +vt 0.264334 0.483594 +vt 0.139876 0.514033 +vt 0.528989 0.367794 +vt 0.467873 0.368104 +vt 0.572417 0.409521 +vt 0.572717 0.468841 +vt 0.529714 0.511005 +vt 0.245061 0.277019 +vt 0.459898 0.095230 +vt 0.070584 0.320665 +vt 0.070590 0.305690 +vt 0.782814 0.230407 +vt 0.782814 0.059713 +vt 0.731305 0.180412 +vt 0.731305 0.109708 +vt 0.855659 0.059713 +vt 0.570499 0.340639 +vt 0.407986 0.096335 +vt 0.408558 0.094777 +vt 0.584421 0.094355 +vt 0.570336 0.095141 +vt 0.571129 0.095244 +vt 0.570499 0.096940 +vt 0.120706 0.277016 +vt 0.408388 0.338926 +vt 0.851996 0.154213 +vt 0.903505 0.144989 +vt 0.903505 0.154213 +vt 0.853676 0.126701 +vt 0.780831 0.135926 +vt 0.780831 0.126701 +vt 0.729320 0.135923 +vt 0.729320 0.126699 +vt 0.729782 0.171401 +vt 0.781292 0.162176 +vt 0.781292 0.171401 +vt 0.854137 0.162176 +vt 0.854137 0.171401 +vt 0.905646 0.162176 +vt 0.905646 0.171401 +vt 0.727642 0.154213 +vt 0.779151 0.144989 +vt 0.779151 0.154213 +vt 0.851996 0.144989 +vt 0.853676 0.135926 +vt 0.729782 0.162176 +vt 0.727642 0.144989 +vt 0.909999 0.529352 +vt 0.732676 0.600643 +vt 0.784612 0.478942 +vt 0.738894 0.317805 +vt 0.858292 0.433694 +vt 0.788350 0.433694 +vt 0.858062 0.651053 +vt 0.909999 0.600643 +vt 0.784612 0.651053 +vt 0.732676 0.529352 +vt 0.858062 0.478942 +vt 0.858292 0.269803 +vt 0.788350 0.269803 +vt 0.907748 0.317805 +vt 0.907748 0.385691 +vt 0.738894 0.385691 +vn 0.000000 1.000000 0.000000 +vn 0.707100 0.000000 -0.707100 +vn 0.591900 0.547000 -0.591900 +vn 0.837100 0.547000 0.000000 +vn 0.385900 0.837900 -0.385800 +vn 0.545700 0.837900 0.000000 +vn 0.837100 -0.547000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.707100 0.000000 0.707100 +vn 0.385900 -0.837900 0.385800 +vn 0.545700 -0.837900 0.000000 +vn 0.385900 0.837900 0.385900 +vn 0.591900 0.547000 0.591900 +vn 0.385900 -0.837900 -0.385800 +vn 0.591900 -0.547000 -0.591900 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.547000 -0.837100 +vn 0.000000 0.837900 -0.545700 +vn 0.591900 -0.547000 0.591900 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -0.547000 0.837100 +vn 0.000000 0.837900 0.545700 +vn 0.000000 0.547000 0.837100 +vn 0.000000 -0.837900 -0.545700 +vn 0.000000 -0.547000 -0.837100 +vn -0.707100 0.000000 -0.707100 +vn -0.591900 0.547000 -0.591900 +vn -0.385800 0.837900 -0.385900 +vn -0.707100 0.000000 0.707100 +vn 0.000000 -0.837900 0.545700 +vn -0.591900 -0.547000 0.591900 +vn -0.591900 0.547000 0.591900 +vn -0.385800 -0.837900 -0.385900 +vn -0.591900 -0.547000 -0.591900 +vn -1.000000 0.000000 0.000000 +vn -0.837100 0.547000 0.000000 +vn -0.545700 0.837900 0.000000 +vn -0.385900 -0.837900 0.385900 +vn -0.837100 -0.547000 0.000000 +vn -0.385900 0.837900 0.385900 +vn -0.545700 -0.837900 0.000000 +vn -0.385900 -0.837900 -0.385900 +vn -0.545700 -0.838000 0.000000 +vn -0.545700 0.838000 0.000000 +vn -0.385900 0.837900 -0.385900 +vn -0.385800 -0.837900 0.385900 +vn 0.385900 0.837900 -0.385900 +vn 0.385900 -0.837900 0.385900 +vn 0.385900 -0.837900 -0.385900 +vn 0.000000 -1.000000 0.000000 +vn -0.549000 -0.630200 0.549000 +vn 0.000000 -0.630200 0.776400 +vn 0.549000 -0.630200 0.549000 +vn 0.776400 -0.630200 0.000000 +vn 0.549000 -0.630200 -0.549000 +vn 0.000000 -0.630200 -0.776400 +vn -0.549000 -0.630200 -0.549000 +vn -0.776400 -0.630200 0.000000 +vn 0.495900 0.712900 0.495900 +vn -0.495900 0.712900 0.495900 +vn 0.000000 0.712900 0.701300 +vn 0.000000 -0.137600 -0.990500 +vn 0.700400 -0.137600 -0.700300 +vn 0.990500 -0.137500 0.000000 +vn 0.700400 -0.137600 0.700300 +vn 0.983000 -0.183300 0.000000 +vn 0.695200 -0.183200 0.695100 +vn 0.000000 -0.137600 0.990500 +vn -0.700400 -0.137600 0.700400 +vn -0.990500 -0.137600 0.000000 +vn -0.700400 -0.137600 -0.700400 +vn -0.549000 0.630200 -0.549000 +vn 0.549000 0.630200 -0.549000 +vn 0.000000 0.630200 -0.776400 +vn 0.880400 0.474100 0.000000 +vn 0.695200 0.183100 -0.695100 +vn 0.622500 0.474100 -0.622500 +vn 0.000000 0.183200 -0.983100 +vn 0.000000 0.474100 -0.880400 +vn -0.695100 0.183200 -0.695100 +vn -0.622500 0.474100 -0.622500 +vn -0.983100 0.183200 0.000000 +vn -0.880400 0.474100 0.000000 +vn -0.695100 0.183200 0.695100 +vn -0.622500 0.474100 0.622500 +vn 0.000000 0.474100 0.880400 +vn 0.695200 0.183100 0.695100 +vn 0.622500 0.474100 0.622500 +vn 0.998500 -0.053900 0.000000 +vn 0.706200 0.053600 -0.706000 +vn 0.998600 0.052700 0.000000 +vn 0.000000 0.252200 -0.967700 +vn -0.479900 0.734300 -0.479900 +vn -0.684200 0.252200 -0.684200 +vn 0.479900 0.734300 -0.479900 +vn 0.000000 0.734300 -0.678800 +vn 0.967700 0.252200 0.000000 +vn 0.684200 0.252200 -0.684200 +vn 0.479900 0.734300 0.479900 +vn 0.678800 0.734300 0.000000 +vn 0.684200 0.252200 0.684200 +vn 0.000000 0.734300 0.678800 +vn 0.000000 0.252200 0.967700 +vn -0.479900 0.734300 0.479900 +vn -0.967700 0.252200 0.000000 +vn -0.684200 0.252200 0.684200 +vn -0.678800 0.734300 0.000000 +vn 0.695200 -0.183200 -0.695100 +vn 0.000000 -0.183200 -0.983100 +vn 0.706100 -0.053400 -0.706100 +vn 0.000000 -0.053400 -0.998600 +vn 0.000000 0.053400 -0.998600 +vn -0.695100 -0.183200 -0.695100 +vn -0.706100 -0.053400 -0.706100 +vn -0.706100 0.053400 -0.706100 +vn -0.983100 -0.183200 0.000000 +vn -0.998600 -0.053400 0.000000 +vn -0.998600 0.053400 0.000000 +vn -0.695100 -0.183200 0.695100 +vn -0.706100 -0.053400 0.706100 +vn -0.706100 0.053400 0.706100 +vn 0.000000 -0.183200 0.983100 +vn 0.000000 -0.053400 0.998600 +vn 0.000000 0.053400 0.998600 +vn 0.000000 0.183200 0.983100 +vn 0.706100 -0.053400 0.706100 +vn 0.706200 0.053600 0.706000 +vn -0.495900 0.712900 -0.495900 +vn 0.000000 0.155200 -0.987900 +vn -0.698500 0.155200 -0.698500 +vn 0.000000 0.415100 -0.909800 +vn -0.643300 0.415100 -0.643300 +vn 0.000000 -0.045000 -0.999000 +vn -0.706400 -0.045000 -0.706400 +vn 0.000000 0.712900 -0.701300 +vn 0.698500 0.155200 -0.698500 +vn 0.643300 0.415100 -0.643300 +vn 0.706400 -0.045000 -0.706400 +vn 0.495900 0.712900 -0.495900 +vn 0.987900 0.155200 0.000000 +vn 0.909800 0.415100 0.000000 +vn 0.999000 -0.045000 0.000000 +vn 0.701300 0.712900 0.000000 +vn 0.698500 0.155200 0.698500 +vn 0.643300 0.415100 0.643300 +vn 0.706400 -0.045000 0.706400 +vn 0.000000 0.155200 0.987900 +vn 0.000000 -0.045000 0.999000 +vn -0.698500 0.155200 0.698500 +vn 0.000000 0.415100 0.909800 +vn -0.706400 -0.045000 0.706400 +vn -0.987900 0.155200 0.000000 +vn -0.909800 0.415100 0.000000 +vn -0.643300 0.415100 0.643300 +vn -0.999000 -0.045000 0.000000 +vn -0.701300 0.712900 0.000000 +vn 0.983200 0.182500 0.000000 +vn -0.776400 0.630200 0.000000 +vn 0.549000 0.630200 0.549000 +vn -0.549000 0.630200 0.549000 +vn 0.000000 0.630200 0.776400 +vn 0.776400 0.630200 0.000000 +usemtl None +s off +f 1/1/1 2/2/1 3/3/1 +f 2/2/1 4/4/1 5/5/1 +f 5/5/1 6/6/1 7/7/1 +f 7/7/1 8/8/1 9/9/1 +f 9/9/1 10/10/1 11/11/1 +f 11/11/1 12/12/1 13/13/1 +f 13/13/1 14/14/1 15/15/1 +f 16/16/1 2/2/1 1/1/1 +f 16/16/1 4/4/1 2/2/1 +f 4/4/1 6/6/1 5/5/1 +f 6/6/1 8/8/1 7/7/1 +f 8/8/1 10/10/1 9/9/1 +f 10/10/1 12/12/1 11/11/1 +f 12/12/1 14/14/1 13/13/1 +s 1 +f 17/17/2 18/18/3 19/19/4 +f 18/20/3 20/21/5 21/22/6 +f 22/23/7 23/24/8 24/25/9 +f 25/26/10 26/27/11 22/28/7 +f 27/29/4 28/30/6 29/31/12 +f 23/24/8 27/32/4 30/33/13 +f 31/34/11 32/35/14 33/36/15 +f 34/37/7 33/38/15 17/17/2 +f 17/39/2 35/40/16 36/41/17 +f 36/42/17 37/43/18 20/21/5 +f 38/44/19 24/45/9 39/46/20 +f 25/26/10 38/47/19 40/48/21 +f 30/49/13 29/31/12 41/50/22 +f 24/45/9 30/51/13 42/52/23 +f 32/35/14 43/53/24 44/54/25 +f 44/55/25 35/40/16 17/39/2 +f 45/56/26 46/57/27 36/41/17 +f 46/58/27 47/59/28 37/43/18 +f 40/60/21 39/46/20 48/61/29 +f 49/62/30 40/48/21 50/63/31 +f 51/64/32 42/65/23 41/50/22 +f 39/46/20 42/52/23 51/66/32 +f 43/53/24 52/67/33 53/68/34 +f 53/69/34 45/56/26 35/40/16 +f 45/56/26 54/70/35 55/71/36 +f 55/72/36 56/73/37 47/59/28 +f 50/74/31 48/61/29 57/75/35 +f 58/76/38 50/63/31 59/77/39 +f 60/78/36 51/64/32 61/79/40 +f 48/61/29 51/66/32 60/80/36 +f 62/81/41 63/82/39 53/68/34 +f 63/83/39 54/70/35 45/56/26 +f 64/84/29 65/85/32 55/86/36 +f 55/72/36 65/87/32 66/88/40 +f 59/89/39 57/90/35 67/91/26 +f 68/92/42 69/93/43 59/77/39 +f 60/78/36 70/94/44 71/95/45 +f 57/90/35 60/96/36 72/97/27 +f 73/98/46 74/99/31 63/82/39 +f 74/100/31 64/84/29 54/101/35 +f 75/102/20 76/103/23 65/85/32 +f 65/87/32 76/104/23 77/105/22 +f 78/106/34 67/91/26 79/107/16 +f 80/108/24 68/92/42 78/109/34 +f 72/110/27 71/95/45 81/111/18 +f 79/107/16 67/91/26 72/97/27 +f 82/112/30 83/113/21 74/99/31 +f 83/114/21 75/102/20 64/84/29 +f 84/115/9 85/116/13 76/103/23 +f 85/117/13 86/118/12 77/105/22 +f 87/119/25 79/107/16 88/120/2 +f 80/108/24 87/121/25 89/122/15 +f 90/123/17 81/111/18 91/124/47 +f 79/107/16 90/125/17 92/126/3 +f 93/127/48 94/128/19 83/113/21 +f 94/129/19 84/115/9 75/102/20 +f 95/130/8 19/19/4 85/131/13 +f 19/132/4 21/22/6 86/118/12 +f 22/23/7 89/133/15 88/134/2 +f 26/27/11 96/135/49 89/122/15 +f 92/136/3 91/124/47 28/30/6 +f 88/134/2 92/137/3 27/32/4 +f 31/34/11 34/138/7 94/128/19 +f 34/37/7 95/130/8 84/139/9 +f 97/140/50 98/141/50 99/142/50 +f 100/143/51 99/142/50 98/141/50 +f 101/144/52 98/141/50 102/145/50 +f 103/146/53 102/145/50 104/147/50 +f 105/148/54 104/147/50 106/149/50 +f 107/150/55 106/149/50 108/151/50 +f 109/152/56 108/151/50 110/153/50 +f 111/154/57 110/153/50 97/140/50 +f 111/154/57 99/142/50 112/155/58 +f 113/156/59 114/157/60 115/158/61 +f 107/159/55 116/160/62 117/161/63 +f 105/162/54 117/163/63 118/164/64 +f 119/165/65 120/166/66 121/167/67 +f 101/168/52 119/169/65 122/170/68 +f 100/171/51 122/170/68 123/172/69 +f 112/173/58 123/172/69 124/174/70 +f 111/175/57 124/176/70 125/177/71 +f 109/178/56 125/177/71 116/160/62 +f 126/179/72 127/180/73 128/181/74 +f 11/182/75 129/183/76 9/184/77 +f 9/185/77 130/186/78 7/187/79 +f 7/187/79 131/188/80 5/189/81 +f 5/189/81 132/190/82 2/191/83 +f 2/192/83 133/193/84 3/194/85 +f 133/193/84 15/195/86 3/194/85 +f 15/195/86 134/196/87 13/197/88 +f 135/198/89 136/199/90 137/200/91 +f 138/201/92 12/202/93 139/203/94 +f 138/201/92 1/204/95 14/205/96 +f 140/206/97 1/207/95 141/208/98 +f 140/206/97 4/209/99 16/210/100 +f 142/211/101 6/212/102 4/213/99 +f 143/214/103 8/215/104 6/212/102 +f 144/216/105 8/215/104 145/217/106 +f 144/218/105 12/202/93 10/219/107 +f 120/166/66 117/220/63 146/221/108 +f 146/222/108 116/223/62 147/224/109 +f 148/225/110 147/224/109 149/226/111 +f 136/227/90 149/226/111 150/228/112 +f 129/229/76 150/228/112 130/186/78 +f 147/224/109 125/230/71 151/231/113 +f 149/226/111 151/231/113 152/232/114 +f 150/228/112 152/232/114 153/233/115 +f 130/186/78 153/233/115 131/188/80 +f 151/231/113 124/234/70 154/235/116 +f 152/232/114 154/235/116 155/236/117 +f 153/233/115 155/236/117 156/237/118 +f 131/188/80 156/237/118 132/190/82 +f 154/238/116 123/239/69 157/240/119 +f 155/241/117 157/240/119 158/242/120 +f 156/243/118 158/242/120 159/244/121 +f 132/245/82 159/244/121 133/193/84 +f 157/240/119 122/246/68 160/247/122 +f 158/242/120 160/247/122 161/248/123 +f 159/244/121 161/248/123 162/249/124 +f 133/193/84 162/249/124 163/250/125 +f 122/246/68 121/251/67 160/247/122 +f 161/248/123 121/251/67 164/252/126 +f 162/249/124 164/252/126 165/253/127 +f 163/250/125 165/253/127 134/196/87 +f 165/254/127 135/198/89 137/200/91 +f 120/166/66 148/255/110 135/198/89 +f 166/256/128 167/257/129 168/258/130 +f 168/258/130 169/259/131 170/260/132 +f 170/260/132 171/261/133 172/262/134 +f 172/262/134 138/201/92 139/203/94 +f 173/263/135 174/264/136 167/257/129 +f 167/257/129 175/265/137 169/259/131 +f 169/259/131 176/266/138 171/261/133 +f 171/261/133 141/267/98 138/201/92 +f 177/268/139 178/269/140 174/270/136 +f 174/270/136 179/271/141 175/272/137 +f 175/272/137 180/273/142 176/274/138 +f 180/273/142 141/208/98 176/274/138 +f 181/275/143 182/276/144 178/269/140 +f 178/269/140 183/277/145 179/271/141 +f 179/271/141 184/278/146 180/273/142 +f 180/273/142 142/279/101 140/206/97 +f 113/280/59 185/281/147 182/282/144 +f 185/281/147 183/283/145 182/282/144 +f 183/283/145 186/284/148 184/285/146 +f 184/285/146 143/214/103 142/211/101 +f 115/286/61 187/287/149 185/281/147 +f 187/287/149 188/288/150 185/281/147 +f 188/288/150 189/289/151 186/284/148 +f 186/284/148 145/217/106 143/214/103 +f 114/290/60 190/291/152 187/287/149 +f 187/287/149 191/292/153 192/293/154 +f 192/293/154 193/294/155 189/289/151 +f 193/294/155 145/217/106 189/289/151 +f 194/295/156 168/258/130 190/296/152 +f 190/296/152 170/260/132 191/297/153 +f 191/297/153 172/262/134 193/298/155 +f 193/298/155 139/203/94 144/218/105 +f 119/299/65 105/162/54 118/164/64 +f 164/300/126 120/166/66 135/198/89 +f 137/200/91 129/183/76 195/301/157 +f 11/182/75 134/302/87 195/301/157 +f 134/302/87 137/200/91 195/301/157 +f 1/1/95 15/15/86 14/14/96 +f 95/130/8 17/17/2 19/19/4 +f 19/132/4 18/20/3 21/22/6 +f 38/303/19 22/23/7 24/25/9 +f 38/47/19 25/26/10 22/28/7 +f 30/49/13 27/29/4 29/31/12 +f 24/25/9 23/24/8 30/33/13 +f 34/138/7 31/34/11 33/36/15 +f 95/130/8 34/37/7 17/17/2 +f 18/304/3 17/39/2 36/41/17 +f 18/20/3 36/42/17 20/21/5 +f 40/60/21 38/44/19 39/46/20 +f 49/62/30 25/26/10 40/48/21 +f 42/65/23 30/49/13 41/50/22 +f 39/46/20 24/45/9 42/52/23 +f 33/36/15 32/35/14 44/54/25 +f 33/305/15 44/55/25 17/39/2 +f 35/40/16 45/56/26 36/41/17 +f 36/42/17 46/58/27 37/43/18 +f 50/74/31 40/60/21 48/61/29 +f 58/76/38 49/62/30 50/63/31 +f 61/79/40 51/64/32 41/50/22 +f 48/61/29 39/46/20 51/66/32 +f 44/54/25 43/53/24 53/68/34 +f 44/55/25 53/69/34 35/40/16 +f 46/57/27 45/56/26 55/71/36 +f 46/58/27 55/72/36 47/59/28 +f 59/306/39 50/74/31 57/75/35 +f 69/93/43 58/76/38 59/77/39 +f 70/94/44 60/78/36 61/79/40 +f 57/75/35 48/61/29 60/80/36 +f 52/67/33 62/81/41 53/68/34 +f 53/69/34 63/83/39 45/56/26 +f 54/101/35 64/84/29 55/86/36 +f 56/73/37 55/72/36 66/88/40 +f 78/106/34 59/89/39 67/91/26 +f 78/109/34 68/92/42 59/77/39 +f 72/110/27 60/78/36 71/95/45 +f 67/91/26 57/90/35 72/97/27 +f 62/81/41 73/98/46 63/82/39 +f 63/307/39 74/100/31 54/101/35 +f 64/84/29 75/102/20 65/85/32 +f 66/88/40 65/87/32 77/105/22 +f 87/119/25 78/106/34 79/107/16 +f 87/121/25 80/108/24 78/109/34 +f 90/123/17 72/110/27 81/111/18 +f 90/125/17 79/107/16 72/97/27 +f 73/98/46 82/112/30 74/99/31 +f 74/100/31 83/114/21 64/84/29 +f 75/102/20 84/115/9 76/103/23 +f 76/104/23 85/117/13 77/105/22 +f 89/308/15 87/119/25 88/120/2 +f 96/135/49 80/108/24 89/122/15 +f 92/136/3 90/123/17 91/124/47 +f 88/120/2 79/107/16 92/126/3 +f 82/112/30 93/127/48 83/113/21 +f 83/114/21 94/129/19 75/102/20 +f 84/139/9 95/130/8 85/131/13 +f 85/117/13 19/132/4 86/118/12 +f 23/24/8 22/23/7 88/134/2 +f 22/28/7 26/27/11 89/122/15 +f 27/29/4 92/136/3 28/30/6 +f 23/24/8 88/134/2 27/32/4 +f 93/127/48 31/34/11 94/128/19 +f 94/309/19 34/37/7 84/139/9 +f 97/140/50 110/153/50 104/147/50 +f 108/151/50 106/149/50 110/153/50 +f 104/147/50 102/145/50 97/140/50 +f 112/155/58 99/142/50 100/143/51 +f 110/153/50 106/149/50 104/147/50 +f 100/143/51 98/141/50 101/144/52 +f 97/140/50 102/145/50 98/141/50 +f 101/144/52 102/145/50 103/146/53 +f 103/146/53 104/147/50 105/148/54 +f 105/148/54 106/149/50 107/150/55 +f 107/150/55 108/151/50 109/152/56 +f 109/152/56 110/153/50 111/154/57 +f 97/140/50 99/142/50 111/154/57 +f 177/310/139 113/156/59 181/311/143 +f 177/310/139 173/312/135 113/156/59 +f 114/157/60 166/313/128 194/314/156 +f 109/178/56 116/160/62 107/159/55 +f 107/315/55 117/163/63 105/162/54 +f 113/156/59 166/313/128 114/157/60 +f 113/156/59 173/312/135 166/313/128 +f 118/316/64 120/166/66 119/165/65 +f 103/317/53 119/169/65 101/168/52 +f 101/168/52 122/170/68 100/171/51 +f 100/171/51 123/172/69 112/173/58 +f 112/318/58 124/176/70 111/175/57 +f 111/175/57 125/177/71 109/178/56 +f 126/179/72 196/319/158 197/320/159 +f 197/320/159 198/321/160 199/322/161 +f 127/180/73 197/320/159 200/323/162 +f 126/179/72 197/320/159 127/180/73 +f 197/320/159 196/319/158 198/321/160 +f 195/301/157 129/183/76 11/182/75 +f 129/229/76 130/186/78 9/185/77 +f 130/186/78 131/188/80 7/187/79 +f 131/188/80 132/190/82 5/189/81 +f 132/245/82 133/193/84 2/192/83 +f 163/250/125 15/195/86 133/193/84 +f 163/250/125 134/196/87 15/195/86 +f 148/255/110 136/199/90 135/198/89 +f 14/205/96 12/202/93 138/201/92 +f 141/267/98 1/204/95 138/201/92 +f 16/210/100 1/207/95 140/206/97 +f 142/279/101 4/209/99 140/206/97 +f 143/214/103 6/212/102 142/211/101 +f 145/217/106 8/215/104 143/214/103 +f 10/324/107 8/215/104 144/216/105 +f 139/203/94 12/202/93 144/218/105 +f 118/316/64 117/220/63 120/166/66 +f 117/325/63 116/223/62 146/222/108 +f 146/222/108 147/224/109 148/225/110 +f 148/225/110 149/226/111 136/227/90 +f 136/227/90 150/228/112 129/229/76 +f 116/223/62 125/230/71 147/224/109 +f 147/224/109 151/231/113 149/226/111 +f 149/226/111 152/232/114 150/228/112 +f 150/228/112 153/233/115 130/186/78 +f 125/230/71 124/234/70 151/231/113 +f 151/231/113 154/235/116 152/232/114 +f 152/232/114 155/236/117 153/233/115 +f 153/233/115 156/237/118 131/188/80 +f 124/326/70 123/239/69 154/238/116 +f 154/238/116 157/240/119 155/241/117 +f 155/241/117 158/242/120 156/243/118 +f 156/243/118 159/244/121 132/245/82 +f 123/239/69 122/246/68 157/240/119 +f 157/240/119 160/247/122 158/242/120 +f 158/242/120 161/248/123 159/244/121 +f 159/244/121 162/249/124 133/193/84 +f 119/327/65 121/251/67 122/246/68 +f 160/247/122 121/251/67 161/248/123 +f 161/248/123 164/252/126 162/249/124 +f 162/249/124 165/253/127 163/250/125 +f 164/300/126 135/198/89 165/254/127 +f 146/221/108 148/255/110 120/166/66 +f 173/263/135 167/257/129 166/256/128 +f 167/257/129 169/259/131 168/258/130 +f 169/259/131 171/261/133 170/260/132 +f 171/261/133 138/201/92 172/262/134 +f 177/328/139 174/264/136 173/263/135 +f 174/264/136 175/265/137 167/257/129 +f 175/265/137 176/266/138 169/259/131 +f 176/266/138 141/267/98 171/261/133 +f 181/275/143 178/269/140 177/268/139 +f 178/269/140 179/271/141 174/270/136 +f 179/271/141 180/273/142 175/272/137 +f 140/206/97 141/208/98 180/273/142 +f 113/329/59 182/276/144 181/275/143 +f 182/276/144 183/277/145 178/269/140 +f 183/277/145 184/278/146 179/271/141 +f 184/278/146 142/279/101 180/273/142 +f 115/286/61 185/281/147 113/280/59 +f 188/288/150 183/283/145 185/281/147 +f 188/288/150 186/284/148 183/283/145 +f 186/284/148 143/214/103 184/285/146 +f 114/290/60 187/287/149 115/286/61 +f 192/293/154 188/288/150 187/287/149 +f 192/293/154 189/289/151 188/288/150 +f 189/289/151 145/217/106 186/284/148 +f 194/330/156 190/291/152 114/290/60 +f 190/291/152 191/292/153 187/287/149 +f 191/292/153 193/294/155 192/293/154 +f 144/216/105 145/217/106 193/294/155 +f 166/256/128 168/258/130 194/295/156 +f 168/258/130 170/260/132 190/296/152 +f 170/260/132 172/262/134 191/297/153 +f 172/262/134 139/203/94 193/298/155 +f 103/331/53 105/162/54 119/299/65 +f 121/167/67 120/166/66 164/300/126 +f 136/199/90 129/183/76 137/200/91 +f 13/332/88 134/302/87 11/182/75 +f 165/254/127 137/200/91 134/302/87 +f 3/3/85 15/15/86 1/1/95 +f 7/333/79 127/334/73 9/335/77 +f 9/336/77 200/337/162 11/338/75 +f 11/338/75 197/339/159 13/340/88 +f 13/341/88 199/342/161 15/343/86 +f 15/343/86 198/344/160 3/345/85 +f 3/345/85 196/346/158 2/347/83 +f 2/348/83 126/349/72 5/350/81 +f 5/350/81 128/351/74 7/333/79 +f 128/351/74 127/334/73 7/333/79 +f 127/352/73 200/337/162 9/336/77 +f 200/337/162 197/339/159 11/338/75 +f 197/353/159 199/342/161 13/341/88 +f 199/342/161 198/344/160 15/343/86 +f 198/344/160 196/346/158 3/345/85 +f 196/354/158 126/349/72 2/348/83 +f 126/349/72 128/351/74 5/350/81 +f 188/355/150 169/356/131 191/357/153 +f 139/358/94 140/359/97 141/360/98 +f 179/361/141 188/355/150 183/362/145 +f 169/356/131 179/361/141 175/363/137 +f 191/357/153 169/356/131 170/364/132 +f 188/355/150 191/357/153 192/365/154 +f 169/356/131 188/355/150 179/361/141 +f 145/366/106 139/358/94 144/367/105 +f 139/358/94 145/366/106 143/368/103 +f 139/358/94 142/369/101 140/359/97 +f 139/358/94 141/360/98 138/370/92 +f 142/369/101 139/358/94 143/368/103 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewIronShield.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewIronShield.obj new file mode 100644 index 00000000..f859ec4e --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewIronShield.obj @@ -0,0 +1,213 @@ +# Blender v2.72 (sub 0) OBJ File: 'NewIronShield.blend' +# www.blender.org +mtllib NewIronShield.mtl +o Cylinder +v 0.074521 -0.174914 0.011035 +v 0.011800 -0.138702 0.083459 +v -0.050922 -0.102490 0.011035 +v 0.011800 -0.138702 -0.061390 +v 0.074521 0.187208 0.011035 +v 0.011800 0.150996 0.083459 +v -0.050922 0.114784 0.011035 +v 0.011800 0.150996 -0.061390 +v -0.239086 0.368270 0.011035 +v -0.239086 0.295845 0.083459 +v -0.239086 0.223421 0.011035 +v -0.239086 0.295845 -0.061390 +v 0.012271 0.152715 -0.958701 +v -0.050450 0.116503 -0.886277 +v 0.012271 0.152715 -0.813852 +v 0.074993 0.188927 -0.886277 +v 0.012271 -0.136983 -0.958701 +v -0.050450 -0.100771 -0.886277 +v 0.012271 -0.136983 -0.813852 +v 0.074993 -0.173195 -0.886277 +v -0.239086 -0.355976 0.011035 +v -0.239086 -0.283551 0.083459 +v -0.239086 -0.211127 0.011035 +v -0.239086 -0.283551 -0.061390 +v -0.221926 -0.537090 -1.302709 +v -0.079654 -0.537090 -1.302709 +v -0.445944 -1.416652 -0.436684 +v -0.303672 -1.416652 -0.436684 +v -0.221926 -0.537089 0.429341 +v -0.079654 -0.537089 0.429341 +v -0.221926 0.462910 0.429341 +v -0.079654 0.462910 0.429341 +v -0.445944 0.962910 -0.436684 +v -0.303672 0.962910 -0.436684 +v -0.221926 0.462910 -1.302709 +v -0.079654 0.462910 -1.302709 +v -0.300689 -0.976871 -1.019696 +v -0.158418 -0.976871 -1.019696 +v -0.300689 -0.976871 0.146329 +v -0.158418 -0.976871 0.146329 +v -0.604343 0.039327 -0.436684 +v -0.238615 0.369989 -0.886277 +v -0.238615 0.297564 -0.813852 +v -0.238615 0.225140 -0.886277 +v -0.238615 0.297564 -0.958701 +v -0.238615 -0.354257 -0.886277 +v -0.238615 -0.281832 -0.813852 +v -0.238615 -0.209408 -0.886277 +v -0.238615 -0.281832 -0.958701 +vt 0.900217 0.575819 +vt 0.935022 0.575819 +vt 0.932071 0.654087 +vt 0.904226 0.654087 +vt 0.927982 0.732283 +vt 0.928975 0.808529 +vt 0.932849 0.886602 +vt 0.904938 0.886602 +vt 0.901226 0.964957 +vt 0.952228 0.966978 +vt 0.945835 0.967014 +vt 0.938306 0.966978 +vt 0.939198 0.573886 +vt 0.946480 0.573745 +vt 0.953153 0.573886 +vt 0.936115 0.964957 +vt 0.891856 0.573745 +vt 0.906136 0.886602 +vt 0.902424 0.964957 +vt 0.898530 0.573886 +vt 0.909239 0.808529 +vt 0.905819 0.653576 +vt 0.908692 0.731771 +vt 0.898132 0.966466 +vt 0.901810 0.575307 +vt 0.891739 0.966503 +vt 0.947678 0.573745 +vt 0.954351 0.573886 +vt 0.937312 0.964957 +vt 0.940395 0.573886 +vt 0.934047 0.886602 +vt 0.933664 0.653576 +vt 0.947428 0.966503 +vt 0.939898 0.966466 +vt 0.936615 0.575308 +vt 0.953821 0.966466 +vt 0.930172 0.808529 +vt 0.929575 0.731771 +vt 0.890146 0.967014 +vt 0.907099 0.732283 +vt 0.896539 0.966978 +vt 0.897332 0.573886 +vt 0.908042 0.808529 +vt 0.890658 0.573745 +vt 0.690021 0.370375 +vt 0.734818 0.459204 +vt 0.734793 0.546725 +vt 0.687163 0.835352 +vt 0.687163 0.922892 +vt 0.642673 0.971295 +vt 0.546557 0.971315 +vt 0.546557 0.883774 +vt 0.505294 0.833700 +vt 0.505294 0.746159 +vt 0.888295 0.023611 +vt 0.929578 0.122380 +vt 0.791951 0.023611 +vt 0.550130 0.322094 +vt 0.646474 0.322163 +vt 0.646449 0.409684 +vt 0.505536 0.546561 +vt 0.505561 0.459040 +vt 0.689996 0.457896 +vt 0.734008 0.746111 +vt 0.734008 0.833652 +vt 0.594065 0.648677 +vt 0.594491 0.644067 +vt 0.550105 0.409615 +vt 0.642673 0.883754 +vt 0.969686 0.304649 +vt 0.740429 0.304649 +vt 0.722268 0.294223 +vt 0.493554 0.294223 +vt 0.667555 0.014370 +vt 0.571439 0.014370 +vt 0.531341 0.112754 +vt 0.884574 0.573886 +vt 0.884209 0.966466 +vt 0.882617 0.966978 +vt 0.883376 0.573886 +usemtl None +s 1 +f 1/1 5/2 6/3 +f 2/4 6/3 7/5 +f 7/6 8/7 4/8 +f 1/9 4/8 8/7 +f 5/2 9/10 10/11 +f 6/3 10/11 11/12 +f 11/13 12/14 8/7 +f 12/14 9/15 5/16 +f 49/17 17/18 20/19 +f 48/20 18/21 17/18 +f 19/22 18/23 48/24 +f 20/25 19/22 47/26 +f 45/27 42/28 16/29 +f 44/30 45/27 13/31 +f 15/32 43/33 44/34 +f 16/35 42/36 43/33 +f 20/19 17/18 13/31 +f 14/37 13/31 17/18 +f 19/22 15/32 14/38 +f 20/25 16/35 15/32 +f 1/1 2/4 22/39 +f 2/4 3/40 23/41 +f 23/42 3/43 4/8 +f 24/44 4/8 1/9 +f 38/45 28/46 27/47 +f 39/48 40/49 30/50 +f 30/50 32/51 31/52 +f 32/51 34/53 33/54 +f 30/55 40/56 32/57 +f 36/58 26/59 25/60 +f 33/61 34/62 36/58 +f 26/59 38/45 37/63 +f 27/64 28/65 40/49 +f 27/64 39/48 41/66 +f 25/60 37/63 41/67 +f 35/68 25/60 41/67 +f 33/61 35/68 41/67 +f 31/52 33/54 41/66 +f 29/69 31/52 41/66 +f 39/48 29/69 41/66 +f 37/63 27/47 41/67 +f 40/56 28/70 32/57 +f 32/57 28/70 34/71 +f 34/72 28/73 36/74 +f 26/75 36/74 38/76 +f 28/73 38/76 36/74 +f 37/63 38/45 27/47 +f 29/69 39/48 30/50 +f 29/69 30/50 31/52 +f 31/52 32/51 33/54 +f 35/68 36/58 25/60 +f 35/68 33/61 36/58 +f 25/60 26/59 37/63 +f 39/48 27/64 40/49 +f 2/4 1/1 6/3 +f 3/40 2/4 7/5 +f 3/43 7/6 4/8 +f 5/16 1/9 8/7 +f 6/3 5/2 10/11 +f 7/5 6/3 11/12 +f 7/6 11/13 8/7 +f 8/7 12/14 5/16 +f 46/77 49/17 20/19 +f 49/17 48/20 17/18 +f 47/26 19/22 48/24 +f 46/78 20/25 47/26 +f 13/31 45/27 16/29 +f 14/37 44/30 13/31 +f 14/38 15/32 44/34 +f 15/32 16/35 43/33 +f 16/29 20/19 13/31 +f 18/21 14/37 17/18 +f 18/23 19/22 14/38 +f 19/22 20/25 15/32 +f 21/79 1/1 22/39 +f 22/39 2/4 23/41 +f 24/44 23/42 4/8 +f 21/80 24/44 1/9 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewIronShield.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/NewIronShield.png new file mode 100644 index 0000000000000000000000000000000000000000..3229bee0bc0a9840b3a5aa79d920385bca15572a GIT binary patch literal 998 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/SandFilterEmpty.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/SandFilterEmpty.png new file mode 100644 index 0000000000000000000000000000000000000000..e4b60aa96a9ff18bde213def4fd1682dc172b638 GIT binary patch literal 4002 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 IM6N<$f(w^=WdHyG literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Shelf.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Shelf.obj new file mode 100644 index 00000000..5a55de1d --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Shelf.obj @@ -0,0 +1,218 @@ +# Blender v2.74 (sub 0) OBJ File: 'Shelf.blend' +# www.blender.org +mtllib Shelf.mtl +v -1.006250 -1.000000 1.000000 +v -0.006250 -1.000000 1.000000 +v -1.006250 1.000000 1.000000 +v -0.006250 1.000000 1.000000 +v -0.006250 1.000000 -1.000000 +v -1.006250 -0.800000 -0.799911 +v -1.006250 1.000000 -1.000000 +v -1.006250 0.800059 -0.801423 +v -1.006250 -1.000000 -1.000000 +v -0.006250 0.800059 -0.801423 +v -0.006250 -1.000000 -1.000000 +v -0.906250 -1.000000 -1.000000 +v -0.906250 -1.000000 1.000000 +v -0.906250 1.000000 -0.999999 +v -0.906250 1.000000 1.000001 +v -1.006250 0.799996 0.100000 +v -1.006250 0.799996 -0.100000 +v -0.006250 0.799996 -0.100000 +v -0.006250 0.799996 0.100000 +v -1.006250 0.801186 0.800000 +v -0.006250 0.801186 0.800000 +v -1.006250 -0.798403 0.800000 +v -0.006250 -0.798403 0.800000 +v -0.006250 -0.799923 -0.799911 +v -1.006250 0.100000 0.805258 +v -1.006250 -0.100000 0.805258 +v -0.006250 0.100000 0.805258 +v -0.006250 -0.100000 0.805258 +v -1.006250 0.100000 -0.802950 +v -0.006250 -0.100000 -0.802950 +v -1.006250 -0.100000 -0.802950 +v -0.006250 0.100000 -0.802950 +v -1.006250 -0.801312 -0.100000 +v -0.006250 -0.801312 -0.100000 +v -0.006250 -0.801312 0.100000 +v -1.006250 -0.801312 0.100000 +v -1.006250 0.100000 0.098971 +v -1.006250 -0.100000 0.098971 +v -0.006250 0.100000 0.098971 +v -0.006250 -0.100000 0.098971 +v -0.006250 0.100000 -0.098519 +v -1.006250 0.100000 -0.098519 +v -1.006250 -0.100000 -0.098519 +v -0.006250 -0.100000 -0.098519 +vt 0.494270 0.333934 +vt 0.996205 0.333934 +vt 0.996205 0.665638 +vt 0.007981 0.987047 +vt 0.474753 0.034895 +vt 0.474753 0.987047 +vt 0.006494 0.995157 +vt 0.006494 0.005059 +vt 0.993088 0.005059 +vt 0.478427 0.005387 +vt 0.471461 0.975326 +vt 0.008217 0.984647 +vt 0.772840 0.990119 +vt 0.772840 0.000020 +vt 0.872867 0.099030 +vt 0.007981 0.030780 +vt 0.007980 0.982675 +vt 0.474752 0.982675 +vt 0.545529 0.099887 +vt 0.644027 0.989811 +vt 0.643813 -0.000520 +vt 0.015076 0.005150 +vt 0.479155 0.005150 +vt 0.479156 0.995248 +vt 0.470609 0.103130 +vt 0.470609 0.895165 +vt 0.010796 0.895165 +vt 0.001659 0.982165 +vt 0.008625 0.018788 +vt 0.471869 0.009530 +vt 0.478066 0.004950 +vt 0.478065 0.995049 +vt 0.013986 0.995049 +vt 0.992866 0.975532 +vt 0.002656 0.975233 +vt 0.015753 0.008320 +vt 0.982991 0.005593 +vt 0.982991 0.995692 +vt 0.882329 0.896638 +vt 0.759372 0.093471 +vt 0.759544 0.885532 +vt 0.660555 0.985392 +vt 0.493888 0.335584 +vt 0.995824 0.335584 +vt 0.995824 0.666416 +vt 0.494270 0.335584 +vt 0.996205 0.335584 +vt 0.996205 0.666416 +vt 0.007981 0.015321 +vt 0.007981 0.968242 +vt 0.474753 0.968242 +vt 0.995824 0.665638 +vt 0.493888 0.665638 +vt 0.493888 0.333934 +vt 0.007981 0.038200 +vt 0.007980 0.991118 +vt 0.474752 0.991120 +vt 0.245522 0.442310 +vt 0.465376 0.441521 +vt 0.468281 0.533886 +vt 0.013575 0.805270 +vt 0.013576 0.009128 +vt 0.111413 0.009128 +vt 0.466030 0.441648 +vt 0.468936 0.534013 +vt 0.248626 0.533434 +vt 0.478218 0.895913 +vt 0.018405 0.103130 +vt 0.018406 0.895913 +vt 0.494270 0.665638 +vt 0.007981 0.034849 +vt 0.993088 0.995158 +vt 0.015183 0.014708 +vt 0.873434 0.891813 +vt 0.474753 0.030780 +vt 0.544952 0.892154 +vt 0.015077 0.995248 +vt 0.010796 0.103130 +vt 0.464903 0.972906 +vt 0.013987 0.004950 +vt 1.000000 0.001840 +vt 0.994385 0.976695 +vt 0.014350 0.009216 +vt 0.881564 0.104603 +vt 0.660341 -0.004940 +vt 0.493888 0.666416 +vt 0.494270 0.666416 +vt 0.474753 0.015321 +vt 0.995824 0.333934 +vt 0.474753 0.038200 +vt 0.248391 0.533516 +vt 0.111413 0.805270 +vt 0.245758 0.442229 +vt 0.478217 0.103130 +vn 0.707400 0.706700 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.706500 0.707700 +vn 0.904500 0.301800 0.301200 +vn 0.904500 -0.301200 0.301700 +vn 1.000000 0.000000 0.000000 +vn 0.577300 -0.577300 0.577300 +vn 0.577300 0.577300 0.577300 +vn -0.577300 0.577300 0.577300 +vn 0.577300 0.577300 -0.577300 +vn 0.904600 -0.301500 -0.301300 +vn 0.904400 0.301500 -0.301800 +vn 0.000000 0.706700 -0.707400 +vn 0.577300 -0.577300 -0.577300 +vn -0.577300 0.577300 -0.577300 +vn -0.000000 0.707800 0.706400 +vn -0.577300 -0.577300 -0.577300 +vn -0.577300 -0.577300 0.577300 +vn 0.707100 0.707100 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.707100 -0.707100 0.000000 +vn 0.707600 -0.706600 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.706700 0.000000 0.707400 +vn 0.707400 -0.706700 0.000000 +vn 0.706600 0.000000 -0.707600 +vn 0.000000 0.000000 -1.000000 +vn 0.707600 0.706600 0.000000 +vn 0.000000 -0.707300 -0.706800 +usemtl Material +s 1 +f 39/1/1 37/2/2 25/3/2 +f 8/4/3 24/5/4 10/6/5 +f 14/7/6 15/8/6 13/9/6 +f 2/10/7 4/11/8 3/12/9 +f 5/13/10 4/14/8 21/15/11 +f 21/16/11 23/17/12 22/18/13 +f 10/19/5 11/20/14 5/21/10 +f 5/22/10 7/23/15 3/24/9 +f 6/25/16 22/26/13 23/27/12 +f 5/28/10 11/29/14 9/30/17 +f 11/31/14 2/32/7 1/33/18 +f 3/34/9 7/35/15 9/36/17 +f 2/37/7 11/38/14 24/39/4 +f 23/40/12 21/41/11 4/42/8 +f 32/43/19 29/44/2 42/45/2 +f 31/46/20 30/47/21 44/48/22 +f 16/49/23 36/50/23 35/51/24 +f 38/52/20 40/53/25 28/54/21 +f 18/55/26 34/56/26 33/57/27 +f 41/58/28 18/59/26 19/60/24 +f 32/61/19 27/62/19 28/63/21 +f 35/64/24 34/65/26 44/66/22 +f 20/67/29 10/68/5 21/69/11 +f 27/70/19 39/1/1 25/3/2 +f 6/71/16 24/5/4 8/4/3 +f 12/72/6 14/7/6 13/9/6 +f 1/73/18 2/10/7 3/12/9 +f 10/74/5 5/13/10 21/15/11 +f 20/75/29 21/16/11 22/18/13 +f 24/76/4 11/20/14 10/19/5 +f 4/77/8 5/22/10 3/24/9 +f 24/78/4 6/25/16 23/27/12 +f 7/79/15 5/28/10 9/30/17 +f 9/80/17 11/31/14 1/33/18 +f 1/81/18 3/82/9 9/83/17 +f 23/84/12 2/37/7 24/39/4 +f 2/85/7 23/40/12 4/42/8 +f 41/86/28 32/43/19 42/45/2 +f 43/87/20 31/46/20 44/48/22 +f 19/88/24 16/49/23 35/51/24 +f 26/89/20 38/52/20 28/54/21 +f 17/90/27 18/55/26 33/57/27 +f 39/91/1 41/58/28 19/60/24 +f 30/92/21 32/61/19 28/63/21 +f 40/93/25 35/64/24 44/66/22 +f 8/94/3 10/68/5 20/67/29 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ShelfMini.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ShelfMini.png new file mode 100644 index 0000000000000000000000000000000000000000..d164c8a1615b5ac317b5d537ae05d73b22637368 GIT binary patch literal 9578 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 U*`Feey#N3J07*qoM6N<$f?M?rrT_o{ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ShelfMini16.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ShelfMini16.png new file mode 100644 index 0000000000000000000000000000000000000000..5396b1320325417eaeb908d3833100f5e26638eb GIT binary patch literal 805 zcmV+=1KRwFP)?c1gNB zJL9p(_Gfd#a|e(5<>#M@w+naoH_Sc~eBh#A@#EV!Boz0rc0B&|p6k0?>h*?h)zfcQ z)NRevKcCR56qHsdrC6_5%+6B^gk?e3H7P}&9-nyrd_dO*5RPAtH3y=nrM|`F~Y<9N5#k|68dmB;g*F|GMjZrObN+?q(I#met7em+p8=3&4%6A zTij$>{D`*}$q92BXLdK2#3doQkaK3TGa)64^DN^`r7~@2*j`)^Qoz|636Asei0)Sn zF-6Yfg!i7>7+y{j^EgsBHT%O0`{w~W&De2ZI*+(%z*@`VJtk*im=deDCZvMM!nSXz zS1X=AJ~Eyr&en6bGxe&)#*wC}s1(@IVwNS4b%pf{m9E&XJ5Y+}{Q;>o`{#j>gmIeL zZr6kmna(3QgY^#c@p+){I<|esy6gD#a>6Lh-B&A0sW^^~!8*K)oQHudaHNnapcQ6z z38NFa%(QJoNrkKnF$q2_xELrU6D8q8;BYvz+g(8}^nHVVb#s9fA;ye#fgl1DQixc) z;C-a2Dq4^dg@U96B{O;tN?~InNybzf=N7*I_LlFyxuNL7 z!-s#Fokw3^_B5tKM93u*L=Y+XCE{jJ5FtncVBH$Du2|QaO=o!c@EP54nC zQJT6^|Gx{Hwn9=SXCbFV2n(lS;_d4@v<4Gm;_L#gsR&6(si4SMzwl+SxFwK*>(r4; jVVoS}x2- literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ShelfMini32.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/ShelfMini32.png new file mode 100644 index 0000000000000000000000000000000000000000..b43180dbfd34916acdee0d9eb59ee0aa225eb89a GIT binary patch literal 2436 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/SingleForgeOn.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/SingleForgeOn.png new file mode 100644 index 0000000000000000000000000000000000000000..fadc01c80994d91c1f4e7e2f4c52c7431a877dbb GIT binary patch literal 3221 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 Hu0mjfN)M&C literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Spear.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Spear.obj new file mode 100644 index 00000000..9de450e2 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Spear.obj @@ -0,0 +1,261 @@ +# Blender v2.71 (sub 0) OBJ File: 'Spear.blend' +# www.blender.org +mtllib Spear.mtl +o Cube_Cube.001 +v 1.846850 -0.006872 0.001740 +v 1.970270 0.013516 0.001740 +v 1.623894 0.013516 -0.108096 +v 1.610836 -0.006872 -0.080340 +v 1.693859 0.013516 -0.069275 +v 1.680801 -0.006872 -0.041520 +v 1.546934 0.013120 -0.186002 +v 1.546805 -0.006674 -0.158247 +v 1.846850 0.032717 0.001740 +v 1.610836 0.032717 -0.080340 +v 1.680801 0.032717 -0.041520 +v 1.546805 0.032915 -0.158247 +v 1.623894 0.013516 0.111576 +v 1.610836 -0.006872 0.083821 +v 1.693859 0.013516 0.072756 +v 1.680801 -0.006872 0.045000 +v 1.546934 0.013120 0.189483 +v 1.546805 -0.006674 0.161727 +v 1.610836 0.032717 0.083821 +v 1.680801 0.032717 0.045000 +v 1.546805 0.032915 0.161727 +v 1.469716 0.012725 -0.108096 +v 1.482774 0.033113 -0.080340 +v 1.482774 0.033113 0.001740 +v 1.482774 -0.006476 -0.080340 +v 1.469716 0.012725 0.111576 +v 1.482774 0.033113 0.083821 +v 1.482774 -0.006476 0.083821 +v 1.680801 0.032717 0.001740 +v 1.680801 -0.006872 0.001740 +v 1.398489 0.053369 0.000806 +v -1.607362 0.053369 0.000804 +v 1.398489 0.033056 0.035990 +v -1.607362 0.033056 0.035988 +v 1.398489 -0.007571 0.035990 +v -1.607362 -0.007571 0.035988 +v 1.398489 -0.027885 0.000806 +v -1.607362 -0.027885 0.000804 +v 1.398489 -0.007571 -0.034378 +v -1.607362 -0.007571 -0.034380 +v 1.398489 0.033056 -0.034378 +v -1.607362 0.033056 -0.034380 +v 1.482774 -0.006476 0.001740 +vt 0.909646 0.207292 +vt 0.912341 0.111441 +vt 0.978695 0.111446 +vt 0.875903 0.113312 +vt 0.895238 0.111444 +vt 0.892542 0.207294 +vt 0.892582 0.021160 +vt 0.909686 0.021157 +vt 0.925060 0.170837 +vt 0.906990 0.079284 +vt 0.925060 0.075489 +vt 0.958883 0.210746 +vt 0.956164 0.114895 +vt 0.975439 0.116764 +vt 0.941807 0.210743 +vt 0.939088 0.114893 +vt 0.941767 0.024609 +vt 0.958842 0.024612 +vt 0.927928 0.133336 +vt 0.909857 0.129541 +vt 0.927928 0.037989 +vt 0.872778 0.114897 +vt 0.901924 0.024612 +vt 0.901964 0.210746 +vt 0.938308 0.209507 +vt 0.919866 0.210437 +vt 0.913295 0.117370 +vt 0.847576 0.925853 +vt 0.943494 0.944485 +vt 0.847316 0.944969 +vt 0.688030 0.885062 +vt 0.649924 0.795399 +vt 0.668977 0.791613 +vt 0.911733 0.122382 +vt 0.930175 0.120522 +vt 0.936745 0.216378 +vt 0.911318 0.018270 +vt 0.930427 0.018835 +vt 0.913224 0.114841 +vt 0.954682 0.210093 +vt 0.937231 0.114504 +vt 0.954682 0.019078 +vt 0.918303 0.029315 +vt 0.936745 0.030244 +vt 0.938308 0.023373 +vt 0.931737 0.119229 +vt 0.754198 0.840644 +vt 0.730639 0.844556 +vt 0.731301 0.820844 +vt 0.688030 0.787828 +vt 0.569166 0.795181 +vt 0.588241 0.791504 +vt 0.607315 0.890252 +vt 0.960661 0.018320 +vt 0.955656 0.114781 +vt 0.941558 0.018276 +vt 0.660883 0.975200 +vt 0.559541 0.956621 +vt 0.655707 0.956100 +vt 0.000000 0.000000 +vt 0.786166 0.829217 +vt 0.779441 0.836886 +vt 0.779718 0.811540 +vt 0.772716 0.844556 +vt 0.756820 0.791740 +vt 0.780380 0.787828 +vt 0.744061 0.806292 +vt 0.957682 0.205726 +vt 0.938502 0.210596 +vt 0.807242 0.834065 +vt 0.813691 0.816388 +vt 0.813967 0.841735 +vt 0.820692 0.849405 +vt 0.839210 0.845493 +vt 0.813029 0.792676 +vt 0.836588 0.796588 +vt 0.862107 0.825693 +vt 0.862769 0.849405 +vt 0.849347 0.811141 +vt 0.848313 0.975191 +vt 0.848052 0.956091 +vt 0.944231 0.956602 +vt 0.876729 0.114667 +vt 0.894622 0.019078 +vt 0.894622 0.210093 +vt 0.927352 0.211156 +vt 0.908321 0.205676 +vt 0.660146 0.925845 +vt 0.654971 0.944960 +vt 0.558805 0.944468 +vt 0.607315 0.787828 +vt 0.949515 0.207294 +vt 0.906941 0.162449 +vt 0.924512 0.070802 +vt 0.924512 0.168102 +vt 0.949556 0.021160 +vt 0.906184 0.076454 +vt 0.923755 0.070802 +vt 0.923755 0.168102 +vt 0.918303 0.215449 +vt 0.919866 0.024303 +vt 0.904418 0.834555 +vt 0.884600 0.799370 +vt 0.904418 0.794239 +vt 0.904419 0.917186 +vt 0.884600 0.882001 +vt 0.904419 0.876870 +vt 0.832557 0.726440 +vt 0.736378 0.726924 +vt 0.736378 0.021532 +vt 0.544033 0.726915 +vt 0.447867 0.726423 +vt 0.447867 0.021031 +vt 0.448604 0.021688 +vt 0.544770 0.021167 +vt 0.544770 0.726412 +vt 0.653498 0.470833 +vt 0.645169 0.566340 +vt 0.636841 0.470833 +vt 0.737115 0.021157 +vt 0.833293 0.021669 +vt 0.833294 0.726915 +vt 0.737115 0.726403 +vt 0.832557 0.021048 +vt 0.544033 0.021523 +vt 0.448604 0.726933 +vt 0.636841 0.279818 +vt 0.653498 0.279818 +vt 0.645169 0.184311 +usemtl None +s off +f 6/1 5/2 2/3 +f 7/4 3/5 4/6 +f 3/5 5/2 6/1 +f 3/5 10/7 11/8 +f 7/9 12/10 10/11 +f 2/3 5/2 11/8 +f 14/12 13/13 17/14 +f 16/15 15/16 13/13 +f 20/17 19/18 13/13 +f 19/19 21/20 17/21 +f 2/22 9/23 20/17 +f 16/15 1/24 2/22 +f 28/25 18/26 17/27 +f 27/28 31/29 33/30 +f 31/31 27/32 24/33 +f 7/34 22/35 23/36 +f 27/37 33/38 26/39 +f 41/40 22/41 39/42 +f 7/34 8/43 25/44 +f 27/45 26/46 17/27 +f 10/47 12/48 23/49 +f 24/33 23/50 31/31 +f 25/51 43/52 37/53 +f 23/54 22/55 41/56 +f 25/57 37/58 39/59 +f 11/60 29/60 20/60 +f 20/61 29/62 19/63 +f 11/64 10/47 29/62 +f 19/63 27/65 21/66 +f 29/62 10/47 19/63 +f 24/67 27/65 19/63 +f 22/55 25/68 39/69 +f 16/60 30/60 6/60 +f 16/70 14/71 30/72 +f 6/73 30/72 4/74 +f 30/72 14/71 4/74 +f 14/71 18/75 28/76 +f 4/74 25/77 8/78 +f 28/76 43/79 14/71 +f 23/80 41/81 31/82 +f 26/83 33/84 35/85 +f 35/86 28/87 26/39 +f 28/88 35/89 37/90 +f 37/53 43/52 28/91 +f 1/92 6/1 2/3 +f 8/93 7/94 4/95 +f 4/6 3/5 6/1 +f 5/2 3/5 11/8 +f 3/5 7/4 10/7 +f 9/96 2/3 11/8 +f 18/97 14/98 17/99 +f 14/12 16/15 13/13 +f 15/16 20/17 13/13 +f 13/13 19/18 17/14 +f 15/16 2/22 20/17 +f 15/16 16/15 2/22 +f 26/46 28/25 17/27 +f 12/100 7/34 23/36 +f 22/35 7/34 25/44 +f 21/101 27/45 17/27 +f 9/102 11/103 20/104 +f 23/49 24/67 10/47 +f 1/105 16/106 6/107 +f 25/77 4/74 43/79 +f 24/67 19/63 10/47 +f 43/79 4/74 14/71 +s 1 +f 32/108 34/109 33/110 +f 33/110 34/109 36/111 +f 36/111 38/112 37/113 +f 38/114 40/115 39/116 +f 34/117 32/118 42/119 +f 42/120 32/121 31/122 +f 40/115 42/120 41/123 +f 31/124 32/108 33/110 +f 35/125 33/110 36/111 +f 35/125 36/111 37/113 +f 37/126 38/114 39/116 +f 34/117 40/127 36/128 +f 39/116 40/115 41/123 +f 41/123 42/120 31/122 +f 40/127 38/129 36/128 +f 34/117 42/119 40/127 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Spear.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/Spear.png new file mode 100644 index 0000000000000000000000000000000000000000..cb156344f4fb41c1ebc3915b865f6c2bfc010e1a GIT binary patch literal 1282 zcmV+d1^xPoP)LZ3GSbM^*a?>uHH>n{T5JQu87t`q z+Xs6-z;)u0co<#6p9(Nacn_ja$~Pkoiy{Lmu8bD#&9uhsN}s?m_SlS5#9gsUC?`I7 zI>0d}k8&8Vzz3>LyCF9`?y!-RH6Frx;KN}zgT|wwo70171$#Ul;Ji;Rf~W_q3VgyA zZH6kz4KWAVP7g=rmFb!60638;#VC;T6z_e-a-hIjMKmSCvf>n^wj172@Hi%5*iREO^;?hA% z@Ylc3UwlRWFV}B>^Gl3p#veX^t8k~i$aZXRd<`h*xo}-k8zx7?F^`4>)AR4?lXj3fTL`)kFz-lG|w| z+Y+@SuB0V%4u(xE7C-*Ur!NQ47e~IR(YQb!^wER~^#&eq8&E}gk==az=dWK5fKxP^ zlbaT%HnSEX2s1nm%pVwSs1Hib$FE<%9Dv5eqgZk%ks&exyKTmjW1gG>)y=%#eENb@ zAQeYXA{%$Zfnh=vj^nwBeZkDgu@TKbzWL?_MHpA^U2I=?H2QB9Mu|aTYw>_?Fy=JP z>(_TLr~xfjg0blWpA!}Ax!9WQ+#GGRlIa8Y#hbUEy_^sD47Nn5p+S{|J3(R5K%gOl z!I>xSlYjp41*c$NLAFr|G;gV@$rG$L?NA7BF++rk%g2|O0|<8{qlUpOdMtET*c1=u zB+ihbadMubw0ZN{PhSq8a>Hmsi*1A8k-I(Vb5b50yJ-Y9SaXs-`PZNR_Hr5!#?(Y{ z5?3HL@9P!e!J#WTgk^9&V6|Z~e)h#z|Nib*4lFdT82kAZaC5wxt^$N}z~$s_ZE{Yc z13wPD8*k%6Ge=VchzB~GdOV&FF#Lf$oX{Zd26%%OkK33jE_xkQ5okL5_PF(A3tru9KbsgqMcv5uxA$#l8` skHls|CUU`QVmj)LwQ-llAUIa>A0;%&e+Pl|O#lD@07*qoM6N<$g6L>LGXMYp literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/StoneTongs.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/StoneTongs.png new file mode 100644 index 0000000000000000000000000000000000000000..312ebbdd386ae6f295b965a9a5b21049fa50a6e2 GIT binary patch literal 665 zcmV;K0%rY*P)9vY7JYYPAX0wzgB zK~y-)1;Gn)+%^zE!8ad(M^ zgx~-COP7QJfdj!b!OJMy(Q$Nw1vFMdtIoKCO*dv3Qi?1iVuQA5;cQ|YZ^x@pTPFgf zH6Aso?FKqsUnmz=#@7<67r7QSoK)q#Pf7ms$It3ZSMg4r5WvLP@O&Cc|s z;$nHHm7%f%)LC0c8%Sx4V;P+^b3N<|Eo2G*bka3n*Z zwZZo^G>hkM$R(`J$s^IjU)-g*E^ZS{h1fe1M!q^qW0~+!CmzPIn|FuN0%DlD<7Hc}IlD-s1r*|P2giLg{NzZR;d$3Tf75F03Y34kJBco8AWItK^ z#kzLd4MF0MNKQR4-CzV4$yys)3-c4ni|@Zdug39GUM?JxTrP<2=vjZkk@VLjwRmQu z(dcbZcjt5KY@eN_9c=ND%J4-q$G;2xFzC~$htO0w{laV#2K2$6#<_tCOj(@S*i;c& zY(E@-*`(e@*OTRi+?_h0M(0zCt~Z-Mneji0BXUw%R0bh|w!7Fp$W@HjfdT6cdIvw% ziK(lT)A>o=o%> zo`6L$p9;0;l3exVcR3wngkcDp1L3BaxODyidU`|z#4RDU00000NkvXXu0mjfo!K0i literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/StoneTongsCrucible.obj b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/StoneTongsCrucible.obj new file mode 100644 index 00000000..53b0c625 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/StoneTongsCrucible.obj @@ -0,0 +1,325 @@ +# Blender v2.66 (sub 1) OBJ File: 'TongsCrucible.blend' +# www.blender.org +mtllib TongsCrucible.mtl + +v -0.344117 0.075000 0.474283 +v -0.318070 0.075000 0.622004 +v 3.969203 0.075000 -0.133958 +v 3.943156 0.075000 -0.281679 +v -0.344117 -0.075000 0.474283 +v -0.318070 -0.075000 0.622004 +v 3.969203 -0.075000 -0.133958 +v 3.943156 -0.075000 -0.281679 +v 4.293188 0.075000 -0.484326 +v 4.267140 0.075000 -0.632047 +v 4.293188 -0.075000 -0.484326 +v 4.267140 -0.075000 -0.632047 +v 4.752184 0.075000 -0.508381 +v 4.743621 0.075000 -0.658002 +v 4.752184 -0.075000 -0.508381 +v 4.743621 -0.075000 -0.658002 +v 5.136531 0.075000 -0.255038 +v 5.315940 0.075000 -0.269672 +v 5.136531 -0.075000 -0.255038 +v 5.315940 -0.075000 -0.269672 +v -0.355537 -0.075000 -0.475178 +v -0.329490 -0.075000 -0.622899 +v 3.969203 -0.075000 0.135076 +v 3.943156 -0.075000 0.282798 +v -0.355537 0.075000 -0.475178 +v -0.329490 0.075000 -0.622899 +v 3.969203 0.075000 0.135076 +v 3.943156 0.075000 0.282798 +v 4.293188 -0.075000 0.485445 +v 4.267140 -0.075000 0.633166 +v 4.293188 0.075000 0.485445 +v 4.267140 0.075000 0.633166 +v 4.752183 -0.075000 0.509499 +v 4.743621 -0.075000 0.659120 +v 4.752183 0.075000 0.509499 +v 4.743621 0.075000 0.659120 +v 5.136531 -0.075000 0.256157 +v 5.315940 -0.075000 0.270790 +v 5.136531 0.075000 0.256157 +v 5.315940 0.075000 0.270790 +v 2.368650 0.075000 -0.147144 +v 2.368650 -0.075000 -0.147144 +v 2.342675 0.075000 0.000609 +v 2.342675 -0.075000 0.000609 +v 2.776489 0.075000 -0.075483 +v 2.774191 -0.075000 0.076729 +v 2.776489 -0.075000 -0.075483 +v 2.774213 0.075000 0.076681 +v 2.368794 0.075000 0.148362 +v 2.368795 -0.075000 0.148362 +v 2.774168 0.075000 0.076776 +v 3.206325 -0.075000 0.000603 +v 3.180198 0.075000 -0.147089 +v 3.206325 0.075000 0.000603 +v 3.180198 -0.075000 -0.147090 +v 3.180358 0.075000 0.148296 +v 3.180358 -0.075000 0.148296 +vt 0.421853 0.551533 +vt 0.421940 0.579970 +vt 0.403092 0.572327 +vt 0.540205 0.812336 +vt 0.540734 0.984962 +vt 0.444374 0.985258 +vt 0.430219 0.532431 +vt 0.403005 0.543889 +vt 0.226671 0.498020 +vt 0.244878 0.669806 +vt 0.218786 0.588249 +vt 0.337957 0.890965 +vt 0.330072 0.981195 +vt 0.256977 0.948595 +vt 0.180830 0.340122 +vt 0.176652 0.430599 +vt 0.172320 0.172626 +vt 0.463704 0.181560 +vt 0.413772 0.181713 +vt 0.463296 0.048527 +vt 0.043520 0.435417 +vt 0.035634 0.345188 +vt 0.037268 0.177483 +vt 0.475892 0.015149 +vt 0.547868 0.014928 +vt 0.548457 0.206746 +vt 0.159473 0.012159 +vt 0.176499 0.082149 +vt 0.155899 0.105802 +vt 0.413364 0.048680 +vt 0.413250 0.011634 +vt 0.029382 0.087254 +vt 0.050936 0.110043 +vt 0.476481 0.206967 +vt 0.548613 0.257727 +vt 0.129887 0.193348 +vt 0.298760 0.004564 +vt 0.395121 0.004860 +vt 0.394579 0.181532 +vt 0.075423 0.226109 +vt 0.080515 0.196448 +vt 0.641025 0.392672 +vt 0.564039 0.392436 +vt 0.564318 0.301440 +vt 0.394487 0.211483 +vt 0.298126 0.211188 +vt 0.298218 0.181236 +vt 0.669664 0.665715 +vt 0.574242 0.666008 +vt 0.573946 0.569647 +vt 0.581506 0.908792 +vt 0.550404 0.908697 +vt 0.550700 0.812336 +vt 0.573564 0.784981 +vt 0.573227 0.674976 +vt 0.669587 0.674680 +vt 0.126719 0.841714 +vt 0.144277 0.840601 +vt 0.134608 0.931955 +vt 0.264867 0.858354 +vt 0.271074 0.762180 +vt 0.374645 0.865424 +vt 0.055130 0.248700 +vt 0.048926 0.152539 +vt 0.076092 0.336690 +vt 0.762746 0.013682 +vt 0.859107 0.013386 +vt 0.859664 0.194975 +vt 0.159620 0.152539 +vt 0.153416 0.248700 +vt 0.132454 0.336690 +vt 0.191588 0.006899 +vt 0.287949 0.007195 +vt 0.287391 0.188895 +vt 0.082296 0.432852 +vt 0.098912 0.394970 +vt 0.564039 0.016223 +vt 0.641025 0.015987 +vt 0.641120 0.047133 +vt 0.126250 0.432852 +vt 0.109633 0.394970 +vt 0.749330 0.269886 +vt 0.652969 0.270182 +vt 0.652852 0.231999 +vt 0.092053 0.299602 +vt 0.098866 0.084810 +vt 0.564135 0.047369 +vt 0.641878 0.294275 +vt 0.116168 0.096007 +vt 0.116492 0.299602 +vt 0.109680 0.084810 +vt 0.749213 0.231703 +vt 0.652229 0.028956 +vt 0.748590 0.028661 +vt 0.652193 0.017304 +vt 0.276969 0.744978 +vt 0.276632 0.634976 +vt 0.372992 0.634681 +vt 0.016940 0.848784 +vt 0.010736 0.752623 +vt 0.120511 0.745540 +vt 0.276581 0.618350 +vt 0.372941 0.618054 +vt 0.199752 0.854140 +vt 0.205956 0.757979 +vt 0.236991 0.760009 +vt 0.421266 0.581606 +vt 0.430819 0.949287 +vt 0.400161 0.949381 +vt 0.548491 0.703630 +vt 0.548772 0.795240 +vt 0.452130 0.703926 +vt 0.042163 0.713418 +vt 0.025604 0.713367 +vt 0.042458 0.617057 +vt 0.247310 0.857209 +vt 0.547961 0.530962 +vt 0.451600 0.531258 +vt 0.164914 0.481380 +vt 0.172800 0.571609 +vt 0.146707 0.653166 +vt 0.160799 0.839502 +vt 0.154594 0.743368 +vt 0.191834 0.837500 +vt 0.073262 0.713513 +vt 0.430909 0.978498 +vt 0.400250 0.978582 +vt 0.034428 0.898645 +vt 0.443844 0.812632 +vt 0.399561 0.532525 +vt 0.043524 0.016624 +vt 0.463182 0.011481 +vt 0.136192 0.222775 +vt 0.476637 0.257948 +vt 0.137092 0.744311 +vt 0.641304 0.301676 +vt 0.669369 0.569354 +vt 0.581802 0.812432 +vt 0.669925 0.784686 +vt 0.092377 0.096007 +vt 0.380849 0.769263 +vt 0.763303 0.195270 +vt 0.191031 0.188599 +vt 0.564893 0.294511 +vt 0.452411 0.795535 +vt 0.748554 0.017008 +vt 0.373330 0.744682 +vt 0.230786 0.856143 +vt 0.402418 0.573962 +vt 0.254493 0.760951 +vt 0.025899 0.617007 +vt 0.185630 0.741339 +vt 0.073557 0.617153 +vt 0.042313 0.988875 +usemtl None +s 1 +f 5/1 6/2 2/3 +f 52/4 7/5 3/6 +f 44/7 5/1 1/8 +f 4/9 53/10 3/11 +f 1/12 2/13 49/14 +f 4/15 3/16 9/17 +f 8/18 4/19 12/20 +f 7/21 8/22 11/23 +f 3/24 7/25 11/26 +f 14/27 10/28 13/29 +f 12/20 10/30 14/31 +f 11/23 12/32 15/33 +f 9/34 11/26 15/35 +f 14/27 13/29 18/36 +f 16/37 14/38 18/39 +f 19/40 15/33 20/41 +f 13/42 15/43 19/44 +f 17/45 19/46 20/47 +f 25/48 26/49 22/50 +f 54/51 27/52 23/53 +f 43/54 25/55 21/56 +f 44/57 46/58 50/59 +f 43/60 41/61 25/62 +f 24/63 23/64 29/65 +f 28/66 24/67 30/68 +f 27/69 28/70 31/71 +f 23/72 27/73 31/74 +f 30/75 29/65 34/76 +f 32/77 30/78 34/79 +f 31/71 32/80 36/81 +f 29/82 31/83 35/84 +f 34/76 33/85 38/86 +f 36/87 34/79 38/88 +f 39/89 35/90 40/91 +f 33/92 35/84 39/93 +f 37/94 39/93 40/95 +f 26/96 41/97 42/98 +f 21/99 22/100 42/101 +f 41/97 45/102 47/103 +f 28/104 27/105 54/106 +f 6/107 50/108 49/109 +f 55/110 47/111 53/112 +f 56/113 48/114 57/115 +f 48/116 43/60 49/14 +f 8/117 55/110 4/118 +f 8/119 7/120 55/121 +f 57/122 52/123 24/124 +f 28/125 56/113 57/115 +f 50/108 46/126 51/127 +f 44/57 50/59 5/128 +f 1/8 5/1 2/3 +f 54/129 52/4 3/6 +f 43/130 44/7 1/8 +f 4/19 10/30 12/20 +f 43/60 1/12 49/14 +f 10/28 4/15 9/17 +f 10/28 9/17 13/29 +f 8/22 12/32 11/23 +f 9/34 3/24 11/26 +f 12/32 16/131 15/33 +f 16/132 12/20 14/31 +f 13/29 17/133 18/36 +f 13/134 9/34 15/35 +f 15/33 16/131 20/41 +f 20/47 16/37 18/39 +f 44/57 42/101 47/135 +f 17/136 13/42 19/44 +f 18/39 17/45 20/47 +f 21/137 25/48 22/50 +f 52/138 54/51 23/53 +f 44/139 43/54 21/56 +f 47/135 55/121 52/123 +f 46/58 44/57 47/135 +f 47/135 52/123 46/58 +f 52/123 57/122 46/58 +f 33/85 37/140 38/86 +f 41/61 26/141 25/62 +f 30/75 24/63 29/65 +f 32/142 28/66 30/68 +f 28/70 32/80 31/71 +f 29/143 23/72 31/74 +f 29/65 33/85 34/76 +f 36/87 32/77 34/79 +f 35/90 31/71 36/81 +f 33/92 29/82 35/84 +f 35/90 36/81 40/91 +f 40/144 36/87 38/88 +f 47/111 45/145 53/112 +f 37/94 33/92 39/93 +f 38/146 37/94 40/95 +f 22/147 26/96 42/98 +f 44/57 21/99 42/101 +f 42/98 41/97 47/103 +f 56/148 28/104 54/106 +f 2/149 6/107 49/109 +f 54/106 45/150 48/116 +f 48/114 46/151 57/115 +f 53/10 45/150 54/106 +f 41/61 43/60 48/116 +f 56/148 54/106 48/116 +f 45/150 41/61 48/116 +f 55/110 53/112 4/118 +f 7/120 52/123 55/121 +f 52/123 23/152 24/124 +f 24/153 28/125 57/115 +f 49/109 50/108 51/127 +f 50/59 6/154 5/128 +f 53/10 54/106 3/11 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/StoneTongsCrucible.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/StoneTongsCrucible.png new file mode 100644 index 0000000000000000000000000000000000000000..e763b7232919eafa77e0a9def3778d37e3d2e1c2 GIT binary patch literal 1613 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ĺyf@TCjHM5;Qot8GP~{n0gSDLvc#7!jfu!_=CJ?e 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 a#(x2f1$0gcDOvXb0000PRx(}|N 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/UntitledBarrelSlack2.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/UntitledBarrelSlack2.png new file mode 100644 index 0000000000000000000000000000000000000000..0164f1e401d72c9ae55b0dddc695db4bd12bca08 GIT binary patch literal 28250 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/UntitledBarrelTan1.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/UntitledBarrelTan1.png new file mode 100644 index 0000000000000000000000000000000000000000..f4f09820ee405d030106348ff401ee555f221842 GIT binary patch literal 31343 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

    l%v#u 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/UntitledBarrelTan2.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/models/UntitledBarrelTan2.png new file mode 100644 index 0000000000000000000000000000000000000000..e53449ed1979b5dbdb5d11ee44ef9979057c1494 GIT binary patch literal 34359 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�$^iv|5&dde<%Z+qb2sI+- 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

  • }f!rmUam4(}j0+5ctO83|&Opv$AJT{Z;8R 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 chC4F-0XTmu^J=!Dt-w;0z#5c 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 arRKlGSZTIQ4F?kd0000DnJjMV32Te&t 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

    Rb-GMli~7v0t|hV*X{I8nK7L9{XmN! zJ2XYLz7?q`3s_W#0}Xfhu*+`!GyC=&_F4+XRG7amd0S8CN*+g?SSRf+sXfVJNM%Fl5^Af ze}*^yMd$aPKPrGL_B4YA+o+D^n}pY3O{zTps`ckAaLpZ<8>7?3yWIrAI$^kAIy)lE z>o(J!`6XHCJ4wSQxORQG#vh!;{Fd{!yhtM>>ukOLFM3Q4g-m0j(!hA?(41{Q9ldK(9F8 zKwmnKU+uf@UbeN*5y6G6{}L`$!LPOX?HGP*eOmnr3#A%~i`x?sH#DQzbb&E@A>8_8 zQ~fR4LW?kNL8I=YJZ`$Wk)bgB*+Uvx=d^5PY|ICHCCH|T&}tlb5+lFPfdTt|1CvyS=O#Zu@MQlGM!^y^5| zbauF62ZpgvVfzl)<%bqDD0Z=ex7FBm&KMzQw$Jy!AKtPyNuajxwEngwUtDkS9PxCc z_|BC!DWy`MQmv6C;Zkn%x>5h0dTx0ZAFhbFM?VttFC6wnXtPMkAW|W_%A|OS%l)|6 zFm)#U*hz^Ky!~aj%gSN?e%Tj$jZVg1zTNkai{_jtS-+6sfWmN*+L)`=jf=78S7NG=d&Bgp6Li;4 yA4iapYxEWNN6Y%BPHueL$M^s4gAqQ$L~)y>ptYK|#PF@a*yb^+i`MO*4IP!O~m2QM^Us0x-*A zfTC5EN8Z#w3#{Mw|6-O$!$dc34TT1V@`mKA<>LWFkQ;M=M87qk*CN vt^E_`gTejf5azshmBi-5SEu6{1-oD!Mslu#0|WC)PZ!6Kid%2*8fHm5iZnc2u5jkj zp_Rcazp=KQnsP98#d~#?jz8Ecm}eI1@n!;VM)}&v_ur=) z+8liF(|C8sN1eKCreld|oWEjEsL9Wb;B|ZW>ZKz~)u(gM(sN$zDoc9%k>!I9L-(s2 zs{*$CzPos`L%%x1Ya5OM< zFhD7$1`Y$)eVi5#&+gv6=YwdBI>Qkb#)L_8fVw^$Gk?4P-}LQ23z-B2S%4m3Jn+n& zVZ%>BhMYPu7wYB)!_T1!QA?*JRZi1wVK8vLTJ^ZUtbzrfkMMXFMM@#*-nYZMKWA&R z_%SpvK)nHF7%;7kXW3;NTk@}AN>I-B=;AXstNpg#yRnjarmM^3em^Cpq(IsKqCm;z z{3k4rXKgh)K4exES{RK=XQQ> zpOMU$`s;nGLhT=+9UqU)(JPL-$MM8zLO4&u?5s1EUu4XgD%ruIjqY9rh&@aRoDK{P zoJGnLERUW~w8&#ITK>Z_kHsp1;Z8{MxrNVn2%fOUmm&lhyn*51GeNrXjAk9*;mo}P zEM8BX1fafnv-GR#g6PJxnu+I5M>oFg2QlmVq8n{tX#kt68WFVdQ&MBb@09uAATL1t6 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/gui/formtableguidefault.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/gui/formtableguidefault.png new file mode 100644 index 0000000000000000000000000000000000000000..d12d6f676f0a72ce9faa5fb516a59ccea44d5f5e GIT binary patch literal 2009 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78O`%fY(0|PTd zfKP}kP~62^QA&dRf`N&DBm;)v@9e6; zXy+{Oh%9Dc;5z`qj9J$@Ie~&wC9V-A!TD(=<%vb93;~Imc_n&&t|1C##(JiDhKBB+ zoy>tnimj)MV@O5Z+naZTZW{)ve#2l>+r)B$`N#Jg)}P-TotpgIF_meL z{TIotMQ?007+C}wYTH#C7??OV*hevZyDjX%pjXAjalqA|fpN!+v)mu*>`V8EfYh!y z6Mi6h9*1Z(H^+gxYPb?k1qN|jMwSPQ)DLX@ynrP_qCsBn_&R$(J>CP)`D5i39OMqn zpU?5vlp%k|=KFSnzls_D?TY&q{lGD8$HuLC2mBi!9=mpk!Jef}I$E1Kh80M8Gsl2< z+01j84)?BI$`G;pnENXx6Oh7J3^hwQ4s8A1{?j>f{H9)o|6FFq3f7RFYg zg(DPncm+!T8LyME=GXcx`r$_Yd=A^G`HYM#3HK8@6@WqZreCb#?>ArwcF$vAD!2#< zIv?(Ue=Zq)ECLP;-(;r&!&QO7fBpg&hPsKRV&7I9KD*hieUstO^}XWXHalGD0?C5{ z|G>V(LJkZ-cYuf!zpqAI@iJm~u9x1KZhdC+@~};e6-&Pg#h+Qf7NQ)e=Z&=vRJnjd z!=A}=R!mJ{I2U_P=zQ6XbpN#}%pbg7tL~c-A1w$o_C|RG)H0y%N_ERX?UM|}DnQFO zyx$^Z9OwT|e?Jd;e+sb_<8=tk3pFd9uw=W@K5x`(Ya6hP&UM`vo%{D0_U< zSmfW=_YC**n=^OiTWxA_KR1=(%qGqQIy#Kunw~v{*@B6x3*YEoNF7X#l^ncnbwiiK= zp9~Gom?8)YencT0Y;dsg{o6G-uw6Z`e+D_V{fVh-KLfwn<85H&halWd+g~WRp7=co zvR~WqjILQw|J>jpVPL9TX+is}DV;YzNo8Y6I_oHlN&r?T0x^70b>ac1H}|cJIXa1) zYb-;wy&;@)KEC`~t`U+EexGth3$t7>2Rq&-OT{M}Bqg_nj+9ik?z#9mwcOc*86J_; zOtx{c|NE?li{0`|gqMnQbL6U#uAL%K||bo1=&kyRS4)3Z9sS#)o7V)hnBGV zS<_zz2BIjnvO)=Qxg5g6!f?H|a;}$sMiN^sSD)IVNSFuHuL3yB(WI+oO>UJeh>;Bc zTc3N~ZqcWnA|#Bekaov%X2OLEDl0~WtHMwYr#etITB}%&?waz3WC@)07H21nH>nt- z)6NSdoRv1r#Whd*#$!7m1VqyKl1R)`M>e=c1S59;LBZ_1vFYFjzs2~fEX1Za)ZyX< zyO=)rf<}vHW|+rDpWG_#(`6zhBV5zl%8fGKB6e%jRHfWHbo41yf$JL#*O#jMA@vPq zYfCrM#`rxnQEfThE-G(=usyMXmDbJvwiChJtv-+-y*xewflz9rm?RzlQN$qIf~{F7 zA$s+`0y*UAEBRfXh<8{RoF>(I&IX@bd>DZ@6&$fH781M9X4G}ZH65~r;o9Yzp4&@# zdQmpVx_GQPihX0@Ru=8eE<0I)2hNY}PH(g;i=?u~Gb);P_WV=#|2nF}1MK8!~w#OUHj}F70;9Hy*uO z76*@Zr${teRS0KSXM6Vot9!5*hJ!`gkfmdJWw*$Ey+<9>vT5X+TQo%z6O&K#w9(*$ z8kq!>8!bLuz{nYz0eIteRHPU!A6XF|BcyT zi5>~g`shOo(S)2{srGDEF~0fQ_DObjo^|mXe_N55+iC=VE_cJqF%&cMHCsRE7qQl>9_=DmEv%Rh~+g-XA~gRta$h%4v1> z@I!HlaL4xFqlHSOw6j7RL-~4(>u=UNh>WeQ2ys)3MCUdfP5=aIIX- zD{V|0zvfK|XRgFlBiN49`KG%0rnenL{$?g;i57|*7t!8Y`x(^cTz<0Rbt;wzBDrbau1$$I>Jf^ffSVD1I?olze7557ZBV?TLlHy>25FikYIcaQ6nhc zfB0%%_HL;q`X=uu6=N>8U70vsvAG%+`_@GTs>7g5;AJ0I*Q@}OKCNA5iH0^28vFL6 zsL|w7>tb(j?}&5xk#3dG<@P-Xq@HnReQ|zCB?dE2@94%CqFCG5_+q zxNG{?fPRz0sO^pmR}=rfBL)%XMbVSK&pz0=4!y7HRxvIE6)8AkUL<(8MQRD#>aF(K zRndy}U5#5KlY0rs1x8(UB3IqVYC-V43CHp`n8i&U;m>)I%M971jzM)}WwD`XVtww820W7H2-- zR#`ENW)eLHpj)cRo^oNYY=+w5Y((~pXrW4F!Z)9^5Ax+STRY^)ouqKrVP zZ=|WSlTRk4o%1EDspM(4&#I!~mDY1kAR96fFy&&Ns$R+umvbgMr6l0noeDFsYtV#* z6QUyIawGjd{k)`-S82jV>AmBNL5_>gi44V-!~G#FL95?Hp@zbW|5WLwep7Z+$m@%7 zm`S#n8uhEW3@_CYZ7iOYR)6h^>PwNR|e&{UFI*Yb;UklNS zO3<$CEmI}LFv5vwt)6rK`bmR zHvChJF|Dnw8i|8$m3Ee_{4s|jC7S|=Lt~rmw=3I@$d0USP>BAQbG}u)M04u$x)jsb z@dP_!tm(5mX!1zycfGM*x8qN;vc8*bOWkI(_WA_>@2=0;ZESE;As{xkYrc?`C~MI3 z&G*4sjvAR`MZ|{p+G``b)*2FLZ{CH>h18cQnWPugqVx(#?gM&HFMctg&)(eI>JuQR zML~Und%dr>>x9?Po$26(P+V_C;A`7Kwvz`FK}*Ke^a{H=w|w$VJ5fpqwC|uUiNZL zcWYdS;*khlNis=lU&m*}d8Nzr&#juYFsCxSkdg59y`{TLk2lQc^-`LB#5EC8Ir_8P zagUyZ2M>+`Kl+G|udRvvD&U~}cqT^Zh`0J~?GYn0cnE7mn@*6}gr*9HG^GG`rOlQut|7)~Fz zrZw6q;%2wvt7^G*0-6ke-yuRjOXfwL>P9O7vdsH@Sc{YfXVv0X-NR_d+K zi!M)PW`hac*owAA%x0qx4{5_dj`$XtVyvVbG`Y=xQS+OC1yBgT3b^VTS#>FPU0>SQ zeoeGbKfB=BYLv6FCUQ^j=igmx19r|bX;7N>DtsHZdj0(yYq2?o$@Z!lv-6kb1Yrb# zjy)=fm*lv4<%LSTGndX*Fe5=$DdAhiF|J)z9(i^|;(_o>J@w)1RAt&Wi%LdWKrxLk zT1wbiAwO^SzC@D%1UoyEJUx^6{AQOG)6UP0pIfGHERHrUcSTK5f&ln_+=%nSyz}=R zfqs9r(pmwMt2toDU18K^R@nNyTkaq>D2J!znqNQt)ktgJlo zAM<)&OH*QO{D>uD_U3b*+Rrb@%QloD&3}Tti9fK1b`YBKTb&#wpS5z(8|uUQ5^q1_*zX}UAJ+YEoW|OXcP;!mi4ryr5Ui1 zN-R2)ChV<*(BwZq95dAp&s@u(tH1DLDm$s9DkV% zXLZ8zvL8(6ni5VDhPSnhfcj(FFH=9QHl& zOr;B|Ev~|2ATHNn^CdewI~cB1=Rp1M#dVN9U$j%^rdOpk5So%db9=x+tEq{*9UG#BLLIy?m$$L8Y4Q=Dqr^DG zb#-0R{PJg&$CJ#=**A}1%28J!s;FZ?7WiTP*MoW@F&YaNau0h5jYke2K73=4+1?&c z*iWzCsgZ@1*-H?hZKKw~M27*@Eh>1f7hc%xj_@A$G~yv-`$AP72YyK-esx#vBB|xS zNSzMmh}0o&K3_ahDR!}8g&4vt7hCvIEltZ z<{iu6U`ng23qvO%&Db!y$O+HCJ}s{RCU_3j#fLQ}g0fZ*g`6k5lW#sY`(Sl=tFiiX z$=t`xlQ#yn7w~$Ma3LxJ#MIHW7yD*N!9OQrQj%gK``NkQ0mnI{7)Fz={a<>GgN z!ywtn$m-kxC=xi8`9`J|GP1O^uiA4Ex`0nnNom_}794@;;jIQ9_eRU`Z`Q?CJq(MY z%Wr+?raK7&ua*8m2DFtn9G(c%lWY#G>Iluxe*K&W9?=*MWlZcplH_5PYTmym63H}S zCr|F{cDroRZkSSIqev7Czx0*5VNILg)cR8;^x5WNmZ~~lgXhCqw^q4evS37Jav!!k z3`SlKX&Zr1r8hDbv42gWu=oW?ePPzZ%>9CdpCpOdeOajxQ;k zfEf!MTHIJ|Lcc}(KDx!&yulRjsb_-iv5jJ`!b!6b>*7@I5X0U3)w}HErrvWph{S09 zK^nctwC$-sNr(a>gv#6YLW7=--U_aIKK+t5B2 zaK&QIkgj5UJWSxMm^Mdb<#!x6J?QZ!;E(V>K#(Y5e}ri}^_O#+O|o<;`aIbd)zKlc z2D1QMYEO5XQUR6@33g4FB8&@9k$UfIi`@@U+%`f$<6!>O)YLwG#rpns`Coy+p8o=Y z)AJ_;VGzu3lU(mEaJSZv^;c`iQ-Xb)ib@dzZwx^E-u#{@&WeJq3NkV?W3bt#Y^}6g z*-6JEWznLj8x{-wZY&1LtPUb>$1ZOany#Kxebts`6j0k9CBb_8dr%6$Kdc0P-RgAt z{l?bh?vyEN5O&BC-{;u)!w_d_-im<|!xgC*`)j@yk5b4lpTKWYqLrNE(F=H7Gc0t# z36hkYCa#=wFbsZCR3r~|s@J;BkALfS`!YPNU(_8*sSTORd~rEV_vk;PpBA8BR&9!O z{J{tR&V9!i0Y|j>7R0`>{U%e4j)>1SDC%t!NOMnmc&^42`_hg`i3g)G851;r6v!Y~D_5hyFZz5Uqe-w4QZ5;ojoGYps0o#&zQ1j2`Qb~@Bau0c17vGJM zBQtJ5y>%qmeWf?Aq`s_H*5uE zPcpz-^RimYhr_Ud1%;X1A+mB!$?K#wu=<6Cg+NgpUzXMvvhhoMfVg)lPEa07@A3Sr z<|!u*gu(w}(M4GooO*|!QQ;*#wcBEyT>_5`)4&9mSr=a<_EK96yUcpOlW#uq7^v;{ z99;8#Fs<0aqy^YV5s@p%l`a<*@8v1upe*)bnty0m^+2~rDcCw)UP*!@bl#kVg`D7l z1(paB=`<{a6hbvKO~9+d`UmhGKio=+?aU=XdrtcsFgJ+3QR8YMNQ|=;6juKW zO}K@Ymfd4&?-m!2=E}ZtQttdo!F0q|`Ee8GUN$3nR*78xX)eHD^o4`S{)Fu5^^ZHI z2D~xUgkf?{pS#puskH_k5(Xx(e`ff9+91}_EzGM?pX!%Phc9f9%N?fXs)yfQE&Fst z1@<|VT2H+CRreo@tpASk3^eP2^3+B3?YJN7r6|1m2jv;J;1ttNie|eMQ4lBgCjylZ zNJnX_t0T1~sl?iv8lA@B-bkUP1tlR)kG

    Rb-GMli~7v0t|hV*X{I8nK7L9{XmN! zJ2XYLz7?q`3s_W#0}Xfhu*+`!GyC=&_F4+XRG7amd0S8CN*+g?SSRf+sXfVJNM%Fl5^Af ze}*^yMd$aPKPrGL_B4YA+o+D^n}pY3O{zTps`ckAaLpZ<8>7?3yWIrAI$^kAIy)lE z>o(J!`6XHCJ4wSQxORQG#vh!;{Fd{!yhtM>>ukOLFM3Q4g-m0j(!hA?(41{Q9ldK(9F8 zKwmnKU+uf@UbeN*5y6G6{}L`$!LPOX?HGP*eOmnr3#A%~i`x?sH#DQzbb&E@A>8_8 zQ~fR4LW?kNL8I=YJZ`$Wk)bgB*+Uvx=d^5PY|ICHCCH|T&}tlb5+lFPfdTt|1CvyS=O#Zu@MQlGM!^y^5| zbauF62ZpgvVfzl)<%bqDD0Z=ex7FBm&KMzQw$Jy!AKtPyNuajxwEngwUtDkS9PxCc z_|BC!DWy`MQmv6C;Zkn%x>5h0dTx0ZAFhbFM?VttFC6wnXtPMkAW|W_%A|OS%l)|6 zFm)#U*hz^Ky!~aj%gSN?e%Tj$jZVg1zTNkai{_jtS-+6sfWmN*+L)`=jf=78S7NG=d&Bgp6Li;4 yA4iapYxEWNN6Y%BPHueL$M^s4gAqQ$Le246`*qH*9URp6Pd*ID*|RR~xtYr6 zkX+(zYGJpN#bt*cljX_r5Brz2IRT6!(bJ-se zy$?E_K7CHpey7tE&Hp;XexHJ76V5DI%`wX!gb0oWvPKsD>v&#MM|dg@HAm)9j20>8 z$Pkep=bID-!@vm85ouPL1&0NL##>HsdKw65@d*D$Q8tTFxeqIH`gj89p2vDP#Ej)) zF)#AdB2op#TOe?$^#H0ME6+&=KUvwL%b&HTq!G&GX^T6)4~oSyN{4Ttp9UkmGUFhh zhi`#K$l+R;vWE^Hx&e~^drSS?V-IDDzYKShUUd(h*LWYE-peQ8(v%t!~pH#4F&@^vt$lNf3xmEiQu_H zJJ2DX3cQXMks%^IE^rHNg9V3$IcOWE8#O|OHk?7*aNUw9OoQt&iy&N~b|50dBDAIzL3KfNxqZlpkAJDptw!~<28m&}l{EW(#)z9~}elFDoA3W5-TOs*4CEkkv0b)1}LjV8( literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/axeHeadClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/axeHeadClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..cb7a81390faf7faa4bf6e513c9d6ec95523b70f9 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!#M8ww#Nu?a%^iUs^Bb8C9C1)w(97su zekUPf*JHLowhalF|9t!J|Ei)KKH^PuD_b+G;~SIW*$Cc_Zx<2-(o)zopr0Qh)LasU7T literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/battleaxeClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/battleaxeClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..2970211775fc8a0133df15d9012fd30ddd01eed2 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!!qdeu#Nu?a%^iUs^Bb8CwCHUpInFz$ zYvW17h1wOr|Eq_!?szief~bLkL4w8+_2W&acb?!%oK@JyxQX{g+XJC?$#X{>6eUa< zvK+Rwvo#wiTemF%5`G^u_<8^6HE146wP+KcAgXlR!GrH8t3m4tE{>CiL9^yEDs=nT U2;Zv(I)Q<~)78&qol`;+00DeU>Hq)$ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/brokenStoneSword.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/brokenStoneSword.png new file mode 100644 index 0000000000000000000000000000000000000000..72f2f525967beb1a6e725db40849a14d4f2a71a1 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^@Q|mAV~EA+qmym2q`N{ZC)=O#IHNNDy>sy%`9GJvi8*R>uzi(uD z_gn6m#LQOz9jjKY{Nu{1;;i{*>ju_&Ium&27W-@Nxy8)M!%*dOYEwv|O!tGUa%U2g zeO!X_Z@J8tT^wBIczaua;bjl4=XV~=HTLukia+1^EyHPkYwWCL>!YX3?CX3c9QE75 h+;=m3!T+aH_tPD68O=DZTmbrp!PC{xWt~$(69DRtO literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cannonBarrel.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cannonBarrel.png new file mode 100644 index 0000000000000000000000000000000000000000..430b72809551fc6ed870b659a7cc598c882bb472 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4o0s3c^s2NdBf@Q5sC zVBi)8VMc~ob0mO*{hlt4Ar_~v1|Q^QR^-{ddW8YA_lEyYk_)~!Hchc}>R)|D+-B7? z*1lwSH-qOrb9W_fuG3dwm=LsSYGUY8h69_!8f>Il5@ggr?`|%8SeO@(B`Y!ai`oT- z#fJ?9{v25Dpn3Qp``sf2jQ+>hOMbcc-AQEPQr@U+J%QwyQwdxx8@_NI|5(si%~376 fLhJu`{XGoZA6t1OG)ANXoyOql>gTe~DWM4f9raSB literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cannonBreach.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cannonBreach.png new file mode 100644 index 0000000000000000000000000000000000000000..10920cb2abcae534231719618fb8f91ef9123395 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4o0s3c^s2NdBf@Q5sC zVBi)8VMc~ob0mO*M?GB}Lo808o$Q!*SV6$`e*XfspdAhR4}ZsZ^p>k~-`Qvqd*R5s zDA&GC8R_i5KL1N+@V$IQyY$h~U)2r_62}YoKj;5)OW#XV_QOV<1;W2xUGsg#cWJNr zu?K0(Y_%D-q%yW_`D)P@Ab#qgYxacCM_+H{y3ZVSyQj|o_u8U!cIP+0YbcGKFBNl6 z{7jCwfRn`>g{8&}hHhupFb8?Hrxg^hzrJe9IqL%kGJ9Fi_+-9l+q$p(z-_Y-bp8MU literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/charcoalFilter.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/charcoalFilter.png new file mode 100644 index 0000000000000000000000000000000000000000..073b80b5fb1ae1cf35d36513cc704822f4a53c33 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~BL};QN+=)8GN6!TiEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI8f0kPZ!4!i_^&o68{qNI^WdSeCpYu5_bLM-}HopgcT8|PF)cE zJG&7G6t}z-R1Rc2qdW2M{cZDl8>dbcb=`C2xi&KpI2WByc3T6MJAeG>iGbZ*-0Qa+ z#qKlm;50O9F|$odNdcNRV}|nYcrT9a$L{a1U%cbl_xz6OR*UM54gAhb{A*v!Zyv^L z(E4K5#KSFuVhQv2{Y`&y?~t!S7|56>{s#rwe(d@5`+I)dssr&Fj2*^e6L_7e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00F#7L_t(I%Z<~)OO#O*1@Pa@ zH>NXFqh^Mfiq@hK|A8ooion`wn<%1IWy_MNU8@!?q&7jciWaRTaMh|+P>Vo_B3y)6 zFql}Hfkcpsd1&b{Zpd)Z1{lG@Te;~VE4r@VGd)u<}C(U_8{%fbY% zdTQ2)D)RV>3*N~)gq42@QTN2)S!uN-$WEFk*6!$vNZ^|1o z7M!u_tzNy_qWfhGMbpYyi~sHzrL24InyfwJys{pjEjev>WSl`$%t1E3Jj$xpq}+GV zb-b*f#4Gk&F=HEMEy{SIVAS5gm%_pUgR*8!#EvwKbNawF1CD#_ut_6snv``>`hRQN iVodX<1#7geb@3N}Z*YaYK@JZ90000C4>wHsR^GRoiO4#+2f725Z5(0|WBu1RQ z`e}Y+W254hmx9W>tlVO@NmX1oDkvyg+%Z2Q_}~E`m~iLw48hfm#oj6ZKNlJrWmIl` z{Po&ARZ*TGryib#zWoxCk`fXUYR^vmn=W){?Z@Na*K4f%`SGtdGY}l!`&XBzN4PlU z|L!9t30E0{JJ$WY_fL#1VuryXrZ<!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!-qXb~#Nu@Fn@dlBo_AnONLnCp;aEd) z&mx}Z60V&_4Xm@Dowxt*V38wI)hH3Z;lY-mUX99;BupT-BMOFL0^nD#POc>m@60Mh49B3$jwU_RMjf cxCbLctC-HLHe-*4K&LQxy85}Sb4q9e0Qf>#F8}}l literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedbattleaxeClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedbattleaxeClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..2552fe0fe5b4a2b0faecdf055061ef7e6aab4471 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!!PCVt#NzbZiH2MU6nI>d1!7*kFx*vf zM($jT3l3as fY-AcIx!vO}=l5rmp09la=oSV~S3j3^P6!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9*3-o?#Nu@Fn@dlBo_AnONLnDk!^nKj zu#0a4x846g##5LD#TtGv39V;z`yapfLP}-h^tr8@3=X9KHaN-6aKMoF(f(e|A3%c` NJYD@<);T3K0RSCKHE#d_ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedhalberdClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedhalberdClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..a9d3cdcdc0da662cfb0ec697a8130cfb0ad2449d GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!$!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ+|$J|#Nu@Fn@dlBo_AnONLnDk!^|A9 zfpcE6Na~M2pZS^ftzD#!nf>}dYXjqnS@!?`96oU10E2nQ0`3W>(tqpE9yq`@^@qQc n#DgNOKs^Q5#~DsiK0s&nACgtxx=CIeXa$3(tDnm{r-UW|xDr5R literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedlongswordClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedlongswordClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..008b46b5e4da78258a2086a595c5709f31420a1e GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!+|$J|#Nu@Fn@dlBo_AnOPz*h6=@w{l z`^EokHnkwr`hP#$AAUY>UtkF2EM`_KGWon|vw_6ldfz#WKTL#88YZOeVG~#^xt#Gx z*0C%G%~_mnjEZL^GzHVF^{u&WmI}_DGSO6cvEWheCs}Ts%ta=L_d4{s0WH2%>HY3o T?uJW1Cop)r`njxgN@xNAkT^^e literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedmaceheadClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedmaceheadClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..b1be69be796f86b5cb6c9c75c8a7ba4f04e186cd GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!&C|s(#NzbU$%b496a-kp1#^;K8ejTx z#^zjqL=R&k5{a}-dm?=v|;=@*1rjYX-42DmwUR&)Jdd9nF zLx-k)8q?7!H_av)e?Q{*E%uSl-s?&6%;8KuVZqH8UwxLU7SFu4$TwYD;0f=dnb9g{ keSCdp1soZU`~Mx2?hv&;P(6Jf&;tw%p00i_>zopr03Q@oPyhe` literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedpickaxeClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedpickaxeClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..717064dddd3ad76845a44ad161cfbefaf46bff6b GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!%G1R$#Nu@Fn@dlBo_AnONLnDk!^|8} z;5jE*B=yIi&-~0Fpl{9HeDVMFBa#IlrYlVO%C7hA=X3eCW*&jU>TTa|@H%81$x}Y# zYEWv>9FZ`Iho@dZYU2`~#sAk!O56}&n+r6_;MaetBnF>JjU6hj>&i?NdD)m5j!Efl U{PXO0Gtdzopr01@j=hyVZp literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedplateClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedplateClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..7ed1fa845f8e265301ab27a2dd00fa7c2a0eadab GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9$A!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ%hSa%#Nu@Fn@dlBo_AnONLnDkQ^b7E zu*+ypvWV*WhT@(@JoD@SCI0yHnLo~X#)r%{#+o(*!Am|T1YWT(y7>P(&z?6r5?qxx zBPDwN?N>X;`l9W@rJn2D2F@Qc(-MH-;B)&LsrJA)pj~@4Pvjlj1#&rqr>mdKI;Vst E0LbS|W&i*H literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedsawbladeClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedsawbladeClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..07548b5f5be647c15e0fa6cc067180efaad2894f GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ+|$J|#Nu@Fn@dlBo_AnONLnDk!^|8Z z0R-m^yCyBY`Qm?e2O|#<%&-5a=xMBP%{}#S!}PhVd0HnE6TbX6W!BO0Fm2(q4e(ef h3DV_0+2|?ISrI~#Gu_`Flm}YD;OXk;vd$@?2>?O4Ij{f# literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedsharptipClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedsharptipClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..c811547f9f72180217ce482fe857d11ca73cb987 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9#?!?y#Nu@Fn@dlBo_AnONLnD!BjwP- z_*}wO)A+&X^Y%}q88*w#*N*rgnegSmDKoP)GxOp97fTFw@G>w&zu}r`{aEb_&>RL& LS3j3^P6!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ(9^{+#Nu@Fn@dlBo_AnOP+IapX0b*p zTfh^h8E=2YI9_0#U;j_iLBFSj`NCqp@Q_C)2VVToW&?q^GBFW5&$x!nLrW_=jxgCh eH#RUZU|>*rA^ga!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9%hSa%#Nu@Fn@dlBo_AnONLnDkQ^b7E zu*+ypvWV*WhT@(@JoD@SCI0yHnLo~X#)r%{#+o*s8ih>{COt?^SG>=#`2TwMU?p2# a28P^2qC)={FWvz(mBG{1&t;ucLK6Ul=sZyX literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedspeartipClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/cookedspeartipClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..5f187b62f4ae8984f262932859ec3e82ecb70183 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9-P6S}#Nu@Fn@dlBo_AnONLnDk!^nKj zu#0a2H;^={`S+83y*68+!l60m4;*N?F75NfY2Ng?tbK(?Ik?T3d;aa0^F5`)z@R=; V*rxSNNiNVx22WQ%mvv4FO#o*$IF$eZ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleIronLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleIronLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..240463ddb24f8064ced67ab80551cd62d6f00100 GIT binary patch literal 621 zcmV-z0+RiSP)n0E6aaeb0 zxM`Z1VSq3U0az>+04$eF`u#otmSw#j;2K<37=|${anm&EbUN|**#HvvJP+UZGp#-i zm*=C=D0;ahlJ{25;k{n(s!2%P^E@2KiE&-m>2|x(x6dE;1DwLQ+bzEDUlby_`XnxU zRjXBWU1v6%0nmK=1{tD~-19@cR;vME7)IumANHC~rvQBI?ZoESUw;1ykM~24J&CKT zif!9xVb^sd%d+ByIF7T2%X;Z49<((-cOS8B`#3;y?=Qg*f?!z||7lJ&q>>;JxRn@QViO$Ch$E@v2{1_9ij|vPM>g1=xU^|Gc8>)L z;zl*;B;PmFp#WiKv~8>O`f|BAdqq(Y76#3Q+fXT`vwuFH7Yosn4(Kk7MRYu$PqVJ7 z$}qAlQ%%#*B7vzW%hHk3LXXD-N+}Q#l=?~O``+Z)5~~DW2}vn&zuy4>x7!Vza|j_O zB{mhXBhPa+3u|kZ&A?SvMPV5F6L<%=Z_F?Z5d?vGWZ7Qu zSHbp#7ezti_Xazv^3?)s;ZjPJWvSRvl`rnVTKISl*b$W{N%FbCmTlK}LXsr&1h$5M zGy^{2e}0hogtu+0(ljMHs`9rT*b6=>uqXVNz}|32;0U-8I0_B`U)E280pYvDR=NZ-*=y)3_bJy zMWnA^pB@`)Q4}!@%tK%J%jeJivr>)qIF4zk5F65gkL(S3oLO@E{DKV))J=^V; zs;WX+mZ++#AyMxDwY7F;I`LpY9u)oNuPSw0v1TKJss zD2iAZhSLd*seH7+Sh!LOaU2t0s`9}d7z=OD0binW&-3mVn6mBqo#1(1KY^*?cg=uJ z_@5snHsNWSlJEPBEmir=4$KAb6qpnKOJHtzLtqKG5m*Xt{tYiM0x&DQbNcb$@(q5t VQ-Z<%Km`B*002ovPDHLkV1nN7&V~R0 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleIronShovel.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleIronShovel.png new file mode 100644 index 0000000000000000000000000000000000000000..d6152b3166c202e50288572fe183488f76c8eb8f GIT binary patch literal 448 zcmV;x0YCnUP)q20T#3n?Wy z=ji)h8HT|&pMd9i$}~;Hag4Go0RWfFMMDgeAOTDfmSq6|f*^Q641f~_Aj>k=wk?{b z0RW_FI!1+cuUUNC06NDj@`X-`5b+mq7LkhPdN6sHzIKZKJO1aT$jtB$>cG z-gO<4Bw@o&L{WsIC}=)J&*Jmfk!2a%{8PLnPWCTY6JHHj8(#(3BK|gDtN2@hE#of( zwvN99polL9P{kJkDC7SEsN;VE_J}_P>=pkNuxI=MuyaOVk literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleStrongIronLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customHandleStrongIronLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..240463ddb24f8064ced67ab80551cd62d6f00100 GIT binary patch literal 621 zcmV-z0+RiSP)n0E6aaeb0 zxM`Z1VSq3U0az>+04$eF`u#otmSw#j;2K<37=|${anm&EbUN|**#HvvJP+UZGp#-i zm*=C=D0;ahlJ{25;k{n(s!2%P^E@2KiE&-m>2|x(x6dE;1DwLQ+bzEDUlby_`XnxU zRjXBWU1v6%0nmK=1{tD~-19@cR;vME7)IumANHC~rvQBI?ZoESUw;1ykM~24J&CKT zif!9xVb^sd%d+ByIF7T2%X;Z49<((-cOS8B`#3;y?=Qg*f?!z||7lJ&q>>;JxRn@QViO$Ch$E@v2{1_9ij|vPM>g1=xU^|Gc8>)L z;zl*;B;PmFp#WiKv~8>O`f|BAdqq(Y76#3Q+fXT`vwuFH7Yosn4(Kk7MRYu$PqVJ7 z$}qAlQ%%#*B7vzW%hHk3LXXD-N+}Q#l=?~O``+Z)5~~DW2}vn&zuy4>x7!Vza|j_O zB{mhXBhPa+3u|kZ&A?SvMPV5F6L<%=Z_F?Z5d?vGWZ7Qu zSHbp#7ezti_Xazv^3?)s;ZjPJWvSRvl`rnVTKISl*b$W{N%FbCmTlK}LXsr&1h$5M zGy^{2e}0hogtu+0(ljMHs`9rT*b6=>uqXVNz}|32;0U-8I0_B`U)E280q20T#3n?Wy z=ji)h8HT|&pMd9i$}~;Hag4Go0RWfFMMDgeAOTDfmSq6|f*^Q641f~_Aj>k=wk?{b z0RW_FI!1+cuUUNC06NDj@`X-`5b+mq7LkhPdN6sHzIKZKJO1aT$jtB$>cG z-gO<4Bw@o&L{WsIC}=)J&*Jmfk!2a%{8PLnPWCTY6JHHj8(#(3BK|gDtN2@hE#of( zwvN99polL9P{kJkDC7SEsN;VE_J}_P>=pkNuxI=MuyaOVk literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronHoe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronHoe.png new file mode 100644 index 0000000000000000000000000000000000000000..9985f8e1e5e8d69d233c08b7984069e81ff3e064 GIT binary patch literal 569 zcmV-90>=G`P)sC8FTXoNuw?~7kdDJJTzcj>4vH4p7OtU;F||%ae=m;^ z$(ev!gnFL0^iHeQTAFveUE;cKI={O)L#G!N6ZnzXD6m>Wh;)4U{zPiWhX8=lWTra3 zh~yT~5{vUN3^$4hAuydzq11d?quPfSxqo;j1SJ&bT&+uGI2=MLg*c8uDTQs@xV?xF zzrJBKnV}ScbuwBgNfM05V@N4eiAJ@LPA?**3oJHV?f4LnBL)BpKt{s%ePZnretL3* zMzyc5YV*dmZ5xzQNGXe*g1qoSG*)^XzrN`-be&U5Uk*&cN0S-q^*RwkTuUhjzVAn+ zCh!-$(~Ah_T%VFkk|bZ0(u!pYzOv-A-EJ$_bw4bVaK~{n*R^GM=b5th1@}A;obzG= zW$e6g0{?}t_JOsJoioPr3zQkV{&``HZ6{DRJXa6w68`5^yi0fx1ZXy!>jieb^Nk6Z zg8wRD5}pw-4PO%22Rs$n7d(>y0Hg3 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a5b38723728046ebb661eb9fbbb72e255f6303 GIT binary patch literal 590 zcmV-U0-t+3reT^AG+B!G((o+beY<%gGi?viXauEp^4DkaQA|V zCTDCCe-M0&@AFNb5prfSnQ+d8VHk&D82i4ze<82zwDWM=woAhRQ4|3%o6P{2&*zNC zV*nh-c{<=6Tuu~42`q8jwi%5^$+|E=;+xHeAP7p`eIA}&XGav_>-8GX^GXLuQ110g z`H8M}__i7ex&H9w7XYmyJO~0z(=7GqvpB$XX)x?}d85x`UF|UJclr44`9r||nP>4{ zuLpo-StlLEF5TMc!tXWtGC^TwfW< zIp5s2Q#in2Fu-+Paqt#YG5feY=jqa5x7!`XleeHQ{Dq;3x6c+rQIw;2?q6|LxLkXl zm;0ne-T0@kcZJ^fj|Mb}9|Sawrvfg4Cjpnj0ovDBhS1ecYqgF30gdAOPoSl%o%k_A=xV1CJo_5} cph+Cy9yyF!spkMetN;K207*qoM6N<$g2>nprvLx| literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronLumberAxe0.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronLumberAxe0.png new file mode 100644 index 0000000000000000000000000000000000000000..1642ce430f720fac686117f72e39b69691fcba30 GIT binary patch literal 603 zcmV-h0;K(kP)1;Ky+2;wXrdA3+cuItMe{B3-nTjv{odAP2?LKS5eBE?!8| zq&784-z6a=@9%l zUjYDTtLM%=rfE(+C&YpCT6tHdV8bv_sZ`Kzw*&hMLHKYugk@QgrsueOVh)Dk0Far5 zYnp~di}zxT;rZs&-WosJj4{-!DlU%Ky#a#oe!maPvgQimpWffA*;S#Ga@dpGwp_?U zDdn6H8TX$1@q9iH0MKJP)5j2k`G(not@V zQhG>+;Gi8u2RF&4E?o-VqIU2P@DJ$FMVth2a&{7m4xNJ$vPc&%Qx7K*>UIb6Lb=d3 zK~lKa<=&8=wdp14vm}H!&*%H(O+t`SlgR{w!2o&d(YFT-0FKVp;M&LI&xD`1TCK?X zdKPXN#pxfy8Ko4XzJ|BYZ$$&7;mhR`p6BfpB0hb**L0yl zZ8z{(nKMNap|%@Ah+25h<9M^#1OW7Uz1)+>d%ZuY!*PA6?FRl_{DtHC000tipzC@B zmt`52Wo<>DetN>52`_>{D5Vjc*HusQuycmf&0ScQl?)Kx`(5yGtyU|Tris~j$fgS| zf(wEW9A#N1yl*Y7k!{<#asHE;jfYH;M7;iblEBl3A}Fv%eT^xSi2EOY;0wh1P-`4*7n`=0l{GspxnH6D-A@Ar|kUjBID1Hi!z71ur=e|(|i*A`}P+A;C zykid9wvFL%=s#R0^4h{CyxZ+!*W$e##}WA1YK2ax<9~Q_7z_}F&*yWvuDex;_1&-c zQdJdas}(+}Dgb~!D}#q9$Y;KeS1J_%fMFPkcfQ{1qFe?5yz6>ocKa81fBuEfgO6Rt zHBAF!Y$JN|<(2SIwb8`ILA&R0z;<10lY2o~7pG+pPlO|c?AHPpGt|$A%pA;YseCGgZ;X4IL6Hgo< zZ9GwcEby%ZWQA`PAWQtw09oT31LT3n2FMGKdn3vX4+Y2@4+Pi;E&}We2LLkYHA%f% z!sT`2o>H1CE+#POH4F7>$-lgA+#l&vQm>YB!2{30pw|QdvhRtD1Y-U;qFB M07*qoM6N<$f;#F9PXGV_ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronLumberAxe3.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronLumberAxe3.png new file mode 100644 index 0000000000000000000000000000000000000000..366de76b94d067f3c5e6ce79533086ccdd936f98 GIT binary patch literal 620 zcmV-y0+aoTP)R&UMLkV zT`nO}V~v-@XHi1l=kt4?H%bH%H5d%&bUMT>b@2R2E}sPM)#;700qeR>qtU>!tgU_X+wkRbiQ_o2cJJZA9ebc< zS@e26_u;Y#uFdVjTdfv{me6_0eIh9iP`NRe&7AwJP&W|L0pz)Ow-(n zzW(~keIvc~H)7j%2>0rtr#P=p`LTL|X_}h>f@i-E9<0S;fngZ*`+YY!Q2nDnJtW!2y!O4+@YZ9y>tNc&q?v z;Cly13*Re1n)rVMq>b+kkOdwYAS*oTjVLpGBS6-8D8MmrKftkYfPA-I6P1#kySnBc z$Q1V{&~4XpmC}iOb$xb!UY&|c=_C_8^bB;{H2|{20saBuMJqOLNj?Ao00003^ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPick.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPick.png new file mode 100644 index 0000000000000000000000000000000000000000..0d98fb1ab2d6db5e47ba9aa7b433527ee2797844 GIT binary patch literal 499 zcmV$mML_~V3HxhBqpSTIs_Rzb^aX79(pH% z1n20}l|;C(f*??OJe^K6bFS+W3Km@oPeY}YnfbwBP*{kHB%o6`6w$R_uamLw`w3&z z@2Izr85I)9E6?*XQd(%SSU@QSB7#!;CEdmZcB=^hczyq-QUs0(NhvX(&jA2o7=m*S z%d+tDI77JHVzt>pCsC?Ex`xA{isKkj6d{h|M55c6AbkwXlz={a%d)^ZhnD&JdCIIa zCNS!E)U&<6IcbT)x8Pd1-D=|D{tn@Ci_ewF%yZ6@gqUggYO}+5JSNV0?s{e#t{cwx zeR3SfoWLn~`o(k{2kmw{xw5P(__1PD!d=&;!+(R-wey<=ZiP!J;d!27b?v-x0=L2s z`+(K4b0Ng_0%gXo-vlAVWddcxuj&Dl@Uy?6Nq7(hs@Llg)wT1J2~-8o6{r&aN1$qW pMxYLOB2X7RH-ReQx!sTdR=*gARKxf)H#-0T002ovPDHLkV1jMx+@Amd literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPick1.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPick1.png new file mode 100644 index 0000000000000000000000000000000000000000..1f627dd97d65ddb4a80bc46dafc001840e9b6f39 GIT binary patch literal 525 zcmV+o0`mQdP)B1d6&-=^WB?N0$qgz-0_{zJE%o&D3kg&+Q@UPGB;Q8d`G&0|Aw-XDIBndq5 zM>viHAw=xj@pv4JEz2SRaCdR6hLaiYpL-;cKwO!oslv~`P`}@YQVN6+DD}JKtn`jr zr3?VLefl7&2rLs4LcsGp0D$YdV2putj?1GS+`$y#BvKU!SEtiaQc8?QBSKs9R)0DyB2#u%iO$xp$i@LHve{k>hdgDJX0Ju=T2 z3r+{k8a|xNVB0ofjK!{}S;PI^Zdn%5G%Y)URq*hQsc9Oj)oO5LXm-w-(qIE`)$-nu-?HdEx}Nh0pH;T14l%u5W%7ry0BdhqZH9S}%b#;T!LPEa88? zf-K>UZe6`L-v}wH^OXtY1&7z=4ggr5Ka0kTO% zK~z}7<(4r^!$1_r|1Z!A*AhB~4h5m@<{&Q4x^yXpPR&OUH^HI!35tWW_z~h1I1~(m zpTWhc3W7sv2c@(J*5Ns5LfWR%rb%z`O?TYm{=fI`f5{P+jDv@L_Q%Kl)2TJvwh1wV zmKFbe{R-xl`<?2+GCsx=KEHXRSO8Js zI1Y#BKG0w=05gM#!2FZ4mw7@Vm&M0;f-uBd0E>X6l<4>S0DxYv2O$JZ)5M8$hsUGJ z6hxu`;b=CStdzoVID}FvfcWhMon5~mRR92})oKi24#M-iK-Wl1yj?HxVWA5EFijIe z2q>lI@{F{^3%M+IubvTxC>D#s@uUV27WWP3c^(NNBJ+*3#eKKCu1l6>r3dhrc=(HH zSr+p7d~jurO^GiGW0T^xZPV<3!_Zav+5qc{ODW+v4jZ~EkKKWF#boWAXy{E6 zI`n_{>tqX|W!$~rvKc?*kF~Wh3=uj8wiW;U__Fisx0~AfVzKB9gk2nXqGw3c6tvcj zx%>Uzj*}#@8cHc%uh-ZKpef=w=IY!4?RGn0W{z)l{!sb;WdI1~*(pp2F=Kuh( z-EKij2}INgF(^PamdhoVWeG)5Kv|YGh^hm^6@WQ=A_6HT7#Jd|bsWl%F!FW8j$KwpZh~IBEU?5hj6-p@^^Mxz%*ZCZ>EVB)lBnbvV;11v~@#+^d z2m%<5M)t~zbBP}daZd3t4Ds;4A$(Qd8=$Ya)*9kCX5p*y&JOeyKkNhHqw?u=dir}{ zNZZW|>+ez zN~ubTs|vU=oldzZ3gmf?q9{rdZUuxd0dw|BDM%?{WRy~+JZ}O~6tO9}D{&aY7kn@n zl$uW|g?_(pkH?#UfrnuTBQcxJNJ?3mFMPpQs}(kzjcvFzO(_The*&lA?i(`*0`z)4 z`^bv6;KxF=36JBL4!;|stDQF%XbRU_BS{h#UG2Pf1)9PS`#^ND^WkuK`F-G;Wj8mh zyZhVoDsWBs#XaB?{^t?+gpU^^etUc;>T2gFE6^6aQlL%vFM+n=|KPh0h&of zK~z}7<&`mO!ax{?-wRdBDZwtGgG=G2ZsITKECILBU*d1*Pf4egqZC}abtu?QbqaKG z2ntoK2C>7r^inU4R+C&Z^qnr;!Sj4yzDo!W%==0RxqiO8RrVamAxN2%L*Y-KKhF=G zEBmhNinKx`O$R>SUf}yacuYiQu~1b7=Lo|v zl4wC9IopMqpZqPcOWY~J_kk_l{3bU7s#{i@|(aIJ4_&N_)#;U6aMGl zP$zsa7>IVeO-Nal@9jWQ@I-+k;lBimhARSPz$1aO;E5e55}r8y_;1+&A2D2U{ftDA P00000NkvXXu0mjfJ3`%c literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase1.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase1.png new file mode 100644 index 0000000000000000000000000000000000000000..8bf5327159d8cc83a4283409d617f3688713902f GIT binary patch literal 537 zcmV+!0_OdRP)oaN#N=J2DWWOhCq}Si-ory4u_sczulyxvk8j@uu9>|70`S>2N8iW z2KwP{mBy%5%6NJEfFB|ez&ao)C1$f30AMo65MlAG%xjf0_KqLmhiEh! z-tlAx;5Szd=Qs`*Ld3s_l9+!t+ynqvuh%0r9jPa<-h3&;Fi@}8QLR?Jk>z=ruM^MH z+%!#Q7)E*kNh(hakknjC3CpsG7gc%e1d^JE`+yfwxvuM*1Ed+dx)XF=j|Pyo`9?jE zrFo>v2i5Eb$hFA)F$0i8)i zK~z}7<(DyP!!Q(ve~Au7q#BKf4la1jP_np7FHiy*T1?N-3-lH}Mlp0SXv+l}D4Duu z$PzFyUDRMop{PTVkW(j3?8qMaCJ8ls(r%d7eWl z1wsgv`bm*enmk*gk-#P)Aq1AoB>*7HGBC!#ImhDj3MU_rC5eLy*fAQ7R8bU=Qlcmd zBO#?MRe-t@&}Yv%2V)FchI3xZb0!c)k<#aGORNWV1rLG%@5i^WC4ApE$Ky;u!(X!t z^!;Z5z<4|+jIqjm>JmPm&rQRnX-YiLb0@G3Zr_-m=b_i@nMank1>Y33O?Vu~Wc|HC zyV`kUfu?XF1d=3Cw5y%hu0T`xdLPg(b{>Y|{sM2#_Fg8?C3?R;wm+JaXKv7A6~+>45+M0j5br zK~z}7<(9uo!$1_r-#ciBYY7E06wG4jq*MO^(K!@4XtVeqI5^h-pg2kY2bX|D;Be`` z;NaFNqlJ=ciiK?pZC3Y$suHnv#TeP_wK>*9;5`rKIA$ql0%mG#vfINFm(|~gh66SSt63eR$U}PF}(Q+XPkqlOqc&kx| zNADJ*5bbt5Jf6w`qT;gQrqd~M&QtSQ)#9?@9LGUj*Q*2gOFa6;)O8)2&1QII*}lZL z1>2{%Wm%Z~Z!lGr7X~OQE`$Kvwuz~#JhuZy#gl!&R8-#Wc6Wadlxe$sVI3SEWpkiR z@tu31O7TpUkB1#PJ)h8c*rAbWP+5D+HzumC997$ns?Qu%Hyo<&c2s@UemSt$d!E*S b@ZaJa1^rVcGFJa900000NkvXXu0mjfg-zsP literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase12.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase12.png new file mode 100644 index 0000000000000000000000000000000000000000..8c022db1dc1af65c375052c3ac973e22623b3d79 GIT binary patch literal 531 zcmV+u0_^>XP)7BKHkT+jdj0ia1l zK~z}7<(IKa!$26v|93dZQEw4LK!*rjJGjNAFCc{uEx~8-1^N~~h6FnVZtLh`!O^ut zmqKW8IZF^h&OvfqYFgW*mkfT>9rwZSci(qOE(AM9cQ{tr_-^o(TML4Kpk$C;;cv-8 z&#x|Ca_hZbue1;;Q-S-@C1$f3gb;*s(rvGaDjz5jjSkY&$qSf^*_yH((j@V(D~P57TJ zunF%D$Li^EKuA+N-&%pX;DrKp!hZ?W4bKTQ0oMXe!2#gN_(@P554FMzPe1-!d;{Gl VQ+`4H(nSCO002ovPDHLkV1l^K<#7N2 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase13.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase13.png new file mode 100644 index 0000000000000000000000000000000000000000..157f69c7cc28b8016e820d55bb30030331cb71fb GIT binary patch literal 532 zcmV+v0_**WP)L$Sl=q!R;=z9p#N9Y^)3h8ukbaCke6zS#^ z3I&ItgCZKN9j-%3NYZFE=8~b`lyD#Xe&2WB-4PraqTN=(_h-K!TeEGOAY+hY;UDXD z`2T8IvGs1Zn^}lt>A>}H2-kHXrA*CTM`VQ%A!E>Ks>kOk$s~{#j^n84e;_oU&!Ln8 zAp}bOq_ip%G-_1Sc^(*JFbo6tH&b|vEtZ=df==Wr5RG21 zr+nYXYPEvz`=LauGC_13s4jtE?+wEMV+?`J+t+O@Pn*D?(^Pj27fFfCr{Gk0qgKV$ z(TFg{QuC>9crb862x6M1K7m8<=#6QbChGNicw}i& z@O?pxgxj`FlJ5pBtMao2&V@@U;W&<>WmTTJ1Lwk%b3n_eoO6DhDWXoW4V3E!;2zd!1U0%e8@fFf7Z08dQhozl`*NJu^1g@GZ zj$Jlh^fYmk;-*U2f$y8y$tEE@7<#c_d;PUqHP-SxCv*&Y6#iLN?*1c58tcpDva=9% z>A?GXjln_1kc5Qqb~{dzglMeF?{;7)c&osW@LvK$!y5u) rz@5NYZ~%Doei9hKpzzk|$A61&A<;_IiemTl00000NkvXXu0mjf^r6`1 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase15.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase15.png new file mode 100644 index 0000000000000000000000000000000000000000..3f06b8fc0cf13eb844d9cc992fe38decb101ea89 GIT binary patch literal 534 zcmV+x0_pvUP)3Rq3iS=Hums^PB>A>}H2+#8%ghS`#u#a1#p}{ctTV=<4pG(c`OyxP1y2AWx`XZAO9`B Y0VqgRi0Q@T#sB~S07*qoM6N<$g6Bu$+yDRo literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase16.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase16.png new file mode 100644 index 0000000000000000000000000000000000000000..9c81b34b9f5b284d0521e033b3ccb5a4701d559b GIT binary patch literal 502 zcmVhD!j{42I14*V3FIY&ba@dU##czUu$@mJSld~6UC=H_;HtUe z*k$8IPZKvOZmNVG_`aE)Bpbqmp_7E|_19|ESj+RA&@t#y_~+%~?stntV|}??b{3*8 z9e7`_aX1`cjA_lic(Ph+$4JwZx7#gs5@?H}DA>QZLg(`t%nTv|^G`}uRW8q$=p}GV z$QXmu=>z~M%MwybD5Y8@UMk>6mStSmHL9vYUDpi>zXKwafZcng6r_}}GD@jNUNC_) zP1&~Gm$(iQ3O=1q8^foR!elaW+Y?N{!sqijti)!sAt_~Rz6b^1@Ao(!k8a?!))dEa zIDva`|BV^PF`_7PkE|F9ek;U~@I24y`nw^M0}9Yina?auo&W#<07*qoM6N<$g7eVUO#lD@ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase17.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase17.png new file mode 100644 index 0000000000000000000000000000000000000000..862c64ea983d111575e7e30bd04f91179aa76917 GIT binary patch literal 516 zcmV+f0{i`mP)Px`v zJ?9*ZF&G)nc_Gi6Kpe-~?7J&*8PpeiI2_{bbb>1}7!2(8coQ)2m(2zrqY(gLu~-ns zSZO}>3E%B@cHo2%BnSe30=MAqi5Ua|dcB@~WNBOQYeCzDCrLss-y5{6%4-YMg-a=s zrm3b~RbIIRb>WwDK)a|s48z9-nryo{6T&dOPoQb|Lo?tL{^tjYPxyMh)=?A@(pBX* zJJ1%qRG>}xFM+n<1%WQ$R-h|506aNA2^uZKOQ#?IExrK@&QFX!jK(bh0000F+cLq8A)-i|>#ymww3enRLCqky!aq+Zd%qlyOY4)# zq_z;LQ-SB%4D0n8Qp(EQlOrpHu#7m4b)M&>mOxcxS*G24BXl?%ptS}e1X};3D5Y$k zE73^cl8}@V`~4mOu-omx7z5`VZ`&%+Te+je=F9~!3w*p literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase19.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase19.png new file mode 100644 index 0000000000000000000000000000000000000000..25715cf689a36633bbf1d9dba7d48f6545a34c14 GIT binary patch literal 527 zcmV+q0`UEbP)xPVBza!7Co=GNwv?ME6Li70?Qc4g) zAiur4wJBPSIso8w^hgR3*d!!`fbaVNfZ1#Y#uyC4z{{$SV}6dej}=rW3KfWEFc`=n z2(VZz5ClOe(XCApy#}gFK;6Az7+{P+$=rV(#?EOI81_5zsO2Fkkqp%ZZ#C+;@J|qx zXt&$p^=K1_!qvcy$78}6OFd6@!_~mKu1h%Q`UJMYRV>Q_=N!#uGkj%fS@2DvWx{RS zCYEItCy=M|+yZ&wLI^mHBWYEYXYN2=cybPC6_uN&xxYY>ZCBp}(=>MzC>p-k4CsXa z`9q=;KAB8puh%1_s>-)^pe%T*K$-Ag0%gNv0#(36fvVuC9Vio?I{o->Sp$6UR{N%P RwLbs=002ovPDHLkV1j4U;wAt9 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase2.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase2.png new file mode 100644 index 0000000000000000000000000000000000000000..c244b3a797628dab1b82ee9ff5baff5216281c56 GIT binary patch literal 524 zcmV+n0`vWeP)`G)3*eAp}$80tO0C=7U#uzkB!*zEGZxJXGxeDyoU@#EA?_;%E!T0@8 zqE{O$3DBYhk#$wOYqTzDj9LFKLt`{e82rkPsP3XFgR;v}hva~GtzM^HqEz2UN zY33)8rSr@JS>c>>*tRWbRh_3!AS*mN2egXL4Z}G8Q=Dh)@(=6sG+_dH!jGPTBH@2t zL6PuDAVjx82&t;`g9(%cj}<5r{!5^2xFS#mJQS!39-Ba!@Yw0cf2%KyWnl8Lb0W+D O0000#BfU`^9b7YIvA>}R*`&X)*vWE3AwQrAg>)(10?ks81Ug)T zgf7=5cU5cBL_Hn)PRboT&-dM@D8Y$&-zlZ9pC9fEYf%&t)Xc@H@Tbks{i6_t^*D}I zT_IAZ1D|g%SS%J0B@vzNc5AMaBr%L22-IvgBeevoQm$MJt=DTPr9cRQ+IveW&Az-u zBY{IgLI|u@D*!;6reKVLbB>R%8(i(~3KFdfD4BaUJU^1By##rTk zY7@R(F3rFtNkSaQu_tg0t`mkK9LK?6FfflS?FxPt6zCHEOQ36bL7)$~5$FqU{tfpqHT2LaymI>S-|`J_30OiK=**}90000^feKkd0)gmvTQtse+zVALo3C_&>ms0xr<>9`t7KR}~&0L)efBO8ne-xsy9z~I= zD@5va;N$HT%jFWHB%-t5@6B}_$A;l~o|@0+q?SNc%9U%O?RE>L6bK$U3U|X{L84WGe1afQS(ZUci7d;Egp{(-0cuM?pFQUs zj4@~#&Us;-fG8$8j(i49p`-yMiAJ?Ghe_A@O~`J%J{bHx_6L7eXM4 zB1QYEymkkg!pn0&`>5P?-OB~qY`cCZxUPGiK-=((X22%=&kqut@FYppbUG!ZugXt$ zpeuN#K$q}e0$sxk0)4=ZKwoh4Z+L(ybPTVYe*Cw518B8aIx~!wZ~y=R07*qoM6N<$ Ef^eeQ@&Et; literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase22.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase22.png new file mode 100644 index 0000000000000000000000000000000000000000..6e40364f935aef8791535e0ac82c725c3762b13a GIT binary patch literal 528 zcmV+r0`L8aP)?J(hle1#U!S+O>)WLJ6*Vg=lQ<-0!OfA#tSLc`u=(l*|RK*AZ7Nph2MSr zeBTNY*|%+5rWGP-I`H=N0M~UPVj?Q@`8-%VjuSBY-Ilz#c_FC;k`k|62~DR{NGU-G zf&BLFR7PmjssMoV!86H4V4aW<0-omq049?O7-KLD1Fy?2PWdI?KbKIQ$W-l$b^<((lc z(QGz@>(M3mUy1(hO2>d9EWhu^$Bc(tC*$<&N=G!dhpBAqTuU7i-cR2 zMNHGoPasR>nFX@Kg%Gf9Thg*BPu+p6@c10iGAeJk+q=I9@@%_$VI3cA*?~OaJI{bl z_@7sx6Fy!@dALsqDXa309ViN(C{QH)mq5|*h(HV zK~z}7<(IK)!!Q&@uSAC+5{<^A3t6+f{e@!4X8MK2om?~&@&Rq=(4}+>Bul|0&_M|% zbWxW`wOuE5Y|9>cCm9LOdGE{03b;cFvh?+$H&(VM*F**M5_YXOs7+orYWS9NYm6vNGWq2ptc0`>^bLP zj6utA&U5Fi3HZLR^xU%&#ZX&t&-1Vy+#)OCx~>_IH31EOORg|+p8)`~*^Ds8O3zc9 z@YQN%E?gYP#Bm&Z0;k|QK@h-k91Mp;^UBh$;KxF{goj~Bf*@#5ph@M81)9Qz5Qw5k z(Y`9L-GQd?;ys{!R6ZV$&;K51v+eo|>v~kN18u_3z5_Ple~!Q=e7RTZazF^_tMZc_ z=n7sc&?WqrK-ch`Kp$`;&==hN8y;Y4;-OP`>FvjV%QxITT*IOYh+hBz002ovPDHLk FV1n4F-{1fM literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase24.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase24.png new file mode 100644 index 0000000000000000000000000000000000000000..db7cf7fc9fc8806e577d267f0d1d3c704b4c145c GIT binary patch literal 514 zcmV+d0{#7oP)UE%XlLBT~73SK3+ zeO>tyxD=WEh_3Q5?stlt5APm208(dJQ51V+^$SR!W(3X^Bb# zhlHe*Sglq7faP)t&N+k-xLYjn(Cua!Q=?m{-TJ9I!n(aWu>*C&&%OgT;eU?6CVaLdy1rzLwN?4i z4m1TX6lfCuOQ30ZMxYJ25oil;{tfpqLc{RF+mHX2Z`J8syQ5}qNB{r;07*qoM6N<$ Ef>#CDS^xk5 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase25.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase25.png new file mode 100644 index 0000000000000000000000000000000000000000..b82d312b000aab513db97bf30835fd78835ddddc GIT binary patch literal 544 zcmV+*0^j|KP)S1HO3;;O0ekQ31#0hcEF&>Wr0He_ej4^1Mh7;!wPeLQs(hvCyFX1Ry3L^x%l~IF6u2Ri3y5tHQ(QfEH1?uItMS zq}g`)Cg{4pm_XX_rOrT>@IQY@vV?cLU16FgAw^aGYX|azM+)Q#{~?e!JRnd6TnQ8f ikL*C6@YvJ;ui^{Pe-go&yh0QJ0000EG%A literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase26.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase26.png new file mode 100644 index 0000000000000000000000000000000000000000..f63a71ebbd276715042f7f141d8190a9a65db0cc GIT binary patch literal 525 zcmV+o0`mQdP)J`(KnZwgF+D>s&|CBv#n8c^Ef;8@WXPT& z5DFotLqzaa)S*bosq@da?4fUx(1Y*O)3a<7oEWzcZ%U7!?!R+uQ4|rB400;`EB!R{ z>&uVa`e-yNEkw#x;N|%W^Z6V?h{D|Mc5B8-k{Cu11ZpywkWvCg5y!Ez=UOODQz)fC z2!T?+DN;(4XG>HP*e4`}zT%#=yW>fk)=(+_XTYd9z_w^eQ(gV zc3xSaDqIMGIF1!de;6|V=H~?H&KM4vA!wb6~|1Ew14F*q)lu<;X P00000NkvXXu0mjf<{a8Z literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase27.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase27.png new file mode 100644 index 0000000000000000000000000000000000000000..fba6a9813caf6afa66f7e45dfdcdfc2467cdc941 GIT binary patch literal 546 zcmV+-0^R+IP)Ebr zSMMd!3Cok407brg(Z!v!1_1DVpK;D7#xLYeK5V#W03gS4q?(S*9f&87 zelg4CGD@XVII?VBjlxm&T-Rg}=x-%!;wv+CflkSEi-Q7;Q kN9~UTbDi_J2K-m}0iezp{|-J1WB>pF07*qoM6N<$f*^Y7lK=n! literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase28.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase28.png new file mode 100644 index 0000000000000000000000000000000000000000..40fb61a19f8c0806b38622d04ba9bed47778c0fb GIT binary patch literal 532 zcmV+v0_**WP)RQ)=?BC8d6F#nM|k@K%RwRXwrKNv|g`a zi~$kBm|qvIb>f$Xs06SNNGXNYY6SpTE|=h(LkNM}#R9MGb_SwWfV7Q9BNN9lwAP5@ zIDybwXEMN=0J&e?2bvTw z6nPK?=B3{^K@b=zrK#)LcE%*vk(2ARlk1w3>xLuO-A=Br+DYms!Qj~UJg))q-|PoH WQc&?Yf!$pI0000}M`tPG z(y0j24y9cr)POpiL%Ep5MB6l%48AGh9{hgq-MdQ&HVn7jmg@Pv-;b=>woQ;R$fod@ z)hc*@u&l^>x7*DuM6z_?a5%(dGJy~xF?SV`bzL`L3_4ADc{?MS1d@VtF2nCiXt`WM zN(n*;q+F-8Dq|e%R{;PQH_s#&fixi@1Qv@00AN0!gE0ofFmTTA@N{;B*S8O-PUI>O zj$W@Pecy-YdGLKdkZ4uL2yX+`C7|}+Fbpuppky9Dk0W{71O}a^w5nsoCE`JK!2#gp zYKm6nTcXiu1lyxcK*3M1r?__x0RW!oQN~ze{+@35df;XNKpe-B>U8AZfpmEE#;n)t zsMTu0k)=h!(}ETWw{4rmzZ-U%E%3c&jgqFFx7XJ42^ZcrHWj~H%ZYxA>I`El(V7*>L*F;PXhl5=wNn#nk z@AGQ4qE-S;saI}x`#xw1qjfpbDyYwY)X0KjgygOn0VsYZ!j1H7 z;ZYP(5Cr`Rbg8_vKv%fd8gU%67_0Ku9q0ipzy}&$A8N= X>+DzqM~@_200000NkvXXu0mjfwCmE; literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase30.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase30.png new file mode 100644 index 0000000000000000000000000000000000000000..3947477c9b0686a8c67fdbc00d24f8853a9f536e GIT binary patch literal 534 zcmV+x0_pvUP)CQUwN3y40i#Jo zK~z}7<(4sP!ax+q|94b}Q$nZUV7E-&B={+;;FcvHLy>-j;?&KrkWQi3eu^U9oTN~& zAi9(g1GU3-kV}&^X*K4Op>ImK2fyEY_wEvc1H$)Lh+-r-Q$0f-nkQR>Pi0Hc%+H5uuLVyqg zA@(Vq+8pPNIsoAM?u8U0kR`-9$9la60IXIkFvg&18s2t2*!nHrw>!vA6e%AopI=G%&^>Wu8ATV|mI1#=W*M>vJR}l0j9$0pQ*rp;P;o zXti45_9zpO@Q3XPSB(h(!1FxH7)#ARQw`q_+!6qYZQDYgj>0>T4UgZLx~`+yY=%dc zmIcoWS|;4GERy_g(5fmwS>RMS=NyjX2wGL;xjS$wJUIunipmYcI9{O0w#z%gFpR?l ziiRIG11jNv{*b7I&t@}WnkFGtRsL%S%7Ui~lnMVKP&Pa!Pz5{`s0yCifimHl)BmsH Y3-vY=84+84Y5)KL07*qoM6N<$f;AN5EdT%j literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase31.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase31.png new file mode 100644 index 0000000000000000000000000000000000000000..4fca7c944ce845f56afebd74b59601e43e7b4d0e GIT binary patch literal 518 zcmV+h0{Q)kP)QE%))JYRNvWMPeql53e(^<9&P7E;`X>|OleO2DL18w2^b3ps3JdWe@1uofkb0)-be44S=_sJ5PSsb8`ww47Pz#~XXsG6 zIHg0uL3C&dHqdrB9c)69M$r864n0%CJ@Ea`ch5-qlj=Js)eT3gyPZ^z+8+lFI_F6Z bi2oKp_A*#GZKy`V<}9Iu${v zP})U88n6!MP%b7h(KgK`gTE=q9eh5&KbM4H&+trB$mfsID6wbTHbKE4`@&y?AX-oR z{lxxoI4mqgid5iiGQoU42j@KVY!H+6JTGEg4LaiHX+a7JWQFUxBEFVF>-8E!2oORb z#O_G1F~e!A2>`ghe<7s^1EVuQ5Zs4OEqY?7gn*V2nY^Jbzv!&M6bP8gxXzIYU|^9aI$@03L!ddW~<1 zcDo(5N11?xKW@gjY~2C?eBY;xvCQ))s^PnVTL1uY97o98QF;aP;mJ3qVHnUfExNL_ zDtKPdD&e+mlk|6k)|L6u0>{ER=WtzD(7G}&T!CZZ={cZvWZvy|5C0!1v+VK@>s-_J zt3a9XgJ(b`{LdDsgnOnbtm%}Hx-$Q@0#(5?1*(Mq5U3iS5U2wl3DgD8tU#6U-0A;U Z@de&B7T%d`C#C=Z002ovPDHLkV1nzcDM8C1r@~)%J9EFBOls@X z>9n;FX;XpQ`5dd&3R23(+?^#WgfNUaj&+{rq?JHZWLc)|`$}lL-9l>(LI||}Nl{9f zJX@lZz#$qpoUK@gbsI1{MgFU38^!7~70u~-ns zSYtkQ316?*X5fSn#P@x70>|L?8`JlFc%Ek-S=tx;P|!Z%X_}J#?*<)e=bZ(*!ljhR zvP{#VcHX)IUE%w4K!@1*Xf!(iJaEafS0}7H&pWLGmxP}^11{lzw!kG^M3GLGOG1X) z`OymW1#cAS6aGt}Z+J~$2)Gd#3Jw5Q)=z>Shv*gFIQ{r<@eTVDQ&|Kx1lRxo002ov JPDHLkV1kQ3+;0E? literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase35.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase35.png new file mode 100644 index 0000000000000000000000000000000000000000..01f515713d2e9af06a6ca249956a1eaaef48a0b6 GIT binary patch literal 547 zcmV+;0^I$HP)4aL@6u7T}yimStS1w|F=|c0t4n;H+M+ zN2Y1QFbtTcX+tz}bC&~BQUKQ8%d!m4IV_m_?-N&FVgTb#mCi~!yb#`!k`gZ!@;JSE zgcG7tso2|-7=TmU3Y=jW66f5ve=lkAP2ipZfDMO3vQ9_r4r~{9zcI_@GK$5bePpGy z#J81{rnsUg%=_JtvYI?HKvZ!d1XNWeDXYmtI}laen*%9}$?Ns{?*9XE+TQNZ=ymmi z{e#0`4#X+Ga|V(W4>b8?P@|hSqRF5}<4%?0dUm@%qdzl{*5oW}+ga9o&aw_1%R22W l>!bF|fmF}AUjXsn>IZ&tScA1@oZ0{Y002ovPDHLkV1is~?&tsj literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase36.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase36.png new file mode 100644 index 0000000000000000000000000000000000000000..83a6b3eae631b817b5e66513c2011081eeddfc8d GIT binary patch literal 540 zcmV+%0^|LOP)203-!>c9X10jWtu zK~z}7<(0on!$1_rzjxRo*AVJb912p%y$;P5E`T!8cvF2cOS-_wGV)U|iiki)ej+vzGQu(4kDA7L2A65ZNZ>HsZDAUb@IxA+Dyhg+65`gC#t00001`oPqe^~$k0kug) zK~z}7n&C=b$#jW}U#mU)Eh&Tiu3Vwrw zxO9qwP@%Ml5@H5Lu0u&kV=HNzG=pb)k9Xmmd+vG3BSgf`{uO)cqrLB`GhNpSF+owu zU&k;0zFxVTI&ZaFu?0~a2hLA6U|ANVlrw7`$MM&uY5E-9W`)nL2NX-dEEtBt!M!JF zJRXCYK}2All+<&56bpF(!0F`^B_d#+ASoqAqY(gLI2=L<0Zr3zY~14Ea1-wzpYWVW zR6r2zcAH(-g>Bn#UDp>;&-D=;gOZj2Z}ys|K?ng)%>CEaR9$KUy3Gpj7A=HDgrTHG zUM%FXeesB(h;q5?k0&(&L2@r}wrwjyh?(_kX_HR^HvjH|9Pd@#{ER{-7 zRn@<;%BslcL0KiauIm*3Zzx%HzO;a4$)%Jq41<-dI*;wZvgF|$C|Pt~tJM~N43 z*=X>y<6vD?qdAZy`NA1UlRQ%Ay@M*>yfOCII;Iaqrrb>U{#${*0xjDGpDQr qM_H$xvc77+99Zc+pA|s-H~au}cvU$sA!6A80000F&i+s3lIPR0iH=j zK~z}7<(EBb!!Q_zUx`k_XfzoLbs?Ll4hB!XKnP@L@gaJF-lFF)bP#CE2?Ck3Wk`oY zi0LAXxAJvpEo|3K6T7m9ev^eicpkly{KIf!-QGV_dHrzrUb~kh2}8$Xr^4T|S3ADB zT-WZ;=kv}&tV;qR-R|4hQODQ3QKq(`oto1n)h~t=yF=$FOi@SmcL4et8hN{G5GO^3!OrV5^ zVTjFU0{~bqmrMxJ+Rt6Wt4B^L#eCm)CvXg2ePa5)56|=Lk>x|de=0sCJV_GPd~fiv zX5L$%FI;PlG);+*HS^91^o2L~0Uu-L)9Lj5?}5LJT}2VSF literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase39.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase39.png new file mode 100644 index 0000000000000000000000000000000000000000..af4369c1c7694a3519a7e231c75cd19347bf2a4e GIT binary patch literal 532 zcmV+v0_**WP)0ij7m zK~z}7<(55a!!Q)b{}LUFFdB`ALS4w3p@YF)dVvz~&|-RqUZA(=ISd^H+H!#eGIq_7 z4gnL>MKvA@MIDNb?K)p}WDk9lgdY5U@9Fu2;J~HfQN7KR}~%OHosKazE^ zzrI*h&L@*eYa!C6124~4ST2{4Qa0wMX5Cy~ceLbJgNh^V-h@wcB_qkA#B+y!e z5CW}#Q3T25-0^5Y7l-O)G0Dw4-!59PQ9P6(;jGb9U;-muQ2!cRoSq7yP zvMehklv0%rP*Vc=-E+>t7(*_@Ij`gy6YzasE2U7Es0TF#cU>2s=Z`2$IF3_Xk1>H9 z{ubY0?92cF)9I8j#v1dfNqBkMg%HHHZF2&<;N>@_ZQHOct9WE-U+`@~`-F#KNb27W zI#lJI1-inel!&58)1fMF-GQ#~`W(<9Dj$tT$NvwUvhBk2^n04((y|Wgz$xKJ&wxqz z-YYN(7oMks#e$HbD&N_GzTk}leZv0;^bM~F3;{0$hJpjY8Gsz7$1Zw>H%>qPTl@gb WWLQ~urGbqA0000r7n7LQHpwM}|LMXV{C?keU*HJV%y1#4THjvuLVLDt6C}*my6~I# zpYJOnLi?O^nN)}*>A>sb9bDIih={1nW;1{7IF8Tgwj1*7@`WT4h)c9`B{Z2#Af*H$ z1oGRvRT`jHDFXmbd(R{jfn`EM2#m*L0KjN80%Ht@Vc>*cu^!!W=YgOa)b+z*}8CeUp+~ad7^G zphUf1_pe8rKoG75uHWwy##romsvE8b&T$-Knx;O1Rd5x{vS6Afs@1Ch%hJ5y%R=*n z+qO+C%gRn5P35Tt(!zxh;G9cZRON{~kQN@D16oAo&1Q4+_du3yS1+u?oi#gOywY!Qd{vKnZwgF+D>s&|CBzh7JO4xj+J$vS&yM zg%Hyr!gwp{P;6}1NgX?~hrUTd55Dg`J^vwS7b+? zmy6Q*WHM+sQRH*~hlt6a(oO3Y7kjZe)OL@iweBakfDO4q@K~2FO$HCKnkD|nAG|I2Xm_P=< zT`n!vzIwg#;+I(sfUYvFz1hH+~oWL=7@r`NQHZ04^A6eQL{7}$7;b9n(>UV<< zRe5KDu5c+OqA1dIsLES+pewvO2Xu(a$K&zo{{!c2yYM{yo+P-ktY#fJC;a3YFbV(j z3QWR<=jmXvAY`b@k9MFhc&$L6@LvLb!%G4~z;l72-~ey|AcJZ246mJj{I~c9aN=1} Tv&hr@00000NkvXXu0mjfV=m&l literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase41.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase41.png new file mode 100644 index 0000000000000000000000000000000000000000..e2765cfc48d990d1d06a5a228d33cd0a773211ef GIT binary patch literal 515 zcmV+e0{s1nP)To$M44p+jiFmY9Z8hjY-Ry_jg5zk|Q& z!Udk^eeb;^*fB3F&cpS?^_8$^nkGTU9PA3ef8TuHGA8U>mc_FQkt`i}dwzuDIAAf6 zFuw0cYumOX#<1Vzmp2oVNgyfl%0r>qYzEFb2qEC#-o3^c?N$?u=(xdhUL7-N`D zrvL!gbwMeGqA0jHoxq*11c^cgwqqCu4}t)m=OGA!NTSym3muTk5(v*;Q4~;05z0J$ zoC*JxCNS)G`FYzxTq5%=*caYzHF11&2zS21-9i=iDWy?|q_W|Qi$o0k!`m%jlcRnPGotv4ipLBdj`sc|9J#u!fj3C#%M%H zU6udZfvVt%0#(9)2viLh1nPiC0(HR?J5VJ&ar*J!@(GMKWJIRZ)Oi2^002ovPDHLk FV1noH;X?ob literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase42.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase42.png new file mode 100644 index 0000000000000000000000000000000000000000..bb64610b1ae186f327c45d0a4a2ed3f197a4d018 GIT binary patch literal 503 zcmVgmvTI=O@A`M&!EWw6t3)fmBO;h4iRo=M+ec{bH;8Rq- zSS)V;9vHIiDhTMkC~)t2*L7e>_{}rm68`5ExP+@9pm?)kY^usHc3>=ctH7A>Ujk#p tYXVcit-w@p`)_!H5r9$Qt<#VHmTzabS4XgZ=i>kX002ovPDHLkV1h2w+zbE! literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase43.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase43.png new file mode 100644 index 0000000000000000000000000000000000000000..17459baa7e2615c03a837d3395af30a297cbf2f2 GIT binary patch literal 543 zcmV+)0^t3LP)kJ9C5!d|U zb@6;AL}=eI3`z>bk|gkSdj-p~AR-{19LMq3rfK>fqh5;+P99kzfMtqK?g7o`a}W_2 zW1t`IZe@act%{eo4+J4n0jvTNLSQzV0RX1cDLCg)6b1XnId1m0LJ*k(1l8~N$#q@W zwhh;HeTZ&l5=ubI3&1;jMNz;xhX-^0xgB~hH-J&EMZ0wiQHZFdyv*yhDs~R<5QJzp zoBr|S1`ss&3TNB4#5qs?AxdNZUARX8V8h{%yxWm^0;|mz(liZ?Mgy`e`&U*f%6yfi zBF%MOXPTyE2asm+)BtJCg%B_dgQT)1Pn;{S0jfzv zK~z}7<(9un!%!H-&kfe$HiS;4LqRB=bn1{@=Md=BEO`gVK00O`613()?)#&ve5LoZoluxgiWG_4q*)tZy$bVta;RFl5wTTJxK? z)$_Fwv3<+3C@T=llEBNu9j4PML;@s`=Xv4Uw(ZbksI}?rYQ{1FtW$FG0BEsTfQY~t z1O0IKY7;c-`*?j{A_|cUU=xrK0*>PV0Os>KIOk9l10#aE3!PzT{0?s)CnETJe*n6b`47E0$G^R*GBqfz)-l*^6+&M)QqSb1J z$5R?W)I2Dh>$(!>Jo|?zkNJ1uW&prU)1=^b6rR9l^Oba6N3+?4EX(1Qm3C#mNzyLO z4Z~o%t``T8XY$+tdCi3ouq=zDswU5zKwk4?52Pw4?{>S}{|^)yyREA9N96m7miikc2@OO`<1{> f@AFV4p}n__BRy4P5Kk4Ox=fyM6UwnL{X&jJcpDLd7c*%Qp!pPEK>sd z?ipjCltRle#wzEG2?Rl)q?D*j)MJ@~d!C2w`8CQCuIm=pV@yE9pVLcB-3I``Y&Ij5 z(#G?aNqBkMIp@T29CHGP;5uO#!f_nfwq3lk)==<$v4(`laZJK6>`$Oe<(&n(!i5k> zl0;c!Ro=P-UE%dPu*Rr-GMSwIJ6C;U~|4N%)^vU=q%KUqy=r zA!Aj3umeNE8wG}h{}LD)UJ)1rUI>f@Fa8a8Fg5isD7oGK1Deo4Aw#!7Q?i5v3b~4O zyDmAa)})DgI`o}R?%;X8?><2Z&dl4FQhNRTa9`SsXaU9sToxieHU+`nG`h>@EOu{hiPM}TYtp(b`g%C)R zL|H>s-nav8;ng{?hNyfz9$)@F&}G}X@2mGT#kFmp*MTnK7ter6_@7r`63%^JMe{i! zLsfpV1AW131^R^l66hOV5*PxW3k(I%{|yf?g`VNH(~tj_Z_JTl|3j>&SO5S307*qo IM6N<$f(zi@>;M1& literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase47.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase47.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc4691be04c6821fd494e1d197b9a27337dd310 GIT binary patch literal 539 zcmV+$0_6RPP)NOAzus`WgHv(GHbE90dml2c7H` zaH$X)v?aEo)ZrX7X%kaz^LOw!UAVyWyzjkt1Z(DbCWO1bzdZNtsj5m4FR z*PQ$IbzK)xg-DbRygfa@Fbwd3h?~h|;;nnVp2z4kYvSx`Kq3i*C0MyDWLXx35Fms= ze0$dmeN;+CjHh!fOT-dbCB!+$a5w}2n5GHF7$ix;>EQt8Xy%hhRA4!+R!caJ1KYOY zIF2V#FZ6vKplJ!XXD>+-7-Mi{9zTwJ|D`6-Y1YJX#XwLZ@-5gDUMUr^zq1WsAWQfUfvn*^fjr=zKwj|B4rB=r doqqhcd;)C~WNB_$E-C;3002ovPDHLkV1nLw-2DIm literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase48.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase48.png new file mode 100644 index 0000000000000000000000000000000000000000..bee905283ab3b21319666905545a11219512df2a GIT binary patch literal 516 zcmV+f0{i`mP)$rxO4G0g*{W zK~z}7<(DyQgFqOD-;+#-+$h=Vkj**Ze+Yt`ztK)tZYbmjl+Zvow?NY^B+%h1((UV# zyGCo%L~}ayofHqA=X>u2Wwwbls35Zmn*rxKGs z0?n$8kWvc!{T@Vw-EIfYIfM|1qR1?@P4sHuT+%e9s;Z#1Mpac-LTg=Xz;h*F_Ff19 z&N+;X5TdrunLr%Jq_svJPboD77Lt8Os7-3JC_h}I+s9~HcQ{Zv5!z3`wlLV4wZ}e1`ZB7 z*(u=CLP=00)*yBG95iVXTWRyB89Y+;c-1Hq_Gxk$Zi2bs1RGG>svm_BJ)Y zeOun&2oYGI#WmzC1 zFvdVX-1XcTr9vLB?+f@LVgalJ5<$hYR!Yc@%gqHGp2TLZ>AIVTiD#w9HF|JTA;L_#w*W zvbQ~{0r<_`!r8Vhan7TEh~k)k7j6OotlRC9dpZ(NV7>WLs;WX!6cmd^@5oBKGG8ZY zm*$$LF;!KQ1Bf$uY=F4tLI~)(PEuBrM@}HFdAJ8s7L(U%we9~0l8n949@4Wl#s0zJ zW(g!|zI6xEG~a0Qey2*uCj;tts?=*%D5-Zh+C%!Y1G}1>WgR=qde2$bg=1N_on?L0 jekHKebH1v8_;30G<+5MlXK0e100000NkvXXu0mjfeH`g- literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase5.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase5.png new file mode 100644 index 0000000000000000000000000000000000000000..cff84e79e156647cb90fa4b453aafddcc6364ebc GIT binary patch literal 535 zcmV+y0_gpTP)?(Ccppy0i;Pp zK~z}7<(0o`!ay9yzjvUNQ-WPW2N&U{ZsK0(EP_Kz=ri;IY#*UhpChG1;OOGg2Po3b zDRiyQdLJC6E-hZOiC96!Lu^ zQc4g)AmvX=vou7lQU(CrKD?1k1U3l?Aut|~0RW!ofiVWdFmTlv!J8~GU91pxB2$5A zbh}*{1OaBV8G;~C63x;O(QTl*1j4;H3V{7jEA;z)!Wc`;r@GiL8Vw$FjYPG7a zEX@nPDQKQ>%d*J&zd?(t{9u7Y;X(-5wk>H_DFI#M6)e Z7T-XDP{VBIt^EK1002ovPDHLkV1mp<=Ys$M literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase50.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase50.png new file mode 100644 index 0000000000000000000000000000000000000000..bd3fa67966c0f27fefc83adf84b8c4b820321814 GIT binary patch literal 505 zcmV2L(xP#~U zzWV|R!Jc_rNvYOPx7V4yAP5Lb=4fB|!{^WQ9p{<-Fbri`AyTFTAFt1tPN(2G5tZd~ zsn<~yX@=){ax$5aQUXQESFVJTB!QF?gb>KJw-7>~+mxszuuX__j>TdD0Epullu|Ip zF#o#1@#-ogQLDga27`f2(-cAoq-m-pgbl%cVY2600000NkvXXu0mjfnT_5Q literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase51.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase51.png new file mode 100644 index 0000000000000000000000000000000000000000..92a754ccdaaa02dadf6cde34d2bbd9be3ac117d5 GIT binary patch literal 527 zcmV+q0`UEbP)zK-1|ILfQBLpZ@GXQj@c^V`pjaIZL~6EbX?lw2#`a1QI>xiwcPUrZ3xAVKIDz RAXxwa002ovPDHLkV1jg|=70bI literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase52.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase52.png new file mode 100644 index 0000000000000000000000000000000000000000..2d0c6a18fe4722c6c55f203e946f61ee6e8aef03 GIT binary patch literal 499 zcmVx`1f{VBntb-6*a5zIKF6Yuao7mPi$t8pDbm0!3=lkvp zBm_t1b*+?MKi=L{_R=&ZXqdBO;rE|E&v!yp_OmQgO@&C44t%^kVLqQj)I@ZOqA+XD zxnV?6q^8p;X(X^K^~$x-YPEt=3WN}-jklE2oZFUYC9qFO2!Z8t2>{6R9F$Tp#_;}i zh4b}wMWR!I?IcN}%Cdx%5@lH$2`Ocz1CA{LefNwpP)ea?7-N-l)&!y`Qu^MvCF*f( z!Gj>E3?E|*zVDmsu_mD5&-o>^#AGrdl+vB&9b53R|A56}VFr$KPCU=ECvXU^6UQ+; z&x7l_=9P8&g71sdCp=A46320O0&Oa9EzlM&gg};M${DKi#vN!2ug`%qMCGH===AS_ zF5Aw-P`woeE?oDx4s;1Wc?N94|GWa5a2|##nav0ps`7&!=nKA6pilTOfxh7tfg#{V pU?{lxH{8I~I6$xPozsv1mTx&*S_g|)ADRFF002ovPDHLkV1l?i+z9{x literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase6.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronPickCase6.png new file mode 100644 index 0000000000000000000000000000000000000000..51eed46797c26ff47555709bd402eb0085822105 GIT binary patch literal 512 zcmV+b0{{JqP)8czR~=cJaZHEr4KdWtI}3D$Ypsza35%h2 z-ns%^;fH-7hS+%+hL;Omv+U+h2*dC^fosDr>H(kdKR-x(!q@9H&t@~Cp>}?<0)4?7 z1^R^l66hOV6Bq(+1%`qHz>V{hzyNxMH+Db%TYLi}2};!H=5WaX0000i|14ge|6*mtfl1LyfEXxw%xfJp| z4?+kKLLkIXO1&^drBnm}T;IKtR0P%uan3Owj{yL#>w+-`P1A5u8^N6{F#T9Ub|O`Q zaJ1WP;rl*jvl)Ef4Up6)w@2`4rB$77043)OCW1_L?91%AdnY4wgXwh eV^2T+TYLiwT~w|7M+xQt0000z#(wB^eael z>y*(#Nf4ye3>7&Cxg&{bZIfOy_@)c@;P-p)UM?ZnGtMp_rCMKKe5LkW*Ci+zWMBAO zw9wB^?>V(U91aT$ks=+qyFEb=1Q0^x=C0Rkz4m=yGsc6SoIJgfLIQc=d7ex@E1@Wg zAf*H$1XBK_IE^_vttQ?-Hb_d864)jrgg_XE0D$Fk3C0*K%fezaz!kqwNgP!m8Kcoi z#&L|*YK1tCwS?1{r#e7Q38=HTEDMY=D4Cbf(^Q@@f$^Xx&pQFK64{`p;GI?z58(}x z65VcBACEDCBwP*LbUG!BvD|!W8mC<_-t!1Fvw>#DqP2g<^;b3p5;+_vq*1&-Nvbtl-iy`R9b;RnrtN%)^X zBqrgr*-ZBPeM0K0d}jx$g69fU3I8QfH9RFy2V4u(1<&n3mGIo@$A61&q%u)W3k^s~eBA&50gy>V zK~z}7<(IK)!!Qtr{}Y`=&{Apw?T|vYOx--?4FVYw{1APCzD1wIG=o7~#!i9G*)n7) zgqSWScq`YTNXV&^CU#^Gxk*9?->1{rmI)`ua5`f%ex7_6)}kmPR17*5{*`{(`P0Kk zVSO|jRTiQu6?lDl#A>yI*19xzx7*oqk|dT9h9NH&3#ueg7I7T2J2ygUnu3`@L}30+ z$+FDmxe~Pm4hd3esQ54bscSE$b^V$M+;aY3Nam=Ev zomZ|vUHE<L_t(o!^PDxYJ@-(#_?~KWef;n zSdbK!Vw=`(53qQS9AWVUlJhJ%Ksp;QFj#I8gb)#g%ruiqaolX;u0FM#=KtgIW&~FL z7Qo1m?M5SV6OOGfH~tg1Llt31fYnI22jOE z0Vw1D0;uDE0+xth1uPZ+6|iLd022 zH#`r&d+$A{xs){E;AS^2?p^QQDsh1X{Pp&o+i$F`;vGsE&%84vs?-y2>^_aA64_BLl6W2c%GLgQY=fV z3HLi=wi^#q5=I104!iMsbCu0*D<@HmUqm2*Z?tWmUw$GF!;t&_u=E-%N%-sgC#P3q z<@>$@NM1*F5LwdjY-0l49gURsQ9KJS`WIAzR~D!WuOy%YzO;ZY_)-Eo;R_4shA$)_ z0iRny3O<*BBz&fTH2hBi6YyUJOuL_t(o!^M`dO2a@Lhra|Xg^DO$ z&yF1h?WF=;ju5b8yjg6v4&Of{;ZCia~{QO1Pwnw$0t;4}s&K z;rs5FyURh#W$6YS-0q2T?|T2v(k_sJzu$if{m$A-K|+hb?u9D=y6fG__p*eo8t#q< z;`1d1AWhQzkxNcRO9JkAAON-}LjZi=2jFz`q>zG^1OOh6o~+(^pE!;I2*WT>q+GVH zML6nD+37saNEi_aJVyYG&YlYr<@mJ-$ncxPEdY`v;eI%&{0z2k`0?e`ilWE@$aaT( z5GjQRo+GYag~-NryF>X=TsLzg|AHp)#sW>@jRaJ{mljY3UrInFd|?6A@P!0)z~>gw z1)obmC;VRl-S9sJOu%aeOu;J!Ou}abOv4KTZNPJZw%`C(;5lscR(bpQ%5N*C;Bo@F ggh_aL^|!+P1xJLbl4jrqTRVTqkD1{8(hI4Pit#}D;9V#81T(xzRjt(7#f=j5iSmii1CT+Dp$#-%f zOENq!UrtUS;iaU3vxj3ne((O|QHckP;9>78bbobyB@`hNa9As7fK)m)^?5MDiW@If z^ZMg;0KmW-_*ZZRry??eLN%`e4q8P3%H=Wu*PB*|z~=IHdCVedC$eEcE-uIp;sw#nskbUGa}+dFuk$8)hY z^)*nW1ES)Q0^-1z z4u}h1Dj-gL;efdDg#sk-xdWu|xdJ5dnE}%HzX2xjKLbqRQv*!m69K02P(Tv6ACMFd zpem&-8_pW7&wXv%wo%-lKrq529$J-BHWBv+_F*XlC$5_!00000NkvXXu0mjfM+v_& literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovel3.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovel3.png new file mode 100644 index 0000000000000000000000000000000000000000..449ea46f1ae2f219bdc16ce6e465c92ca2000153 GIT binary patch literal 458 zcmV;*0X6=KP)0-U)CH{vC@F8qq_q=dhhn|UWo?`;X(H+aDRDqDG(tNuwTt-fJ7=W@wq?3iW<*V zvijq>4?y4TdzXLtry??eTqUak_L>C%N~ID27whMNDTqt}pndkFl9y>Zoelu?dfl7I z=(40X;m-C3-|w$u5k>+W$I*#oiqn@j2HoF?(eaA}IF6%j+vd2{;yRxvy}5{g#x0)=MIP(pDREDpE*DZpD92RpBf;I{~KTe|1-c8J~6-~J{Dja4+O-4djWCb z0IFQfu$Ek*`MIlY+ct`O6Yxiv!~?5b%*5jU0Quu8g2Ln}IRF3v07*qoM6N<$f_3Y` A#Q*>R literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase0.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase0.png new file mode 100644 index 0000000000000000000000000000000000000000..bd15e13a1ec24d53be49231f18c755b39f828e89 GIT binary patch literal 485 zcmVfE_E2qHRm^Wr^3 z=pqq9Bm;sD=yVX5bv6I(&g>p%7JlE%&hA3Ym#__t$72&5OD2=TdcYjkS})B>DZPk< z4ZPiM8?7~+PRARY3c*Ra48WI>e2$DcP6-kD4pggElgVUgHk)+2T>wgzv)Rfg8d13b zAeR6u0se?Wp#Z?mT?0AMe3WMR>7nI-RS}mDPu`qA;J{WuE#E^aMZez%;Pv)u<$YEH z8ug;drX|>V^bxGX z0a~q=P)aS}k?p`H-0Hs|3?4clEFLN#3ViQ?sPMf4qQrL&h#KE1zy`i`fGvEh0Gs&6 z0NeQ502lbb0j}_s0WR^S0N40JKpeOi5El-RXw-{j(^3qE+5k>*{|=B%O9n%2T;jpg bAB+13CEX%;W#m8T00000NkvXXu0mjfq0Psw literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase00.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase00.png new file mode 100644 index 0000000000000000000000000000000000000000..b2268790e6c13e5abecd51936458952431567b4a GIT binary patch literal 474 zcmV<00VV#4P) zK~z}7#nnGggFqa{@#mTfdK#h&VQ5T92*$<1iJh@&!W-y|aOz9oHTW)w490g*2X;f6 zur`eoLnF7GgBB0e{^Rbr@s`h*A9n!syohR`sw&>zGfk5y57@wrvBth(7>$Ub3Ovg) z&KN_U=Z$^e_rVy$`^g2056<0FLZnY12m)?d7UDR@VzB@Kc%BFTJ#KPy4*<9t0!jkJ z2-~&+0F%iCp6B81`U}53`w1AR2$;|3q%2FURx1ENnx-}0UISH!&~Y4y5zh}(eF0Gv zaY`w|FlP)BgDK+D zCa?=v`Y-5$cMj-^cM6b!9~~eIKPo^besF+n{Gb38_}&4k@Vx?5;yVLW<68rC;Qt2b z!v74=iT?`FjW+`N!0Uj%Z~!2)@d%ga242}6r<7{N>j{VvI`PJujYqw>pI7}PCt$0A QTL1t607*qoM6N<$f~#r7cK`qY literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase1.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase1.png new file mode 100644 index 0000000000000000000000000000000000000000..5858a11941131a62fe758c4e84616331dc12abd4 GIT binary patch literal 484 zcmV@}Fjd78iOy?3`9+&lPu-@A8r5c45y1H<7^hp#1*Nnt%;0xP9v#-x;f zM8XE%Znw2kicY8FU;7b)gJKbY4=s8B)_QMS2;(bIE|+yWou*!|)9rQvD3p%IGao5L z=>&k?1Xu|OM&xoi04}a-$dTf;FvbseEC-F%3`_~1)%^UxE)J<+&-^k;AM z5iG(1TCJAwJZ}m&wgSs=tN(&1c;tYnc%%Rm_{IUI@QngY;%f((#@7n4fv+533tuU~ zCcZSlHoh>x1^#bOiHCQ8 aEbcFEydx1e&oz7i0000*2_i! literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase10.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase10.png new file mode 100644 index 0000000000000000000000000000000000000000..016287bfc2505cef79ef7ee75ee52299a4b9015c GIT binary patch literal 477 zcmV<30V4j1P)ioN<8# z(Q%YZAvYQg(fc1naA;|1XlQC{5cd}U4CfZXsWlo-LZbC?Y-_3quh z@yEgE%e(g;q`VB>z<4}Xv$I?-XJ`-jg@Ygn%}vt`MQ91=cDu@TU8Izux$C+B+}`&9 zXf{elCT?5^q3ZQIQc8T^$M<~z6dq9U7C%Ok<}64d7dGJPyn`V({8tU{Wx3rZARB2bR37_aL8aV0N}Lnl3YNwT2+>1 z@wIgsikRJgfUGY3?emckWBOoz@7(b8a1sAQv<#oV9iHbI zvG2etxVB#q1&CjQ=mciX2tBW8lI5-Io72*eQ=^)}45EM7(46afn&_U?vU>Bv38Yq!~>EOB8 zqe*LRo4ZSvz$Ng!{Bsu|!pn{oaUo?V_9unr&CBmf}CJHT~a5(ELtii4Wo zK~3)f0B$dKP;a(l6A=QVW?Z+a< z8_}p#*-^}kz>5V1cissOHm@)UDV}^uKcXZ)3`b}=Z)AKrG)=?T`Vk)Q_XziZdHCcJ zbzPTmpTHuxuuqT%PaTjJPZhueUpasmzES{BeCYt*_)-BP@Pz|J;R^+b#QzNtjn55` zf&UpG3!fPv6Q2r@jmHAAz*#_6H~{VlPtSE?9~$B`sSgxds~c0ZcJ zqpu;|-`OpreRqWOs{x$^^9h)y8GXK7U^KB(&u%YuSf@{P5&%$O9pJhy34#FSQX7WW zgQ4{R01r2ZXtX+siEs&sNBF)E05G&38m-RUcMH4@p{lBwjSv=4uh%14mhruDl8Bfd zM7>g_SFy+ofBiVX{$3YhsKWC+F+ZX-9>Q@PGQAy&qTpxi49}0pgn7UsJbp!8*Cos+ zunf-a6J)_N2V})F1+c)^4q%0^6~Gc-Ie<03QUDKp=>T5%QUN^ie*<{q3j;*pe+G!c z=LU$xQvss!L_i)m4af@z0AgDjwl_=YPHK@X%R+HFfp~;SJh5y`%fEq#MdU3`SnM{xErIu=JahoE#8jtm_{q#%|^(FWn1EJ@VbHo41< zxBUM3@+FY*F;oM~k+y9kgoxbRwhh2jzYoCi zXk_Hl#vR9z!{HDi1fJ*Nc^&`~5JGU%Zu2mms@(y{ab&4fqE@Q`(Cv0|!s92WY6;J(Z-gW6TP=M7gHBx@TJKz(`jLqE_yO`N z@QP(}u)oLi>j&r6Pwrkc{fOfDd=YSY{b+<2^Qv54J$+tZ`;kvGo`UEz?mA!%_ zc;bMhc%pzb@SOwF!gmTt6W=-@ZG5W$75K&hs_=~hRO0^zsK(a@=)nIB(1rgRpcDTQ zpc{__WPz^&vcduKgHD}_Wg7EEAOWp-cmh-`lldZ$I`R1SXX1VVM2aoaoS5O#00000 LNkvXXu0mjflLFDm literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase14.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase14.png new file mode 100644 index 0000000000000000000000000000000000000000..2a537e052a8e6a61bf8cf626d14efd5ceb77c905 GIT binary patch literal 457 zcmV;)0XF`LP)3JSPh|Im`c>sJ)rvN<6=T=2E z?)$zBf&d`|Q4|qH5dabpLh#b>^Re0J-2vbCWxZaf*=zzZ8ja|7ySz>&0NmGVJht0< zCIAqIp|#)d+3j`!ESJj!&!38}C3Ibvbi{kFXD(no9!tk@7z_rPi2V2gZgkw_7tmqC9>$99S$CR(dg?8;#`Yl?I%`(_cpzhL-XPoP%q71x4_}0Y&jb0V?pT z161Kx1*pU?4p5C>6rck?J3tqHR)9|Y-vHhC$p91hp8=-uUjt0yKLSkSnSe6zB%mxD zz?uzP+}+x|#ZS_49HV$LfpmmPJacBlRw?cm%+D!gbq*9+00000NkvXXu0mjf+u*&s literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase15.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase15.png new file mode 100644 index 0000000000000000000000000000000000000000..13e08493b2237a2724c40b4629450bd5d634b86b GIT binary patch literal 468 zcmV;_0W1EAP)Dp?*`$-;fn;#1W9Mv{x;Q!a8Ju1E0Npxwv{Q$}K7e$qAR+;=jSbo$oKr#)tG3PE z<;ElM`SQ=*0R=B28<;r`&+eTJhp}6h4L{81sr{B^VZB~+P1A_93CtXaNATln74IKc ztGFDG@!ajklMp@u+qU`ja*0j?j+WW)d-#S1RzEyxs{NDiC_@4nP@LvN|;Tr=~;y(gZ zg%3Bb@RSOg(giDyrLA?`Q9&M>YmuAia+0000< KMNUMnLSTZ3V9Fu@ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase16.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase16.png new file mode 100644 index 0000000000000000000000000000000000000000..8d144d98b78c79ab9b35e84cdd9fd4df8383633f GIT binary patch literal 457 zcmV;)0XF`LP)o!{Mj*}OX z&o_VW4rqB1(ZI&@vg+Q$a>?ATX!w1*E$t5t1EAuYgl-Aq+gIF3__$PePsFxXY>io#9PL>$MU zlw!Br$$5yXc$%gNf`H_=L(?=o_xq)Xh{(W;S2PSm!hHgDaACio3EnuMDc&f62Yz(` zFZ`+ip7_N9yzz?yMBudpMB%jpMB@Jjh{pd6kb(aiAPYYmAQS%)AR8|Qw1KmLwr~I- zv+)3Tw>NnEddyT+m5Q?o6eDEfr8OH5T5-PtN+K*kzwLk=00000NkvXXu0mjfW}m;^ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase17.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase17.png new file mode 100644 index 0000000000000000000000000000000000000000..116449803fd0f66c21bcb88fbbd54eb9b49d7dfd GIT binary patch literal 459 zcmV;+0W|)JP)0>^(=-ziN&=S4rF0wzAw=TdaU1}?Mk4?orc_R4t)x+r%S2IvsrhgTX*rmc`3%mxxG@AK*q6{=8bT zXt%M0fX!y3=SP&rgCJlwn;G%Ne67`@r_VLu6dwONJkK+7pTIe|vR9A=&m52y&lHdc zesw@z_*DUU;uiaj#K``wgSyERya+aghK3002ovPDHLkV1f!2 BzM}vD literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase18.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase18.png new file mode 100644 index 0000000000000000000000000000000000000000..1f701a249087c6404b906de88c3d4fdbf310cf33 GIT binary patch literal 459 zcmV;+0W|)JP)S{2PtE!+uR4#R$SqKi&kTAm(7hv5+%iVGE zLh`)%b9X??i|_{aww+b?ZdWVnc6r0^heK(9tZ7KoG?OHWaGSv1wzC}mI3DT#sMo{e zdX3N7j82021PsH-o}&n60nXQOvB2AON+$sT9o7M!=aD#$@j4vB*LC>14gh#qF0pZ( z(nPof6eGeg1OWKDj*a7-{Ijx~*5#V#-Wez(JR zGJ%>T2!cS&LsZ3+B!TO?B)=VsqTr?9FFiy=1YW$Np63zf6R3l8`vpz##sN+7Mgc7F zivw8U7X`4y&kkUXpB2CZuN}Y(uNA-(|2Kd){%3#){MP_c_{ji~_>Tb5cqyO_oCdUo z0|1$u1KeC+Vf%HL$+9dIrxPefh{Q{4ZVp;;zX2gPFK(>M7@zRzHxwTe4_vr_}T%g@U;R|;wuAG<4Xf{;Qt2b!WRbU#Qy~7#w!7B;AKEt yH~^5*(7~W@U@~QVcGZT96DT8e;`P(tiu(;SRVgdPO=+h900008a=Xq4E zR^hrX0N~{E8vAdLc-}plPGWny6-`?RwnMlmBH4<$0D~)_RUbl13E%et0C(qS3-4nI z=(Zc=ludLFr4o^TdY0F4hVRsDypJYm)g>N28+txOX*>vHT-*-D{F%7AxmP|!h7KG6 zdcB^IQYv_E6Ih0`{tL3;nFF%onF8{_Hx9@P-zXqYeC>d|@wEat@Rb9&@Rb5M@udOW z_`d-<@IM1|;R^$F;=clP<4QmgcoI+)4gjTYy8)+ciXe;$fL45d0&vPEf-okXc>44g a;(i0%XC%jKmCg|W0000~}L#i>Ftw_FEp%%$3Yxx3tW z%jcV4?h>HkMN|WMp7ZLSX_`cNzyfBB3Hyd&2oY@+cpS%^F@_{bgnid_!5G8G-XY$; zI6vzUB7Fj$=kad0iy#P)rYQixaUAfUag+0F0Kjn@P!dp%uq+DzFc=KrI1XM;X4J$#J3KRjc*m80^c}56~0k`N_=gAYJ6pY4*cH$UHG2?I`O3d-MA3Y1YQI* zg#!Q?_Io%wFfeA9oKmV4FD6iq(1{Cc*zYys&HGz-#bb5E+c`fDWXqAtbI1aVZ0lTh2j?fZBiD9XH>s7ytm*bzxZ+UeCYqtD~QQ zfrx-8ib$U4$g&Io5Qbrex7R?_Av8@B^@!((dwBt#=P^ywaJO7GBHH5@atl`Y?R<{e zcnq^BuvjeQe2Ch3Q4|P*fYcA>o~UwY{G^93%cN)1G?g!0(jti z2k^r83gC(F9KajjDL@3ib$}>*s{oPs#sJay+5j2&zX7uFKLcdqzXD|AjetJzDxfbM z0LXMQ!s)Ss8NFtjrb)%C3DhHG;*B+(jCyfD0WT6KRjN{0CjbBd07*qoM6N<$f||m_ AM*si- literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase22.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase22.png new file mode 100644 index 0000000000000000000000000000000000000000..285e241ec6da0090988078fafc8611eb9bb1ece9 GIT binary patch literal 460 zcmV;-0WJts&X76`@$0Kav z6K_lTXcA7^xKfJFjt|l7nK+0*Pxp8hd1ERp6HrP~p-_PD`v8EWiz{ru+~IL^e=v!a z!J{a7La@DraS_p@7zuE=0)ilb)*78o2LNz$ej0lnOF*SkAt@z3yb~j0{O(yk!y*3g zdVsx+2D;qh-$NS{rz36PSjx{tJ@ei35`2 zi2~BV7Y;}ZUnn3=eC~j>@woyx@Rma_`d-*@IM1=;jsZW@reN2xDk*A z9tC8D1AwTOi&$G-M&oOjq?A_iXab`VHgRKB%f(FGAEsU-j*M7qUjP6A07*qoM6N<$ Eg3IN>VgLXD literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase24.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase24.png new file mode 100644 index 0000000000000000000000000000000000000000..407c88889702d17162c93c6062812eda10bd7248 GIT binary patch literal 462 zcmV;<0WtoGP)xKuSsFav84c0szjgZ*lPYh^M{d=_IzM zkD^)>g6$k^lez07*qoM6N<$ Eg2IZ#jQ{`u literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase25.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase25.png new file mode 100644 index 0000000000000000000000000000000000000000..1454c1a52a26023936369c1ec8d84a477a4f63cd GIT binary patch literal 495 zcmViC?c33 z-O??Y+-Nie@8%yMZqeA#P)l2bxHJXgpU~*sC>4!GkPs5BFIO&3LL`Ea2lBR*=w;@Q zdry~xmxIsOhv)8K#Xmzg(C_z^_beKX8rlPXVApkrXM@3jSS&Ucp(UWvXeisZky4JG z+qMnB$$1liY9(ug{Kkb4s#Gc=rNnU@9LE7b0a8lxhqpA}q~0A6La0O{foYlm6bc10 znG6S~4*;arH`q+uR4Z8{tRtXauNy)L1z?&cwOWnm*6zf6L%NnQmuk`Nc4@cU0PI*# z!37lamP*DWoZUQ*MR>;#5Y~lnU%c{iyhSeMa`$cp^CI%%ot{hOs%4BW=I7cG_m_Ky zma&)j)9U&|sq%hW74w#w^mJ&Mz_fp^{adgMzI4E{_)-CW;0p)%g)bD~Cq8$8-}qbs zI`EkTbm21v=*0gG(2Y+G2m=2zASirdK#=&afS~cQfK}kbfK}lDMlo-Zj7RA7T=jho l3?H4qFd|6YyZtM1zW~XXEi$g;t-SyM002ovPDHLkV1f|p+o}Kn literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase26.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase26.png new file mode 100644 index 0000000000000000000000000000000000000000..6b1d5c54fb1b5cf62ef10f5716224ff54902d29d GIT binary patch literal 480 zcmV<60U!Q}P)iBwk=a zbR6VT$c=(S^!^7C9BOT7XliQ^_ZI&Q=N7@KH5yJr+#g3S4dUo<-gCJPU=JPrEd_EMRC7|E$E5~t=QikS^;{fpR zGz6gCDjS)&aUq0iHk(K(@jMUD^8iqQl#=S*3&Rho_Y4RjRH0D7vMc~TiQC6F z08UQNIKOacx5`FVM}X_Ph7dvlSe8Y%+hy>1x%S(Pu0v?sHj~MO@pueCrTCs)K)qg9 zrfG6Bn}s4)w;v#@3%?o+=v6A%zRzehO6DP2#eLtW)9Dz?2lMObp4aE=_#dK8`10*= zUDt?x2e!er{emcXy;-#H*|e5U{%_|^fs@T~%L;{OKd#y18e zf&Uqh6uvefN&Htp(s(E!4SW%h77k!Eszr_u59kGDWtwK9_+kf^Ba*~Jt5Gec;(h~* Woh@2o@1}H=X-zNJAsIQ3N=u++T6c(RofJ9oEq-Fy?WNOdJg09m?shmg=_+4tIb`w z|M@P~we<|@mpeE-?TSf+J^{lp_{Z}R`i?nu@BBCmbMIbE0svxR2Q-^aWjGunqt=mU zE#z4X0C0V_jZ&rInFvY1WQ1+o0DwGep;T$id^Se42@6^e{s?ISmdSWJsp91B$rIsj z#H^kZM=?%?Z(Vfoa6P)Cmx|$qw!gSvu(2f`gM=h4=wn9K>%R=<3p?gR68%$x!I%U?(v|x?~8p6wWC} zlh)cccb6M4f#>C)y8t;aA{%HsBbMHKx~p@yC>tJsyeIa}Y7Nurl$Fb6B5eX~XT)N7 z^8Ly8505J7J)Yv~cFZRsd;*O|gMAIJF`3y*&mL|}*cY#S5&%#T9pJhy3BwSTQV*8l z!7@Am!1MhHTAhAkB2oetBZ43R09b~HR;R!6-GZz`sOvh?5y}FZ%_gIi;(R_&M8pTt ztk(EdEXu-k{D; z*aVmM39{gs1G3_o0z}|D2Z+LV3J{5J9UvOtDnJIlaeyp*qX3!szX7uGwE-&dKLb?Z zD+5&GO986!L_i)m56BA#0OHsN4)#hI%<7C%subrFSd37KCzfLyxwyaIb}#m9pU(*Z O0000g43oOAwbRH@I7&6OMG4{16g*tu5Dii!f`d2owAA5UX8yV7 zxo0_eme2Qj_}v{uybRUAY&Mg@y?8usC=d97UDx&Po2KcDP!cd045VdQ2qAp?mSq9( z+H3-F(Cr$ruyNbAWxL%*2!Z1`IF18=1cVUWR4P0ThiYfQwr!b8rO4%S0Mu$VN~IFF zjRpXF$s~t`f|?ru==b}^WHMni8UfJj^*lVdVycGF&b~1p@lY=73usmIayRkG>Gi!Y zB6$4(J1X!@!sO`Una7iTjYDoL#;c^MiSwPJ5>h{p6i`QC@vW*{K(0 ztD2XK-VP-!I`QE2N8)|~ XamX!Y7ljZD00000NkvXXu0mjf{v6U= literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase3.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase3.png new file mode 100644 index 0000000000000000000000000000000000000000..04c80bb1fac3aac790f0e0e55c2d07b356345be4 GIT binary patch literal 479 zcmV<50U-W~P)kq04o;cy55xVt>hy^bZI z+wGE+676 z6ZoG2rtsVVllZRy)3_E;1)c;{g#&=-bz0cj-o(T7h@_N8@niz&2$Q(BdYx7!?l)Qn VAxG!Z_5A<<002ovPDHLkV1f*7%y$3) literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase30.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase30.png new file mode 100644 index 0000000000000000000000000000000000000000..bd0fda0073999d1b532c45a29fde7268c8d63d18 GIT binary patch literal 465 zcmV;?0WSWDP){+Q)va|<$!%-Ba&TZRHMQ90_PN&j!U4#&+bJukNcpeM@ zI2n(vJ=M79d2%!wA%q|Z0)ij_KmtMtZaW%Z*a6oJP9Md1L}u-l+swwW&@`E@sjCnpd`n8dT&Ux@n&Wc@EuDG+BD00000NkvXX Hu0mjfa<;=z literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase31.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase31.png new file mode 100644 index 0000000000000000000000000000000000000000..041db6a7e529c5247e74910db4c3ad98f69e7796 GIT binary patch literal 459 zcmV;+0W|)JP)aA;;%5nKyS{t5AS^k=vT&fPjhibJQuk->(r2FYt`f~H{SBR z`SK-@^AWm%?RKkn?~28u&>rvuhhdnww=63Wp(S88n<>|Iky0k^UDpL*(eDFrHyVjT z*0|?+YB(Gsr6dRff*=4u0a8j{TP;54bGcKQwOBQQw3y! zpB<1DepW!1_{jlT<0l2^z>f~lg&!556aP0rH-0d{1pa4$Dg4&}llWeMX*>~-2Ob6F zg#(B|yTSq7|002ovPDHLkV1lJ} B#1jAj literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase32.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase32.png new file mode 100644 index 0000000000000000000000000000000000000000..0b77c84876e67a027f16973ec1d7e5b4b27bdc50 GIT binary patch literal 479 zcmV<50U-W~P)=5TYlp2CbCaUsr{OTLUNQ{K=W|M@(~7VO3>=4i_+>g} z>-(7uPCFgERjX_g+$UgJ7M)Kfu$N%}(i;ujmCI}r0FdAv(ChUS&-2jMb@WXWebWR0 zoHU#0x^7@1LIRc}Mxzk`pl_P!y6(zn6QVYum48P#LRvu0F3_I(g^SyVK!m>$ONPOY zVp0U2Q&Tv)e#Yb30gm&8`wvMUqA)(5EpXX>Rs7STX&SDw*}#X0D_*Y@>E@HDUMW(| zF3_qYDr5rd-dy;$kw@|or(nV0Mf03I7EduwnI92F6KyL)wH?0 z+!8nfpD+L11*mut(ZJksXnyZ}JZ5fPH2k<&WcIs;fjEw-q9{bz1m=!I6ZmPpX8UK& zCN8H_y!88Q65Jji_q`sQ1OU`{2l&2EqA0>d*AbW|0@DNlTzDR4 zuA7;NkbrbV7={3Vz%(&)-JS2&L>)rw_zn38X#qpKLr>LDd>mb6B9epHH4JtY>mu;B z+JF~c!#%mh>xSatUDA&zk1sb{+)SQHayv9l!(FSD`4JHrc>0R^zE8MMpa?GP6O_SA z2b9H21@OQR4&a3!6u=YTJAgO7SAYn-aDXVhP=HAM-vH70p8+!PUjt;}I|F3mKLTXq znSd&A7El!q0Ay%)&{i8*ZnpIMDGg6gfJMl}^QXTO_Y2}dGA-2jODq5Y002ovPDHLk FV1iFW#GC*C literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase34.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase34.png new file mode 100644 index 0000000000000000000000000000000000000000..c55305df8e434032ee6bd737ac07763efa818316 GIT binary patch literal 458 zcmV;*0X6=KP)HR zh2(kj=k9=p7vT*o9Vgq}yO~a@+vW{_tX8G{zOExp(@c^i!fgUe$H{W|bGxPc*PRX? zXEUsaLpllO6EICPd){nd72ten<1yX_13C!+Xt56PeV@c}j8{!VU>FDt0|4+anPBd^ zrHOC}C`Lq41ONyO19R6s_-%{VAyicryAi?yY}?LcS;p7-Qz;@ph<#nBSFz0te_!9@ z?rMP~Q4xlrn1^T|PvChT$!~|ED0u01OAiqdffui+@B4)L1ghZNenB0)c0gUcRsak9 zs&_FRk zsv#wHuptoQ7KgURTe~3$hlZx2!NGr^#j(v*Y;$&KaR`Y6|A27HpcYL~Q%DD|p*+;g zOz)ky96Sy_Uw-esgB3qQHc-(tV{&aTpEun#+3;hvYOW1{{ZNQruV=ViE+K6K6-_gS z@N=hQuJ3w092JXPTt5MjO~-`g6Nty-#$~I8Is$)fwjh|vpq||U5ROCva9ACn>$+&S z+Z2L9%8Ei+Q2;p1?g8)XCu0!+{>>f2kto@8Oh~zgDK%jD+)i$5SDbF$Q12Q%G;I12P2$aNpLF3x z3~z_m>*ZtPocsK-usmQEK6*uUT^E*5U>;oB7A%7=9k49ERDc!u!U0y{3k6t-|2x2H z{9gew@VNtI;d2GZ#QzMCjn53Q1OGL^E_`Z$o%oLcyYaDrRp4g8s&D|2QUmzhPMY1m o@%^?9ADw_1VJAL$`d8w90>`2>Mi>h38UO$Q07*qoM6N<$f-TF`DF6Tf literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase36.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase36.png new file mode 100644 index 0000000000000000000000000000000000000000..b31ced5c21ed90b773bdc7aa881f47a3e794f6c6 GIT binary patch literal 500 zcmV zxz!r3@4MZc6$)J6J^_$PMTO}TP*v5qX*AGA;Ge@51k!1=i#q^9;RpaWvjcQp7tLmq zd>}wcQ79=20H@h3@kEi@`|H?#n~WnEL{zI)07{BNJW-sw*Cy){s=g0KBaZzg>jILR z-`H{WxjJf&MF9A=_Xvd}WKvNf+pCybT%)!&z%d?17_i)PgK`+VfqB-!KEF+D)`C)tKusKn1L@HU>3eqfSLHh0cPV1 z1<1hX4v>Y<6(AG;H$XN%Gr$V`&j73NsR35vzXGhr#{$-Y4+GYP1K5+AAFsg}EZ qSc;EM0I$nIz1=gc#3yh6THJ4Lx-!B_M&V%q0000sLDVem~G1c&Gp9cDseL3FIRY z*?=G3->vo8i3v8+Y4(op0f@&!!uAP-!(qAq_J+{}e?M$N;N%2j`vQRZ;35Dny92V> ztf*8fqyhnQx=v2l0a#BYh#q7pJwLTv?^5vy8WF`}5rCYo6Ftauyw;`aB@FvtXpUIb za?S;qh9;*ypB$cFw?qK=r)HQBE)tK0gpzG&8k+QZ##uSN<7Rh(HNWJl4j;3WPlz-hcCU=+9& zFe)5Cn1+VWGfuf$mp^C6@a73v5l-UmZ~sW#FVt-^S`3P-l>h($07*qoM6N<$f=s&J AmH+?% literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase38.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase38.png new file mode 100644 index 0000000000000000000000000000000000000000..1a2acb53ab649dcee766f872b26bd0fcf16fd922 GIT binary patch literal 494 zcmVgaf?ISjV=zkIy5xZJ+ih>}3pk6#7>!15Fc=idCeX@e z-7)+!7DusYLqf0RSVO03aYcz_xAC z@AtWnMroQRP16M6qEaE3Z}9&1I(0sv;tIwQ-EJ3vrfHJPH|CxVsQL(XU1u`lJks

    H(*;n6WhJVCjb6iS}q7&i<9$8pegold9Y&yQ#p9}b7qYBe!_9pP}8 zkNs;NtCvE0z#@F|iQ2X;q)%WOT-gE3GVzrIWaBFZsKA#F zP=zlQpc4N#KsCNFzz_V-0Kf3L0e<4Y0{q6O0=9vB0o%d>L?IpFU~iYF&!nqqnyET^ssI20 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase39.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase39.png new file mode 100644 index 0000000000000000000000000000000000000000..486b3a468c329b2a06aa2f5161933efa82c12510 GIT binary patch literal 496 zcmVs& zLFCUp#}l7D+vmIAbI-womyiwAG|l|Iw_7S%?viZypJb^|~p8Uw)Nbbzkw zqTOzD9SUKnDu${8a8xXk&Qy7OeYTzV$hd-jM6=lhz))4vnd->19$6n@AP`_M;vi_a z7m!M&Ohr+6Upci!0Bme-6N$zsS0000eR;EP*5N`R2(b0a88$H_#gsMb~Nt5x7}y_~TPu-^c>K z?^8aX7i<&gjfrM(cl5KqTOe%1!`oUZm_$Z5E~TXA(E++66$cUM=^oFbq)dfn0#Zt{ zEDN@60{{-sFR=4^hsVwR=_J;tkD^u(f^8GVMFfu`6p-Nxs8{-MT^EDF007WAIgY)K zC7{))Qn{GJY3Ejnh~7QRYdFLA+Anx$ZlPY8;O4z*=0g<4hu#EdSA7xQ6Ya}uopGXMYp literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase40.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase40.png new file mode 100644 index 0000000000000000000000000000000000000000..fa36c8b7b29b1397801eec032b998314aded43cb GIT binary patch literal 496 zcmV0$~5(kXSrHrIZv>p5X*P?R03RQiKeHe!uU|k7yP*41;>TE+(%d z7!2~Ud(C6*LO33<2)92`P1A(q6Ice9b_JW@8wYHPZxrAJzIK39_*wx@;wuL@jjt3S z17A8o7QR$~O#I&f+4#Z$H}F3L+`{JuxQYJ?a2uZr@B+62yutxQF%xEQXPee%(o_`1 mRot3@J;F_VY85kKPuy literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase41.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase41.png new file mode 100644 index 0000000000000000000000000000000000000000..618357a35f2ae603847ab4c6e6d94e47d7f0f705 GIT binary patch literal 481 zcmV<70UrK|P)IEE0;B`pRGAx3&ArG#%obevcD^WN7R z-{teY=bpQR1z$onP_r!QJ=-dk95<*MzOUDvvjMP^PSfl4WH=la$|g{=EcpXJbvn-Z zW;DuCxlD5@3P2_zgzpnDO;et>+vHp@0D%DOg#wQv3ZIY&D%=6nG-WInBbiJBuwSim zSS<3eu?N8R@^?TcB1Aw%K&4Uw$yH;( z$*w&V;T^w{*D#+;$+!_>EfL}6?Sq4rcWz%beTckxtJ~-N>RGrK^WyTxxqDw9!6@9l zm~Py+35>&){tM>8=MI<`pDVx*eC7bZ@RcqX*orlQAX^5|a*Y9a&g9`VkzQ_$s)wu@D#I!i+J@N*utA5Elp`!5HgcXi8Q7wRgSo zmfzF2ZvhfMLN?HGT`zohT(A3XN;dr5>-l$Iz-ghtbUO9Y>9mkGfsX5XGx%*h_V14j z1E<;KeaisA$_Nqr1Z>;(u7^WP0T=*Hj^j9U z5#jMm`3z^cWm$B)T};!Y-|wsWAqwM@$%ICuA%cr}d-vc!eXOrw5guI3ARgNUmf=$W z3!>nW1ES)Q0^-0o4u}iiC?HOJ?SQ!PwE|?|D+kEJR|=4cFAb25FAPwD{~MqR|1&@( z{wqK=J{OP#?gu1=1Bgl~&))7fj~{2AuIoy1e*(b>mH6DLl=6wV-{62F_)sq@0RR91 M07*qoM6N<$g6`GHng9R* literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase43.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase43.png new file mode 100644 index 0000000000000000000000000000000000000000..225d3c02a8ccbbadac63627d54f403269b1e9956 GIT binary patch literal 479 zcmV<50U-W~P)p`RT+ICCwf*fqeFWoh z=VCf>&nEC6uJpfP9(?YAdGWadyufD;@Cu(Pz)O7U0I%_>0#x7=2dKg)3Q&pv8=x8= z8=wRKGe8&qYk*GtM}Tg8Bw!J^9k3`IKxC~1(QtrPZy>)uwc*YQ*bzE$_x3Nu{QzjC VDEc<)Xj=dP002ovPDHLkV1iqd&f@?8 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase44.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase44.png new file mode 100644 index 0000000000000000000000000000000000000000..e33b4a2dd4baa7406971d67ea80d0e59e7083415 GIT binary patch literal 477 zcmV<30V4j1P)Um>M2p z1h!b|6w#IhH?%e0>=4wS5Ygn{(AZ|Xn_Cdk;uu0Wm$Vo(T?T48DB;^s9p_d4x_j^5 zMR=Fb*XN#72>A%rK%-EQ?z^o@#dagA;fH3^z8e8M*(`&>K*nM*p=<(;LP7q(&%K^~ zzp3jSRI9X>bO3U3A$*^JVHonH)4_DW0B9QPr4mmf7EE`+8cpjNAiZnukNSpeMU^EU22nyMuBN1Tz%*Rxe}Na=bAVUeQ-B}%!U2Ba3kCRz&mG`5K39MWeC7aE_)GyR@u>l-@reOJ z;Qs~$h5s24B>pQPXnZUn4BQR~3kMKIGeas7rQILO@6W(+=LGDCAaVEhhvI$$c&;hs T#q+lF00000NkvXXu0mjfkx|j^ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase45.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase45.png new file mode 100644 index 0000000000000000000000000000000000000000..c23074f31d7c5b0a57b93cec9b4c554dd2db0210 GIT binary patch literal 474 zcmV<00VV#4P)USlV?+ zEpmjFP7y&t65Y_&=;CriLw`a;lmCkCZZ6UiEzU|fG?ld25+W^{2u5@b;c;sD>+XH; z9pB~iz2}}&2>A%vK*P43@w>fJ$#o;L;iqQPz550ZQYi+5ffJ2Jg|rDYY}*;auf3jo zziSwrS1P=(7yzVWLIgem%d(uSPKT@q20+u;E);kX27JM0MB)xumgU6baT19H04Mc2 zXT>7VJI4U*ul)w3V?t;$0;<)j=ytob+id_IG8q>iKbov1G))t4#NG9!x`13R=jgi5 zN9W`JybYJdv--vCwk zp8+cIi2&93NI)348xR%_AoAHH8|$moJ`WvT*OlV#1iTR{@sX3yCPQ(504(PwKfAxv Qc>n+a07*qoM6N<$f<0Kv7ytkO literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase46.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase46.png new file mode 100644 index 0000000000000000000000000000000000000000..794b15d1f76d242eb91ac4dc61b19613840b6216 GIT binary patch literal 473 zcmV;~0Ve*5P)a|R;wjOqY=a55P+v*(Z&5ok+p=nuH%h(xV?@ppj<9Hs;Y8j zSu+v-@k{v(r}%ldOS@1&w`~T4K{P)^e%!Wg8jXhVF6Q0+qx60de5~qEgDTv%N|C8ang^xCr(o2t|AYQg9GDiGwaJNNlkLf+mCKP>k2q z{>|Ox#=F4ho69eNgjFt=m2qc8G+uF9G`@FT-H+U?X!!Nzd1!xYdj~-f&|EG@gxx^J zY0+P}_uh&2i>n)GT%Dr3v@(dv6T&^fvMj1;8akmpa#pXEKz5G+0EMie05-xf3;@7m z`xy0F2~V2?d~f+LAR{86*=!Qe^WeHJ0N~Jki17Hzh#Eqx*aaJLdvPW&z_Crbrheo6 zz#EE)U%!yw(6LRbs|wZ&dAxmm;iUM9``-BHiAcQfhp0B%gdNPwo4e@kxqgC4I6Igu z&g}-K;gc3g6HgqF6i*bu17A3R7rsycPkinG-uPSrBJi05MBy_9h{UG`h{h)d$iT-2 z$in{(kcp23$i{~P(!isDv~U2(I<^U2RY>0tDFCTBdjrr_1${rHGV%EIr{ewqCF3O# TX%XtW00000NkvXXu0mjfUtQ1T literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase48.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase48.png new file mode 100644 index 0000000000000000000000000000000000000000..82ee0ce9136cc2e43af5b9acbfe096ba4499aeb9 GIT binary patch literal 471 zcmV;|0Vw{7P)$`jVc(}d5_uAGdW}Oi30j6nERaG$4UQTSW|BJr64qVe1S8TixyS@^#J zGVzH3*?20T2s{ZW3I_mUw{&c8R`5KmQ$iiH5i;@A*e$&f_ZQ}!AgBnbm0SP- N002ovPDHLkV1n8F#@7G< literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase49.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase49.png new file mode 100644 index 0000000000000000000000000000000000000000..3d73a5f56cdf4f68766b82019dbecebc0fa21005 GIT binary patch literal 474 zcmV<00VV#4P)} zveV$daJStG_lp}_sNbBTv$8gf$uTB8z%)&s&*#w^SY!8U)e_kLF#upaOB4`|&~+UE z@X|a%ty;qC_7Fc<{R_xY1h}rt`u#pU&jSD)8P6deUm2=HXcjw&Mm$`e%L{NUgKuhI z_{^P+M8wBW@*6sq!3&y#JMRLveucKr@zhOzo>AgGe}GE8$)X4I`u;I|d!e6T5*|I6 zQC!#rrs0zoOA}u@U|D>r01^1Y0iy7Q0z~3-2Z+Y!3ZTGe4xqwk3ZTTN22kS@17zTd z0kZIa17zZ30kZLtfHd$hAT1mKm}40zXbO7%fd5>j;n4|%5i;@k=}*P|27b#Xl^Ow- QX8-^I07*qoM6N<$f}tzNKmY&$ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase5.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase5.png new file mode 100644 index 0000000000000000000000000000000000000000..90a9e0655c35ac78f4194fb8781d7e7f8e12f21c GIT binary patch literal 501 zcmVH8#)S~7*=!=E#C2U<*9AZUQc7y4xAdN+-W?D^ zs6wHDWmy2!>vbxX3MZHM0F*X&*xj>fx2i@~M}Xrvh7dvlSe8Yn)8VOqIP=|%t|b(u zS3J*SFc<)EP<~77nad&+j|3x$ppZ+@>$1!3*fkkj_pCAezIUp(?DIgAf<$$>Gl>*|#mkx*< zUn)QczHoppe4zlH_`d;C}`rh0hE~68{yDG#&^@1OEv~3kS$HYGsOf(-@9? r1tf}3p8&-nQX4oE)jhEayi?7{W=0Z0u8-9CjMAo-=b`b;t(=?4pJAsm0 zXMOnlvl*_ht#9J)`V?Oa%e|N^A;JUl`8?Bg9nEfWV6Rdxfb1Os09MnI0{95SFaQ8g z@5iW=3wYV;;rok!0Vx>)p68KHr-OF84FEW_9z#4nDOs1$G)?dk_ZR2t0&Lr6lv4a; z&ms}=o2;1dVP!Y2xliH{ACjgJgafe#H(h5s9% z5+4XqjYk5Kz{7x~Z~!1~(Zb472DNUEQA(BK;R)~&D)Gp;MJo~a7c&GR?{S@t2LJ#7 M07*qoM6N<$f}R_~J^%m! literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase51.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase51.png new file mode 100644 index 0000000000000000000000000000000000000000..a515f3f56b53677c7e7a7de8f1db36640a86e95c GIT binary patch literal 474 zcmV<00VV#4P)3R8U+L1tCaxhrESKM`x#O?j8C9x(N0q2&MQ2wBR6i5}~@ZOKqVPIwXVVP(3fH z{hPbXErCnm^UW_8K*7r8a@x3iL^hsx>omM~TR3EHQa1eY{ubEZ-r0lac{G(u5or_1 zyLI{tcRyQf-&o&7<>nlnrPX1~G9khPY}=-~uA}8UBlpV1EXe)|0AMXCDS(eKO%nj{ z+&o3On8oYX5IXeO=UsMNsAUNrpq@g7@0JUYf;FbIpqA`x~1 zb*mkY;h(QATi@N=$J6~KzSp)!G3$hI52#csp`s}04r>#8%|;dErjILp65Zzk0^-;K>*vfN%UggJ-)D~=lTlL@aV;i;@nPP z7M?aFOMK;kRq>Sqc;HJ1@WPi0;E69Bz#CsEKmHO)k0dBk;Uj?hXoG!Za|S&-Lo8TrLaa0Y7jY$BDURS&0ZE z0i)4K`@WA-DlzwcAAq}u2!MXCE)KHBrIfnc?V^+-3`4>&1V95yDVjG=L?6oR8IV%y zN~MD1H~_R-Eo!wI*Y_^~oSdHFo%{5Abx|@A5CnmcQfdIlaTpGVynkM<{r14rA#`1r z>2%6uG6CSC`j%fnyWQ5dZPREp5)rH04^T3Nd!9!WMYyiZcs$PMAzH;}vl)ZIKrA23 zucKR@AFr~1h&JKNw<8Dwk@*g6gB$w=Y4FqmY4KD6S>SsIWQFe)kR`rzK-Tz90VeRR z15Dvt1(?MD4KR&w49EljGaxT~Z9ty*uYkPqL_iVvBA_T7Ky;c_jt?zf{8Vm_OPXGV_07*qoM6N<$f){hgv;Y7A literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase7.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customIronShovelCase7.png new file mode 100644 index 0000000000000000000000000000000000000000..6eaf0bec7c85f234a8524a1c7db982ea64f2676d GIT binary patch literal 496 zcmVciT(fp0ewkC zK~z}7#ndrN!$2H|;op^z2!R?YqR=eq&{63Y#N8pQa|;f-xK)TBz@>xu4Fp}CJGe@b zKnJ0tgIyF$v{(YcHiPHXkfgPy&D|yACGfob?=C>j58(|o>>f?7-L!T>SK1a=uzPe04?o_*_0nb;?dt=aUi8CBFrR>Fn)LnY48y>hd3SYgz&g4Q zCjkHj)&Y*=5YO{amfNW5UDWh00O0m=AN6J@HW4lX(FoUd0RT0%}6b2hpfh!>cIqz%^CI_Qo0pUt{c*zVSE|^dm~*BR@c^{Ys{{ zqgX6rync*_yFF(0epHOgfEDo+B z5|HA41iN&K3Z+u889Wy)O{}$Ta!HoJ5qMtiz8s|d7`lP+c&x%}xm?cB9`FPEz8_dO zO*0UoC7|2wD%-Y^QU=y-+XmqDq6a{`RW&kk<3b44Y&MZn;<_%b>jIzvDJ8YzTYAq@ z?+gebRH0D7vMd1V^*WVGg`@L(07@HMZ132#TU8^gBfxPSLkOV&EX$(P>G0IwoB3@< z*AR-*E5qRs&+`D-Ek7m~(5RKwX8x1+wSz!Jc>4jeI`CrNA%Bq93%D}SOnL01X1wF0a5Wt0de3f2gHT16c8uA zbU@trQUN;fg#&cq3kB%J{|(TM&kaZd|1%&dd}ctB_^*JZ@jyTt_#_}L9KdMQ$`tb^ qgORVk--+SVJ1~hz5)V&*D()9&GA#$1pl`MS0000uU0t$t zaFq^`3_?c-Gl`+nB||Y?;?yHaYfYQG%Z-=7^YYJKfQlCp4Gf$~lHYr{=`y!28V)|* zGy8hGgE)?pX0u6zO<>?mk|jL*{$%@yM=gx*PjGP^ut{*AfN7e^*V`p#3w!0+-IWge z?3qmh0BXDgJkKLh6rt4^!O(mdnhyYYygf#LIL=H&NI*JbI-LRl49!P>I9~g1P1GS& zRTcRNX#u@nFQJsevaC$R@*wK%4!eqVQMj(_2!a5rsv-orjn)jE9{o?qujRN+AoFq_S42PjbO_4d^r zrmpdQH5O|9@#{|jdR2H7McB4o>+173!1aU0XxQi6TqLHhF&g&y^#1f;K=#e^_+T&q zz;T?No}vg>dtKcctTvL-u+OjGe^_ng_7kYFZF>th380uF)i9B?Rnr+`D^F9sYMuMFq{FAeAlFAV4se-_X+z7=o`JPkM&4sddLVF^>$ zdaI563v`NSZ=h%DTJk?an7Y;pp8pR3&?OG=1gFqxjqphmy8r+H07*qoM6N<$f>#&% A>i_@% literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customStrongIronLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customStrongIronLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a5b38723728046ebb661eb9fbbb72e255f6303 GIT binary patch literal 590 zcmV-U0-t+3reT^AG+B!G((o+beY<%gGi?viXauEp^4DkaQA|V zCTDCCe-M0&@AFNb5prfSnQ+d8VHk&D82i4ze<82zwDWM=woAhRQ4|3%o6P{2&*zNC zV*nh-c{<=6Tuu~42`q8jwi%5^$+|E=;+xHeAP7p`eIA}&XGav_>-8GX^GXLuQ110g z`H8M}__i7ex&H9w7XYmyJO~0z(=7GqvpB$XX)x?}d85x`UF|UJclr44`9r||nP>4{ zuLpo-StlLEF5TMc!tXWtGC^TwfW< zIp5s2Q#in2Fu-+Paqt#YG5feY=jqa5x7!`XleeHQ{Dq;3x6c+rQIw;2?q6|LxLkXl zm;0ne-T0@kcZJ^fj|Mb}9|Sawrvfg4Cjpnj0ovDBhS1ecYqgF30gdAOPoSl%o%k_A=xV1CJo_5} cph+Cy9yyF!spkMetN;K207*qoM6N<$g2>nprvLx| literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customStrongIronPick.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customStrongIronPick.png new file mode 100644 index 0000000000000000000000000000000000000000..0d98fb1ab2d6db5e47ba9aa7b433527ee2797844 GIT binary patch literal 499 zcmV$mML_~V3HxhBqpSTIs_Rzb^aX79(pH% z1n20}l|;C(f*??OJe^K6bFS+W3Km@oPeY}YnfbwBP*{kHB%o6`6w$R_uamLw`w3&z z@2Izr85I)9E6?*XQd(%SSU@QSB7#!;CEdmZcB=^hczyq-QUs0(NhvX(&jA2o7=m*S z%d+tDI77JHVzt>pCsC?Ex`xA{isKkj6d{h|M55c6AbkwXlz={a%d)^ZhnD&JdCIIa zCNS!E)U&<6IcbT)x8Pd1-D=|D{tn@Ci_ewF%yZ6@gqUggYO}+5JSNV0?s{e#t{cwx zeR3SfoWLn~`o(k{2kmw{xw5P(__1PD!d=&;!+(R-wey<=ZiP!J;d!27b?v-x0=L2s z`+(K4b0Ng_0%gXo-vlAVWddcxuj&Dl@Uy?6Nq7(hs@Llg)wT1J2~-8o6{r&aN1$qW pMxYLOB2X7RH-ReQx!sTdR=*gARKxf)H#-0T002ovPDHLkV1jMx+@Amd literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customStrongIronShovel.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customStrongIronShovel.png new file mode 100644 index 0000000000000000000000000000000000000000..731c9091128ec28ffc5b055103b3f5015b2b8933 GIT binary patch literal 438 zcmV;n0ZIOeP)L_t(o!^PDxYJ@-(#_?~KWef;n zSdbK!Vw=`(53qQS9AWVUlJhJ%Ksp;QFj#I8gb)#g%ruiqaolX;u0FM#=KtgIW&~FL z7Qo1m?M5SV6OOGfH~tg1Llt31fYnI22jOE z0Vw1D0;uDE0+xth1uPZ+6|iLd0-t+3reT^AG+B!G((o+beY<%gGi?viXauEp^4DkaQA|V zCTDCCe-M0&@AFNb5prfSnQ+d8VHk&D82i4ze<82zwDWM=woAhRQ4|3%o6P{2&*zNC zV*nh-c{<=6Tuu~42`q8jwi%5^$+|E=;+xHeAP7p`eIA}&XGav_>-8GX^GXLuQ110g z`H8M}__i7ex&H9w7XYmyJO~0z(=7GqvpB$XX)x?}d85x`UF|UJclr44`9r||nP>4{ zuLpo-StlLEF5TMc!tXWtGC^TwfW< zIp5s2Q#in2Fu-+Paqt#YG5feY=jqa5x7!`XleeHQ{Dq;3x6c+rQIw;2?q6|LxLkXl zm;0ne-T0@kcZJ^fj|Mb}9|Sawrvfg4Cjpnj0ovDBhS1ecYqgF30gdAOPoSl%o%k_A=xV1CJo_5} cph+Cy9yyF!spkMetN;K207*qoM6N<$g2>nprvLx| literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customWeakIronPick.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customWeakIronPick.png new file mode 100644 index 0000000000000000000000000000000000000000..0d98fb1ab2d6db5e47ba9aa7b433527ee2797844 GIT binary patch literal 499 zcmV$mML_~V3HxhBqpSTIs_Rzb^aX79(pH% z1n20}l|;C(f*??OJe^K6bFS+W3Km@oPeY}YnfbwBP*{kHB%o6`6w$R_uamLw`w3&z z@2Izr85I)9E6?*XQd(%SSU@QSB7#!;CEdmZcB=^hczyq-QUs0(NhvX(&jA2o7=m*S z%d+tDI77JHVzt>pCsC?Ex`xA{isKkj6d{h|M55c6AbkwXlz={a%d)^ZhnD&JdCIIa zCNS!E)U&<6IcbT)x8Pd1-D=|D{tn@Ci_ewF%yZ6@gqUggYO}+5JSNV0?s{e#t{cwx zeR3SfoWLn~`o(k{2kmw{xw5P(__1PD!d=&;!+(R-wey<=ZiP!J;d!27b?v-x0=L2s z`+(K4b0Ng_0%gXo-vlAVWddcxuj&Dl@Uy?6Nq7(hs@Llg)wT1J2~-8o6{r&aN1$qW pMxYLOB2X7RH-ReQx!sTdR=*gARKxf)H#-0T002ovPDHLkV1jMx+@Amd literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customWeakIronShovel.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/customWeakIronShovel.png new file mode 100644 index 0000000000000000000000000000000000000000..731c9091128ec28ffc5b055103b3f5015b2b8933 GIT binary patch literal 438 zcmV;n0ZIOeP)L_t(o!^PDxYJ@-(#_?~KWef;n zSdbK!Vw=`(53qQS9AWVUlJhJ%Ksp;QFj#I8gb)#g%ruiqaolX;u0FM#=KtgIW&~FL z7Qo1m?M5SV6OOGfH~tg1Llt31fYnI22jOE z0Vw1D0;uDE0+xth1uPZ+6|iLd0J%=P)lMLuY(l@$+|_;xDkIdPxEDw-o>Y N002ovPDHLkV1hI)08Rh^ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/daggerClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/daggerClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..3081e24691e5cc396de6e24733c08906e42356b5 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9*3-o?#Nu?a%^iUs^Bb8C9C1*TU}Dp` zTbSGs`{CRF^9yAzIrYSfXMty%BaB0hI8+%J YV$b-r^S{!c57fZm>FVdQ&MBb@07h;lCIA2c literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneFortuneOne.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneFortuneOne.png new file mode 100644 index 0000000000000000000000000000000000000000..f76fba99f8b48ebed5e9fc62be85b4962ffde8f0 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u-((eF~s6@a)Jb_2(w#^P+nf%|A{|$m%U9=In^*@#*F{#-%__{y$P5!bn^RHI`N-`fl zdA6{pfZ1%utbgeV2?-Tv&z_x7^?*Uy&i?oDFMsR*2lq7s!NUu$1dd${G0zopr0O12v00000 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneFortuneOneHead.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneFortuneOneHead.png new file mode 100644 index 0000000000000000000000000000000000000000..f76fba99f8b48ebed5e9fc62be85b4962ffde8f0 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u-((eF~s6@a)Jb_2(w#^P+nf%|A{|$m%U9=In^*@#*F{#-%__{y$P5!bn^RHI`N-`fl zdA6{pfZ1%utbgeV2?-Tv&z_x7^?*Uy&i?oDFMsR*2lq7s!NUu$1dd${G0zopr0O12v00000 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneFortuneOneLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneFortuneOneLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..712ba374f3d970f95fd4efa6eec12e50cdc3bd70 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^aJHw5V~EA+p00i_>zopr0JM!?N&o-= literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneFortuneOneSpade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneFortuneOneSpade.png new file mode 100644 index 0000000000000000000000000000000000000000..514250f48d72539b4b999b7ccc66ff174fd273a1 GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^FxAt=F~s6@a)JbF#X+{<%m2$3X8(H}e7ME`^Yngs$+~|(jy0SY zaI2XmuBl-F0yQc9i3!giBw1{+YMGcJF2Eh}!L#ny7tTWhs)jsqwST$F?U;e!|9MrO h`}=F-%_&S$DL7#aO8yg!Fn^(T9 zXJcb)yME^m&q{VagGZk~pPH)ufAxwL1|T3IEp6PltSOO^A*M~1mGR2l7@#{CJYD@< J);T3K0RZFUOIH8@ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficOneLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..aaeb2977ff676ab202ffe37a9d3641ddc16f29c6 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u-?-%__{y;7cFdb{P8}%!*zR} z;UV4|30c49H#RmtG&MJOe$~j_^W%@r?Sl{Zzqr1h2Lu?G`y2NyYf5BfNZz5s>aohb Q1LzzEPgg&ebxsLQ05sN8@c;k- literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficTwoLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficTwoLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..6642d3dae0a390f3413f3bc4c91139e9bb40e9c4 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u-?+S0$=dDydw(Celbz1whO5N7;7Dd_*;x(6gcU`#kZ>}1{8J==?mw?cs za|>rDm^1INPP?XJ#S;+f!t!8>g3Qz%^Di2ePOnI{``diqCOob*llkun^LMPeNuPmE OVeoYIb6Mw<&;$UrDNJGj literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficTwoSpade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/efficTwoSpade.png new file mode 100644 index 0000000000000000000000000000000000000000..45cd05f488c784d82d5522abbcc261ab64a19fdc GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^Fxk_^F~s6@a)JbF#X+{<%m1Z)eE&ZVKHTB|d3wLRqy!LD{P-!! zzPuE6WZtmr!O_>(3!WPr7#QdT1te5_ h{Pi_smDCmnh6#c4!DgmAoq*Occ)I$ztaD0e0stP}Kp_AC literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/filteredBucket.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/filteredBucket.png new file mode 100644 index 0000000000000000000000000000000000000000..7d29a3768bdccb6fcbf13fdb6f7545c54c324e26 GIT binary patch literal 418 zcmV;T0bTxyP)_W%F@ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fineFilter.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fineFilter.png new file mode 100644 index 0000000000000000000000000000000000000000..98f9a1639de73cc13c798fa231ae66eb16577e04 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqk2E8@o=L29JWxoo#5JPCIX^cyHLrxhxhOTUBsE2$ zJhLQ2!QIn0AiR-J9H{8Lr;B5V#p&b(iGK-sop0)EKK1NS3A=vsZ+Zd{gmoqVsLmH; z1_I}d%gSzxcxFT^{f-Y%pVv6IS=RN>(V3AvAaK&QUvi_A!FHE#_VVJ&%+tfP;_~lW z8g)B*bxc&;@={P)8EC@cBQiJt2RZF9{rBgi@KICy`adZkJHQq^2FYoeWk#4D5LuM% z#wY9+(NO#A+kD4ED!mD7?f{Katmo=8IPiSxeET}1J^MEas4^5DW7_2S!cR?8aP7Lu hzx_27d6^j)mfR0{|7V5AN1)djJYD@<);T3K0RYEievJSC literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/finishedLeather.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/finishedLeather.png new file mode 100644 index 0000000000000000000000000000000000000000..33c71f6fff1648a28205f560506c6d69066604a3 GIT binary patch literal 762 zcmV3Nt`|f)$tl14n0*P7FSP8*a!Newlg}vQ^#1BxC%GlbZut;rT zG-#0`jip#hKunXyfFK4;Qbb+dUE{m&-FwcNv3Tng^F}>Tt@$NHD82RC)nkjgzY|t<4?b23cxN| zN@Z@N?8SQz;{VZA9~-?)HezR_DiJ^dj=s;%W7FAFf@gwi(AqpCEI@Hv3WjOJ#;LQ? z>R>Ow^XU@s_1g`{n)zO!4x!XugFP(9U8ojT#5-So{7h)Qt{glPGBU)L-^f2gF^#1#t*kd2G-?n239HMWFMRnk3d3H1;k8k&>0M<;QnEyC?wq{k02n?998{Uj5q` z>uAw5L9&p$;Efj-6AQJL*cx+5ln|Lu#@Fuj%VpJ{iptQ>$W2PW#fh}JmjTto&u;0E sqm+bJ)zO@!u@;(kAjZO8yS%kO0C~tee>1rKBLDyZ07*qoM6N<$f^~#vF8}}l literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fireBow.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fireBow.png new file mode 100644 index 0000000000000000000000000000000000000000..3f9c045c61e77d9103b39aab4cd43cc11fa55765 GIT binary patch literal 550 zcmV+>0@?kEP)0gDKQ zlA%L}{DPuu(oyJd=+w*|TnbrAmOw!qGCS4PO$r5v#(;}T{R3Hq4pI;tDg+VEr3pv4 zws-Mp5&CVt6rP9ozI%cFYCg~aOzuq{0o$t2cY3om@5 z04=dhU}G90aOM&gr`GH$^C%>>W>*0WLZv~nCCwy6;ambN2`Y_TqFT{};apcxypE*| zynaBkE2&mAlz|I3A(aFI-&2b4kHwE7+7rT6OiL8t$ofKLl(O|Yk3uqic?JO7-reUf zM5HT93yd$@1OOVRXJGAwh=f|E+h3m^F_}!5J3&>r{2gGub6SEP-hI&i0$*2FtfDF{ zz|(N6BsT4tDg$1W5V;Cf7Mzv{d=I<}smg>GC3sR;n?M;jEpgty5Pp_Y$8`)ck3!-) o1{rot>`Y?VF?W-|e*VS$0&%%xf{GY0V*mgE07*qoM6N<$f=9;TA^-pY literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/flintKnapped.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/flintKnapped.png new file mode 100644 index 0000000000000000000000000000000000000000..ceb1ff067dc0c68e03e9bfea5eb3a0a5095698df GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~8z-YEcTM2y+d!e!o-U3d7N_q{+Q`)uAkn&CJ6G^Y zKzWe>`^Q&@zliYKMqkkWB9Lm*;xXAu#btH9^9zxxqlz!iJhy-T_=C1!Vwa3smRX8N z&wWL^_}){W@61y$+_xs&drR4I;Vs7lUoZxU@QW3@Go<=1nA2}=#<=@!+MkX~92+?q zZpin2V|-f>_@dA+pJ7VqSe zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00SUNL_t(o!|jz%Ph3?P#((d7 z&J1)R{!LA2x)&KWPD#3v6&rUZ?zF*x3*(lgBz^=dF~nV020KLE`5{mfVp}4`@CiyV zS}LVRjsuBt*u^E-Je~aAX+^V*17pb|wIwop+=t#RLxQwjlt;1*6&$IT!))!QA(D zCJsENkQGt{AY~CO;WErLdy{VL)=1;d695mWMXt^{{T51EOnEv9& zV}baSCakaC=9O2+2oleZO;PMv=d;pGtsroy8ee|$mQLM)h1qegPR?s%<34|EZDM8^ zLfQCp^%fRIDufgW7KkZP_`!cp%`N@=BHXW`HztJ(%rFU=gA&c3zkyxHt0h^E%1o?g zlDzN6_5)eJh4<_7#C2_NZQ=$w8;0Q~lEKcsMN}qoiU=bNBy#cO`kIQj3V&6P$^h}dheJNfG5JnL(B zJH@zm*G6h}wzf9)s0=YOW&wA@LqYN?Ntw!kC_VCUU8-)(sK63@MK5f{j`=f^Yk zYYdo^y};T+sf~9g^iRQ2itwN6#`EFtzhS{hl%x#7#DjYc2IS;+l1H~BvqOvUC^75@ z@ypr@K_cssnNj?;yofG9N|{P9(vCsQc4!RyHKL>F^2BvDw>L>Lf*f2l?<~L|s8uDa zpyI~lX9utIQ@K{xS8sPBy0r;%k|#oTw%5MKibRaU5!XIFc#ZpM0F1moW)p9}V=^)H z;zdSB$4Ee>6y}DNqAX)iM^6Qyt9Re~*oKEM0odqkbt`j*m`HBmI$jKq<3_i6O@F>* zv>eX?6@K(icw#5s|7h)A003NeAM@umY3wAC?(5u;mLl!?5fd7n+)9#<@ aT=X~2D|R`S#=}Jb0000<>&kwQTTt9m{Qc_eISdSp>7Fi*ArXh4PB+YJHV|q1&n~+v zZG}~nRcN41$}@&(H>&v81r$!5^VD^~Tir@*<{7CZ>fl+rLM>_7r@=Z5Ph+vw>TYfx&B~r(ol2xeXsa zzqaVJ-up1LA@=pxs%aeROfzO~xi+}Y%mGOTIo@aBNn=Ik2P{1qhRI)2R zn|Eo5d%(QsPu8#`7ig+7Is}R=yKn3#B++ba92(lXYSn==N6t)9@w`wkKS6)T^}{Db z|M)Y-99l2-K&oykgZzg`CL_t2wL4n*e>{;$Gcxk$SB#rgu3x~was0vTtAg#n4vs2Y?_UC+CdCEUq?I28PpR@~lkWr>+AX!r3z+Vha9B;3HjAmOS@iGt9jo~sSctDPloTJDgr+jQKZhv^Xm!-iQ7 Vvst8qegmDv;OXk;vd$@?2>|&fUTpvX literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneOneSpade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneOneSpade.png new file mode 100644 index 0000000000000000000000000000000000000000..1ccc50f0f39e31a58bc680d862c7a1806ef515bf GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^Fv-)!F~s6@a)JbF#lf4K)BoRYUH7x!pI6xKZ27x8i9dcmmS(nd zmiU-C&$?WX83+!$f0JM<IPSMcyLRo9*$f8NMn{{H{3za<+Gv^lSKmT(U~xPgITwSo%k UuGCo>KqoPHy85}Sb4q9e06)`H4*&oF literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneTwoLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneTwoLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..e5868f542a96d899813c9a09f54d1eafd88cf351 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u+G!PF~s8Z+X;qzha7lVo(lv`;QqXL%6FzqA8mF$VGaMJ922p` zYgNhdx!F^4-`a7=1m|{+JAjk5ZtKO$AF6V$Q OVeoYIb6Mw<&;$T!tXNV2 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneTwoSpade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneTwoSpade.png new file mode 100644 index 0000000000000000000000000000000000000000..1d68a1fe74542a7cb19d2576c04eacd6c51755a2 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^FwN7&F~s6@a)JbFMPuxXS^vuxX8(H}e7M8^^LhFE5+HEHa)$)p zTE0Y;TMRSO{>}FW3)*cu{=lTAGbn%4gUNrsycBLx?26_M6R-LAgX>)l8xVjL+SS*X e&RWH$%fOJ;teDnkHq#AgBZH@_pUXO@geCxf3PCdf literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneWoodRod.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/fortuneWoodRod.png new file mode 100644 index 0000000000000000000000000000000000000000..4bb8e6f2e799a90702c01af5016ef330bf59c69f GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^P}kGNF~s6@a)Ja$z&qW~^2gGY+&@oSzf_}b!jj0_iI4sVo?SeP hePLRTWXn1R1~EpD7)y>58-W@bJYD@<);T3K0RYB!DQf@# literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/halberdClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/halberdClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..d042819b09ad67a2ba3a5b72dfdbd7d5c5bce69a GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!+SA1`#Nu?a%^iUs^Bb8Cw490D^_cA^ zo6gQA60?!4~LT?v3&SErhPDr@)t(yk~4)wgz zXbY6-sEAcKbHZ<*_=UM$=3e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00C7=L_t(I%e|9ZYE(fGhQF%5 z%sIx(e#Arwm?a1%m`wlQy1&sz{al!Lz6#aNGWBL;ck<=(0w4D7 zSXvv%KYGHA88$c>EbwT0e0d9R_cm;ZYox)Up`iH|t*Le3PT%;8gs;b2)?1=g2deZ= zsWV6R2@R3$C!gy|4_+N?n#2K}gL)&Pq*f?V7**JQ`fW+$7K8WWb?bajDFf0)f(W@9 zzFb3#vGeTfIiN0(Nx>xR3}PWAXf}t~u+dL;o*!Rmxc(+{-A5!t5hv6@Pa<1K&4PEU zy;gt+(-RiSfkDJPoj4?P+@GAR{O+a1o5OWnX;kN-Rg`ECr=R{fE9a6&`*-odkyP28 jeEh$Kc{kp?y6yZ08GL_>8=kcG00000NkvXXu0mjf_}kL1 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/heavyMace.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/heavyMace.png new file mode 100644 index 0000000000000000000000000000000000000000..cf7a54d0762b983d73e3be1d03b5cce300e42ddd GIT binary patch literal 480 zcmV<60U!Q}P)i{VP!d)Z+!6uEGAU4%3jwIWX*^#DM{lWL% zo7ol6L&b5dFTERaf`cH?1drob2SHF1A~+pyx7*sg<#GuCP)Z5b1e)MY&jm;9)9KXQ zODWBDk|gFj%Q8e!Bv@yF;GXBz#B4Sj0Kk~L_nzlrHk$ze(lo7oZ&iR&N>p1w&?=n1 zXKexXoZ#m(uwJk258=6cDdj(4bt_umhF#$2HRgn8S!Sl4VpmFu)oLZIodeh4Q4|T9 zc8c8UQQQW8tHhA-y9L;S-zC5%yt4q?@J<3a;H?CNzN-(;0vzz0Ct>Kj`uWkpYx%(f z2LR_9d_Fnivv|OKa>UPfj<4S*tMH30Am^u|M0Gtl3v2Mk7LfB(QKD(3cGxP>);X=a zeQxy^K5FZn18x!+!nsLcDCeyc;Dl2GVz!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ)YHW=#Nu?a%^iUs^Bb8C9C1*TU}M{m zARM#nG27wW|Lr9ufS^V4CYZkW@BhgO&sX~2U^O^@~ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/hotIronIngot.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/hotIronIngot.png new file mode 100644 index 0000000000000000000000000000000000000000..08dfdf06ca481f772afac2f93938c2673537415e GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^@RX;EV~EA+tC#G#4jG8BebAqj6J&Mbu<;IylJ6qx;vA~xT;i?} zE!5Vquy~=yA?X$FxrA@)#*HtFubMyQ-{1e;qhbHbIV;X}zB*rgaG{STyVzz_JZ`g0uwbut2-K>XFqxSJ(ZJ_VM@pa*Ed_GoGz9; ziJz9ibjxyUu2Tey!~M01Q&fB-!u)9ij q$uW+c2dxDeAJohKGq=~Ro_E$WX8PGH6(4}UV(@hJb6Mw<&;$Uu%qg+@8D#iC;iN1`{{2BhF-J_^J@F(w%9oDI~@vf05WV*I%(D?=^t(5*f*To zXD4cH(LpaJJ#C%5cec=;+Y?P($3$2Lnd`1c5pHSBg%iJ_AmC-js$o@0X=}%2dyt`- zm950+_FzPxN2(NsjU~UTpMQPOlLSs7)P$tIqZcfHXuC1;GBTY1Z#4UyexwM{UItHBKbLh*2~7Ymc}8LY literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironAxeForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironAxeForm.png new file mode 100644 index 0000000000000000000000000000000000000000..0c570cf6832f08c9ade7057421fcb12507310b13 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u-?bP0l+XkK?>J5I literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironBattleAxeForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironBattleAxeForm.png new file mode 100644 index 0000000000000000000000000000000000000000..1a0d76032c58bef3a95f48e87eb5e3791b43dab2 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)2#X*k@3xCgl^;< fRXy&JS;odtTB?3>k@Ky7pj8Z>u6{1-oD!M<>;X6+ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironBlade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironBlade.png new file mode 100644 index 0000000000000000000000000000000000000000..db6858ad760d61124a653c2fa4d570c63069f916 GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7lu|4{FSK{2^8Th@Q5sC zVBi)8VMc~ob0mO*Cp}#pLn02py}pt6u!4ZY#qO!IBqbXAOe5OYMm)B1OJEZ_5W47r zL(+qHcYau%o_24#<0i%(&mUEKD0D>FtzWw}|GQ@6@+k_(I2aht?R@o5t@Zhw+2?bD zb_8+t7#dYCXwP1|`fEC;#KDuyZiSZ`B8v~2VPE6EtEVa&=2lNz!r>mdKI;Vst0N>|uasU7T literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironChunk.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironChunk.png new file mode 100644 index 0000000000000000000000000000000000000000..cb93dc37b1c17144329a7a508c8db9387dbb85da GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^FvZiwF~s8Z+klO{2Mjoje>Trlo@qI0rt>Au&`{P^o{3ghl&AIP zKKN{~IWNujai*%6AVb4$=g^foA4K@i_}p5>WZXP6*v>Q{w5Z(WNUgBop6?mf&3WN7 mmTH8rsL_|~5wYic#B_Ltfqab0k^?~d7(8A5T-G@yGywo~Z9j(q literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironDaggerForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironDaggerForm.png new file mode 100644 index 0000000000000000000000000000000000000000..80807e3ee3c0b5685eb0f5f5908693324123e152 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)2#X*k+}rLo7~j4R+*WP~TpRcY^~IH>O#ObEj;XxoqVt zXVwDy4v$`j1A?6W;tZxu9BFR5(~HugwkQS*mUFl)NmFjPa7^!kM#?F-^7*gyrM6^8 oTAV#BvP?g|QufeInKiZgE7qzU_b`}X0JM_9)78&qol`;+01fdyn*aa+ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironHalberdForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironHalberdForm.png new file mode 100644 index 0000000000000000000000000000000000000000..053f1c6dd149cd689a99d489064de3de52314fb2 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)2#X*k$j&OyDZd%0HFZ=wk;whhZd+S+4Ep$5) zlskTfZxF2bYh5vOLZh=IOZCi%nQu}bo!lCGkn;~m*@su1k9k}t-+#M#L+E~ELCJ@_ YIsa__Zl3ia2Iv9?Pgg&ebxsLQ0Hz32=Kufz literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironHoeForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironHoeForm.png new file mode 100644 index 0000000000000000000000000000000000000000..f480222884c0ccc130d4a3ce1a5ae9c5bab5b746 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)2#X*kXD9RORo)k>zOyT%pRWtgO@%`f71Usqe(w=Q^R2LKMIPq!Os%}q7-8W9$YfX2z_S{$<81|-+!`@MSfApPd&NZCX zGj@I#N(p`=b4tfM#Mr!Wep!l?lncA*yXTh$omdKI;Vst E0J|hd^8f$< literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironNugget.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironNugget.png new file mode 100644 index 0000000000000000000000000000000000000000..e292f790fb678aecb4882d2023bb5ca8244b3efc GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ#nZ(x#NzbZfQ`Hd3^#2JYD@<);T3K0RUiy BLv8>7 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironPickaxeForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironPickaxeForm.png new file mode 100644 index 0000000000000000000000000000000000000000..c66b7d4d586d21657caf462cf08bb2e347f954eb GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)2#X*k|ahd-@ywh{e3zs~WEMO`PYl zWJ^*>2>+5*k43k!zcfE^yOW3UB8wm6W;O=qEpOHH_u20~*thfR9l!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!*3-o?#NzbZNe6ikC~&yi`yDzc8`H4X z#(0i(MS*bjrHJNZOMI(d+H)S_u4CCJwpK4>YnMmAGe-$ez|~iK_dlI+v*p4%%jY}{ z85>y_hJKFNbBeiP^E?CbqY^89jZfR&ZQ|5es<1Sqe3{(L6K7;AQXXk%%P79pQ99lK cg?k6XirprBD|guL1v-Sm)78&qol`;+0OvST-T(jq literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironRingForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironRingForm.png new file mode 100644 index 0000000000000000000000000000000000000000..3c15ce1e5d2c4ceb97dc0af77e5ccc66c963d308 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)2#X*k7V<*|6KA{Ql6Pa9^&eY^mEE&op@g2 zF%!e22`#~!pDS>xO!rjrKC|d@sK7>z48tF7bCR!pegCfDd)S3l(n^J@n`)Z-0y=Np zKEh@EC)1v(_?(et(s_;C=@Ca&950pk$Sz#n6OXJ X%f%=~;PZT-lNdZ*{an^LB{Ts5_x(~z literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironRingMesh.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironRingMesh.png new file mode 100644 index 0000000000000000000000000000000000000000..62b17496b49f0da64bbfef89f48aa6ac0b0c2845 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#F}qo<2wh{frpK^p~+DDVi!X!Sd|Iv#bp z!gJW*jf>+{!8>ZAG6Hg+#LKVUoV3RH!$uZ{BNF-y9-0RwK4)FDRA+DyYnZt^HSL|) z49Te1x5O`c70go)@+v(Lbz4wCu;?6r<6?%zU&|^&KjlU|_N*5cxVUAy_EEzfYn#hv zbjTgdS|MWa<6?5-4vSfIQ$<^;W88D+*sMSi@wLLdB>|5 e0KDQA ze<2uShB0Qa>#M4Qs;W?H512)qa|?nI2LLFF0tG-28(LAN6aWBB(?qc1bzN@GH6VpIHjR zUE7Q^S+Wm7Bu_z66mUFWlPz>1x~?ObvPV4->$}^3f3{OfL2GR&rNl3{pLq!AutnUN z4|Yz(GEa$HfJM9+XK2P5^<~2hnKkjK2Yd+k9xJ|xVtim*;I_fP|M@UI_xIZsUGv0V jK~h5q literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironSawBladeForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironSawBladeForm.png new file mode 100644 index 0000000000000000000000000000000000000000..31446b16734cc63dee7b7f66e408d1a10f09c716 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)2#X*kpfi@Lo8084R+)@Y`_!T`){(tzyIvE9v5Q6JbZ3#J!YcZ#D(y259{6VBX!bV!k>8oP3HBU1O$-6qf4y`vZ4b_u@Mv1{ zm8JdUU2%qO*KYmWvTy(0#gTe~DWM4fTMkD-Jm$pdl&kDZ! zS;ONGgMvxQ_x0?jI6c~~dhks?*=0GYdVjX!(zOY+F4k`#%;#8=>pJd22WQ%mvv4FO#t9wM;HJA literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironShield.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironShield.png new file mode 100644 index 0000000000000000000000000000000000000000..44f4c20159232bbe44417dd1ef73950a050888ad GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqw+x$<-owt;e4vnIiEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI8c$er;B5V#p&b(3D(64B0WrOZKm1RN*EZpmN4~lG42cmDq-++ L^>bP0l+XkK|EVlM literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironShortSwordForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironShortSwordForm.png new file mode 100644 index 0000000000000000000000000000000000000000..860d295cd2e41cd55c230a5eaafd16d1362dc1ce GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)2#X*k|1_n=8KbLh* G2~7YVkw$+2 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironSpadeForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironSpadeForm.png new file mode 100644 index 0000000000000000000000000000000000000000..df28ad280e31d3876c6ed3f46e0d734d25990abe GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)2#X*kZl6nafL83eDR7DkN1uK>N=upU`z|Uh1+84cx_E>WgRc%KZdd&*16m=d#Wzp$P!o C8c8|; literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironSpearTipForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironSpearTipForm.png new file mode 100644 index 0000000000000000000000000000000000000000..8d31c8846bce713a6603cce806c1cc29fcee3453 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^FwN7&F~s8Z*~yN42NXD1!VlFy_@A%5ak<)*kSmWCR$o5wCTT;b zhr1&S!&PRQp4EX#1(%oggJ=A_Z(c5zR&&quC^nf1Rq+!+nOW$;90o_lwD pV(35igy-@gr(d5ndA7shqL!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#F}f~SjPh{fr*!8>`G4S5#xNgi!r|KPFC zv^R@?L846q!`nw8Tuk?Weu_D@VXB9q8Rs9Vz285c%$Y5INA}E~=#*y<-&qUJI=R-A z!Qq^wl9QvEF@wWeQBBn;K^zQu+Pl-f6$m|1zHsqtctzR9*xE1q4|wt^aep>HXBlDD wq0q_EdLi02;OfS%O{@Agud4}Nc6tYM>a=8&s(N)spxYQcUHx3vIVCg!07Lm&p#T5? literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/irondaggerBlade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/irondaggerBlade.png new file mode 100644 index 0000000000000000000000000000000000000000..a8f42c1eed7a0e31da68e684960cd3301d9c9a55 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^(9+YzF~s6@a)Jaa%fXwQ)Biu7oWAG^(=F+O=jY}!mK;1aRr~+_ uoyF~mPftz#e{$QwvuAs^Z8YGLkYJE35J>n?+rAKJ2!p4qpUXO@geCyeA2b#K literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironhalberdHead.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironhalberdHead.png new file mode 100644 index 0000000000000000000000000000000000000000..60675f81bb7a8a2bcfaa090ef965fc1d886e608a GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#F}x~Gd{h{fr>lMnJ9R^V~94|GdpX8XXq zk@0Xr8V}nCwisIm=?&brqDwO`H>~*OFLtfIhKFH)i00C>RofQtyk^CF^BlKjx(=fY zi{Y_{BCjOumtK)}X%T4J#r!6`w|J8Fjeos*N_*3uu`xttGc*{w)y_HCG4I)J7MCm8 z@BiKrbZh_diEHN0$n4u^O!HP-?`ND-{Qs}d=_&>VMF;5@*Y2eOoyg$n>gTe~DWM4f Da=cx8 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironhoeHead.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironhoeHead.png new file mode 100644 index 0000000000000000000000000000000000000000..6356d6ed787bdff37a3452b60e74fa989df81344 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9+tbA{#Nu>vf&{Awvs+G6`uTZ(>z|*K zZQEJ=d{M{yTU)uEZH4vDYH4ZloIH85pfJVEPh26}%*-rJ<)(f4yE{MYzrDHnf3czU bBL;@J;|kkCP5A7A#xi)i`njxgN@xNATy{I5 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironlongswordBlade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironlongswordBlade.png new file mode 100644 index 0000000000000000000000000000000000000000..51cdcf27f3e814690bbbf98ed38743dcade96d8d GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u-DVYF~s8Z+RF!d4=eDnUg$rq(ZOoNJa2VyVFJ6D!jb{OUvUwRb8wdeaT(Qh{_+0)Ft8PhAI z3=S`6)c%ovKf`benZt!=!xLF;4sGUJja;<4ZwxH9DNByEMDb^RKObYyaX#bCb eQ&BbEdl}ZOO^dzTCVm#^Fa}RoKbLh*2~7YB_*yXl literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironmaceHead.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironmaceHead.png new file mode 100644 index 0000000000000000000000000000000000000000..33c4413f10ed58e360c695d30e55fd0f00bef8a7 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ!_&nv#NzbXNvC-aDDXJPTd_%}GA&D1 z$v>d?<;X&L4Xvpw`UBrY^gX;jAw*^By}qp-43^Ii+Z@a2XPV@tx@-zVK{y literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironpickaxeHead.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironpickaxeHead.png new file mode 100644 index 0000000000000000000000000000000000000000..5abb9041dd78a54453bf62253ebd9efe30dac161 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^Fx}I|F~s8Z+esUF4=C`kocA_hl-|IseZfGkH#~veEP-iS!L11m zBAT&NUazU2FMarYc8d5BiMKY_qn=Jwc%GBov-FCkyQb?jrqH>1%cd-Qq$l2RZ5HE~ pd->hrAy@Z&XJ`?4^1sQyfWgQ`j&*~Z-AtgB44$rjF6*2UngC6eLjV8( literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironsawBlade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironsawBlade.png new file mode 100644 index 0000000000000000000000000000000000000000..e027ebb9b44c929a1a38a45c46d28a55f2537ba0 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u+`JWF~s8Z+R4#etcpC&xhLzicKo;fa{MmKvwty;-JdVaY~onj z>F9U#OprE1XG)Z2FE7J%CWgaj5*&(VDa`t2{7WTGzk@%cDpL3M#+B3ag`UjWe&pT1 zfBawGtGv^T=1Vi16ZLvyk+){5!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#Fp-_yl0#Nu>vf&{BG!yMb{Z}xVTYEEo- yb{4nS+zwwC^Yi}Mvv2>OnyUT3|JczDYz#FXyocUTm=Xol%HZkh=d#Wzp$PzEn=xbn literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironshortswordBlade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironshortswordBlade.png new file mode 100644 index 0000000000000000000000000000000000000000..4f8eb5d1079f94d3da11e38518c9709324b6c1ff GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ)6>N<#Nzbb$p<+P81OJZ<#{e@~2nxYn;Qm zcI(4;pVw_Ybmqx6Muruy-t7Ob*Duhoc7OYVRjKzUeOoK7`d2CBO2rQ&prs6+u6{1- HoD!M<2+K|p literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironspadeHead.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironspadeHead.png new file mode 100644 index 0000000000000000000000000000000000000000..8babd14a41239929e11307d6eeacbc969205c646 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ(9^{+#NzbZ2^%>N81S&1pXn-{p>lTV z#5(4;k3!l^1RDiB9!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9#nZ(x#Nu>vf&?qe!JC`Y|399bzUT^* zn$x!XJB!)ZYiGP>>f&jztbccBC(n;P2R%HDc~sQZjaRH#VIUzbZQQraSBsg!FGXdp T*>fo=pm_|Qu6{1-oD!M`ofBl-XU literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironweaponHandle.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/ironweaponHandle.png new file mode 100644 index 0000000000000000000000000000000000000000..31da4c89fb88f3203e7697da30ea7358f86fac6b GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ+|$J|#NzbP%Nuza6gXT0OIWuhJ8Vm4 zTWey-#nc+-`nit%K)+z1boto?mpKzB9aLgE6XVnwu^xu+vGw+krNz@b_*$Ru=*>jtLn@btkXkF#--y7zK?ug-Z-C0{fnCw46I zhry+Y?^iY1(Ng4#CiC~b_}nUe+Zmf4Q))cRhG?IZuM5f6PDu!W^_8r=upE+VhpsIy z9S}L_)mck7DToBwqz*v8-{-tzQEi#yHmiWA{7GD9*!q5 z;*~7=evp`u?0&EEt$4=6luo|br_wU%ngjOB7IR4#3$tnA30(V9a0e=$2DW5{B_KD z1Fz($W&jY6YE;kKoHqNYins;5^D_Zl<>JbwtH}PVegjEA4N$|ZygmQ`002ovPDHLk FV1n?jL}ma0 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/itemModelArrow.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/itemModelArrow.png new file mode 100644 index 0000000000000000000000000000000000000000..5b93c3bf4d03463865134bacfa8abce0d6619546 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7a$D;Kb?2i11Zh|kH}&M z25w;xW@MN(M*=9wUgGKN%6^YqkXJ%E*l!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!($mE;#Nu>vf&?owzXYe|i;s!_`_Jg# z{4{xD26Mu!{94hbZrl2Q6B~gb@pEr}4-XLdEXhbqNJyA4<%#=4%N^;(x(2O;JcbRdJR7(Pk0-_>tH4u`+4i`_XbZQKUj*k_8e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00H4iL_t(I%dL|=j$Bm`g}+m` z?(6o*5<`R>c_;J|$U%0-3h;;x5Md-Q!NEut3m_%1Y?HaC>vY zYz(&z8$vCjHV$!wE~ zG47nK`@ev(clRbZh-EllMVe>=&A@w7(aaKN%^Z{V>I^`JWm z?sB0lNHAm;ss|5JYf8uS7u TM0Av400000NkvXXu0mjfQ_UC= literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/leatherShears.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/leatherShears.png new file mode 100644 index 0000000000000000000000000000000000000000..c858076718444b3ca731f2c28e16fa2a2f6f771a GIT binary patch literal 413 zcmV;O0b>4%P)IZD4&Vz!xlP1do43%&tq6paHbt+V5Q6yg z|Jw$DZ=5}hF<^|ze*f}J@?jXBF5q&63UytV0YF3n0KTLGVz$D+9RLwQYkmEQ9w-hl zO;dRV5Yd0E1#8PnZZ+Cc5K%PI-jHial~Su<)>>%WHr&@*-#u4VRk-f^ej5N0L(;D6 zegFW*ar|}8B~@ds-Bf9h1=9?&dH}DQh(a?y+DAkpy2)Y|G)?1EMvYe)q7|j6ckYi7uRe7@yyaV< zl**ct;ueV9CgkfD5k0ph)^LZ7Vd|bgg$0KNBKq9FqW>L#UrB(iY$n<000000NkvXX Hu0mjfz`m#U literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/leatherStrap.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/leatherStrap.png new file mode 100644 index 0000000000000000000000000000000000000000..70aadf4e6bcfa14efa04afa4b5a9b71b222647eb GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^@VBRnV~EA+t-*$?m<&bc962hIotmD!@Q*HQe?s!qOU4xpp1-xV z6)S{Jhls^FZiu;fh&e)2=;GP@Z>^<;pIr-Av7bCM`}pkRAC#s|mUsVJurD=avsTlz zCguhsv&%s{zTEkezqsyj_XmeyzJ_egn#n45N}c@?Yy9sCa^JibbmjA>Yu>lYUwQSp z{bgIkV97MWcJ}U^&0O#7+Z`EG-`I*b8kw#BCEj{v>c;KcWovk&xXk6Y-0{xV5oT<- z<{tf#X?Nyv_pQHor>7dJZuIyD;+_o?7ZDC;DZRUdePPdDvHLeRCr7UF=V!8X4f46{pA_9QC|2Qx(+?@2&#|1B0ilpUXO@geCxf-H7b~ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/leatherString.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/leatherString.png new file mode 100644 index 0000000000000000000000000000000000000000..d013de8aaa2b2ab5c3c91efb0afd1a522dbeddd3 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=B+VAk26x;juqZkiEpy*OmP~8w&@ciKNn}hd`lfPZ!4!i_^&o3shH}3Hasj!7HrS zxwrVpKl$BSXEv1g-Kg)%*}mQMum3degl*B8`&I3E-sJlJzkPewKlR(vC)fmq7qIXy zyrFs{=AcU#qn=v4goaVVc}clXybY>4oBsM~I41IbJjJv0fA#Z@hgZ*ZoEMPz{ovu{ d9+T4>88VJprHE$AsREtB;OXk;vd$@?2>{u8R$u@C literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/limestoneDust.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/limestoneDust.png new file mode 100644 index 0000000000000000000000000000000000000000..d84d52dd16da5184a1c98ac2011d467ae164edf3 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqk2IsOa*ET2?LeXTo-U3d7N@sP-rIXbLBLIZnlpQd zqkM=XBVU21Gv~S{JB}EJi%0x+JjuBkSN(m-Ro@nYn$P=wHvZ=kbac75&(L30mF4-(!KsLB*U*>0@AW+P@XB1@X<6l`IoBvU`{O<1^Ply;RqwxCa(~;d+pFdlvn9++ z-}5~p`@3I_$cn8&*+(tYL%z1`(cxxLY!UvKE4Y2ls$1JWU#;eN7;@wv-)YPAK9<7< w1)?=`nw3wQhI~z3a{t{S(|2VLU;kk2*xWVc3upRypw}5ZUHx3vIVCg!06x`_EdT%j literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/linkedRings.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/linkedRings.png new file mode 100644 index 0000000000000000000000000000000000000000..1f716f471751d0d623fffb4ce4ced4547aec4f1a GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!#nZ(x#NzbZi5o?aDDXJDnk{G%jA#(O z(K%~w#6ebFWrvr%eXCDwE`C{*8WOqb4>v=c?X-z)9n-!Tx-l~>6`A^c&RPD34l!fx zU0cQWmRmdzxff-v_^fJ9kP$;bc5JaEWbP0l+XkKDrZ*l literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/longSword.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/longSword.png new file mode 100644 index 0000000000000000000000000000000000000000..47032945c9a3528fffaa015fa9de668cf81e110c GIT binary patch literal 492 zcmVzz;z2uH4lrTo4k)6-y@O>YZqVX^cZ4^Zq4u@zo8t{t7CzA=r<1vCDfbaXo z1#IHYW)rPeOR2K(cDtq~4cG;D7O*SsBw!z0JYZj3G~f_iEZ|UFBp?r- zJ0LHfD?kE2I6w;DJ0J{03jk6$fb{Q}nU9&dRs^03U}leq7Mssq;cEfR>;Z_4F=txq z={8(ycuQOXh=~XQX1m}LyI(tm%xsqdFvg(U?ZP#lx&@mNMC26DyoOm3uJFujIDLDD zF$MrYME`3Scq*XRsoR^=uT;cfFj##<#LSoCpP<*N+uBJ5v!58rd~th^)z1N-N<^_S z=16P35DQ3l9(|u9nV()iRMwdQaHX~W6ng_%J5TV{gSlK*wbs9)x1ite+xM5p)Xs|< iUJwMhzI!MI2Y^4gkzEeE9j^lb0000!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!+|$J|#Nu?a%^iUs^Bb8CIIU`1YMpoB z=0!Ov9-k#yb-(|sAHMzH{$Uc3dmVM1EZ6pqcYGbYN;yVT)#>cp(hiye!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#G!-P6S}#Nu?a%^iUs^Bb8C9C1)QkbU5i zthvOrcRL!dGl<1VNlHja-23;x^HBe{3kq+VmRjc-?D_j&c%5Y0h1>t_H|}cVoShcK zFkA5ow~N!Z$3?7PV+7tVJg9KygkM0jfwHw%PJp?hU=i!Cw-K=n#w<4#B;=!=4$Tru mxwS5=RNerH@elF{r5}E)Gnpa-{ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/mediumFilter.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/mediumFilter.png new file mode 100644 index 0000000000000000000000000000000000000000..fcc9061febe78a05ea6e87efb6bfc5a1a43ee812 GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqk2E7Y7f0OxKA@0fiEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI8f0!PZ!4!i_^&o68{qNI^WdSeCpYu5_bLM-}Hopgb4;`Qz{Cp zteAnoIpeaj+ajJB(MrGL&)Ri2Ha9c7{<(C{jtvOfp3FPm6Tu6To8R9((edCmf%V(_ za^ECR5K2nn$gMhZ;>3Xi2Mi3|zwMtQkk@Np_s5~|Y`?s{1PH{!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ%+tj&#Nu?a%^iUs^Bb8C9C1*TU}M|x zU{b`c$822ox15_Tn5Vtlaqz>p|NcC!lefjE2&APPH|SuU?Uuup_~`|kpY7rs!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9$%xwWQe%6Y_~W=*j3JjKA9Q3 QK+_mJUHx3vIVCg!0PwyvzyJUM literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/quartzDust.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/quartzDust.png new file mode 100644 index 0000000000000000000000000000000000000000..b66d452a2fcec2cc05c5cfb3c94c9fbdd96d677b GIT binary patch literal 501 zcmVuZW&`5SSrOZINW^0RxO>fy_fu6x+{vSoHusrQVGo~AqtmPdP&Q2( z&cFT%vgs5br~LRsVN_KSS}=lBz7U;eovFYA&eea6<06yVG#4e~xeH%n-zlG;P(9P} zOnj0WMuElXH%i4LZrj(`RSREWX7HVQL91f26kew3)bWgsZCsiLdS1sZyO^F|03k5{ zn$rI7UGljMKey7)ZA`>tB-hvQjw`6DA`TA<08}bfsaCfD`p5(SAQ6wT@-<4k-KN{U rd&uW=8Gt_Wi;vW^=rNuW-wy5pH)EOtj(sOuKFG>jFTBbHr~}ei+k=p_Z;}2B>=KC z@tmL`9I_kt@+=+f|MK!eUg#~V%?8D^;MCI1RyU5HWa*&ooGjvAyaC_=I7Rf;XXhR& z;Qo60>dM8l_ue=>$KeBqP}-4A3vOLGzmcU${m#{;;bim4&T*~>P=i>SgjxA^o2{}85cM;-JZ~I zwwOOQk2TO~R4HA_(IXMSW_=JBP#tJQeQ zg)B`xCruQD0ea&RtB=M=rLbEwY@rF1#|yvwh%t&%Z<8fy)a}Lj?hB$@*A{<1dFTMi zXu@~vTijjC@w7!s$u|!stbG4F))kzHntXoo%;;Y^aI<2v#kZT9uwLPl4nJa0`PlBg3pY5H=O_IuotVhXYW9GOl)A;}Wgh!W@g+}zZ>5(ej@)Wnk1 z6ovB4k_-iRPv3y>Mm}+%qMx2Fjv*0;-%d5;b9E4CtJiLBCfD~DmmXB{oc6x-vdOXXJ@3pu?CY8$ zblhbT)1=Q{D?k+*CzO5bbc874gc`Ks4? z-^OW+G!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9-_yl0#Nu?a%^iUs^Bb8C9C1*Tc*5p$ zt8QZArElF&BpcQU&R6tlF%dRu>5ORI@nnU3N9DX<7NW_Mla<00^_pjPY~-E4I^x4m f{`toer-(D0d?$JSkb>3o>8TPdr@VLm|eBUOl zuyBsjcYCJg1DBKz*Q~mF<`w^nRavYre*X*jyle6uhF;%L{jD7`*W%09tm^7eP+BsDVaD^H z3Pzi&xqDAm`)jsN5jwZi{C@ua3pW~X%{ap&m?*(EEmiTD$7lKECGUUh9XoM7vg+K- zATEZ-7Ms>--`+N{c-gh8x*gt{f=&lIInHjLDO(w~>AkgsxYLWe^A8^L&6)lz|F}8x XmuY*;?Qbgpy~yC{>gTe~DWM4fXi$ik literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/saplingRing.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/saplingRing.png new file mode 100644 index 0000000000000000000000000000000000000000..264c8a221b6b828e01d89f5cd9656dfa563a5fc6 GIT binary patch literal 510 zcmVTtQbd*bss@I)c}81gN zYumCbIUp)>XpsZg4>6vM@Gs=rg-wBy?Sm9vYWJWQuB~pi4Zm>C#!ghN%n SYqO_?#^Ttr9jhUHlDpQ|NZ(W{rvKC7uDP4cQ%dJg|L;)av%y z+aH|(0H@cVI0_2&tk5=sMJEM=V=C7H+z3OUmBQxw>P2lsd9VOr_r{ltKdVg{mH{^- zT0z7aafB8%XY3L`r!}!Y{jhU%)*k^L-+D=Mny5%5S8^lhDxgy1c_asDQXvmZLKo7@ zZ@kMRz}=-t>HR{0RBpDGeh$$X>qS|MVUJFTDB|Rnt*fB1IvH5j9Y$ z;@Uy3P)%(3Pfz{(NDmi$^C`{#*Pb;JOU6RLaRx6$GZb)h=9jj9+0c9XA7EVepcTm` z%meBTs)lDFSz*cvO)Xkxw4T>$I%Gykq$E@ZtrS9KSTuqb ziZo9*-Ki7c`_DgM!*!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9)YHW=#Nu?a%^iUs^Bb8C9C1*TFm2#q zp7w5s<4nf<|Nm9)Gt7AVBj#Y!`GySs-isMBLO@Hus`9eLbjO$i4Pfwe^>bP0l+XkK DUGOji literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/shortBladePlate.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/shortBladePlate.png new file mode 100644 index 0000000000000000000000000000000000000000..a6eca2f46aacadae200019cf3023944967e8c6e7 GIT binary patch literal 1436 zcmV;N1!MY&P) ze5~8IZW#q3p#UjB5C|!z@1*h6-aGny{VfO)^+ny;zd<4bM4b^qgjl7GNUXqyupz(_ zkk}$HAi!WCfa#k=2m=-<>$k#Ks{cC(LAo4Jf}-wTx$kx+D6ouDI9$d9jLYsY?s{hw zQpSj3079-{GC@LNGEFFOBsj1Iz{)n*qypJkWmqW`!j6u%BEl*!8j!@3PhnIbgcG$|9&_%`%yZhBS{=2!bh3WCIr=|mxHkifyJvIw$~ zO-Q7L9E&<=%Z1()aqKxWzY+*l=|FL*9C*C17u-W^=ETVRBp0z zlqM-eoCOhC`OGGrI!mW&oHJLiUX4TJ=g*&S2eQs*6{xd*o6bf+Gl?iUKp?8{Y%)|G z;3}X%SmOHk*H56^X6ZgxpG*}8eiMg(cN zapQWNVVsX2KU!KagdwFe9)(QT0CTgoGiu1Jf=7|n0Wyj@ee33pvm(zAAO5uz-x7q1 zo->8S>_D^VbTTEvMIyGUhkIyYbNkj!ZMWMv7Ww;s-dE(YPf|q-s)BB$CkM{zX}72L z7)Z&TJ3pMX@sr(d_uqQG*2ww0zu%=o93#n^O~pG!$H6MIx&F8hXfQ+8%+IXz8> z{I9ofv)IqrG2gpS6;ryUWVOfjM+VAtgR1cE-o1NrdV0!kx6^vP_Q?64Z{Ao@$^olb z(?>2_bX+Dg5gm_y{-hN5e!4e|vtF-rv)KsHAFp303c?jxFi7g#=%a zgosqPYB}LE>TA4K*e$7|DRzIpJbd_2r>Cc}H2&+07m4PXVHJX<9fqfqD<9v-1u?^voyb9U=71UZD%$UGO*z%ooPuhllT|B+TFS0>koi|2+bO z>D;skjcF*mhwB)dCVZgymi?TA*B8r4SEL2<(Ec^JJoIJj!dZElm757;F@yIcmrUn{ zWl#C=*?Ka1u7B$O$ib) literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/shortswordClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/shortswordClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..976e0e6f366e7624af2107a8354931058f72f794 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ(9^{+#Nu?a%^iUs^Bb8CxOg1ABx|l= z+@K_WAm{jVt|q;T-~XR8R3$EvZjdY8u}Ek+<3%|s9uPRx^G2g)(jJD(E#996I$3MZ er6(jLFfg3u6xsaXn+(t`3=E#GelF{r5}E*Tm^+pL literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/silkTouchIronHead.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/silkTouchIronHead.png new file mode 100644 index 0000000000000000000000000000000000000000..4e236c198ffe57d77fb60a36e70776f6e888f6eb GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u-((eF~s6@a)Jb_2(w#^P+nf%|A{|$m%U9=In^*@#*F{#hLpF;y=D*J$IB-DWQ%F;y?-@0>nmWG7N8kVVe&GhIV(wcm;U0W&0|Uc~0u|PC Ti%#4EI*Gy4)z4*}Q$iB}_q0;p literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/silkTouchIronLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/silkTouchIronLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..18d14a5ffd495b44158b621177ac528473c011fd GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^aFVBsV~EA+VIe8=@z|&od-Vb-?c!k`AM29 z+a?|dw!FMNme_+GX9{oRe~W*zlI8GnS9=K%u&e!bVWbAu^xmaEu1-kez-d@fG2 hR!-t`V`OG#IB>xDOY+a@(m>ZSc)I$ztaD0e0ssk1T3i4C literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/silkTouchIronSpade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/silkTouchIronSpade.png new file mode 100644 index 0000000000000000000000000000000000000000..c38b906f837d42fc325ce26c91d1855ce81ee322 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^Fx}I|F~s6@a)JbFMdRVR&Hwp+pZ)hZ_;82+<`co3Y(UUveo0?~ z&thJZ$}NT&&-}aV3_#$+(ZUBNEuBI6n;uO5^W~-R5mp`nEx2XAY?e|RoEAtB+% kmKW@Yfjsx%s|#2e`g)bFPum|V2DFmF)78&qol`;+0Ab`uH~;_u literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/slackBucket.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/slackBucket.png new file mode 100644 index 0000000000000000000000000000000000000000..c53fa565b969dc226182669d0adca1d612814c4e GIT binary patch literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE6Gj52u!Ekrq#HHQU z51;=LXqbH2ICjkjPUTaZwlJhsU3vT3uXFhZ&c!cvQzG32SQuJfPYrxgDHr6m*)gA~ zMtbia&3``&xexq3e7U4a&WYpD*DmJY6$kd$zj51Y{I~0oMHu&V^YX=ymSs)|TE#3Q z@nXemDMgmP#|#&?t=;&0Nh9ZV@zeA7y4?T1TgCIro>f}6wy`SsUUvL*lEpP}MWOz` hukjZ)-v8_Wf%Vktu!hw6h3`S3>FMg{vd$@?2>>O3pk@F7 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/slackedLeather.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/slackedLeather.png new file mode 100644 index 0000000000000000000000000000000000000000..e192a22d7e930b4d32e43522fc04e0ae76cc84b7 GIT binary patch literal 686 zcmV;f0#W^mP)GTB=-{A828)}Ef|&$CK^*)q1b6=rCwB{4MR1Ud zRum^Cg~p1LxM*(EH0jMpZ*o2yQetZ@4!-N*ectEyJO}=B1VG%3JRk?iYOUUhn^CE; zy3)ZIydXep&C=Cdg=($76E~w1z_?ng_W-=9j4ZFMK5YTSpI={SM9Ujtu|g2$an7Pg zL)P9t>&49|Tz~%}9`BB3$K{@riIjp|zC`2Ala0c{Dg0~*fKm#Jq_l9FPto$Aa`G(c zC^?9*hf!&)u52!zIY*if84m~e*>Eag9nMV9S_5$T?t|H$+?R(HLNG|SQA!~_kMLLt zYaM#Bi%=Od!Tg~RX9Cq)y>s!(&GX6jCdL@7)}+G(KM3(Ma{vsJ?t$ySL!1FgErdXi zh6G_AtuA!!Zy%q}VA6|BYAPYhfWV1}t5uP8A_7jxvV~s;9abychk5l|?NU^#IFiSlw zmdFJ2NGuq0B!aMdLNJ%d8jEulrKZouSaQV*D24QW4z&@#|X7k4xCVi6am~Q(g);WZf47zPv-@X7a9~Sud z>hac}2&tZ=B%L4Z4mw<_-^pCR_fQPFZ3f*oOV@56yK(=K=x%q$ELTxpiecQz%vZYPmQBgoRRN3qS)1sj?4VysH6xdvxjay_vbC zvAoA{Mq{jFGq5~-xv*6&7yG7PFV?pL(`haNoO6+uP{?}Re?GT#b|k@2zXHHh0_))X zXp*}#^UaGVQmk&9ZVP)h@>8=5s}rYsS!)_r8-`q3kmjY!(TW^(KW4C3kxsOq zecy<<@pQj?2jae*j+GSnJC@;$rWHGO8Zn*{Yy^hodUzy8*>$tA1<0ip#yV<#8sZ9wOrIlolW*g8oP$2l@|VvrRE!IzTsCRX1N{`8;C7b%f;;B39{3#-hUby z^jO(y$MxYyt24!y)rhwrn*bckXzo0lUpu@9tst~~uC+)fC6m`Kc!g3Wo}9=!fZJEc n2MVQ1LrLLwBg;mx{}+A((5ndRpdD=-00000NkvXXu0mjf%Cavn literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/softsawbladeClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/softsawbladeClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..6907abccfa3289c38324ec63f61b2b959cbe64b4 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ%+tj&#Nu?a%^iUs^Bb8C9C1*TU}M{0 z00cUB3!8P$UX+s(V3q)ad;k7>PD)F3E7NLkG*Gs_6Ef+r!Y$`!MlrD^QiodPG?rZ8 h0fL^zo->P>88{S$<8;bZnSeGhc)I$ztaD0e0sxc*H;(`S literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/spadeHeadClayForm.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/spadeHeadClayForm.png new file mode 100644 index 0000000000000000000000000000000000000000..ee1b7d4f375c81510390b4d8ca7baf8551dc1162 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9%hSa%#Nu?a%^iUs^Bb8C9C1*Tc*3T0 zx3D?!WuNpD$qgmPdE2)CuQ%HB_rLIZMV}ughZ*dg+3W-&3p_cDH%-oW*wTJ1!)wWM aMuu}OGWqN}dW(RjGI+ZBxvX!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#H9!_&nv#Nu?a%^iUs^Bb8C9C1*TU}Dp` zTbRrcyP@PbZ`=0&^^Z!AD)70?_$(m(8nra5eBKb8@s#>l|H Xu}k{1h}#ogpqUJwu6{1-oD!Me zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00CS{L_t(I%e|9ZPEMA$OucANFZSY0+ASB+=GEJ?nk-I^y%(XzQ_auI>H0>_E+k! z%U@OS*mkhJsMoQ%5Bc-vGY#^Sj~h$VB=SGR!>#9Pw8b}1$v$Goi82>h8=i=rS#`Uo zs3m!ejf(h&#(CcEoXX4&4&L>&QwNwdU_60_+`{tSNM>sAwf{mp^@MbmC={L;$9XIK z@;7VVIl`xYPc?LjC1H)?ZI|pWu&rVJPwQ9au7jh&lGYk&iv?q-t)Yx9$wiC=UhjUp zHS*MPxVfMb8q5TYQv!zAW^xcZ1y*)`+^LrZ_%e8@m8;3QL8^ckAr-~tE+#9hd*A;m zwgFh)9Z51{2$>k6)d_?a?Od|DfBMf&O}DTzJQ0egCX%$GB*EF)hdPZoem~Ef44nJa0`PlBg3pY5H=O_WO)XqJlbyEl+a-g|>LQIEGl9-a6Tr>#%}A>->vO z4vNQLu2O%!XmwuE@|0kWDRbNm9yra+3t9)VMJ;7|mLetrYRQ@ld2muBOAKEQW?HyA;Gsmp*KoQf?6APl8Ch5AC|4-R#o%R+a&%Fv{%8)488R-=5tQ n-5{GXYiH=6$>+b6+A!`q#k010qNS#tmY3ljhU3ljkVnw%H_00AmVL_t(o!{wJD%7-Rg+&U)8cBO*VTaaqi~W*6XEKuGQZTmWg0>u3&A*?HAMvY=wxJq|&;S4c07*qoM6N<$f-3=0BqlnlDi--_ZQixz{A&5%E!YYYiW3z%v zz*JTm2v%v-6b6kJqWAzoL^~h2E2443PIl%#|F0BlBEizrpO5drf&Uo+`27_OFm7hp z&$p)aft7CGpJF!KRN%d)Dm&I!=huDw{iHs)I^1IG+;sOG*?#ER6aN4+2Nhg{IpC5KcQJIh1| zUNVEROkzvu8f=;U15drmH3shSlc}sGBx^7!kvgagjUu50Y~dNS!}mRRJn~|`(z^<{ z`_UuVqNJdwD;-V+iX17GN0LT$3Z(e5GPS+UpO%0-Gv>~D~9yF2M3$0k{XmK^zMyPzZ{Mp;b{+;mM*^_jO z9cH5nQ$nRW7S7QQmNIz8slgP1;1t$)l9>HPxwHrP;oMvN^#05H7PE`oILuM=#HCzf zQh+5z91DxGqO2p?2*E4LqyCSA*P{b?a(w!VHh;}Wa)KQBHEEWSFG-Dn^u d%Y{(^z-85>Kw>9EY7qbc002ovPDHLkV1jYxZ6W{w literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/tanninBucket.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/tanninBucket.png new file mode 100644 index 0000000000000000000000000000000000000000..168acfa8aad8e2f2e9e25751bf575fc5dda5ce13 GIT binary patch literal 417 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkENRXwGML~SAo#$_-JzR%fw7(W@ER<ovU(;u}P&)VXWM`AlJ_YOf&Cf*J&bT){O}bLh z_2SnGn|)F|Y#LpM-rZxIeA0zy-+8wq{pWw|)8~uW>DXt{cd=CVumOX|<&u|i%s-dw z=Na$*UDx<}*QDIrO0I&R!`2Jcr!t-Y>@s)R%lH4B1mo}iXOXvSOr7AM(e?=x(w?q< JF6*2UngE-6svQ6T literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/tutorialItem.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/tutorialItem.png new file mode 100644 index 0000000000000000000000000000000000000000..7b34b134b9f7c64af75614e136e5ec370820d906 GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE`fkM|jT^vI!PT!rV%Xi2@pw-??*EcG- zRe>>-h3Wc|haxNF8VdwW*cD_Lk7{yo@-=F3iL8+F;^IAef%ostB+m11Q|_HJ|NLNo zs`=k5dA~Aa`@_=nqA$Oh+4enk@hblnXX5Jl4t(8s>`F|CO0WK8Mvlj#41t@LdMNFi zX?*lNb6kC#l3?f!Nh^otx0wzI@a;|rj8bu9@lyMyZ=QkGM-1W;UpiZE)o`|W zC2{|_C*vW8oMe^*Kg}i|bId=JW`9z4lMyRJaB=Zhjhl6RLB}KhtZ?|zT*df)bzsp% T-WQBOA2N8l`njxgN@xNAtC)5G literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneEfficOneHead.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneEfficOneHead.png new file mode 100644 index 0000000000000000000000000000000000000000..307ed29315738e4e56245cbd7449312573ed6c11 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u*TEHF~s6@a)Jb_2(w#^P+nf%|A{|$m%U9=In^*@#*F{#ALM; zynWBvq<(jGui_Dx*@E-ur(0Y65&!#ZY9kORKKPP(>|%(44g-V8Nln&U3cD+S?qKkA L^>bP0l+XkKgXmHn literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneEfficOneLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneEfficOneLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..5cde68913afa158ab81b05215d1e1a751b055621 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkEhT{!yT_9JVgHfz=Is$fuRw-0@?-Sh&`fefCmelF{r5}E); CIa!bZ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneEfficOneSpade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneEfficOneSpade.png new file mode 100644 index 0000000000000000000000000000000000000000..fd908f262fad74c22756c812e7b58bce4d78aa3c GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^FvZiwF~s6@a)JbF#X+{<%l~iR`~Sb+pI6xKY`k4vO2z;7M#lMy zJwHtJg8~vjpd)_QWXB1ujR(CaOq`e@F2Eh}!L#nym(B%@5wRa0ea+tSSyDnmLd8Q>7K@uYaBd+Q;DO>gTe~DWM4fVcJ6{ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneFortuneOneHead.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneFortuneOneHead.png new file mode 100644 index 0000000000000000000000000000000000000000..009e9bbe3a897e79b40fa5c773162726bf947350 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u))*CF~s6@a)Jb_2(w#^P+nf%|A{|$m%U9=In^*@#*F{#!|-C-k>~0EXYBj`zW$V<0T9SU$sV$p#nr~j!0^^coi%n}ZZ^;@ N44$rjF6*2UngAX_Q^NoN literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneFortuneOneLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneFortuneOneLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..57f373474fdba1934fba9a5b44429ccde570f633 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^aFVBsV~EA+w-XGxm>hXr?{{4ldEC2AhF>ANGkn809kHf_onJ+Y zS2l_qWK}HV?tc8{%A@s8lcxXY{Il#=;+8szwW;ONP0N>Wnl0y>Hv5)A%Z6EtR`2ZQ zSk+a`_uf`>X`bo9pJh=87*=(4hzRTQ#jI=J`R(50Im|26eqZBR}%eo|OCgE5ho6af^bRC1ItDnm{r-UW|8&+Hl literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneFortuneOneSpade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneFortuneOneSpade.png new file mode 100644 index 0000000000000000000000000000000000000000..fc0b010e6924d50abbbfb8bb6b226ee9936108ee GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^FwxV+F~s6@a)JbFMPuxXS^sa}`~Sb+pI6xKtbKh=a>f7lM#lMy zJwHr7|BpFz00;#3m#8-@a5FbgS5Q{IsHY&d;lboTUtS73GH=+$aPub*5O6QPE4gk@ gh54*iY`P2#5-}>@%C_E423p48>FVdQ&MBb@01$sdwg3PC literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneHead.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneHead.png new file mode 100644 index 0000000000000000000000000000000000000000..b0692841cca25aa07cdeb99ce67531f22f108ad2 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u+-DVF~s6@a)Jb_2(w#^P+nf%|A{|$m%U9=In^*@#*F{#bXqh7tjF=p00i_>zopr03stt A*Z=?k literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingOneLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..8816d3be08fffe6e8e6b7b24abcdaffbbe318ca6 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u-DVYF~s8Z+X)+anGAVc?<;DFOEw8gG%Dpd9L~{T$&DvAdL;+lGT7OzZ*U|=w6RAzl(%lHfE6b4UM KKbLh*2~7ZLK2mA` literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingTwoLumberAxe.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingTwoLumberAxe.png new file mode 100644 index 0000000000000000000000000000000000000000..7ce2f9d65f6eef38074ad04876cc58ca436b24e5 GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^u)x#BF~s8Z+esUF8w_|@^gB+q9_Mm4ko8`2B4}dF4ks?rSdX9p z#eG}P|F4qVw=yKlcj>j6cek=m7w)T_Z4_N~SmLpP>x-SUCExXRELinq&f$_KX|{s$ zGizqP_}H*YNr~YuOJYb8_bk0ami?dD_dj5Y%yP`Re!$-zXg7nWtDnm{r-UW|s)z1 b76t~V1qyq2sqg&^w1&ac)z4*}Q$iB}>@q)@ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingWoodRod.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unbreakingWoodRod.png new file mode 100644 index 0000000000000000000000000000000000000000..f1a0037a232a7dca97957eb8bff4c2a9634d1b47 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^P}S4LF~s6@a)Ja$z&qW~^OertzW4vX|1`zLv)oPjlg@^mRG7lR Yzzopr0EkN`ApigX literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unstrungLongbow.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/unstrungLongbow.png new file mode 100644 index 0000000000000000000000000000000000000000..a9a4ad7b3c74aae7781a7f76acbc398bc6be75b9 GIT binary patch literal 1312 zcmV+*1>gFKP)wjLCe?0|EzPGP6qD@E$2~sWJ2U$+yPGW43$r`S+&TB$-}#;2 zIhRgkEz}!A5Qqo>;QO-fJV(DG0G3eqrey#Cm>IqoeS3K_$Fqx%;rS9{1Klw3KaI2?CNCM>0vaOo6v2PGkD&ECGNa1j-i&05g6^YUf1<@O|~HEv4|VOc5d!#g@b0 zJ;%qX-cFvnFoG|C{EeRO6=8@1kj#N@&|9djQr{rzQ1{&G6^HrZ6e_5KkDDM2$>`u00FL(APk%z>E+d} z9enuCS$z7{H39(3G!Bg?^`EpAb0vfIHc12JGKUSXpmv@p{7y@=#DDFc~`uW`^TB=r4&mq953#(qLzXE*j#QB2FdQJ#SHw9pC<-J1(pE`j2CFp@0V~o5XcAyp=&QR?L)9nYSNJy~=+q zui?SU2Bi}seD23IAExfVynseHo0<0}bKHHj9oK(WNqd}~Kd4eK)p#zsDPVwf>F0TACM`TbGFRqV+)H>jnb;X9! z+<|gOg%Spd*Ut>%i|=j|m8o30mLF7Pnsr!#$_90TdV4H%b+mC;M;qqzYpQwFg0ov> zc)F~1v|Fmj_x-X|3(}Bl9EsC?+qMBPO0Go7^}qnk_ut5ICYiu)(ZPIvEw-99+v7n= z8uc3-+Ba|B&7&=8V}5y^h}0_~mDi@h5JIiMq?aOqm>P%<>GMPFJ72fh%pCTDqAiuc z_;3%12)>qO$qZ(|5P)R>s^Q^7sS(FqzAx1gj~NCjB8s7GC$3zZBW?m`5DIFrSaT(e z(SgOnR+tu|LA;BOUt=Ipv2-E{0zpEe=#*j_4MoX)pH-?-)Q*dXk2eV|dXMTN#LZ3< zF$e_WAZ3)JXK!{$qA15fMu$kvs51nAz+(I1OElV W(*DYbX<#z|0000y literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/woodPulp.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/woodPulp.png new file mode 100644 index 0000000000000000000000000000000000000000..80d1d4262de536c7a9d334348e1be46a85914d43 GIT binary patch literal 416 zcmV;R0bl-!P)H zK~y-)wUfPS0znjozm)2a08tbH(C_!ZUto+O2m$~m zlL;ciZnpzKL<&pXQ_)6)M$)WT@qowYH)=NzrD-d9cda#}K_j`pyFIvW_bBh+qm(Li z;+8Qt>s8j#@-XDNyvhfg*)X}d8afuwcH$f}TjzDOOr0A`|vM@rx%=}$-^3XqoJoTmS=bW;?{`^BKQ4+lcEsQKt zD%>0yI0gta2zM~RzzW*ypN?=d%%B94Xzpw`!O6=l+fC3TFcT$s*bPP&Aoho%z5n@` zD$S(fY{Kb1a5t8bj4XCz!NYKK%#0tljcpI2Iql8q3wk*5*m{Y~LO|~h0D>%$RkUVg ziY1fXGH7@A2gWE$nw|no7(TBiMhcS{1zCj(qylr=`QO(wSUllSYbTOcK*j!$Pwh)$ zWRWS_)%63QSq(4@F#+T8&y6av-8gRG&FRe{Y{PO;UTsv#cY2maFZ%?q5*Z=9EJC|2?eEoJ$RdM#|HJD+*yEn%~1f`-~Ufp62 zZboYk7>8x>{dUjw&7Nfpe*5?ekChSN%eOlob_*D^^M7vUpa^3MYGg7}ggfER=ZhPT zj@q=Zh*gPY6z#{Cos|R}@NhB|NHMg-l zV~D%^LA$uTebT<$T-9(V0xHE}N$Qy*5saMG$0+^<9*thcVi0H;00000NkvXXu0mjf Dk1ZFb literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/woodenShield.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/woodenShield.png new file mode 100644 index 0000000000000000000000000000000000000000..01e9039cb5d5141f847551866677d3c0217bdd00 GIT binary patch literal 375 zcmV--0f_#IP)`Kc)$qbTq5tK-I?9Adl4-d%fk`x0Ev1XtlA z&+7H+q4OLsl`{zV2-^UBK%h%_y-bx-N~Kfi4M2Mj=du$7Y~m!$4|M^cAP^G-_7M*a z`h2D$M!pbRysd^bfIe3&MsOX?fq8NtRD88~nH`YI-sA#GWp8rSCxk@BJbGG2=f0cv}sr0q-I#^33`-bavqOoQc|gx=y|Tu5Y+lLArGfNV(9= zz6OwXp{b|cf}vgD*=qn&E^r-eds4>?-oA|hL>C*P?NvO!xnLBN(P(BviRt*~@d3jk Vm~19|ZQ%d_002ovPDHLkV1jGCnU(+m literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/woodentoolHandle.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/woodentoolHandle.png new file mode 100644 index 0000000000000000000000000000000000000000..ca7b9b4ec3a1b41da722f280a2071138d48b631c GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ%G1R$#Nu>vf&@pvJKfLn$I_JCH#3+^ z-w|*tGO7RZt9xPbYhkxZJO`G|%wR6aR6E5`GmBHo!NWL?x#MEbWrifvWYY$bvl46* oR!JUZC^9+Bs}OE{j>jn+Xm&!#;@*h?AXhVZy85}Sb4q9e0O=n(>;M1& literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/workBlade.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/workBlade.png new file mode 100644 index 0000000000000000000000000000000000000000..6c60fbf5a07ce60ca44d2264fc94fc15beab5ca9 GIT binary patch literal 479 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwQTTom_tD)@ROrVftiEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI0FNtyQhm|NW|gf1PNAU);s%ZfB%1bd;9;z-NqMB7sV9$FlSnx zm325#G|TFMy~2-r&rH_C4Hh7#{l=`B8JU&-ta7##oGY}p|;O<1cT;6)-g1Lyxo)>>Z+ RPXoi9!PC{xWt~$(69C|J$4meK literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/wovenLeather.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/items/wovenLeather.png new file mode 100644 index 0000000000000000000000000000000000000000..e88eb7486ccadf36779e86c063134cf14eaeea11 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#FJ*we)^#Nu?aPw|vL=NVYD?z~U%X^W0; zmFN&m7kZM^#=YmCK3BT1_PHk0)^O>F7TJ8qeVA>gTe~DWM4fh{itk literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/mcmod.info b/1-7-10Resources/src/main/resources/mcmod.info new file mode 100644 index 00000000..3c6b70a8 --- /dev/null +++ b/1-7-10Resources/src/main/resources/mcmod.info @@ -0,0 +1,16 @@ +[ +{ + "modid": "kitsumedievalcraft", + "name": "ForgeCraft", + "description": "ForgeCraft", + "version": "{2.4.1}", + "mcversion": "{1.7.10}", + "url": "http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/wip-mods/2296334-wip-kitsus-forgecraft-blacksmith-style-forging", + "updateUrl": "https://bitbucket.org/kitsushadow/kitsus-forgecraft/downloads", + "authorList": ["Kitsu Shadow"], + "credits": "An Sar, Fluid1C3, Omicrondelta, Maxx McKay", + "logoFile": "", + "screenshots": [], + "dependencies": [] +} +]

    5 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/sawwood.ogg b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/sawwood.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d8d2eebd886298abf8d239ffb4f1beafbc290af3 GIT binary patch literal 28705 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�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 G_P+qN5t}^# literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/sounds.json b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/sounds.json new file mode 100644 index 00000000..be05c3ea --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/sounds.json @@ -0,0 +1,9 @@ +{ + "woodshieldbash": {"category": "neutral", "sounds": [{"name": "woodshieldbash", "stream": false}]}, + "longbowRelease": {"category": "neutral", "sounds": [{"name": "longbowRelease", "stream": false}]}, + "tautBow": {"category": "neutral", "sounds": [{"name": "tautBow", "stream": false}]}, + "anvilhammer": {"category": "neutral", "sounds": [{"name": "anvilhammer", "stream": false}]}, + "cannon1": {"category": "neutral", "sounds": [{"name": "cannon1", "stream": false}]}, + "ironShieldBash": {"category": "neutral", "sounds": [{"name": "ironShieldBash", "stream": false}]} + } + diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/splitlog.ogg b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/splitlog.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2d0782b3e3a42ee1553f419cb5d8b7e6953c7b38 GIT binary patch literal 7119 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 P!C^xkQj1)VwqW=lP&G7; literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/tautBow.ogg b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/sounds/tautBow.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1a1271f3cffba838726a19661447c1d90b662f59 GIT binary patch literal 22114 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 y(i4p*Z^G%8COWO% zx|_!{ZgH9YgLd36yNFjygcOG&;p+N;AEl-I*$>doZ#o=a%3DRDLj%O{t_P#-d-}r> zM?W;Z!sX3V-@1qhUEt%&G)cJ$D9b7PN^kBHb}melz0oseR~bohpp4Bq-Rr&w@7!@*P>2pJW7ZD zQD$--?+R1-f(JMeQV@I<_+e;{Bx|SJvaF$qll(<}!(r z#iLW?Q_)&Q5m?24=hiLc3=1rbBTv56#ztSgFA�iV|dVqku=i6IkZA6bj_Z^e3w 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/birchSplitLogSide.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/birchSplitLogSide.png new file mode 100644 index 0000000000000000000000000000000000000000..a7a31841845ba8202c89bbd97c315215817e69d9 GIT binary patch literal 452 zcmV;#0XzPQP)O31paz6Xw;L=0}(J&W;c9ts)Dl*UXFO6g8(a-+-PmW6-FBCw&7i`fj5&eO%0{k&yK0l zdlKr5F|L7SZipxmupR@~BufFKajtXbps-M^F?7OrqC7kB+F_pr)vT5KLYy zvtN%eQWzOLH|JObRd}~JQD8g};_SxOi=~0w_KGJLvXl?cc0IzncQj$$gUlkc*m|Op z`1HUgMnR2%$wbe<3XWZHarXYeGiC`Y#eSZM2&j;%M8S`r`!(P$kkH&Y#~`!lJ^6LU u4ZO-=^Z<3vNaoh)3BR|K^$6rYpZ5<~>8Gl@!95HB0000ac`Lkm2`)VicJ$mzZO6aY8eB$cYw^6-0On&|TCvv@e3eV=J$+CYw?AgSraKrqn zdz28vEbg>prw=Q?`)9vkioTOi2ZvJAOhX>#Rl7>rg&RD&m)w6B%ISNkaMAIT5z&ld z%x#m4)4uLg+RD2%Ea0|o<0|Eq&d2?WaTJKpDXoEQRu0*mAw4Lfr(r`F4r2PExy&{XJ z)p$J_PpdH_F%?D>e=d`ckz~PYkOgka%Obo!FX+f3ff>mj#oKj~1tW^f2tRPg7VN;=b@H?rD#>LOBMT~tEKHloO;Ld;;h2e!=+DR^Z=ij4_YqB^0*0`e;5QNb z>?Uq15B918AhL)ojz|DT!lK1#Q4~nv_s3wC;+qNIo}KgP;?>}MbZDl6iLh8VxQ-6@ zn29UwBk;w9neb&*W$@vJ}`mO>gf~qQ;H%V1X2RM0y09;_b70yVg zw&n`%H_#C+dr=`XnaQKGE!Os2o8UIm%>!w5& zB7$Fzcr3+zl#2igP)^(4*l@}3I6@ZAqh2qcASHqD-kL22nJ&G@zKjmjMGd^#I&y5#Xni)b-2r7^T zZb}bZ=w|)<{UFQmLJ*406n6u_1&)XXwYgC>;JZLC$o&|#0FmeI8AKKbLR6syQH6<+ z=U{WAG8ZDB!~lpIJvtxvJ1=e|o6OkWLn96dWo6<9RyX}i8J!Rdj;R5xr1ipx)fMMC|)=n-S zg_q_u8wQI4)xnof2~A}!)>NZfvj`DGR;X?7JQt;zFlnn)~>n?G!PVj0sWosw}E7z5C8xG M07*qoM6N<$f~Ab#YXATM literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanBirchSide.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanBirchSide.png new file mode 100644 index 0000000000000000000000000000000000000000..70682dd4b72ca7d9d03225cbe6d797e4ca97b5c3 GIT binary patch literal 646 zcmV;10(t$3P)-&$Sc(7u0uxC@ zK~y-)Ez|3bTSpLt(XV@Yh7Ye+fR&*#QYH?}Fl=~9&b|He54r+41r$*7$FHAV8T@ut zetcWpE=pE0M2RT=`r5p zfiaY;4Qv|S$?3t@kr-N-O+`e7g&tNoS)9s&E}JZ6Ts$!t)4Bi)sZ1 zEsfexE=%xix*;2yVon2jLpGANKbq-I&=WwnVkLxs=ya`D6Tem zd2?SNfCyYns8+t;25L6QYAOPNF$S4}pj>V8+>RDJcT&|8wQ zK~z}7jh9i2+{zJ!zf;xH&W_jigE0gGjxYJW`5}4CKQbf_Ucv>h+1Z_ux~uZgl18)F zT+*;eXtdo`r_MQ5(!c)sk1XwX?n}WWN*Nf20kSb&E+Elb1wd|Of=LX+KqJWj3-L0| zOiBi3?#qAznnMacynn#V0BEfd)p$KU5q3}U`a8$*2htrfVLniXJBY?Sy#O!{My-{U zDDFKND-=Y_z)ZN$D3Vej^Ng7=>%Y4@nE?sKjZ`q}L};YEKU7M*=ll2nFijH(+#Mk@ zlZarRXC(FK5&)TrnK6t5AZo2d1kX#R>&giJ`|t1D`v{5`e*4?sd5ubuKoavj0}w5U z766zTl4z}wnPeuVlxtwM;-vsdv_@n?<`&?(T5FgY5gn}xL?q@;A(Qph%w!k_#&O&- z&P)!60}(+f1vA@%X&D?J-VsYcnTcu;(G%FC1#r1sXwj3Yb*80J+zT<)EwkhC$fr-A zu8=Kj-E6;M7~H>mhn8mvSPjnSGm>tI2k`j#$mw)~gjyR@RO~!oaPON(#Fj}&gmHt; z`p${~30ht-2}4X#sU%I=uf!I(nUN&200NUy7>t~gX_~gp&5T?RH=yNJLJ?Oq8l0Yf zl9`O-*h}GEu2;mw4m^ZFi3GIKb41Xhp#&?AQWTRD zEpDGdH3yS4DO<27$-`zLJ_H37gn=_6h052~uSS%_P93LJ~F=Cpx17BWV zXsz+_Ey=ov?+j=CF?YVc24PaCdV-m**tsHNhfWA$Bim%liXT{d7d{O)mFg@$HRf@!Z1ku#%T7^ z+kD~wT=|RMvA1#|T*A#TjPiQ9(B|ZHI&Cj~{``6C3ueYV&)apHrW?s>Azy2)^P$xn zQ(Mtk1Cm5W(k>It4Qtt`wX^ufV0O^It>L=i9x=09F8vusz62PpQN~Dy5?%Ls)%<$D z&vu%o-cEPKTw%Ywynq?6&!^iYBv?EHv;HTM86=_|XO)J(*Q8+U_M$A_6%#MzjX9@}QK`QE@GeGk$@rNCFT2VG??Kb%`WN6Qz_wwgfsX z`>fZ0`ts!qErN0wF?aN5C7#<>!p-{^o(#i4DFv6Igdi!ANh!{{>n1~z$WFEv4Vlp* z$o;JFi}shTkvk)b7O2>@3+Ccth!hmRJ3tyH-L_yC4<9~Y%fSMsOT8K01lZeZEJWKn zW+pKQ2x6{8YcvPRDJ}a{Y`-8?1}Keepw!mi*Mr4%9(+r}J(7DaZG7CV(jq9{jilDf z>2%`p@sR-T?(TY*tM$#y-%DX=lkeL}3Aj;KAH^$X-jRubBFf?JjyA;>Wv!Lx=Vv5i zzRWvc2(%b&Y_TYFvt}l~YJYP?EyGMwE@$JY84W|v&TPGz{=XJ zZ-z@S3d;VuWiqPfg$lkAR^C6!(w6z496$}rJ4(%&)_(HaU;lzKK;EZdz{i2AMA1jI z=M3g)CijyuUnOj94t%198%jX-2eVmcv4%A7~e8gMy5gA9`BlWPtH z!qm-UYQ_}v^>7z+s}vcQ_Y4|P%s}TwZD%rtY#;^M`n-@0QU@}R{0|K>VN15Fr<4Ey N002ovPDHLkV1gus`T76= literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanDarkOakSide.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanDarkOakSide.png new file mode 100644 index 0000000000000000000000000000000000000000..1fcc404a84f42208d53b5bb181a096c010108d14 GIT binary patch literal 554 zcmV+_0@eMAP)3 zZ;m7kqgs4^FRrs_L8PG;5yoQ=K0Y?GN&s9Xw$(@?!vS%v0%NYg4cZLD08opR2B51s z&SKvj1go1WQ7yW`9n6eyFgIFoT_U^Yu}Zj$zKhSZS*!0jxH}n6#I#X843itt4J6?} zH>?_f22|hy5k|OC!11++Fmg}l?J*f(P>prH%OL<8%#b~V`TN(rtd z%%N{>*Ht+1A1>5t*L51V!2kdN07*qoM6N<$g2fE$#{d8T literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanDarkOakTop.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanDarkOakTop.png new file mode 100644 index 0000000000000000000000000000000000000000..e87d0c87533a0f323c1f46dcd22d4db7f1f17df8 GIT binary patch literal 537 zcmV+!0_OdRP)p81&V$IO|o6@N+SCqTe~hwzz}Q`oZ-w! zetiEHm(rNBf(WA`063ls*;4-xsHV}ZBgVus6CoaV~+-LqQmE);! zTiKK^pJ!})5rM;pX`rj7j-W!V-q}Tr^W}9R0*nYsZ9G2QV=8M;KQ*oAN?SzGl&H-I z69aIMv3B!-h|%O8q|~)BQ^0pp8UIwRjkn{4DJ!OlQv0A%8;ARh-sP^-3Tgl;38u0e z^!)UZS{k;h|MS=T6;%aYStUep59T>D&l&e1o6@RtE{$a=wCZH*uG~0$W$^H6W?8yT z+rAMoQ2Gkal+!T7JrIFpD*S#skDbn!MyZ{8w*IK4op85Vv$~2z1R_GV#B#2?odIfd z=1GT*!n!`Gv{Q#KLd=w$z;tSRk8)Fjs+)#@V^n^0SA z!$n%q byUl+ARXOB1#T%C}00000NkvXXu0mjfQ@`xU literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanJungleSide.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/cleanJungleSide.png new file mode 100644 index 0000000000000000000000000000000000000000..24e5eede44bb362077b2c79e28c949a72fb96a14 GIT binary patch literal 542 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 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/eggwashbricktop.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/eggwashbricktop.png new file mode 100644 index 0000000000000000000000000000000000000000..6dbfc94f2885a83cfa8c21f5867679d2bfdd1770 GIT binary patch literal 2072 zcmV+z24l1P!P zEf?KYXcG_wiWKXw^PhA6L-C*g{x6$GBa$SA$TW>063a4kA4gU{qof29&UK_Ln3t85 zq3Z^=yEk-0&;4>C6AA0W<$7kiU3q$X#5qU5*&>Bz4G|wao6Qc>G;DVV^yg0>`1{X4 zXCXw=TBmUwX_`jnoaOm^7C>&ACZ?Ce7?Zc#E#o+%ltL*b)^!!@x=Jafu-3}9ZCTe< zNGXw0W+8+)olXEWO@p;o{NrE$l>4l;#28UZiJUXzIFfTlDTUU0{q5UV`_mu)jP&!& z>2!)h2s)6|`ohe|06LMWy1-gCd- zY1@{jX^1hht}8J{wAL77xZm#>W0G@jIqddmZPD-EJ>Z-ZN~v1u@pwdQjrSgFEmBHC z2;A>?nxVvJa8D=O={R@9VIq?DNFSqLF?V;ybd(8_2&eE6W&bww$~ zFbpWA5JJ?R6*xl(^nDM2QmVGAEMl!?nkL$|twnh6>nEjzlv2bPJ0AjxjI`RZ*=(e9 zuJ#$A>pG;A2q9?Ow)R;{3GiJTthMBvD+ymizuj&tLZzs-Z5;@PZj1i(=@WnX)9*y- z=k0c@J1-~{W*cJ=&#ED%#D2f8s7=#E2mv7kT5AAqw;PAUfngXbvH*SG%cki#ogdNT zedOJ{cYONviFuw0A)u5Z#>j5B<9IxhbEfM$lu|rCK9W)*rNr@gWEcjdlxVFpWy-#>J{uQ#79T{V)jtesL zJXhBP5JK?dk3UxOmUgb|TG_9)rfHhzYa%d?SEP`Nwry*#uh%QnG}VWe%8N|P??rks z#-eXhN<2I~R1}Oc)fMM?=GR|;65Q4lsJrT)Bo(Xo`?RKcNBVvffnU%!3@V7uKCLa2Rr&atj5m&=859L4o|K}m`B^NiM7lpS%3UkwL;u=9bMN|MHDHPBgIH#8?@1eoU<;jRoLvDW1i<~Amst)^SL@= zal@jL7nj31hxeYgZIM#4u4^TxF$QZbo4%*(2K3vv4+tTo_g)m3x7#f#C3d@AB~mGB zzu#ByFT5#(NNZi?cD-Kfe}xcy{`?uGRBdz9I6C(-j4qdpDsX%6nWm}kS_n}|Sq4^t z@-+#IVq%Oq=jghQ%jJS|uC_78$m8SVv!Y@m0orPZ_uiBT6w55GSLS^gK(7}q&Q~nB zX&R(F0-K+l(m+Opl>(m&!0c>x4-^Dmo!u+S0Px*1I8G<_gt@6lu~qE_npp5 z5ZUkdtn13@bV4b`e!s6NN(jN>aCmXomecu+zK&OJD7J0e+W%!)P)gO&Two3% zV2oj&=PJX3TFC)Y%9?=6`LZlEGrlA#8RB!?)A>c)F-9LkFeQGKVDfr_k_STwc<(DW zN>~v>)azR7nj_17FH%g_T4`NF&Iv7*CTiba5!+iUg`UuoOAB`9;H+=#)xMdZluftazsYIkaL!O-}_}*7=}S~U8jT)+Bv5H z@&5h$@7@R6w&mgB0b>k(-=npzUa{G1@ZRUPZE4$KJs`zlTxDJ^v`W;9sdXa%3)e3*;&W{0000+}2o literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/eggwashside.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/eggwashside.png new file mode 100644 index 0000000000000000000000000000000000000000..d702df6ce27678db8d6e7e8bee051f1fbd165a45 GIT binary patch literal 2728 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 To+2``K!psRu6{1-oD!M<+eRys literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/emptySoftCrucible.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/emptySoftCrucible.png new file mode 100644 index 0000000000000000000000000000000000000000..5875fe9cdd0e87ad7e7a4e2b6c39ab2278b46ce5 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE(|#gr3|wtq#bktif|Tq zL>4nJa0`PlBg3pY5H=O_IuoXA_~kYzV9=ELXst}5hc#~xw)x%B@E6*sfi`2 zDGKG8B^e6tp1uL$jeO!jMY5hQjv*GOlh@?NexBdRbl`}CqJ(L}m4-lOwr)lSnSV@Y Ub@uFVdQ&MBb@06Ts!e*gdg literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/firebox.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/firebox.png new file mode 100644 index 0000000000000000000000000000000000000000..1a5bea28875630a6ad73951963d74db54e7f7af1 GIT binary patch literal 603 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 GGywn$Z7GTX literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidFlowing.png.mcmeta b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidFlowing.png.mcmeta new file mode 100644 index 00000000..dd1bedb1 --- /dev/null +++ b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidFlowing.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": {} +} diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidSlackFlowing.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/fluidSlackFlowing.png new file mode 100644 index 0000000000000000000000000000000000000000..ea4592292546c7c506b02e33b375ac752c94d2be GIT binary patch literal 66443 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 R!GHh&002ovPDHLkV1j@rfj<<6{0wYO8 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 R5f`9B22WQ%mvv4FO#nxrFhl?V literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/hotRedstoneCrucible.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/hotRedstoneCrucible.png new file mode 100644 index 0000000000000000000000000000000000000000..a0749ff0a1edfa280a788733e05a06e6b29bc184 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqk07I&LKW-9KA@0fiEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI8c$Sr;B5V#pz_5*(*QKZ)7@f#6eNQG~r4^ATwJxBg4xMrpB1P SI=g@h89ZJ6T-G@yGywoqzA-NV literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/hotRedstoneIngot.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/hotRedstoneIngot.png new file mode 100644 index 0000000000000000000000000000000000000000..a9df39344992237f03845e0f685d75ebf0adee80 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)3H^(Ea=DKR^-A0*}aI z1_o|n5N2eUHAey{$X?><>&kwQM}R@!(CBoi8Bj>F#5JPCIX^cyHLrxhxhOTUBsE2$ zJhLQ2!QIn0AiR-J9H>av)5S5w;&k#KLE+Ey8<`FqaZr>nO}Nq!$jsKw$e{X^>HJ6a RXN*9F44$rjF6*2UngE~8FKYk* literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/ironPlate.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/ironPlate.png new file mode 100644 index 0000000000000000000000000000000000000000..317749d7ca6a338eb0141c39dc934e0f162c10d1 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqj{t+V+SL-#uRtNm64!_l=ltB<)VvY~=c3falGGH1 z^30M91$R&1fbd2>aiAhOPZ!4!i_^(-%yMtlvvDy9Gq)yOX$WL?x+2e&>EW+$ SpJIV389ZJ6T-G@yGywozG%yDM literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/jungleSplitLogSide.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/jungleSplitLogSide.png new file mode 100644 index 0000000000000000000000000000000000000000..f4e7d80db0e5f6d57541729183c3357144d02f95 GIT binary patch literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=Ax9K$x*B?{5)MkiEpy*OmPqk31I-@3)_)0~i<>#XVgdLo81BPIk;YY{0{k?rHgw zx%wUdui14Auh*^b$Stf62ofm^m@Uq@$#z+p#>SQF`^~Kn>~+??(U!x|@!;#<;QIUh zx(S-f&QDm~nL1Z7^W0c=t1LNAY?ahPKCwd@Oczgh9%oQoWyO{=;lU)~n`%oe*!IMz z=Oi;Ut0^IvthTA*JPbr9=QeoWk|93EVt?rp0Gon_O9u?Ve zX}Yo4Ge5N(t|wYdzU*ZFE5WcVYe_x}W9?gKZFQrJ%PmJf)W`o{{a1$L(ZVy2HNG=S z^7lKXFjsx~}+)*!%i`>a$$N8+j}i!2!H_gWcod~RFD_?&4L_r)n% zae}3XzrAjryW}!M$|SCP8^axA5<|_uEIq!)j#psf{ark)=Jzf|dViV6+Wnc4;nDOS zy~o8WKe&V~AG0`=KKNVg+i}?<+ilLD-^Y|2W?sBwKKWpV0^iEkb+7r}=>0s+A1>ti U$1LKg572`Qp00i_>zopr0C}Q>p8x;= literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/lapisCrucible.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/lapisCrucible.png new file mode 100644 index 0000000000000000000000000000000000000000..5adfcaa57a81dd9ea5b13807408ad7d98095ff8f GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE(|#gr3|wtq#bktif|Tq zL>4nJa0`PlBg3pY5H=O_IuoXA_}@YW&&^HED`9XhN=+<>&kwQM}WbQXWt{WA3!0=64!_l=ltB<)VvY~=c3falGGH1 z^30M91$R&1fbd2>aiAhuPZ!4!i_^&^e*6B;Z)7@f#6eNQG~r4^ATwJxBSV@1(}EIf R@tHt{44$rjF6*2UngIGjFNFXA literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/limestoneRawSide.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/limestoneRawSide.png new file mode 100644 index 0000000000000000000000000000000000000000..254c2ad2d844dfc741afd5553fa2ce6f920c7c44 GIT binary patch literal 2855 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 SW*-NtWbkzLb6Mw<&;$VRkuWI$ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/myEmerald.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/myEmerald.png new file mode 100644 index 0000000000000000000000000000000000000000..ab4b8c8b871065345f42c46970e2070e400d4277 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)3H^(Ea=DKR^-A0*}aI z1_o|n5N2eUHAey{$X?><>&kwQM}WatWoP1>2B45+iEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI8c$Sr;B5V#p&db_X0o9J1{0BEfDCDGRQixg0cB114D`ynq R^MNb|22WQ%mvv4FO#lT{F&zK^ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/oakSplitLogSide.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/oakSplitLogSide.png new file mode 100644 index 0000000000000000000000000000000000000000..aaadd5e96dadb15d9abff5d100bf7e594185de94 GIT binary patch literal 434 zcmV;j0ZsmiP)Lbj z^|SBWz=p`g1=+;Ai}>_$<;%Ap`gcB_0SNr}Q~MLf2G?Pld~Q63v5gdjgc?Yq41M?< zaJzRTSQ;#?k*#4DeGYD0odbG-3>m??Bq1mVZ@(s)aSpg<&{`6})(4?rPU8q3W4-`b z6DgPz?vFu6P!6DB9Wyv+ihvfyvVed-3u6Q{#W|qQ2@xnD7ZCwsvZT3Q+PQ@)QB|x< zj c95}A=H!qH*wW%xo>_w%iJx!t|^#iw?98*`+` zo4w(0J^E*65L?{6Y3h=(0=gUT)m=W-_n|F(`PMd-U;iF1axIKUv>SxdY4HuS|LRu0p0jTDo$z0>@2JUIxXm z!)4|#@PMy@eX!2j?D}H@Erf1XLVIy_It>=JFY4fKp!!9y85}Sb4q9e E0C=%@&j0`b literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/redstoneIngot.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/redstoneIngot.png new file mode 100644 index 0000000000000000000000000000000000000000..d5e02af4964d7ee59c5b4341e855fdc4fae12fd4 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)3H^(Ea=DKR^-A0*}aI z1_o|n5N2eUHAey{$X?><>&kwQM}WaZa-D}+7*I&E#5JPCIX^cyHLrxhxhOTUBsE2$ zJhLQ2!QIn0AiR-J9H>av)5S5w;&k$y)9b&@Z)7@f#6eNQG~r4^ATwJxBg4W3#*e4} SDD4C)WbkzLb6Mw<&;$U;jWGrQ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/refinedIngot.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/refinedIngot.png new file mode 100644 index 0000000000000000000000000000000000000000..9bf7786639cfd41027ac0dde3c2799c5ca8ebf1a GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE(|#gr3|wtq#bktif|Tq zL>4nJa0`PlBg3pY5H=O_IuoXB1)30B}*m(g(OQ{BTAg}b8}PkN*J7rQWHy3 zQxwWGOEMJPJ$(bh8~Mb6isU?9978NlC(kj>zE;o1#URYwnsB8dklBq_LI>!Id2gBC UHk@kT22{!5>FVdQ&MBb@01PlKfB*mh literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/refinedIron.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/refinedIron.png new file mode 100644 index 0000000000000000000000000000000000000000..f7a3e19d3478f0a4122fd456dedef3a8e827bbf9 GIT binary patch literal 711 zcmV;&0yzDNP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00J*bL_t(I%O%fAmK-+>K*0|X zB(sK=LjL;u&ph9gTfK9NQv91zjD^soVsqiYHv0X9axpZ> zI5=3me4+alU~t(7@i)a36UUY#GO%74|8%6C%rs02D$a=D2L~`{AhWo|m+er<~1Cs+=nUo&P3*3~W2(g`OSK2$tR_HY-D#R>AH*!J6nJ-6g zp=e2VgTi2*0|GQESE-09N<)?qVJN}c&TN(V0wta6{6XIX@y5M$wkA&-++=Y-3NxIU z7ikN1xMxrhgoR@8Q-9;~#0vOLU_rQ&y|LdX4>z(Xrb(czRxwk=8~S-G-o7aNWNWZ5 z=V*=CjsUAP!Z$qwpPf<@A22SMZKKUPIwv19a&C6%?3~1Lz?z_isE!n6*Ef<29?6J- zyd6aba~s_%wj1FS2lm+1fTAZ^DzO`1wKDP#`U@V&aRlwp4Wbfl6iX%~au6RrK-Z5+SYPYZErPWg{cdSj}tW zh19~hKrZEwB#Ki=>b)>*u;yk+;}%Zq#wwt#G@2#$?-L;zhjSf;ilKVo4(Eij3_X$` zy4f0B6nue+Cf6w3ZYP=t-2=i=0@jOd(6dq1aqBFZEC+cxw`WIRb7KOoiu*;D$!}jo t`@dAP;Qr=QEBjiE1&1__mgM(`{{ViWX?TTVphExv002ovPDHLkV1k8&FeLy0 literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/shelfFour.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/shelfFour.png new file mode 100644 index 0000000000000000000000000000000000000000..5396b1320325417eaeb908d3833100f5e26638eb GIT binary patch literal 805 zcmV+=1KRwFP)?c1gNB zJL9p(_Gfd#a|e(5<>#M@w+naoH_Sc~eBh#A@#EV!Boz0rc0B&|p6k0?>h*?h)zfcQ z)NRevKcCR56qHsdrC6_5%+6B^gk?e3H7P}&9-nyrd_dO*5RPAtH3y=nrM|`F~Y<9N5#k|68dmB;g*F|GMjZrObN+?q(I#met7em+p8=3&4%6A zTij$>{D`*}$q92BXLdK2#3doQkaK3TGa)64^DN^`r7~@2*j`)^Qoz|636Asei0)Sn zF-6Yfg!i7>7+y{j^EgsBHT%O0`{w~W&De2ZI*+(%z*@`VJtk*im=deDCZvMM!nSXz zS1X=AJ~Eyr&en6bGxe&)#*wC}s1(@IVwNS4b%pf{m9E&XJ5Y+}{Q;>o`{#j>gmIeL zZr6kmna(3QgY^#c@p+){I<|esy6gD#a>6Lh-B&A0sW^^~!8*K)oQHudaHNnapcQ6z z38NFa%(QJoNrkKnF$q2_xELrU6D8q8;BYvz+g(8}^nHVVb#s9fA;ye#fgl1DQixc) z;C-a2Dq4^dg@U96B{O;tN?~InNybzf=N7*I_LlFyxuNL7 z!-s#Fokw3^_B5tKM93u*L=Y+XCE{jJ5FtncVBH$Du2|QaO=o!c@EP54nC zQJT6^|Gx{Hwn9=SXCbFV2n(lS;_d4@v<4Gm;_L#gsR&6(si4SMzwl+SxFwK*>(r4; jVVoS}x2- literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/shitBlock.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/shitBlock.png new file mode 100644 index 0000000000000000000000000000000000000000..962b2464f09b2e3e6722321e329ca0222042378e GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjsyb(BfqDMV~EA++Te}rnhkjNxZh)Oc3HwV zZ>7YK&QxDxuNRKQx!@Ve^(b@z`Sb zmd-t#@=>aPV_*LMrp>)FO7&(~Ro!>(?76nmJaa8Wp1$q=z$Rf8K4rbi$~m(=z677( zNb2MKapGC6u$gE|seNnDg1=w3naTUD-D261<91=9`McMerpCv6nb&Up*5Wgz-tn|m b37P)f)x^g;l<$T>gTe~DWM4fYj>LJ literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/solidFilter.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/solidFilter.png new file mode 100644 index 0000000000000000000000000000000000000000..dea287ecd328859bf6a075ce2d9d8cfbdc49219c GIT binary patch literal 580 zcmV-K0=xZ*P)aTJKpDXoEQRu0*mAw4Lfr(r`F4r2PExy&{XJ z)p$J_PpdH_F%?D>e=d`ckz~PYkOgka%Obo!FX+f3ff>mj#oKj~1tW^f2tRPg7VN;=b@H?rD#>LOBMT~tEKHloO;Ld;;h2e!=+DR^Z=ij4_YqB^0*0`e;5QNb z>?Uq15B918AhL)ojz|DT!lK1#Q4~nv_s3wC;+qNIo}KgP;?>}MbZDl6iLh8VxQ-6@ zn29UwBk;w9neb&*W$@vJ}`mO>gf~qQ;H%V1X2RM0y09;_b70yVg zw&n`%H_#C+dr=`XnaQKGE!Os2o8UIm%>!w5& zB7$Fzcr3+zl#26fq1%&vhn?7J8u<8lejcp&-gZkC};m`N;4UDlpy4MYd)9+8w?4JDKFbb+deGv99*l(6Oz&b06N1}) z!S=f!{wv`_7i${oucQSCf{*v*8nCTJOS2DC3APzoH2Ltyg#_D_=M+Xkvl%h%J@&e; zppHpp8rftCV{q~IE3Yf~xH6M;h8JzX3_EKa|jv@!Q^0FR6ON&S;t zlhhn`^-PT1)H(fw+P$O2OT4;5g7zIbFVd!ZBWNLGiD==0y~+-U^eRpI=F5NleEsvk zJC}GJ^&5rvs44d!d|9*e^b*rmtNe;tSQrm1jQX;c`I7|`?^MpaFL>V7@Uq4}yUtj; z>(4P?CO=~lbwmIF literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/tempbot.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/tempbot.png new file mode 100644 index 0000000000000000000000000000000000000000..28239cbb3c6d24aa3b3d1570c1100fae505bbe0f GIT binary patch literal 603 zcmV-h0;K(kP)udMWu>c`(A&LO_Fc^$ners-yqf!pp7pkU&)&wzMX*mdskVv}RqYA)l#>umv3SeO5XhZg#u0fX%8MUC!Oh>v~(+ z4p%-?52ByI7h`ykWdK}mw`V&E4|u;_w~YbdR1l2#Emnp3t?~gVt=%oSi2+)`5#Q%V zk^u0vcHo;T6{|_YSt*HyAQpmiVaT;O9`XU`RRAaU0N%F?oQ$>HOH-H`rfTVl=YX-6A7#m>!GLFZ&gWVL3~)P5#}1;6qQKP7dZ-ivI3^_>A@FL0 pO*B6w4L}3X05kv%Km#yqfM4KoygZ2%>gxai002ovPDHLkV1jR02Pgml literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/tempside.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/tempside.png new file mode 100644 index 0000000000000000000000000000000000000000..d55383038c9b5c19d71808873b2ebda190bb50d8 GIT binary patch literal 821 zcmV-51Iqk~P)NEC4#$3NrF?4hgM zu|~T+XyLXcMU-rN|vTGYmT`OASYL(!oy!mHdekU7w>|tny*cPQ&Fk_5zfxvvU5l zkG7T|;AfWs-W=fDtFlx84G(9s^|$UzUMPRMv=Eh#|fi!f7Xm=gTcW}0>H@83n3 zFiEe=b4h&s5Y>;N!64usZ;X#!Bod?cn!@!fezxq$O8AlAAHy~zv2XhOx_@XK+S{F= z6NG+ypub6y!17h;?62rf`rT?3kUbjqY<-zzk3M5&i$KM`p-ExmV^~w|N7E9o1XPg?apms_HvJ@ofIaP+W;=g&f@0S#5vc>OBOrE@;!7n+kET)Zru zhfONYO)6fmhS#gne7|>-_SfCH6`=KT5XG+%3dQJr8Rkr-+*g8~yKS^Q3Q~JrLH1}! zl7M5BfdxetX3kCykUhe{_FXpWY82{kC`h8fq$x($Zm{Yy<8X>>E4R^bQ=z6>LDOR7 zj*(cjq<4CR)ODN!NCBh(QUED{6hI1KumOGoTp$22<;Hhq00000NkvXXu0mjfVR3(B literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/temptop.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/blocks/temptop.png new file mode 100644 index 0000000000000000000000000000000000000000..323e0803bbc7335269577968b5afaec17e73b0df GIT binary patch literal 377 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 qj{>eJy`?vrA02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00S#YL_t(I%LT#jQ`>X^z~N7l zZ<4l2)25UGZTV%bH`tYV;I>mwPtQC5uHE_0m;N)}^o`!(;lz1PHU@*y7AU2(q`#B2 zX%e4D`r)S^V|P5Evh@fdB$}63TwT;zEpJjgJ!QR8A#GXcy3TJuzrf67@I8;uzx{?V zoFN8X2dC2|ledZH5wBnV#pQX8POHV*Cm&%LCc$h*tJ!2>d6CXdn}?69OuaFR&=F=f z!&0fptNjDwIAqfJKuOjZI34a=7O|vqdGwN*HzAT!C<&7f$0sCGDTcj1!m=%_OqP|k z5?6m8u%68mOA(i{O)9#|6vFiF9y!ZuoJmf*Ki0q9gT-O^U69#QJr`sSyMr;cD8iB2*C32Z~)4?|>0C0|-Zq*6(;l^r~9f;*Y9l(h)vF}YEj znHvzOW1P^%E^f26x6ASV@2IH`cl{xSWD-$%RAs5y$9E@qzK3a~d4GI{Bw}1|j4Qc_ z2isJiJs}JtcE0|OcSrxB>pgZp+eLZ$)zjx;5OLqR!(PnePd!p*idNsHJM|b&1;vd` z6h&b?=#yVrW_5ED;*hiBQxwxMpAUL{N*n7K=`=!B8TER6T&*H28h34n@n}r%-XWW} lQB{qj!&fxx*CY}N{s*|rhFe6?kL3UW002ovPDHLkV1lTjtakta literal 0 HcmV?d00001 diff --git a/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/gui/cannongui.png b/1-7-10Resources/src/main/resources/assets/kitsumedievalcraft/textures/gui/cannongui.png new file mode 100644 index 0000000000000000000000000000000000000000..d1b84ffa6ba4189f411202145dece1c8f8e80a26 GIT binary patch literal 19902 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