More work on the P Stone, to be immediately changed again heh.

This commit is contained in:
pahimar 2012-06-04 07:44:42 -04:00
parent 838335ca69
commit 1fba95e2c8
5 changed files with 79 additions and 5 deletions

View file

@ -0,0 +1,32 @@
package ee3.core;
import ee3.item.ItemPhilosopherStone;
import ee3.item.ModItems;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.IInventory;
import net.minecraft.src.ItemStack;
import net.minecraft.src.forge.ICraftingHandler;
public class CraftingHandler implements ICraftingHandler {
public CraftingHandler() { }
@Override
public void onTakenFromCrafting(EntityPlayer player, ItemStack stack, IInventory craftMatrix) {
// TODO Auto-generated method stub
ItemStack currentItemStack;
for (int i = 0; i < craftMatrix.getSizeInventory(); i++) {
currentItemStack = craftMatrix.getStackInSlot(i);
if (currentItemStack != null) {
if (currentItemStack.itemID == ModItems.philStone.shiftedIndex) {
System.out.println(currentItemStack.getItem().getItemName());
ItemPhilosopherStone stone = (ItemPhilosopherStone) currentItemStack.getItem();
System.out.println("Stone Type: " + stone.getType(currentItemStack));
stone.setType(currentItemStack, (byte)1);
System.out.println("Stone Type: " + stone.getType(currentItemStack));
}
}
}
}
}

View file

@ -14,17 +14,18 @@ import net.minecraft.src.mod_EE3;
*/
public class ItemPhilosopherStone extends ItemEE implements IItemChargeable, IItemModal {
private byte type;
private byte currentCharge;
private byte maxCharge;
private byte currentMode;
private byte maxMode;
public ItemPhilosopherStone(int i) {
super(i);
type = 1;
maxCharge = 4;
maxMode = 2;
this.setMaxDamage(1561);
}
/**
@ -32,7 +33,10 @@ public class ItemPhilosopherStone extends ItemEE implements IItemChargeable, IIt
*/
public int getIconFromDamage(int par1)
{
return this.iconIndex + type;
if (this.getMaxDamage() > 0)
return this.iconIndex;
else
return this.iconIndex + 1;
}
/*
@ -40,7 +44,7 @@ public class ItemPhilosopherStone extends ItemEE implements IItemChargeable, IIt
* @see net.minecraft.src.Item#getRarity(net.minecraft.src.ItemStack)
*/
public EnumRarity getRarity(ItemStack par1ItemStack) {
if (type == 1)
if (getShort(par1ItemStack, "Damage") > 0)
return mod_EE3.proxy.getCustomEnumRarityType(CustomItemRarity.RARE);
else
return mod_EE3.proxy.getCustomEnumRarityType(CustomItemRarity.MAGICAL);
@ -51,7 +55,7 @@ public class ItemPhilosopherStone extends ItemEE implements IItemChargeable, IIt
* @see net.minecraft.src.Item#hasEffect(net.minecraft.src.ItemStack)
*/
public boolean hasEffect(ItemStack par1ItemStack) {
return (this.type == 1);
return (getType(par1ItemStack) == 1);
}
@Override
@ -104,6 +108,17 @@ public class ItemPhilosopherStone extends ItemEE implements IItemChargeable, IIt
public void setMode(ItemStack ist, byte mode) {
setByte(ist, "currentMode", mode);
}
public byte getType(ItemStack ist) {
return getByte(ist, "type");
}
public void setType(ItemStack ist, byte type) {
setByte(ist, "type", type);
setShort(ist, "Damage", -1);
ist.writeToNBT(ist.stackTagCompound);
this.setMaxDamage(-1);
}
@Override
public boolean doesContainerItemLeaveCraftingGrid(ItemStack ist) {

View file

@ -1,7 +1,9 @@
package ee3.item;
import ee3.lib.ItemIds;
import net.minecraft.src.Block;
import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraft.src.ModLoader;
/**
@ -28,5 +30,7 @@ public class ModItems {
/* Add the item names to the mod items */
ModLoader.addName(philStone, "Philosopher's Stone");
ModLoader.addShapelessRecipe(new ItemStack(philStone), Block.dirt);
}
}

19
ee3_common/mod_EE3.info Normal file
View file

@ -0,0 +1,19 @@
[
{
"modid" : "mod_EE3",
"name" : "Equivalent Exchange 3",
"version" : "v1.0.0.0",
"url" : "http://www.minecraftforum.net/topic/1106178-",
"credits" : "Original by x3n0ph0b3, maintained by Pahimar",
"authors": [
"x3n0ph0b3",
"pahimar"
],
"description": "Transmute stuff into other stuff! Become a Minecraft God!",
"logoFile" : "",
"updateUrl" : "http://www.minecraftforum.net/topic/1106178-",
"parent" : "",
"screenshots": [
]
}
]

View file

@ -2,6 +2,7 @@ package net.minecraft.src;
import ee3.addons.BuildCraftAddon;
import ee3.core.ConfigurationManager;
import ee3.core.CraftingHandler;
import ee3.core.RecipesPhilStone;
import ee3.core.ServerClientProxy;
import ee3.core.Version;
@ -52,6 +53,9 @@ public class mod_EE3 extends NetworkMod {
// Bind Sound Handler
this.proxy.registerSoundHandler();
// Register the Crafting Handler
MinecraftForge.registerCraftingHandler(new CraftingHandler());
// Initialise the configuration settings from file
this.config.init();