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
|
package gtPlusPlus.xmod.ic2.item;
import ic2.api.item.IKineticRotor;
import ic2.core.block.kineticgenerator.gui.GuiWaterKineticGenerator;
import ic2.core.block.kineticgenerator.gui.GuiWindKineticGenerator;
import ic2.core.init.InternalName;
import ic2.core.util.StackUtil;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
public class RotorIridium extends RotorBase {
private final int maxWindStrength;
private final int minWindStrength;
private final int radius;
private final float efficiency;
private final ResourceLocation renderTexture;
private final boolean water;
public RotorIridium(
final InternalName internalName,
final int Radius,
final int durability,
final float efficiency,
final int minWindStrength,
final int maxWindStrength,
final ResourceLocation RenderTexture) {
super(internalName, Radius, durability, efficiency, minWindStrength, maxWindStrength, RenderTexture);
this.setMaxStackSize(1);
this.setMaxDamage(Integer.MAX_VALUE);
this.radius = Radius;
this.efficiency = efficiency;
this.renderTexture = RenderTexture;
this.minWindStrength = minWindStrength;
this.maxWindStrength = maxWindStrength;
this.water = (internalName != InternalName.itemwoodrotor);
}
@Override
public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List info, final boolean b) {
info.add(StatCollector.translateToLocalFormatted(
"ic2.itemrotor.wind.info",
new Object[] {Integer.valueOf(this.minWindStrength), Integer.valueOf(this.maxWindStrength)}));
IKineticRotor.GearboxType type = null;
if ((Minecraft.getMinecraft().currentScreen != null)
&& ((Minecraft.getMinecraft().currentScreen instanceof GuiWaterKineticGenerator))) {
type = IKineticRotor.GearboxType.WATER;
} else if ((Minecraft.getMinecraft().currentScreen != null)
&& ((Minecraft.getMinecraft().currentScreen instanceof GuiWindKineticGenerator))) {
type = IKineticRotor.GearboxType.WIND;
}
if (type != null) {
// info.add(StatCollector.translateToLocal("ic2.itemrotor.fitsin." + isAcceptedType(itemStack, type)));
}
}
@Override
public String getTextureFolder() {
return "rotors";
}
@Override
public int getDiameter(final ItemStack stack) {
return this.radius;
}
@Override
public ResourceLocation getRotorRenderTexture(final ItemStack stack) {
return this.renderTexture;
}
@Override
public float getEfficiency(final ItemStack stack) {
return this.efficiency;
}
@Override
public int getMinWindStrength(final ItemStack stack) {
return this.minWindStrength;
}
@Override
public int getMaxWindStrength(final ItemStack stack) {
return this.maxWindStrength;
}
@Override
public boolean isAcceptedType(final ItemStack stack, final IKineticRotor.GearboxType type) {
return (type == IKineticRotor.GearboxType.WIND) || (this.water);
}
@Override
public void setCustomDamage(final ItemStack stack, final int damage) {
final NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack);
nbt.setInteger("advDmg", 0);
final int maxStackDamage = stack.getMaxDamage();
if (maxStackDamage > 2) {
// stack.setItemDamage(1 + (int)Util.map(damage, this.maxDmg, maxStackDamage - 2));
}
}
@Override
public boolean applyCustomDamage(final ItemStack stack, final int damage, final EntityLivingBase src) {
this.setCustomDamage(stack, this.getCustomDamage(stack) + damage);
return true;
}
@Override
public boolean showDurabilityBar(ItemStack stack) {
return false;
}
}
|