aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/ic2/item
diff options
context:
space:
mode:
authorJohann Bernhardt <johann.bernhardt@tum.de>2021-12-12 19:38:06 +0100
committerJohann Bernhardt <johann.bernhardt@tum.de>2021-12-12 19:38:06 +0100
commit311ab89f93558233a40079f7cb16605b141b5346 (patch)
treec5f44ef47f441a57c5f57aa801f639c7879ed760 /src/main/java/gtPlusPlus/xmod/ic2/item
parent896143b96132f5ac54aa8d8f7386f27487e5e530 (diff)
downloadGT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.tar.gz
GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.tar.bz2
GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.zip
Move sources and resources
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/ic2/item')
-rw-r--r--src/main/java/gtPlusPlus/xmod/ic2/item/CustomKineticRotor.java276
-rw-r--r--src/main/java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradual.java43
-rw-r--r--src/main/java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradualInteger.java54
-rw-r--r--src/main/java/gtPlusPlus/xmod/ic2/item/IC2_ItemIC2.java106
-rw-r--r--src/main/java/gtPlusPlus/xmod/ic2/item/IC2_Items.java60
-rw-r--r--src/main/java/gtPlusPlus/xmod/ic2/item/ItemGenerators.java55
-rw-r--r--src/main/java/gtPlusPlus/xmod/ic2/item/RotorBase.java100
-rw-r--r--src/main/java/gtPlusPlus/xmod/ic2/item/RotorIridium.java127
-rw-r--r--src/main/java/gtPlusPlus/xmod/ic2/item/reactor/IC2_FuelRod_Base.java52
9 files changed, 873 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/ic2/item/CustomKineticRotor.java b/src/main/java/gtPlusPlus/xmod/ic2/item/CustomKineticRotor.java
new file mode 100644
index 0000000000..92d711101b
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/ic2/item/CustomKineticRotor.java
@@ -0,0 +1,276 @@
+package gtPlusPlus.xmod.ic2.item;
+
+import java.util.List;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gtPlusPlus.core.lib.LoadedMods;
+import gtPlusPlus.core.util.Utils;
+import ic2.api.item.IKineticRotor;
+import ic2.core.IC2;
+import ic2.core.block.kineticgenerator.gui.GuiWaterKineticGenerator;
+import ic2.core.block.kineticgenerator.gui.GuiWindKineticGenerator;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.util.StatCollector;
+
+public class CustomKineticRotor extends Item implements IKineticRotor {
+
+ private final int mTier;
+
+ @SideOnly(Side.CLIENT)
+ private IIcon[] mTextures;
+
+ private static final String[] mRegistrationNames = new String[] {
+ "itemwoodrotor", "itemironrotor", "itemsteelrotor", "itemwcarbonrotor"
+ };
+
+ private static final String[] mUnlocalNames = new String[] {
+ "itemEnergeticRotor",
+ "itemTungstenSteelRotor",
+ "itemVibrantRotor",
+ "itemIridiumRotor",
+ "itemMagnaliumRotor",
+ "itemUltimetRotor",
+ };
+ private static final int[] mMaxDurability = new int[] {
+ 512000, 809600, 1600000, 3200000
+ };
+ private static final int[] mRadius = new int[] {
+ 9, 11, 13, 15
+ };
+ private static final float[] mEfficiency = new float[] {
+ 0.9f, 1.0f, 1.2f, 1.5f
+ };
+ private static final int[] mMinWindStrength = new int[] {
+ 12, 14, 16, 18
+ };
+ private static final int[] mMaxWindStrength = new int[] {
+ 80, 120, 160, 320
+ };
+
+ private static final ResourceLocation[] mResourceLocations = new ResourceLocation[] {
+ new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorEnergeticModel.png"),
+ new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorTungstenSteelModel.png"),
+ new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorVibrantModel.png"),
+ new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorIridiumModel.png"),
+ new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorMagnaliumModel.png"),
+ new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorUltimetModel.png"),
+ };
+
+ private final int maxWindStrength;
+ private final int minWindStrength;
+ private final int radius;
+ private final float efficiency;
+ private final ResourceLocation renderTexture;
+
+ public CustomKineticRotor(int aTier) {
+ mTier = aTier;
+ this.setMaxStackSize(1);
+ // Handle Differences if EIO is not loaded
+ if (!LoadedMods.EnderIO && (aTier == 0 || aTier == 2)) {
+ this.renderTexture = mResourceLocations[(aTier == 0 ? 4 : 5)];
+ this.setUnlocalizedName(mUnlocalNames[(aTier == 0 ? 4 : 5)]);
+ }
+ else {
+ this.renderTexture = mResourceLocations[aTier];
+ this.setUnlocalizedName(mUnlocalNames[aTier]);
+ }
+ this.setMaxDamage(mMaxDurability[aTier]);
+ this.radius = mRadius[aTier];
+ this.efficiency = mEfficiency[aTier];
+ this.minWindStrength = mMinWindStrength[aTier];
+ this.maxWindStrength = mMaxWindStrength[aTier];
+ this.setNoRepair();
+ this.setCreativeTab(IC2.tabIC2);
+ GameRegistry.registerItem(this, mRegistrationNames[aTier]);
+ }
+
+ @Override
+ public void setDamage(final ItemStack stack, final int damage) {
+ if (mTier < 3) {
+ super.setDamage(stack, damage);
+ }
+ }
+
+ @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[]{this.minWindStrength, this.maxWindStrength}));
+
+ GearboxType type = null;
+ if (Minecraft.getMinecraft().currentScreen != null && Minecraft.getMinecraft().currentScreen instanceof GuiWaterKineticGenerator) {
+ type = GearboxType.WATER;
+ }
+ else if (Minecraft.getMinecraft().currentScreen != null && Minecraft.getMinecraft().currentScreen instanceof GuiWindKineticGenerator) {
+ type = GearboxType.WIND;
+ }
+
+ if (type != null) {
+ info.add(StatCollector.translateToLocal("ic2.itemrotor.fitsin." + this.isAcceptedType(itemStack, type)));
+ }
+
+ }
+
+ @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) || (type == IKineticRotor.GearboxType.WATER);
+ }
+
+ public String getUnlocalizedName() {
+ return "ic2." + super.getUnlocalizedName().substring(5);
+ }
+
+ public String getUnlocalizedName(ItemStack itemStack) {
+ return this.getUnlocalizedName();
+ }
+
+ public String getItemStackDisplayName(ItemStack itemStack) {
+ return StatCollector.translateToLocal(this.getUnlocalizedName(itemStack));
+ }
+
+ @Override
+ public boolean showDurabilityBar(ItemStack stack) {
+ return mTier < 3;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int meta) {
+ if (!LoadedMods.EnderIO && (mTier == 0 || mTier == 2)) {
+ if (mTier == 0) {
+ return mTextures[4];
+ }
+ else {
+ return mTextures[5];
+ }
+ }
+ else {
+ return mTextures[mTier];
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconIndex(ItemStack aIndex) {
+ if (!LoadedMods.EnderIO && (mTier == 0 || mTier == 2)) {
+ if (mTier == 0) {
+ return mTextures[4];
+ }
+ else {
+ return mTextures[5];
+ }
+ }
+ else {
+ return mTextures[mTier];
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamageForRenderPass(int aDmg, int aPass) {
+ if (!LoadedMods.EnderIO && (mTier == 0 || mTier == 2)) {
+ if (mTier == 0) {
+ return mTextures[4];
+ }
+ else {
+ return mTextures[5];
+ }
+ }
+ else {
+ return mTextures[mTier];
+ }
+ }
+
+ @Override
+ protected String getIconString() {
+ return super.getIconString();
+ }
+
+ @Override
+ public int getDisplayDamage(ItemStack stack) {
+ return super.getDisplayDamage(stack);
+ }
+
+ @Override
+ public double getDurabilityForDisplay(ItemStack stack) {
+ return super.getDurabilityForDisplay(stack);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) {
+ if (!LoadedMods.EnderIO && (mTier == 0 || mTier == 2)) {
+ if (mTier == 0) {
+ return mTextures[4];
+ }
+ else {
+ return mTextures[5];
+ }
+ }
+ else {
+ return mTextures[mTier];
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(ItemStack stack, int pass) {
+ if (!LoadedMods.EnderIO && (mTier == 0 || mTier == 2)) {
+ if (mTier == 0) {
+ return mTextures[4];
+ }
+ else {
+ return mTextures[5];
+ }
+ }
+ else {
+ return mTextures[mTier];
+ }
+ }
+
+ @Override
+ public void registerIcons(IIconRegister iconRegister) {
+ int aIndex = 0;
+ mTextures = new IIcon[6];
+ for (String y : mUnlocalNames) {
+ mTextures[aIndex++] = iconRegister.registerIcon(IC2.textureDomain + ":" + "rotors/" + y);
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradual.java b/src/main/java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradual.java
new file mode 100644
index 0000000000..bd1ad91588
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradual.java
@@ -0,0 +1,43 @@
+package gtPlusPlus.xmod.ic2.item;
+
+import java.util.List;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.item.base.CoreItem;
+
+public class IC2_ItemGradual
+extends CoreItem
+{
+ public IC2_ItemGradual(final String internalName)
+ {
+ super(internalName, AddToCreativeTab.tabMachines, 1, 10000, "", EnumRarity.uncommon);
+ this.setNoRepair();
+ }
+
+ @Override
+ public boolean isDamaged(final ItemStack stack)
+ {
+ return this.getDamage(stack) > 1;
+ }
+
+ @Override
+ public boolean showDurabilityBar(final ItemStack stack)
+ {
+ return true;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(final Item item, final CreativeTabs tabs, final List itemList)
+ {
+ itemList.add(new ItemStack(this, 1, 1));
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradualInteger.java b/src/main/java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradualInteger.java
new file mode 100644
index 0000000000..3ccb2cb0ee
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradualInteger.java
@@ -0,0 +1,54 @@
+package gtPlusPlus.xmod.ic2.item;
+
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+import ic2.api.item.ICustomDamageItem;
+import ic2.core.util.StackUtil;
+
+public class IC2_ItemGradualInteger
+extends IC2_ItemGradual
+implements ICustomDamageItem
+{
+ private final int maxDmg;
+
+ public IC2_ItemGradualInteger(final String internalName, final int maxdmg)
+ {
+ super(internalName);
+
+ this.maxDmg = maxdmg;
+ }
+
+ @Override
+ public int getCustomDamage(final ItemStack stack)
+ {
+ final NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack);
+ return nbt.getInteger("advDmg");
+ }
+
+ @Override
+ public int getMaxCustomDamage(final ItemStack stack)
+ {
+ return this.maxDmg;
+ }
+
+ @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;
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/ic2/item/IC2_ItemIC2.java b/src/main/java/gtPlusPlus/xmod/ic2/item/IC2_ItemIC2.java
new file mode 100644
index 0000000000..897e831b73
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/ic2/item/IC2_ItemIC2.java
@@ -0,0 +1,106 @@
+package gtPlusPlus.xmod.ic2.item;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.lib.CORE;
+
+public class IC2_ItemIC2
+extends Item
+{
+ public IC2_ItemIC2(final String internalName)
+ {
+ this.setUnlocalizedName(internalName);
+ this.setCreativeTab(AddToCreativeTab.tabMachines);
+ this.setTextureName(CORE.MODID + ":" + internalName);
+
+ GameRegistry.registerItem(this, internalName);
+ }
+
+ public String getTextureFolder()
+ {
+ return null;
+ }
+
+ /* public String getTextureName(int index)
+ {
+ if ((!this.hasSubtypes) && (index > 0)) {
+ return null;
+ }
+ String name = getUnlocalizedName(new ItemStack(this, 1, index));
+ if ((name != null) && (name.length() > 4)) {
+ return name.substring(4);
+ }
+ return name;
+ }
+
+ @Override
+@SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister iconRegister)
+ {
+ int indexCount = 0;
+ while (getTextureName(indexCount) != null)
+ {
+ indexCount++;
+ if (indexCount > 32767) {
+ throw new RuntimeException("More Item Icons than actually possible @ " + getUnlocalizedName());
+ }
+ }
+ this.textures = new IIcon[indexCount];
+ for (int index = 0; index < indexCount; index++) {
+ this.textures[index] = iconRegister.registerIcon(CORE.MODID + ":" + getUnlocalizedName());
+ }
+ }
+
+ @Override
+@SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int meta)
+ {
+ if (meta < this.textures.length) {
+ return this.textures[meta];
+ }
+ return this.textures.length < 1 ? null : this.textures[0];
+ }*/
+
+ @Override
+ public String getUnlocalizedName()
+ {
+ return super.getUnlocalizedName();
+ }
+
+ @Override
+ public String getUnlocalizedName(final ItemStack itemStack)
+ {
+ return this.getUnlocalizedName();
+ }
+
+ @Override
+ public String getItemStackDisplayName(final ItemStack itemStack)
+ {
+ return StatCollector.translateToLocal(this.getUnlocalizedName(itemStack));
+ }
+
+ public IC2_ItemIC2 setRarity(final int aRarity)
+ {
+ this.rarity = aRarity;
+ return this;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public EnumRarity getRarity(final ItemStack stack)
+ {
+ return EnumRarity.values()[this.rarity];
+ }
+
+ private int rarity = 0;
+ protected IIcon[] textures;
+}
diff --git a/src/main/java/gtPlusPlus/xmod/ic2/item/IC2_Items.java b/src/main/java/gtPlusPlus/xmod/ic2/item/IC2_Items.java
new file mode 100644
index 0000000000..8c8b2ea7ad
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/ic2/item/IC2_Items.java
@@ -0,0 +1,60 @@
+package gtPlusPlus.xmod.ic2.item;
+
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.item.base.CoreItem;
+import gtPlusPlus.core.item.wearable.hazmat.ItemArmorHazmatEx;
+import gtPlusPlus.core.lib.LoadedMods;
+import net.minecraft.item.ItemStack;
+
+public class IC2_Items {
+
+ public static ItemStack rotor_Material_1; //Energetic Alloy
+ public static ItemStack rotor_Material_2; //TungstenSteel
+ public static ItemStack rotor_Material_3; //Vibrant Alloy
+ public static ItemStack rotor_Material_4; //Iridium
+
+ public static ItemStack rotor_Blade_Material_1;
+ public static ItemStack rotor_Blade_Material_2;
+ public static ItemStack rotor_Blade_Material_3;
+ public static ItemStack rotor_Blade_Material_4;
+
+ public static ItemStack shaft_Material_1; //Energetic Alloy
+ public static ItemStack shaft_Material_2; //TungstenSteel
+ public static ItemStack shaft_Material_3; //Vibrant Alloy
+ public static ItemStack shaft_Material_4; //Iridium
+
+ public static ItemStack blockRTG;
+ public static ItemStack blockKineticGenerator;
+
+ private static final String[] mData1 = new String[] {"itemEnergeticRotorBlade", "itemMagnaliumRotorBlade"};
+ private static final String[] mData2 = new String[] {"itemEnergeticShaft", "itemMagnaliumShaft"};
+ private static final String[] mData3 = new String[] {"itemVibrantRotorBlade", "itemUltimetRotorBlade"};
+ private static final String[] mData4 = new String[] {"itemVibrantShaft", "itemUltimetShaft"};
+
+
+ public static void register(){
+
+ int aIndexEIO = (LoadedMods.EnderIO ? 0 : 1);
+
+ // Rotor Blades
+ rotor_Blade_Material_1 = new ItemStack (new CoreItem(mData1[aIndexEIO], AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor"));
+ rotor_Blade_Material_2 = new ItemStack (new CoreItem("itemTungstenSteelRotorBlade", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor"));
+ rotor_Blade_Material_3 = new ItemStack (new CoreItem(mData3[aIndexEIO], AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor"));
+ rotor_Blade_Material_4 = new ItemStack (new CoreItem("itemIridiumRotorBlade", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor"));
+
+ // Rotor Shafts
+ shaft_Material_1 = new ItemStack (new CoreItem(mData2[aIndexEIO], AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor"));
+ shaft_Material_2 = new ItemStack (new CoreItem("itemTungstenSteelShaft", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor"));
+ shaft_Material_3 = new ItemStack (new CoreItem(mData4[aIndexEIO], AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor"));
+ shaft_Material_4 = new ItemStack (new CoreItem("itemIridiumShaft", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor"));
+
+ // Rotors
+ rotor_Material_1 = new ItemStack (new CustomKineticRotor(0));
+ rotor_Material_2 = new ItemStack (new CustomKineticRotor(1));
+ rotor_Material_3 = new ItemStack (new CustomKineticRotor(2));
+ rotor_Material_4 = new ItemStack (new CustomKineticRotor(3));
+
+ ItemArmorHazmatEx.init();
+
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/ic2/item/ItemGenerators.java b/src/main/java/gtPlusPlus/xmod/ic2/item/ItemGenerators.java
new file mode 100644
index 0000000000..0df2c8d7f1
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/ic2/item/ItemGenerators.java
@@ -0,0 +1,55 @@
+package gtPlusPlus.xmod.ic2.item;
+
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
+
+import ic2.core.item.block.ItemBlockIC2;
+
+public class ItemGenerators
+extends ItemBlockIC2
+{
+ public ItemGenerators(final Block block)
+ {
+ super(block);
+
+ this.setMaxDamage(0);
+ this.setHasSubtypes(true);
+ }
+
+ @Override
+ public int getMetadata(final int i)
+ {
+ return i;
+ }
+
+ @Override
+ public String getUnlocalizedName(final ItemStack itemstack)
+ {
+ final int meta = itemstack.getItemDamage();
+ switch (meta)
+ {
+ case 0:
+ return "ic2.blockRTGenerator2";
+ case 1:
+ return "ic2.blockKineticGenerator2";
+ }
+ return null;
+ }
+
+ @Override
+ public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List info, final boolean b)
+ {
+ final int meta = itemStack.getItemDamage();
+ switch (meta)
+ {
+ case 0:
+ info.add(StatCollector.translateToLocal("ic2.item.tooltip.PowerOutput") + " 1-32 EU/t " + StatCollector.translateToLocal("ic2.item.tooltip.max")); break;
+ case 1:
+ info.add(StatCollector.translateToLocal("ic2.item.tooltip.PowerOutput") + " 1-512 EU/t " + StatCollector.translateToLocal("ic2.item.tooltip.max"));
+ }
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/ic2/item/RotorBase.java b/src/main/java/gtPlusPlus/xmod/ic2/item/RotorBase.java
new file mode 100644
index 0000000000..b9f9ab68ef
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/ic2/item/RotorBase.java
@@ -0,0 +1,100 @@
+package gtPlusPlus.xmod.ic2.item;
+
+import java.util.List;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.util.StatCollector;
+
+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.item.resources.ItemWindRotor;
+
+public class RotorBase extends ItemWindRotor{
+
+ 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 RotorBase(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(durability);
+
+ this.radius = Radius;
+ this.efficiency = efficiency;
+ this.renderTexture = RenderTexture;
+ this.minWindStrength = minWindStrength;
+ this.maxWindStrength = maxWindStrength;
+ this.water = true;
+ }
+
+ @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);
+ }
+}
+
diff --git a/src/main/java/gtPlusPlus/xmod/ic2/item/RotorIridium.java b/src/main/java/gtPlusPlus/xmod/ic2/item/RotorIridium.java
new file mode 100644
index 0000000000..b9dffbd371
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/ic2/item/RotorIridium.java
@@ -0,0 +1,127 @@
+package gtPlusPlus.xmod.ic2.item;
+
+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;
+
+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;
+
+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;
+ }
+}
+
diff --git a/src/main/java/gtPlusPlus/xmod/ic2/item/reactor/IC2_FuelRod_Base.java b/src/main/java/gtPlusPlus/xmod/ic2/item/reactor/IC2_FuelRod_Base.java
new file mode 100644
index 0000000000..01151024c4
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/ic2/item/reactor/IC2_FuelRod_Base.java
@@ -0,0 +1,52 @@
+package gtPlusPlus.xmod.ic2.item.reactor;
+
+import ic2.api.reactor.IReactor;
+import ic2.api.reactor.IReactorComponent;
+import net.minecraft.item.ItemStack;
+
+public class IC2_FuelRod_Base implements IReactorComponent {
+
+ @Override
+ public void processChamber(IReactor var1, ItemStack var2, int var3, int var4, boolean var5) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean acceptUraniumPulse(IReactor var1, ItemStack var2, ItemStack var3, int var4, int var5, int var6,
+ int var7, boolean var8) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean canStoreHeat(IReactor var1, ItemStack var2, int var3, int var4) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public int getMaxHeat(IReactor var1, ItemStack var2, int var3, int var4) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getCurrentHeat(IReactor var1, ItemStack var2, int var3, int var4) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int alterHeat(IReactor var1, ItemStack var2, int var3, int var4, int var5) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float influenceExplosion(IReactor var1, ItemStack var2) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+}