diff --git a/src/main/java/net/minecraftforge/common/network/ForgeMessage.java b/src/main/java/net/minecraftforge/common/network/ForgeMessage.java index 6ba6ccd5fb..17f6ff0c42 100644 --- a/src/main/java/net/minecraftforge/common/network/ForgeMessage.java +++ b/src/main/java/net/minecraftforge/common/network/ForgeMessage.java @@ -14,14 +14,14 @@ public abstract class ForgeMessage { int dimensionId; /** The provider ID to register with dimension on client */ int providerId; - + public DimensionRegisterMessage(){} public DimensionRegisterMessage(int dimensionId, int providerId) { this.dimensionId = dimensionId; this.providerId = providerId; } - + @Override void toBytes(ByteBuf bytes) { @@ -42,7 +42,7 @@ public abstract class ForgeMessage { @Override void toBytes(ByteBuf bytes) { - Map ids = FluidRegistry.getRegisteredFluidIDs(); + Map ids = FluidRegistry.getRegisteredFluidIDsByFluid(); bytes.writeInt(ids.size()); for (Map.Entry entry : ids.entrySet()) { diff --git a/src/main/java/net/minecraftforge/fluids/FluidRegistry.java b/src/main/java/net/minecraftforge/fluids/FluidRegistry.java index 866f0dbf63..30d7774944 100644 --- a/src/main/java/net/minecraftforge/fluids/FluidRegistry.java +++ b/src/main/java/net/minecraftforge/fluids/FluidRegistry.java @@ -2,6 +2,7 @@ package net.minecraftforge.fluids; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import net.minecraft.block.Block; import net.minecraft.init.Blocks; @@ -28,6 +29,7 @@ public abstract class FluidRegistry static BiMap fluids = HashBiMap.create(); static BiMap fluidIDs = HashBiMap.create(); + static BiMap fluidNames = HashBiMap.create(); //Caching this just makes some other calls faster static BiMap fluidBlocks; public static final Fluid WATER = new Fluid("water") { @@ -63,6 +65,9 @@ public abstract class FluidRegistry maxID = newfluidIDs.size(); fluidIDs.clear(); fluidIDs.putAll(newfluidIDs); + fluidNames.clear(); + for (Entry e : fluidIDs.entrySet()) + fluidNames.put(e.getValue(), e.getKey().getName()); } /** @@ -81,6 +86,7 @@ public abstract class FluidRegistry } fluids.put(fluid.getName(), fluid); fluidIDs.put(fluid, ++maxID); + fluidNames.put(maxID, fluid.getName()); MinecraftForge.EVENT_BUS.post(new FluidRegisterEvent(fluid.getName(), maxID)); return true; @@ -116,6 +122,12 @@ public abstract class FluidRegistry return fluidIDs.get(getFluid(fluidName)); } + @Deprecated //Remove in 1.8.3 + public static String getFluidName(int fluidID) + { + return fluidNames.get(fluidID); + } + public static String getFluidName(Fluid fluid) { return fluids.inverse().get(fluid); @@ -144,9 +156,19 @@ public abstract class FluidRegistry } /** - * Returns a read-only map containing Fluid IDs and their associated Fluids. + * Returns a read-only map containing Fluid Names and their associated IDs. */ - public static Map getRegisteredFluidIDs() + @Deprecated //Change return type to in 1.8.3 + public static Map getRegisteredFluidIDs() + { + return ImmutableMap.copyOf(fluidNames.inverse()); + } + + /** + * Returns a read-only map containing Fluid IDs and their associated Fluids. + * In 1.8.3, this will change to just 'getRegisteredFluidIDs' + */ + public static Map getRegisteredFluidIDsByFluid() { return ImmutableMap.copyOf(fluidIDs); }