- Баллы
- 76
Можно подробнее про следующие моменты?
Пока писал, вскипел мозг. Я имею представление о мапах, но использовал пока только для хранения меты блоков по их координатам. Есть какие-нибудь источники, где можно больше узнать для реализации второго способа?
Кастомные крафты, по вашему методу, хранятся в конфигах?Перебираешь все кастомные крафты при старте сервера
А что это даст?Сортируешь все материалы крафта как-либо(по названию или Material#ordinal)
Тут я правильно понимаю, что в мапе будут храниться рецепты, с которыми потом будут сравниваться инвентари верстаков игроков?Сохраняешь это дело в какой-нибудь вид Map<Integer, List<LargeRecipe>> (List в случае коллизий). Можно ещё FastUtils воспользоваться, там есть мапа с ключами int.
Тут не могу понять. Т.е. взять верстак игрока и сделать хэш мапу с использованными айтемами? А затем сравнивать получившийся хэш с загруженной мапой?При крафте:
- Сортируешь все материалы крафта
- Получаешь общий хэш
Единственное, что пришло в голову. Так это то, что в загруженной и верстачной мапах используются хэши именно с относительным расположением айтемов: отступы игнорируются.Если shaped, проверяешь слоты на соответствие; в случае, если рецепт меньше 4х4, то не забудь про проверку с отступами
Пока писал, вскипел мозг. Я имею представление о мапах, но использовал пока только для хранения меты блоков по их координатам. Есть какие-нибудь источники, где можно больше узнать для реализации второго способа?