Migration work on TR armor

This commit is contained in:
drcrazy 2019-02-20 23:12:36 +03:00
parent f08fd1da4d
commit 5bc08557b3
8 changed files with 204 additions and 192 deletions

View file

@ -24,11 +24,12 @@
package techreborn.items.armor;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.MobEffects;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.ArmorMaterial;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList;
@ -44,7 +45,6 @@ import reborncore.common.powerSystem.forge.ForgePowerItemManager;
import reborncore.common.registration.RebornRegister;
import reborncore.common.util.ItemUtils;
import techreborn.TechReborn;
import techreborn.api.Reference;
import techreborn.config.ConfigTechReborn;
import techreborn.init.TRContent;
@ -60,8 +60,9 @@ public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo
// 40M FE capacity with 10k FE\t charge rate
public ItemCloakingDevice() {
super(Reference.CLOAKING_ARMOR, EntityEquipmentSlot.CHEST);
setMaxStackSize(1);
//TODO: Update ArmorMaterial
super(ArmorMaterial.DIAMOND, EntityEquipmentSlot.CHEST);
//setMaxStackSize(1);
}
// Item
@ -72,32 +73,40 @@ public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo
}
@Override
public void onArmorTick(World world, EntityPlayer player, ItemStack stack) {
IEnergyStorage capEnergy = new ForgePowerItemManager(stack);
if (capEnergy != null && capEnergy.getEnergyStored() >= usage) {
capEnergy.extractEnergy(usage, false);
player.setInvisible(true);
} else {
if (!player.isPotionActive(MobEffects.INVISIBILITY)) {
player.setInvisible(false);
public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
if (entityIn instanceof EntityPlayer) {
IEnergyStorage capEnergy = new ForgePowerItemManager(stack);
if (capEnergy != null && capEnergy.getEnergyStored() >= usage) {
capEnergy.extractEnergy(usage, false);
// TODO: Optimize
((EntityPlayer) entityIn).setInvisible(true);
} else {
if (!((EntityPlayer) entityIn).isPotionActive(MobEffects.INVISIBILITY)) {
((EntityPlayer) entityIn).setInvisible(false);
}
}
}
}
public void onArmorTick(World world, EntityPlayer player, ItemStack stack) {
}
@OnlyIn(Dist.CLIENT)
@Override
public void getSubItems(CreativeTabs par2CreativeTabs, NonNullList<ItemStack> itemList) {
if (!isInCreativeTab(par2CreativeTabs)) {
public void fillItemGroup(ItemGroup group, NonNullList<ItemStack> items) {
if (!isInGroup(group)) {
return;
}
ItemStack uncharged = new ItemStack(TRContent.CLOAKING_DEVICE);
ItemStack charged = new ItemStack(TRContent.CLOAKING_DEVICE);
ForgePowerItemManager capEnergy = new ForgePowerItemManager(charged);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
itemList.add(uncharged);
// itemList.add(charged);
items.add(uncharged);
items.add(charged);
}
@Override
public double getDurabilityForDisplay(ItemStack stack) {
return 1 - ItemUtils.getPowerForDurabilityBar(stack);

View file

@ -24,11 +24,13 @@
package techreborn.items.armor;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.ArmorMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList;
@ -39,11 +41,8 @@ import net.minecraftforge.common.capabilities.ICapabilityProvider;
import reborncore.api.power.IEnergyItemInfo;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.powerSystem.PoweredItemContainerProvider;
import reborncore.common.powerSystem.forge.ForgePowerItemManager;
import reborncore.common.util.ItemUtils;
import techreborn.config.ConfigTechReborn;
import techreborn.init.TRContent;
import javax.annotation.Nullable;
public class ItemLapotronicOrbpack extends ItemArmor implements IEnergyItemInfo {
@ -53,28 +52,25 @@ public class ItemLapotronicOrbpack extends ItemArmor implements IEnergyItemInfo
public int transferLimit = 100_000;
public ItemLapotronicOrbpack() {
super(ItemArmor.ArmorMaterial.DIAMOND, 7, EntityEquipmentSlot.CHEST);
setMaxStackSize(1);
super(ArmorMaterial.DIAMOND, EntityEquipmentSlot.CHEST, (new Item.Builder()).group(ItemGroup.COMBAT));
//TODO: move to builder
//setMaxStackSize(1);
}
// Item
@OnlyIn(Dist.CLIENT)
@Override
public void getSubItems(CreativeTabs par2CreativeTabs, NonNullList<ItemStack> itemList) {
if (!isInCreativeTab(par2CreativeTabs)) {
return;
public void fillItemGroup(ItemGroup group, NonNullList<ItemStack> items) {
if (this.isInGroup(group)) {
items.add(new ItemStack(this));
}
ItemStack uncharged = new ItemStack(TRContent.LAPOTRONIC_ORBPACK);
ItemStack charged = new ItemStack(TRContent.LAPOTRONIC_ORBPACK);
ForgePowerItemManager capEnergy = new ForgePowerItemManager(charged);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
itemList.add(uncharged);
itemList.add(charged);
}
@Override
public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) {
ItemLithiumIonBatpack.distributePowerToInventory(world, player, itemStack, (int) transferLimit);
public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
if (entityIn instanceof EntityPlayer) {
ItemLithiumIonBatpack.distributePowerToInventory(worldIn, (EntityPlayer) entityIn, stack,
(int) transferLimit);
}
}
@Override

View file

@ -24,11 +24,13 @@
package techreborn.items.armor;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.ArmorMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList;
@ -54,8 +56,9 @@ public class ItemLithiumIonBatpack extends ItemArmor implements IEnergyItemInfo
public int transferLimit = 2_000;
public ItemLithiumIonBatpack() {
super(ItemArmor.ArmorMaterial.DIAMOND, 7, EntityEquipmentSlot.CHEST);
setMaxStackSize(1);
super(ArmorMaterial.DIAMOND, EntityEquipmentSlot.CHEST, (new Item.Builder()).group(ItemGroup.COMBAT));
//TODO: move to builder
//setMaxStackSize(1);
}
public static void distributePowerToInventory(World world, EntityPlayer player, ItemStack itemStack, int maxSend) {
@ -74,8 +77,10 @@ public class ItemLithiumIonBatpack extends ItemArmor implements IEnergyItemInfo
// Item
@Override
public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) {
distributePowerToInventory(world, player, itemStack, (int) transferLimit);
public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
if (entityIn instanceof EntityPlayer) {
distributePowerToInventory(worldIn, (EntityPlayer) entityIn, stack, (int) transferLimit);
}
}
@Override
@ -95,9 +100,7 @@ public class ItemLithiumIonBatpack extends ItemArmor implements IEnergyItemInfo
@Override
@Nullable
public ICapabilityProvider initCapabilities(ItemStack stack,
@Nullable
NBTTagCompound nbt) {
public ICapabilityProvider initCapabilities(ItemStack stack, @Nullable NBTTagCompound nbt) {
return new PoweredItemContainerProvider(stack);
}
@ -109,18 +112,18 @@ public class ItemLithiumIonBatpack extends ItemArmor implements IEnergyItemInfo
@OnlyIn(Dist.CLIENT)
@Override
public void getSubItems(CreativeTabs par2CreativeTabs, NonNullList<ItemStack> itemList) {
if (!isInCreativeTab(par2CreativeTabs)) {
public void fillItemGroup(ItemGroup group, NonNullList<ItemStack> items) {
if (!isInGroup(group)) {
return;
}
ItemStack uncharged = new ItemStack(TRContent.LITHIUM_ION_BATTERY);
ItemStack charged = new ItemStack(TRContent.LITHIUM_ION_BATTERY);
ForgePowerItemManager capEnergy = new ForgePowerItemManager(charged);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
itemList.add(uncharged);
// itemList.add(charged);
items.add(uncharged);
items.add(charged);
}
// IEnergyItemInfo
@Override
public int getCapacity() {

View file

@ -25,7 +25,10 @@
package techreborn.items.armor;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.ArmorMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import reborncore.common.util.ItemUtils;
import techreborn.events.TRRecipeHandler;
@ -42,23 +45,23 @@ public class ItemTRArmour extends ItemArmor {
}
public ItemTRArmour(ArmorMaterial material, EntityEquipmentSlot slot, String repairOreDict) {
super(material, material.getDamageReductionAmount(slot), slot);
super(material, slot, (new Item.Builder()).group(ItemGroup.COMBAT));
this.repairOreDict = repairOreDict;
if (slot == EntityEquipmentSlot.HEAD)
setTranslationKey(material.name().toLowerCase() + "Helmet");
//setTranslationKey(material.name().toLowerCase() + "Helmet");
if (slot == EntityEquipmentSlot.CHEST)
setTranslationKey(material.name().toLowerCase() + "Chestplate");
//setTranslationKey(material.name().toLowerCase() + "Chestplate");
if (slot == EntityEquipmentSlot.LEGS)
setTranslationKey(material.name().toLowerCase() + "Leggings");
//setTranslationKey(material.name().toLowerCase() + "Leggings");
if (slot == EntityEquipmentSlot.FEET)
setTranslationKey(material.name().toLowerCase() + "Boots");
//setTranslationKey(material.name().toLowerCase() + "Boots");
TRRecipeHandler.hideEntry(this);
}
@Override
public boolean getIsRepairable(ItemStack toRepair, ItemStack repair) {
if (toRepair.getItem() == this && !repairOreDict.isEmpty()) {
return ItemUtils.isInputEqual(repairOreDict, repair, false, false, true);
return ItemUtils.isInputEqual(repairOreDict, repair, false, true);
}
return super.getIsRepairable(toRepair, repair);
}