2013-04-01 01:12:10 +02:00
|
|
|
package mekanism.common;
|
2012-12-19 21:23:55 +01:00
|
|
|
|
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;
|
|
|
|
|
2012-12-19 21:23:55 +01:00
|
|
|
/**
|
|
|
|
* Tier information for Mekanism. This currently includes tiers for Energy Cubes and Smelting Factories.
|
|
|
|
* @author aidancbrady
|
|
|
|
*
|
|
|
|
*/
|
2014-03-08 02:00:25 +01:00
|
|
|
public final class Tier
|
2012-12-19 21:23:55 +01:00
|
|
|
{
|
2014-07-10 05:52:01 +02:00
|
|
|
/** The default tiers used in Mekanism.
|
|
|
|
* @author aidancbrady
|
|
|
|
*/
|
|
|
|
public static enum BaseTier
|
|
|
|
{
|
|
|
|
BASIC("Basic"),
|
|
|
|
ADVANCED("Advanced"),
|
|
|
|
ELITE("Elite"),
|
2014-07-28 18:18:33 +02:00
|
|
|
ULTIMATE("Ultimate"),
|
|
|
|
CREATIVE("Creative");
|
2014-07-10 05:52:01 +02:00
|
|
|
|
|
|
|
public String getName()
|
|
|
|
{
|
|
|
|
return name;
|
|
|
|
}
|
|
|
|
|
2014-08-01 03:08:46 +02:00
|
|
|
public boolean isObtainable()
|
|
|
|
{
|
|
|
|
return this != CREATIVE;
|
|
|
|
}
|
|
|
|
|
2014-07-10 05:52:01 +02:00
|
|
|
private String name;
|
|
|
|
|
|
|
|
private BaseTier(String s)
|
|
|
|
{
|
|
|
|
name = s;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-12-19 21:23:55 +01:00
|
|
|
/**
|
|
|
|
* 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),
|
2014-07-28 18:18:33 +02:00
|
|
|
ULTIMATE("Ultimate", EnumColor.PURPLE, 128000000, 51200),
|
2014-08-01 01:19:03 +02:00
|
|
|
CREATIVE("Creative", EnumColor.BLACK, Integer.MAX_VALUE, Integer.MAX_VALUE);
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2012-12-19 21:23:55 +01:00
|
|
|
public double MAX_ELECTRICITY;
|
2013-07-08 18:06:39 +02:00
|
|
|
public double OUTPUT;
|
2012-12-19 21:23:55 +01:00
|
|
|
public String name;
|
2013-11-03 02:07:55 +01:00
|
|
|
public EnumColor color;
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2012-12-19 21:23:55 +01:00
|
|
|
public static EnergyCubeTier getFromName(String tierName)
|
|
|
|
{
|
|
|
|
for(EnergyCubeTier tier : values())
|
|
|
|
{
|
|
|
|
if(tierName.contains(tier.name))
|
|
|
|
{
|
|
|
|
return tier;
|
|
|
|
}
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-06-03 08:46:03 +02:00
|
|
|
Mekanism.logger.error("Invalid tier identifier when retrieving with name.");
|
2012-12-19 21:23:55 +01:00
|
|
|
return BASIC;
|
|
|
|
}
|
2014-07-10 05:52:01 +02:00
|
|
|
|
|
|
|
public BaseTier getBaseTier()
|
|
|
|
{
|
|
|
|
return BaseTier.values()[ordinal()];
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2013-12-21 18:51:55 +01:00
|
|
|
private EnergyCubeTier(String s, EnumColor c, double maxEnergy, double out)
|
2012-12-19 21:23:55 +01:00
|
|
|
{
|
|
|
|
name = s;
|
2013-11-03 02:07:55 +01:00
|
|
|
color = c;
|
2012-12-19 21:23:55 +01:00
|
|
|
MAX_ELECTRICITY = maxEnergy;
|
2013-02-01 01:43:39 +01:00
|
|
|
OUTPUT = out;
|
2012-12-19 21:23:55 +01:00
|
|
|
}
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2012-12-19 21:23:55 +01:00
|
|
|
/**
|
2013-03-20 18:58:36 +01:00
|
|
|
* The tiers used by the Factory and their corresponding values.
|
2012-12-19 21:23:55 +01:00
|
|
|
* @author aidancbrady
|
|
|
|
*
|
|
|
|
*/
|
2013-03-20 16:14:26 +01:00
|
|
|
public static enum FactoryTier
|
2012-12-19 21:23:55 +01:00
|
|
|
{
|
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"));
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2012-12-19 21:23:55 +01:00
|
|
|
public int processes;
|
2013-07-20 18:10:14 +02:00
|
|
|
public ResourceLocation guiLocation;
|
2012-12-19 21:23:55 +01:00
|
|
|
public String name;
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2013-03-20 16:14:26 +01:00
|
|
|
public static FactoryTier getFromName(String tierName)
|
2012-12-19 21:23:55 +01:00
|
|
|
{
|
2013-03-20 16:14:26 +01:00
|
|
|
for(FactoryTier tier : values())
|
2012-12-19 21:23:55 +01:00
|
|
|
{
|
|
|
|
if(tierName.contains(tier.name))
|
|
|
|
{
|
|
|
|
return tier;
|
|
|
|
}
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-06-03 08:46:03 +02:00
|
|
|
Mekanism.logger.error("Invalid tier identifier when retrieving with name.");
|
2012-12-19 21:23:55 +01:00
|
|
|
return BASIC;
|
|
|
|
}
|
2014-07-10 05:52:01 +02:00
|
|
|
|
|
|
|
public BaseTier getBaseTier()
|
|
|
|
{
|
|
|
|
return BaseTier.values()[ordinal()];
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2013-07-20 18:10:14 +02:00
|
|
|
private FactoryTier(String s, int process, ResourceLocation gui)
|
2012-12-19 21:23:55 +01:00
|
|
|
{
|
|
|
|
name = s;
|
|
|
|
processes = process;
|
2013-07-20 18:10:14 +02:00
|
|
|
guiLocation = gui;
|
2012-12-19 21:23:55 +01:00
|
|
|
}
|
|
|
|
}
|
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);
|
2014-07-10 05:52:01 +02:00
|
|
|
|
|
|
|
public BaseTier getBaseTier()
|
|
|
|
{
|
|
|
|
return BaseTier.values()[ordinal()];
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-01-15 23:36:38 +01:00
|
|
|
public int cableCapacity;
|
|
|
|
public TransmitterType type;
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-01-15 23:36:38 +01:00
|
|
|
private CableTier(int capacity, TransmitterType transmitterType)
|
|
|
|
{
|
|
|
|
cableCapacity = capacity;
|
|
|
|
type = transmitterType;
|
|
|
|
}
|
|
|
|
}
|
2014-04-01 20:16:07 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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);
|
2014-07-10 05:52:01 +02:00
|
|
|
|
|
|
|
public BaseTier getBaseTier()
|
|
|
|
{
|
|
|
|
return BaseTier.values()[ordinal()];
|
|
|
|
}
|
2014-04-01 20:16:07 +02:00
|
|
|
|
|
|
|
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;
|
2014-07-09 21:31:57 +02:00
|
|
|
case 5:
|
2014-04-01 20:16:07 +02:00
|
|
|
return ADVANCED;
|
2014-07-09 21:31:57 +02:00
|
|
|
case 6:
|
2014-04-01 20:16:07 +02:00
|
|
|
return ELITE;
|
2014-07-09 21:31:57 +02:00
|
|
|
case 7:
|
2014-04-01 20:16:07 +02:00
|
|
|
return ULTIMATE;
|
|
|
|
default:
|
|
|
|
return BASIC;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2012-12-19 21:23:55 +01:00
|
|
|
}
|