Work on making wireless grid an RF item
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package refinedstorage.item;
|
package refinedstorage.item;
|
||||||
|
|
||||||
|
import cofh.api.energy.ItemEnergyContainer;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
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.TextComponentString;
|
||||||
import net.minecraft.util.text.translation.I18n;
|
import net.minecraft.util.text.translation.I18n;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import refinedstorage.RefinedStorage;
|
||||||
import refinedstorage.RefinedStorageBlocks;
|
import refinedstorage.RefinedStorageBlocks;
|
||||||
import refinedstorage.tile.TileController;
|
import refinedstorage.tile.TileController;
|
||||||
import refinedstorage.tile.grid.TileGrid;
|
import refinedstorage.tile.grid.TileGrid;
|
||||||
|
|
||||||
import java.util.List;
|
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_X = "ControllerX";
|
||||||
public static final String NBT_CONTROLLER_Y = "ControllerY";
|
public static final String NBT_CONTROLLER_Y = "ControllerY";
|
||||||
public static final String NBT_CONTROLLER_Z = "ControllerZ";
|
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 static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode";
|
||||||
|
|
||||||
public ItemWirelessGrid() {
|
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
|
@Override
|
||||||
@@ -120,4 +149,14 @@ public class ItemWirelessGrid extends ItemBase {
|
|||||||
public static boolean isValid(ItemStack stack) {
|
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);
|
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.inventory.setItemStack(took);
|
||||||
player.updateHeldItem();
|
player.updateHeldItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
controller.drainEnergyFromWirelessGrid(player, 300);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,8 +13,10 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
import refinedstorage.RefinedStorage;
|
import refinedstorage.RefinedStorage;
|
||||||
import refinedstorage.RefinedStorageBlocks;
|
import refinedstorage.RefinedStorageBlocks;
|
||||||
import refinedstorage.RefinedStorageGui;
|
import refinedstorage.RefinedStorageGui;
|
||||||
|
import refinedstorage.RefinedStorageItems;
|
||||||
import refinedstorage.block.BlockController;
|
import refinedstorage.block.BlockController;
|
||||||
import refinedstorage.block.EnumControllerType;
|
import refinedstorage.block.EnumControllerType;
|
||||||
|
import refinedstorage.item.ItemWirelessGrid;
|
||||||
import refinedstorage.storage.IStorage;
|
import refinedstorage.storage.IStorage;
|
||||||
import refinedstorage.storage.IStorageProvider;
|
import refinedstorage.storage.IStorageProvider;
|
||||||
import refinedstorage.storage.StorageItem;
|
import refinedstorage.storage.StorageItem;
|
||||||
@@ -271,8 +273,8 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
|||||||
|
|
||||||
public void onOpenWirelessGrid(EntityPlayer player, EnumHand hand) {
|
public void onOpenWirelessGrid(EntityPlayer player, EnumHand hand) {
|
||||||
wirelessGridConsumers.add(new WirelessGridConsumer(player, hand, player.getHeldItem(hand)));
|
wirelessGridConsumers.add(new WirelessGridConsumer(player, hand, player.getHeldItem(hand)));
|
||||||
|
|
||||||
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, worldObj, HandUtils.getIdFromHand(hand), 0, 0);
|
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, worldObj, HandUtils.getIdFromHand(hand), 0, 0);
|
||||||
|
drainEnergyFromWirelessGrid(player, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onCloseWirelessGrid(EntityPlayer player) {
|
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) {
|
public WirelessGridConsumer getWirelessGridConsumer(EntityPlayer player) {
|
||||||
Iterator<WirelessGridConsumer> it = wirelessGridConsumers.iterator();
|
Iterator<WirelessGridConsumer> it = wirelessGridConsumers.iterator();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user