diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index b7e4b508e..5bcdfd2bc 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -197,6 +197,7 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.protection_charm, 1), new Object[] { " M ", "MDM", " M ", 'M', ModItems.fragment_meteorite, 'D', DIAMOND.gem() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteor_charm, 1), new Object[] { " M ", "MDM", " M ", 'M', ModItems.fragment_meteorite, 'D', VOLCANIC.gem() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.neutrino_lens, 1), new Object[] { "PSP", "SCS", "PSP", 'P', ANY_PLASTIC.ingot(), 'S', STAR.ingot(), 'C', KEY_CIRCUIT_BISMUTH }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_tester, 1), new Object[] { "G", "C", "I", 'G', GOLD.plate(), 'C', ModItems.circuit_aluminium, 'I', IRON.plate() }); //Stealth boy CraftingManager.addRecipeAuto(new ItemStack(ModItems.stealth_boy, 1), new Object[] { " B", "LI", "LC", 'B', Blocks.stone_button, 'L', Items.leather, 'I', STEEL.ingot(), 'C', ModItems.circuit_red_copper }); diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 22522cce5..02098b33f 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -251,9 +251,9 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(Blocks.gravel, 1) }); recipes.put(new ComparableStack(ModBlocks.ore_tikite), new ItemStack[] { - new ItemStack(ModItems.powder_plutonium, 2), + new ItemStack(ModItems.powder_plutonium, 1), new ItemStack(ModItems.powder_cobalt, 2), - new ItemStack(ModItems.powder_nitan_mix, 1), + new ItemStack(ModItems.powder_niobium, 2), new ItemStack(Blocks.end_stone, 1) }); recipes.put(new OreDictStack("oreLapis"), new ItemStack[] { @@ -331,7 +331,7 @@ public class CentrifugeRecipes extends SerializableRecipe { 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.nugget_zirconium, 2), new ItemStack(ModItems.nugget_zirconium, 2) }); 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) }); - recipes.put(new ComparableStack(ModItems.crystal_trixite), new ItemStack[] { new ItemStack(ModItems.powder_plutonium, 3), new ItemStack(ModItems.powder_cobalt, 3), new ItemStack(ModItems.powder_spark_mix, 1), new ItemStack(ModItems.powder_nitan_mix, 2) }); + recipes.put(new ComparableStack(ModItems.crystal_trixite), new ItemStack[] { new ItemStack(ModItems.powder_plutonium, 2), new ItemStack(ModItems.powder_cobalt, 3), new ItemStack(ModItems.powder_niobium, 2), new ItemStack(ModItems.powder_niobium, 1) }); recipes.put(new ComparableStack(ModItems.crystal_lithium), new ItemStack[] { new ItemStack(ModItems.powder_lithium, 2), new ItemStack(ModItems.powder_lithium, 2), new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.fluorite, 1) }); recipes.put(new ComparableStack(ModItems.crystal_starmetal), new ItemStack[] { new ItemStack(ModItems.powder_dura_steel, 3), new ItemStack(ModItems.powder_cobalt, 3), new ItemStack(ModItems.powder_astatine, 2), new ItemStack(ModItems.ingot_mercury, 5) }); recipes.put(new ComparableStack(ModItems.crystal_cobalt), new ItemStack[] { new ItemStack(ModItems.powder_cobalt, 2), new ItemStack(ModItems.powder_iron, 3), new ItemStack(ModItems.powder_copper, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) }); diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index 2d5009aca..66d545ce1 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; @@ -69,6 +70,20 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium), 2)) ); + + recipes.put(new ComparableStack(ModBlocks.ore_tikite), new SILEXRecipe(500, 100, EnumWavelengths.UV) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_plutonium), 2)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cobalt), 3)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_niobium), 3)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_spark_mix), 1)) + ); + + recipes.put(new ComparableStack(ModItems.crystal_trixite), new SILEXRecipe(900, 100, EnumWavelengths.UV) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_plutonium), 2)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cobalt), 3)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_niobium), 3)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_spark_mix), 2)) + ); itemTranslation.put(new ComparableStack(ModItems.powder_lapis), new ComparableStack(Items.dye, 1, 4)); recipes.put(new ComparableStack(Items.dye, 1, 4), new SILEXRecipe(100, 100 ,1) diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 3890ce1d0..7a9c844ca 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2292,6 +2292,7 @@ public class ModItems { public static Item protection_charm; public static Item meteor_charm; public static Item neutrino_lens; + public static Item gas_tester; public static Item hazmat_helmet; public static Item hazmat_plate; @@ -3531,6 +3532,7 @@ public class ModItems { protection_charm = new ItemModCharm().setUnlocalizedName("protection_charm").setTextureName(RefStrings.MODID + ":protection_charm"); meteor_charm = new ItemModCharm().setUnlocalizedName("meteor_charm").setTextureName(RefStrings.MODID + ":meteor_charm"); neutrino_lens = new ItemModLens().setUnlocalizedName("neutrino_lens").setTextureName(RefStrings.MODID + ":neutrino_lens"); + gas_tester = new ItemModSensor().setUnlocalizedName("gas_tester").setTextureName(RefStrings.MODID + ":gas_tester"); cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); @@ -7828,6 +7830,7 @@ public class ModItems { GameRegistry.registerItem(protection_charm, protection_charm.getUnlocalizedName()); GameRegistry.registerItem(meteor_charm, meteor_charm.getUnlocalizedName()); GameRegistry.registerItem(neutrino_lens, neutrino_lens.getUnlocalizedName()); + GameRegistry.registerItem(gas_tester, gas_tester.getUnlocalizedName()); //Chaos GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ItemModSensor.java b/src/main/java/com/hbm/items/armor/ItemModSensor.java new file mode 100644 index 000000000..cf1b147ba --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModSensor.java @@ -0,0 +1,75 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.ArmorModHandler; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemModSensor extends ItemArmorMod { + + public ItemModSensor() { + super(ArmorModHandler.extra, true, true, true, true); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + list.add(EnumChatFormatting.YELLOW + "Beeps near hazardous gasses"); + list.add(EnumChatFormatting.YELLOW + "Works in the inventory or when applied to armor"); + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (Detects gasses)"); + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean equipped) { + if(entity instanceof EntityLivingBase) { + modUpdate((EntityLivingBase) entity, null); + } + } + + @Override + public void modUpdate(EntityLivingBase entity, ItemStack armor) { + + if(entity.worldObj.isRemote || entity.worldObj.getTotalWorldTime() % 20 != 0) return; + + int x = (int) Math.floor(entity.posX); + int y = (int) Math.floor(entity.posY + entity.getEyeHeight() - entity.getYOffset()); + int z = (int) Math.floor(entity.posZ); + + boolean poison = false; + boolean explosive = false; + + for(int i = -2; i <= 2; i++) { + for(int j = -1; j <= 1; j++) { + for(int k = -2; k <= 2; k++) { + Block b = entity.worldObj.getBlock(x + i * 3, y + j * 3, z + k * 3); + if(b == ModBlocks.gas_asbestos || b == ModBlocks.gas_coal || b == ModBlocks.gas_radon || b == ModBlocks.gas_monoxide || b == ModBlocks.gas_radon_dense || b == ModBlocks.chlorine_gas) { + poison = true; + } + if(b == ModBlocks.gas_flammable || b == ModBlocks.gas_explosive) { + explosive = true; + } + } + } + } + + if(explosive) { + entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.follyAquired", 0.5F, 1.0F); + } else if(poison) { + entity.worldObj.playSoundAtEntity(entity, "hbm:item.techBoop", 0.5F, 1.5F); + } + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 80a35fdeb..453733386 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -59,7 +59,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc boolean valid = false; if(in.hasTrait(FT_Coolable.class)) { FT_Coolable trait = in.getTrait(FT_Coolable.class); - double eff = trait.getEfficiency(CoolingType.TURBINE); //100% efficiency + double eff = trait.getEfficiency(CoolingType.TURBINE) * 0.85D; //85% efficiency if(eff > 0) { tanks[1].setTankType(trait.coolsTo); int inputOps = tanks[0].getFill() / trait.amountReq; @@ -73,8 +73,6 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc } } - //if(this.tanks[1].getFill() > 0) System.out.println(this.tanks[1].getTankType().name()); - if(!valid) tanks[1].setTankType(Fluids.NONE); if(power > maxPower) power = maxPower; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 9731eb389..18ecf71f7 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1610,6 +1610,7 @@ item.gas_mask_m65.name=M65-Z Gasmaske item.gas_mask_mono.name=Halbmaske item.gas_mask_olde.name=Ledergasmaske item.gas_petroleum.name=Petroleumgastank +item.gas_tester.name=Gasmessgerät item.gear_large.name=Großes Zahnrad item.gear_large_steel.name=Großes Stahlzahnrad item.geiger_counter.name=Mobiler Geigerzähler diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 99bcd148b..e9eab5f75 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1962,6 +1962,7 @@ item.gas_mask_m65.name=M65-Z Gas Mask item.gas_mask_mono.name=Half Mask item.gas_mask_olde.name=Leather Gas Mask item.gas_petroleum.name=Petroleum Gas Tank +item.gas_tester.name=Gas Sensor item.gear_large.name=Large Gear item.gear_large_steel.name=Large Steel Gear item.geiger_counter.name=Handheld Geiger Counter diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gas_tester.png b/src/main/resources/assets/hbm/textures/gui/machine/gas_tester.png new file mode 100644 index 000000000..587d2bdd3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gas_tester.png differ