Skip to content

Commit

Permalink
Fixing up New Equipment
Browse files Browse the repository at this point in the history
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
jriwanek committed Apr 24, 2016
1 parent fbcd2ef commit 8b42c83
Show file tree
Hide file tree
Showing 7 changed files with 225 additions and 41 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ minecraft {
// stable_# stables are built at the discretion of the MCP team.
// Use non-default mappings at your own risk. they may not allways work.
// simply re-run your setup task after changing the mappings to update your workspace.
mappings = "snapshot_20160422"
mappings = "snapshot_20160424"
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
}

Expand Down
1 change: 0 additions & 1 deletion src/main/java/modernmetals/init/Achievements.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.Achievement;
import net.minecraft.stats.AchievementList;
import net.minecraftforge.common.AchievementPage;

/** initializer for achievements */
Expand Down
48 changes: 24 additions & 24 deletions src/main/java/modernmetals/init/Items.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public abstract class Items {



@SuppressWarnings("rawtypes")
private static Map<Class,Integer> classSortingValues = new HashMap<>();
private static Map<MetalMaterial,Integer> materialSortingValues = new HashMap<>();
/**
Expand Down Expand Up @@ -93,17 +94,16 @@ public static Map<MetalMaterial,List<Item>> getItemsByMetal(){
public static Item aluminum_rod;
public static Item aluminum_gear;

/*
public static Item aluminum_arrow;
public static Item aluminum_bow;
public static Item aluminum_bolt;
public static Item aluminum_crossbow;
public static Item aluminum_fishingrod;
public static Item aluminum_horsearmor;
public static Item aluminum_shears;
public static Item aluminum_smallblend;
public static Item aluminum_smallpowder;
*/

// public static Item aluminum_arrow;
// public static Item aluminum_bow;
// public static Item aluminum_bolt;
// public static Item aluminum_crossbow;
// public static Item aluminum_fishingrod;
// public static Item aluminum_horsearmor;
// public static Item aluminum_shears;
// public static Item aluminum_smallblend;
// public static Item aluminum_smallpowder;

public static Item aluminumbrass_axe;
public static Item aluminumbrass_blend;
Expand Down Expand Up @@ -707,17 +707,16 @@ public static void init(){
aluminum_rod = create_rod(Materials.aluminum);
aluminum_gear = create_gear(Materials.aluminum);

/*
aluminum_arrow = create_arrow(Materials.aluminum);
aluminum_bow = create_bow(Materials.aluminum);
aluminum_bolt = create_bolt(Materials.aluminum);
aluminum_crossbow = create_crossbow(Materials.aluminum);
aluminum_fishingrod = create_fishingrod(Materials.aluminum);
aluminum_horsearmor = create_horsearmor(Materials.aluminum);
aluminum_shears = create_shears(Materials.aluminum);
aluminum_smallblend = create_smallblend(Materials.aluminum);
aluminum_smallpowder = create_smallpowder(Materials.aluminum);
*/

// aluminum_arrow = create_arrow(Materials.aluminum);
// aluminum_bow = create_bow(Materials.aluminum);
// aluminum_bolt = create_bolt(Materials.aluminum);
// aluminum_crossbow = create_crossbow(Materials.aluminum);
// aluminum_fishingrod = create_fishingrod(Materials.aluminum);
// aluminum_horsearmor = create_horsearmor(Materials.aluminum);
// aluminum_shears = create_shears(Materials.aluminum);
// aluminum_smallblend = create_smallblend(Materials.aluminum);
// aluminum_smallpowder = create_smallpowder(Materials.aluminum);

aluminumbrass_axe = create_axe(Materials.aluminumbrass);
aluminumbrass_blend = create_blend(Materials.aluminumbrass);
Expand Down Expand Up @@ -1441,11 +1440,11 @@ private static Item create_smallblend(MetalMaterial metal){
}

private static Item create_fishingrod(MetalMaterial metal){
return registerItem(new ItemMetalHorseArmor(metal), metal.getName()+"_"+"fishingrod", metal, ItemGroups.tab_tools);
return registerItem(new ItemMetalFishingRod(metal), metal.getName()+"_"+"fishingrod", metal, ItemGroups.tab_tools);
}

private static Item create_horsearmor(MetalMaterial metal){
return registerItem(new ItemMetalFishingRod(metal), metal.getName()+"_"+"horsearmor", metal, ItemGroups.tab_tools);
return registerItem(new ItemMetalHorseArmor(metal), metal.getName()+"_"+"horsearmor", metal, ItemGroups.tab_tools);
}

private static Item create_smallpowder(MetalMaterial metal){
Expand All @@ -1460,6 +1459,7 @@ private static Item create_door(MetalMaterial metal,BlockDoor door){
return item;
}

@SuppressWarnings("rawtypes")
public static int getSortingValue(ItemStack a){
int classVal = 990000;
int metalVal = 9900;
Expand Down
53 changes: 48 additions & 5 deletions src/main/java/modernmetals/items/ItemMetalBow.java
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);
}

}
53 changes: 48 additions & 5 deletions src/main/java/modernmetals/items/ItemMetalCrossbow.java
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);
}

}
58 changes: 57 additions & 1 deletion src/main/java/modernmetals/items/ItemMetalFishingRod.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,71 @@
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.ItemFishingRod;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;

public class ItemMetalFishingRod extends ItemFishingRod implements IMetalObject {
public class ItemMetalFishingRod extends ItemFishingRod implements IOreDictionaryEntry, IMetalObject {

private final MetalMaterial metal;
protected final String repairOreDictName;
protected final boolean regenerates;
protected final long regenInterval = 200;
private final String oreDict;

public ItemMetalFishingRod(MetalMaterial m){
this.metal = m;
this.setMaxDamage(64);
this.setCreativeTab(CreativeTabs.TOOLS);
repairOreDictName = "ingot"+metal.getCapitalizedName();
if(metal.equals(Materials.starsteel)){
regenerates = true;
} else {
regenerates = false;
}
this.oreDict = "fishingrod"+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 void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b){
super.addInformation(stack,player,list,b);
MetalToolEffects.addToolSpecialPropertiesToolTip(metal,list);
}

@Override public MetalMaterial getMetalMaterial(){
Expand Down
51 changes: 47 additions & 4 deletions src/main/java/modernmetals/items/ItemMetalShears.java
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);
}

}

0 comments on commit 8b42c83

Please sign in to comment.