169 lines
3.8 KiB
Java
169 lines
3.8 KiB
Java
package thaumcraft.api.wands;
|
|
|
|
import java.util.LinkedHashMap;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.ResourceLocation;
|
|
|
|
/**
|
|
*
|
|
* @author Azanor
|
|
*
|
|
* This class is used to keep the material information for the various rods.
|
|
* It is also used to generate the wand recipes ingame.
|
|
*
|
|
*/
|
|
public class WandRod
|
|
{
|
|
private String tag;
|
|
|
|
/**
|
|
* Cost to craft this wand. Combined with the rod cost.
|
|
*/
|
|
private int craftCost;
|
|
|
|
/**
|
|
* The amount of vis that can be stored - this number is actually multiplied
|
|
* by 100 for use by the wands internals
|
|
*/
|
|
int capacity;
|
|
|
|
/**
|
|
* The texture that will be used for the ingame wand rod
|
|
*/
|
|
ResourceLocation texture;
|
|
|
|
/**
|
|
* the actual item that makes up this rod and will be used to generate the wand recipes
|
|
*/
|
|
ItemStack item;
|
|
|
|
/**
|
|
* A class that will be called whenever the wand onUpdate tick is run
|
|
*/
|
|
IWandRodOnUpdate onUpdate;
|
|
|
|
/**
|
|
* Does the rod glow in the dark?
|
|
*/
|
|
boolean glow;
|
|
|
|
public static LinkedHashMap<String, WandRod> rods = new LinkedHashMap<String, WandRod>();
|
|
|
|
public WandRod(String tag, int capacity, ItemStack item, int craftCost, ResourceLocation texture)
|
|
{
|
|
this.setTag(tag);
|
|
this.capacity = capacity;
|
|
this.texture = texture;
|
|
this.item = item;
|
|
this.setCraftCost(craftCost);
|
|
rods.put(tag, this);
|
|
}
|
|
|
|
public WandRod(String tag, int capacity, ItemStack item, int craftCost, IWandRodOnUpdate onUpdate, ResourceLocation texture)
|
|
{
|
|
this.setTag(tag);
|
|
this.capacity = capacity;
|
|
this.texture = texture;
|
|
this.item = item;
|
|
this.setCraftCost(craftCost);
|
|
rods.put(tag, this);
|
|
this.onUpdate = onUpdate;
|
|
}
|
|
|
|
public WandRod(String tag, int capacity, ItemStack item, int craftCost)
|
|
{
|
|
this.setTag(tag);
|
|
this.capacity = capacity;
|
|
this.texture = new ResourceLocation("thaumcraft", "textures/models/wand_rod_" + getTag() + ".png");
|
|
this.item = item;
|
|
this.setCraftCost(craftCost);
|
|
rods.put(tag, this);
|
|
}
|
|
|
|
public WandRod(String tag, int capacity, ItemStack item, int craftCost, IWandRodOnUpdate onUpdate)
|
|
{
|
|
this.setTag(tag);
|
|
this.capacity = capacity;
|
|
this.texture = new ResourceLocation("thaumcraft", "textures/models/wand_rod_" + getTag() + ".png");
|
|
this.item = item;
|
|
this.setCraftCost(craftCost);
|
|
rods.put(tag, this);
|
|
this.onUpdate = onUpdate;
|
|
}
|
|
|
|
public String getTag()
|
|
{
|
|
return tag;
|
|
}
|
|
|
|
public void setTag(String tag)
|
|
{
|
|
this.tag = tag;
|
|
}
|
|
|
|
public int getCapacity()
|
|
{
|
|
return capacity;
|
|
}
|
|
|
|
public void setCapacity(int capacity)
|
|
{
|
|
this.capacity = capacity;
|
|
}
|
|
|
|
public ResourceLocation getTexture()
|
|
{
|
|
return texture;
|
|
}
|
|
|
|
public void setTexture(ResourceLocation texture)
|
|
{
|
|
this.texture = texture;
|
|
}
|
|
|
|
public ItemStack getItem()
|
|
{
|
|
return item;
|
|
}
|
|
|
|
public void setItem(ItemStack item)
|
|
{
|
|
this.item = item;
|
|
}
|
|
|
|
public int getCraftCost()
|
|
{
|
|
return craftCost;
|
|
}
|
|
|
|
public void setCraftCost(int craftCost)
|
|
{
|
|
this.craftCost = craftCost;
|
|
}
|
|
|
|
public IWandRodOnUpdate getOnUpdate()
|
|
{
|
|
return onUpdate;
|
|
}
|
|
|
|
public void setOnUpdate(IWandRodOnUpdate onUpdate)
|
|
{
|
|
this.onUpdate = onUpdate;
|
|
}
|
|
|
|
public boolean isGlowing()
|
|
{
|
|
return glow;
|
|
}
|
|
|
|
public void setGlowing(boolean hasGlow)
|
|
{
|
|
this.glow = hasGlow;
|
|
}
|
|
|
|
// Some examples:
|
|
// WandRod WAND_ROD_WOOD = new WandRod("wood",25,new ItemStack(Item.stick),1);
|
|
// WandRod WAND_ROD_BLAZE = new WandRod("blaze",100,new ItemStack(Item.blazeRod),7,new WandRodBlazeOnUpdate());
|
|
}
|