From 41648d4f68a4c28e06fc41d5fcad9f7513be47a9 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 11 Jun 2023 17:01:33 +0200 Subject: [PATCH] fixes, rail stuff --- changelog | 6 +++++- .../java/com/hbm/crafting/ToolRecipes.java | 1 + .../hbm/entity/train/EntityRailCarBase.java | 1 + .../hbm/entity/train/EntityRailCarCargo.java | 2 ++ .../hbm/items/tool/ItemPollutionDetector.java | 8 ++++---- src/main/java/com/hbm/potion/HbmPotion.java | 18 +++--------------- .../machine/storage/TileEntityBarrel.java | 2 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 3 +++ src/main/resources/assets/hbm/lang/en_US.lang | 3 +++ 9 files changed, 24 insertions(+), 20 deletions(-) diff --git a/changelog b/changelog index 697dbb496..dcd735e35 100644 --- a/changelog +++ b/changelog @@ -1,5 +1,6 @@ ## Added * Machines now emit soot. Soot collects in units of 4x4 chunks, and spreads into neighboring regions. High levels of soot cause visible smog. + * The system has yet to be balanced, it's possible that only a few machines cause way too much soot or barely any * Gas artillery shells * Chlorine * Phosgene @@ -26,4 +27,7 @@ * Fixed some armor recipes only accepting polymer and not bakelite * Fixed turbofans not sucking in players * Fixed NTM skybox not applying to superflat worlds -* Fixed breeding slot in the fusion reactor never resettingthe progress after completing an operation \ No newline at end of file +* Fixed breeding slot in the fusion reactor never resettingthe progress after completing an operation +* Fixed potential issue where tanks would send fluids to invalidated tile entities, voiding themselves almost instantly +* Fixed cadmium and technetium steel blocks not having ore dict names +* Fixed potential crash regarding certain potion code running clientside \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 91ddd5338..7577f03d9 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -119,6 +119,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.dosimeter, 1), new Object[] { "WGW", "WCW", "WBW", 'W', KEY_PLANKS, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'B', BE.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModBlocks.geiger), new Object[] { ModItems.geiger_counter }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.digamma_diagnostic), new Object[] { ModItems.geiger_counter, PO210.billet(), ASBESTOS.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', ModItems.circuit_copper }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', POLYMER.ingot(), 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ModItems.plate_polymer }); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 2f0a97813..afd7b25ab 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -224,6 +224,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { DummyConfig def = definitions[i]; BoundingBoxDummyEntity dummy = dummies[i]; Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); + rot.rotateAroundX((float) (this.rotationPitch * Math.PI / 180D)); rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = renderX + rot.xCoord; double y = renderY + rot.yCoord; diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java index 31823285b..4bf5f2ee2 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java @@ -82,6 +82,8 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II if(stack != null && stack.stackSize > this.getInventoryStackLimit()) { stack.stackSize = this.getInventoryStackLimit(); } + + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java index ef45af10d..5b0d27663 100644 --- a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -24,9 +24,9 @@ public class ItemPollutionDetector extends Item { PollutionData data = PollutionHandler.getPollutionData(world, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ)); if(data == null) data = new PollutionData(); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + data.pollution[PollutionType.SOOT.ordinal()]).color(EnumChatFormatting.RED).flush(), 100), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + data.pollution[PollutionType.POISON.ordinal()]).color(EnumChatFormatting.RED).flush(), 101), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + data.pollution[PollutionType.HEAVYMETAL.ordinal()]).color(EnumChatFormatting.RED).flush(), 102), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + data.pollution[PollutionType.FALLOUT.ordinal()]).color(EnumChatFormatting.RED).flush(), 103), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + data.pollution[PollutionType.SOOT.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 100, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + data.pollution[PollutionType.POISON.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 101, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + data.pollution[PollutionType.HEAVYMETAL.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 102, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + data.pollution[PollutionType.FALLOUT.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 103, 2000), (EntityPlayerMP) entity); } } diff --git a/src/main/java/com/hbm/potion/HbmPotion.java b/src/main/java/com/hbm/potion/HbmPotion.java index 48031fddf..7d5855009 100644 --- a/src/main/java/com/hbm/potion/HbmPotion.java +++ b/src/main/java/com/hbm/potion/HbmPotion.java @@ -99,6 +99,8 @@ public class HbmPotion extends Potion { } public void performEffect(EntityLivingBase entity, int level) { + + if(entity.worldObj.isRemote) return; if(this == taint) { @@ -123,7 +125,6 @@ public class HbmPotion extends Potion { ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, (float)(level + 1F) * 0.05F); } if(this == radaway) { - HbmLivingProps.incrementRadiation(entity, -(level + 1)); } @@ -145,22 +146,9 @@ public class HbmPotion extends Potion { } } if(this == lead) { - entity.attackEntityFrom(ModDamageSource.lead, (level + 1)); } - /*if(this == telekinesis) { - - int remaining = entity.getActivePotionEffect(this).getDuration(); - - if(remaining > 1) { - entity.motionY = 0.5; - } else { - entity.motionY = -2; - entity.fallDistance = 50; - } - }*/ - if(this == phosphorus && !entity.worldObj.isRemote) { - + if(this == phosphorus) { entity.setFire(1); } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index e8f941496..d0bb7e4f8 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -136,6 +136,8 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc if(fill > 0 && send) { List con = new ArrayList(); con.addAll(consumers); + + con.removeIf(x -> x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid()); if(PipeNet.trackingInstances == null) { PipeNet.trackingInstances = new ArrayList(); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 90eda0803..a92874167 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -609,6 +609,7 @@ hbmfluid.bitumen=Bitumen hbmfluid.blood=Blut hbmfluid.blood_hot=Heißes Blut hbmfluid.calcium_chloride=Kalziumchlorid-Lösung +hbmfluid.calcium_solution=Kalzium-Lösung hbmfluid.carbondioxide=Kohlenstoffdioxid hbmfluid.chlorine=Chlorgas hbmfluid.chlorocalcite_cleaned=Gereinigten Chlorokalzit-Lösung @@ -2633,6 +2634,7 @@ item.plate_schrabidium.name=Schrabidiumplatte item.plate_steel.name=Stahlplatte item.plate_titanium.name=Titanplatte item.polaroid.name=Das Polaroid +item.pollution_detector.name=Verschmutzungsdetektor item.powder_actinium.name=Actiniumstaub item.powder_actinium_tiny.name=Kleiner Haufen Actiniumstaub item.powder_advanced_alloy.name=Fortgeschrittener Legierungsstaub @@ -3599,6 +3601,7 @@ tile.capacitor_bus.desc=Output für Kondensatoren$Kann in einer geraden Linie an tile.capacitor_copper.name=Kupferkondensator tile.capacitor_gold.name=Goldkondensator tile.capacitor_niobium.name=Niobkondensator +tile.capacitor_tantalium.name=Tantalkondensator tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus tile.charge_c4.name=Abrissladung tile.charge_dynamite.name=Zeitbombe diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index bcc027726..a7feb2556 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1181,6 +1181,7 @@ hbmfluid.bitumen=Bitumen hbmfluid.blood=Blood hbmfluid.blood_hot=Hot Blood hbmfluid.calcium_chloride=Calciumchloride Solution +hbmfluid.calcium_solution=Calcium Solution hbmfluid.carbondioxide=Carbon Dioxide hbmfluid.chlorine=Chlorine Gas hbmfluid.chlorocalcite_cleaned=Cleaned Chlorocalcite Solution @@ -3359,6 +3360,7 @@ item.plate_schrabidium.name=Schrabidium Plate item.plate_steel.name=Steel Plate item.plate_titanium.name=Titanium Plate item.polaroid.name=The Polaroid +item.pollution_detector.name=Pollution Detector item.powder_actinium.name=Actinium Powder item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder item.powder_advanced_alloy.name=Advanced Alloy Powder @@ -4417,6 +4419,7 @@ tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a strai tile.capacitor_copper.name=Copper Capacitor tile.capacitor_gold.name=Golden Capacitor tile.capacitor_niobium.name=Niobium Capacitor +tile.capacitor_tantalium.name=Tantalium Capacitor tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus tile.charge_c4.name=Demolition Charge tile.charge_dynamite.name=Time Bomb