Deprecate int IDs in FluidRegistry. Modders should only ever use the String name. Also add a 'friendly' exception when attempting to get an ID for a unregistered fluid. Closes #1374

This commit is contained in:
LexManos 2015-12-10 02:54:00 -08:00
parent 2302963a9f
commit dcda451a0a
3 changed files with 14 additions and 12 deletions

View file

@ -48,10 +48,11 @@ public abstract class ForgeMessage {
public static class FluidIdMapMessage extends ForgeMessage {
BiMap<Fluid, Integer> fluidIds = HashBiMap.create();
Set<String> defaultFluids = Sets.newHashSet();
@SuppressWarnings("deprecation")
@Override
void toBytes(ByteBuf bytes)
{
Map<Fluid, Integer> ids = FluidRegistry.getRegisteredFluidIDsByFluid();
Map<Fluid, Integer> ids = FluidRegistry.getRegisteredFluidIDs();
bytes.writeInt(ids.size());
for (Map.Entry<Fluid, Integer> entry : ids.entrySet())
{

View file

@ -165,6 +165,7 @@ public class Fluid
return this.fluidName;
}
@Deprecated // Modders should never actually use int ID, use String
public final int getID()
{
return FluidRegistry.getFluidID(this.fluidName);

View file

@ -188,19 +188,26 @@ public abstract class FluidRegistry
return fluids.get(fluidName);
}
@Deprecated // Modders should never actually use int ID, use String
public static Fluid getFluid(int fluidID)
{
return fluidIDs.inverse().get(fluidID);
}
@Deprecated // Modders should never actually use int ID, use String
public static int getFluidID(Fluid fluid)
{
return fluidIDs.get(fluid);
Integer ret = fluidIDs.get(fluid);
if (ret == null) throw new RuntimeException("Attempted to access ID for unregistered fluid, Stop using this method modder!");
return ret;
}
@Deprecated // Modders should never actually use int ID, use String
public static int getFluidID(String fluidName)
{
return fluidIDs.get(getFluid(fluidName));
Integer ret = fluidIDs.get(getFluid(fluidName));
if (ret == null) throw new RuntimeException("Attempted to access ID for unregistered fluid, Stop using this method modder!");
return ret;
}
public static String getFluidName(Fluid fluid)
@ -232,21 +239,14 @@ public abstract class FluidRegistry
/**
* Returns a read-only map containing Fluid Names and their associated IDs.
* Modders should never actually use this, use the String names.
*/
@Deprecated
public static Map<Fluid, Integer> getRegisteredFluidIDs()
{
return ImmutableMap.copyOf(fluidIDs);
}
/**
* 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<Fluid, Integer> getRegisteredFluidIDsByFluid()
{
return ImmutableMap.copyOf(fluidIDs);
}
public static Fluid lookupFluidForBlock(Block block)
{
if (fluidBlocks == null)