Руководство по интеграции Z-уровней¶
Система Z-уровней в CrystallEdge саблицензирована под MIT лицензию, и это руководство призвано помочь объяснить как интегрировать эту систему в другие проекты.
Минимальная рабочая настройка¶
- Скопируйте все содержимое
_CE/ZLevelsпапок вShared,ServerиClientчастях. - Найдите в клиенте
ScalingViewport, сделайте его partial и обновите рендеринг, по аналогии как это сделано в CE репозитории. - Почините все импорты, Убедитесь что ни в одном файле нет ошибок. Для этого придется добавить некоторые дополнительные поля в ванильные прототипы и компоненты.
CEPvsOverrideSystemиCEPvsOverrideComponentтак же саблицензированы под MIT и вы можете их себе портировать, либо заменить на стандартные_pvs.AddGlobalOverrideи_pvs.RemoveGlobalOverrideфункции.- Все ассеты, такие как прототипы акшенов, шейдеры - саблицензированы под CC свободную лицензию и вы можете скопировать их себе, либо сделать свои варианты.
- Шейдер размытия
- Прототип шейдера
- Прототипы акшенов для призраков
ContentTileDefinitionполучил поле Transparent, который нужно вручную проставить на true во все "прозрачные" тайлы в вашем проекте, включая стандартные тайлы космоса.CEZLevelGhostMoverComponentнеобходимо добавить на прототипы призраков и других летающих призрачных сущностей, чтобы те могли двигаться сквозь z-уровни.- Необходимо отредактировать
ParallaxOverlay, в методеBeforeDraw()добавив отключение рендеринга параллакса, если это не самый нижний видимый z-уровень. - Добавьте в свой репозиторий прототип
- Необходимо добавить
CEZPhysicsComponentна все сущности, которые по вашему мнению должны перемещаться между z-уровнями посредством гравитации.- Не нужно добавлять этот компонент на ВСЕ сущности, так как это сильно нагружает сервер. Стены, например, могут спокойно обойтись и без z-физики, так как никогда не откручиваются.
- Добавляйте на
BaseItem, мобов, откручиваемые структуры.
- Ключ анимации выносливости сделан публичным, чтобы анимация выносливости автоматически обновлялась под текущую высоту персонажа.
Вторичные фиксы¶
Если выше описаны минимальные изменения, которые нужно произвести чтобы просто запустить z-уровни в вашем репозитории. То, есть еще точно много мелких изменений в коде Wizden, которые фиксят отдельные не критичные проблемы.
Weather Stensil Overlayполучал небольшие фиксы (фикс 1, фикс 2), чтобы включить пустые тайлы в проверку, нужно ли рисовать погоду, учитывая что над пустыми тайлами может быть крыша.LandEventимеет фикс, который убирает срабатывание ивента, если под сущностью нет пола. Отключает разбивание яиц в воздухе после броска.LandEventвызывается вручную по приземлению после падения.- Для цикла дня и ночи и цикла теней был убран случайный стартовый сдвиг, чтобы синхронизировать освещение на всех уровнях. Тык 1
- Отключен сброс поворота камеры при переходе между Z-уровнями.
Отслеживание изменений¶
Для удобства отслеживания PR-ов, редактирующих и улучшающих z-уровни, вы можете отфильтровать их по zLevels метке в репозитории: