Создание кастомного инвентаря игрока

Создание кастомного инвентаря игрока

Нет прав для скачивания

Eifel

Модератор
1,623
78
608
Thunder добавил(а) новый ресурс:

Создание своего инвентаря игрока - Кратко о том, как создать свой инвентарь игрока

Привет.

По просьбе решил написать простой туториал о создании кастомного инвентаря игрока. Прочитав данную статью, я решил сделать свой инвентарь но с многими изменениями и под новую версию майна.

Туториал предполагает что вы знакомы с использованием прокси и умеете общаться с CAP`ой на уровне жестов(если не умеете то будем учить), а...

Узнать больше об этом ресурсе...
 
  • Like
Реакции: CMTV
2,505
81
397
1. Код местами плывет, какие-то лишние пустые строки (не красиво), наличие мест без пробелов, есть слишком длинные строки (не красиво). Я почему-то думал, ты умеешь оформлять код. Серьезно, если тяжело сразу писать нормально, используй форматтер в IDE.
2. Скопипащенный с ванили код тоже не красивый.
3. Не читал исходный гайд, но интерфейс ICAPCustomInventory мне не нравится. Тем самым ты обернул зачем-то инвентарь. Можно же просто IInventory использовать или, если угодно, создать свой интерфейс, унаследовав его от IInventory. Тогда в классе CAPCustomInventory тоже пропадет необходимость. Его заменит созданный до этого CustomInventory.
4. Для новичков, конечно, этот способ создания кастомного инвентаря пойдет, но если делать для себя (нормально), то лучше так не делать.
 

Icosider

Kotliner
Администратор
3,600
99
663
"this.addSlotToContainer(new Slot(playerInventory, 36 + (3 - k), 8, 8 + k * 18)" -> закрыл статью
 

Eifel

Модератор
1,623
78
608
Подправил код, исправил некоторые ошибки в комментариях и в коде
 

CMTV

Основатель
Администратор
1,304
4
601
Хороший кандидат на первый супер-гайд.

Критерии "Супер-гайд 2017":
Наличие иконки, которая соответствует тематике гайда :mc_351-10:​
Иконку я прикрепил еще до начала конкурса​
Адекватный заголовок и описание :mc_351-10:
Заголовок и описание соответствуют гайду​
Архив с рабочими исходниками :mc_351-10:​
Все исходники есть. Minecraft запускается. Инвентарь работает.​
Минимальный размер гайда: не меньше 3000 символов :mc_351-10:​
В гайде 30 000+ символов. Отлично!​
Текст гайда не должен быть разрезан и запрятан в спойлеры :mc_351-10:
Отлично. Большие куски кода спрятаны в спойлеры, а маленькие - нет. Текст гайда виден.​
Код гайда должен быть с поясняющими комментариями. Чем больше, тем лучше, но не переборщите :mc_351-10:
Подробные комментарии к коду имеются​
Итого: :mc_351-10::mc_351-10::mc_351-10::mc_351-10::mc_351-10::mc_351-10: (6/6) Зачет

Советы "Супер-гайд 2017":
Объясняйте подробно, но просто. Что может вызвать трудности у читающего? Что вызывало трудности лично у вас? :mc_351-1:
В целом неплохо, но лично у меня возникла пару вопросов.​
0. В самом начале гайда ты не поясняешь, чем именно будет отличаться кастомный инвентарь от старого и на какую кнопку его можно будет вызывать. Да, картинка есть, но поясняющих парочки предложений нет. Не айс! Получается, что люди не понимают, что они будут делать. Так делать нельзя!
1. В классе ContainerCustomInv.java рассказывается, как добавить 8 кастомных слотов и даже поясняются аргументы. Но я не понимаю, какого размера сами слоты? И за какую точку слота отвечают координаты x и y. Из центра? С правого верхнего края слота?​
Нужно пояснение. Желательно - с картинкой, где красным нарисован прямоугольник, а каким-нибудь другим цветом обозначена точка, которую мы передаем в параметрах.​
2. Класс CAPCustomInventoryProvider.java вообще не содержит комментариев. Ну и да ладно, ведь там вызываются методы класса CAPCustomInventoryStorage.java. Но о том, что в CAPCustomInventoryProvider.java мы просто вызываем методы CAPCustomInventoryStorage.java не написано в списке:​
Thunder написал(а):
  1. CAPCustomInventoryProvider.java - в нем располагаются методы для доступа к КАПе а так проводится вызов методов чтения и сохранения (десериализации и сериализации).
3. Как можно добавить силуэты предметов к слотам? Дорисовывать их в картинке GUI? Или каким-то другим образом? Пару слов об этом. Если надо дорисовывать в картинке, то лучше измени GUI из примера и добавь силуэты каких-нибудь предметов.​
4. Как можно запретить класть какие-то предметы блоки в слот и как разрешить? С примером.​
5. (По желанию) Как отменять открытие стандартного инвентаря и грузить вместо него свой кастомный?​
Чем больше поясняющих и демонстрационных картинок, тем лучше. Есть видео? Еще лучше! :mc_351-14:​
Картинки есть, но они спрятаны в спойлеры. Зачем? Лучше без спойлеров. Первая картинка действительно очень большая. Лучше ее уменьшить и убрать из спойлера. Остальные просто убрать из спойлера.​
Как я уже написал выше, не хватает картинки с пояснением размеров слота и точки, за которую отвечают координаты x и y.​
Гайд написан хорошо, если его может понять даже нубас :mc_351-14:​
В данном случае нубас это я. Большую часть я понял. Особенно порадовало, что ты рассказал, как взаимодействовать из кода с кастомным инвентарем.​
Станет зеленым, если будут исправлены ошибки выше.​
Итого: :mc_351-1::mc_351-14::mc_351-14: (1/3) Незачет. Исправь хотя бы часть из этих трех пунктов. А лучше все. Это не долго.

Теперь по поводу опасности/применимости/полезности кода. @Dahaka выше писал парочку замечаний. Они были учтены?

Прошу @Dahaka, @Ivasik и других пользователей (в том числе и @Thunder), разбирающихся в теме, высказать свое мнение по поводу:
  • Применим ли код в реальных модах в том смысле, что не сломает ли он другие моды?
  • Нет ли каких-то серьезных нарушений в плане реализации и т.д.
 
Последнее редактирование:
2,505
81
397
Любой кастомный инвентарь ломает совместимость. Этот - 100%. Чтобы совместимость более-менее держалась, нужно делать переход в свой контейнер по кнопке.
 

CMTV

Основатель
Администратор
1,304
4
601
Добавление к "Дополнительно":
Как можно запретить класть какие-то предметы блоки в слот и как разрешить?
 

CMTV

Основатель
Администратор
1,304
4
601
Любой кастомный инвентарь ломает совместимость. Этот - 100%. Чтобы совместимость более-менее держалась, нужно делать переход в свой контейнер по кнопке.
Этот инвентарь открывается по кнопке H. Более менее норм?
 

Eifel

Модератор
1,623
78
608
Я понял все и в течении недели постараюсь исправить и дополнить.

Насчет совместимости, то я не вижу проблем. Инвентарь открывается по кнопке. Кнопку можно изменить в настройках на любую другую если какой-то мод так же использует эту кнопку. Ванильный инвентарь при таком раскладе не страдает и поддерживается совместимость с другими модами.
 

CMTV

Основатель
Администратор
1,304
4
601
А ок. Вообще я думал можно за сегодня все решить (там копейки ведь), но хозяин гайда барин :)
 

Eifel

Модератор
1,623
78
608
Сегодня критически не хватает времени) Сессия и прочие дела, как только освобожусь, так сразу)
 

CMTV

Основатель
Администратор
1,304
4
601
Нет проблем. Удачно сдать сессию! Как сделаешь правки, отпишись. Я тогда все правки помещу в то сообщение выше с оценками.
 
2,505
81
397
А, получается, это не изменение ванильного инвентаря, а просто открытие своего? Я просто очень бегло прочитал :0
 
1,470
19
189
Да, это отдельный контейнер
 

CMTV

Основатель
Администратор
1,304
4
601
Обновил свое сообщение с замечаниями. Это финальный вариант. Если замечания будут исправлены и эксперты не будут против, то не вижу причин не пометить данный гайд как супер-гайд и не добавить его в учебник.

Читается приятно. Рассказывается что будет, если не писать такой-то код. Сам код с комментариями. Очень хорошо.
 
Последнее редактирование:
Сверху