WeightAPI - единый апи для весовых инвентарей

WeightAPI - единый апи для весовых инвентарей 0.5.0

Нет прав для скачивания
1,159
38
544
RareScrap добавил(а) новый ресурс:

WeightAPI - единый апи для весовых инвентарей - API, позволяющий вам добавить в ваши инвентари поддержку веса

Вы хотите добавить в игру ограничение переносимых вещей, но хотите сделать это на свой лад? Хотите сами определять как должен рассчитываться вес итемов, свободное место, перегруз и т.д.? Хотите сами решать как перегруз должен влиять на гейплей? Возьмите контроль в свои руки с WeightAPI!

FAQ
Все что вам нужно - выбрасывать WeightChangedEvent при изменении содержимого вашего инвентаря. Вот так...

Узнать больше об этом ресурсе...
 
1,159
38
544
  • Like
Реакции: CMTV

Eifel

Модератор
1,623
78
608
То-есть моды, реализующие свой WeightProvider, будут несовместимы?
 
4,045
63
645
И всё-таки не очень понимаю логику... Никогда не видел модов тупо реализующих систему веса без какой-либо цели...
Я не даю предметам вес, если не хочу добавлять перегруз/замедление... Нафик мне вес без этого эффекта?
А если я хочу добавить перегруз, то значит у меня под это дело пишется своя система веса.
Сам написал, сам добавил...
Зачем мне для этого чужая библиотека?
 

Eifel

Модератор
1,623
78
608
Не хотел кстати сразу писать, но у меня такие же вопросы и не понимание как у оратора выше)
 

timaxa007

Модератор
5,831
409
672
Redstone Flux (RF - энергия), вроде как первоначально было придумано в Thermal Expansion, затем во всяких модах его API использовали для совместимости и универсальности, а вроде в новых версиях Forge это стало отдельное API.
Возможно сейчас эта система веса не кому не интересно и не нужна. Но вдруг кому-то будет лень писать свою систему веса и захочет добавить в свою сборку или типа того.
 
2,505
81
397
Что непонятного? 10 разных модов захотели систему веса. Без единого API они не будут работать связно. С единым API каждый мод задает вес своих (и возможно ванильных) предметов. И накладывают эффекты в зависимости от веса по собственному желанию. И все дружно работают.

Идея написать API для веса - это хорошо. Но само написанное API мне не нравится полностью. Также нет простейших юзкейсов.
 
1,159
38
544
То-есть моды, реализующие свой WeightProvider, будут несовместимы?
В игре может быть только один WeightProvider. Какая логика в том, чтобы иметь в сборке 2 и более систем веса? Однако если один мод добавляет замедление при перегрузе, а другой, скажем, увеличивает область агра мобов, то оба мода смогут работать в одной сборке.

Я не даю предметам вес, если не хочу добавлять перегруз/замедление... Нафик мне вес без этого эффекта?
Добавлять вес без эффекта замедление - бесмысленно, я не спорю. Дело в том, что твою систему веса нужно как-то сделать доступной для других модов. Скажем, добавил я в игру рюкзак и захотел при перегрузе сделать, например, 2% шанс потерять предмет (дырка там образовалась, или днище прорвало :D). В этом случае я просто использую текущую систему веса (т.е. твою) и не буду запариться что да как-там сделано. В добавок, твое замедление все так же будет работать.

А если я хочу добавить перегруз, то значит у меня под это дело пишется своя система веса.
Только если тебе нужна СВОЯ система веса. Ты можешь подписаться на эвент перегруза и не привязываться к конкретной системе веса. Вдруг игрок задумает ее сменить. Например, на систему которая рассчитывает вес исходя из показателя силы персонажа? (или на любую другу систему).

Сам написал, сам добавил...
Зачем мне для этого чужая библиотека?
Для того, чтобы не возникло ситуации, когда двое чуваков вроде тебя написали свои независимые системы веса. И для того, чтобы тем, кто пишет собственные инвентари, не нужно было поддерживать каждую конкретную систему веса.

Ну так для этого надо сначала НАПИСАТЬ свою систему веса, чтобы её добавляли в сборки, а не делать API.
Также нет простейших юзкейсов.
Каюсь. Готово, но еще не выложил. 1-2 дня и выложу. Пока довожу до ума.

Но само написанное API мне не нравится полностью
Ну так излагай чего не нравится. Будем до ума доводить.
 
2,505
81
397
Сначала мне нужно увидеть юзкейсы и простейшую реализацию. А потом уже напишу что не нравится и т.п.
 

Eifel

Модератор
1,623
78
608
В игре может быть только один WeightProvider. Какая логика в том, чтобы иметь в сборке 2 и более систем веса? Однако если один мод добавляет замедление при перегрузе, а другой, скажем, увеличивает область агра мобов, то оба мода смогут работать в одной сборке.
То-есть если я хочу реализовать свои расчеты веса, то нету никаких гарантий, что они будут применяться? Более того, какой-то другой мод зарегается и вообще все закрашится
 
1,159
38
544
1,159
38
544
То-есть если я хочу реализовать свои расчеты веса, то нету никаких гарантий
Тут уж автор сборки определяет что ему ближе.

Более того, какой-то другой мод зарегается первее и вообще все закрашится
Ну так зачем в сборке держать две системы веса?

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

Eifel

Модератор
1,623
78
608
Тут уж автор сборки определяет что ему ближе.
Сомнительно как-то, лично на мой взгляд. Выходит, что апи добавляет возможную несовместимость модов, которые будут его использовать. Думаю надо решить как-то эту проблему
 
1,159
38
544
Сомнительно как-то
Согласен. Чувствуется что-то неладное. Сам отделаться не могу от этого чувства.

Выходит, что апи добавляет возможную несовместимость модов, которые будут его использовать
Тут вся загвостка в том, что нет логического обоснования иметь в сборке несколько систем веса (ну или я не могу его сформулировать). Мне тоже не особо нравится идея крашить игру при попытке зарегать другую систему веса, но лучше идей у меня пока нет.

Думаю надо решить как-то эту проблему
Я вот проблему не особо вижу. Просто не нужно держать в сборке больше двух систем веса. Просто нужно учитывать, что автор сборки может заменить твою систему расчета на другую.
 

Eifel

Модератор
1,623
78
608
Систему веса он заменит, но не заменит моды, которые ему нужны именно оба в этой сборке, т.к. наверняка там есть другой контент, помимо системы веса и ему он нужен. Как идея - добавить какие-то приоритеты что ли, или же дать возможность тому, кто делает сборку, выбрать систему веса, которая будет использоваться, не удаляя тот или другой мод и сохраняя их совместимость(но отсюда могут пойти другие проблемы). Это так, на ходу придумал...
 
Последнее редактирование:
1,159
38
544
Систему веса он заменит, но не заменит моды, которые ему нужны именно оба в этой сборке, т.к. наверняка там есть другой контент, помимо системы веса и ему он нужен
Резонно. Как вариант - распространять системы веса отдельно от мода, но это неудобно.

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

Мне стоит немного подумать об этом.
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Вообще не пойму зачем это все.
Я бы просто сделал интерфейс с методом возвращающим вес, для расширения в своем предмете. Ну и простую регистрацию веса для ванильных предметов, чтобы не нужно было в классе расширять.
Ещё какой-то хандлер для увеличения максимально переносимого веса игроком.
Ну и событие при перегрузе.
Все, больше ничего не надо.
 
1,159
38
544
Я бы просто сделал интерфейс с методом возвращающим вес, для расширения в своем предмете
А что если вес стака с этим предметом не будет вычисляться по формуле вес предмета * размер стака. А вдруг вес одного и того же предмета в разных инвентарях будет различным? Сделаю я, скажем, "Чародейскую сумку фермера", где вес всей еды будет снижаться в 3 раза. Я это к тому, что не все так просто, как ты предлагаешь.

Ещё какой-то хандлер для увеличения максимально переносимого веса игроком.
Ну и событие при перегрузе.
Все, больше ничего не надо.
Поздравляю! Ты сделал свой собственный WeightAPI. Т.е. по факту все то, что ты сказал уже есть в апи. Моя штука вообще сделана как раз для того, чтобы позволить реализовывать любую систему веса через один набор классов. Чтобы с одной стороны все унифицировать и с другой - не уменьшать возможности применения.
 
Сверху