From 086e17d1a9e781c4ebc62a4d8ef8d3b526b32836 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 3 Apr 2022 19:56:34 +0200 Subject: [PATCH] bunch of fixes, some configs --- .../blocks/generic/BlockMotherOfAllOres.java | 33 ++++++++++-------- .../hbm/blocks/network/BlockFluidDuct.java | 23 +++++++++++- .../blocks/network/BlockFluidDuctSolid.java | 23 +++++++++++- src/main/java/com/hbm/config/WorldConfig.java | 6 ++-- .../hbm/handler/guncfg/Gun12GaugeFactory.java | 2 +- .../hbm/hazard/type/HazardTypeBlinding.java | 2 +- .../hbm/hazard/type/HazardTypeRadiation.java | 3 ++ .../java/com/hbm/inventory/FluidTank.java | 12 ++++--- .../com/hbm/inventory/OreDictManager.java | 10 +++--- .../java/com/hbm/inventory/fluid/Fluids.java | 12 +++---- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/main/ModEventHandler.java | 21 +++++++---- .../com/hbm/particle/ParticleAmatFlash.java | 6 ++-- .../TileEntityMachineCatalyticCracker.java | 14 ++++---- .../machine/pile/TileEntityPileFuel.java | 5 ++- .../network/TileEntityConnector.java | 31 +++++----------- src/main/resources/assets/hbm/lang/de_DE.lang | 3 ++ src/main/resources/assets/hbm/lang/en_US.lang | 3 ++ .../hbm/textures/gui/fluids/crackoil.png | Bin 0 -> 437 bytes .../hbm/textures/models/machines/chemfac.png | Bin 8301 -> 9823 bytes .../textures/models/network/pipe_anchor.png | Bin 0 -> 409 bytes .../models/tank_label/tank_CRACKOIL.png | Bin 0 -> 2370 bytes src/main/resources/mcmod.info | 2 +- 23 files changed, 138 insertions(+), 75 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/crackoil.png create mode 100644 src/main/resources/assets/hbm/textures/models/network/pipe_anchor.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank_label/tank_CRACKOIL.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockMotherOfAllOres.java b/src/main/java/com/hbm/blocks/generic/BlockMotherOfAllOres.java index 0efa14a13..79227996b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockMotherOfAllOres.java +++ b/src/main/java/com/hbm/blocks/generic/BlockMotherOfAllOres.java @@ -9,6 +9,7 @@ import java.util.Random; import com.google.common.collect.HashBiMap; import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.ModBlocks; +import com.hbm.config.WorldConfig; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; @@ -290,21 +291,25 @@ public class BlockMotherOfAllOres extends BlockContainer implements IBlockMultiP public static void init() { - for(Object b : Block.blockRegistry.getKeys()) { - Block block = Block.getBlockFromName((String) b); - if(block != null && Item.getItemFromBlock(block) != null) - uniqueItems.add(new ComparableStack(block)); - } - - for(Object i : Item.itemRegistry.getKeys()) { - Item item = (Item) Item.itemRegistry.getObject((String) i); - uniqueItems.add(new ComparableStack(item)); - } - - for(String i : OreDictionary.getOreNames()) { - for(ItemStack stack : OreDictionary.getOres(i)) { - uniqueItems.add(new ComparableStack(stack)); + if(WorldConfig.enableRandom) { + for(Object b : Block.blockRegistry.getKeys()) { + Block block = Block.getBlockFromName((String) b); + if(block != null && Item.getItemFromBlock(block) != null) + uniqueItems.add(new ComparableStack(block)); } + + for(Object i : Item.itemRegistry.getKeys()) { + Item item = (Item) Item.itemRegistry.getObject((String) i); + uniqueItems.add(new ComparableStack(item)); + } + + for(String i : OreDictionary.getOreNames()) { + for(ItemStack stack : OreDictionary.getOres(i)) { + uniqueItems.add(new ComparableStack(stack)); + } + } + } else { + uniqueItems.add(new ComparableStack(ModItems.nothing)); } int i = 0; diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java index 37eee94f2..b14fa899e 100644 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java +++ b/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java @@ -1,6 +1,12 @@ package com.hbm.blocks.network; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.conductor.TileEntityFluidDuct; +import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; +import com.hbm.util.I18nUtil; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; @@ -8,8 +14,9 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class BlockFluidDuct extends BlockContainer { +public class BlockFluidDuct extends BlockContainer implements ILookOverlay { public BlockFluidDuct(Material p_i45386_1_) { super(p_i45386_1_); @@ -79,4 +86,18 @@ public class BlockFluidDuct extends BlockContainer { return false; } + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityFluidDuctSimple)) + return; + + TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; + + List text = new ArrayList(); + text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java index 21c75992e..08031fe84 100644 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java +++ b/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java @@ -1,8 +1,13 @@ package com.hbm.blocks.network; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.IBlockMultiPass; +import com.hbm.blocks.ILookOverlay; import com.hbm.render.block.RenderBlockMultipass; import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -13,8 +18,9 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class BlockFluidDuctSolid extends BlockContainer implements IBlockMultiPass { +public class BlockFluidDuctSolid extends BlockContainer implements IBlockMultiPass, ILookOverlay { public BlockFluidDuctSolid(Material mat) { super(mat); @@ -64,4 +70,19 @@ public class BlockFluidDuctSolid extends BlockContainer implements IBlockMultiPa return 0xffffff; } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityFluidDuctSimple)) + return; + + TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; + + List text = new ArrayList(); + text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index a6c5b2c50..34e6d18a1 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -47,7 +47,8 @@ public class WorldConfig { public static int endTikiteSpawn = 8; - public static int randomSpawn = 16; + public static boolean enableRandom = false; + public static int randomSpawn = 0; public static int radioStructure = 500; public static int antennaStructure = 250; @@ -126,7 +127,8 @@ public class WorldConfig { endTikiteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.E00_tikiteSpawnrate", "Amount of end trixite per chunk", 8); - randomSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.R00_randomOreSpawnrate", "Amount of random ore per chunk", 16); + enableRandom = CommonConfig.createConfigBool(config, CATEGORY_OREGEN, "2.R00_enableRandomOre", "Amount of random ore per chunk", false); + randomSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.R01_randomOreSpawnrate", "Amount of random ore per chunk", 0); final String CATEGORY_DUNGEON = "04_dungeons"; radioStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.00_radioSpawn", "Spawn radio station on every nTH chunk", 500); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index adb850968..1ab0b2d26 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -41,7 +41,7 @@ public class Gun12GaugeFactory { config.name = "Franchi SPAS-12"; config.manufacturer = "Black Mesa Armory"; - config.comment.add("\"Here, I have a more suitable gun for you. You'll need it — Catch!\""); + config.comment.add("\"Here, I have a more suitable gun for you. You'll need it - Catch!\""); config.comment.add("Alt-fire with Mouse 2 (Right-click) to fire 2 shells at once"); config.config = new ArrayList(); diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeBlinding.java b/src/main/java/com/hbm/hazard/type/HazardTypeBlinding.java index 6a5f207db..126fb1eba 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeBlinding.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeBlinding.java @@ -21,7 +21,7 @@ public class HazardTypeBlinding extends HazardTypeBase { public void onUpdate(EntityLivingBase target, float level, ItemStack stack) { if(!ArmorRegistry.hasProtection(target, 3, HazardClass.LIGHT)) { - target.addPotionEffect(new PotionEffect(Potion.blindness.id, (int)level, 0)); + target.addPotionEffect(new PotionEffect(Potion.blindness.id, (int)Math.ceil(level), 0)); } } diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java b/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java index 622e6af7d..0a7c90389 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java @@ -55,6 +55,9 @@ public class HazardTypeRadiation extends HazardTypeBase { level = HazardModifier.evalAllModifiers(stack, player, level, modifiers); + if(level < 1e-5) + return; + list.add(EnumChatFormatting.GREEN + "[" + I18nUtil.resolveKey("trait.radioactive") + "]"); String rad = "" + (Math.floor(level* 1000) / 1000); list.add(EnumChatFormatting.YELLOW + (rad + "RAD/s")); diff --git a/src/main/java/com/hbm/inventory/FluidTank.java b/src/main/java/com/hbm/inventory/FluidTank.java index bb81f70c3..497d122b5 100644 --- a/src/main/java/com/hbm/inventory/FluidTank.java +++ b/src/main/java/com/hbm/inventory/FluidTank.java @@ -126,16 +126,19 @@ public class FluidTank { } if(slots[in] != null && inType.getName().equals(type.getName()) && fluid + FluidContainerRegistry.getFluidContent(slots[in], type) <= maxFluid) { + + ItemStack emptyContainer = FluidContainerRegistry.getEmptyContainer(slots[in]); + if(slots[out] == null) { fluid += FluidContainerRegistry.getFluidContent(slots[in], type); - slots[out] = FluidContainerRegistry.getEmptyContainer(slots[in]); + slots[out] = emptyContainer; slots[in].stackSize--; if(slots[in].stackSize <= 0) slots[in] = null; - } else if(slots[out] != null && (FluidContainerRegistry.getEmptyContainer(slots[in]) == null || slots[out].getItem() == FluidContainerRegistry.getEmptyContainer(slots[in]).getItem()) && slots[out].stackSize < slots[out].getMaxStackSize()) { + } else if(slots[out] != null && (emptyContainer == null || (slots[out].getItem() == emptyContainer.getItem() && slots[out].getItemDamage() == emptyContainer.getItemDamage() && slots[out].stackSize < slots[out].getMaxStackSize()))) { fluid += FluidContainerRegistry.getFluidContent(slots[in], type); - if(FluidContainerRegistry.getEmptyContainer(slots[in]) != null) + if(emptyContainer != null) slots[out].stackSize++; slots[in].stackSize--; @@ -213,13 +216,14 @@ public class FluidTank { return; if(slots[in] != null && fluid - FluidContainerRegistry.getFluidContent(full, type) >= 0) { + ItemStack fullContainer = FluidContainerRegistry.getFullContainer(slots[in], type); if(slots[out] == null) { fluid -= FluidContainerRegistry.getFluidContent(full, type); slots[out] = full.copy(); slots[in].stackSize--; if(slots[in].stackSize <= 0) slots[in] = null; - } else if(slots[out] != null && slots[out].getItem() == FluidContainerRegistry.getFullContainer(slots[in], type).getItem() && slots[out].stackSize < slots[out].getMaxStackSize()) { + } else if(slots[out] != null && slots[out].getItem() == fullContainer.getItem() && slots[out].getItemDamage() == fullContainer.getItemDamage() && slots[out].stackSize < slots[out].getMaxStackSize()) { fluid -= FluidContainerRegistry.getFluidContent(full, type); slots[in].stackSize--; if(slots[in].stackSize <= 0) diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 7a133f322..2a5eb7b1f 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -305,11 +305,11 @@ public class OreDictManager { AC227 .rad(HazardRegistry.ac227) .nugget(nugget_actinium) .billet(billet_actinium) .ingot(ingot_actinium) .dust(powder_actinium) .block(block_actinium) .dustSmall(powder_actinium_tiny); CO60 .rad(HazardRegistry.co60) .hot(1) .nugget(nugget_co60) .billet(billet_co60) .ingot(ingot_co60) .dust(powder_co60); AU198 .rad(HazardRegistry.au198) .hot(5) .nugget(nugget_au198) .billet(billet_au198) .ingot(ingot_au198) .dust(powder_au198); - PB209 .rad(HazardRegistry.pb209) .blinding(3F) .hot(7) .nugget(nugget_pb209) .billet(billet_pb209) .ingot(ingot_pb209); - SA326 .rad(HazardRegistry.sa326) .blinding(3F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium) .plate(plate_schrabidium) .block(block_schrabidium) .ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium) .oreNether(ore_nether_schrabidium); - SA327 .rad(HazardRegistry.sa327) .blinding(3F) .nugget(nugget_solinium) .billet(billet_solinium) .ingot(ingot_solinium) .block(block_solinium); - SBD .rad(HazardRegistry.sb) .blinding(1F) .ingot(ingot_schrabidate) .dust(powder_schrabidate) .block(block_schrabidate); - SRN .rad(HazardRegistry.sr) .blinding(1F) .ingot(ingot_schraranium) .block(block_schraranium); + PB209 .rad(HazardRegistry.pb209) .blinding(50F) .hot(7) .nugget(nugget_pb209) .billet(billet_pb209) .ingot(ingot_pb209); + SA326 .rad(HazardRegistry.sa326) .blinding(50F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium) .plate(plate_schrabidium) .block(block_schrabidium) .ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium) .oreNether(ore_nether_schrabidium); + SA327 .rad(HazardRegistry.sa327) .blinding(50F) .nugget(nugget_solinium) .billet(billet_solinium) .ingot(ingot_solinium) .block(block_solinium); + SBD .rad(HazardRegistry.sb) .blinding(50F) .ingot(ingot_schrabidate) .dust(powder_schrabidate) .block(block_schrabidate); + SRN .rad(HazardRegistry.sr) .blinding(50F) .ingot(ingot_schraranium) .block(block_schraranium); GH336 .rad(HazardRegistry.gh336) .nugget(nugget_gh336) .billet(billet_gh336) .ingot(ingot_gh336); /* diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index b95348530..abc94ef59 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -114,15 +114,15 @@ public class Fluids { ULTRAHOTSTEAM = new FluidType( "ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600); COOLANT = new FluidType( "COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE); LAVA = new FluidType( "LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200); - DEUTERIUM = new FluidTypeCombustible( "DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE); - TRITIUM = new FluidTypeCombustible( "TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION); + DEUTERIUM = new FluidTypeCombustible( "DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); + TRITIUM = new FluidTypeCombustible( "TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); OIL = new FluidTypeFlammable( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x424242, ExtContainer.CANISTER); HOTOIL = new FluidTypeFlammable( "HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); HEAVYOIL = new FluidTypeFlammable( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x513F39, ExtContainer.CANISTER); BITUMEN = new FluidType( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x5A5877, ExtContainer.CANISTER); SMEAR = new FluidTypeFlammable( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).setHeatEnergy(50_000).addContainers(0x624F3B, ExtContainer.CANISTER); - HEATINGOIL = new FluidTypeCombustible( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).setHeatEnergy(75_000).addContainers(0x694235, ExtContainer.CANISTER); //TODO: and so forth - RECLAIMED = new FluidTypeCombustible( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).setHeatEnergy(100_000).addContainers(0xF65723, ExtContainer.CANISTER); + HEATINGOIL = new FluidTypeCombustible( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 100_000).setHeatEnergy(150_000).addContainers(0x694235, ExtContainer.CANISTER); //TODO: and so forth + RECLAIMED = new FluidTypeCombustible( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 200_000).setHeatEnergy(100_000).addContainers(0xF65723, ExtContainer.CANISTER); PETROIL = new FluidTypeCombustible( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000).setHeatEnergy(125_000).addContainers(0x2369F6, ExtContainer.CANISTER); LUBRICANT = new FluidType( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(0xF1CC05, ExtContainer.CANISTER); NAPHTHA = new FluidTypeFlammable( "NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(0x5F6D44, ExtContainer.CANISTER); @@ -173,8 +173,8 @@ public class Fluids { NAPHTHA_CRACK = new FluidTypeFlammable( "NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE); LIGHTOIL_CRACK = new FluidTypeFlammable( "LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE); DIESEL_CRACK = new FluidTypeCombustible( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000); - AROMATICS = new FluidTypeFlammable( "AROMATICS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); - UNSATURATEDS = new FluidTypeFlammable( "UNSATURATEDS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); + AROMATICS = new FluidTypeFlammable( "AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE); + UNSATURATEDS = new FluidTypeFlammable( "UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE); SALIENT = new FluidType(69, "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE); XPJUICE = new FluidType( "XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE); ENDERJUICE = new FluidType( "ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 26cba2c9b..5df6e4e57 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4191)"; + public static final String VERSION = "1.0.27 BETA (4193)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 4673e984f..7cce6df80 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -385,10 +385,16 @@ public class ModEventHandler { return; if(entity instanceof EntityZombie) { - if(rand.nextInt(64) == 0) - entity.setCurrentItemOrArmor(4, new ItemStack(ModItems.gas_mask_m65, 1, world.rand.nextInt(100))); - if(rand.nextInt(128) == 0) - entity.setCurrentItemOrArmor(4, new ItemStack(ModItems.gas_mask_olde, 1, world.rand.nextInt(100))); + if(rand.nextInt(64) == 0) { + ItemStack mask = new ItemStack(ModItems.gas_mask_m65); + ArmorUtil.installGasMaskFilter(mask, new ItemStack(ModItems.gas_mask_filter)); + entity.setCurrentItemOrArmor(4, mask); + } + if(rand.nextInt(128) == 0) { + ItemStack mask = new ItemStack(ModItems.gas_mask_olde); + ArmorUtil.installGasMaskFilter(mask, new ItemStack(ModItems.gas_mask_filter)); + entity.setCurrentItemOrArmor(4, mask); + } if(rand.nextInt(256) == 0) entity.setCurrentItemOrArmor(4, new ItemStack(ModItems.mask_of_infamy, 1, world.rand.nextInt(100))); if(rand.nextInt(1024) == 0) @@ -414,8 +420,11 @@ public class ModEventHandler { entity.setCurrentItemOrArmor(0, new ItemStack(ModItems.chernobylsign)); } if(entity instanceof EntitySkeleton) { - if(rand.nextInt(16) == 0) - entity.setCurrentItemOrArmor(4, new ItemStack(ModItems.gas_mask_m65, 1, world.rand.nextInt(100))); + if(rand.nextInt(16) == 0) { + ItemStack mask = new ItemStack(ModItems.gas_mask_m65); + ArmorUtil.installGasMaskFilter(mask, new ItemStack(ModItems.gas_mask_filter)); + entity.setCurrentItemOrArmor(4, mask); + } if(rand.nextInt(64) == 0) entity.setCurrentItemOrArmor(3, new ItemStack(ModItems.steel_plate, 1, world.rand.nextInt(ModItems.steel_plate.getMaxDamage()))); } diff --git a/src/main/java/com/hbm/particle/ParticleAmatFlash.java b/src/main/java/com/hbm/particle/ParticleAmatFlash.java index f7432e305..e01a28dca 100644 --- a/src/main/java/com/hbm/particle/ParticleAmatFlash.java +++ b/src/main/java/com/hbm/particle/ParticleAmatFlash.java @@ -29,7 +29,9 @@ public class ParticleAmatFlash extends EntityFX { float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX)); float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY)); float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ)); - + + + GL11.glPushMatrix(); GL11.glTranslatef(pX, pY, pZ); GL11.glScalef(0.2F * particleScale, 0.2F * particleScale, 0.2F * particleScale); @@ -49,8 +51,6 @@ public class ParticleAmatFlash extends EntityFX { GL11.glEnable(GL11.GL_CULL_FACE); GL11.glDepthMask(false); - GL11.glPushMatrix(); - float scale = 0.5F; for(int i = 0; i < 100; i++) { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java index 1d9159be3..bb4eeb3c8 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java @@ -78,12 +78,14 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl int left = quart.getKey().fill; int right = quart.getValue().fill; - if(tanks[0].getFill() >= 100 && tanks[1].getFill() >= 100 && hasSpace(left, right)) { - tanks[0].setFill(tanks[0].getFill() - 100); - tanks[1].setFill(tanks[1].getFill() - 200); - tanks[2].setFill(tanks[2].getFill() + left); - tanks[3].setFill(tanks[3].getFill() + right); - tanks[4].setFill(tanks[4].getFill() + 2); //LPS has the density of WATER not STEAM (1%!) + for(int i = 0; i < 2; i++) { + if(tanks[0].getFill() >= 100 && tanks[1].getFill() >= 100 && hasSpace(left, right)) { + tanks[0].setFill(tanks[0].getFill() - 100); + tanks[1].setFill(tanks[1].getFill() - 200); + tanks[2].setFill(tanks[2].getFill() + left); + tanks[3].setFill(tanks[3].getFill() + right); + tanks[4].setFill(tanks[4].getFill() + 2); //LPS has the density of WATER not STEAM (1%!) + } } } } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java index c3249d10b..4549d5d23 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java @@ -4,7 +4,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import api.hbm.block.IPileNeutronReceiver; -import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutronReceiver { @@ -65,11 +64,15 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.heat = nbt.getInteger("heat"); + this.progress = nbt.getInteger("progress"); + this.neutrons = nbt.getInteger("neutrons"); } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setInteger("heat", this.heat); + nbt.setInteger("progress", this.progress); + nbt.setInteger("neutrons", this.neutrons); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java b/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java index cda2f59ca..122e71ae5 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.network; +import java.util.ArrayList; +import java.util.List; + import api.hbm.energy.IEnergyConductor; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; @@ -21,31 +24,15 @@ public class TileEntityConnector extends TileEntityPylonBase { public double getMaxWireLength() { return 10; } - + @Override - protected void connect() { + public List getConnectionPoints() { + List pos = new ArrayList(connected); - super.connect(); - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); - - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - if(te instanceof IEnergyConductor) { - - IEnergyConductor conductor = (IEnergyConductor) te; - - if(!conductor.canConnect(dir.getOpposite())) - return; - - if(this.getPowerNet() == null && conductor.getPowerNet() != null) { - conductor.getPowerNet().joinLink(this); - } - - if(this.getPowerNet() != null && conductor.getPowerNet() != null && this.getPowerNet() != conductor.getPowerNet()) { - conductor.getPowerNet().joinNetworks(this.getPowerNet()); - } + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + pos.add(new int[] {xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ}); } + return pos; } @Override diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index e61347c6d..0417bff05 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3557,7 +3557,9 @@ tile.solar_mirror.name=Heliostatspiegel tile.soyuz_capsule.name=Landekapsel tile.soyuz_launcher.name=Soyuz-Startplatform tile.spikes.name=Stacheln +tile.stalactite.asbestos.name=Asbest-Stalaktit tile.stalactite.sulfur.name=Schwefelhaltiger Stalaktit +tile.stalagmite.asbestos.name=Asbest-Stalagmit tile.stalagmite.sulfur.name=Schwefelhaltiger Stalagmit tile.steel_beam.name=Stahlträger tile.steel_corner.name=Stahlwand (Ecke) @@ -3570,6 +3572,7 @@ tile.stone_depth.name=Tiefenfels tile.stone_depth_nether.name=Nether-Tiefenfels tile.stone_gneiss.name=Graphitschiefer tile.stone_porous.name=Poröser Stein +tile.stone_resource.asbestos.name=Chrysotil tile.stone_resource.sulfur.name=Schwefelhaltiger Stein tile.struct_iter_core.name=Fusionsreaktor-Kernkomponente tile.struct_launcher.name=Startrampe-Komponentenblock diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a36e920ad..d913ffc38 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3930,7 +3930,9 @@ tile.solar_mirror.name=Heliostat Mirror tile.soyuz_capsule.name=Cargo Landing Capsule tile.soyuz_launcher.name=Soyuz Launch Platform tile.spikes.name=Spikes +tile.stalactite.asbestos.name=Asbestos Stalactite tile.stalactite.sulfur.name=Sulfurous Stalactite +tile.stalagmite.asbestos.name=Asbestos Stalagmite tile.stalagmite.sulfur.name=Sulfurous Stalagmite tile.steel_beam.name=Steel Beam tile.steel_corner.name=Steel Wall Corner @@ -3943,6 +3945,7 @@ tile.stone_depth.name=Depth Rock tile.stone_depth_nether.name=Nether Depth Rock tile.stone_gneiss.name=Graphitic Schist tile.stone_porous.name=Porous Stone +tile.stone_resource.asbestos.name=Chrysotile tile.stone_resource.sulfur.name=Sulfurous Stone tile.struct_iter_core.name=Fusion Reactor Core Component tile.struct_launcher.name=Launch Pad Component Block diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/crackoil.png b/src/main/resources/assets/hbm/textures/gui/fluids/crackoil.png new file mode 100644 index 0000000000000000000000000000000000000000..74f771fa19a37d00c80728f5367e8f7ea855f229 GIT binary patch literal 437 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 Vrt$m)+%X1HdIgg!efj?5{{ac~ebWE{ literal 8301 zcmZvCcQ{+&+kcc=rE1hHtx?o0AsVwrRVYw5qA6rZQc+Gq4^@e*0)3Z8gOp zDa?Ec_tbUq^*gPYC*>(R`I<2!<@o{mPwh-a*C!deIEeA~KGVJFp7skzs$0El7;ufj ze*aD=ytiLFKk4e#M~@yM6c=Duc0Glt|Jj0OekStg3Kkoe;@MJ~UzA&^6sqNh1u5Tj zs#qPtdio2#)}rMAEv>B3%EF#KV>>=R)-N{tSqXgsu?-FmuDv7RF9n3 z{`A}M+qckf#8k4dufChd93(B}oQKLeLJ2()Sr756i`>tAHmB)9CU7_e&fNdvU%I5E zq>g`-=(7q$pC*gO-l70_KJr7V#) zys~eu{(VU1WzdGo;?U63iXBD`qqMlxL62+h%E^TJO5aWRG|{=`6G9?YC$fVz|8w^| zQf-kf@<PVx+R!oucYiT8?m7fC8&m!Pt>@>8Tr|ZPa$hx@+YCOsthp+3mhJxU$r!Qo7GVnJCJ4wtUolW)bauT1b3qy)Cp{pH5doOW`9BR>I2Y)Cng~`aSkOJa@)Z~UE^BQwQ+(ecEk|(N%zK4y|C%N4aI9~1oFur z2Z^#&=FtsxR7p>hynn2^Clj>CKw9Cij zWQZNH$^0Wg{l^bt$;uKL-X&Eo*t*}na`_`LX-5VS`vvQzWG!lRlNr* zpZ*B%r#o%tMZG?6Yb5esW7k+P-KlmZK-bsz;A)SPVhPte*tZL=@T==x~MXl;5{2zIf*g5ZWJbs$n zZQpn(*K#Nw%FuVpvsz%&vye7L3M?2|*ydACPS;YD36st)vF>%Dd=>3$pS{|!m`#G@ zy#3khC(ps@;}ZOPBcO)YMia%IiLJ@B6i96E>(<8`ayQvRVr>7|o0M$^N@)aK!AfZJ z#pX&0lZsgtr86T`jDGqx!cZj-QX;tAbfo!ZvWrn~6oB3x5UX&-J6vE}08YNazviUC9f{BO}}51~=U$a`y_ z>|sO8&FRPRc*^Y1fBwg36u17eXKpr*AQ2!X6j<8kIZnf>ZAreyICY7L|V1#mDv60jAd+k_2;ZvgD&^fT@p=E3qt}nRy+r4;k z-=EmM=`b57!w@G>sHg$!y`?E$Bo(+f^vw74eenL6L#;qgo#_0_#*mIkMkysF@zvqK zD}C$&P*UXcmgz=GA+UZEdS;lmq;ZSqVBdiW0%W4 zL4J9?zm`HZ5eV+S@$q2YYr@yi3nIQzZ%6)s5&y>jduRR8RI2Cszq1*$=nIO!I$#2f z#Zod!n7=dPQ2)#8XZS7%1cI{u1t^QvNX2unX)idXJ;U47x`l^G14$u9+H4N3ufb6B zs;a72k|Eo%MMffi2UEV8%`;wbWh<0<-zShA)KH5_U~zKt#_;ek5CFFNAKv@}=v$4I z#d455!9rs=*I%2q@2@H{4TG6Ov&@{$Tk&L=8_Wznvm9F8YwQQ7_t?kn?JWfvJ9&un zYj^t3{-8PQdM}!7gP2Ud1cK@D-B^&6efjNUb}s>J&sU8J(Y{xd3XT*|MKVQjr_4X% zg$bA4{-t4$P7Z*^jD9q;Yj#?E+T!v?^Wno_4#q;(65}^z>Yl;u<2i;ro45n`lG0^c zq02>vA7rcLF9V&tu{{fb%==_|o_RJV=i0!?S{l?_g2WF#0mS{^%?W5&!>{KJIqMDv zJ>R@+R)u~eUh;II)CW#k_&A4E{(N*ajTC5LgGiZAp(2V25%;=Ye^xFwO2>}-bNsZZ zLI*$%Y27>T*x;mBSoCWQUxb9f$8lsH-iXgZ?^*?{j&A+u@B71ocLo$LYazSZV&_;~ zD_f^6ciHwQ8$1nE&PB0Jd^qnr)Y7*LfBi=v^wEP^nR4!3ArU5ghRA_tOa#A=2m61# zW)lSFkzpzG$nDxcc1}(v`SYWlMf2vzILsXZ1bWa7CtX^#-5AIHwbx~|srzve{W<}r z5ii`yVVm~{(70c2G8he8ZM~IwfqF)-5ibZDWhVXZ4%E@IH>EZ3=)+yWKT>hXdRI;) za=#=>5YU*^Akm zi63}4_mE79>PcXpNsIA+b>F_-YzcN zm$^^yUKX{aLGJ4rgXs=<+sT#|(DBJh)ssxNkj)Rjb^o*8N4$!+9U3eajAM-@QuE6~ zoTGQ=!{awn14Ac&r%xR>UcZ=|_T%elJSyCOv*+mONXr^=-}5Ay&4yB6vT!pdW@`(L zQEZaAesYh2TR!67zYvS&Ak*=2(U(ieGdTswO7e!{mlxPGCIs)W zNy1$k8DM&mG$PRTOZ&sY(DYZcwG?v1U=@<4yZiM1>43q|Hs?;D)f*ctaU%Qp&!2BL z{6`86ia)W@UQWU!-3vOri)_G5cj@dTyMF#U>^g+1++p6Q#Ma3X+l$((Dp}vLs}mM? z0R7ic&gp1veZAIk%Yxb_?R9{ORpN6KE`M|lkf24Xy_zeqrH#Dww*8~Bl9KCceuL|- zXkeaIYZlm{7m+IQe4qzQ#6a`NzCZiq&F_uFG+0~(63Op588ejrjw{T9ns`+Dp6pC^ zJBsvIHE|@jYLo+}D=W-GEBszt+{O_;bNzFni7D7ksyaWv#67%&F4G((RzaY8z^QKj z{P_b&=Iw@J>M<9HSE4wP?$cB=M#C9HmzJr@bloQTxe0-w?kPU;p}Qc%uhWky;#txF zVY%2PTsm__m4oQVEQ4n?GH6VE3)ky%DTy=3gX4<&FdMA=&cNWOUwF-tnoR0>-37<* zQio9@1ggvB53Z~#{*WTjX!H>}tsRb|mio?lL~z_m6}$53k~-gj7O^H5XM<@aM9Ng>cE zzE8M@gQ3Y*F?4I9BVzJ|E9VIJ&ObUjTI$}tH>vP|JAHl}@QkA?^U;6)SalPLHaYz5|hi>~xEi-&_^l6Mdn)TNQ`m0wjf#kv$QeD`!UOPP9|Uyq1V&A; zS$Mw=$PMvWz5DLDiD>sln_@0XsGqhDnebyDXlvew+YVHGOO7jfGBzeaQ_H8R~MIVh=Q`bd`Tv~LFq_i1=aMBjtO0yfI|>(C+r@F zgbFvsLisiCsT_K#ggu){;R}c0FsUe0cxKTyGgMC#m)n_w*$YtGuQiHPBO7xu?!v*4 zOdc8tI^C$bG9!^F-q=7D>tdsUSFUZW-mjzqs>1(`gS6}OC~ahQzI)gqmo(+c4WKlz zG%*2*f7j4}^?eFUzl#?~7~C2*?G3=ibIG}ZKuP0)Kk3Y?On$vuzb>Vr^CSrqQFOcU z0bf(9ValA04&f80wCI}W0uuViAVomvd-&ZXuofEZgTug5&>_5cv^7-wF7xDdA>&af znW@FR1m#QDlHt8FS~}m}qB#@y4=+hH1`%df#W0s|O%9{{YVCZ^A`OcS6`=(6wR z)d3OlGwb&sDR{YRcsaSb_v|z_ryhyxu1zG z#?y+AZ_Mm9SuI+TVs@Eiq9A~@16?6G85yq&9KVd*>mk`L?Qj0Rx#W*aA`7dntu06v z!?ztb4v&n)9dO1`j!#VVPfxpHY)DynJ81

    >GJNK{l*_h4yl%`51tq-Ud29kbic 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index fe91e7960..c4974df8f 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4191", + "version":"1.0.27_X4193", "mcversion": "1.7.10", "url": "", "updateUrl": "",