类net.minecraft.inventory.ContainerEnchantment源码实例Demo

下面列出了怎么用net.minecraft.inventory.ContainerEnchantment的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: GregTech   文件: EnchantmentTableTweaks.java
private static void onContainerOpen(EntityPlayer player, Container container) {
    if (container instanceof ContainerEnchantment) {
        //wrap in try-catch because such kind of tweaks is subject to breaking
        //don't let it crash game if some mod borked it
        try {
            int index = getEnchantmentSlotIndex((ContainerEnchantment) container);
            if (index != -1) {
                Slot previousLapisSlot = container.inventorySlots.get(index);
                EnchantmentLapisSlot resultSlot = new EnchantmentLapisSlot(previousLapisSlot);
                resultSlot.slotNumber = previousLapisSlot.slotNumber;
                container.inventorySlots.set(index, resultSlot);
            }
        } catch (Throwable exception) {
            GTLog.logger.warn("Failed to replace enchantment container slot", exception);
        }
    }
}
 
源代码2 项目: GregTech   文件: EnchantmentTableTweaks.java
private static int getEnchantmentSlotIndex(ContainerEnchantment container) {
    IInventory inventory = container.tableInventory;
    for (int i = 0; i < container.inventorySlots.size(); i++) {
        Slot slot = container.inventorySlots.get(i);
        if (slot.isHere(inventory, EnchantmentLapisSlot.ENCHANTMENT_LAPIS_SLOT_INDEX)) return i;
    }
    return -1;
}