From 60d6ecd565e8ecf31ed59d3425fb67cdcd803a1c Mon Sep 17 00:00:00 2001 From: HbmMods Date: Mon, 22 May 2017 14:29:52 +0200 Subject: [PATCH] Recipes, refinery textures, oil generation --- assets/hbm/lang/de_DE.lang | 3 ++ assets/hbm/lang/en_US.lang | 3 ++ .../textures/blocks/machine_refinery_side.png | Bin 0 -> 542 bytes .../blocks/machine_refinery_side_alt.png | Bin 0 -> 522 bytes .../textures/blocks/machine_refinery_top.png | Bin 0 -> 490 bytes assets/hbm/textures/gui/gui_refinery.png | Bin 0 -> 6803 bytes .../hbm/textures/items/canister_kerosene.png | Bin 0 -> 284 bytes assets/hbm/textures/items/drill_titanium.png | Bin 0 -> 213 bytes assets/hbm/textures/items/pipes_steel.png | Bin 0 -> 235 bytes com/hbm/inventory/MachineRecipes.java | 8 ++--- com/hbm/items/ModItems.java | 9 +++++ com/hbm/items/tool/ItemOilDetector.java | 26 ++++++++++++++ com/hbm/lib/HbmWorldGen.java | 9 +++++ com/hbm/main/CraftingManager.java | 4 +++ .../tileentity/TileEntityMachineOilWell.java | 26 ++++++++++++-- com/hbm/world/OilBubble.java | 33 ++++++++++++++++++ 16 files changed, 115 insertions(+), 6 deletions(-) create mode 100644 assets/hbm/textures/blocks/machine_refinery_side.png create mode 100644 assets/hbm/textures/blocks/machine_refinery_side_alt.png create mode 100644 assets/hbm/textures/blocks/machine_refinery_top.png create mode 100644 assets/hbm/textures/gui/gui_refinery.png create mode 100644 assets/hbm/textures/items/canister_kerosene.png create mode 100644 assets/hbm/textures/items/drill_titanium.png create mode 100644 assets/hbm/textures/items/pipes_steel.png create mode 100644 com/hbm/world/OilBubble.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 38e7c5187..1cc0f3aab 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -264,6 +264,8 @@ item.plate_paa.name=PaA-Legierungsplatte item.ingot_dura_steel.name=Schnellarbeitsstahlbarren item.ingot_polymer.name=Polymerbarren item.bolt_dura_steel.name=Schnellarbeitsstahlbolzen +item.pipes_steel.name=Stahlrohre +item.drill_titanium.name=Titanbohrer item.ingot_australium.name=Australiumbarren item.ingot_weidanium.name=Weidaniumbarren @@ -491,6 +493,7 @@ item.canister_empty.name=Leerer Kanister item.canister_canola.name=Schmiermittelkanister item.canister_oil.name=Rohölkanister item.canister_fuel.name=Treibstoffkanister +item.canister_kerosene.name=Kerosinkanister item.canister_napalm.name=Napalm B item.canister_NITAN.name=NITAN© 100 Oktan Supertreibstoff diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 74c245b4b..2c1fedad2 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -264,6 +264,8 @@ item.plate_paa.name=PaA Alloy Plate item.ingot_dura_steel.name=High-Speed Steel Ingot item.ingot_polymer.name=Polymer Ingot item.bolt_dura_steel.name=High-Speed Steel Bolt +item.pipes_steel.name=Steel Pipes +item.drill_titanium.name=Titanium Drill item.ingot_australium.name=Australium Ingot item.ingot_weidanium.name=Weidanium Ingot @@ -491,6 +493,7 @@ item.canister_empty.name=Empty Canister item.canister_canola.name=Engine Lubricant item.canister_oil.name=Crude Oil Canister item.canister_fuel.name=Fuel Canister +item.canister_kerosene.name=Kerosene Canister item.canister_napalm.name=Napalm B item.canister_NITAN.name=NITAN© 100 Octane Super Fuel diff --git a/assets/hbm/textures/blocks/machine_refinery_side.png b/assets/hbm/textures/blocks/machine_refinery_side.png new file mode 100644 index 0000000000000000000000000000000000000000..f16831e2f41a8cc2dd6832af585f2d0e8e877f33 GIT binary patch literal 542 zcmV+(0^$9MP)^*5QV==+btj+=;`epT}H^puP-hzMG1wALu45D`*J9706cY&M8UfvKix zxVyUpU^E(0RaHUW?RI<>^Z6X*oFm2vK#Y->mzOUI-h1xv?+Z+=*K4e`#28sD7PM`P za}Hz7fAiPZS8i@@0N89csL5nP*L7KibB+)~k$dk8ylq-wMSP17(E z5w_bc)>c=P(uHQY^?_~ki_kDH&_Osxe1E8wT2qEH}W4GHe zN@qk#ESF2_y575Retyp7;X^6i};lg-4Mjb}50f3J>l*X!K>oIHdU}dVDP_se&(B2*pE~1br;2k*X}?TwZ*LhmzB~-n g@pf8k^BWQ2H`^f~Nj4kllK=n!07*qoM6N<$f}8pAsQ>@~ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/machine_refinery_side_alt.png b/assets/hbm/textures/blocks/machine_refinery_side_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..5d6cc6d8439e3294af0a02904fff85d147d41227 GIT binary patch literal 522 zcmV+l0`>igP)dBYYlBk znzJ}GSk66*JFEF7^OKp(L~OTPr<6hnK^TUFVThCxAq37jS`$K0mL)=nPE5ve%zC{B zpx5gW1VKk!*EN6H<#Iu4t!bJDfTn3U91ed9j4^CBn@&u=UN5SuqG=kg*DGn7qP0dT z^-uqJJhEIa0VvB7nIs8Wmia2Q)>vyhzA>f~Ptz2DBuS6}N-1Ab>l-0ycUI2;Zg29QNj_$f#!(ORRm{yF^Mx~@Gx9uJ}@qAW{# zqtS>w&si)MNGY+_l4TiLmU)ijnCW!tIZaarg8{?g5ZSIMKoA62YkzTDQOm74=aA3m z(@!A?0_wU(DMc8Dp0(CgRpt5dcn|~uN-28d@tFC1PM+sPQG_vu`Fze~GVvTm5u?$_ zbDE|kNkYHhN9=Yx*RJOO+Ua!q`Ap~Y+4uC>U%ODBzq6_;pCg3e8|F+UONPfy@Bjb+ M07*qoM6N<$f<gsK>UqZ0V7t@wRA0&*h0tMM(0S(88Sdg zoEY#Ub_a;4d3{uUXLRMC>+|{8vfJ&Va}E(9NfMGIL2HeO5M$&i5us@sL}W0g^E_v> z*#IyajZjJrHs5YHUg>Z+puP8m5C8}vaKGPQZum&rTFdo%C4|87c;r3K?RNXi_IkYr zplKSkF^1V}MhJoP`OJ2^Wi%QM_%D~s!1i=H1;7}C25`;+;JxR1y?zd%ZQH(qwHD_b zF-E?8`-*drBp?F*`_JBXUDt>R)>?FyWh|FVx~{_*gE0nxaSof!gb)IUgYCzSF%(4s zK%VDl5ut5c;1OfjbpX7*(Wi62^I(O3zDKC*x=*31D!lgq1P}YY#rp?>wU+07m1W6z zJbt856a|aL0ukYKIx(Bg9<6`;>YF{~y(dl6K7}mH9tcg-01#vB>sR_S-WVggs;WVZ z`~7~fP$@NtRzxVv5~UQ*IrL;QVYONjLSR0hqm&w)&~@F*w~?kP`hRTy3rBxs`&q{r gNs?snJKy8{2DK9Yj1bF#Q2+n{07*qoM6N<$f}gtE@c;k- literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/gui/gui_refinery.png b/assets/hbm/textures/gui/gui_refinery.png new file mode 100644 index 0000000000000000000000000000000000000000..6d7dfc25de1e101cb9eeac62ac31daab4d0adc40 GIT binary patch literal 6803 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 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/drill_titanium.png b/assets/hbm/textures/items/drill_titanium.png new file mode 100644 index 0000000000000000000000000000000000000000..487013d1218c2a5b571e4c3e09b80c55fb8a84fd GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfpO#=Q_G7TvXLO<9{oTWAz6KWxG> 3 && s.substring(0, 3).equals("ore")) { ItemStack stack = canFindDustByName(s.substring(3)); if (stack != null) { - setRecipe(theWholeThing.get(i).item, new ItemStack(stack.getItem(), 2)); + setRecipe(theWholeThing.get(i).item, new ItemStack(stack.getItem(), 2, stack.getItemDamage())); } else { setRecipe(theWholeThing.get(i).item, new ItemStack(ModItems.scrap)); } } else if (s.length() > 3 && s.substring(0, 3).equals("rod")) { ItemStack stack = canFindDustByName(s.substring(3)); if (stack != null) { - setRecipe(theWholeThing.get(i).item, new ItemStack(stack.getItem(), 2)); + setRecipe(theWholeThing.get(i).item, new ItemStack(stack.getItem(), 2, stack.getItemDamage())); } else { setRecipe(theWholeThing.get(i).item, new ItemStack(ModItems.scrap)); } } else if (s.length() > 5 && s.substring(0, 5).equals("block")) { ItemStack stack = canFindDustByName(s.substring(5)); if (stack != null) { - setRecipe(theWholeThing.get(i).item, new ItemStack(stack.getItem(), 9)); + setRecipe(theWholeThing.get(i).item, new ItemStack(stack.getItem(), 9, stack.getItemDamage())); } else { setRecipe(theWholeThing.get(i).item, new ItemStack(ModItems.scrap)); } } else if (s.length() > 3 && s.substring(0, 3).equals("gem")) { ItemStack stack = canFindDustByName(s.substring(3)); if (stack != null) { - setRecipe(theWholeThing.get(i).item, new ItemStack(stack.getItem(), 1)); + setRecipe(theWholeThing.get(i).item, new ItemStack(stack.getItem(), 1, stack.getItemDamage())); } else { setRecipe(theWholeThing.get(i).item, new ItemStack(ModItems.scrap)); } diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index a8c13bc2a..f65759273 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -204,6 +204,8 @@ public class ModItems { public static Item plate_paa; public static Item board_copper; public static Item bolt_dura_steel; + public static Item pipes_steel; + public static Item drill_titanium; public static Item ingot_dura_steel; public static Item ingot_polymer; @@ -420,6 +422,7 @@ public class ModItems { public static Item canister_canola; public static Item canister_oil; public static Item canister_fuel; + public static Item canister_kerosene; public static Item canister_napalm; public static Item canister_NITAN; @@ -1036,6 +1039,8 @@ public class ModItems { plate_paa = new ItemCustomLore().setUnlocalizedName("plate_paa").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":plate_paa"); board_copper = new Item().setUnlocalizedName("board_copper").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":board_copper"); bolt_dura_steel = new Item().setUnlocalizedName("bolt_dura_steel").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":bolt_dura_steel"); + pipes_steel = new Item().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":pipes_steel"); + drill_titanium = new Item().setUnlocalizedName("drill_titanium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":drill_titanium"); ingot_dura_steel = new ItemCustomLore().setUnlocalizedName("ingot_dura_steel").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_dura_steel"); ingot_polymer = new ItemCustomLore().setUnlocalizedName("ingot_polymer").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_polymer"); @@ -1270,6 +1275,7 @@ public class ModItems { canister_canola = new ItemCustomLore().setUnlocalizedName("canister_canola").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_canola"); canister_oil = new ItemCustomLore().setUnlocalizedName("canister_oil").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_oil"); canister_fuel = new ItemCustomLore().setUnlocalizedName("canister_fuel").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_fuel"); + canister_kerosene = new ItemCustomLore().setUnlocalizedName("canister_kerosene").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_kerosene"); canister_napalm = new ItemCustomLore().setUnlocalizedName("canister_napalm").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_napalm"); canister_NITAN = new ItemCustomLore().setUnlocalizedName("canister_NITAN").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_superfuel"); @@ -2025,6 +2031,8 @@ public class ModItems { GameRegistry.registerItem(thermo_unit_endo, thermo_unit_endo.getUnlocalizedName()); GameRegistry.registerItem(thermo_unit_exo, thermo_unit_exo.getUnlocalizedName()); GameRegistry.registerItem(levitation_unit, levitation_unit.getUnlocalizedName()); + GameRegistry.registerItem(pipes_steel, pipes_steel.getUnlocalizedName()); + GameRegistry.registerItem(drill_titanium, drill_titanium.getUnlocalizedName()); //Teleporter Parts GameRegistry.registerItem(telepad, telepad.getUnlocalizedName()); @@ -2156,6 +2164,7 @@ public class ModItems { GameRegistry.registerItem(canister_canola, canister_canola.getUnlocalizedName()); GameRegistry.registerItem(canister_oil, canister_oil.getUnlocalizedName()); GameRegistry.registerItem(canister_fuel, canister_fuel.getUnlocalizedName()); + GameRegistry.registerItem(canister_kerosene, canister_kerosene.getUnlocalizedName()); GameRegistry.registerItem(canister_napalm, canister_napalm.getUnlocalizedName()); GameRegistry.registerItem(canister_NITAN, canister_NITAN.getUnlocalizedName()); diff --git a/com/hbm/items/tool/ItemOilDetector.java b/com/hbm/items/tool/ItemOilDetector.java index 667cb87fe..7a29c6e3f 100644 --- a/com/hbm/items/tool/ItemOilDetector.java +++ b/com/hbm/items/tool/ItemOilDetector.java @@ -45,6 +45,32 @@ public class ItemOilDetector extends Item { if(world.getBlock(x, i, z - 5) == ModBlocks.ore_oil) oil = true; + for(int i = y + 15; i > 10; i--) + if(world.getBlock(x + 10, i, z) == ModBlocks.ore_oil) + oil = true; + for(int i = y + 15; i > 10; i--) + if(world.getBlock(x - 10, i, z) == ModBlocks.ore_oil) + oil = true; + for(int i = y + 15; i > 10; i--) + if(world.getBlock(x, i, z + 10) == ModBlocks.ore_oil) + oil = true; + for(int i = y + 15; i > 10; i--) + if(world.getBlock(x, i, z - 10) == ModBlocks.ore_oil) + oil = true; + + for(int i = y + 15; i > 5; i--) + if(world.getBlock(x + 5, i, z + 5) == ModBlocks.ore_oil) + oil = true; + for(int i = y + 15; i > 5; i--) + if(world.getBlock(x - 5, i, z + 5) == ModBlocks.ore_oil) + oil = true; + for(int i = y + 15; i > 5; i--) + if(world.getBlock(x + 5, i, z - 5) == ModBlocks.ore_oil) + oil = true; + for(int i = y + 15; i > 5; i--) + if(world.getBlock(x - 5, i, z - 5) == ModBlocks.ore_oil) + oil = true; + if(direct) oil = true; diff --git a/com/hbm/lib/HbmWorldGen.java b/com/hbm/lib/HbmWorldGen.java index dd2e858ed..111943bf5 100644 --- a/com/hbm/lib/HbmWorldGen.java +++ b/com/hbm/lib/HbmWorldGen.java @@ -11,6 +11,7 @@ import com.hbm.world.DesertAtom001; import com.hbm.world.Dud; import com.hbm.world.Factory; import com.hbm.world.LibraryDungeon; +import com.hbm.world.OilBubble; import com.hbm.world.Radio01; import com.hbm.world.Relay; import com.hbm.world.Satellite; @@ -317,6 +318,14 @@ public class HbmWorldGen implements IWorldGenerator { new Spaceship().generate(world, rand, x, y, z); } + + if (rand.nextInt(15) == 0) { + int randPosX = i + rand.nextInt(16); + int randPosY = rand.nextInt(25); + int randPosZ = j + rand.nextInt(16); + + OilBubble.spawnOil(world, randPosX, randPosY, randPosZ, 7 + rand.nextInt(9)); + } } if (MainRegistry.enableNITAN) { diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index f5727111b..ec6a0ec75 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -49,6 +49,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.filter_coal, 1), new Object[] { "SCS", "CPC", "SCS", 'S', Items.string, 'P', Items.paper, 'C', "dustCoal" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.plate_mixed, 3), new Object[] { "ANA", "NCN", "ANA", 'A', ModItems.plate_advanced_alloy, 'N', "plateDenseLead", 'C', ModItems.plate_combine_steel })); GameRegistry.addRecipe(new ItemStack(ModItems.bolt_dura_steel, 4), new Object[] { "D", "D", 'D', ModItems.ingot_dura_steel}); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.pipes_steel, 1), new Object[] { "B", "B", "B", 'B', "blockSteel" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.drill_titanium, 1), new Object[] { " B ", "IBI", "PPP", 'B', ModItems.bolt_dura_steel, 'I', ModItems.ingot_dura_steel, 'P', "plateTitanium" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.magnet_dee, 1), new Object[] { "SMM", "M M", "MMT", 'S', "ingotSteel", 'M', ModBlocks.fusion_conductor, 'T', ModItems.coil_advanced_torus })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.magnet_circular, 2), new Object[] { "PSP", "MMM", "PSP", 'S', "ingotSteel", 'M', ModBlocks.fusion_conductor, 'P', "plateAdvanced" })); @@ -466,6 +468,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_teleporter), 1), new Object[] { "PTP", "FKF", "BBB", 'P', "plateTitanium", 'T', ModItems.telepad, 'F', Item.getItemFromBlock(ModBlocks.factory_advanced_hull), 'K', ModItems.entanglement_kit, 'B', Item.getItemFromBlock(ModBlocks.machine_battery) })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_rtg_grey), 1), new Object[] { "UPU", "UWU", "UPU", 'P', "plateSteel", 'U', ModItems.rtg_unit, 'W', ModBlocks.red_wire_coated })); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_cyclotron), 1), new Object[] { "PTP", "PCP", "WBW", 'P', ModItems.board_copper, 'T', ModItems.cyclotron_tower, 'C', ModBlocks.fusion_core, 'W', ModBlocks.red_wire_coated, 'B', ModBlocks.machine_battery }); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_well), 1), new Object[] { "TPM", "GPG", "GDG", 'T', ModItems.tank_steel, 'P', ModItems.pipes_steel, 'M', ModItems.motor, 'G', ModBlocks.steel_scaffold, 'D', ModItems.drill_titanium }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 1), new Object[] { "PIP", "I I", "PIP", 'P', "plateTitanium", 'I', "ingotTitanium" })); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_furnace), 1), new Object[] { "HMH", "MFM", "HMH", 'H', Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 'M', ModItems.motor, 'F', Item.getItemFromBlock(Blocks.furnace) }); @@ -859,6 +862,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.designator, 1), new Object[] { " A", "#B#", "#B#", '#', "plateIron", 'A', "plateSteel", 'B', ModItems.circuit_red_copper })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.designator_range, 1), new Object[] { "RRD", "PIC", " P", 'P', "plateSteel", 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.designator, 'I', "ingotSteel" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.linker, 1), new Object[] { "I I", "ICI", "GGG", 'I', "plateIron", 'G', "plateGold", 'C', ModItems.circuit_gold })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.oil_detector, 1), new Object[] { "W I", "WCI", "PPP", 'W', ModItems.wire_gold, 'I', "ingotCopper", 'C', ModItems.circuit_red_copper, 'P', "plateSteel" })); GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_hammer, 1), new Object[] { "BBB", "BBB", " S ", 'B', Item.getItemFromBlock(ModBlocks.block_schrabidium), 'S', Items.stick }); GameRegistry.addRecipe(new ItemStack(ModItems.euphemium_stopper, 1), new Object[] { "I", "S", "S", 'I', new ItemStack(ModItems.ingot_euphemium, 1, 34), 'S', Items.stick }); diff --git a/com/hbm/tileentity/TileEntityMachineOilWell.java b/com/hbm/tileentity/TileEntityMachineOilWell.java index cafec7ff8..165348054 100644 --- a/com/hbm/tileentity/TileEntityMachineOilWell.java +++ b/com/hbm/tileentity/TileEntityMachineOilWell.java @@ -7,7 +7,9 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineElectricFurnace; import com.hbm.explosion.ExplosionLarge; +import com.hbm.handler.ShredderRecipeHandler; import com.hbm.interfaces.IConsumer; +import com.hbm.inventory.MachineRecipes; import com.hbm.items.ModItems; import com.hbm.items.special.ItemBattery; import com.hbm.lib.Library; @@ -24,6 +26,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.oredict.OreDictionary; public class TileEntityMachineOilWell extends TileEntity implements ISidedInventory, IConsumer { @@ -154,6 +157,7 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent this.power = nbt.getInteger("powerTime"); this.oil = nbt.getInteger("oil"); + this.age = nbt.getInteger("age"); slots = new ItemStack[getSizeInventory()]; for(int i = 0; i < list.tagCount(); i++) @@ -172,6 +176,7 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent super.writeToNBT(nbt); nbt.setInteger("powerTime", power); nbt.setInteger("oil", oil); + nbt.setInteger("age", age); NBTTagList list = new NBTTagList(); for(int i = 0; i < slots.length; i++) @@ -244,7 +249,7 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent //operation start - if(age % timer == 0) { + if(age == timer - 1) { warning = 0; //warning 0, green: derrick is operational @@ -264,7 +269,9 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent continue; if(b == Blocks.air || b == Blocks.grass || b == Blocks.dirt || - b == Blocks.stone || b == Blocks.sand || b == Blocks.sandstone) { + b == Blocks.stone || b == Blocks.sand || b == Blocks.sandstone || + b == Blocks.gravel || isOre(b, worldObj.getBlockMetadata(xCoord, i, zCoord)) || + b.isReplaceable(worldObj, xCoord, i, zCoord)) { worldObj.setBlock(xCoord, i, zCoord, ModBlocks.oil_pipe); //Code 2: The drilling ended @@ -304,6 +311,21 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent } + public boolean isOre(Block b, int meta) { + + int[] ids = OreDictionary.getOreIDs(new ItemStack(b, 1, meta)); + + for(int i = 0; i < ids.length; i++) { + + String s = OreDictionary.getOreName(ids[i]); + + if(s.length() > 3 && s.substring(0, 3).equals("ore")) + return true; + } + + return false; + } + public boolean succ(int x, int y, int z) { list.clear(); diff --git a/com/hbm/world/OilBubble.java b/com/hbm/world/OilBubble.java new file mode 100644 index 000000000..102b9f8e7 --- /dev/null +++ b/com/hbm/world/OilBubble.java @@ -0,0 +1,33 @@ +package com.hbm.world; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.init.Blocks; +import net.minecraft.world.World; + +public class OilBubble { + + public static void spawnOil(World world, int x, int y, int z, int radius) { + int r = radius; + int r2 = r * r; + int r22 = r2 / 2; + + for (int xx = -r; xx < r; xx++) { + int X = xx + x; + int XX = xx * xx; + for (int yy = -r; yy < r; yy++) { + int Y = yy + y; + int YY = XX + yy * yy * 3; + for (int zz = -r; zz < r; zz++) { + int Z = zz + z; + int ZZ = YY + zz * zz; + if (ZZ < r22) { + if(world.getBlock(X, Y, Z) == Blocks.stone) + world.setBlock(X, Y, Z, ModBlocks.ore_oil); + } + } + } + } + } + +}