diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index f285cf3d6..3f5c58202 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -384,6 +384,7 @@ tile.machine_chemplant.name=Chemiefabrik container.chemplant=Chemiefabrik tile.fluid_duct.name=Universelles Flüssigkeitsrohr tile.machine_fluidtank.name=Tank +item.fluid_duct.name=Flüssigkeitsrohr: container.fluidtank=Tank tile.machine_turbofan.name=Turbofan container.machineTurbofan=Turbofan @@ -782,6 +783,7 @@ item.powder_meteorite.name=Meteoritenstaub item.powder_meteorite_tiny.name=Kleiner Haufen Meteoritenstaub item.powder_yellowcake.name=Yellowcake item.powder_magic.name=Pulverisierte Verzauberung +item.redstone_depleted.name=Entsättigter Redstonestaub item.fragment_neodymium.name=Neodymfragment item.fragment_cobalt.name=Cobaltfragment diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 879723203..5a2a3f7c6 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -384,6 +384,7 @@ tile.machine_chemplant.name=Chemical Plant container.chemplant=Chemical Plant tile.fluid_duct.name=Universal Fluid Duct tile.machine_fluidtank.name=Tank +item.fluid_duct.name=Fluid Duct: container.fluidtank=Tank tile.machine_turbofan.name=Turbofan container.machineTurbofan=Turbofan @@ -782,6 +783,7 @@ item.powder_meteorite.name=Meteorite Powder item.powder_meteorite_tiny.name=Tiny Pile of Meteorite Powder item.powder_yellowcake.name=Yellowcake item.powder_magic.name=Pulverized Enchantment +item.redstone_depleted.name=Desaturated Redstone Dust item.fragment_neodymium.name=Neodymium Fragment item.fragment_cobalt.name=Cobalt Fragment diff --git a/assets/hbm/sounds.json b/assets/hbm/sounds.json index 7c1321b22..20ef72648 100644 --- a/assets/hbm/sounds.json +++ b/assets/hbm/sounds.json @@ -27,6 +27,7 @@ "block.lockHang": {"category": "block", "sounds": [{"name": "block/lockHang", "stream": false}]}, "block.debris": {"category": "block", "sounds": ["block/debris1", "block/debris2", "block/debris3"]}, "block.centrifugeOperate": {"category": "block", "sounds": [{"name": "block/centrifugeOperate", "stream": false}]}, + "block.pipePlaced": {"category": "block", "sounds": [{"name": "block/pipePlaced", "stream": false}]}, "item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]}, "item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]}, diff --git a/assets/hbm/sounds/block/pipePlaced.ogg b/assets/hbm/sounds/block/pipePlaced.ogg new file mode 100644 index 000000000..fe2c1857b Binary files /dev/null and b/assets/hbm/sounds/block/pipePlaced.ogg differ diff --git a/assets/hbm/textures/items/duct.png b/assets/hbm/textures/items/duct.png new file mode 100644 index 000000000..57406ff87 Binary files /dev/null and b/assets/hbm/textures/items/duct.png differ diff --git a/assets/hbm/textures/items/duct_overlay.png b/assets/hbm/textures/items/duct_overlay.png new file mode 100644 index 000000000..d19f95073 Binary files /dev/null and b/assets/hbm/textures/items/duct_overlay.png differ diff --git a/assets/hbm/textures/items/redstone_depleted.png b/assets/hbm/textures/items/redstone_depleted.png new file mode 100644 index 000000000..1cc99895c Binary files /dev/null and b/assets/hbm/textures/items/redstone_depleted.png differ diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 3f3a250c6..ae48cdc94 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -197,6 +197,7 @@ public class ModItems { public static Item powder_red_copper; public static Item powder_steel; public static Item powder_lithium; + public static Item redstone_depleted; public static Item powder_australium; public static Item powder_weidanium; @@ -682,6 +683,7 @@ public class ModItems { public static Item fluid_identifier; public static Item fluid_icon; public static Item siren_track; + public static Item fluid_duct; public static Item missile_assembly; public static Item missile_generic; @@ -1525,6 +1527,7 @@ public class ModItems { powder_red_copper = new Item().setUnlocalizedName("powder_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_red_copper"); powder_steel = new Item().setUnlocalizedName("powder_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_steel"); powder_lithium = new Item().setUnlocalizedName("powder_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lithium"); + redstone_depleted = new Item().setUnlocalizedName("redstone_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":redstone_depleted"); powder_power = new ItemCustomLore().setUnlocalizedName("powder_power").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_energy_alt"); powder_iodine = new ItemCustomLore().setUnlocalizedName("powder_iodine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_iodine"); powder_thorium = new ItemCustomLore().setUnlocalizedName("powder_thorium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_thorium"); @@ -2399,6 +2402,7 @@ public class ModItems { fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_infinite = new Item().setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); siren_track = new ItemCassette().setUnlocalizedName("siren_track").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":cassette"); + fluid_duct = new ItemFluidDuct().setUnlocalizedName("fluid_duct").setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":duct"); euphemium_helmet = new ArmorEuphemium(MainRegistry.enumArmorMaterialEuphemium, 6, 0).setUnlocalizedName("euphemium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_helmet"); euphemium_plate = new ArmorEuphemium(MainRegistry.enumArmorMaterialEuphemium, 6, 1).setUnlocalizedName("euphemium_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_plate"); @@ -2806,6 +2810,7 @@ public class ModItems { GameRegistry.registerItem(powder_meteorite, powder_meteorite.getUnlocalizedName()); GameRegistry.registerItem(powder_euphemium, powder_euphemium.getUnlocalizedName()); GameRegistry.registerItem(powder_dineutronium, powder_dineutronium.getUnlocalizedName()); + GameRegistry.registerItem(redstone_depleted, redstone_depleted.getUnlocalizedName()); GameRegistry.registerItem(dust, dust.getUnlocalizedName()); GameRegistry.registerItem(powder_lithium_tiny, powder_lithium_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_neodymium_tiny, powder_neodymium_tiny.getUnlocalizedName()); @@ -3229,6 +3234,7 @@ public class ModItems { GameRegistry.registerItem(siren_track, siren_track.getUnlocalizedName()); GameRegistry.registerItem(fluid_identifier, fluid_identifier.getUnlocalizedName()); GameRegistry.registerItem(fluid_icon, fluid_icon.getUnlocalizedName()); + GameRegistry.registerItem(fluid_duct, fluid_duct.getUnlocalizedName()); GameRegistry.registerItem(assembly_template, assembly_template.getUnlocalizedName()); GameRegistry.registerItem(chemistry_template, chemistry_template.getUnlocalizedName()); GameRegistry.registerItem(chemistry_icon, chemistry_icon.getUnlocalizedName()); diff --git a/com/hbm/items/tool/ItemFluidDuct.java b/com/hbm/items/tool/ItemFluidDuct.java new file mode 100644 index 000000000..605d8e543 --- /dev/null +++ b/com/hbm/items/tool/ItemFluidDuct.java @@ -0,0 +1,163 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.items.ModItems; +import com.hbm.tileentity.conductor.TileEntityFluidDuct; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + +public class ItemFluidDuct extends Item { + + IIcon overlayIcon; + + public ItemFluidDuct() + { + this.setHasSubtypes(true); + this.setMaxDamage(0); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) + { + for (int i = 1; i < FluidType.values().length; ++i) + { + list.add(new ItemStack(item, 1, i)); + } + } + + /*public void onCreated(ItemStack stack, World world, EntityPlayer player) { + + if(stack != null) + player.inventory.addItemStackToInventory(new ItemStack(ModItems.fluid_identifier, 1, stack.getItemDamage())); + }*/ + + public String getItemStackDisplayName(ItemStack stack) + { + String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); + String s1 = ("" + StatCollector.translateToLocal(FluidType.getEnum(stack.getItemDamage()).getUnlocalizedName())).trim(); + + if (s1 != null) + { + s = s + " " + s1; + } + + return s; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() + { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister p_94581_1_) + { + super.registerIcons(p_94581_1_); + this.overlayIcon = p_94581_1_.registerIcon("hbm:duct_overlay"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_) + { + return p_77618_2_ == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(p_77618_1_, p_77618_2_); + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int p_82790_2_) + { + if (p_82790_2_ == 0) + { + return 16777215; + } + else + { + int j = FluidType.getEnum(stack.getItemDamage()).getMSAColor(); + + if (j < 0) + { + j = 16777215; + } + + return j; + } + } + + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) + { + if (world.getBlock(x, y, z) != Blocks.snow_layer) + { + if (i == 0) + { + --y; + } + + if (i == 1) + { + ++y; + } + + if (i == 2) + { + --z; + } + + if (i == 3) + { + ++z; + } + + if (i == 4) + { + --x; + } + + if (i == 5) + { + ++x; + } + + if (!world.isAirBlock(x, y, z)) + { + return false; + } + } + + if (!player.canPlayerEdit(x, y, z, i, stack)) + { + return false; + } + else + { + --stack.stackSize; + world.setBlock(x, y, z, ModBlocks.fluid_duct); + + if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuct) { + ((TileEntityFluidDuct)world.getTileEntity(x, y, z)).type = FluidType.getEnum(stack.getItemDamage()); + } + + world.playSoundEffect(x, y, z, "hbm:block.pipePlaced", 1.0F, 0.65F + world.rand.nextFloat() * 0.2F); + + return true; + } + } + +} diff --git a/com/hbm/items/tool/ItemFluidIdentifier.java b/com/hbm/items/tool/ItemFluidIdentifier.java index 9ae28615e..eb2d1f1b6 100644 --- a/com/hbm/items/tool/ItemFluidIdentifier.java +++ b/com/hbm/items/tool/ItemFluidIdentifier.java @@ -2,6 +2,7 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.items.ModItems; import com.hbm.tileentity.conductor.TileEntityFluidDuct; import cpw.mods.fml.relauncher.Side; @@ -32,6 +33,19 @@ public class ItemFluidIdentifier extends Item { int i = stack.getItemDamage(); return super.getUnlocalizedName() + "." + FluidType.getEnum(i).getName(); }*/ + + public ItemStack getContainerItem(ItemStack stack) { + return stack.copy(); + } + + public boolean hasContainerItem() { + return true; + } + + public boolean doesContainerItemLeaveCraftingGrid(ItemStack stack) + { + return false; + } @Override @SideOnly(Side.CLIENT) diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 2aa0361e0..7ca35e58f 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -1322,7 +1322,27 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(Items.paper, 1), new Object[] { new ItemStack(ModItems.assembly_template, 1, OreDictionary.WILDCARD_VALUE) }); GameRegistry.addShapelessRecipe(new ItemStack(Items.paper, 1), new Object[] { new ItemStack(ModItems.chemistry_template, 1, OreDictionary.WILDCARD_VALUE) }); - + + for (int i = 1; i < FluidType.values().length; ++i) + { + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.fluid_duct, 1, i), new Object[] { new ItemStack(ModBlocks.fluid_duct, 1), new ItemStack(ModItems.fluid_identifier, 1, i) }); + + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.fluid_duct, 8, i), new Object[] { new ItemStack(ModBlocks.fluid_duct, 8), new ItemStack(ModBlocks.fluid_duct, 8), + new ItemStack(ModBlocks.fluid_duct, 8), new ItemStack(ModBlocks.fluid_duct, 8), new ItemStack(ModBlocks.fluid_duct, 8), + new ItemStack(ModBlocks.fluid_duct, 8), new ItemStack(ModBlocks.fluid_duct, 8), new ItemStack(ModBlocks.fluid_duct, 8), new ItemStack(ModItems.fluid_identifier, 1, i) }); + + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.fluid_duct, 1, i), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_identifier, 1, i) }); + + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.fluid_duct, 8, i), new Object[] { new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), + new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), + new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_identifier, 1, i) }); + } + + GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.fluid_duct, 1), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE) }); + + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.redstone_depleted, 1), new Object[] { new ItemStack(ModItems.battery_su, 1, OreDictionary.WILDCARD_VALUE) }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.redstone_depleted, 2), new Object[] { new ItemStack(ModItems.battery_su_l, 1, OreDictionary.WILDCARD_VALUE) }); + GameRegistry.addShapelessRecipe(new ItemStack(Items.redstone, 1), new Object[] { ModItems.redstone_depleted, ModItems.redstone_depleted }); } public static void AddSmeltingRec() diff --git a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java index 39dfb20fa..058e8e1be 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java +++ b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java @@ -410,6 +410,7 @@ public class TileEntityMachineReactorSmall extends TileEntity } } + @SuppressWarnings("incomplete-switch") private void generateSteam() { //function of SHS produced per tick