summaryrefslogtreecommitdiff
path: root/src/main/java/gmail/Lance5057/items/Shield.java
blob: 85e6864cbeac9f937a72494f90f6b53875ef5c36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
package gmail.Lance5057.items;

import tconstruct.library.tools.ToolCore;
import cpw.mods.fml.relauncher.*;
import mods.battlegear2.api.IEnchantable;
import mods.battlegear2.api.ISheathed;
import mods.battlegear2.api.shield.IArrowCatcher;
import mods.battlegear2.api.shield.IArrowDisplay;
import mods.battlegear2.api.shield.IShield;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.entity.Entity;
import net.minecraft.entity.IProjectile;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.*;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;

public class Shield extends ToolCore implements IShield, ISheathed, IArrowCatcher, IArrowDisplay
{
public Shield(int baseDamage)
{
super(baseDamage);
}
protected float baseSpeed ()
{
return 1.5f;
}
protected float effectiveSpeed ()
{
return 15f;
}
public float breakSpeedModifier ()
{
return 1.0f;
}
@Override
public float getDigSpeed (ItemStack stack, Block block, int meta)
{
if (stack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Broken"))
return 0.1f;
for (int i = 0; i < web.length; i++)
{
if (web[i] == block.getMaterial())
{
return effectiveSpeed();
}
}
return baseSpeed();
}
/**
* returns the action that specifies what animation to play when the items
* is being used
*/
@Override
public EnumAction getItemUseAction (ItemStack par1ItemStack)
{
return EnumAction.block;
}
/**
* How long it takes to use or consume an item
*/
@Override
public int getMaxItemUseDuration (ItemStack par1ItemStack)
{
return 72000;
}
/**
* Called whenever this item is equipped and the right mouse button is
* pressed. Args: itemStack, world, entityPlayer
*/
@Override
public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player)
{
player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
return stack;
}
@Override
public boolean onItemUse (ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float clickX, float clickY, float clickZ)
{
return false;
}
/**
* Returns if the item (tool) can harvest results from the block type.
*/
@Override
public boolean canHarvestBlock (Block block, ItemStack is)
{
for (int i = 0; i < web.length; i++)
{
if (block.getMaterial() == web[i])
return true;
}
return super.canHarvestBlock(block, is);
}
protected Material[] getEffectiveMaterials ()
{
return web;
}
@Override
@SideOnly(Side.CLIENT)
public void onUpdate (ItemStack stack, World world, Entity entity, int par4, boolean par5)
{
	super.onUpdate(stack, world, entity, par4, par5);
	if (entity instanceof EntityPlayerSP)
	{
		EntityPlayerSP player = (EntityPlayerSP) entity;
		ItemStack usingItem = player.getItemInUse();
		if (usingItem != null && usingItem.getItem() == this)
		{
			player.movementInput.moveForward *= 2.5F;
			player.movementInput.moveStrafe *= 2.5F;
		}
	}
}
@Override
public String[] getTraits ()
{
return new String[] { "shield", "melee" };
}
public static Material[] web = new Material[] { Material.web, Material.cloth, Material.coral, Material.cake };
public static Material[] none = new Material[0];

protected String getHarvestType() {
	// TODO Auto-generated method stub
	return null;
}
@Override
public int getArrowCount(ItemStack arg0) {
	// TODO Auto-generated method stub
	return 0;
}
@Override
public void setArrowCount(ItemStack arg0, int arg1) {
	// TODO Auto-generated method stub
	
}
@Override
public boolean catchArrow(ItemStack arg0, EntityPlayer arg1, IProjectile arg2) {
	// TODO Auto-generated method stub
	return false;
}
@Override
public boolean sheatheOnBack(ItemStack item) {
	// TODO Auto-generated method stub
	return false;
}
@Override
public void blockAnimation(EntityPlayer arg0, float arg1) {
	// TODO Auto-generated method stub
	
}
@Override
public boolean canBlock(ItemStack arg0, DamageSource arg1) {
	// TODO Auto-generated method stub
	return false;
}
@Override
public int getBashTimer(ItemStack arg0) {
	// TODO Auto-generated method stub
	return 0;
}
@Override
public float getBlockAngle(ItemStack arg0) {
	// TODO Auto-generated method stub
	return 0;
}
@Override
public float getDamageDecayRate(ItemStack arg0, float arg1) {
	// TODO Auto-generated method stub
	return 0;
}
@Override
public float getDamageReduction(ItemStack arg0, DamageSource arg1) {
	// TODO Auto-generated method stub
	return 0;
}
@Override
public float getDecayRate(ItemStack arg0) {
	// TODO Auto-generated method stub
	return 0;
}
@Override
public float getRecoveryRate(ItemStack arg0) {
	// TODO Auto-generated method stub
	return 0;
}
@Override
public Item getAccessoryItem() {
	// TODO Auto-generated method stub
	return null;
}
@Override
public String getDefaultFolder() {
	// TODO Auto-generated method stub
	return null;
}
@Override
public String getEffectSuffix() {
	// TODO Auto-generated method stub
	return null;
}
@Override
public Item getHeadItem() {
	// TODO Auto-generated method stub
	return null;
}
@Override
public String getIconSuffix(int arg0) {
	// TODO Auto-generated method stub
	return null;
}
}