Files
Wizardry/src/main/java/electroblob/wizardry/constants/Element.java
T
2018-02-07 21:15:50 +00:00

71 lines
2.8 KiB
Java

package electroblob.wizardry.constants;
import electroblob.wizardry.Wizardry;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.Style;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public enum Element {
/**
* The 'default' element, with {@link electroblob.wizardry.spell.MagicMissile MagicMissile} being its only spell.
*/
MAGIC(new Style().setColor(TextFormatting.GRAY), "simple", Wizardry.MODID), FIRE(
new Style().setColor(TextFormatting.DARK_RED), "fire",
Wizardry.MODID), ICE(new Style().setColor(TextFormatting.AQUA), "ice", Wizardry.MODID), LIGHTNING(
new Style().setColor(TextFormatting.DARK_AQUA), "lightning",
Wizardry.MODID), NECROMANCY(new Style().setColor(TextFormatting.DARK_PURPLE), "necromancy",
Wizardry.MODID), EARTH(new Style().setColor(TextFormatting.DARK_GREEN), "earth",
Wizardry.MODID), SORCERY(new Style().setColor(TextFormatting.GREEN), "sorcery",
Wizardry.MODID), HEALING(new Style().setColor(TextFormatting.YELLOW),
"healing", Wizardry.MODID);
/** Display colour for this element */
private final Style colour;
/** Unlocalised name for this element */
private final String unlocalisedName;
/** The {@link ResourceLocation} for this element's 8x8 icon (displayed in the arcane workbench GUI) */
private final ResourceLocation icon;
private Element(Style colour, String name, String modid){
this.colour = colour;
this.unlocalisedName = name;
this.icon = new ResourceLocation(modid, "textures/gui/element_icon_" + unlocalisedName + ".png");
}
/** Returns the translated display name of this element, without formatting. */
@SideOnly(Side.CLIENT)
public String getDisplayName(){
return net.minecraft.client.resources.I18n.format("element." + getUnlocalisedName());
}
/** Returns the {@link Style} object representing the colour of this element. */
public Style getColour(){
return colour;
}
/** Returns the string formatting code which corresponds to the colour of this element. */
public String getFormattingCode(){
return colour.getFormattingCode();
}
/** Returns the translated display name for wizards of this element, shown in the trading GUI. */
public ITextComponent getWizardName(){
return new TextComponentTranslation("element." + getUnlocalisedName() + ".wizard");
}
/** Returns this element's unlocalised name. */
public String getUnlocalisedName(){
return unlocalisedName;
}
/** Returns the {@link ResourceLocation} for this element's 8x8 icon (displayed in the arcane workbench GUI). */
public ResourceLocation getIcon(){
return icon;
}
}