diff --git a/changelog b/changelog index 609ce9fcc..dc8b91d49 100644 --- a/changelog +++ b/changelog @@ -1,14 +1,7 @@ -## Added -* Steel trapdoor - * When open with a ladder below it, it too will act like a ladder - ## Changed -* Updated chinese localization -* Improved performance for many nodespace operations -* .35 can now use a new ammo type -* Balefire mini nukes are now craftable +* The chemistry achievement now requires the new chemical plant +* The new chemical plant can now be used to upgrade the meteorite sword ## Fixed -* Fixed chemical plant recipe config defaulting to an output chance of 0% -* Potentially fixed an issue where chunks aren't properly force loaded when a nuclear explosion spawns, causing missiles to not work most of the time -* Fixed taint-tipped missile not correctly spawning taint most of the time \ No newline at end of file +* Fixed crash caused by breaking a tool while the fortune or silk touch ability is enabled +* Fixed NTM adding mob spawns to the mushroom island \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 18ca656e5..324c67a97 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -31,6 +31,7 @@ import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EnumCreatureType; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase.SpawnListEntry; +import net.minecraft.world.biome.BiomeGenMushroomIsland; import net.minecraftforge.common.BiomeDictionary; import net.minecraftforge.common.BiomeDictionary.Type; @@ -279,6 +280,7 @@ public class EntityMappings { for(BiomeGenBase biome : biomes) { if(biome == null) continue; + if(biome instanceof BiomeGenMushroomIsland) continue; List spawns = biome.getSpawnableList(typeOfCreature); diff --git a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java index ee3027340..d76c30e33 100644 --- a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java @@ -88,7 +88,7 @@ public interface IToolHarvestAbility extends IBaseAbility { // Even if can be forced somehow, the player doesn't gain any // benefit from it. ItemStack stack = player.getHeldItem(); - EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); + if(stack != null) EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); } }; @@ -133,7 +133,7 @@ public interface IToolHarvestAbility extends IBaseAbility { // Even if can be forced somehow, the player doesn't gain any // benefit from it. ItemStack stack = player.getHeldItem(); - EnchantmentUtil.removeEnchantment(stack, Enchantment.fortune); + if(stack != null) EnchantmentUtil.removeEnchantment(stack, Enchantment.fortune); } }; diff --git a/src/main/java/com/hbm/handler/ability/ToolPreset.java b/src/main/java/com/hbm/handler/ability/ToolPreset.java index 7cc065478..1875f456c 100644 --- a/src/main/java/com/hbm/handler/ability/ToolPreset.java +++ b/src/main/java/com/hbm/handler/ability/ToolPreset.java @@ -27,32 +27,32 @@ public class ToolPreset { this.harvestAbilityLevel = harvestAbilityLevel; } - public ChatComponentText getMessage() { - if (isNone()) { - return ChatBuilder.start("[Tool ability deactivated]").color(EnumChatFormatting.GOLD).flush(); - } + public ChatComponentText getMessage() { + if(isNone()) { + return ChatBuilder.start("[Tool ability deactivated]").color(EnumChatFormatting.GOLD).flush(); + } - boolean hasArea = areaAbility != IToolAreaAbility.NONE; - boolean hasHarvest = harvestAbility != IToolHarvestAbility.NONE; - - ChatBuilder builder = ChatBuilder.start("[Enabled "); + boolean hasArea = areaAbility != IToolAreaAbility.NONE; + boolean hasHarvest = harvestAbility != IToolHarvestAbility.NONE; - if (hasArea) { - builder.nextTranslation(areaAbility.getName()); - builder.next(areaAbility.getExtension(areaAbilityLevel)); - } + ChatBuilder builder = ChatBuilder.start("[Enabled "); - if (hasArea && hasHarvest) { - builder.next(" + "); - } + if(hasArea) { + builder.nextTranslation(areaAbility.getName()); + builder.next(areaAbility.getExtension(areaAbilityLevel)); + } - if (hasHarvest) { - builder.nextTranslation(harvestAbility.getName()); - builder.next(harvestAbility.getExtension(harvestAbilityLevel)); - } - - return builder.colorAll(EnumChatFormatting.YELLOW).flush(); - } + if(hasArea && hasHarvest) { + builder.next(" + "); + } + + if(hasHarvest) { + builder.nextTranslation(harvestAbility.getName()); + builder.next(harvestAbility.getExtension(harvestAbilityLevel)); + } + + return builder.colorAll(EnumChatFormatting.YELLOW).flush(); + } public boolean isNone() { return areaAbility == IToolAreaAbility.NONE && harvestAbility == IToolHarvestAbility.NONE; diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index c4a5a3d4a..0d64ee670 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -717,7 +717,7 @@ public class MainRegistry { achBlastFurnace = new Achievement("achievement.blastFurnace", "blastFurnace", 1, 3, new ItemStack(ModBlocks.machine_difurnace_off), achBurnerPress).initIndependentStat().registerStat(); achAssembly = new Achievement("achievement.assembly", "assembly", 3, -1, new ItemStack(ModBlocks.machine_assembler), achBurnerPress).initIndependentStat().registerStat(); achSelenium = new Achievement("achievement.selenium", "selenium", 3, 2, ModItems.ingot_starmetal, achBurnerPress).initIndependentStat().setSpecial().registerStat(); - achChemplant = new Achievement("achievement.chemplant", "chemplant", 6, -1, new ItemStack(ModBlocks.machine_chemplant), achAssembly).initIndependentStat().registerStat(); + achChemplant = new Achievement("achievement.chemplant", "chemplant", 6, -1, new ItemStack(ModBlocks.machine_chemical_plant), achAssembly).initIndependentStat().registerStat(); achConcrete = new Achievement("achievement.concrete", "concrete", 6, -4, new ItemStack(ModBlocks.concrete), achChemplant).initIndependentStat().registerStat(); achPolymer = new Achievement("achievement.polymer", "polymer", 9, -1, ModItems.ingot_polymer, achChemplant).initIndependentStat().registerStat(); achDesh = new Achievement("achievement.desh", "desh", 9, 2, ModItems.ingot_desh, achChemplant).initIndependentStat().registerStat(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index 838958668..2bb6584f8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -10,6 +10,7 @@ import com.hbm.inventory.container.ContainerMachineChemicalPlant; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineChemicalPlant; +import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; @@ -113,6 +114,11 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem this.didProcess = this.chemplantModule.didProcess; if(this.chemplantModule.markDirty) this.markDirty(); + if(didProcess) { + if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_machined) + slots[0] = new ItemStack(ModItems.meteorite_sword_treated); + } + this.networkPackNT(100); } else { diff --git a/src/main/java/com/hbm/util/AchievementHandler.java b/src/main/java/com/hbm/util/AchievementHandler.java index 900509bfe..4ad24e8f4 100644 --- a/src/main/java/com/hbm/util/AchievementHandler.java +++ b/src/main/java/com/hbm/util/AchievementHandler.java @@ -20,7 +20,7 @@ public class AchievementHandler { craftingAchievements.put(new ComparableStack(ModItems.battery_potatos), MainRegistry.achPotato); craftingAchievements.put(new ComparableStack(ModBlocks.machine_press), MainRegistry.achBurnerPress); craftingAchievements.put(new ComparableStack(ModItems.rbmk_fuel_empty), MainRegistry.achRBMK); - craftingAchievements.put(new ComparableStack(ModBlocks.machine_chemplant), MainRegistry.achChemplant); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_chemical_plant), MainRegistry.achChemplant); craftingAchievements.put(new ComparableStack(ModBlocks.concrete_smooth), MainRegistry.achConcrete); craftingAchievements.put(new ComparableStack(ModBlocks.concrete_asbestos), MainRegistry.achConcrete); craftingAchievements.put(new ComparableStack(ModItems.ingot_polymer), MainRegistry.achPolymer);