Skip to content

Руководство по интеграции 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-уровень.
    • Добавьте в свой репозиторий прототип image
    • Необходимо добавить CEZPhysicsComponent на все сущности, которые по вашему мнению должны перемещаться между z-уровнями посредством гравитации.
      • Не нужно добавлять этот компонент на ВСЕ сущности, так как это сильно нагружает сервер. Стены, например, могут спокойно обойтись и без z-физики, так как никогда не откручиваются.
      • Добавляйте на BaseItem, мобов, откручиваемые структуры.
    • Ключ анимации выносливости сделан публичным, чтобы анимация выносливости автоматически обновлялась под текущую высоту персонажа.

Вторичные фиксы

Если выше описаны минимальные изменения, которые нужно произвести чтобы просто запустить z-уровни в вашем репозитории. То, есть еще точно много мелких изменений в коде Wizden, которые фиксят отдельные не критичные проблемы.

  • Weather Stensil Overlay получал небольшие фиксы (фикс 1, фикс 2), чтобы включить пустые тайлы в проверку, нужно ли рисовать погоду, учитывая что над пустыми тайлами может быть крыша.
  • LandEvent имеет фикс, который убирает срабатывание ивента, если под сущностью нет пола. Отключает разбивание яиц в воздухе после броска. LandEvent вызывается вручную по приземлению после падения.
  • Для цикла дня и ночи и цикла теней был убран случайный стартовый сдвиг, чтобы синхронизировать освещение на всех уровнях. Тык 1
  • Отключен сброс поворота камеры при переходе между Z-уровнями.

Отслеживание изменений

Для удобства отслеживания PR-ов, редактирующих и улучшающих z-уровни, вы можете отфильтровать их по zLevels метке в репозитории:

Pull requests