Work on making wireless grid an RF item
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package refinedstorage.item;
|
||||
|
||||
import cofh.api.energy.ItemEnergyContainer;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -13,13 +14,14 @@ import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.text.TextComponentString;
|
||||
import net.minecraft.util.text.translation.I18n;
|
||||
import net.minecraft.world.World;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.RefinedStorageBlocks;
|
||||
import refinedstorage.tile.TileController;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ItemWirelessGrid extends ItemBase {
|
||||
public class ItemWirelessGrid extends ItemEnergyContainer {
|
||||
public static final String NBT_CONTROLLER_X = "ControllerX";
|
||||
public static final String NBT_CONTROLLER_Y = "ControllerY";
|
||||
public static final String NBT_CONTROLLER_Z = "ControllerZ";
|
||||
@@ -28,9 +30,36 @@ public class ItemWirelessGrid extends ItemBase {
|
||||
public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode";
|
||||
|
||||
public ItemWirelessGrid() {
|
||||
super("wireless_grid");
|
||||
super(3200);
|
||||
|
||||
setMaxStackSize(1);
|
||||
setMaxDamage(3200);
|
||||
setHasSubtypes(false);
|
||||
setCreativeTab(RefinedStorage.TAB);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDamageable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRepairable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
return 1 - (getEnergyStored(stack) / getMaxEnergyStored(stack));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDamaged(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDamage(ItemStack stack, int damage) {
|
||||
// NO OP
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -120,4 +149,14 @@ public class ItemWirelessGrid extends ItemBase {
|
||||
public static boolean isValid(ItemStack stack) {
|
||||
return stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_CONTROLLER_X) && stack.getTagCompound().hasKey(NBT_CONTROLLER_Y) && stack.getTagCompound().hasKey(NBT_CONTROLLER_Z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName() {
|
||||
return "item." + RefinedStorage.ID + ":wireless_grid";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName(ItemStack stack) {
|
||||
return getUnlocalizedName();
|
||||
}
|
||||
}
|
||||
|
@@ -100,6 +100,8 @@ public class MessageStoragePull extends MessageHandlerPlayerToServer<MessageStor
|
||||
player.inventory.setItemStack(took);
|
||||
player.updateHeldItem();
|
||||
}
|
||||
|
||||
controller.drainEnergyFromWirelessGrid(player, 300);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -13,8 +13,10 @@ import net.minecraft.util.math.BlockPos;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.RefinedStorageBlocks;
|
||||
import refinedstorage.RefinedStorageGui;
|
||||
import refinedstorage.RefinedStorageItems;
|
||||
import refinedstorage.block.BlockController;
|
||||
import refinedstorage.block.EnumControllerType;
|
||||
import refinedstorage.item.ItemWirelessGrid;
|
||||
import refinedstorage.storage.IStorage;
|
||||
import refinedstorage.storage.IStorageProvider;
|
||||
import refinedstorage.storage.StorageItem;
|
||||
@@ -271,8 +273,8 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
||||
|
||||
public void onOpenWirelessGrid(EntityPlayer player, EnumHand hand) {
|
||||
wirelessGridConsumers.add(new WirelessGridConsumer(player, hand, player.getHeldItem(hand)));
|
||||
|
||||
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, worldObj, HandUtils.getIdFromHand(hand), 0, 0);
|
||||
drainEnergyFromWirelessGrid(player, 100);
|
||||
}
|
||||
|
||||
public void onCloseWirelessGrid(EntityPlayer player) {
|
||||
@@ -283,6 +285,22 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
||||
}
|
||||
}
|
||||
|
||||
public void drainEnergyFromWirelessGrid(EntityPlayer player, int energy) {
|
||||
WirelessGridConsumer consumer = getWirelessGridConsumer(player);
|
||||
|
||||
if (consumer != null) {
|
||||
ItemWirelessGrid item = RefinedStorageItems.WIRELESS_GRID;
|
||||
ItemStack held = consumer.getPlayer().getHeldItem(consumer.getHand());
|
||||
|
||||
item.extractEnergy(held, energy, false);
|
||||
|
||||
if (item.getEnergyStored(held) <= 0) {
|
||||
onCloseWirelessGrid(player);
|
||||
consumer.getPlayer().closeScreen();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public WirelessGridConsumer getWirelessGridConsumer(EntityPlayer player) {
|
||||
Iterator<WirelessGridConsumer> it = wirelessGridConsumers.iterator();
|
||||
|
||||
|
Reference in New Issue
Block a user