diff --git a/src/main/java/api/hbm/energy/IEnergyConsumer.java b/src/main/java/api/hbm/energy/IEnergyConsumer.java index b27d56ffb..c5649d4fc 100644 --- a/src/main/java/api/hbm/energy/IEnergyConsumer.java +++ b/src/main/java/api/hbm/energy/IEnergyConsumer.java @@ -1,5 +1,5 @@ package api.hbm.energy; public interface IEnergyConsumer { - + /// WIP /// } diff --git a/src/main/java/api/hbm/energy/IEnergySource.java b/src/main/java/api/hbm/energy/IEnergySource.java index 6f9f271d9..d18c090ce 100644 --- a/src/main/java/api/hbm/energy/IEnergySource.java +++ b/src/main/java/api/hbm/energy/IEnergySource.java @@ -1,5 +1,5 @@ package api.hbm.energy; public interface IEnergySource { - + /// WIP /// } diff --git a/src/main/java/assets/hbm/lang/de_DE.lang b/src/main/java/assets/hbm/lang/de_DE.lang index 416639412..0f584b88f 100644 --- a/src/main/java/assets/hbm/lang/de_DE.lang +++ b/src/main/java/assets/hbm/lang/de_DE.lang @@ -378,6 +378,7 @@ tile.struct_launcher.name=Startrampe-Komponentenblock tile.struct_scaffold.name=Startrampe-Gerüstblock tile.struct_launcher_core.name=Kompaktrampe-Kernkomponente tile.struct_launcher_core_large.name=Startrampe-Kernkomponente +tile.struct_soyuz_launcher.name=Soyuz-Startrampe-Kernkomponente tile.machine_difurnace_off.name=Hochofen tile.machine_difurnace_on.name=Hochofen @@ -761,6 +762,7 @@ item.crystal_aluminium.name=Aluminiumkristalle item.crystal_fluorite.name=Fluoritkristalle item.crystal_beryllium.name=Berylliumkristalle item.crystal_lead.name=Bleikristalle +item.crystal_schraranium.name=Schraraniumkristalle item.crystal_schrabidium.name=Schrabidiumkristalle item.crystal_rare.name=Seltenerdenkristalle item.crystal_phosphorus.name=Phosphorkristalle @@ -2181,6 +2183,7 @@ item.cobalt_axe.name=Kobaltaxt item.cobalt_shovel.name=Kobaltschaufel item.cobalt_hoe.name=Kobaltfeldhacke item.centri_stick.name=Zentrifuge am Spieß +item.smashing_hammer.name=Zerschmetterungshammer tile.red_cable.name=Rotes Kupferkabel diff --git a/src/main/java/assets/hbm/lang/en_US.lang b/src/main/java/assets/hbm/lang/en_US.lang index 6defd050f..317af7e8e 100644 --- a/src/main/java/assets/hbm/lang/en_US.lang +++ b/src/main/java/assets/hbm/lang/en_US.lang @@ -378,6 +378,7 @@ tile.struct_launcher.name=Launch Pad Component Block tile.struct_scaffold.name=Launch Pad Scaffold Block tile.struct_launcher_core.name=Compact Launcher Core Component tile.struct_launcher_core_large.name=Launch Table Core Component +tile.struct_soyuz_launcher.name=Soyuz Launcher Core Component tile.machine_difurnace_off.name=Blast Furnace tile.machine_difurnace_on.name=Blast Furnace @@ -507,6 +508,9 @@ tile.soyuz_capsule.name=Cargo Landing Capsule container.soyuzCapsule=Cargo Landing Capsule tile.machine_crystallizer.name=Ore Acidizer container.crystallizer=Ore Acidizer +tile.machine_mining_laser.name=Mining Laser +container.miningLaser=Mining Laser +tile.barricade.name=Sand Bags tile.barrel_plastic.name=Safe Barrel™ tile.barrel_corroded.name=Corroded Barrel @@ -761,6 +765,7 @@ item.crystal_aluminium.name=Aluminium Crystals item.crystal_fluorite.name=Fluorite Crystals item.crystal_beryllium.name=Beryllium Crystals item.crystal_lead.name=Lead Crystals +item.crystal_schraranium.name=Schraranium Crystals item.crystal_schrabidium.name=Schrabidium Crystals item.crystal_rare.name=Rare Earth Crystals item.crystal_phosphorus.name=Phosphorus Crystals @@ -2184,6 +2189,7 @@ item.cobalt_axe.name=Cobalt Axe item.cobalt_shovel.name=Cobalt Shovel item.cobalt_hoe.name=Cobalt Hoe item.centri_stick.name=Centrifuge on a Stick +item.smashing_hammer.name=Smashing Hammer tile.red_cable.name=Red Copper Cable diff --git a/src/main/java/assets/hbm/lang/ru_RU.lang b/src/main/java/assets/hbm/lang/ru_RU.lang index c72879d3f..28b94731c 100644 --- a/src/main/java/assets/hbm/lang/ru_RU.lang +++ b/src/main/java/assets/hbm/lang/ru_RU.lang @@ -1,4 +1,4 @@ -Эй, Док! Спасибо за работу! Добро пожаловать в “команду”)) +Эй, Док! Спасибо за работу! Добро пожаловать в “команду”)) itemGroup.tabTest=Тестовая вкладка NTM itemGroup.tabParts=Ресурсы и детали NTM @@ -72,8 +72,8 @@ potion.hbm_phosphorus=Фосфорные ожоги tool.ability.recursion=Жилковый Майнер tool.ability.hammer=AoE -tool.ability.silktouch=Точечный Майнер -tool.ability.fortune=Экстрактор руд +tool.ability.silktouch=Шёлковое касание +tool.ability.fortune=Удача tool.ability.smelter=Авто-плавка tool.ability.shredder=Авто-измельчитель tool.ability.centrifuge=Авто-центрифуга @@ -119,9 +119,49 @@ hbmfluid.cryogel=Криогель hbmfluid.hydrogen=Жидкий водород hbmfluid.oxygen=Жидкий кислород hbmfluid.xenon=Ксенон -hbmfluid.balefire=BF ракетное топливо +hbmfluid.balefire=Ракетное жар-топливо hbmfluid.mercury=Ртуть +//Special for 1.12.2 version// +fluid.hbmsteam=Пар +fluid.hbmhotsteam=Горячий пар +fluid.hbmsuperhotsteam=Раскалённый пар +fluid.hbmuf6=Гексафторид урана +fluid.hbmpuf6=Гексафторид плутония +fluid.hbmdeuterium=Дейтерий +fluid.hbmtritium=Тритий +fluid.hbmoil=Неочищенная нефть +fluid.hbmhotoil=Горячая неочищенная нефть +fluid.hbmsmear=Промышленное масло +fluid.hbmreclaimed=Очищенное промышленное масло +fluid.hbmpetroil=Бензин +fluid.hbmlubricant=Машинная смазка +fluid.hbmdiesel=Дизель +fluid.hbmkerosene=Керосин +fluid.hbmgas=Природный газ +fluid.hbmcoolant=Хладагент +fluid.hbmamat=Антиматерия +fluid.hbmaschrab=Антишрабидий +fluid.hbmheavyoil=Тяжелая нефть +fluid.hbmbitumen=Битум +fluid.hbmheatingoil=Мазут +fluid.hbmnaphtha=Лигроин +fluid.hbmlightoil=Лёгкая нефть +fluid.hbmpetroleum=Петролеум +fluid.hbmacid=Пероксид водорода +fluid.hbmwatz=Токсичные отходы +fluid.hbmbiogas=Биогаз +fluid.hbmbiofuel=Биотопливо +fluid.hbmsas3=Трисульфид шрабидия +fluid.hbmnitan=100-октановое сверхтопливо NITAN© +fluid.hbmcryogel=Криогель +fluid.hbmhydrogen=Жидкий водород +fluid.hbmoxygen=Жидкий кислород +fluid.hbmxenon=Ксенон +fluid.hbmbalefire=Ракетное жар-топливо +fluid.hbmmercury=Ртуть +//Special for 1.12.2 version// + chem.TEST=Тест chem.FP_HEAVYOIL=Переработка тяжелой нефти chem.FP_SMEAR=Переработка Промышленной нефти @@ -1040,7 +1080,7 @@ item.powder_actinium_tiny.name=Кучка актиниевой пыли item.powder_euphemium.name=Эвфемиевый порошок item.powder_meteorite.name=Метеоритный порошок item.powder_meteorite_tiny.name=Кучка метеоритной пыли -item.powder_yellowcake.name=Йеллоукейк +item.powder_yellowcake.name=Йеллоукейк item.powder_magic.name=Измельченное зачарование item.redstone_depleted.name=Обесцвеченная красная пыль @@ -2525,4 +2565,4 @@ tile.cheater_virus_seed.name=Нестабильный блок шрабидат item.mysteryshovel.name=Непрочная лопата tile.ntm_dirt.name=Грязь -item.memory.name=item.null.name +item.memory.name=item.null.name \ No newline at end of file diff --git a/src/main/java/assets/hbm/sounds.json b/src/main/java/assets/hbm/sounds.json index bbe5896f4..e57c25153 100644 --- a/src/main/java/assets/hbm/sounds.json +++ b/src/main/java/assets/hbm/sounds.json @@ -61,7 +61,8 @@ "music.transmission": {"category": "record", "sounds": [{"name": "music/recordGlass", "stream": true}]}, "weapon.tauShoot": {"category": "player", "sounds": [{"name": "weapon/tauShoot", "stream": false}]}, - "weapon.tauChargeLoop2": {"category": "player", "sounds": [{"name": "weapon/tauChargeLoop2", "stream": true}]}, + "weapon.tauChargeLoop": {"category": "player", "sounds": [{"name": "weapon/tauChargeLoop", "stream": true}]}, + "weapon.tauChargeLoop2": {"category": "player", "sounds": [{"name": "weapon/tauChargeLoop2", "stream": true}]}, "weapon.revolverShoot": {"category": "player", "sounds": [{"name": "weapon/revolverShoot", "stream": false}]}, "weapon.revolverShootAlt": {"category": "player", "sounds": [{"name": "weapon/revolverShootAlt", "stream": false}]}, "weapon.heavyShoot": {"category": "player", "sounds": [{"name": "weapon/heavyShoot", "stream": false}]}, diff --git a/src/main/java/assets/hbm/textures/blocks/block_polonium.png b/src/main/java/assets/hbm/textures/blocks/block_polonium.png new file mode 100644 index 000000000..b29429bc9 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/block_polonium.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/machine_mining_laser.png b/src/main/java/assets/hbm/textures/blocks/machine_mining_laser.png new file mode 100644 index 000000000..8331d1d5a Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/machine_mining_laser.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/soyuz_launcher.png b/src/main/java/assets/hbm/textures/blocks/soyuz_launcher.png new file mode 100644 index 000000000..e08a74407 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/soyuz_launcher.png differ diff --git a/src/main/java/assets/hbm/textures/gui/machine/gui_laser_miner.png b/src/main/java/assets/hbm/textures/gui/machine/gui_laser_miner.png index 4ba272de5..a1e7653cd 100644 Binary files a/src/main/java/assets/hbm/textures/gui/machine/gui_laser_miner.png and b/src/main/java/assets/hbm/textures/gui/machine/gui_laser_miner.png differ diff --git a/src/main/java/assets/hbm/textures/items/crystal_schraranium.png b/src/main/java/assets/hbm/textures/items/crystal_schraranium.png new file mode 100644 index 000000000..41dda3a55 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/crystal_schraranium.png differ diff --git a/src/main/java/assets/hbm/textures/items/ingot_polonium.png b/src/main/java/assets/hbm/textures/items/ingot_polonium.png new file mode 100644 index 000000000..229f8f7b5 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/ingot_polonium.png differ diff --git a/src/main/java/assets/hbm/textures/items/nugget_polonium.png b/src/main/java/assets/hbm/textures/items/nugget_polonium.png new file mode 100644 index 000000000..c0ad8b450 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/nugget_polonium.png differ diff --git a/src/main/java/assets/hbm/textures/items/nugget_th232.png b/src/main/java/assets/hbm/textures/items/nugget_th232.png index 63956c07d..97e69eaa5 100644 Binary files a/src/main/java/assets/hbm/textures/items/nugget_th232.png and b/src/main/java/assets/hbm/textures/items/nugget_th232.png differ diff --git a/src/main/java/assets/hbm/textures/items/nugget_thorium_fuel.png b/src/main/java/assets/hbm/textures/items/nugget_thorium_fuel.png index 2ca09faf4..9c5cf1cba 100644 Binary files a/src/main/java/assets/hbm/textures/items/nugget_thorium_fuel.png and b/src/main/java/assets/hbm/textures/items/nugget_thorium_fuel.png differ diff --git a/src/main/java/assets/hbm/textures/items/powder_polonium.png b/src/main/java/assets/hbm/textures/items/powder_polonium.png new file mode 100644 index 000000000..f1ca27e83 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/powder_polonium.png differ diff --git a/src/main/java/assets/hbm/textures/items/smashing_hammer.png b/src/main/java/assets/hbm/textures/items/smashing_hammer.png new file mode 100644 index 000000000..ef191e0ce Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/smashing_hammer.png differ diff --git a/src/main/java/com/hbm/blocks/BlockDummyable.java b/src/main/java/com/hbm/blocks/BlockDummyable.java index 734a12869..e6d21bd1e 100644 --- a/src/main/java/com/hbm/blocks/BlockDummyable.java +++ b/src/main/java/com/hbm/blocks/BlockDummyable.java @@ -152,7 +152,6 @@ public abstract class BlockDummyable extends BlockContainer { } if(!checkRequirement(world, x, y, z, dir, o)) { - world.setBlockToAir(x, y, z); if(!pl.capabilities.isCreativeMode) { ItemStack stack = pl.inventory.mainInventory[pl.inventory.currentItem]; diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 51f3f3ca6..e9b37d501 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1797,7 +1797,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_flare, machine_flare.getUnlocalizedName()); GameRegistry.registerBlock(machine_refinery, machine_refinery.getUnlocalizedName()); GameRegistry.registerBlock(machine_drill, machine_drill.getUnlocalizedName()); - GameRegistry.registerBlock(machine_mining_laser, machine_mining_laser.getUnlocalizedName()); + GameRegistry.registerBlock(machine_mining_laser, ItemBlockLore.class, machine_mining_laser.getUnlocalizedName()); GameRegistry.registerBlock(barricade, barricade.getUnlocalizedName()); GameRegistry.registerBlock(machine_turbofan, machine_turbofan.getUnlocalizedName()); GameRegistry.registerBlock(machine_schrabidium_transmutator, machine_schrabidium_transmutator.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/test/TestEventTester.java b/src/main/java/com/hbm/blocks/test/TestEventTester.java index 25aea7d1a..545627774 100644 --- a/src/main/java/com/hbm/blocks/test/TestEventTester.java +++ b/src/main/java/com/hbm/blocks/test/TestEventTester.java @@ -7,7 +7,6 @@ import java.util.Random; import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; -import com.hbm.entity.effect.EntityCloudTom; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.saveddata.RadiationSavedData; diff --git a/src/main/java/com/hbm/creativetabs/ControlTab.java b/src/main/java/com/hbm/creativetabs/ControlTab.java index 469ee6e47..eee65508c 100644 --- a/src/main/java/com/hbm/creativetabs/ControlTab.java +++ b/src/main/java/com/hbm/creativetabs/ControlTab.java @@ -1,10 +1,17 @@ package com.hbm.creativetabs; +import java.util.ArrayList; +import java.util.List; + import com.hbm.items.ModItems; +import api.hbm.energy.IBatteryItem; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Items; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; public class ControlTab extends CreativeTabs { @@ -22,5 +29,44 @@ public class ControlTab extends CreativeTabs { return Items.iron_pickaxe; } - + + @Override + @SideOnly(Side.CLIENT) + public void displayAllReleventItems(List list) { + super.displayAllReleventItems(list); + + List batteries = new ArrayList(); + + for(Object o : list) { + + if(o instanceof ItemStack) { + + ItemStack stack = (ItemStack) o; + + if(stack.getItem() instanceof IBatteryItem) { + batteries.add(stack); + } + } + } + + for(ItemStack stack : batteries) { + + if(!(stack.getItem() instanceof IBatteryItem)) //shouldn't happen but just to make sure + continue; + + IBatteryItem battery = (IBatteryItem) stack.getItem(); + + ItemStack empty = stack.copy(); + ItemStack full = stack.copy(); + + battery.setCharge(empty, 0); + battery.setCharge(full, battery.getMaxCharge()); + + int index = list.indexOf(stack); + + list.remove(index); + list.add(index, full); + list.add(index, empty); + } + } } diff --git a/src/main/java/com/hbm/creativetabs/MachineTab.java b/src/main/java/com/hbm/creativetabs/MachineTab.java index 98debdc4e..e25e61e90 100644 --- a/src/main/java/com/hbm/creativetabs/MachineTab.java +++ b/src/main/java/com/hbm/creativetabs/MachineTab.java @@ -1,6 +1,7 @@ package com.hbm.creativetabs; import com.hbm.blocks.ModBlocks; + import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Items; import net.minecraft.item.Item; @@ -21,5 +22,4 @@ public class MachineTab extends CreativeTabs { return Items.iron_pickaxe; } - } diff --git a/src/main/java/com/hbm/explosion/ExplosionNT.java b/src/main/java/com/hbm/explosion/ExplosionNT.java index eaf55153a..8c3f41d92 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNT.java +++ b/src/main/java/com/hbm/explosion/ExplosionNT.java @@ -1,6 +1,5 @@ package com.hbm.explosion; -import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java index f88a56892..f15c635e9 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java @@ -11,6 +11,10 @@ import com.hbm.items.ModItems; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationKeyframe; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -77,6 +81,13 @@ public class Gun556mmFactory { config.firingSound = "hbm:weapon.hksShoot"; config.reloadSoundEnd = false; + config.animations.put(AnimType.CYCLE, new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0.5, 0, 0, 25)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + ) + ); + config.name = "H&R SPIW"; config.manufacturer = "Harrington & Richardson"; diff --git a/src/main/java/com/hbm/inventory/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/CentrifugeRecipes.java index 9d9b2c178..7eac933bd 100644 --- a/src/main/java/com/hbm/inventory/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/CentrifugeRecipes.java @@ -200,6 +200,8 @@ public class CentrifugeRecipes { recipes.put(new ComparableStack(Items.blaze_rod), new ItemStack[] {new ItemStack(Items.blaze_powder, 1), new ItemStack(Items.blaze_powder, 1), new ItemStack(ModItems.powder_fire, 1), new ItemStack(ModItems.powder_fire, 1) }); + recipes.put(new ComparableStack(ModItems.ingot_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 1), new ItemStack(ModItems.nugget_uranium, 3), new ItemStack(ModItems.nugget_plutonium, 2) }); + recipes.put(new ComparableStack(ModItems.crystal_iron), new ItemStack[] { new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_titanium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_gold), new ItemStack[] { new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.nugget_mercury, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_redstone), new ItemStack[] { new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(ModItems.nugget_mercury, 3) }); @@ -216,6 +218,7 @@ public class CentrifugeRecipes { recipes.put(new ComparableStack(ModItems.crystal_fluorite), new ItemStack[] { new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_beryllium), new ItemStack[] { new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_lead), new ItemStack[] { new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_gold, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_uranium, 2), new ItemStack(ModItems.nugget_plutonium, 2) }); recipes.put(new ComparableStack(ModItems.crystal_schrabidium), new ItemStack[] { new ItemStack(ModItems.powder_schrabidium, 2), new ItemStack(ModItems.powder_schrabidium, 2), new ItemStack(ModItems.powder_plutonium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_rare), new ItemStack[] { new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.powder_lanthanium_tiny, 3), new ItemStack(ModItems.powder_actinium_tiny, 3) }); recipes.put(new ComparableStack(ModItems.crystal_phosphorus), new ItemStack[] { new ItemStack(ModItems.powder_fire, 3), new ItemStack(ModItems.powder_fire, 3), new ItemStack(ModItems.ingot_phosphorus, 2), new ItemStack(Items.blaze_powder, 2) }); diff --git a/src/main/java/com/hbm/inventory/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/CrystallizerRecipes.java index 04c82dc53..d8376d17b 100644 --- a/src/main/java/com/hbm/inventory/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/CrystallizerRecipes.java @@ -54,6 +54,7 @@ public class CrystallizerRecipes { recipes.put(new ComparableStack(ModItems.powder_diamond), new ItemStack(Items.diamond)); recipes.put(new ComparableStack(ModItems.powder_emerald), new ItemStack(Items.emerald)); recipes.put(new ComparableStack(ModItems.powder_lapis), new ItemStack(Items.dye, 1, 4)); + recipes.put(new ComparableStack(ModItems.ingot_schraranium), new ItemStack(ModItems.crystal_schraranium)); } public static ItemStack getOutput(ItemStack stack) { diff --git a/src/main/java/com/hbm/inventory/MachineRecipes.java b/src/main/java/com/hbm/inventory/MachineRecipes.java index d05221cbe..b75db98ff 100644 --- a/src/main/java/com/hbm/inventory/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/MachineRecipes.java @@ -2733,6 +2733,18 @@ public class MachineRecipes { list.add(new ItemStack(ModItems.bolt_dura_steel, 2)); list.add(new ItemStack(ModItems.drill_titanium, 1)); break; + case MININGLASER: + list.add(new ItemStack(ModItems.tank_steel, 3)); + list.add(new ItemStack(ModItems.ingot_steel, 8)); + list.add(new ItemStack(ModItems.plate_steel, 12)); + list.add(new ItemStack(ModItems.crystal_redstone, 3)); + list.add(new ItemStack(Items.diamond, 5)); + list.add(new ItemStack(ModItems.ingot_polymer, 8)); + list.add(new ItemStack(ModItems.motor, 3)); + list.add(new ItemStack(ModItems.ingot_dura_steel, 4)); + list.add(new ItemStack(ModItems.bolt_dura_steel, 6)); + list.add(new ItemStack(ModBlocks.machine_lithium_battery, 3)); + break; case TURBOFAN: list.add(new ItemStack(ModItems.hull_big_steel, 1)); list.add(new ItemStack(ModItems.hull_big_titanium, 3)); @@ -4006,6 +4018,9 @@ public class MachineRecipes { case MINER: output = new ItemStack(ModBlocks.machine_drill, 1); break; + case MININGLASER: + output = new ItemStack(ModBlocks.machine_mining_laser, 1); + break; case TURBOFAN: output = new ItemStack(ModBlocks.machine_turbofan, 1); break; diff --git a/src/main/java/com/hbm/inventory/ShredderRecipes.java b/src/main/java/com/hbm/inventory/ShredderRecipes.java index 4c65beae0..41a257055 100644 --- a/src/main/java/com/hbm/inventory/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/ShredderRecipes.java @@ -146,6 +146,7 @@ public class ShredderRecipes { ShredderRecipes.setRecipe(ModBlocks.ore_rare, new ItemStack(ModItems.powder_desh_mix, 1)); ShredderRecipes.setRecipe(Blocks.diamond_ore, new ItemStack(ModBlocks.gravel_diamond, 2)); + ShredderRecipes.setRecipe(ModItems.ingot_schraranium, new ItemStack(ModItems.nugget_schrabidium, 2)); ShredderRecipes.setRecipe(ModItems.crystal_iron, new ItemStack(ModItems.powder_iron, 3)); ShredderRecipes.setRecipe(ModItems.crystal_gold, new ItemStack(ModItems.powder_gold, 3)); ShredderRecipes.setRecipe(ModItems.crystal_redstone, new ItemStack(Items.redstone, 8)); @@ -162,6 +163,7 @@ public class ShredderRecipes { ShredderRecipes.setRecipe(ModItems.crystal_fluorite, new ItemStack(ModItems.fluorite, 8)); ShredderRecipes.setRecipe(ModItems.crystal_beryllium, new ItemStack(ModItems.powder_beryllium, 3)); ShredderRecipes.setRecipe(ModItems.crystal_lead, new ItemStack(ModItems.powder_lead, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_schraranium, new ItemStack(ModItems.nugget_schrabidium, 3)); ShredderRecipes.setRecipe(ModItems.crystal_schrabidium, new ItemStack(ModItems.powder_schrabidium, 3)); ShredderRecipes.setRecipe(ModItems.crystal_rare, new ItemStack(ModItems.powder_desh_mix, 2)); ShredderRecipes.setRecipe(ModItems.crystal_phosphorus, new ItemStack(ModItems.powder_fire, 8)); diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/inventory/container/ContainerMachineSchrabidiumTransmutator.java index 317870186..0b4520249 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineSchrabidiumTransmutator.java @@ -6,17 +6,12 @@ import com.hbm.tileentity.machine.TileEntityMachineSchrabidiumTransmutator; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class ContainerMachineSchrabidiumTransmutator extends Container { private TileEntityMachineSchrabidiumTransmutator nukeBoy; - - private int water; - private int sulfur; - private int progress; public ContainerMachineSchrabidiumTransmutator(InventoryPlayer invPlayer, TileEntityMachineSchrabidiumTransmutator tedf) { @@ -83,23 +78,6 @@ private TileEntityMachineSchrabidiumTransmutator nukeBoy; return nukeBoy.isUseableByPlayer(player); } - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.progress != this.nukeBoy.process) - { - par1.sendProgressBarUpdate(this, 0, this.nukeBoy.process); - } - } - - this.progress = this.nukeBoy.process; - } - @Override public void updateProgressBar(int i, int j) { if(i == 1) diff --git a/src/main/java/com/hbm/inventory/gui/GUIMiningLaser.java b/src/main/java/com/hbm/inventory/gui/GUIMiningLaser.java index 0d32113d2..6a1bef2e0 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMiningLaser.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMiningLaser.java @@ -2,6 +2,7 @@ package com.hbm.inventory.gui; import org.lwjgl.opengl.GL11; +import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMiningLaser; import com.hbm.lib.RefStrings; import com.hbm.packet.AuxButtonPacket; @@ -44,6 +45,8 @@ public class GUIMiningLaser extends GuiInfoContainer { " -Crystallizer (exclusive)", " -Nullifier"}; this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 87, guiTop + 31, 8, 8, guiLeft + 141, guiTop + 39 + 16, text); + + laser.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 124 - 52, 7, 52); } protected void mouseClicked(int x, int y, int i) { @@ -83,5 +86,8 @@ public class GUIMiningLaser extends GuiInfoContainer { drawTexturedModalRect(guiLeft + 66, guiTop + 36, 192, 0, 8, j); this.drawInfoPanel(guiLeft + 87, guiTop + 31, 8, 8, 8); + + Minecraft.getMinecraft().getTextureManager().bindTexture(laser.tank.getSheet()); + laser.tank.renderTank(this, guiLeft + 35, guiTop + 124, laser.tank.getTankType().textureX() * FluidTank.x, laser.tank.getTankType().textureY() * FluidTank.y, 7, 52); } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 1244b9ce0..f90f396f5 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -245,6 +245,7 @@ public class ModItems { public static Item crystal_fluorite; public static Item crystal_beryllium; public static Item crystal_lead; + public static Item crystal_schraranium; public static Item crystal_schrabidium; public static Item crystal_rare; public static Item crystal_phosphorus; @@ -1614,6 +1615,7 @@ public class ModItems { public static Item cobalt_axe; public static Item cobalt_shovel; public static Item cobalt_hoe; + public static Item smashing_hammer; public static Item centri_stick; public static Item matchstick; @@ -2106,6 +2108,7 @@ public class ModItems { crystal_fluorite = new Item().setUnlocalizedName("crystal_fluorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_fluorite"); crystal_beryllium = new Item().setUnlocalizedName("crystal_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_beryllium"); crystal_lead = new Item().setUnlocalizedName("crystal_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lead"); + crystal_schraranium = new ItemRadioactive(5F, false, true).setUnlocalizedName("crystal_schraranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_schraranium"); crystal_schrabidium = new ItemRadioactive(10F, false, true).setUnlocalizedName("crystal_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_schrabidium"); crystal_rare = new Item().setUnlocalizedName("crystal_rare").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_rare"); crystal_phosphorus = new ItemRadioactive(0.0F, true).setUnlocalizedName("crystal_phosphorus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_phosphorus"); @@ -3658,6 +3661,8 @@ public class ModItems { centri_stick = new ItemToolAbility(3F, 0, MainRegistry.tMatElec, EnumToolType.MINER) .addBreakAbility(new ToolAbility.CentrifugeAbility()).setMaxDamage(50).setUnlocalizedName("centri_stick").setTextureName(RefStrings.MODID + ":centri_stick"); + smashing_hammer = new ItemToolAbility(12F, -0.1, MainRegistry.tMatSteel, EnumToolType.MINER) + .addBreakAbility(new ToolAbility.ShredderAbility()).setMaxDamage(2500).setUnlocalizedName("smashing_hammer").setTextureName(RefStrings.MODID + ":smashing_hammer"); mask_of_infamy = new MaskOfInfamy(ArmorMaterial.IRON, 8, 0).setUnlocalizedName("mask_of_infamy").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_of_infamy"); @@ -4050,6 +4055,7 @@ public class ModItems { GameRegistry.registerItem(crystal_fluorite, crystal_fluorite.getUnlocalizedName()); GameRegistry.registerItem(crystal_beryllium, crystal_beryllium.getUnlocalizedName()); GameRegistry.registerItem(crystal_lead, crystal_lead.getUnlocalizedName()); + GameRegistry.registerItem(crystal_schraranium, crystal_schraranium.getUnlocalizedName()); GameRegistry.registerItem(crystal_schrabidium, crystal_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(crystal_rare, crystal_rare.getUnlocalizedName()); GameRegistry.registerItem(crystal_phosphorus, crystal_phosphorus.getUnlocalizedName()); @@ -5314,6 +5320,7 @@ public class ModItems { GameRegistry.registerItem(elec_pickaxe, elec_pickaxe.getUnlocalizedName()); GameRegistry.registerItem(elec_axe, elec_axe.getUnlocalizedName()); GameRegistry.registerItem(elec_shovel, elec_shovel.getUnlocalizedName()); + GameRegistry.registerItem(smashing_hammer, smashing_hammer.getUnlocalizedName()); GameRegistry.registerItem(centri_stick, centri_stick.getUnlocalizedName()); GameRegistry.registerItem(matchstick, matchstick.getUnlocalizedName()); GameRegistry.registerItem(crowbar, crowbar.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorT45.java b/src/main/java/com/hbm/items/armor/ArmorT45.java index f5ecd2730..c0073bc3f 100644 --- a/src/main/java/com/hbm/items/armor/ArmorT45.java +++ b/src/main/java/com/hbm/items/armor/ArmorT45.java @@ -5,12 +5,12 @@ import java.util.List; import com.google.common.collect.Multimap; import com.hbm.handler.ArmorUtil; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.render.model.ModelT45Boots; import com.hbm.render.model.ModelT45Chest; import com.hbm.render.model.ModelT45Helmet; import com.hbm.render.model.ModelT45Legs; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBiped; @@ -164,7 +164,7 @@ public class ArmorT45 extends ItemArmor implements ISpecialArmor { boolean b = true; if(player.inventory.hasItem(ModItems.fusion_core_infinite)) { - armor.stackTagCompound.setInteger("charge", (int)ItemBattery.getCharge(ItemBattery.getFullBattery(ModItems.fusion_core))); + armor.stackTagCompound.setInteger("charge", (int)((IBatteryItem)ModItems.fusion_core).getMaxCharge()); } if(b) @@ -172,9 +172,9 @@ public class ArmorT45 extends ItemArmor implements ISpecialArmor { for (int i = 0; i < player.inventory.mainInventory.length; i++) { ItemStack stack = player.inventory.getStackInSlot(i); if (stack != null && stack.getItem() == ModItems.fusion_core - && ItemBattery.getCharge(stack) != 0) { + && ((IBatteryItem)stack.getItem()).getCharge(stack) != 0) { if (armor.stackTagCompound.getInteger("charge") == 0) { - int j = (int) ItemBattery.getCharge(stack); + int j = (int) ((IBatteryItem)stack.getItem()).getCharge(stack); armor.stackTagCompound.setInteger("charge", j); player.inventory.mainInventory[i] = null; player.addChatMessage(new ChatComponentText("[Power Armor recharged]")); diff --git a/src/main/java/com/hbm/items/block/ItemBlockLore.java b/src/main/java/com/hbm/items/block/ItemBlockLore.java index 96eae9cbe..2b4fbb1f6 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockLore.java +++ b/src/main/java/com/hbm/items/block/ItemBlockLore.java @@ -62,9 +62,19 @@ public class ItemBlockLore extends ItemBlock { list.add("attention in chemistry class."); } + if(this.field_150939_a == ModBlocks.machine_mining_laser) { + list.add("3x3x3 Multiblock"); + list.add("Only placeable on a ceiling."); + } + if(this.field_150939_a == ModBlocks.gravel_diamond) { list.add("There is some kind of joke here,"); list.add("but I can't quite tell what it is."); + list.add(""); + list.add("Update, 2020-07-04:"); + list.add("We deny any implications of a joke on"); + list.add("the basis that it was so severly unfunny"); + list.add("that people started stabbing their eyes out."); } } diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index 431281ab7..2e9ce036a 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -131,6 +131,36 @@ public class ItemAssemblyTemplate extends Item { UPGRADE_PINK_III, UPGRADE_RANGE, UPGRADE_HEALTH, + + UPGRADE_OVERDRIVE_I(200, Arrays.asList( + new ItemStack(ModItems.upgrade_speed_3, 4), + new ItemStack(ModItems.upgrade_effect_3, 2), + new ItemStack(ModItems.ingot_desh, 8), + new ItemStack(ModItems.powder_power, 16), + new ItemStack(ModItems.crystal_lithium, 4), + new ItemStack(ModItems.circuit_schrabidium, 4)), + new ItemStack(ModItems.upgrade_overdrive_1)), + UPGRADE_OVERDRIVE_II(400, Arrays.asList( + new ItemStack(ModItems.upgrade_overdrive_1, 1), + new ItemStack(ModItems.upgrade_afterburn_1, 1), + new ItemStack(ModItems.upgrade_speed_3, 2), + new ItemStack(ModItems.upgrade_effect_3, 2), + new ItemStack(ModItems.ingot_saturnite, 12), + new ItemStack(ModItems.powder_nitan_mix, 16), + new ItemStack(ModItems.crystal_starmetal, 6), + new ItemStack(ModItems.circuit_schrabidium, 6)), + new ItemStack(ModItems.upgrade_overdrive_2)), + UPGRADE_OVERDRIVE_III(800, Arrays.asList( + new ItemStack(ModItems.upgrade_overdrive_2, 1), + new ItemStack(ModItems.upgrade_afterburn_1, 1), + new ItemStack(ModItems.upgrade_speed_3, 2), + new ItemStack(ModItems.upgrade_effect_3, 2), + new ItemStack(ModItems.ingot_desh, 8), + new ItemStack(ModItems.powder_power, 16), + new ItemStack(ModItems.crystal_lithium, 4), + new ItemStack(ModItems.circuit_schrabidium, 4)), + new ItemStack(ModItems.upgrade_overdrive_3)), + FUSE, REDCOIL_CAPACITOR, TITANIUM_FILTER, @@ -175,6 +205,7 @@ public class ItemAssemblyTemplate extends Item { CHEMPLANT, TANK, MINER, + MININGLASER, TURBOFAN, TELEPORTER, SCHRABTRANS, @@ -997,6 +1028,8 @@ public class ItemAssemblyTemplate extends Item { return 150; case MINER: return 200; + case MININGLASER: + return 400; case TURBOFAN: return 500; case TELEPORTER: diff --git a/src/main/java/com/hbm/items/machine/ItemBattery.java b/src/main/java/com/hbm/items/machine/ItemBattery.java index 91528937f..433e8d2e5 100644 --- a/src/main/java/com/hbm/items/machine/ItemBattery.java +++ b/src/main/java/com/hbm/items/machine/ItemBattery.java @@ -5,13 +5,14 @@ import java.util.List; import com.hbm.items.ModItems; import com.hbm.lib.Library; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -public class ItemBattery extends Item { +public class ItemBattery extends Item implements IBatteryItem { private long maxCharge; private long chargeRate; @@ -21,8 +22,6 @@ public class ItemBattery extends Item { this.maxCharge = dura; this.chargeRate = chargeRate; this.dischargeRate = dischargeRate; - this.setMaxDamage(100); - this.canRepair = false; } @Override @@ -30,7 +29,7 @@ public class ItemBattery extends Item { { long charge = maxCharge; if(itemstack.hasTagCompound()) - charge = ItemBattery.getCharge(itemstack); + charge = getCharge(itemstack); if(itemstack.getItem() != ModItems.fusion_core && itemstack.getItem() != ModItems.factory_core_titanium && @@ -107,7 +106,7 @@ public class ItemBattery extends Item { } } - public static long getCharge(ItemStack stack) { + public long getCharge(ItemStack stack) { if(stack.getItem() instanceof ItemBattery) { if(stack.hasTagCompound()) { return stack.stackTagCompound.getLong("charge"); @@ -133,17 +132,12 @@ public class ItemBattery extends Item { return dischargeRate; } - public static long getMaxChargeStatic(ItemStack stack) { - return ((ItemBattery)stack.getItem()).maxCharge; - } - public static ItemStack getEmptyBattery(Item item) { if(item instanceof ItemBattery) { ItemStack stack = new ItemStack(item); stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound.setLong("charge", 0); - stack.setItemDamage(100); return stack.copy(); } @@ -155,20 +149,19 @@ public class ItemBattery extends Item { if(item instanceof ItemBattery) { ItemStack stack = new ItemStack(item); stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", getMaxChargeStatic(stack)); + stack.stackTagCompound.setLong("charge", ((ItemBattery)item).getMaxCharge()); return stack.copy(); } return null; } - - public static void updateDamage(ItemStack stack) { - - if(!stack.hasTagCompound()) { - stack = getFullBattery(stack.getItem()).copy(); - } - - stack.setItemDamage(100 - (int)((double)getCharge(stack) / (double)getMaxChargeStatic(stack) * 100D)); - } - + + public boolean showDurabilityBar(ItemStack stack) { + return true; + } + + public double getDurabilityForDisplay(ItemStack stack) + { + return 1D - (double)getCharge(stack) / (double)getMaxCharge(); + } } diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 6c83bcf36..e0f229a3e 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -19,9 +19,9 @@ import com.hbm.interfaces.IFluidSource; import com.hbm.interfaces.ISource; import com.hbm.interfaces.Spaghetti; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.items.tool.ItemToolAbilityPower; import com.hbm.potion.HbmPotion; +import com.hbm.tileentity.TileEntityProxyInventory; import com.hbm.tileentity.conductor.TileEntityCable; import com.hbm.tileentity.conductor.TileEntityCableSwitch; import com.hbm.tileentity.conductor.TileEntityFluidDuct; @@ -36,6 +36,7 @@ import com.hbm.tileentity.machine.TileEntityMachineBattery; import com.hbm.tileentity.machine.TileEntityMachineFluidTank; import com.hbm.tileentity.machine.TileEntityMachineTransformer; +import api.hbm.energy.IBatteryItem; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -172,10 +173,13 @@ public class Library { world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_base || world.getBlock(x, y, z) == ModBlocks.dummy_port_reactor_small || world.getBlock(x, y, z) == ModBlocks.dummy_port_compact_launcher || - world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table) - { + world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table) { return true; } + + if(world.getBlock(x, y, z) == ModBlocks.machine_mining_laser && tileentity instanceof TileEntityProxyInventory) + return true; + return false; } @@ -366,26 +370,28 @@ public class Library { //not great either but certainly better public static long chargeItemsFromTE(ItemStack[] slots, int index, long power, long maxPower) { - if(slots[index] != null && slots[index].getItem() instanceof ItemBattery) { + if(slots[index] != null && slots[index].getItem() instanceof IBatteryItem) { + + IBatteryItem battery = (IBatteryItem) slots[index].getItem(); - long batMax = ItemBattery.getMaxChargeStatic(slots[index]); - long batCharge = ItemBattery.getCharge(slots[index]); - long batRate = ((ItemBattery)slots[index].getItem()).getChargeRate(); + long batMax = battery.getMaxCharge(); + long batCharge = battery.getCharge(slots[index]); + long batRate = battery.getChargeRate(); //in hHE long toCharge = Math.min(Math.min(power / 100, batRate), batMax - batCharge); power -= toCharge * 100; - ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], toCharge); + battery.chargeBattery(slots[index], toCharge); - if(slots[index] != null && slots[index].getItem() == ModItems.dynosphere_desh && ItemBattery.getCharge(slots[index]) >= ItemBattery.getMaxChargeStatic(slots[index])) + if(slots[index] != null && slots[index].getItem() == ModItems.dynosphere_desh && battery.getCharge(slots[index]) >= battery.getMaxCharge()) slots[index] = new ItemStack(ModItems.dynosphere_desh_charged); - if(slots[index] != null && slots[index].getItem() == ModItems.dynosphere_schrabidium && ItemBattery.getCharge(slots[index]) >= ItemBattery.getMaxChargeStatic(slots[index])) + if(slots[index] != null && slots[index].getItem() == ModItems.dynosphere_schrabidium && battery.getCharge(slots[index]) >= battery.getMaxCharge()) slots[index] = new ItemStack(ModItems.dynosphere_schrabidium_charged); - if(slots[index] != null && slots[index].getItem() == ModItems.dynosphere_euphemium && ItemBattery.getCharge(slots[index]) >= ItemBattery.getMaxChargeStatic(slots[index])) + if(slots[index] != null && slots[index].getItem() == ModItems.dynosphere_euphemium && battery.getCharge(slots[index]) >= battery.getMaxCharge()) slots[index] = new ItemStack(ModItems.dynosphere_euphemium_charged); - if(slots[index] != null && slots[index].getItem() == ModItems.dynosphere_dineutronium && ItemBattery.getCharge(slots[index]) >= ItemBattery.getMaxChargeStatic(slots[index])) + if(slots[index] != null && slots[index].getItem() == ModItems.dynosphere_dineutronium && battery.getCharge(slots[index]) >= battery.getMaxCharge()) slots[index] = new ItemStack(ModItems.dynosphere_dineutronium_charged); } @@ -404,10 +410,6 @@ public class Library { } - if(slots[index] != null && slots[index].getItem() instanceof ItemBattery) { - ItemBattery.updateDamage(slots[index]); - } - return power; } @@ -423,18 +425,18 @@ public class Library { return maxPower; } - if(slots[index] != null && slots[index].getItem() instanceof ItemBattery) { + if(slots[index] != null && slots[index].getItem() instanceof IBatteryItem) { + + IBatteryItem battery = (IBatteryItem) slots[index].getItem(); - long batCharge = ItemBattery.getCharge(slots[index]); - long batRate = ((ItemBattery)slots[index].getItem()).getDischargeRate(); + long batCharge = battery.getCharge(slots[index]); + long batRate = battery.getDischargeRate(); //in hHe long toDischarge = Math.min(Math.min((maxPower - power) / 100, batRate), batCharge); - ((ItemBattery)slots[index].getItem()).dischargeBattery(slots[index], toDischarge); + battery.dischargeBattery(slots[index], toDischarge); power += toDischarge * 100; - - ItemBattery.updateDamage(slots[index]); } return power; diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index cd6e3ee09..c04b2e51a 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -879,6 +879,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_fuel_napalm, 1), new Object[] { " P ", "BDB", " P ", 'P', "plateSteel", 'B', ModItems.bolt_tungsten, 'D', ModItems.canister_napalm })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_fuel_phosphorus, 1), new Object[] { "CPC", "CDC", "CPC", 'C', "dustCoal", 'P', ModItems.ingot_phosphorus, 'D', ModItems.ammo_fuel })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_fuel_gas, 1), new Object[] { "PDP", "BDB", "PDP", 'P', "plateSteel", 'B', ModItems.bolt_tungsten, 'D', ModItems.pellet_gas })); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_fuel_vaporizer, 1), new Object[] { "PSP", "SNS", "PSP", 'P', ModItems.ingot_phosphorus, 'S', ModItems.crystal_sulfur, 'N', ModItems.ammo_fuel_napalm }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.stamp_357, 1), new Object[] { "RSR", "III", " C ", 'R', "dustRedstone", 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_357 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.stamp_44, 1), new Object[] { "RSR", "III", " C ", 'R', "dustRedstone", 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_44 })); @@ -1147,6 +1148,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ModItems.ingot_polymer, 'D', ModItems.ingot_dura_steel, 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); GameRegistry.addRecipe(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ModItems.ingot_polymer, 'D', ModItems.ingot_dura_steel, 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.centri_stick, 1), new Object[] { ModItems.centrifuge_element, ModItems.energy_core, Items.stick }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', "blockSteel", 'T', "blockTungsten", 'P', "ingotPolymer" })); GameRegistry.addRecipe(new ItemStack(ModItems.desh_sword, 1), new Object[] { "I", "I", "S", 'I', ModItems.ingot_desh, 'S', Items.stick }); GameRegistry.addRecipe(new ItemStack(ModItems.desh_pickaxe, 1), new Object[] { "III", " S ", " S ", 'I', ModItems.ingot_desh, 'S', Items.stick }); GameRegistry.addRecipe(new ItemStack(ModItems.desh_axe, 1), new Object[] { "II", "IS", " S", 'I', ModItems.ingot_desh, 'S', Items.stick }); @@ -1606,6 +1608,8 @@ public class CraftingManager { GameRegistry.addSmelting(new ItemStack(Blocks.gravel, 1), new ItemStack(Blocks.cobblestone, 1), 0.0F); GameRegistry.addSmelting(new ItemStack(ModBlocks.gravel_obsidian), new ItemStack(Blocks.obsidian), 0.0F); GameRegistry.addSmelting(new ItemStack(ModBlocks.gravel_diamond), new ItemStack(Items.diamond), 3.0F); + + GameRegistry.addSmelting(ModItems.ingot_schraranium, new ItemStack(ModItems.nugget_schrabidium, 1), 2.0F); GameRegistry.addSmelting(ModItems.crystal_iron, new ItemStack(Items.iron_ingot, 2), 2.0F); GameRegistry.addSmelting(ModItems.crystal_gold, new ItemStack(Items.gold_ingot, 2), 2.0F); @@ -1623,6 +1627,7 @@ public class CraftingManager { GameRegistry.addSmelting(ModItems.crystal_fluorite, new ItemStack(ModItems.fluorite, 6), 2.0F); GameRegistry.addSmelting(ModItems.crystal_beryllium, new ItemStack(ModItems.ingot_beryllium, 2), 2.0F); GameRegistry.addSmelting(ModItems.crystal_lead, new ItemStack(ModItems.ingot_lead, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_schraranium, new ItemStack(ModItems.nugget_schrabidium, 2), 2.0F); GameRegistry.addSmelting(ModItems.crystal_schrabidium, new ItemStack(ModItems.ingot_schrabidium, 2), 2.0F); GameRegistry.addSmelting(ModItems.crystal_rare, new ItemStack(ModItems.powder_desh_mix, 1), 2.0F); GameRegistry.addSmelting(ModItems.crystal_phosphorus, new ItemStack(ModItems.powder_fire, 6), 2.0F); diff --git a/src/main/java/com/hbm/render/item/ItemRenderWeaponObj.java b/src/main/java/com/hbm/render/item/ItemRenderWeaponObj.java index c53693325..9c9b2f18a 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderWeaponObj.java +++ b/src/main/java/com/hbm/render/item/ItemRenderWeaponObj.java @@ -4,6 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -129,6 +131,9 @@ public class ItemRenderWeaponObj implements IItemRenderer { GL11.glTranslatef(1.0F, -1.0F, -0.0F); GL11.glRotatef(170F, 0.0F, 1.0F, 0.0F); GL11.glScaled(0.25, 0.25, 0.25); + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + GL11.glTranslated(recoil[0], recoil[1], recoil[2]); if(player.isSneaking()) { GL11.glRotatef(5F, 0.0F, 1.0F, 0.0F); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java index 0f409456e..e3918ceb7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java @@ -6,6 +6,7 @@ import com.hbm.interfaces.IFactory; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -234,7 +235,7 @@ public class TileEntityCoreAdvanced extends TileEntity implements ISidedInventor public void updateEntity() { if(this.slots[22] != null && this.slots[22].getItem() == ModItems.factory_core_advanced) { - this.power = (int) ItemBattery.getCharge(slots[22]); + this.power = (int) ((IBatteryItem)slots[22].getItem()).getCharge(slots[22]); } else { this.power = 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java index 74dbeb0a5..10c06444a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java @@ -6,6 +6,7 @@ import com.hbm.interfaces.IFactory; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -234,7 +235,7 @@ public class TileEntityCoreTitanium extends TileEntity implements ISidedInventor public void updateEntity() { if(this.slots[22] != null && this.slots[22].getItem() == ModItems.factory_core_titanium) { - this.power = (int) ItemBattery.getCharge(slots[22]); + this.power = (int) ((IBatteryItem)slots[22].getItem()).getCharge(slots[22]); } else { this.power = 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java index b4bcb08f5..efc941e40 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java @@ -5,11 +5,11 @@ import java.util.List; import com.hbm.interfaces.IConsumer; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEFFPacket; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -120,7 +120,7 @@ public class TileEntityForceField extends TileEntity implements ISidedInventory, @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { if(i == 0) - if(itemStack.getItem() instanceof ItemBattery) + if(itemStack.getItem() instanceof IBatteryItem) return true; if(i == 1) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index 9e3e4cf0c..0448b3c2e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -4,12 +4,12 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineArcFurnace; import com.hbm.interfaces.IConsumer; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; @@ -117,7 +117,7 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv return false; if(i == 5) - if(itemStack.getItem() instanceof ItemBattery) + if(itemStack.getItem() instanceof IBatteryItem) return true; if(i == 2 || i == 3 || i == 4) @@ -205,7 +205,7 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { if(i == 5) - if (itemStack.getItem() instanceof ItemBattery && ItemBattery.getCharge(itemStack) == 0) + if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) return true; if(i == 1) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 14186e6af..02ca88ebd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -8,13 +8,13 @@ import com.hbm.interfaces.IConsumer; import com.hbm.inventory.MachineRecipes; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemAssemblyTemplate; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEAssemblerPacket; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -120,7 +120,7 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { if(i == 0) - if(itemStack.getItem() instanceof ItemBattery) + if(itemStack.getItem() instanceof IBatteryItem) return true; if(i == 1) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBattery.java index be49daacd..af1c65af7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBattery.java @@ -6,10 +6,10 @@ import java.util.List; import com.hbm.blocks.machine.MachineBattery; import com.hbm.interfaces.IConsumer; import com.hbm.interfaces.ISource; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; +import api.hbm.energy.IBatteryItem; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; @@ -71,11 +71,11 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I switch(i) { case 0: - if(stack.getItem() instanceof ItemBattery) + if(stack.getItem() instanceof IBatteryItem) return true; break; case 1: - if(stack.getItem() instanceof ItemBattery) + if(stack.getItem() instanceof IBatteryItem) return true; break; } @@ -142,11 +142,11 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if(itemStack.getItem() instanceof ItemBattery) { - if(i == 0 && ItemBattery.getCharge(itemStack) == 0) { + if(itemStack.getItem() instanceof IBatteryItem) { + if(i == 0 && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) { return true; } - if(i == 1 && ItemBattery.getCharge(itemStack) == ItemBattery.getMaxChargeStatic(itemStack)) { + if(i == 1 && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) { return true; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java index c3498a2e0..1b98ce209 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java @@ -12,12 +12,12 @@ import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidTank; import com.hbm.inventory.MachineRecipes; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; @@ -122,7 +122,7 @@ public class TileEntityMachineBoilerElectric extends TileEntity implements ISide public boolean isItemValidForSlot(int i, ItemStack stack) { if(i == 4) - if(stack != null && stack.getItem() instanceof ItemBattery) + if(stack != null && stack.getItem() instanceof IBatteryItem) return true; return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java index c86b3a805..a47d33c89 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java @@ -9,11 +9,11 @@ import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; @@ -115,7 +115,7 @@ public class TileEntityMachineCMBFactory extends TileEntity implements ISidedInv switch(i) { case 0: - if(stack.getItem() instanceof ItemBattery) + if(stack.getItem() instanceof IBatteryItem) return true; break; case 1: @@ -215,7 +215,7 @@ public class TileEntityMachineCMBFactory extends TileEntity implements ISidedInv if(i == 4) return true; if(i == 0) - if (itemStack.getItem() instanceof ItemBattery && ItemBattery.getCharge(itemStack) == 0) + if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) return true; if(i == 2) if(itemStack.getItem() == Items.bucket || (itemStack.getItem() == ModItems.tank_waste && itemStack.getItemDamage() <= 0)) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index e49ee1aab..3255d27b9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -2,13 +2,13 @@ package com.hbm.tileentity.machine; import com.hbm.interfaces.IConsumer; import com.hbm.inventory.CentrifugeRecipes; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -115,10 +115,10 @@ public class TileEntityMachineCentrifuge extends TileEntity implements ISidedInv } if(i == 1) { - return itemStack.getItem() instanceof ItemBattery; + return itemStack.getItem() instanceof IBatteryItem; } - return !(itemStack.getItem() instanceof ItemBattery); + return !(itemStack.getItem() instanceof IBatteryItem); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 1cb5ac460..8b425bf98 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -13,7 +13,6 @@ import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidTank; import com.hbm.inventory.MachineRecipes; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemChemistryTemplate; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; @@ -22,6 +21,7 @@ import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEChemplantPacket; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -135,7 +135,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { if(i == 0) - if(itemStack.getItem() instanceof ItemBattery) + if(itemStack.getItem() instanceof IBatteryItem) return true; if(i == 1) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java index f184ddfcc..127840c12 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java @@ -21,12 +21,12 @@ import com.hbm.interfaces.ISource; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; public class TileEntityMachineCoal extends TileEntity implements ISidedInventory, ISource, IFluidContainer, IFluidAcceptor { @@ -123,7 +123,7 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory if(FluidContainerRegistry.getFluidContent(stack, FluidType.WATER) > 0) return true; if(i == 2) - if(stack.getItem() instanceof ItemBattery) + if(stack.getItem() instanceof IBatteryItem) return true; if(i == 1) if(TileEntityFurnace.getItemBurnTime(stack) > 0) @@ -211,7 +211,7 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory if(itemStack.getItem() == Items.bucket || itemStack.getItem() == ModItems.rod_empty || itemStack.getItem() == ModItems.rod_dual_empty || itemStack.getItem() == ModItems.rod_quad_empty) return true; if(i == 2) - if (itemStack.getItem() instanceof ItemBattery && ItemBattery.getCharge(itemStack) == ItemBattery.getMaxChargeStatic(itemStack)) + if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) return true; return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index 07113a659..5df3bbda4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -8,10 +8,10 @@ import com.hbm.interfaces.IConsumer; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.CrystallizerRecipes; import com.hbm.inventory.FluidTank; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; +import api.hbm.energy.IBatteryItem; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -195,7 +195,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme if(i == 0 && CrystallizerRecipes.getOutput(itemStack) != null) return true; - if(i == 1 && itemStack.getItem() instanceof ItemBattery) + if(i == 1 && itemStack.getItem() instanceof IBatteryItem) return true; return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDeuterium.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDeuterium.java index a899b330e..6cb2e78d8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDeuterium.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDeuterium.java @@ -2,7 +2,6 @@ package com.hbm.tileentity.machine; import com.hbm.interfaces.IConsumer; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import net.minecraft.entity.player.EntityPlayer; @@ -104,10 +103,6 @@ public class TileEntityMachineDeuterium extends TileEntity implements ISidedInve public boolean isItemValidForSlot(int i, ItemStack stack) { switch(i) { - case 0: - if(stack.getItem() instanceof ItemBattery) - return true; - break; case 1: if(stack.getItem() == ModItems.rod_water || stack.getItem() == ModItems.rod_dual_water || stack.getItem() == ModItems.rod_quad_water || stack.getItem() == Items.water_bucket) return true; @@ -206,9 +201,6 @@ public class TileEntityMachineDeuterium extends TileEntity implements ISidedInve public boolean canExtractItem(int i, ItemStack itemStack, int j) { if(i == 4) return true; - if(i == 0) - if (itemStack.getItem() instanceof ItemBattery && ItemBattery.getCharge(itemStack) == 0) - return true; if(i == 1) if(itemStack.getItem() == Items.bucket || itemStack.getItem() == ModItems.rod_empty || itemStack.getItem() == ModItems.rod_dual_empty || itemStack.getItem() == ModItems.rod_quad_empty) return true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 8892f9aa3..c8f0c9533 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -11,12 +11,12 @@ import com.hbm.interfaces.ISource; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; @@ -120,7 +120,7 @@ public class TileEntityMachineDiesel extends TileEntity implements ISidedInvento if (FluidContainerRegistry.getFluidContent(stack, tank.getTankType()) > 0) return true; if (i == 2) - if (stack.getItem() instanceof ItemBattery) + if (stack.getItem() instanceof IBatteryItem) return true; return false; @@ -199,7 +199,7 @@ public class TileEntityMachineDiesel extends TileEntity implements ISidedInvento if (itemStack.getItem() == ModItems.canister_empty || itemStack.getItem() == ModItems.tank_steel) return true; if (i == 2) - if (itemStack.getItem() instanceof ItemBattery && ItemBattery.getCharge(itemStack) == ItemBattery.getMaxChargeStatic(itemStack)) + if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) return true; return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index cfffff1fc..4a471de4c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -2,12 +2,12 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.machine.MachineElectricFurnace; import com.hbm.interfaces.IConsumer; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; @@ -105,7 +105,7 @@ public class TileEntityMachineElectricFurnace extends TileEntity implements ISid @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { if(i == 0) - if(itemStack.getItem() instanceof ItemBattery) + if(itemStack.getItem() instanceof IBatteryItem) return true; if(i == 1) @@ -190,7 +190,7 @@ public class TileEntityMachineElectricFurnace extends TileEntity implements ISid @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { if(i == 0) - if (itemStack.getItem() instanceof ItemBattery && ItemBattery.getCharge(itemStack) == 0) + if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) return true; if(i == 2) return true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasFlare.java index 4bcd1130e..e29226695 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasFlare.java @@ -12,11 +12,11 @@ import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.ISource; import com.hbm.inventory.FluidTank; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -119,7 +119,7 @@ public class TileEntityMachineGasFlare extends TileEntity implements ISidedInven @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { if(i == 0) - if(itemStack.getItem() instanceof ItemBattery) + if(itemStack.getItem() instanceof IBatteryItem) return true; if(i == 1) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGenerator.java index af6472a76..013c410e5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGenerator.java @@ -13,12 +13,12 @@ import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.ISource; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemFuelRod; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -141,7 +141,7 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve if(itemStack.getItem() == ModItems.rod_coolant || itemStack.getItem() == ModItems.rod_dual_coolant || itemStack.getItem() == ModItems.rod_quad_coolant) return true; if(i == 11) - if(itemStack.getItem() instanceof ItemBattery) + if(itemStack.getItem() instanceof IBatteryItem) return true; return false; } @@ -251,7 +251,7 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve if(itemStack.getItem() == Items.bucket || itemStack.getItem() == ModItems.rod_empty || itemStack.getItem() == ModItems.rod_dual_empty || itemStack.getItem() == ModItems.rod_quad_empty) return true; if(i == 11) - if (itemStack.getItem() instanceof ItemBattery && ItemBattery.getCharge(itemStack) == ItemBattery.getMaxChargeStatic(itemStack)) + if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) return true; return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java index b6b82bb7d..8b72d128b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java @@ -5,7 +5,6 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IConsumer; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.LoopedSoundPacket; @@ -13,6 +12,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEDrillPacket; import com.hbm.sound.SoundLoopMachine; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -126,7 +126,7 @@ public class TileEntityMachineMiningDrill extends TileEntity implements ISidedIn @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { if(i == 0) - if(itemStack.getItem() instanceof ItemBattery) + if(itemStack.getItem() instanceof IBatteryItem) return true; if(i == 1) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index ac1c0b38c..df8ecfc10 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -1,13 +1,18 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; import java.util.List; import java.util.Set; import com.google.common.collect.Sets; import com.hbm.blocks.ModBlocks; +import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.CentrifugeRecipes; import com.hbm.inventory.CrystallizerRecipes; +import com.hbm.inventory.FluidTank; import com.hbm.inventory.ShredderRecipes; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; @@ -30,11 +35,14 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IConsumer { +public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IConsumer, IFluidSource { public long power; + public int age = 0; public static final long maxPower = 100000000; public static final int consumption = 10000; + public FluidTank tank; + public List list = new ArrayList(); public boolean isOn; public int targetX; @@ -53,6 +61,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen //slots 1 - 8: upgrades //slots 9 - 29: output super(30); + tank = new FluidTank(FluidType.OIL, 64000, 0); } @Override @@ -64,8 +73,17 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen public void updateEntity() { if(!worldObj.isRemote) { + + age++; + if (age >= 20) { + age = 0; + } + + if (age == 9 || age == 19) + fillFluidInit(tank.getTankType()); power = Library.chargeTEFromItems(slots, 0, power, maxPower); + tank.updateTank(xCoord, yCoord, zCoord, this.worldObj.provider.dimensionId); //reset progress if the position changes if(lastTargetX != targetX || @@ -297,6 +315,18 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen continue; } + if(item.getEntityItem().getItem() == Item.getItemFromBlock(ModBlocks.ore_oil)) { + + tank.setTankType(FluidType.OIL); //just to be sure + + tank.setFill(tank.getFill() + 500); + if(tank.getFill() > tank.getMaxFill()) + tank.setFill(tank.getMaxFill()); + + item.setDead(); + continue; + } + ItemStack stack = InventoryUtil.tryAddItemToInventory(slots, 9, 29, item.getEntityItem().copy()); if(stack == null) @@ -600,4 +630,81 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen public long getMaxPower() { return maxPower; } + + @Override + public void setFillstate(int fill, int index) { + tank.setFill(fill); + } + + @Override + public void setFluidFill(int fill, FluidType type) { + if(type == FluidType.OIL) + tank.setFill(fill); + } + + @Override + public void setType(FluidType type, int index) { + tank.setTankType(type); + } + + @Override + public List getTanks() { + return new ArrayList() {{ add(tank); }}; + } + + @Override + public int getFluidFill(FluidType type) { + if(type == FluidType.OIL) + return tank.getFill(); + return 0; + } + + @Override + public void fillFluidInit(FluidType type) { + + fillFluid(xCoord + 2, yCoord, zCoord, this.getTact(), type); + fillFluid(xCoord - 2, yCoord, zCoord, this.getTact(), type); + fillFluid(xCoord, yCoord, zCoord + 2, this.getTact(), type); + fillFluid(xCoord, yCoord, zCoord - 2, this.getTact(), type); + } + + @Override + public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { + Library.transmitFluid(x, y, z, newTact, this, worldObj, type); + } + + @Override + public boolean getTact() { + if (age >= 0 && age < 10) { + return true; + } + + return false; + } + + @Override + public List getFluidList(FluidType type) { + return list; + } + + @Override + public void clearFluidList(FluidType type) { + list.clear(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + tank.readFromNBT(nbt, "oil"); + isOn = nbt.getBoolean("isOn"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + tank.writeToNBT(nbt, "oil"); + nbt.setBoolean("isOn", isOn); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOilWell.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOilWell.java index ba59c8255..e041b1e45 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOilWell.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOilWell.java @@ -14,11 +14,11 @@ import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -130,7 +130,7 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { if(i == 0) - if(itemStack.getItem() instanceof ItemBattery) + if(itemStack.getItem() instanceof IBatteryItem) return true; if(i == 1) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpjack.java index 8a770b87f..17d5683f2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpjack.java @@ -13,12 +13,12 @@ import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEPumpjackPacket; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -132,7 +132,7 @@ public class TileEntityMachinePumpjack extends TileEntity implements ISidedInven @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { if(i == 0) - if(itemStack.getItem() instanceof ItemBattery) + if(itemStack.getItem() instanceof IBatteryItem) return true; if(i == 1) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java index 70baca628..fdfc970fe 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java @@ -11,7 +11,6 @@ import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.ISource; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemFuelRod; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; @@ -19,6 +18,7 @@ import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; import com.hbm.saveddata.RadiationSavedData; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -145,7 +145,7 @@ public class TileEntityMachineReactorSmallOld extends TileEntity || itemStack.getItem() == ModItems.rod_quad_coolant) return true; if (i == 16) - if (itemStack.getItem() instanceof ItemBattery) + if (itemStack.getItem() instanceof IBatteryItem) return true; return false; } @@ -245,8 +245,7 @@ public class TileEntityMachineReactorSmallOld extends TileEntity || itemStack.getItem() == ModItems.fluid_barrel_empty) return true; if (i == 16) - if (itemStack.getItem() instanceof ItemBattery - && ItemBattery.getCharge(itemStack) == ItemBattery.getMaxChargeStatic(itemStack)) + if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) return true; return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRefinery.java index fa145d2f3..1ef693bbd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRefinery.java @@ -11,11 +11,11 @@ import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -126,7 +126,7 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0 && stack.getItem() instanceof ItemBattery) + if(i == 0 && stack.getItem() instanceof IBatteryItem) return true; if(i == 1 && FluidContainerRegistry.getFluidContent(stack, FluidType.HOTOIL) > 0) return true; @@ -230,7 +230,7 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { if(i == 0) - if (itemStack.getItem() instanceof ItemBattery && ItemBattery.getCharge(itemStack) == 0) + if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) return true; if(i == 2) return true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index e0e04433f..65cf3299d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -1,33 +1,25 @@ package com.hbm.tileentity.machine; -import java.util.Random; - import com.hbm.interfaces.IConsumer; import com.hbm.inventory.MachineRecipes; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.TileEntityMachineBase; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; +import api.hbm.energy.IBatteryItem; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -public class TileEntityMachineSchrabidiumTransmutator extends TileEntity implements ISidedInventory, IConsumer { - - private ItemStack slots[]; +public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineBase implements IConsumer { public long power = 0; public int process = 0; - public int soundCycle = 0; public static final long maxPower = 5000000; - public static final int processSpeed = 60; - Random rand = new Random(); + public static final int processSpeed = 600; + + private AudioWrapper audio; private static final int[] slots_top = new int[] { 0 }; private static final int[] slots_bottom = new int[] { 1, 2 }; @@ -36,36 +28,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntity impleme private String customName; public TileEntityMachineSchrabidiumTransmutator() { - slots = new ItemStack[4]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(4); } @Override @@ -82,28 +45,16 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntity impleme this.customName = name; } + @Override + public String getName() { + return getInventoryName(); + } + @Override public int getInventoryStackLimit() { return 64; } - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - @Override public boolean isItemValidForSlot(int i, ItemStack stack) { switch (i) { @@ -116,66 +67,26 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntity impleme return true; break; case 3: - if (stack.getItem() instanceof ItemBattery) + if (stack.getItem() instanceof IBatteryItem) return true; break; } return false; } - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); power = nbt.getLong("power"); - process = nbt.getShort("process"); - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } + process = nbt.getInteger("process"); } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setLong("power", power); - nbt.setShort("process", (short) process); - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); + nbt.setInteger("process", process); } @Override @@ -183,11 +94,6 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntity impleme return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); } - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - @Override public boolean canExtractItem(int i, ItemStack stack, int j) { if (i == 2 && stack.getItem() != null && stack.getItem() == ModItems.redcoil_capacitor @@ -200,7 +106,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntity impleme } if (i == 3) { - if (stack.getItem() instanceof ItemBattery && ItemBattery.getCharge(stack) == 0) + if (stack.getItem() instanceof IBatteryItem && ((IBatteryItem)stack.getItem()).getCharge(stack) == 0) return true; } @@ -219,7 +125,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntity impleme if (power >= 4990000 && slots[0] != null && MachineRecipes.mODE(slots[0], "ingotUranium") && slots[2] != null && slots[2].getItem() == ModItems.redcoil_capacitor && slots[2].getItemDamage() < slots[2].getMaxDamage() - && (slots[1] == null || (slots[1] != null && slots[1].getItem() == ModItems.ingot_schrabidium + && (slots[1] == null || (slots[1] != null && slots[1].getItem() == ModItems.ingot_schraranium && slots[1].stackSize < slots[1].getMaxStackSize()))) { return true; } @@ -233,15 +139,6 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntity impleme public void process() { process++; - if (isProcessing()) { - if (soundCycle == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "minecart.base", 1.0F, 1.0F); - soundCycle++; - - if (soundCycle >= 38) - soundCycle = 0; - } - if (process >= processSpeed) { power = 0; @@ -253,7 +150,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntity impleme } if (slots[1] == null) { - slots[1] = new ItemStack(ModItems.ingot_schrabidium); + slots[1] = new ItemStack(ModItems.ingot_schraranium); } else { slots[1].stackSize++; } @@ -262,7 +159,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntity impleme } this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "ambient.weather.thunder", 10000.0F, - 0.8F + this.rand.nextFloat() * 0.2F); + 0.8F + this.worldObj.rand.nextFloat() * 0.2F); } } @@ -273,29 +170,68 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntity impleme power = Library.chargeTEFromItems(slots, 3, power, maxPower); - if (canProcess()) { - - //if (!worldObj.isRemote) { + if(canProcess()) { process(); - //} } else { process = 0; } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setInteger("progress", process); + this.networkPack(data, 50); + + } else { - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + if(process > 0) { + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 1.0F); + audio.startSound(); + } + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } } } + + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void networkUnpack(NBTTagCompound data) { + + this.power = data.getLong("power"); + this.process = data.getInteger("progress"); + } @Override public void setPower(long i) { power = i; - } @Override public long getPower() { return power; - } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index c16c479d8..091be74cb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -11,12 +11,12 @@ import com.hbm.interfaces.ISource; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; @@ -121,7 +121,7 @@ public class TileEntityMachineSeleniumEngine extends TileEntity implements ISide if (FluidContainerRegistry.getFluidContent(stack, tank.getTankType()) > 0) return true; if (i == 13) - if (stack.getItem() instanceof ItemBattery) + if (stack.getItem() instanceof IBatteryItem) return true; return false; @@ -200,7 +200,7 @@ public class TileEntityMachineSeleniumEngine extends TileEntity implements ISide if (itemStack.getItem() == ModItems.canister_empty || itemStack.getItem() == ModItems.tank_steel) return true; if (i == 2) - if (itemStack.getItem() instanceof ItemBattery && ItemBattery.getCharge(itemStack) == ItemBattery.getMaxChargeStatic(itemStack)) + if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) return true; return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java index 9cdd7799d..503a64b24 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java @@ -2,12 +2,12 @@ package com.hbm.tileentity.machine; import com.hbm.interfaces.IConsumer; import com.hbm.inventory.ShredderRecipes; -import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemBlades; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; @@ -107,7 +107,7 @@ public class TileEntityMachineShredder extends TileEntity implements ISidedInven if(i == 0) return true; if(i == 2) - if(stack.getItem() instanceof ItemBattery || stack.getItem() instanceof ItemBlades) + if(stack.getItem() instanceof IBatteryItem || stack.getItem() instanceof ItemBlades) return true; return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java index 25c1949c0..86c881c04 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java @@ -3,10 +3,10 @@ package com.hbm.tileentity.machine; import java.util.Random; import com.hbm.interfaces.IConsumer; -import com.hbm.items.machine.ItemBattery; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -104,7 +104,7 @@ public class TileEntityMachineShredderLarge extends TileEntity implements ISided @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { if(i == 0) - if(itemStack.getItem() instanceof ItemBattery) + if(itemStack.getItem() instanceof IBatteryItem) return true; if(i == 1) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 99a6d8c9d..78ef133b8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -11,11 +11,11 @@ import com.hbm.interfaces.IFluidSource; import com.hbm.interfaces.ISource; import com.hbm.inventory.FluidTank; import com.hbm.inventory.MachineRecipes; -import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; @@ -118,7 +118,7 @@ public class TileEntityMachineTurbine extends TileEntity implements ISidedInvent public boolean isItemValidForSlot(int i, ItemStack stack) { if(i == 4) - if(stack != null && stack.getItem() instanceof ItemBattery) + if(stack != null && stack.getItem() instanceof IBatteryItem) return true; return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReiXMainframe.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReiXMainframe.java index 679881719..bfa7778b2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReiXMainframe.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReiXMainframe.java @@ -2,8 +2,8 @@ package com.hbm.tileentity.machine; import com.hbm.interfaces.IConsumer; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.ISidedInventory; @@ -104,7 +104,7 @@ public class TileEntityReiXMainframe extends TileEntity implements ISidedInvento switch(i) { case 0: - if(stack.getItem() instanceof ItemBattery) + if(stack.getItem() instanceof IBatteryItem) return true; break; case 1: @@ -203,9 +203,6 @@ public class TileEntityReiXMainframe extends TileEntity implements ISidedInvento public boolean canExtractItem(int i, ItemStack itemStack, int j) { if(i == 4) return true; - if(i == 0 && itemStack.getItem() instanceof ItemBattery) - if(itemStack.getItemDamage() == itemStack.getMaxDamage()) - return true; if(i == 2) if(itemStack.getItem() == Items.bucket || (itemStack.getItem() == ModItems.tank_waste && itemStack.getItemDamage() <= 0)) return true;