Изменение позиции слотов в инвентаре

Здравствуйте, я бы хотел узнать как изменить позицию слотов в инвентаре, а именно: 1)Позицию слотов брони, 2)слотов для крафта и 3)слотов под предметы
image.png

Заранее спасибо, за оказанную помощь!)
 
Создать свой инветарь скопировав и изменив, контейнер и текстуру инвентаря, потом эвантом отлавливаешь открытия стандартного, и даёшь добро на открытие своего.
Подобный вопрос был.
 
Муторно же:D
По идее если это все отображается, то как то можно же изменить без полного переписывания ванильного инвентаря.
Очень это все смущает
 
В некоторых случаях, лучше так.
Можно и по другому, изменив ванильный контейнер инвентаря игрока.
 
Ну вот только что нашел его, хотел отписаться и тут уже ты меня "просветил". Но все равно спасибо)
 
Пили свой гуи(если слоты удалять не надо)и заменяй в евене GuiOpenEvent .там типо
if(event instanceof GuiPlayer){
//Maybe open there
}
 
У меня возник еще один вопросик)Где нужно изменить позицию контейнера, чтобы у меня не выбрасывало айтем/блок при клике по нему?
В ContainerPlayer подправил положение контейнеров, но из-за этого вылезла эта проблема.
 
net.minecraft.inventory -> ContainerPlayer и там уже все удаляешь что нужно

Если нужно добавить, то - this.addSlotToContainer(new Slot(par1InventoryPlayer,18, 18, 18));

18 ,18 ,18 это положение слота
 
BlesseNtumble, значит ты не работал тесселятором.
X и Y - располагаться в пространстве экрана, Z не видно его расположения, но он как-бы для пространства слоёв.
К примеру... Рисуется текстура какого-нибудь GUI на нём рисуются другие элементы: текст, 3D объекты ItemStack'а и т.п. Не правильно указал Z для какого-то слоя, то этот слой может оказаться за другим слоем.
 
Ага. Вот только зачастую при отрисовке GUI zTest вырубается нафиг и ваша эта позиция по Z ни на что не влияет, зато порядок отрисовки - очень даже.
Тем не менее, тимаха прав, и вроде есть определенные моменты, когда гуи рисуется с zTest-ом.
 
Координаты я там поменял первым делом, но у меня вылезла проблема с дропом предмета(когда кликаю в первые 2 слота, которые не входили в "рамки" моего нового инвентаря)
Код:
this.addSlotToContainer(new Slot(par1InventoryPlayer, var4, 8 + var4 * 18-40, 140));

Код, который я изменил.
Изменилось положение самого контейнера, как я понял, но изменение позиции для клика скорее всего должно меняться в другом месте, т.к. на старом месте ничего не дропается, даже если промахнуться по контейнерам(вправо, где была позиция до изменения)
 
Ilyha_Stach написал(а):
И что ты хочешь? Тебе подсказали что делать или ты хочешь что-бы за тебя всё сделали?
[merge_posts_bbcode]Добавлено: 01.02.2015 11:15:42[/merge_posts_bbcode]

Код:
//этот слот для результата крафта
        this.addSlotToContainer(new SlotCrafting(p_i1819_1_.player, this.craftMatrix, this.craftResult, 0, 144, 36));
//Это крафт стлоты
        for (i = 0; i < 2; ++i)
        {
            for (j = 0; j < 2; ++j)
            {
                this.addSlotToContainer(new Slot(this.craftMatrix, j + i * 2, 88 + j * 18, 26 + i * 18));
            }
        }
//Это слоты для брони
        for (i = 0; i < 4; ++i)
        {
            final int k = i;
            this.addSlotToContainer(new Slot(p_i1819_1_, p_i1819_1_.getSizeInventory() - 1 - i, 8, 8 + i * 18)
            {
                private static final String __OBFID = "CL_00001755";
                /**
                 * Returns the maximum stack size for a given slot (usually the same as getInventoryStackLimit(), but 1
                 * in the case of armor slots)
                 */
                public int getSlotStackLimit()
                {
                    return 1;
                }
                /**
                 * Check if the stack is a valid item for this slot. Always true beside for the armor slots.
                 */
                public boolean isItemValid(ItemStack p_75214_1_)
                {
                    if (p_75214_1_ == null) return false;
                    return p_75214_1_.getItem().isValidArmor(p_75214_1_, k, thePlayer);
                }
                /**
                 * Returns the icon index on items.png that is used as background image of the slot.
                 */
                @SideOnly(Side.CLIENT)
                public IIcon getBackgroundIconIndex()
                {
                    return ItemArmor.func_94602_b(k);
                }
            });
        }
//Это слоты инвентаря
        for (i = 0; i < 3; ++i)
        {
            for (j = 0; j < 9; ++j)
            {
                this.addSlotToContainer(new Slot(p_i1819_1_, j + (i + 1) * 9, 8 + j * 18, 84 + i * 18));
            }
        }
//слоты хотбара
        for (i = 0; i < 9; ++i)
        {
            this.addSlotToContainer(new Slot(p_i1819_1_, i, 8 + i * 18, 142));
        }
 
Назад
Сверху