Applied-Energistics-2-tiler.../items/materials/MaterialType.java
2014-02-08 19:34:52 -06:00

115 lines
3.7 KiB
Java

package appeng.items.materials;
import java.util.EnumSet;
import net.minecraft.entity.Entity;
import net.minecraft.util.IIcon;
import net.minecraftforge.oredict.OreDictionary;
import appeng.client.render.entity.EntityIds;
import appeng.core.AppEng;
import appeng.core.features.AEFeature;
import appeng.entity.EntityChargedQuartz;
import appeng.entity.EntitySingularity;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public enum MaterialType
{
CertusQuartzCrystal(AEFeature.Core, "crystalCertusQuartz"), CertusQuartzCrystalCharged(AEFeature.Core, EntityChargedQuartz.class),
CertusQuartzDust(AEFeature.Core, "dustCertusQuartz"), NetherQuartzDust(AEFeature.Core, "dustNetherQuartz"), Flour(AEFeature.Flour, "dustWheat"), GoldDust(
AEFeature.Core, "dustGold"), IronDust(AEFeature.Core, "dustIron"), IronNugget(AEFeature.Core, "nuggetIron"),
Silicon(AEFeature.Core, "itemSilicon"), MatterBall,
FluixCrystal(AEFeature.Core, "crystalFluix"), FluixDust(AEFeature.Core, "dustFluix"), FluixPearl(AEFeature.Core, "pearlFluix"),
PureifiedCertusQuartzCrystal, PureifiedNetherQuartzCrystal, PureifiedFluixCrystal,
LogicProcessorAsm(AEFeature.QuartzKnife), LogicProcessor,
CalcProcessor, EngProcessor,
// Basic Cards
BasicCard, CardRedstone, CardCapacity,
// Adv Cards
AdvCard, CardFuzzy, CardSpeed, CardInverter,
Cell2SpatialPart(AEFeature.SpatialIO), Cell16SpatialPart(AEFeature.SpatialIO), Cell128SpatialPart(AEFeature.SpatialIO),
Cell1kPart(AEFeature.StorageCells), Cell4kPart(AEFeature.StorageCells), Cell16kPart(AEFeature.StorageCells), Cell64kPart(AEFeature.StorageCells), EmptyStorageCell(
AEFeature.StorageCells),
WoodenGear(AEFeature.GrindStone, "gearWood"),
Wireless(AEFeature.WirelessAccessTerminal), WirelessBooster(AEFeature.WirelessAccessTerminal),
BlankPattern, FormationCore, AnnihilationCore,
EnderDust(AEFeature.QuantumNetworkBridge, "dustEnder", EntitySingularity.class), Singularity(AEFeature.QuantumNetworkBridge, EntitySingularity.class), QESingularity(
AEFeature.QuantumNetworkBridge, EntitySingularity.class);
private String oreName;
private EnumSet<AEFeature> features;
private Class<? extends Entity> droppedEntity;
// IIcon for the material.
@SideOnly(Side.CLIENT)
public IIcon IIcon;
public int damageValue = -1;
MaterialType() {
features = EnumSet.of( AEFeature.Core );
}
MaterialType(AEFeature part) {
features = EnumSet.of( part );
}
MaterialType(AEFeature part, Class<? extends Entity> c) {
features = EnumSet.of( part );
droppedEntity = c;
EntityRegistry.registerModEntity( droppedEntity, droppedEntity.getSimpleName(), EntityIds.get( droppedEntity ), AppEng.instance, 16, 4, true );
}
MaterialType(AEFeature part, String oreDictionary, Class<? extends Entity> c) {
features = EnumSet.of( part );
oreName = oreDictionary;
if ( OreDictionary.getOres( oreDictionary ).size() > 0 )
features.add( AEFeature.DuplicateItems );
droppedEntity = c;
EntityRegistry.registerModEntity( droppedEntity, droppedEntity.getSimpleName(), EntityIds.get( droppedEntity ), AppEng.instance, 16, 4, true );
}
MaterialType(AEFeature part, String oreDictionary) {
features = EnumSet.of( part );
oreName = oreDictionary;
if ( OreDictionary.getOres( oreDictionary ).size() > 0 )
features.add( AEFeature.DuplicateItems );
}
public EnumSet<AEFeature> getFeature()
{
return features;
}
public String getOreName()
{
return oreName;
}
public boolean hasCustomEntity()
{
return droppedEntity != null;
}
public Class<? extends Entity> getCustomEntityClass()
{
return droppedEntity;
}
}