-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Most of them Work now. Caveats: Fishing Rods do not work at all. Durability needs tweaking still Bows will consume any arrow but shoot a normal wooden one Crossbows act like normal bows currently. Bolts can be used as arrows and vice versa.
- Loading branch information
Showing
7 changed files
with
225 additions
and
41 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,69 @@ | ||
package modernmetals.items; | ||
|
||
import cyano.basemetals.material.IMetalObject; | ||
import java.util.List; | ||
|
||
import cyano.basemetals.init.Materials; | ||
import cyano.basemetals.items.MetalToolEffects; | ||
import cyano.basemetals.material.MetalMaterial; | ||
import cyano.basemetals.registry.IOreDictionaryEntry; | ||
import net.minecraft.creativetab.CreativeTabs; | ||
import net.minecraft.entity.Entity; | ||
import net.minecraft.entity.player.EntityPlayer; | ||
import net.minecraft.item.ItemStack; | ||
import net.minecraft.world.World; | ||
import net.minecraftforge.oredict.OreDictionary; | ||
|
||
public class ItemMetalBow extends net.minecraft.item.ItemBow implements IOreDictionaryEntry { | ||
|
||
public class ItemMetalBow extends net.minecraft.item.ItemBow implements IOreDictionaryEntry, IMetalObject{ | ||
protected final MetalMaterial metal; | ||
protected final String repairOreDictName; | ||
protected final boolean regenerates; | ||
protected final long regenInterval = 200; | ||
private final String oreDict; | ||
|
||
public ItemMetalBow(MetalMaterial metal){ | ||
this.metal = metal; | ||
this.setCreativeTab(CreativeTabs.MATERIALS); | ||
this.setMaxDamage(metal.getToolDurability()); | ||
this.setCreativeTab(CreativeTabs.COMBAT); | ||
repairOreDictName = "ingot"+metal.getCapitalizedName(); | ||
if(metal.equals(Materials.starsteel)){ | ||
regenerates = true; | ||
} else { | ||
regenerates = false; | ||
} | ||
this.oreDict = "bow"+metal.getCapitalizedName(); | ||
} | ||
|
||
public String getOreDictionaryName(){ | ||
return oreDict; | ||
} | ||
|
||
// TODO: Test this | ||
@Override | ||
public boolean getIsRepairable(final ItemStack intputItem, final ItemStack repairMaterial) { | ||
List<ItemStack> acceptableItems = OreDictionary.getOres(repairOreDictName); | ||
for(ItemStack i : acceptableItems ){ | ||
if(ItemStack.areItemsEqual(i, repairMaterial)) return true; | ||
} | ||
return false; | ||
} | ||
|
||
// TODO: Test this | ||
@Override | ||
public void onUpdate(final ItemStack item, final World world, final Entity player, final int inventoryIndex, final boolean isHeld) { | ||
if(regenerates && !world.isRemote && isHeld && item.getItemDamage() > 0 && world.getTotalWorldTime() % regenInterval == 0){ | ||
item.setItemDamage(item.getItemDamage() - 1); | ||
} | ||
} | ||
|
||
public String getMaterialName() { | ||
return metal.getName(); | ||
} | ||
|
||
@Override | ||
public MetalMaterial getMetalMaterial(){ | ||
return metal; | ||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b){ | ||
super.addInformation(stack,player,list,b); | ||
MetalToolEffects.addToolSpecialPropertiesToolTip(metal,list); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,69 @@ | ||
package modernmetals.items; | ||
|
||
import cyano.basemetals.material.IMetalObject; | ||
import java.util.List; | ||
|
||
import cyano.basemetals.init.Materials; | ||
import cyano.basemetals.items.MetalToolEffects; | ||
import cyano.basemetals.material.MetalMaterial; | ||
import cyano.basemetals.registry.IOreDictionaryEntry; | ||
import net.minecraft.creativetab.CreativeTabs; | ||
import net.minecraft.entity.Entity; | ||
import net.minecraft.entity.player.EntityPlayer; | ||
import net.minecraft.item.ItemStack; | ||
import net.minecraft.world.World; | ||
import net.minecraftforge.oredict.OreDictionary; | ||
|
||
public class ItemMetalCrossbow extends net.minecraft.item.ItemBow implements IOreDictionaryEntry { | ||
|
||
public class ItemMetalCrossbow extends net.minecraft.item.ItemBow implements IOreDictionaryEntry, IMetalObject{ | ||
protected final MetalMaterial metal; | ||
protected final String repairOreDictName; | ||
protected final boolean regenerates; | ||
protected final long regenInterval = 200; | ||
private final String oreDict; | ||
|
||
public ItemMetalCrossbow(MetalMaterial metal){ | ||
this.metal = metal; | ||
this.setCreativeTab(CreativeTabs.MATERIALS); | ||
this.setMaxDamage(metal.getToolDurability()); | ||
this.setCreativeTab(CreativeTabs.COMBAT); | ||
repairOreDictName = "ingot"+metal.getCapitalizedName(); | ||
if(metal.equals(Materials.starsteel)){ | ||
regenerates = true; | ||
} else { | ||
regenerates = false; | ||
} | ||
this.oreDict = "crossbow"+metal.getCapitalizedName(); | ||
} | ||
|
||
public String getOreDictionaryName(){ | ||
return oreDict; | ||
} | ||
|
||
// TODO: Test this | ||
@Override | ||
public boolean getIsRepairable(final ItemStack intputItem, final ItemStack repairMaterial) { | ||
List<ItemStack> acceptableItems = OreDictionary.getOres(repairOreDictName); | ||
for(ItemStack i : acceptableItems ){ | ||
if(ItemStack.areItemsEqual(i, repairMaterial)) return true; | ||
} | ||
return false; | ||
} | ||
|
||
// TODO: Test this | ||
@Override | ||
public void onUpdate(final ItemStack item, final World world, final Entity player, final int inventoryIndex, final boolean isHeld) { | ||
if(regenerates && !world.isRemote && isHeld && item.getItemDamage() > 0 && world.getTotalWorldTime() % regenInterval == 0){ | ||
item.setItemDamage(item.getItemDamage() - 1); | ||
} | ||
} | ||
|
||
public String getMaterialName() { | ||
return metal.getName(); | ||
} | ||
|
||
@Override | ||
public MetalMaterial getMetalMaterial(){ | ||
return metal; | ||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b){ | ||
super.addInformation(stack,player,list,b); | ||
MetalToolEffects.addToolSpecialPropertiesToolTip(metal,list); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,69 @@ | ||
package modernmetals.items; | ||
|
||
import java.util.List; | ||
|
||
import cyano.basemetals.init.Materials; | ||
import cyano.basemetals.items.MetalToolEffects; | ||
import cyano.basemetals.material.IMetalObject; | ||
import cyano.basemetals.material.MetalMaterial; | ||
import cyano.basemetals.registry.IOreDictionaryEntry; | ||
import net.minecraft.creativetab.CreativeTabs; | ||
import net.minecraft.entity.Entity; | ||
import net.minecraft.entity.player.EntityPlayer; | ||
import net.minecraft.item.ItemStack; | ||
import net.minecraft.world.World; | ||
import net.minecraftforge.oredict.OreDictionary; | ||
|
||
public class ItemMetalShears extends net.minecraft.item.ItemShears implements IOreDictionaryEntry { | ||
|
||
public class ItemMetalShears extends net.minecraft.item.ItemShears implements IOreDictionaryEntry, IMetalObject{ | ||
protected final MetalMaterial metal; | ||
protected final String repairOreDictName; | ||
protected final boolean regenerates; | ||
protected final long regenInterval = 200; | ||
private final String oreDict; | ||
public ItemMetalShears(MetalMaterial metal){ | ||
this.metal = metal; | ||
this.setCreativeTab(CreativeTabs.MATERIALS); | ||
this.setMaxDamage(metal.getToolDurability()); | ||
this.setCreativeTab(CreativeTabs.TOOLS); | ||
repairOreDictName = "ingot"+metal.getCapitalizedName(); | ||
if(metal.equals(Materials.starsteel)){ | ||
regenerates = true; | ||
} else { | ||
regenerates = false; | ||
} | ||
this.oreDict = "shears"+metal.getCapitalizedName(); | ||
} | ||
|
||
public String getOreDictionaryName(){ | ||
return oreDict; | ||
} | ||
|
||
// TODO: Test this | ||
@Override | ||
public boolean getIsRepairable(final ItemStack intputItem, final ItemStack repairMaterial) { | ||
List<ItemStack> acceptableItems = OreDictionary.getOres(repairOreDictName); | ||
for(ItemStack i : acceptableItems ){ | ||
if(ItemStack.areItemsEqual(i, repairMaterial)) return true; | ||
} | ||
return false; | ||
} | ||
|
||
// TODO: Test this | ||
@Override | ||
public void onUpdate(final ItemStack item, final World world, final Entity player, final int inventoryIndex, final boolean isHeld) { | ||
if(regenerates && !world.isRemote && isHeld && item.getItemDamage() > 0 && world.getTotalWorldTime() % regenInterval == 0){ | ||
item.setItemDamage(item.getItemDamage() - 1); | ||
} | ||
} | ||
|
||
public String getMaterialName() { | ||
return metal.getName(); | ||
} | ||
|
||
@Override | ||
public MetalMaterial getMetalMaterial(){ | ||
return metal; | ||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b){ | ||
super.addInformation(stack,player,list,b); | ||
MetalToolEffects.addToolSpecialPropertiesToolTip(metal,list); | ||
} | ||
|
||
} |