Mekanism-tilera-Edition/src/main/java/mekanism/common/Tier.java

197 lines
4.2 KiB
Java
Raw Normal View History

package mekanism.common;
2013-12-01 06:03:40 +01:00
import mekanism.api.EnumColor;
2014-01-15 23:36:38 +01:00
import mekanism.common.multipart.TransmitterType;
2013-07-20 18:10:14 +02:00
import net.minecraft.util.ResourceLocation;
/**
* Tier information for Mekanism. This currently includes tiers for Energy Cubes and Smelting Factories.
* @author aidancbrady
*
*/
public final class Tier
{
/** The default tiers used in Mekanism.
* @author aidancbrady
*/
public static enum BaseTier
{
BASIC("Basic"),
ADVANCED("Advanced"),
ELITE("Elite"),
ULTIMATE("Ultimate");
public String getName()
{
return name;
}
private String name;
private BaseTier(String s)
{
name = s;
}
}
/**
* The tiers used by the Energy Cube and their corresponding values.
* @author aidancbrady
*
*/
public static enum EnergyCubeTier
{
2013-12-21 18:51:55 +01:00
BASIC("Basic", EnumColor.BRIGHT_GREEN, 2000000, 800),
ADVANCED("Advanced", EnumColor.DARK_RED, 8000000, 3200),
ELITE("Elite", EnumColor.DARK_BLUE, 32000000, 12800),
ULTIMATE("Ultimate", EnumColor.PURPLE, 128000000, 51200);
public double MAX_ELECTRICITY;
public double OUTPUT;
public String name;
public EnumColor color;
public static EnergyCubeTier getFromName(String tierName)
{
for(EnergyCubeTier tier : values())
{
if(tierName.contains(tier.name))
{
return tier;
}
}
2014-06-03 08:46:03 +02:00
Mekanism.logger.error("Invalid tier identifier when retrieving with name.");
return BASIC;
}
public BaseTier getBaseTier()
{
return BaseTier.values()[ordinal()];
}
2013-12-21 18:51:55 +01:00
private EnergyCubeTier(String s, EnumColor c, double maxEnergy, double out)
{
name = s;
color = c;
MAX_ELECTRICITY = maxEnergy;
OUTPUT = out;
}
}
/**
* The tiers used by the Factory and their corresponding values.
* @author aidancbrady
*
*/
public static enum FactoryTier
{
2013-08-01 01:04:00 +02:00
BASIC("Basic", 3, new ResourceLocation("mekanism", "gui/factory/GuiBasicFactory.png")),
ADVANCED("Advanced", 5, new ResourceLocation("mekanism", "gui/factory/GuiAdvancedFactory.png")),
ELITE("Elite", 7, new ResourceLocation("mekanism", "gui/factory/GuiEliteFactory.png"));
public int processes;
2013-07-20 18:10:14 +02:00
public ResourceLocation guiLocation;
public String name;
public static FactoryTier getFromName(String tierName)
{
for(FactoryTier tier : values())
{
if(tierName.contains(tier.name))
{
return tier;
}
}
2014-06-03 08:46:03 +02:00
Mekanism.logger.error("Invalid tier identifier when retrieving with name.");
return BASIC;
}
public BaseTier getBaseTier()
{
return BaseTier.values()[ordinal()];
}
2013-07-20 18:10:14 +02:00
private FactoryTier(String s, int process, ResourceLocation gui)
{
name = s;
processes = process;
2013-07-20 18:10:14 +02:00
guiLocation = gui;
}
}
2014-01-15 23:36:38 +01:00
/**
* The tiers used by Universal Cables and their corresponding values.
* @author aidancbrady
*
*/
public static enum CableTier
{
BASIC(500, TransmitterType.UNIVERSAL_CABLE_BASIC),
ADVANCED(2000, TransmitterType.UNIVERSAL_CABLE_ADVANCED),
ELITE(8000, TransmitterType.UNIVERSAL_CABLE_ELITE),
ULTIMATE(32000, TransmitterType.UNIVERSAL_CABLE_ULTIMATE);
public BaseTier getBaseTier()
{
return BaseTier.values()[ordinal()];
}
2014-01-15 23:36:38 +01:00
public int cableCapacity;
public TransmitterType type;
2014-01-15 23:36:38 +01:00
private CableTier(int capacity, TransmitterType transmitterType)
{
cableCapacity = capacity;
type = transmitterType;
}
}
/**
* The tiers used by Mechanical Pipes and their corresponding values.
* @author unpairedbracket
*
*/
public static enum PipeTier
{
BASIC(1000, 100, TransmitterType.MECHANICAL_PIPE_BASIC),
ADVANCED(4000, 400, TransmitterType.MECHANICAL_PIPE_ADVANCED),
ELITE(16000, 1600, TransmitterType.MECHANICAL_PIPE_ELITE),
ULTIMATE(64000, 6400, TransmitterType.MECHANICAL_PIPE_ULTIMATE);
public BaseTier getBaseTier()
{
return BaseTier.values()[ordinal()];
}
public int pipeCapacity;
public int pipePullAmount;
public TransmitterType type;
private PipeTier(int capacity, int pullAmount, TransmitterType transmitterType)
{
pipeCapacity = capacity;
pipePullAmount = pullAmount;
type = transmitterType;
}
public static PipeTier getTierFromMeta(int meta)
{
switch(meta)
{
case 4:
return BASIC;
case 5:
return ADVANCED;
case 6:
return ELITE;
case 7:
return ULTIMATE;
default:
return BASIC;
}
}
}
}