package com.bioxx.tfc2.api.types;
import java.util.ArrayList;
import net.minecraft.util.IStringSerializable;
public enum StoneType implements IStringSerializable
{
Andesite("andesite", 10, SubType.IgneousExtrusive), Basalt("basalt", 9, SubType.IgneousExtrusive), Blueschist("blueschist", 12, SubType.Metamorphic),
Chert("chert", 7, SubType.Sedimentary), Claystone("claystone", 4, SubType.Sedimentary), Dacite("dacite", 11, SubType.IgneousExtrusive),
Diorite("diorite", 1, SubType.IgneousIntrusive), Dolomite("dolomite", 6, SubType.Sedimentary), Gabbro("gabbro", 2, SubType.IgneousIntrusive),
Gneiss("gneiss", 14, SubType.Metamorphic), Granite("granite", 0, SubType.IgneousIntrusive), Limestone("limestone", 5, SubType.Sedimentary),
Marble("marble", 15, SubType.Metamorphic), Rhyolite("rhyolite", 8, SubType.IgneousExtrusive), Schist("schist", 13, SubType.Metamorphic),
Shale("shale", 3, SubType.Sedimentary);
private String name;
private int meta;
private SubType type;
StoneType(String s, int id, SubType su)
{
name = s;
meta = id;
type = su;
}
@Override
public String getName() {
return name;
}
public SubType getSubType()
{
return type;
}
public int getMeta()
{
return meta;
}
public static StoneType getStoneTypeFromMeta(int meta)
{
for(int i = 0; i < StoneType.values().length; i++)
{
if(StoneType.values()[i].meta == meta)
return StoneType.values()[i];
}
return null;
}
public static StoneType[] getForSubTypes(StoneType.SubType... types)
{
ArrayList<StoneType> list = new ArrayList<StoneType>();
for(StoneType.SubType s : types)
{
for(int i = 0; i < StoneType.values().length; i++)
{
if(StoneType.values()[i].type == s)
list.add(StoneType.values()[i]);
}
}
if(list.size() == 0)
return null;
return list.toArray(new StoneType[list.size()]);
}
public enum SubType
{
IgneousIntrusive, IgneousExtrusive, Sedimentary, Metamorphic;
}
}