package mcjty.deepresonance.blocks.crystalizer; import mcjty.deepresonance.blocks.GenericDRBlock; import mcjty.deepresonance.client.ClientHandler; import mcjty.deepresonance.gui.GuiProxy; import mcjty.lib.container.GenericGuiContainer; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import org.lwjgl.input.Keyboard; import java.util.List; public class CrystalizerBlock extends GenericDRBlock<CrystalizerTileEntity, CrystalizerContainer> { public CrystalizerBlock() { super(Material.ROCK, CrystalizerTileEntity.class, CrystalizerContainer.class, "crystalizer", true); } @Override public boolean isHorizRotation() { return true; } @SideOnly(Side.CLIENT) @Override public Class<? extends GenericGuiContainer> getGuiClass() { return GuiCrystalizer.class; } @Override @SideOnly(Side.CLIENT) public void initModel() { ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(this), 0, new ModelResourceLocation(getRegistryName(), "inventory")); ClientRegistry.bindTileEntitySpecialRenderer(CrystalizerTileEntity.class, new CrystalizerTESR()); } @Override @SideOnly(Side.CLIENT) public List<String> getWailaBody(ItemStack itemStack, List<String> currentTip, IWailaDataAccessor accessor, IWailaConfigHandler config) { return currentTip; } @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack itemStack, EntityPlayer player, List<String> list, boolean advancedToolTip) { super.addInformation(itemStack, player, list, advancedToolTip); if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) { list.add("This machine will crystalize the liquid crystal"); list.add("from the tank below it and eventually produce a crystal"); } else { list.add(TextFormatting.WHITE + ClientHandler.getShiftMessage()); } } @Override public int getGuiID() { return GuiProxy.GUI_CRYSTALIZER; } @Override public boolean isFullCube(IBlockState state) { return false; } @Override public boolean isOpaqueCube(IBlockState state) { return false; } @Override public boolean canRenderInLayer(BlockRenderLayer layer) { return layer == BlockRenderLayer.SOLID || layer == BlockRenderLayer.TRANSLUCENT; } }