Try and make sure active substitutions are immediately available in the block to item map.
This commit is contained in:
parent
95825e5de0
commit
a54b939ea3
|
@ -565,7 +565,7 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespacedDefaul
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void activateSubstitution(ResourceLocation nameToReplace)
|
I activateSubstitution(ResourceLocation nameToReplace)
|
||||||
{
|
{
|
||||||
if (getPersistentSubstitutions().containsKey(nameToReplace))
|
if (getPersistentSubstitutions().containsKey(nameToReplace))
|
||||||
{
|
{
|
||||||
|
@ -573,7 +573,9 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespacedDefaul
|
||||||
I sub = getPersistentSubstitutions().get(nameToReplace);
|
I sub = getPersistentSubstitutions().get(nameToReplace);
|
||||||
getExistingDelegate(original).changeReference(sub);
|
getExistingDelegate(original).changeReference(sub);
|
||||||
activeSubstitutions.put(nameToReplace, sub);
|
activeSubstitutions.put(nameToReplace, sub);
|
||||||
|
return original;
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
void addSubstitutionAlias(String modId, ResourceLocation nameToReplace, I replacement) throws ExistingSubstitutionException
|
void addSubstitutionAlias(String modId, ResourceLocation nameToReplace, I replacement) throws ExistingSubstitutionException
|
||||||
|
|
|
@ -14,6 +14,8 @@ package net.minecraftforge.fml.common.registry;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.google.common.collect.BiMap;
|
||||||
|
import com.google.common.collect.HashBiMap;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
|
@ -190,16 +192,26 @@ public class GameData
|
||||||
if (type == GameRegistry.Type.BLOCK)
|
if (type == GameRegistry.Type.BLOCK)
|
||||||
{
|
{
|
||||||
iBlockRegistry.addSubstitutionAlias(Loader.instance().activeModContainer().getModId(), nameToSubstitute, (Block)toReplace);
|
iBlockRegistry.addSubstitutionAlias(Loader.instance().activeModContainer().getModId(), nameToSubstitute, (Block)toReplace);
|
||||||
iBlockRegistry.activateSubstitution(nameToSubstitute);
|
Block orig = iBlockRegistry.activateSubstitution(nameToSubstitute);
|
||||||
|
if (BLOCK_TO_ITEM.containsKey(orig))
|
||||||
|
{
|
||||||
|
Item i = BLOCK_TO_ITEM.get(orig);
|
||||||
|
BLOCK_TO_ITEM.forcePut((Block)toReplace,i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (type == GameRegistry.Type.ITEM)
|
else if (type == GameRegistry.Type.ITEM)
|
||||||
{
|
{
|
||||||
iItemRegistry.addSubstitutionAlias(Loader.instance().activeModContainer().getModId(), nameToSubstitute, (Item)toReplace);
|
iItemRegistry.addSubstitutionAlias(Loader.instance().activeModContainer().getModId(), nameToSubstitute, (Item)toReplace);
|
||||||
iItemRegistry.activateSubstitution(nameToSubstitute);
|
Item orig = iItemRegistry.activateSubstitution(nameToSubstitute);
|
||||||
|
if (BLOCK_TO_ITEM.containsValue(orig))
|
||||||
|
{
|
||||||
|
Block b = BLOCK_TO_ITEM.inverse().get(orig);
|
||||||
|
BLOCK_TO_ITEM.forcePut(b, (Item)toReplace);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Map<Block, Item> BLOCK_TO_ITEM = Maps.newHashMap();
|
private static BiMap<Block, Item> BLOCK_TO_ITEM = HashBiMap.create();
|
||||||
|
|
||||||
//Internal: DO NOT USE, will change without warning.
|
//Internal: DO NOT USE, will change without warning.
|
||||||
public static Map getBlockItemMap()
|
public static Map getBlockItemMap()
|
||||||
|
@ -254,7 +266,7 @@ public class GameData
|
||||||
if (item instanceof ItemBlock)
|
if (item instanceof ItemBlock)
|
||||||
{
|
{
|
||||||
ItemBlock itemBlock = (ItemBlock)item;
|
ItemBlock itemBlock = (ItemBlock)item;
|
||||||
BLOCK_TO_ITEM.put(itemBlock.getBlock().delegate.get(), item);
|
BLOCK_TO_ITEM.forcePut(itemBlock.getBlock().delegate.get(), item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue