From b427b265839ca13c77be5ec448e060bb55c4253c Mon Sep 17 00:00:00 2001 From: Hea3veN Date: Tue, 8 Mar 2016 19:50:49 -0300 Subject: [PATCH] Fix remapped blocks being overriden with dummy air blocks. Closes #2491 --- src/main/java/net/minecraftforge/fml/common/Loader.java | 2 +- .../fml/common/registry/PersistentRegistryManager.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraftforge/fml/common/Loader.java b/src/main/java/net/minecraftforge/fml/common/Loader.java index 8759e1fdb6..4bca3c0933 100644 --- a/src/main/java/net/minecraftforge/fml/common/Loader.java +++ b/src/main/java/net/minecraftforge/fml/common/Loader.java @@ -979,7 +979,7 @@ public class Loader } } - return PersistentRegistryManager.processIdRematches(missingMappings.values(), isLocalWorld, remapBlocks, remapItems); + return PersistentRegistryManager.processIdRematches(missingMappings.values(), isLocalWorld, missingBlocks, missingItems, remapBlocks, remapItems); } public void fireRemapEvent(Map remapBlocks, Map remapItems, boolean isFreezing) diff --git a/src/main/java/net/minecraftforge/fml/common/registry/PersistentRegistryManager.java b/src/main/java/net/minecraftforge/fml/common/registry/PersistentRegistryManager.java index 2e57d44d84..5696d4f620 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/PersistentRegistryManager.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/PersistentRegistryManager.java @@ -370,7 +370,7 @@ public class PersistentRegistryManager forAllRegistries(PersistentRegistry.FROZEN, ValidateRegistryFunction.OPERATION); } - public static List processIdRematches(Iterable missedMappings, boolean isLocalWorld, Map remapBlocks, Map remapItems) + public static List processIdRematches(Iterable missedMappings, boolean isLocalWorld, Map missingBlocks, Map missingItems, Map remapBlocks, Map remapItems) { List failed = Lists.newArrayList(); List ignored = Lists.newArrayList(); @@ -395,6 +395,7 @@ public class PersistentRegistryManager newName = active.getRegistry(BLOCKS, Block.class).getNameForObject((Block)remap.getTarget()); FMLLog.fine("The Block %s is being remapped to %s.", remap.name, newName); + missingBlocks.remove(new ResourceLocation(remap.name)); newId = staging.getRegistry(BLOCKS, Block.class).add(remap.id, newName, (Block)remap.getTarget()); staging.getRegistry(BLOCKS, Block.class).addAlias(remap.resourceLocation, newName); } @@ -404,6 +405,7 @@ public class PersistentRegistryManager newName = active.getRegistry(ITEMS, Item.class).getNameForObject((Item)remap.getTarget()); FMLLog.fine("The Item %s is being remapped to %s.", remap.name, newName); + missingItems.remove(new ResourceLocation(remap.name)); newId = staging.getRegistry(ITEMS, Item.class).add(remap.id, newName, (Item)remap.getTarget()); staging.getRegistry(ITEMS, Item.class).addAlias(remap.resourceLocation, newName); }