Skip to content

Commit 8b42c83

Browse files
committed
Fixing up New Equipment
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.
1 parent fbcd2ef commit 8b42c83

File tree

7 files changed

+225
-41
lines changed

7 files changed

+225
-41
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ minecraft {
4040
// stable_# stables are built at the discretion of the MCP team.
4141
// Use non-default mappings at your own risk. they may not allways work.
4242
// simply re-run your setup task after changing the mappings to update your workspace.
43-
mappings = "snapshot_20160422"
43+
mappings = "snapshot_20160424"
4444
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
4545
}
4646

src/main/java/modernmetals/init/Achievements.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import net.minecraft.item.Item;
66
import net.minecraft.item.ItemStack;
77
import net.minecraft.stats.Achievement;
8-
import net.minecraft.stats.AchievementList;
98
import net.minecraftforge.common.AchievementPage;
109

1110
/** initializer for achievements */

src/main/java/modernmetals/init/Items.java

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public abstract class Items {
4343

4444

4545

46+
@SuppressWarnings("rawtypes")
4647
private static Map<Class,Integer> classSortingValues = new HashMap<>();
4748
private static Map<MetalMaterial,Integer> materialSortingValues = new HashMap<>();
4849
/**
@@ -93,17 +94,16 @@ public static Map<MetalMaterial,List<Item>> getItemsByMetal(){
9394
public static Item aluminum_rod;
9495
public static Item aluminum_gear;
9596

96-
/*
97-
public static Item aluminum_arrow;
98-
public static Item aluminum_bow;
99-
public static Item aluminum_bolt;
100-
public static Item aluminum_crossbow;
101-
public static Item aluminum_fishingrod;
102-
public static Item aluminum_horsearmor;
103-
public static Item aluminum_shears;
104-
public static Item aluminum_smallblend;
105-
public static Item aluminum_smallpowder;
106-
*/
97+
98+
// public static Item aluminum_arrow;
99+
// public static Item aluminum_bow;
100+
// public static Item aluminum_bolt;
101+
// public static Item aluminum_crossbow;
102+
// public static Item aluminum_fishingrod;
103+
// public static Item aluminum_horsearmor;
104+
// public static Item aluminum_shears;
105+
// public static Item aluminum_smallblend;
106+
// public static Item aluminum_smallpowder;
107107

108108
public static Item aluminumbrass_axe;
109109
public static Item aluminumbrass_blend;
@@ -707,17 +707,16 @@ public static void init(){
707707
aluminum_rod = create_rod(Materials.aluminum);
708708
aluminum_gear = create_gear(Materials.aluminum);
709709

710-
/*
711-
aluminum_arrow = create_arrow(Materials.aluminum);
712-
aluminum_bow = create_bow(Materials.aluminum);
713-
aluminum_bolt = create_bolt(Materials.aluminum);
714-
aluminum_crossbow = create_crossbow(Materials.aluminum);
715-
aluminum_fishingrod = create_fishingrod(Materials.aluminum);
716-
aluminum_horsearmor = create_horsearmor(Materials.aluminum);
717-
aluminum_shears = create_shears(Materials.aluminum);
718-
aluminum_smallblend = create_smallblend(Materials.aluminum);
719-
aluminum_smallpowder = create_smallpowder(Materials.aluminum);
720-
*/
710+
711+
// aluminum_arrow = create_arrow(Materials.aluminum);
712+
// aluminum_bow = create_bow(Materials.aluminum);
713+
// aluminum_bolt = create_bolt(Materials.aluminum);
714+
// aluminum_crossbow = create_crossbow(Materials.aluminum);
715+
// aluminum_fishingrod = create_fishingrod(Materials.aluminum);
716+
// aluminum_horsearmor = create_horsearmor(Materials.aluminum);
717+
// aluminum_shears = create_shears(Materials.aluminum);
718+
// aluminum_smallblend = create_smallblend(Materials.aluminum);
719+
// aluminum_smallpowder = create_smallpowder(Materials.aluminum);
721720

722721
aluminumbrass_axe = create_axe(Materials.aluminumbrass);
723722
aluminumbrass_blend = create_blend(Materials.aluminumbrass);
@@ -1441,11 +1440,11 @@ private static Item create_smallblend(MetalMaterial metal){
14411440
}
14421441

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

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

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

1462+
@SuppressWarnings("rawtypes")
14631463
public static int getSortingValue(ItemStack a){
14641464
int classVal = 990000;
14651465
int metalVal = 9900;
Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,69 @@
11
package modernmetals.items;
22

3-
import cyano.basemetals.material.IMetalObject;
3+
import java.util.List;
4+
5+
import cyano.basemetals.init.Materials;
6+
import cyano.basemetals.items.MetalToolEffects;
47
import cyano.basemetals.material.MetalMaterial;
58
import cyano.basemetals.registry.IOreDictionaryEntry;
69
import net.minecraft.creativetab.CreativeTabs;
10+
import net.minecraft.entity.Entity;
11+
import net.minecraft.entity.player.EntityPlayer;
12+
import net.minecraft.item.ItemStack;
13+
import net.minecraft.world.World;
14+
import net.minecraftforge.oredict.OreDictionary;
15+
16+
public class ItemMetalBow extends net.minecraft.item.ItemBow implements IOreDictionaryEntry {
717

8-
public class ItemMetalBow extends net.minecraft.item.ItemBow implements IOreDictionaryEntry, IMetalObject{
918
protected final MetalMaterial metal;
19+
protected final String repairOreDictName;
20+
protected final boolean regenerates;
21+
protected final long regenInterval = 200;
1022
private final String oreDict;
23+
1124
public ItemMetalBow(MetalMaterial metal){
1225
this.metal = metal;
13-
this.setCreativeTab(CreativeTabs.MATERIALS);
26+
this.setMaxDamage(metal.getToolDurability());
27+
this.setCreativeTab(CreativeTabs.COMBAT);
28+
repairOreDictName = "ingot"+metal.getCapitalizedName();
29+
if(metal.equals(Materials.starsteel)){
30+
regenerates = true;
31+
} else {
32+
regenerates = false;
33+
}
1434
this.oreDict = "bow"+metal.getCapitalizedName();
1535
}
1636

1737
public String getOreDictionaryName(){
1838
return oreDict;
1939
}
2040

41+
// TODO: Test this
42+
@Override
43+
public boolean getIsRepairable(final ItemStack intputItem, final ItemStack repairMaterial) {
44+
List<ItemStack> acceptableItems = OreDictionary.getOres(repairOreDictName);
45+
for(ItemStack i : acceptableItems ){
46+
if(ItemStack.areItemsEqual(i, repairMaterial)) return true;
47+
}
48+
return false;
49+
}
50+
51+
// TODO: Test this
52+
@Override
53+
public void onUpdate(final ItemStack item, final World world, final Entity player, final int inventoryIndex, final boolean isHeld) {
54+
if(regenerates && !world.isRemote && isHeld && item.getItemDamage() > 0 && world.getTotalWorldTime() % regenInterval == 0){
55+
item.setItemDamage(item.getItemDamage() - 1);
56+
}
57+
}
58+
59+
public String getMaterialName() {
60+
return metal.getName();
61+
}
62+
2163
@Override
22-
public MetalMaterial getMetalMaterial(){
23-
return metal;
64+
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b){
65+
super.addInformation(stack,player,list,b);
66+
MetalToolEffects.addToolSpecialPropertiesToolTip(metal,list);
2467
}
2568

2669
}
Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,69 @@
11
package modernmetals.items;
22

3-
import cyano.basemetals.material.IMetalObject;
3+
import java.util.List;
4+
5+
import cyano.basemetals.init.Materials;
6+
import cyano.basemetals.items.MetalToolEffects;
47
import cyano.basemetals.material.MetalMaterial;
58
import cyano.basemetals.registry.IOreDictionaryEntry;
69
import net.minecraft.creativetab.CreativeTabs;
10+
import net.minecraft.entity.Entity;
11+
import net.minecraft.entity.player.EntityPlayer;
12+
import net.minecraft.item.ItemStack;
13+
import net.minecraft.world.World;
14+
import net.minecraftforge.oredict.OreDictionary;
15+
16+
public class ItemMetalCrossbow extends net.minecraft.item.ItemBow implements IOreDictionaryEntry {
717

8-
public class ItemMetalCrossbow extends net.minecraft.item.ItemBow implements IOreDictionaryEntry, IMetalObject{
918
protected final MetalMaterial metal;
19+
protected final String repairOreDictName;
20+
protected final boolean regenerates;
21+
protected final long regenInterval = 200;
1022
private final String oreDict;
23+
1124
public ItemMetalCrossbow(MetalMaterial metal){
1225
this.metal = metal;
13-
this.setCreativeTab(CreativeTabs.MATERIALS);
26+
this.setMaxDamage(metal.getToolDurability());
27+
this.setCreativeTab(CreativeTabs.COMBAT);
28+
repairOreDictName = "ingot"+metal.getCapitalizedName();
29+
if(metal.equals(Materials.starsteel)){
30+
regenerates = true;
31+
} else {
32+
regenerates = false;
33+
}
1434
this.oreDict = "crossbow"+metal.getCapitalizedName();
1535
}
1636

1737
public String getOreDictionaryName(){
1838
return oreDict;
1939
}
2040

41+
// TODO: Test this
42+
@Override
43+
public boolean getIsRepairable(final ItemStack intputItem, final ItemStack repairMaterial) {
44+
List<ItemStack> acceptableItems = OreDictionary.getOres(repairOreDictName);
45+
for(ItemStack i : acceptableItems ){
46+
if(ItemStack.areItemsEqual(i, repairMaterial)) return true;
47+
}
48+
return false;
49+
}
50+
51+
// TODO: Test this
52+
@Override
53+
public void onUpdate(final ItemStack item, final World world, final Entity player, final int inventoryIndex, final boolean isHeld) {
54+
if(regenerates && !world.isRemote && isHeld && item.getItemDamage() > 0 && world.getTotalWorldTime() % regenInterval == 0){
55+
item.setItemDamage(item.getItemDamage() - 1);
56+
}
57+
}
58+
59+
public String getMaterialName() {
60+
return metal.getName();
61+
}
62+
2163
@Override
22-
public MetalMaterial getMetalMaterial(){
23-
return metal;
64+
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b){
65+
super.addInformation(stack,player,list,b);
66+
MetalToolEffects.addToolSpecialPropertiesToolTip(metal,list);
2467
}
2568

2669
}

src/main/java/modernmetals/items/ItemMetalFishingRod.java

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,71 @@
11
package modernmetals.items;
22

3+
import java.util.List;
4+
5+
import cyano.basemetals.init.Materials;
6+
import cyano.basemetals.items.MetalToolEffects;
37
import cyano.basemetals.material.IMetalObject;
48
import cyano.basemetals.material.MetalMaterial;
9+
import cyano.basemetals.registry.IOreDictionaryEntry;
10+
import net.minecraft.creativetab.CreativeTabs;
11+
import net.minecraft.entity.Entity;
12+
import net.minecraft.entity.player.EntityPlayer;
513
import net.minecraft.item.ItemFishingRod;
14+
import net.minecraft.item.ItemStack;
15+
import net.minecraft.world.World;
16+
import net.minecraftforge.oredict.OreDictionary;
617

7-
public class ItemMetalFishingRod extends ItemFishingRod implements IMetalObject {
18+
public class ItemMetalFishingRod extends ItemFishingRod implements IOreDictionaryEntry, IMetalObject {
819

920
private final MetalMaterial metal;
21+
protected final String repairOreDictName;
22+
protected final boolean regenerates;
23+
protected final long regenInterval = 200;
24+
private final String oreDict;
1025

1126
public ItemMetalFishingRod(MetalMaterial m){
1227
this.metal = m;
28+
this.setMaxDamage(64);
29+
this.setCreativeTab(CreativeTabs.TOOLS);
30+
repairOreDictName = "ingot"+metal.getCapitalizedName();
31+
if(metal.equals(Materials.starsteel)){
32+
regenerates = true;
33+
} else {
34+
regenerates = false;
35+
}
36+
this.oreDict = "fishingrod"+metal.getCapitalizedName();
37+
}
38+
39+
public String getOreDictionaryName(){
40+
return oreDict;
41+
}
42+
43+
// TODO: Test this
44+
@Override
45+
public boolean getIsRepairable(final ItemStack intputItem, final ItemStack repairMaterial) {
46+
List<ItemStack> acceptableItems = OreDictionary.getOres(repairOreDictName);
47+
for(ItemStack i : acceptableItems ){
48+
if(ItemStack.areItemsEqual(i, repairMaterial)) return true;
49+
}
50+
return false;
51+
}
52+
53+
// TODO: Test this
54+
@Override
55+
public void onUpdate(final ItemStack item, final World world, final Entity player, final int inventoryIndex, final boolean isHeld) {
56+
if(regenerates && !world.isRemote && isHeld && item.getItemDamage() > 0 && world.getTotalWorldTime() % regenInterval == 0){
57+
item.setItemDamage(item.getItemDamage() - 1);
58+
}
59+
}
60+
61+
public String getMaterialName() {
62+
return metal.getName();
63+
}
64+
65+
@Override
66+
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b){
67+
super.addInformation(stack,player,list,b);
68+
MetalToolEffects.addToolSpecialPropertiesToolTip(metal,list);
1369
}
1470

1571
@Override public MetalMaterial getMetalMaterial(){
Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,69 @@
11
package modernmetals.items;
22

3+
import java.util.List;
4+
5+
import cyano.basemetals.init.Materials;
6+
import cyano.basemetals.items.MetalToolEffects;
37
import cyano.basemetals.material.IMetalObject;
48
import cyano.basemetals.material.MetalMaterial;
59
import cyano.basemetals.registry.IOreDictionaryEntry;
610
import net.minecraft.creativetab.CreativeTabs;
11+
import net.minecraft.entity.Entity;
12+
import net.minecraft.entity.player.EntityPlayer;
13+
import net.minecraft.item.ItemStack;
14+
import net.minecraft.world.World;
15+
import net.minecraftforge.oredict.OreDictionary;
16+
17+
public class ItemMetalShears extends net.minecraft.item.ItemShears implements IOreDictionaryEntry {
718

8-
public class ItemMetalShears extends net.minecraft.item.ItemShears implements IOreDictionaryEntry, IMetalObject{
919
protected final MetalMaterial metal;
20+
protected final String repairOreDictName;
21+
protected final boolean regenerates;
22+
protected final long regenInterval = 200;
1023
private final String oreDict;
1124
public ItemMetalShears(MetalMaterial metal){
1225
this.metal = metal;
13-
this.setCreativeTab(CreativeTabs.MATERIALS);
26+
this.setMaxDamage(metal.getToolDurability());
27+
this.setCreativeTab(CreativeTabs.TOOLS);
28+
repairOreDictName = "ingot"+metal.getCapitalizedName();
29+
if(metal.equals(Materials.starsteel)){
30+
regenerates = true;
31+
} else {
32+
regenerates = false;
33+
}
1434
this.oreDict = "shears"+metal.getCapitalizedName();
1535
}
1636

1737
public String getOreDictionaryName(){
1838
return oreDict;
1939
}
2040

41+
// TODO: Test this
42+
@Override
43+
public boolean getIsRepairable(final ItemStack intputItem, final ItemStack repairMaterial) {
44+
List<ItemStack> acceptableItems = OreDictionary.getOres(repairOreDictName);
45+
for(ItemStack i : acceptableItems ){
46+
if(ItemStack.areItemsEqual(i, repairMaterial)) return true;
47+
}
48+
return false;
49+
}
50+
51+
// TODO: Test this
52+
@Override
53+
public void onUpdate(final ItemStack item, final World world, final Entity player, final int inventoryIndex, final boolean isHeld) {
54+
if(regenerates && !world.isRemote && isHeld && item.getItemDamage() > 0 && world.getTotalWorldTime() % regenInterval == 0){
55+
item.setItemDamage(item.getItemDamage() - 1);
56+
}
57+
}
58+
59+
public String getMaterialName() {
60+
return metal.getName();
61+
}
62+
2163
@Override
22-
public MetalMaterial getMetalMaterial(){
23-
return metal;
64+
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b){
65+
super.addInformation(stack,player,list,b);
66+
MetalToolEffects.addToolSpecialPropertiesToolTip(metal,list);
2467
}
2568

2669
}

0 commit comments

Comments
 (0)