Search in sources :

Example 11 with StorageScannerTileEntity

use of mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity in project RFTools by McJty.

the class StorageTerminalBlock method createClientGui.

@SideOnly(Side.CLIENT)
@Override
public GuiContainer createClientGui(EntityPlayer entityPlayer, TileEntity tileEntity) {
    if (!entityPlayer.isSneaking()) {
        ItemStack module = getModule(tileEntity);
        if (!module.isEmpty()) {
            int monitordim = RFToolsTools.getDimensionFromModule(module);
            BlockPos pos = RFToolsTools.getPositionFromModule(module);
            StorageScannerTileEntity te = new StorageScannerTileEntity(entityPlayer, monitordim) {

                @Override
                public BlockPos getCraftingGridContainerPos() {
                    // for this terminal itself.
                    return tileEntity.getPos();
                }

                @Override
                public CraftingGridProvider getCraftingGridProvider() {
                    return (CraftingGridProvider) tileEntity;
                }

                @Override
                public boolean isOpenWideView() {
                    TileEntity realTe = RFTools.proxy.getClientWorld().getTileEntity(pos);
                    if (realTe instanceof StorageScannerTileEntity) {
                        return ((StorageScannerTileEntity) realTe).isOpenWideView();
                    }
                    return true;
                }

                @Override
                public BlockPos getStorageScannerPos() {
                    return pos;
                }
            };
            // The position of the actual storage scanner is set on the dummy te
            te.setPos(pos);
            return new GuiStorageScanner(te, new StorageScannerContainer(entityPlayer, te, (CraftingGridProvider) tileEntity));
        }
    }
    return super.createClientGui(entityPlayer, tileEntity);
}
Also used : StorageScannerTileEntity(mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity) TileEntity(net.minecraft.tileentity.TileEntity) GuiStorageScanner(mcjty.rftools.blocks.storagemonitor.GuiStorageScanner) StorageScannerContainer(mcjty.rftools.blocks.storagemonitor.StorageScannerContainer) CraftingGridProvider(mcjty.rftools.craftinggrid.CraftingGridProvider) BlockPos(net.minecraft.util.math.BlockPos) ItemStack(net.minecraft.item.ItemStack) StorageScannerTileEntity(mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Example 12 with StorageScannerTileEntity

use of mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity in project RFTools by McJty.

the class GuiProxy method getClientGuiElement.

@Override
public Object getClientGuiElement(int guiid, EntityPlayer entityPlayer, World world, int x, int y, int z) {
    if (guiid == RFTools.GUI_MANUAL_MAIN) {
        return new GuiRFToolsManual(GuiRFToolsManual.MANUAL_MAIN);
    } else if (guiid == RFTools.GUI_MANUAL_SHAPE) {
        return new GuiRFToolsManual(GuiRFToolsManual.MANUAL_SHAPE);
    } else if (guiid == RFTools.GUI_TELEPORTPROBE) {
        return new GuiTeleportProbe();
    } else if (guiid == RFTools.GUI_ADVANCEDPORTER) {
        return new GuiAdvancedPorter();
    } else if (guiid == RFTools.GUI_LIST_BLOCKS) {
        return new GuiNetworkMonitor();
    } else if (guiid == RFTools.GUI_DEVELOPERS_DELIGHT) {
        return new GuiDevelopersDelight();
    } else if (guiid == RFTools.GUI_REMOTE_STORAGE_ITEM) {
        return new GuiModularStorage(new RemoteStorageItemContainer(entityPlayer));
    } else if (guiid == RFTools.GUI_REMOTE_STORAGESCANNER_ITEM) {
        ItemStack tablet = entityPlayer.getHeldItemMainhand();
        int monitordim = RFToolsTools.getDimensionFromModule(tablet);
        BlockPos pos = RFToolsTools.getPositionFromModule(tablet);
        StorageScannerTileEntity te = new StorageScannerTileEntity(entityPlayer, monitordim) {

            @Override
            public BlockPos getCraftingGridContainerPos() {
                // We are a handheld so we return a null pos for the craftinggrid
                return null;
            }

            @Override
            public boolean isOpenWideView() {
                TileEntity realTe = RFTools.proxy.getClientWorld().getTileEntity(pos);
                if (realTe instanceof StorageScannerTileEntity) {
                    return ((StorageScannerTileEntity) realTe).isOpenWideView();
                }
                return true;
            }

            @Override
            public BlockPos getStorageScannerPos() {
                return pos;
            }
        };
        // The position of the actual storage scanner is set on the dummy te
        te.setPos(pos);
        return new GuiStorageScanner(te, new StorageScannerContainer(entityPlayer, te));
    } else if (guiid == RFTools.GUI_MODULAR_STORAGE_ITEM) {
        return new GuiModularStorage(new ModularStorageItemContainer(entityPlayer));
    } else if (guiid == RFTools.GUI_STORAGE_FILTER) {
        return new GuiStorageFilter(new StorageFilterContainer(entityPlayer));
    } else if (guiid == RFTools.GUI_MODIFIER_MODULE) {
        return new GuiModifier(new ModifierContainer(entityPlayer));
    } else if (guiid == RFTools.GUI_SHAPECARD) {
        return new GuiShapeCard(false);
    } else if (guiid == RFTools.GUI_SHAPECARD_COMPOSER) {
        return new GuiShapeCard(true);
    } else if (guiid == RFTools.GUI_CHAMBER_DETAILS) {
        return new GuiChamberDetails();
    }
    // if (guiid == RFTools.GUI_LIST_BLOCKS) {
    // return new GuiNetworkMonitor();
    // } else if (guiid == RFTools.GUI_DEVELOPERS_DELIGHT) {
    // return new GuiDevelopersDelight();
    // } else if (guiid == RFTools.GUI_MANUAL_DIMENSION) {
    // return new GuiRFToolsManual(GuiRFToolsManual.MANUAL_DIMENSION);
    // }
    BlockPos pos = new BlockPos(x, y, z);
    Block block = world.getBlockState(pos).getBlock();
    if (block instanceof GenericBlock) {
        GenericBlock<?, ?> genericBlock = (GenericBlock<?, ?>) block;
        TileEntity te = world.getTileEntity(pos);
        return genericBlock.createClientGui(entityPlayer, te);
    }
    return null;
}
Also used : GuiModularStorage(mcjty.rftools.blocks.storage.GuiModularStorage) GuiStorageScanner(mcjty.rftools.blocks.storagemonitor.GuiStorageScanner) GuiAdvancedPorter(mcjty.rftools.items.teleportprobe.GuiAdvancedPorter) GuiModifier(mcjty.rftools.items.modifier.GuiModifier) GuiShapeCard(mcjty.rftools.items.builder.GuiShapeCard) ModularStorageItemContainer(mcjty.rftools.blocks.storage.ModularStorageItemContainer) GuiStorageFilter(mcjty.rftools.items.storage.GuiStorageFilter) StorageFilterContainer(mcjty.rftools.items.storage.StorageFilterContainer) GuiTeleportProbe(mcjty.rftools.items.teleportprobe.GuiTeleportProbe) RemoteStorageItemContainer(mcjty.rftools.blocks.storage.RemoteStorageItemContainer) GuiChamberDetails(mcjty.rftools.items.builder.GuiChamberDetails) StorageScannerTileEntity(mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity) TileEntity(net.minecraft.tileentity.TileEntity) GenericBlock(mcjty.lib.container.GenericBlock) GuiDevelopersDelight(mcjty.rftools.items.creativeonly.GuiDevelopersDelight) GuiNetworkMonitor(mcjty.rftools.items.netmonitor.GuiNetworkMonitor) StorageScannerContainer(mcjty.rftools.blocks.storagemonitor.StorageScannerContainer) GenericBlock(mcjty.lib.container.GenericBlock) Block(net.minecraft.block.Block) BlockPos(net.minecraft.util.math.BlockPos) GuiRFToolsManual(mcjty.rftools.items.manual.GuiRFToolsManual) ItemStack(net.minecraft.item.ItemStack) StorageScannerTileEntity(mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity) ModifierContainer(mcjty.rftools.items.modifier.ModifierContainer)

Example 13 with StorageScannerTileEntity

use of mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity in project RFTools by McJty.

the class GuiProxy method getServerGuiElement.

@Override
public Object getServerGuiElement(int guiid, EntityPlayer entityPlayer, World world, int x, int y, int z) {
    if (guiid == RFTools.GUI_MANUAL_MAIN || guiid == RFTools.GUI_MANUAL_SHAPE || guiid == RFTools.GUI_TELEPORTPROBE || guiid == RFTools.GUI_ADVANCEDPORTER || guiid == RFTools.GUI_SHAPECARD || guiid == RFTools.GUI_SHAPECARD_COMPOSER || guiid == RFTools.GUI_CHAMBER_DETAILS || guiid == RFTools.GUI_DEVELOPERS_DELIGHT || guiid == RFTools.GUI_LIST_BLOCKS) {
        return null;
    } else if (guiid == RFTools.GUI_REMOTE_STORAGE_ITEM) {
        return new RemoteStorageItemContainer(entityPlayer);
    } else if (guiid == RFTools.GUI_REMOTE_STORAGESCANNER_ITEM) {
        // We are in a tablet
        ItemStack tablet = entityPlayer.getHeldItemMainhand();
        int monitordim = RFToolsTools.getDimensionFromModule(tablet);
        BlockPos pos = RFToolsTools.getPositionFromModule(tablet);
        WorldServer w = DimensionManager.getWorld(monitordim);
        if (w == null) {
            return null;
        }
        TileEntity te = w.getTileEntity(pos);
        if (!(te instanceof StorageScannerTileEntity)) {
            return null;
        }
        return new StorageScannerContainer(entityPlayer, (IInventory) te);
    } else if (guiid == RFTools.GUI_MODULAR_STORAGE_ITEM) {
        return new ModularStorageItemContainer(entityPlayer);
    } else if (guiid == RFTools.GUI_STORAGE_FILTER) {
        return new StorageFilterContainer(entityPlayer);
    } else if (guiid == RFTools.GUI_MODIFIER_MODULE) {
        return new ModifierContainer(entityPlayer);
    }
    // if (guiid == RFTools.GUI_LIST_BLOCKS || guiid == RFTools.GUI_DEVELOPERS_DELIGHT ||
    // guiid == RFTools.GUI_MANUAL_DIMENSION || guiid == RFTools.GUI_CHAMBER_DETAILS || guiid == RFTools.GUI_SHAPECARD) {
    // return null;
    // }
    BlockPos pos = new BlockPos(x, y, z);
    Block block = world.getBlockState(pos).getBlock();
    if (block instanceof GenericBlock) {
        GenericBlock<?, ?> genericBlock = (GenericBlock<?, ?>) block;
        TileEntity te = world.getTileEntity(pos);
        return genericBlock.createServerContainer(entityPlayer, te);
    }
    return null;
}
Also used : WorldServer(net.minecraft.world.WorldServer) ModularStorageItemContainer(mcjty.rftools.blocks.storage.ModularStorageItemContainer) StorageFilterContainer(mcjty.rftools.items.storage.StorageFilterContainer) RemoteStorageItemContainer(mcjty.rftools.blocks.storage.RemoteStorageItemContainer) StorageScannerTileEntity(mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity) TileEntity(net.minecraft.tileentity.TileEntity) GenericBlock(mcjty.lib.container.GenericBlock) StorageScannerContainer(mcjty.rftools.blocks.storagemonitor.StorageScannerContainer) GenericBlock(mcjty.lib.container.GenericBlock) Block(net.minecraft.block.Block) BlockPos(net.minecraft.util.math.BlockPos) ItemStack(net.minecraft.item.ItemStack) StorageScannerTileEntity(mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity) ModifierContainer(mcjty.rftools.items.modifier.ModifierContainer)

Example 14 with StorageScannerTileEntity

use of mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity in project RFTools by McJty.

the class StorageControlModuleItem method onItemUse.

@Override
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
    ItemStack stack = player.getHeldItem(hand);
    TileEntity te = world.getTileEntity(pos);
    if (te instanceof StorageScannerTileEntity) {
        IBlockState state = world.getBlockState(pos);
        Block block = state.getBlock();
        String name = "<invalid>";
        if (block != null && !block.isAir(state, world, pos)) {
            name = BlockTools.getReadableName(world, pos);
        }
        RFToolsTools.setPositionInModule(stack, world.provider.getDimension(), pos, name);
        if (world.isRemote) {
            Logging.message(player, "Storage module is set to block '" + name + "'");
        }
    } else {
        RFToolsTools.clearPositionInModule(stack);
        if (world.isRemote) {
            Logging.message(player, "Storage module is cleared");
        }
    }
    return EnumActionResult.SUCCESS;
}
Also used : StorageScannerTileEntity(mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity) TileEntity(net.minecraft.tileentity.TileEntity) IBlockState(net.minecraft.block.state.IBlockState) Block(net.minecraft.block.Block) ItemStack(net.minecraft.item.ItemStack) StorageScannerTileEntity(mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity)

Example 15 with StorageScannerTileEntity

use of mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity in project RFTools by McJty.

the class DumpModuleItem method onItemUse.

@Override
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
    ItemStack stack = player.getHeldItem(hand);
    TileEntity te = world.getTileEntity(pos);
    if (te instanceof StorageScannerTileEntity) {
        IBlockState state = world.getBlockState(pos);
        Block block = state.getBlock();
        String name = "<invalid>";
        if (block != null && !block.isAir(state, world, pos)) {
            name = BlockTools.getReadableName(world, pos);
        }
        RFToolsTools.setPositionInModule(stack, world.provider.getDimension(), pos, name);
        if (world.isRemote) {
            Logging.message(player, "Storage module is set to block '" + name + "'");
        }
    } else {
        RFToolsTools.clearPositionInModule(stack);
        if (world.isRemote) {
            Logging.message(player, "Storage module is cleared");
        }
    }
    return EnumActionResult.SUCCESS;
}
Also used : StorageScannerTileEntity(mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity) TileEntity(net.minecraft.tileentity.TileEntity) IBlockState(net.minecraft.block.state.IBlockState) Block(net.minecraft.block.Block) ItemStack(net.minecraft.item.ItemStack) StorageScannerTileEntity(mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity)

Aggregations

StorageScannerTileEntity (mcjty.rftools.blocks.storagemonitor.StorageScannerTileEntity)15 ItemStack (net.minecraft.item.ItemStack)12 TileEntity (net.minecraft.tileentity.TileEntity)11 BlockPos (net.minecraft.util.math.BlockPos)9 WorldServer (net.minecraft.world.WorldServer)5 StorageScannerContainer (mcjty.rftools.blocks.storagemonitor.StorageScannerContainer)4 Block (net.minecraft.block.Block)4 TextComponentString (net.minecraft.util.text.TextComponentString)4 IBlockState (net.minecraft.block.state.IBlockState)3 GenericBlock (mcjty.lib.container.GenericBlock)2 LogicTileEntity (mcjty.rftools.blocks.logic.generic.LogicTileEntity)2 ModularStorageItemContainer (mcjty.rftools.blocks.storage.ModularStorageItemContainer)2 RemoteStorageItemContainer (mcjty.rftools.blocks.storage.RemoteStorageItemContainer)2 GuiStorageScanner (mcjty.rftools.blocks.storagemonitor.GuiStorageScanner)2 ModifierContainer (mcjty.rftools.items.modifier.ModifierContainer)2 StorageFilterContainer (mcjty.rftools.items.storage.StorageFilterContainer)2 SPacketUpdateTileEntity (net.minecraft.network.play.server.SPacketUpdateTileEntity)2 World (net.minecraft.world.World)2 Nonnull (javax.annotation.Nonnull)1 Nullable (javax.annotation.Nullable)1