From 0c9c8100adbfc270b0f91dc926bca5f9a5c2b87d Mon Sep 17 00:00:00 2001 From: Progwml6 Date: Wed, 11 Dec 2013 23:47:07 -0500 Subject: [PATCH] manual merges of up to 9a578fc --- resources/assets/tinker/lang/en_US.lang | 9 +++ .../textures/items/food/edibleblood.png | Bin 0 -> 358 bytes .../textures/items/food/edibleslime.png | Bin 1091 -> 399 bytes .../textures/items/food/jerky_blood.png | Bin 0 -> 448 bytes .../textures/items/food/jerky_blueslime.png | Bin 0 -> 474 bytes .../java/tconstruct/blocks/ConveyorBase.java | 7 ++- .../java/tconstruct/blocks/LavaTankBlock.java | 11 ++++ .../java/tconstruct/blocks/SearedBlock.java | 12 ++++ .../java/tconstruct/blocks/SmelteryBlock.java | 11 ++++ .../java/tconstruct/blocks/SoilBlock.java | 2 +- .../blocks/logic/SmelteryLogic.java | 19 ++++-- .../tconstruct/blocks/slime/SlimeGrass.java | 4 +- src/main/java/tconstruct/common/TContent.java | 7 ++- src/main/java/tconstruct/common/TRecipes.java | 48 ++++++++++++--- src/main/java/tconstruct/common/TRepo.java | 4 ++ src/main/java/tconstruct/items/Jerky.java | 46 +++++++++++++-- .../java/tconstruct/items/MaterialItem.java | 5 +- .../java/tconstruct/items/StrangeFood.java | 26 ++++++++- .../items/blocks/CraftedSoilItemBlock.java | 2 +- .../java/tconstruct/util/TEventHandler.java | 6 +- .../tconstruct/util/config/PHConstruct.java | 55 ++++++++++-------- 21 files changed, 218 insertions(+), 56 deletions(-) create mode 100644 resources/assets/tinker/textures/items/food/edibleblood.png create mode 100644 resources/assets/tinker/textures/items/food/jerky_blood.png create mode 100644 resources/assets/tinker/textures/items/food/jerky_blueslime.png diff --git a/resources/assets/tinker/lang/en_US.lang b/resources/assets/tinker/lang/en_US.lang index a39912511aa..1757b83f47e 100644 --- a/resources/assets/tinker/lang/en_US.lang +++ b/resources/assets/tinker/lang/en_US.lang @@ -31,6 +31,8 @@ CraftedSoil.ConsecratedSoil.name=Consecrated Soil tile.CastingChannel.name=Casting Channel tile.slime.channel.name=Slime Channel tile.slime.pad.name=Bounce Pad +tile.blood.channel.name=Blood Channel + MetalOre.NetherSlag.name=Netherack Slag MetalOre.Cobalt.name=Cobalt Ore @@ -271,6 +273,8 @@ item.tconstruct.jerky.chicken.name=Chicken Jerky item.tconstruct.jerky.sheep.name=Mutton Jerky item.tconstruct.jerky.fish.name=Fish Jerky item.tconstruct.jerky.zombie.name=Monster Jerky +item.tconstruct.jerky.blueslime.name=Gelatinous Slime Drop +item.tconstruct.jerky.blood.name=Coagulated Blood Drop Smeltery.Controller.name=Smeltery Controller Smeltery.Drain.name=Smeltery Drain @@ -483,6 +487,7 @@ LiquidMetal.Ender.name=Liquified Ender item.food.apple.diamond.name=Jeweled Apple item.tconstruct.strangefood.edibleslime.name=Gelatinous Slime +item.tconstruct.strangefood.edibleblood.name=Coagulated Blood item.tconstruct.canister.empty.name=Empty Canister item.tconstruct.canister.miniheart.red.name=Miniature Red Heart item.tconstruct.canister.heart.name=Heart Canister @@ -606,6 +611,10 @@ achievement.tconstruct.dualConvenience.desc=Kill a mob with a frying pan, and th knapsack.tooltip=A Knapsack to hold your things. strangefood1.tooltip=It smells terrible, but if you strangefood2.tooltip=have nothing else to eat... +strangefood3.tooltip=It seems edible, but somehow +strangefood4.tooltip=it's just not appealing. +strangefood5.tooltip=Stretchy food! +strangefood6.tooltip=One vampiric appetizer hambone1.tooltip=Hambone! hambone2.tooltip=Usable for Beacon bases metalblock.tooltip=Usable for Beacon bases diff --git a/resources/assets/tinker/textures/items/food/edibleblood.png b/resources/assets/tinker/textures/items/food/edibleblood.png new file mode 100644 index 0000000000000000000000000000000000000000..4809b05b6282c97c8732c46944f6c1b17d548c78 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*OmP)4=1C#**QZmL7<}g9rs5A&M5R1z*Ca@FjxQzD7_4k+^ae12SWz zi-d`bb7`0sqct(Q)wtu&Y t>kc2E)D!R1(GXz!B4r7!ktY5hd;;_6Yo{oOPHF%E002ovPDHLkV1iO=sj~n8 literal 1091 zcmV-J1ibr+P)jnY*%jIxDnL%_F93RDULjyGMT6ewy|l$VB> znYd)m&A6V4K;S?6#i&>T>`y;-4&Vk#tRTo?8_6tvPa&K>%`~95nIp^t9 zm1=P{M8~>=5K+N0q8pRg zc5R%$V?N%)Ve}tjQQe1oVemFV<0^%=+znG<0TLXq!|F(g9$3R@;FhV278 zuTNm57(>e3a^e#XqyJ-JeKnHy@8hfFE`zSL1m>-UP}^;=*ws-2^qqt$(80}CH}gZV zCrCI)JX1Q~bS%IC)C0QO8g4$yp2G0K`;ZIrp%xBU98m&f4E7_XwFPTVoq+%6S-ddR z_sH$n)DvL)X$rJ8BJ(mgBxf-ag}7n+HfZzSi_L-T(E+SFbPyKt^8Dd*$Pt}yJ#+e@ z*{AK7qutN8OTu=IvxotfzWWXmw$GO!GYS9-%?1Z-M~@&?%(b=sFxyN`$)!>356q39 z!RLj(xsm6eI-f={QPh4ZXP*hPJ%%lr0OZaNq>7HVG<#qcyBu}5ETBkqnfCznqD1;8 z4`1izUzDKK2_tPnqV_uBg4&h=vrQe_Z-F^y6GKp>G}J==XurtR%cI5{jj&wb+Jr>0 z+0Z>To+R$ALO7+w8C~romtq+^AsQ^HssiaE+hkAUT&IgVlif6uix6=~wx`uf^1 z@dW{F@_8771fH#{<;>;Eau#OG2|{E|E+o5M3_;&t;n1jFbZHiTFbQ=+0U>dQAn|z@ zsNTH$D6Qi7q)lXTT=` zSXZu9Pk3(l%D2%57b{_%AIk>u;nHQ~|~{OgaDn002ov JPDHLkV1mVV5FG#j diff --git a/resources/assets/tinker/textures/items/food/jerky_blood.png b/resources/assets/tinker/textures/items/food/jerky_blood.png new file mode 100644 index 0000000000000000000000000000000000000000..60f71259262bd1cc80c9f6bd9d2b71043af90625 GIT binary patch literal 448 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP)4=1C!sM-`wBcPCMW=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<3fz`&^D>Eak-aeD3K{a((7BJKNccTX!+3m?d<2)<#>S3L4`%a-X&);?&Q@TA;t-xC!} zLAl^d_6^lcehN%4Dw4eI9N0H_KHApk{6I{m-jwxD`R;d2bD{*pKk0@XD3uBJ73z6m zo2kusbZ*?`Dg2W19{pQM$X!t^O3E~kR|9S^Kg k>ngs+SYvOrc&_ibxWE8e4_CVO>$uAX@y?z3Z2nci8=(vv%$Ul(ni zyHux!hhfDJJ5hmsD?fhX+AGJPy)XRPOU485GFqNiPBmdKI;Vst0L7BIeE= 2)) + if (validBlockID(worldObj.getBlockId(xPos, y, zPos)) && (worldObj.getBlockMetadata(xPos, y, zPos) >= 2)) bottomBricks++; } } @@ -920,7 +920,7 @@ int checkBricks (int x, int y, int z) { int tempBricks = 0; int blockID = worldObj.getBlockId(x, y, z); - if (blockID == TRepo.smeltery.blockID || blockID == TRepo.lavaTank.blockID) + if (validBlockID(blockID) || validTankID(blockID)) { TileEntity te = worldObj.getBlockTileEntity(x, y, z); if (te == this) @@ -949,6 +949,16 @@ else if (servant.setMaster(this.xCoord, this.yCoord, this.zCoord)) return tempBricks; } + boolean validBlockID (int blockID) + { + return blockID == TRepo.smeltery.blockID || blockID == TRepo.smelteryNether.blockID; + } + + boolean validTankID (int blockID) + { + return blockID == TRepo.lavaTank.blockID || blockID == TRepo.lavaTankNether.blockID; + } + public int getCapacity () { return maxLiquid; @@ -1155,7 +1165,8 @@ public void onDataPacket (INetworkManager net, Packet132TileEntityData packet) // IDebuggable @Override - public DebugData getDebugInfo(EntityPlayer player) { + public DebugData getDebugInfo (EntityPlayer player) + { List str = new ArrayList(Arrays.asList(super.getDebugInfo(player).strings)); str.add("layers: " + layers + ", liquid: " + currentLiquid + "/" + maxLiquid + ", direction: " + direction); str.add("inUse: " + inUse + ", tick: " + tick); diff --git a/src/main/java/tconstruct/blocks/slime/SlimeGrass.java b/src/main/java/tconstruct/blocks/slime/SlimeGrass.java index 65406a307a0..5c699504bdb 100644 --- a/src/main/java/tconstruct/blocks/slime/SlimeGrass.java +++ b/src/main/java/tconstruct/blocks/slime/SlimeGrass.java @@ -138,8 +138,8 @@ else if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9) public int idDropped (int metadata, Random random, int fortune) { if (metadata == 1) - return TRepo.craftedSoil.blockID; - else return Block.dirt.blockID; + else + return TRepo.craftedSoil.blockID; } } diff --git a/src/main/java/tconstruct/common/TContent.java b/src/main/java/tconstruct/common/TContent.java index 709916207f3..4e159519ec5 100644 --- a/src/main/java/tconstruct/common/TContent.java +++ b/src/main/java/tconstruct/common/TContent.java @@ -116,6 +116,7 @@ void registerBlocks () //Smeltery TRepo.smeltery = new SmelteryBlock(PHConstruct.smeltery).setUnlocalizedName("Smeltery"); + TRepo.smelteryNether = new SmelteryBlock(PHConstruct.smelteryNether, "nether").setUnlocalizedName("Smeltery"); TRepo.lavaTank = new LavaTankBlock(PHConstruct.lavaTank).setUnlocalizedName("LavaTank"); TRepo.lavaTank.setStepSound(Block.soundGlassFootstep); @@ -375,8 +376,10 @@ void registerBlocks () TRepo.slimeTallGrass = new SlimeTallGrass(PHConstruct.slimeTallGrass).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("slime.grass.tall"); TRepo.slimeLeaves = (SlimeLeaves) new SlimeLeaves(PHConstruct.slimeLeaves).setStepSound(TRepo.slimeStep).setLightOpacity(0).setUnlocalizedName("slime.leaves"); TRepo.slimeSapling = (SlimeSapling) new SlimeSapling(PHConstruct.slimeSapling).setStepSound(TRepo.slimeStep).setUnlocalizedName("slime.sapling"); - TRepo.slimeChannel = new ConveyorBase(PHConstruct.slimeChannel, Material.water).setStepSound(TRepo.slimeStep).setUnlocalizedName("slime.channel"); - TRepo.slimePad = new SlimePad(PHConstruct.slimePad, Material.cloth).setStepSound(TRepo.slimeStep).setUnlocalizedName("slime.pad"); + TRepo.slimeChannel = new ConveyorBase(PHConstruct.slimeChannel, Material.water, "greencurrent").setHardness(0.3f).setStepSound(TRepo.slimeStep).setUnlocalizedName("slime.channel"); + TRepo.bloodChannel = new ConveyorBase(PHConstruct.bloodChannel, Material.water, "liquid_cow").setHardness(0.3f).setStepSound(TRepo.slimeStep).setUnlocalizedName("blood.channel"); + TRepo.slimePad = new SlimePad(PHConstruct.slimePad, Material.cloth).setStepSound(TRepo.slimeStep).setHardness(0.3f).setUnlocalizedName("slime.pad"); + //Decoration TRepo.stoneTorch = new StoneTorch(PHConstruct.stoneTorch).setUnlocalizedName("decoration.stonetorch"); diff --git a/src/main/java/tconstruct/common/TRecipes.java b/src/main/java/tconstruct/common/TRecipes.java index 55622399a8f..a3ad8f69991 100644 --- a/src/main/java/tconstruct/common/TRecipes.java +++ b/src/main/java/tconstruct/common/TRecipes.java @@ -75,6 +75,7 @@ static void registerBlockRecipes () //Smeltery stuff GameRegistry.registerBlock(TRepo.smeltery, SmelteryItemBlock.class, "Smeltery"); + GameRegistry.registerBlock(TRepo.smelteryNether, SmelteryItemBlock.class, "SmelteryNether"); if (PHConstruct.newSmeltery) { GameRegistry.registerTileEntity(AdaptiveSmelteryLogic.class, "TConstruct.Smeltery"); @@ -121,8 +122,10 @@ static void registerBlockRecipes () GameRegistry.registerBlock(TRepo.slimeLeaves, SlimeLeavesItemBlock.class, "slime.leaves"); GameRegistry.registerBlock(TRepo.slimeSapling, SlimeSaplingItemBlock.class, "slime.sapling"); GameRegistry.registerBlock(TRepo.slimeChannel, "slime.channel"); + GameRegistry.registerBlock(TRepo.bloodChannel, "blood.channel"); GameRegistry.registerBlock(TRepo.slimePad, "slime.pad"); TConstructRegistry.drawbridgeState[TRepo.slimePad.blockID] = 1; + TConstructRegistry.drawbridgeState[TRepo.bloodChannel.blockID] = 1; //Decoration GameRegistry.registerBlock(TRepo.stoneTorch, "decoration.stonetorch"); @@ -346,6 +349,7 @@ protected static void addRecipesForTableCasting () //Misc tableCasting.addCastingRecipe(new ItemStack(Item.emerald), new FluidStack(TRepo.moltenEmeraldFluid, 640), gemcast, 80); tableCasting.addCastingRecipe(new ItemStack(TRepo.materials, 1, 36), new FluidStack(TRepo.glueFluid, TConstruct.ingotLiquidValue), null, 50); + tableCasting.addCastingRecipe(new ItemStack(TRepo.strangeFood, 1, 1), new FluidStack(TRepo.bloodFluid, 160), null, 50); //Buckets ItemStack bucket = new ItemStack(Item.bucketEmpty); @@ -387,7 +391,7 @@ protected static void addRecipesForTableCasting () } } - ItemStack[] ingotShapes = { new ItemStack(Item.brick), new ItemStack(Item.netherrackBrick), new ItemStack(TRepo.materials, 1, 2) }; + ItemStack[] ingotShapes = { new ItemStack(Item.brick), new ItemStack(Item.netherrackBrick), new ItemStack(TRepo.materials, 1, 2), new ItemStack(TRepo.materials, 1, 37) }; for (int i = 0; i < ingotShapes.length; i++) { tableCasting.addCastingRecipe(ingotcast, new FluidStack(TRepo.moltenAlubrassFluid, TConstruct.ingotLiquidValue), ingotShapes[i], false, 50); @@ -421,11 +425,13 @@ protected static void addRecipesForFurnace () FurnaceRecipes.smelting().addSmelting(TRepo.craftedSoil.blockID, 0, new ItemStack(TRepo.materials, 1, 1), 2f); //Slime FurnaceRecipes.smelting().addSmelting(TRepo.craftedSoil.blockID, 1, new ItemStack(TRepo.materials, 1, 2), 2f); //Seared brick item FurnaceRecipes.smelting().addSmelting(TRepo.craftedSoil.blockID, 2, new ItemStack(TRepo.materials, 1, 17), 2f); //Blue Slime + FurnaceRecipes.smelting().addSmelting(TRepo.craftedSoil.blockID, 6, new ItemStack(TRepo.materials, 1, 37), 2f); //Nether seared brick + //FurnaceRecipes.smelting().addSmelting(TRepo.oreSlag.blockID, 1, new ItemStack(TRepo.materials, 1, 3), 3f); //FurnaceRecipes.smelting().addSmelting(TRepo.oreSlag.blockID, 2, new ItemStack(TRepo.materials, 1, 4), 3f); FurnaceRecipes.smelting().addSmelting(TRepo.oreSlag.blockID, 3, new ItemStack(TRepo.materials, 1, 9), 0.5f); FurnaceRecipes.smelting().addSmelting(TRepo.oreSlag.blockID, 4, new ItemStack(TRepo.materials, 1, 10), 0.5f); - FurnaceRecipes.smelting().addSmelting(TRepo.oreSlag.blockID, 5, new ItemStack(TRepo.materials, 1, 11), 0.5f); + FurnaceRecipes.smelting().addSmelting(TRepo.oreSlag.blockID, 5, new ItemStack(TRepo.materials, 1, 12), 0.5f); FurnaceRecipes.smelting().addSmelting(TRepo.oreBerries.itemID, 0, new ItemStack(TRepo.materials, 1, 19), 0.2f); FurnaceRecipes.smelting().addSmelting(TRepo.oreBerries.itemID, 1, new ItemStack(Item.goldNugget), 0.2f); @@ -505,8 +511,9 @@ protected static void addRecipesForCraftingTable () GameRegistry.addShapelessRecipe(new ItemStack(TRepo.craftedSoil, 1, 2), TRepo.strangeFood, TRepo.strangeFood, TRepo.strangeFood, TRepo.strangeFood, Block.sand, Block.dirt); // Grout Recipes GameRegistry.addShapelessRecipe(new ItemStack(TRepo.craftedSoil, 2, 1), Item.clay, Block.sand, Block.gravel); - GameRegistry.addRecipe(new ItemStack(TRepo.craftedSoil, 8, 1), "sgs", "gcg", "sgs", 'c', new ItemStack(Block.stainedClay, 1, Short.MAX_VALUE), 's', Block.sand, 'g', Block.gravel); - GameRegistry.addRecipe(new ItemStack(TRepo.craftedSoil, 8, 1), "sgs", "gcg", "sgs", 'c', new ItemStack(Block.blockClay, 1, Short.MAX_VALUE), 's', Block.sand, 'g', Block.gravel); + GameRegistry.addShapelessRecipe(new ItemStack(TRepo.craftedSoil, 8, 1), new ItemStack(Block.blockClay, 1, Short.MAX_VALUE), Block.sand, Block.sand, Block.sand, Block.sand, Block.gravel, + Block.gravel, Block.gravel, Block.gravel); + GameRegistry.addShapelessRecipe(new ItemStack(TRepo.craftedSoil, 2, 6), Item.netherStalkSeeds, Block.slowSand, Block.gravel); // Graveyard Soil Recipes GameRegistry.addShapelessRecipe(new ItemStack(TRepo.craftedSoil, 1, 3), Block.dirt, Item.rottenFlesh, new ItemStack(Item.dyePowder, 1, 15)); // Silky Cloth Recipes @@ -608,6 +615,18 @@ protected static void addRecipesForCraftingTable () GameRegistry.addRecipe(new ItemStack(TRepo.searedBlock, 1, 2), "b b", "b b", "bbb", 'b', searedBrick); //Basin GameRegistry.addRecipe(new ItemStack(TRepo.castingChannel, 4, 0), "b b", "bbb", 'b', searedBrick); //Channel + searedBrick = new ItemStack(TRepo.materials, 1, 37); + GameRegistry.addRecipe(new ItemStack(TRepo.smelteryNether, 1, 0), "bbb", "b b", "bbb", 'b', searedBrick); //Controller + GameRegistry.addRecipe(new ItemStack(TRepo.smelteryNether, 1, 1), "b b", "b b", "b b", 'b', searedBrick); //Drain + GameRegistry.addRecipe(new ItemStack(TRepo.smelteryNether, 1, 2), "bb", "bb", 'b', searedBrick); //Bricks + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(TRepo.lavaTankNether, 1, 0), patSurround, '#', searedBrick, 'm', "glass")); //Tank + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(TRepo.lavaTankNether, 1, 1), "bgb", "ggg", "bgb", 'b', searedBrick, 'g', "glass")); //Glass + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(TRepo.lavaTankNether, 1, 2), "bgb", "bgb", "bgb", 'b', searedBrick, 'g', "glass")); //Window + GameRegistry.addRecipe(new ItemStack(TRepo.searedBlockNether, 1, 0), "bbb", "b b", "b b", 'b', searedBrick); //Table + GameRegistry.addRecipe(new ItemStack(TRepo.searedBlockNether, 1, 1), "b b", " b ", 'b', searedBrick); //Faucet + GameRegistry.addRecipe(new ItemStack(TRepo.searedBlockNether, 1, 2), "b b", "b b", "bbb", 'b', searedBrick); //Basin + GameRegistry.addRecipe(new ItemStack(TRepo.castingChannel, 4, 0), "b b", "bbb", 'b', searedBrick); //Channel + // Jack o'Latern Recipe - Stone Torch GameRegistry.addRecipe(new ItemStack(Block.pumpkinLantern, 1, 0), "p", "s", 'p', new ItemStack(Block.pumpkin), 's', new ItemStack(TRepo.stoneTorch)); // Stone Torch Recipe @@ -629,6 +648,8 @@ protected static void addRecipesForCraftingTable () GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(TRepo.heartCanister, 1, 0), "##", "##", '#', "ingotAluminum")); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(TRepo.heartCanister, 1, 0), "##", "##", '#', "ingotAluminium")); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(TRepo.heartCanister, 1, 0), "##", "##", '#', "ingotNaturalAluminum")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(TRepo.heartCanister, 1, 0), " # ", "#B#", " # ", '#', "ingotTin", 'B', Item.bone)); + GameRegistry.addRecipe(new ItemStack(TRepo.diamondApple), " d ", "d#d", " d ", 'd', new ItemStack(Item.diamond), '#', new ItemStack(Item.appleRed)); GameRegistry.addShapelessRecipe(new ItemStack(TRepo.heartCanister, 1, 2), new ItemStack(TRepo.diamondApple), new ItemStack(TRepo.materials, 1, 8), new ItemStack(TRepo.heartCanister, 1, 0), new ItemStack(TRepo.heartCanister, 1, 1)); @@ -710,7 +731,10 @@ protected static void addRecipesForCraftingTable () GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(TRepo.slimeExplosive, 1, 0), "slimeball", Block.tnt)); GameRegistry.addShapelessRecipe(new ItemStack(TRepo.slimeChannel, 1, 0), new ItemStack(TRepo.slimeGel, 1, Short.MAX_VALUE), new ItemStack(Item.redstone)); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(TRepo.slimePad, 1, 0), TRepo.slimeChannel, "slimeBall")); + GameRegistry.addShapelessRecipe(new ItemStack(TRepo.bloodChannel, 1, 0), new ItemStack(TRepo.strangeFood, 1, 1), new ItemStack(TRepo.strangeFood, 1, 1), + new ItemStack(TRepo.strangeFood, 1, 1), new ItemStack(TRepo.strangeFood, 1, 1), new ItemStack(Item.redstone)); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(TRepo.slimeChannel, 1, 0), "slimeball", "slimeball", "slimeball", "slimeball", new ItemStack(Item.redstone))); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(TRepo.slimePad, 1, 0), TRepo.slimeChannel, "slimeball")); } protected static void addRecipesForDryingRack () @@ -722,6 +746,8 @@ protected static void addRecipesForDryingRack () //DryingRackRecipes.addDryingRecipe(Item.muttonRaw, 20 * 60 * 5, new ItemStack(TRepo.jerky, 1, 3)); DryingRackRecipes.addDryingRecipe(Item.fishRaw, 20 * 60 * 5, new ItemStack(TRepo.jerky, 1, 4)); DryingRackRecipes.addDryingRecipe(Item.rottenFlesh, 20 * 60 * 5, new ItemStack(TRepo.jerky, 1, 5)); + DryingRackRecipes.addDryingRecipe(new ItemStack(TRepo.strangeFood, 1, 0), 20 * 60 * 5, new ItemStack(TRepo.jerky, 1, 6)); + DryingRackRecipes.addDryingRecipe(new ItemStack(TRepo.strangeFood, 1, 1), 20 * 60 * 5, new ItemStack(TRepo.jerky, 1, 7)); //DryingRackRecipes.addDryingRecipe(new ItemStack(TRepo.jerky, 1, 5), 20 * 60 * 10, Item.leather); } @@ -878,6 +904,7 @@ public static void oreRegistry () //Vanilla stuff OreDictionary.registerOre("slimeball", new ItemStack(Item.slimeBall)); OreDictionary.registerOre("slimeball", new ItemStack(TRepo.strangeFood, 1, 0)); + OreDictionary.registerOre("slimeball", new ItemStack(TRepo.strangeFood, 1, 1)); OreDictionary.registerOre("slimeball", new ItemStack(TRepo.materials, 1, 36)); OreDictionary.registerOre("glass", new ItemStack(TRepo.clearGlass)); OreDictionary.registerOre("glass", new ItemStack(Block.glass)); @@ -1083,8 +1110,8 @@ protected static void addRecipesForSmeltery () TConstruct.ingotLiquidValue * 5), new FluidStack(TRepo.moltenIronFluid, TConstruct.ingotLiquidValue * 2), new FluidStack(TRepo.moltenObsidianFluid, TConstruct.ingotLiquidValue * 2)); //Alumite Smeltery.addAlloyMixing(new FluidStack(TRepo.moltenManyullynFluid, (int) (TConstruct.ingotLiquidValue * PHConstruct.ingotsManyullynAlloy)), new FluidStack(TRepo.moltenCobaltFluid, TConstruct.ingotLiquidValue), new FluidStack(TRepo.moltenArditeFluid, TConstruct.ingotLiquidValue)); //Manyullyn - Smeltery.addAlloyMixing(new FluidStack(TRepo.pigIronFluid, (int) (TConstruct.ingotLiquidValue * PHConstruct.ingotsPigironAlloy)), new FluidStack(TRepo.moltenIronFluid, TConstruct.ingotLiquidValue), - new FluidStack(TRepo.moltenEmeraldFluid, 640), new FluidStack(TRepo.bloodFluid, 80)); //Pigiron + Smeltery.addAlloyMixing(new FluidStack(TRepo.pigIronFluid, (int) (TConstruct.ingotLiquidValue * PHConstruct.ingotsPigironAlloy)), new FluidStack(TRepo.moltenIronFluid, + TConstruct.ingotLiquidValue), new FluidStack(TRepo.moltenEmeraldFluid, 640), new FluidStack(TRepo.bloodFluid, 80)); //Pigiron // Stone parts for (int sc = 0; sc < TRepo.patternOutputs.length; sc++) @@ -1219,6 +1246,12 @@ protected static void addRecipesForSmeltery () public static void modIntegration () { + /* Natura */ + Block taintedSoil = GameRegistry.findBlock("Natura", "soil.tainted"); + Block heatSand = GameRegistry.findBlock("Natura", "heatsand"); + if (taintedSoil != null && heatSand != null) + GameRegistry.addShapelessRecipe(new ItemStack(TRepo.craftedSoil, 2, 6), Item.netherStalkSeeds, taintedSoil, heatSand); + ItemStack ironpick = ToolBuilder.instance.buildTool(new ItemStack(TRepo.pickaxeHead, 1, 6), new ItemStack(TRepo.toolRod, 1, 2), new ItemStack(TRepo.binding, 1, 6), ""); /*TE3 Flux*/ ItemStack batHardened = GameRegistry.findItemStack("ThermalExpansion", "capacitorHardened", 1); @@ -1359,7 +1392,6 @@ public static void modIntegration () { FurnaceRecipes.smelting().addSmelting(TRepo.materials.itemID, 36, ores.get(0), 0.2f); } - //new ItemStack(TRepo.materials, 1, 36) } public static Object getStaticItem (String name, String classPackage) diff --git a/src/main/java/tconstruct/common/TRepo.java b/src/main/java/tconstruct/common/TRepo.java index 6bc1f202c38..b3540d49b68 100644 --- a/src/main/java/tconstruct/common/TRepo.java +++ b/src/main/java/tconstruct/common/TRepo.java @@ -113,6 +113,9 @@ public class TRepo public static Block castingChannel; public static Block metalBlock; public static Block tankAir; + public static Block smelteryNether; + public static Block lavaTankNether; + public static Block searedBlockNether; public static Block dryingRack; @@ -217,6 +220,7 @@ public class TRepo public static Block slimeChannel; public static Block slimePad; + public static Block bloodChannel; //Glue public static Fluid glueFluid; diff --git a/src/main/java/tconstruct/items/Jerky.java b/src/main/java/tconstruct/items/Jerky.java index 52df94662c7..eda0c911f38 100644 --- a/src/main/java/tconstruct/items/Jerky.java +++ b/src/main/java/tconstruct/items/Jerky.java @@ -1,19 +1,26 @@ package tconstruct.items; +import java.util.List; + import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.util.Icon; import net.minecraft.util.MathHelper; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class Jerky extends SpecialFood { - public static String[] textureNames = new String[] { "beef", "chicken", "pork", "mutton", "fish", "monster" }; - public static String[] itemNames = new String[] { "jerky.beef", "jerky.chicken", "jerky.pig", "jerky.sheep", "jerky.fish", "jerky.zombie" }; - public static int[] hunger = new int[] { 8, 6, 8, 6, 5, 4 }; - public static float[] saturation = new float[] { 1.0f, 0.8f, 1.0f, 0.8f, 0.8f, 0.4f }; - public static int[] overhaulHunger = new int[] { 1, 1, 1, 1, 1, 1 }; + public static String[] textureNames = new String[] { "beef", "chicken", "pork", "mutton", "fish", "monster", "blueslime", "blood" }; + public static String[] itemNames = new String[] { "jerky.beef", "jerky.chicken", "jerky.pig", "jerky.sheep", "jerky.fish", "jerky.zombie", "jerky.blueslime", "jerky.blood" }; + public static int[] hunger = new int[] { 8, 6, 8, 6, 5, 4, 6, 4 }; + public static float[] saturation = new float[] { 1.0f, 0.8f, 1.0f, 0.8f, 0.8f, 0.4f, 1.0f, 0.25f }; + public static int[] overhaulHunger = new int[] { 1, 1, 1, 1, 1, 1, 1, 1 }; public Jerky(int id, boolean hungerOverhaul) { @@ -38,4 +45,33 @@ public String getUnlocalizedName (ItemStack stack) int arr = MathHelper.clamp_int(stack.getItemDamage(), 0, unlocalizedNames.length); return "item.tconstruct." + unlocalizedNames[arr]; } + + @Override + protected void onFoodEaten (ItemStack stack, World world, EntityPlayer player) + { + if (stack.getItemDamage() == 7) + { + int duration = 20 * 30; + PotionEffect potion = player.getActivePotionEffect(Potion.regeneration); + if (potion != null) + duration = potion.duration; + player.addPotionEffect(new PotionEffect(Potion.field_76434_w.id, duration + 20 * 30, 0)); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void addInformation (ItemStack stack, EntityPlayer player, List list, boolean par4) + { + int type = stack.getItemDamage(); + switch (type) + { + case 6: + list.add("\u00a7b" + StatCollector.translateToLocal("strangefood5.tooltip")); + break; + case 7: + list.add("\u00a74" + StatCollector.translateToLocal("strangefood6.tooltip")); + break; + } + } } diff --git a/src/main/java/tconstruct/items/MaterialItem.java b/src/main/java/tconstruct/items/MaterialItem.java index 3196b885d06..055fd664fa2 100644 --- a/src/main/java/tconstruct/items/MaterialItem.java +++ b/src/main/java/tconstruct/items/MaterialItem.java @@ -21,13 +21,14 @@ private static String[] getTextures () return names; } + static String[] materialNames = new String[] { "PaperStack", "SlimeCrystal", "SearedBrick", "CobaltIngot", "ArditeIngot", "ManyullynIngot", "Mossball", "LavaCrystal", "NecroticBone", "CopperIngot", "TinIngot", "AluminumIngot", "RawAluminum", "BronzeIngot", "AluBrassIngot", "AlumiteIngot", "SteelIngot", "BlueSlimeCrystal", "ObsidianIngot", "IronNugget", "CopperNugget", "TinNugget", "AluminumNugget", "EssenceCrystal", "AluBrassNugget", "SilkyCloth", "SilkyJewel", "ObsidianNugget", "CobaltNugget", "ArditeNugget", "ManyullynNugget", "BronzeNugget", "AlumiteNugget", - "SteelNugget", "PigIronIngot", "PigIronNugget", "GlueBall" }; + "SteelNugget", "PigIronIngot", "PigIronNugget", "GlueBall", "SearedBrick" }; static String[] craftingTextures = new String[] { "paperstack", "slimecrystal", "searedbrick", "cobaltingot", "arditeingot", "manyullyningot", "mossball", "lavacrystal", "necroticbone", "copperingot", "tiningot", "aluminumingot", "aluminumraw", "bronzeingot", "alubrassingot", "alumiteingot", "steelingot", "blueslimecrystal", "obsidianingot", "nugget_iron", "nugget_copper", "nugget_tin", "nugget_aluminum", "", "nugget_alubrass", "silkycloth", "silkyjewel", "nugget_obsidian", "nugget_cobalt", "nugget_ardite", "nugget_manyullyn", - "nugget_bronze", "nugget_alumite", "nugget_steel", "pigironingot", "nugget_pigiron", "glueball" }; + "nugget_bronze", "nugget_alumite", "nugget_steel", "pigironingot", "nugget_pigiron", "glueball", "searedbrick_nether" }; } diff --git a/src/main/java/tconstruct/items/StrangeFood.java b/src/main/java/tconstruct/items/StrangeFood.java index 7bead988c3f..18142aafd35 100644 --- a/src/main/java/tconstruct/items/StrangeFood.java +++ b/src/main/java/tconstruct/items/StrangeFood.java @@ -2,7 +2,10 @@ import java.util.List; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.util.StatCollector; +import net.minecraft.world.World; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import cpw.mods.fml.relauncher.Side; @@ -12,14 +15,31 @@ public class StrangeFood extends SpecialFood { public StrangeFood(int id) { - super(id, new int[] { 2 }, new float[] { 1f }, new String[] { "edibleslime" }, new String[] { "food/edibleslime" }); + super(id, new int[] { 2, 2 }, new float[] { 1f, 1f }, new String[] { "edibleslime", "edibleblood" }, new String[] { "food/edibleslime", "food/edibleblood" }); + } + + @Override + protected void onFoodEaten (ItemStack stack, World world, EntityPlayer player) + { + if (stack.getItemDamage() == 1) + player.addPotionEffect(new PotionEffect(Potion.field_76434_w.id, 20*15, 0)); } @Override @SideOnly(Side.CLIENT) public void addInformation (ItemStack stack, EntityPlayer player, List list, boolean par4) { - list.add("\u00a7b\u00a7o"+StatCollector.translateToLocal("strangefood1.tooltip")); - list.add("\u00a7b\u00a7o"+StatCollector.translateToLocal("strangefood2.tooltip")); + int type = stack.getItemDamage(); + switch (type) + { + case 0: + list.add("\u00a7b\u00a7o" + StatCollector.translateToLocal("strangefood1.tooltip")); + list.add("\u00a7b\u00a7o" + StatCollector.translateToLocal("strangefood2.tooltip")); + break; + case 1: + list.add("\u00a74\u00a7o" + StatCollector.translateToLocal("strangefood3.tooltip")); + list.add("\u00a74\u00a7o" + StatCollector.translateToLocal("strangefood4.tooltip")); + break; + } } } diff --git a/src/main/java/tconstruct/items/blocks/CraftedSoilItemBlock.java b/src/main/java/tconstruct/items/blocks/CraftedSoilItemBlock.java index 81ca3c774bc..2993737d884 100644 --- a/src/main/java/tconstruct/items/blocks/CraftedSoilItemBlock.java +++ b/src/main/java/tconstruct/items/blocks/CraftedSoilItemBlock.java @@ -12,7 +12,7 @@ public class CraftedSoilItemBlock extends ItemBlock { - public static final String blockType[] = { "Slime", "Grout", "BlueSlime", "GraveyardSoil", "ConsecratedSoil", "blue", "dirt" }; + public static final String blockType[] = { "Slime", "Grout", "BlueSlime", "GraveyardSoil", "ConsecratedSoil", "blue", "dirt", "Grout" }; public CraftedSoilItemBlock(int id) { diff --git a/src/main/java/tconstruct/util/TEventHandler.java b/src/main/java/tconstruct/util/TEventHandler.java index dd8b0e88111..f1bcd08851c 100644 --- a/src/main/java/tconstruct/util/TEventHandler.java +++ b/src/main/java/tconstruct/util/TEventHandler.java @@ -252,7 +252,7 @@ public void onLivingDrop (LivingDropsEvent event) { if (event.entityLiving == null) return; - + if (event.source.getEntity() != null && event.source.getEntity() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.source.getEntity(); @@ -275,7 +275,7 @@ public void onLivingDrop (LivingDropsEvent event) } } - if (random.nextInt(500) == 0 && event.entityLiving instanceof IMob && event.entityLiving.dimension == 0) + if (random.nextInt(500) == 0 && event.entityLiving instanceof IMob) { ItemStack dropStack = new ItemStack(TRepo.heartCanister, 1, 1); EntityItem entityitem = new EntityItem(event.entityLiving.worldObj, event.entityLiving.posX, event.entityLiving.posY, event.entityLiving.posZ, dropStack); @@ -532,7 +532,7 @@ public void bonemealEvent (BonemealEvent event) @ForgeSubscribe public void registerOre (OreRegisterEvent evt) { - + if (evt.Name == "crystalQuartz") { ToolBuilder.instance.registerToolMod(new ModAttack("Quartz", new ItemStack[] { evt.Ore }, 11, 2)); diff --git a/src/main/java/tconstruct/util/config/PHConstruct.java b/src/main/java/tconstruct/util/config/PHConstruct.java index e3ada4ef915..658f32436b8 100644 --- a/src/main/java/tconstruct/util/config/PHConstruct.java +++ b/src/main/java/tconstruct/util/config/PHConstruct.java @@ -23,8 +23,8 @@ public static void initProps (File confFile) /* Define the mod's IDs. * Avoid values below 4096 for items and in the 250-450 range for blocks */ - - superfunWorld = config.get("Superfun", "All the world is Superfun", false).getBoolean(false); + + superfunWorld = config.get("Superfun", "All the world is Superfun", false).getBoolean(false); keepHunger = config.get("Difficulty Changes", "Keep hunger on death", true).getBoolean(true); keepLevels = config.get("Difficulty Changes", "Keep levels on death", true).getBoolean(true); @@ -47,14 +47,14 @@ public static void initProps (File confFile) stencilTableCrafting = config.get("Difficulty Changes", "Craft Stencil Tables", true).getBoolean(true); miningLevelIncrease = config.get("Difficulty Changes", "Modifiers increase Mining Level", true).getBoolean(true); denyMattock = config.get("Difficulty Changes", "Deny creation of non-metal mattocks", false).getBoolean(false); - - ingotsPerOre = config.get("Smeltery Output Modification", "Ingots per ore", 2, "Number of ingots returned from smelting ores in the smeltery").getDouble(2); - ingotsBronzeAlloy = config.get("Smeltery Output Modification", "Bronze ingot return", 3, "Number of ingots returned from smelting Bronze in the smeltery").getDouble(3); - ingotsAluminumBrassAlloy = config.get("Smeltery Output Modification", "Aluminum Brass ingot return", 4, "Number of ingots returned from smelting Aluminum Brass in the smeltery").getDouble(4); - ingotsAlumiteAlloy = config.get("Smeltery Output Modification", "Alumite ingot return", 3, "Number of ingots returned from smelting Alumite in the smeltery").getDouble(3); - ingotsManyullynAlloy = config.get("Smeltery Output Modification", "Manyullyn ingot return", 1, "Number of ingots returned from smelting Manyullyn in the smeltery").getDouble(1); - ingotsPigironAlloy = config.get("Smeltery Output Modification", "Pig Iron ingot return", 1, "Number of ingots returned from smelting Pig Iron in the smeltery").getDouble(1); - + + ingotsPerOre = config.get("Smeltery Output Modification", "Ingots per ore", 2, "Number of ingots returned from smelting ores in the smeltery").getDouble(2); + ingotsBronzeAlloy = config.get("Smeltery Output Modification", "Bronze ingot return", 3, "Number of ingots returned from smelting Bronze in the smeltery").getDouble(3); + ingotsAluminumBrassAlloy = config.get("Smeltery Output Modification", "Aluminum Brass ingot return", 4, "Number of ingots returned from smelting Aluminum Brass in the smeltery").getDouble(4); + ingotsAlumiteAlloy = config.get("Smeltery Output Modification", "Alumite ingot return", 3, "Number of ingots returned from smelting Alumite in the smeltery").getDouble(3); + ingotsManyullynAlloy = config.get("Smeltery Output Modification", "Manyullyn ingot return", 1, "Number of ingots returned from smelting Manyullyn in the smeltery").getDouble(1); + ingotsPigironAlloy = config.get("Smeltery Output Modification", "Pig Iron ingot return", 1, "Number of ingots returned from smelting Pig Iron in the smeltery").getDouble(1); + //1467-1489 woodStation = config.getBlock("Wood Tool Station", 1471).getInt(1471); heldItemBlock = config.getBlock("Held Item Block", 1472).getInt(1472); @@ -86,6 +86,11 @@ public static void initProps (File confFile) barricadeBirch = config.getBlock("Birch Barricade", 1483).getInt(1483); barricadeJungle = config.getBlock("Jungle Barricade", 1487).getInt(1487); + lavaTankNether = config.getBlock("Nether Lava Tank", 3186).getInt(3186); + smelteryNether = config.getBlock("Nether Smeltery", 3187).getInt(3187); + searedTableNether = config.getBlock("Nether Seared Block", 3188).getInt(3188); + + bloodChannel = config.getBlock("Blood Channel", 3189).getInt(3189); slimeChannel = config.getBlock("Slime Channel", 3190).getInt(3190); slimePad = config.getBlock("Slime Pad", 3191).getInt(3191); @@ -116,16 +121,16 @@ public static void initProps (File confFile) moltenEmerald = config.getBlock("Molten Emerald", 3216).getInt(3216); blood = config.getBlock("Liquid Cow", 3217).getInt(3217); moltenEnder = config.getBlock("Molten Ender", 3218).getInt(3218); - + glueBlock = config.getBlock("Glue Block", 3219).getInt(3219); glueFluidBlock = config.getBlock("Glue Fluid Block", 3220).getInt(3220); -// signalBus = config.getBlock("Signal Bus", 3221).getInt(3221); -// signalTerminal = config.getBlock("Signal Terminal", 3222).getInt(3222); + // signalBus = config.getBlock("Signal Bus", 3221).getInt(3221); + // signalTerminal = config.getBlock("Signal Terminal", 3222).getInt(3222); glass = config.getBlock("Clear Glass", 3223).getInt(3223); stainedGlass = config.getBlock("Stained Glass", 3224).getInt(3224); stainedGlassClear = config.getBlock("Clear Stained Glass", 3225).getInt(3225); -// redstoneMachine = config.getBlock("Redstone Machines", 3226).getInt(3226); // Migrated to TMechworks + // redstoneMachine = config.getBlock("Redstone Machines", 3226).getInt(3226); // Migrated to TMechworks dryingRack = config.getBlock("Drying Rack", 3227).getInt(3227); glassPane = config.getBlock("Glass Pane", 3228).getInt(3228); stainedGlassClearPane = config.getBlock("Clear Stained Glass Pane", 3229).getInt(3229); @@ -368,7 +373,7 @@ public static void initProps (File confFile) //Achievement Properties achievementsEnabled = config.get("Achievement Properties", "AchievementsEnabled", true).getBoolean(true); - + /* Save the configuration file */ config.save(); @@ -395,6 +400,9 @@ public static void initProps (File confFile) public static int lavaTank; public static int smeltery; public static int searedTable; + public static int lavaTankNether; + public static int smelteryNether; + public static int searedTableNether; public static int castingChannel; public static int airTank; @@ -469,6 +477,7 @@ public static void initProps (File confFile) public static int slimeChannel; public static int slimePad; + public static int bloodChannel; // Glue public static int glueFluidBlock; @@ -575,7 +584,7 @@ public static void initProps (File confFile) public static int knapsack; public static int heartCanister; - + public static int exoGoggles; public static int exoChest; public static int exoPants; @@ -676,12 +685,12 @@ public static void initProps (File confFile) public static boolean miningLevelIncrease; public static boolean denyMattock; - //Smeltery Output Modification - public static double ingotsPerOre; - public static double ingotsBronzeAlloy; - public static double ingotsAluminumBrassAlloy; - public static double ingotsAlumiteAlloy; - public static double ingotsManyullynAlloy; + //Smeltery Output Modification + public static double ingotsPerOre; + public static double ingotsBronzeAlloy; + public static double ingotsAluminumBrassAlloy; + public static double ingotsAlumiteAlloy; + public static double ingotsManyullynAlloy; public static double ingotsPigironAlloy; //Ultra Hardcore modifiers @@ -721,7 +730,7 @@ public static void initProps (File confFile) //Addon stuff public static boolean isCleaverTwoHanded; public static boolean isHatchetWeapon; - + //Achievement options public static boolean achievementsEnabled; }