Naykus

+55 414
с 2018
24 подписчика
58 подписок

Похоже на проклятые земли. Предположу что намеренно

тож балуюсь

Ключевые архитектурные решения и этапы, которые были реализованы:

1. Унификация данных через ItemContainer
Единый класс ItemContainer (RefCounted), который поддерживает два режима адресации:
Grid (Vector2i): Для инвентаря и сташа.
Named (String ID): Для экипировки (слоты "helmet", "main_hand" и т.д.).

2. Выделение Drag&Drop в отдельный сервис

Проблема: Логика перетаскивания была размазана по Inventory, Stash и CharacterScreen, создавая циклические зависимости.
Решение: Создан ItemDragAndDropManager.
Эффект: UI-классы стали чистыми View-компонентами. Они только сообщают менеджеру «меня начали тянуть» или «надо мной отпустили», а менеджер сам ищет цель (через мета-данные слотов) и вызывает container.transfer_to().

3. Реактивная архитектура UI

EquipmentSlot перестал хранить предметы. Теперь это чистый View, который подписывается на сигнал slot_changed контейнера и обновляет текстуру.
CharacterScreen больше не считает статы инкрементально (+= / -=). Полный пересчет бонусов происходит по сигналу inventory_changed, что исключает рассинхронизацию.
Манекен полностью перерисовывается при любом изменении экипировки, гарантируя визуальную целостность.

4. Централизация тултипов и ховера

GlobalHoverOverlay стал единой точкой правды для подсветки слотов.
ItemTooltip интегрирован прямо в оверлей. Он автоматически считывает мету item_container из любого слота (включая расширенный инвентарь) и показывает информацию. UI-классы вообще не знают о существовании тултипа.

Итоговый стек системы:

Data Layer: ItemContainer (хранение, трансфер, сейвы).
Logic Layer: ItemDragAndDropManager (перетаскивание), CharacterScreen (пересчет статов).
View Layer: Inventory, Stash, EquipmentSlot (чистый UI, делегирование ввода).
Feedback Layer: GlobalHoverOverlay + ItemTooltip (подсветка и инфо).

1

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

я как то нашел топовый сайт, который отслеживал (в отличие от ютуба) какие видео пропали из плейлиста. Смотрю - а он уже платненький лол

6
1

он существовал во времена, когда 99% игр было линейными. Сейчас же никого не удивишь концепцией "иди куда хочешь и делай что хочешь каким угодно способом", потому что в этом вся суть игр в открытом мире.

1

свечи проверял?

1

жаль Йеллоустон слился в хуйню потому что ГГ захотел снять свой Йеллоустоун, с блэкджеком и шлюхами и графики не совпали

1