aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Java/miscutil/core/item/ModItems.java6
-rw-r--r--src/Java/miscutil/core/item/general/ItemCloakingDevice.java251
-rw-r--r--src/Java/miscutil/core/item/general/ItemHealingDevice.java223
-rw-r--r--src/resources/assets/miscutils/textures/items/personalCloakingDevice.pngbin0 -> 245 bytes
4 files changed, 480 insertions, 0 deletions
diff --git a/src/Java/miscutil/core/item/ModItems.java b/src/Java/miscutil/core/item/ModItems.java
index 20f9a00bb2..7406c3eca6 100644
--- a/src/Java/miscutil/core/item/ModItems.java
+++ b/src/Java/miscutil/core/item/ModItems.java
@@ -18,6 +18,8 @@ import miscutil.core.item.base.rotors.BaseItemRotor;
import miscutil.core.item.base.screws.BaseItemScrew;
import miscutil.core.item.effects.RarityUncommon;
import miscutil.core.item.general.BufferCore;
+import miscutil.core.item.general.ItemCloakingDevice;
+import miscutil.core.item.general.ItemHealingDevice;
import miscutil.core.item.general.RF2EU_Battery;
import miscutil.core.item.general.fuelrods.FuelRod_Base;
import miscutil.core.item.init.ItemsFoods;
@@ -163,6 +165,8 @@ public final class ModItems {
public static BaseItemBolt itemBoltTantalloy61;
public static Item RfEuBattery;
+ public static Item itemPersonalCloakingDevice;
+ public static Item itemPersonalHealingDevice;
//@SuppressWarnings("unused")
@@ -346,6 +350,8 @@ public final class ModItems {
FuelRod_Uranium = new FuelRod_Base("itemFuelRod_Uranium", "Uranium", 2500, 2500);
FuelRod_Plutonium = new FuelRod_Base("itemFuelRod_Plutonium", "Plutonium", 5000, 5000);
RfEuBattery = new RF2EU_Battery();
+ itemPersonalCloakingDevice = new ItemCloakingDevice();
+ itemPersonalHealingDevice = new ItemHealingDevice();
//Registry
//GameRegistry.registerItem(FuelRod_Empty, "itemFuelRod_Empty");
//GameRegistry.registerItem(FuelRod_Thorium, "itemFuelRod_Thorium");
diff --git a/src/Java/miscutil/core/item/general/ItemCloakingDevice.java b/src/Java/miscutil/core/item/general/ItemCloakingDevice.java
new file mode 100644
index 0000000000..64e45f34b9
--- /dev/null
+++ b/src/Java/miscutil/core/item/general/ItemCloakingDevice.java
@@ -0,0 +1,251 @@
+package miscutil.core.item.general;
+
+import ic2.api.item.ElectricItem;
+import ic2.api.item.IElectricItem;
+import ic2.api.item.IElectricItemManager;
+
+import java.util.List;
+
+import miscutil.core.creative.AddToCreativeTab;
+import miscutil.core.lib.CORE;
+import miscutil.core.util.item.UtilsItems;
+import miscutil.core.util.math.MathUtils;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
+import baubles.api.BaubleType;
+import baubles.api.IBauble;
+import cpw.mods.fml.common.registry.GameRegistry;
+
+public class ItemCloakingDevice extends Item implements IElectricItem, IElectricItemManager, IBauble{
+
+ private final String unlocalizedName = "personalCloakingDevice";
+ private final ItemStack thisStack;
+ private final static int maxValueEU = 100000000;
+ protected double chargeEU = 0;
+
+ public ItemCloakingDevice(){
+ this.setCreativeTab(AddToCreativeTab.tabMachines);
+ this.setUnlocalizedName(unlocalizedName);
+ this.setMaxStackSize(1);
+ this.setTextureName(CORE.MODID + ":" + "personalCloakingDevice");
+ this.thisStack = UtilsItems.getSimpleStack(this);
+ GameRegistry.registerItem(this, unlocalizedName);
+ }
+
+ @Override
+ public void onUpdate(ItemStack itemStack, World worldObj, Entity player, int p_77663_4_, boolean p_77663_5_) {
+ if (worldObj.isRemote) {
+ return;
+ }
+
+ if (player instanceof EntityPlayer){
+ for (ItemStack is : ((EntityPlayer) player).inventory.mainInventory) {
+ if (is == itemStack) {
+ continue;
+ }
+ if (is != null) {
+ if (is.getItem() instanceof IElectricItem) {
+ IElectricItem electricItem = (IElectricItem) is.getItem();
+ chargeEU = ElectricItem.manager.getCharge(is);
+ }
+
+ }
+ }
+ }
+
+
+ super.onUpdate(itemStack, worldObj, player, p_77663_4_, p_77663_5_);
+ }
+
+ @Override
+ public boolean canProvideEnergy(ItemStack itemStack) {
+ return true;
+ }
+
+ @Override
+ public Item getChargedItem(ItemStack itemStack) {
+ ItemStack x = itemStack.copy();
+ x.setItemDamage(maxValueEU);
+ return x.getItem();
+ }
+
+ @Override
+ public Item getEmptyItem(ItemStack itemStack) {
+ ItemStack x = itemStack.copy();
+ x.setItemDamage(0);
+ return x.getItem();
+ }
+
+ @Override
+ public double getMaxCharge(ItemStack itemStack) {
+ return maxValueEU;
+ }
+
+ @Override
+ public int getTier(ItemStack itemStack) {
+ return 5;
+ }
+
+ @Override
+ public double getTransferLimit(ItemStack itemStack) {
+ return 8196;
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack p_77653_1_) {
+
+ return (EnumChatFormatting.BLUE+"Personal Cloaking Device"+EnumChatFormatting.GRAY);
+ }
+
+ @Override
+ public double getDurabilityForDisplay(ItemStack stack)
+ {
+ //return 1.0D - getEnergyStored(stack) / this.capacity;
+ return 1.0D - (double)getCharge(stack) / (double)getMaxCharge(stack);
+ }
+
+ @Override
+ public boolean showDurabilityBar(ItemStack stack)
+ {
+ return true;
+ }
+
+ public int secondsLeft(ItemStack stack){
+ double r = 0;
+ r = getCharge(stack)/(8196*20);
+ return (int) MathUtils.decimalRounding(r);
+ }
+
+ @Override
+ public void addInformation(ItemStack stack, EntityPlayer aPlayer, List list, boolean bool) {
+ list.add("");
+ list.add(EnumChatFormatting.GREEN+"Worn as a Belt within Baubles."+EnumChatFormatting.GRAY);
+ list.add(EnumChatFormatting.GREEN+"Drains 8196Eu/t to provide invisibility."+EnumChatFormatting.GRAY);
+ list.add("");
+ list.add(EnumChatFormatting.GOLD+"IC2/EU Information"+EnumChatFormatting.GRAY);
+ list.add(EnumChatFormatting.GRAY+"Tier: ["+EnumChatFormatting.YELLOW+getTier(thisStack)+EnumChatFormatting.GRAY+"] Transfer Limit: ["+EnumChatFormatting.YELLOW+getTransferLimit(thisStack)+EnumChatFormatting.GRAY +"Eu/t]");
+ list.add(EnumChatFormatting.GRAY+"Current Power: ["+EnumChatFormatting.YELLOW+(long) getCharge(stack)+EnumChatFormatting.GRAY+"Eu]");
+ list.add(EnumChatFormatting.GRAY+"Time Remaining: ["+EnumChatFormatting.YELLOW+secondsLeft(stack)+ EnumChatFormatting.GRAY +" seconds]");
+ super.addInformation(stack, aPlayer, list, bool);
+ }
+
+ /*@Override
+ public ItemStack getContainerItem(ItemStack itemStack)
+ {
+ ItemStack newItem = itemStack.copy();
+ newItem.stackSize = 1;
+ extractEnergy(newItem, 150000, false);
+ return newItem;
+ }*/
+
+ /*@Override
+ public boolean hasContainerItem(ItemStack stack)
+ {
+ return true;
+ }*/
+
+ /*@Override
+ public int getBurnTime(ItemStack fuel) {
+ if ((fuel == null) || (fuel.getItem() != this)) {
+ return 0;
+ }
+ return extractEnergy(fuel, 150000, true) / 50 / 100;
+ }*/
+
+ @Override
+ public double charge(ItemStack stack, double amount, int tier,
+ boolean ignoreTransferLimit, boolean simulate) {
+
+ if (!simulate)
+ {
+ ElectricItem.manager.charge(stack, amount, tier, true, simulate);
+
+ }
+ return ElectricItem.manager.charge(stack, amount, tier, true, simulate);
+ }
+
+ @Override
+ public double discharge(ItemStack stack, double amount, int tier,
+ boolean ignoreTransferLimit, boolean externally, boolean simulate) {
+ if (!simulate)
+ {
+ ElectricItem.manager.discharge(stack, amount, tier, ignoreTransferLimit, externally, simulate);
+ }
+
+ return ElectricItem.manager.discharge(stack, amount, tier, ignoreTransferLimit, externally, simulate);
+ }
+
+ @Override
+ public double getCharge(ItemStack stack) {
+ return ElectricItem.manager.getCharge(stack);
+ }
+
+ @Override
+ public boolean canUse(ItemStack stack, double amount) {
+ return ElectricItem.manager.canUse(stack, amount);
+ }
+
+ @Override
+ public boolean use(ItemStack stack, double amount, EntityLivingBase entity) {
+ return ElectricItem.manager.use(stack, amount, entity);
+ }
+
+ @Override
+ public void chargeFromArmor(ItemStack stack, EntityLivingBase entity) {
+ ElectricItem.manager.chargeFromArmor(stack, entity);
+ }
+
+ @Override
+ public String getToolTip(ItemStack stack) {
+ return ElectricItem.manager.getToolTip(stack);
+ }
+
+ @Override
+ public boolean canEquip(ItemStack arg0, EntityLivingBase arg1) {
+ return true;
+ }
+
+ @Override
+ public boolean canUnequip(ItemStack arg0, EntityLivingBase arg1) {
+ return true;
+ }
+
+ @Override
+ public BaubleType getBaubleType(ItemStack arg0) {
+ return BaubleType.BELT;
+ }
+
+ @Override //TODO
+ public void onEquipped(ItemStack arg0, EntityLivingBase arg1) {
+
+ }
+
+ @Override //TODO
+ public void onUnequipped(ItemStack arg0, EntityLivingBase arg1) {
+
+ }
+
+ @Override //TODO
+ public void onWornTick(ItemStack arg0, EntityLivingBase arg1) {
+ //Utils.LOG_INFO("Trying to Tick Belt. 1");
+ if (!arg1.worldObj.isRemote){
+ if (getCharge(arg0) >= 2048){
+ arg1.addPotionEffect(new PotionEffect(Potion.invisibility.id, 10, 2));
+ discharge(arg0, 2048, 5, true, true, false);
+ }
+ else {
+ if (arg1.isPotionActive((Potion.invisibility))){
+ arg1.removePotionEffect(Potion.invisibility.id);
+ }
+ }
+ }
+ }
+
+}
diff --git a/src/Java/miscutil/core/item/general/ItemHealingDevice.java b/src/Java/miscutil/core/item/general/ItemHealingDevice.java
new file mode 100644
index 0000000000..65c0dc2626
--- /dev/null
+++ b/src/Java/miscutil/core/item/general/ItemHealingDevice.java
@@ -0,0 +1,223 @@
+package miscutil.core.item.general;
+
+import ic2.api.item.ElectricItem;
+import ic2.api.item.IElectricItem;
+import ic2.api.item.IElectricItemManager;
+
+import java.util.List;
+
+import miscutil.core.creative.AddToCreativeTab;
+import miscutil.core.lib.CORE;
+import miscutil.core.util.item.UtilsItems;
+import miscutil.core.util.math.MathUtils;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
+import baubles.api.BaubleType;
+import baubles.api.IBauble;
+import cpw.mods.fml.common.registry.GameRegistry;
+
+public class ItemHealingDevice extends Item implements IElectricItem, IElectricItemManager, IBauble{
+
+ private final String unlocalizedName = "personalHealingDevice";
+ private final ItemStack thisStack;
+ private final static int maxValueEU = 100000000;
+ protected double chargeEU = 0;
+
+ public ItemHealingDevice(){
+ this.setCreativeTab(AddToCreativeTab.tabMachines);
+ this.setUnlocalizedName(unlocalizedName);
+ this.setMaxStackSize(1);
+ this.setTextureName(CORE.MODID + ":" + "personalCloakingDevice");
+ this.thisStack = UtilsItems.getSimpleStack(this);
+ GameRegistry.registerItem(this, unlocalizedName);
+ }
+
+ @Override
+ public void onUpdate(ItemStack itemStack, World worldObj, Entity player, int p_77663_4_, boolean p_77663_5_) {
+ if (worldObj.isRemote) {
+ return;
+ }
+
+ if (player instanceof EntityPlayer){
+ for (ItemStack is : ((EntityPlayer) player).inventory.mainInventory) {
+ if (is == itemStack) {
+ continue;
+ }
+ if (is != null) {
+ if (is.getItem() instanceof IElectricItem) {
+ IElectricItem electricItem = (IElectricItem) is.getItem();
+ chargeEU = ElectricItem.manager.getCharge(is);
+ }
+
+ }
+ }
+ }
+
+
+ super.onUpdate(itemStack, worldObj, player, p_77663_4_, p_77663_5_);
+ }
+
+ @Override
+ public boolean canProvideEnergy(ItemStack itemStack) {
+ return true;
+ }
+
+ @Override
+ public Item getChargedItem(ItemStack itemStack) {
+ ItemStack x = itemStack.copy();
+ x.setItemDamage(maxValueEU);
+ return x.getItem();
+ }
+
+ @Override
+ public Item getEmptyItem(ItemStack itemStack) {
+ ItemStack x = itemStack.copy();
+ x.setItemDamage(0);
+ return x.getItem();
+ }
+
+ @Override
+ public double getMaxCharge(ItemStack itemStack) {
+ return maxValueEU;
+ }
+
+ @Override
+ public int getTier(ItemStack itemStack) {
+ return 4;
+ }
+
+ @Override
+ public double getTransferLimit(ItemStack itemStack) {
+ return 8196;
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack p_77653_1_) {
+
+ return (EnumChatFormatting.WHITE+"Personal Healing NanoBooster"+EnumChatFormatting.GRAY);
+ }
+
+ @Override
+ public double getDurabilityForDisplay(ItemStack stack)
+ {
+ //return 1.0D - getEnergyStored(stack) / this.capacity;
+ return 1.0D - (double)getCharge(stack) / (double)getMaxCharge(stack);
+ }
+
+ @Override
+ public boolean showDurabilityBar(ItemStack stack)
+ {
+ return true;
+ }
+
+ public double secondsLeft(ItemStack stack){
+
+ double r = 0;
+ r = getCharge(stack)/(8196*20);
+ return MathUtils.decimalRounding(r);
+ }
+
+ @Override
+ public void addInformation(ItemStack stack, EntityPlayer aPlayer, List list, boolean bool) {
+ list.add("");
+ list.add(EnumChatFormatting.GREEN+"Worn as a Necklace within Baubles."+EnumChatFormatting.GRAY);
+ list.add(EnumChatFormatting.GREEN+"Drains 1638400eu to restore hunger."+EnumChatFormatting.GRAY);
+ list.add("");
+ list.add(EnumChatFormatting.GOLD+"IC2/EU Information"+EnumChatFormatting.GRAY);
+ list.add(EnumChatFormatting.GRAY+"Tier: ["+EnumChatFormatting.YELLOW+getTier(thisStack)+EnumChatFormatting.GRAY+"] Transfer Limit: ["+EnumChatFormatting.YELLOW+getTransferLimit(thisStack)+EnumChatFormatting.GRAY +"Eu/t]");
+ list.add(EnumChatFormatting.GRAY+"Current Power: ["+EnumChatFormatting.YELLOW+(long) getCharge(stack)+EnumChatFormatting.GRAY+"Eu]");
+ list.add(EnumChatFormatting.GRAY+"Uses Remaining: ["+EnumChatFormatting.YELLOW+secondsLeft(stack)+ EnumChatFormatting.GRAY +"]");
+ super.addInformation(stack, aPlayer, list, bool);
+ }
+
+ @Override
+ public double charge(ItemStack stack, double amount, int tier,
+ boolean ignoreTransferLimit, boolean simulate) {
+
+ if (!simulate)
+ {
+ ElectricItem.manager.charge(stack, amount, tier, true, simulate);
+
+ }
+ return ElectricItem.manager.charge(stack, amount, tier, true, simulate);
+ }
+
+ @Override
+ public double discharge(ItemStack stack, double amount, int tier,
+ boolean ignoreTransferLimit, boolean externally, boolean simulate) {
+ if (!simulate)
+ {
+ ElectricItem.manager.discharge(stack, amount, tier, ignoreTransferLimit, externally, simulate);
+ }
+
+ return ElectricItem.manager.discharge(stack, amount, tier, ignoreTransferLimit, externally, simulate);
+ }
+
+ @Override
+ public double getCharge(ItemStack stack) {
+ return ElectricItem.manager.getCharge(stack);
+ }
+
+ @Override
+ public boolean canUse(ItemStack stack, double amount) {
+ return ElectricItem.manager.canUse(stack, amount);
+ }
+
+ @Override
+ public boolean use(ItemStack stack, double amount, EntityLivingBase entity) {
+ return ElectricItem.manager.use(stack, amount, entity);
+ }
+
+ @Override
+ public void chargeFromArmor(ItemStack stack, EntityLivingBase entity) {
+ ElectricItem.manager.chargeFromArmor(stack, entity);
+ }
+
+ @Override
+ public String getToolTip(ItemStack stack) {
+ return ElectricItem.manager.getToolTip(stack);
+ }
+
+ @Override
+ public boolean canEquip(ItemStack arg0, EntityLivingBase arg1) {
+ return true;
+ }
+
+ @Override
+ public boolean canUnequip(ItemStack arg0, EntityLivingBase arg1) {
+ return true;
+ }
+
+ @Override
+ public BaubleType getBaubleType(ItemStack arg0) {
+ return BaubleType.AMULET;
+ }
+
+ @Override //TODO
+ public void onEquipped(ItemStack arg0, EntityLivingBase arg1) {
+
+ }
+
+ @Override //TODO
+ public void onUnequipped(ItemStack arg0, EntityLivingBase arg1) {
+
+ }
+
+ @Override //TODO
+ public void onWornTick(ItemStack arg0, EntityLivingBase arg1) {
+ if (!arg1.worldObj.isRemote){
+ if (getCharge(arg0) >= 1638400){
+ if (arg1.getHealth() < arg1.getMaxHealth()-2){
+ arg1.heal(2);
+ }
+ discharge(arg0, 1638400, 6, true, true, false);
+ }
+ }
+ }
+
+}
diff --git a/src/resources/assets/miscutils/textures/items/personalCloakingDevice.png b/src/resources/assets/miscutils/textures/items/personalCloakingDevice.png
new file mode 100644
index 0000000000..2d196cb9ed
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/personalCloakingDevice.png
Binary files differ