/** * Copyright (c) Lambda Innovation, 2013-2016 * This file is part of the AcademyCraft mod. * https://github.com/LambdaInnovation/AcademyCraft * Licensed under GPLv3, see project root for more information. */ package cn.academy.terminal.item; import cn.academy.core.item.ACItem; import cn.academy.terminal.TerminalData; import cn.academy.terminal.client.TerminalInstallEffect; import cn.academy.terminal.client.TerminalInstallerRenderer; import cn.lambdalib.annoreg.core.Registrant; import cn.lambdalib.annoreg.mc.RegItem; import cn.lambdalib.s11n.network.NetworkMessage; import cn.lambdalib.s11n.network.NetworkMessage.Listener; import cn.lambdalib.s11n.network.NetworkS11n.NetworkS11nType; import cn.lambdalib.util.client.auxgui.AuxGuiHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.world.World; /** * @author WeAthFolD */ @Registrant @NetworkS11nType public class ItemTerminalInstaller extends ACItem { @SideOnly(Side.CLIENT) @RegItem.Render public static TerminalInstallerRenderer renderer; public ItemTerminalInstaller() { super("terminal_installer"); this.bFull3D = true; this.maxStackSize = 1; } @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { TerminalData tData = TerminalData.get(player); if(tData.isTerminalInstalled()) { if(!world.isRemote) player.addChatMessage(new ChatComponentTranslation("ac.terminal.alrdy_installed")); } else { if(!world.isRemote) { if(!player.capabilities.isCreativeMode) stack.stackSize--; tData.install(); NetworkMessage.sendTo(player, NetworkMessage.staticCaller(ItemTerminalInstaller.class), "install"); } } return stack; } @SideOnly(Side.CLIENT) @Listener(channel="install", side=Side.CLIENT) private static void install() { AuxGuiHandler.register(new TerminalInstallEffect()); } }