@Override public boolean isItemValidForSlot(final int i, final ItemStack itemstack) { return !this.validators.containsKey(i) || this.validators.get(i).isValid(itemstack); }
@Override public String getName() { SlotValidator validator = getValidator(); if (validator != null) { return I18N.localise(ModId.CORE, "gui.slot.validated", validator.getTooltip()); } if (this.unlocLocation == null) { return ""; } return I18N.localise(this.unlocLocation); }
@Override @SideOnly(Side.CLIENT) public void onRenderBackground(int guiWidth, int guiHeight) { CraftGUI.RENDER.texture(CraftGUITexture.SLOT, Point.ZERO); final InventorySlot islot = this.getInventorySlot(); if (islot != null) { SlotValidator validator = islot.getValidator(); if (validator != null) { final TextureAtlasSprite icon = validator.getIcon(!islot.getInputSides().isEmpty()); if (icon != null && icon != Minecraft.getMinecraft().getTextureMapBlocks().getMissingSprite()) { GlStateManager.enableBlend(); RenderUtil.drawSprite(new Point(1, 1), icon); GlStateManager.disableBlend(); } } } }
@Override public void getHelpTooltip(final Tooltip tooltip, ITooltipFlag tooltipFlag) { final InventorySlot slot = this.getInventorySlot(); if (slot != null) { tooltip.add(slot.getName()); if (tooltipFlag.isAdvanced()) { Collection<EnumFacing> inputSides = slot.getInputSides(); if (inputSides.size() > 0) { tooltip.add(TextFormatting.GRAY + I18N.localise(ModId.CORE, "gui.side.insert", MachineSide.asString(inputSides))); } Collection<EnumFacing> outputSides = slot.getOutputSides(); if (outputSides.size() > 0) { tooltip.add(TextFormatting.GRAY + I18N.localise(ModId.CORE, "gui.side.extract", MachineSide.asString(outputSides))); } if (slot.isReadOnly()) { tooltip.add(TextFormatting.GRAY + I18N.localise(ModId.CORE, "gui.slot.pickup.only")); } } } else if (this.slot.inventory instanceof WindowInventory) { if (tooltipFlag.isAdvanced()) { final SlotValidator s = ((WindowInventory) this.slot.inventory).getValidator(this.slot.getSlotIndex()); tooltip.add("Accepts: " + ((s == null) ? "Any Item" : s.getTooltip())); } } else if (this.slot.inventory instanceof InventoryPlayer) { if (tooltipFlag.isAdvanced()) { tooltip.add(I18N.localise(ModId.CORE, "gui.slot.player.inventory")); } } }