Если вы собираетесь внести вклад в разработку Sector Frontier, обратитесь к руководству по Pull Request’ам от Wizard's Den — оно послужит хорошей отправной точкой по качеству кода и работе с ветками. Обратите внимание, что у нас нет разделения на master/stable ветки.
⚠️ Не используйте веб-редактор GitHub. Pull Request’ы, созданные через веб-редактор, могут быть закрыты без рассмотрения.
"Upstream" означает репозиторий space-wizards/space-station-14, из которого был сделан форк.
Всё, что вы создаёте с нуля (в отличие от изменений в существующем upstream-коде), должно размещаться в подкаталогах с префиксом _Lua.
Примеры:
Content.Server/_Lua/Shipyard/Systems/ShipyardSystem.csResources/Prototypes/_Lua/Loadouts/role_loadouts.ymlResources/Audio/_Lua/Voice/Goblin/goblin-scream-03.oggResources/Textures/_Lua/Tips/clippy.rsi/left.pngResources/Locale/en-US/_Lua/devices/pda.ftlResources/ServerInfo/_Lua/Guidebook/Medical/Doc.xml
Если вы вносите изменения в C#- или YAML-файлы из upstream, обязательно добавляйте комментарии около изменённых строк. Это поможет упростить разрешение конфликтов при будущих обновлениях.
Если вы изменяете значения, используйте формат комментария Lua: СТАРОЕ<НОВОЕ.
Для YAML:
- Если вы добавляете прототип или набор прототипов подряд — используйте блочные комментарии.
- Если изменяете отдельные поля прототипа — комментируйте каждое по отдельности.
Для C#:
- Если вы добавляете много кода, рассмотрите возможность вынесения в
partial class, когда это уместно. - Если портируете фичи из upstream, указывайте номер PR-а, из которого брали код.
⚠️ Fluent-файлы (.ftl) не поддерживают комментарии на одной строке с переводом — оставляйте комментарии строкой выше.
Изменение поля YAML:
- type: entity
id: TorsoHarpy
name: "harpy torso"
parent: [PartHarpy, BaseTorso] #Lua: добавлен BaseTorsoИзменение значения:
- type: Gun
fireRate: 4 #Lua: 3<4Добавление нового прототипа:
- type: ItemBorgModule
moduleId: Gardening #Lua
items:
- HydroponicsToolMiniHoe
- HydroponicsToolSpade
- HydroponicsToolClippers
# - Bucket #Lua
#Lua: добавлены выпадающие борг-компоненты
- type: DroppableBorgModule
moduleId: Gardening
items:
- id: Bucket
whitelist:
tags:
- Bucket
# End LuaДобавление using'а в C#:
using Content.Client._NF.Emp.Overlays; //LuaОбёртка над блоком нового кода:
component.Capacity = state.Capacity;
component.UIUpdateNeeded = true;
//Lua Start: синхронизация цвета подписи
if (TryComp<StampComponent>(uid, out var stamp))
{
stamp.StampedColor = state.Color;
}
//Lua EndИзменение строки в локализации:
#Lua: "Job Whitelists"<"Role Whitelists"
player-panel-job-whitelists = Role WhitelistsПо кораблям и POI читайте Ship Submission Guidelines на вики Frontier.
В общих чертах:
- Frontier использует специальные прототипы для POI и кораблей, содержащие информацию о спавне, цене и категориях.
- Для кораблей используйте
VesselPrototypeвResources/Prototypes/_Lua/Shipyard, для POI —PointOfInterestPrototype.
Если вы вносите изменения в существующую карту, согласуйте это с её мейнтейнером или автором. Избегайте одновременной работы нескольких людей над одной картой — это создаёт конфликты, которые сложно разрешить.
Перед отправкой проверьте diff на GitHub: убедитесь, что нет случайных изменений, лишних коммитов, пробелов или переносов строк.
Если PR висит давно, и в списке изменений есть RobustToolbox, нужно его откатить:
git checkout upstream/master RobustToolbox(замените upstream на имя вашего origin для HacksLua/sector-frontier)
Пока что все изменения идут в общий ченджлог Фронтира. Префикс ADMIN: пока не имеет эффекта.
Если вы новичок в разработке SS14:
- Посмотрите документацию SS14
Контент, созданный ИИ (код, спрайты и т.п.), запрещено добавлять в репозиторий.
Попытка отправить такой контент может привести к бану на участие в разработке.