Mod metadata, load screens and mod content is all now sourced from ftl files, allowing these items to be translated. Translations are now initialized as part of ModData creation, as currently they are made available too late for the usage we need here. The "modcontent" mod learns a new parameter for "Content.TranslationFile" - this allows a mod to provide the path of a translation file to the mod which it can load. This allows mods such as ra, cnc, d2k, ts to own the translations for their ModContent, yet still make them accessible to the modcontent mod. CheckFluentReference learns to validate all these new fields to ensure translations have been set.
355 lines
8.4 KiB
YAML
355 lines
8.4 KiB
YAML
Metadata:
|
|
Title: mod-title
|
|
Version: {DEV_VERSION}
|
|
Website: https://www.openra.net
|
|
WebIcon32: https://www.openra.net/images/icons/ts_32x32.png
|
|
WindowTitle: mod-windowtitle
|
|
|
|
PackageFormats: Mix
|
|
|
|
FileSystem: DefaultFileSystem
|
|
Packages:
|
|
~^SupportDir|Content/ts
|
|
~^SupportDir|Content/ts/firestorm
|
|
^EngineDir
|
|
$ts: ts
|
|
^EngineDir|mods/common: common
|
|
|
|
# Tiberian Sun
|
|
~scores.mix
|
|
~sidenc01.mix
|
|
~sidenc02.mix
|
|
~e01scd01.mix
|
|
~e01scd02.mix
|
|
~movies01.mix
|
|
~movies02.mix
|
|
~sidecd01.mix
|
|
~sidecd02.mix
|
|
~cache.mix
|
|
~conquer.mix
|
|
~isosnow.mix
|
|
~isotemp.mix
|
|
~local.mix
|
|
~sidec01.mix: sidebar-gdi
|
|
~sidec02.mix: sidebar-nod
|
|
~sno.mix
|
|
~snow.mix
|
|
~sounds.mix
|
|
~speech01.mix: speech-gdi
|
|
~speech02.mix: speech-nod
|
|
~tem.mix
|
|
~temperat.mix
|
|
# Firestorm
|
|
~scores01.mix
|
|
~expand01.mix
|
|
~sounds01.mix
|
|
~e01sc01.mix
|
|
~e01sc02.mix
|
|
~e01vox01.mix
|
|
~e01vox02.mix
|
|
~ecache01.mix
|
|
ts|bits
|
|
ts|uibits
|
|
|
|
MapFolders:
|
|
ts|maps: System
|
|
~^SupportDir|maps/ts/{DEV_VERSION}: User
|
|
|
|
Rules:
|
|
ts|rules/ai.yaml
|
|
ts|rules/misc.yaml
|
|
ts|rules/player.yaml
|
|
ts|rules/world.yaml
|
|
ts|rules/palettes.yaml
|
|
ts|rules/defaults.yaml
|
|
ts|rules/aircraft.yaml
|
|
ts|rules/husks.yaml
|
|
ts|rules/civilian-infantry.yaml
|
|
ts|rules/critters.yaml
|
|
ts|rules/civilian-structures.yaml
|
|
ts|rules/civilian-vehicles.yaml
|
|
ts|rules/gdi-infantry.yaml
|
|
ts|rules/gdi-structures.yaml
|
|
ts|rules/gdi-support.yaml
|
|
ts|rules/gdi-vehicles.yaml
|
|
ts|rules/nod-infantry.yaml
|
|
ts|rules/nod-structures.yaml
|
|
ts|rules/nod-support.yaml
|
|
ts|rules/nod-vehicles.yaml
|
|
ts|rules/shared-infantry.yaml
|
|
ts|rules/shared-structures.yaml
|
|
ts|rules/shared-support.yaml
|
|
ts|rules/shared-vehicles.yaml
|
|
ts|rules/trees.yaml
|
|
ts|rules/bridges.yaml
|
|
|
|
Weapons:
|
|
ts|weapons/ballisticweapons.yaml
|
|
ts|weapons/energyweapons.yaml
|
|
ts|weapons/explosions.yaml
|
|
ts|weapons/healweapons.yaml
|
|
ts|weapons/missiles.yaml
|
|
ts|weapons/otherweapons.yaml
|
|
ts|weapons/smallguns.yaml
|
|
ts|weapons/superweapons.yaml
|
|
|
|
Sequences:
|
|
ts|sequences/aircraft.yaml
|
|
ts|sequences/infantry.yaml
|
|
ts|sequences/misc.yaml
|
|
ts|sequences/civilian.yaml
|
|
ts|sequences/structures.yaml
|
|
ts|sequences/vehicles.yaml
|
|
ts|sequences/trees.yaml
|
|
ts|sequences/bridges.yaml
|
|
ts|sequences/critters.yaml
|
|
|
|
ModelSequences:
|
|
ts|sequences/voxels.yaml
|
|
|
|
TileSets:
|
|
ts|tilesets/temperate.yaml
|
|
ts|tilesets/snow.yaml
|
|
|
|
MapGrid:
|
|
TileSize: 48,24
|
|
EnableDepthBuffer: True
|
|
Type: RectangularIsometric
|
|
MaximumTerrainHeight: 16
|
|
SubCellOffsets: 0,0,0, -362,0,0, 0,362,0, 362,0,0
|
|
DefaultSubCell: 2
|
|
|
|
Cursors:
|
|
ts|cursors.yaml
|
|
|
|
Chrome:
|
|
ts|chrome.yaml
|
|
|
|
Assemblies: OpenRA.Mods.Common.dll, OpenRA.Mods.Cnc.dll
|
|
|
|
ChromeLayout:
|
|
common|chrome/ingame.yaml
|
|
common|chrome/ingame-chat.yaml
|
|
ts|chrome/ingame-transients.yaml
|
|
common|chrome/ingame-fmvplayer.yaml
|
|
common|chrome/ingame-menu.yaml
|
|
common|chrome/ingame-info.yaml
|
|
common|chrome/ingame-infoscripterror.yaml
|
|
common|chrome/ingame-infobriefing.yaml
|
|
common|chrome/ingame-infoobjectives.yaml
|
|
common|chrome/ingame-infostats.yaml
|
|
common|chrome/ingame-info-lobby-options.yaml
|
|
ts|chrome/ingame-observer.yaml
|
|
ts|chrome/ingame-player.yaml
|
|
common|chrome/ingame-perf.yaml
|
|
ts|chrome/ingame-debug.yaml
|
|
common|chrome/ingame-debug-hpf.yaml
|
|
common|chrome/ingame-debuginfo.yaml
|
|
common|chrome/ingame-infochat.yaml
|
|
common|chrome/mainmenu.yaml
|
|
common|chrome/mainmenu-prompts.yaml
|
|
ts|chrome/mainmenu-prerelease-notification.yaml
|
|
common|chrome/settings.yaml
|
|
common|chrome/settings-display.yaml
|
|
common|chrome/settings-audio.yaml
|
|
common|chrome/settings-input.yaml
|
|
ts|chrome/settings-hotkeys.yaml
|
|
common|chrome/settings-advanced.yaml
|
|
common|chrome/credits.yaml
|
|
common|chrome/lobby.yaml
|
|
common|chrome/lobby-mappreview.yaml
|
|
common|chrome/lobby-players.yaml
|
|
common|chrome/lobby-options.yaml
|
|
common|chrome/lobby-music.yaml
|
|
common|chrome/lobby-servers.yaml
|
|
common|chrome/lobby-kickdialogs.yaml
|
|
common|chrome/playerprofile.yaml
|
|
ts|chrome/color-picker.yaml
|
|
common|chrome/map-chooser.yaml
|
|
common|chrome/multiplayer-browser.yaml
|
|
common|chrome/multiplayer-browserpanels.yaml
|
|
common|chrome/multiplayer-createserver.yaml
|
|
common|chrome/multiplayer-directconnect.yaml
|
|
common|chrome/connection.yaml
|
|
common|chrome/replaybrowser.yaml
|
|
common|chrome/gamesave-browser.yaml
|
|
common|chrome/gamesave-loading.yaml
|
|
ts|chrome/dropdowns.yaml
|
|
common|chrome/musicplayer.yaml
|
|
common|chrome/tooltips.yaml
|
|
ts|chrome/assetbrowser.yaml
|
|
common|chrome/missionbrowser.yaml
|
|
common|chrome/confirmation-dialogs.yaml
|
|
common|chrome/editor.yaml
|
|
common|chrome/text-notifications.yaml
|
|
|
|
Translations:
|
|
common|languages/en.ftl
|
|
common|languages/chrome/en.ftl
|
|
common|languages/rules/en.ftl
|
|
ts|languages/en.ftl
|
|
ts|languages/chrome/en.ftl
|
|
ts|languages/rules/en.ftl
|
|
|
|
AllowUnusedTranslationsInExternalPackages: false
|
|
|
|
Voices:
|
|
ts|audio/voices.yaml
|
|
|
|
Notifications:
|
|
ts|audio/speech-generic.yaml
|
|
ts|audio/speech-singleplayer.yaml
|
|
ts|audio/sounds-generic.yaml
|
|
|
|
Music:
|
|
ts|audio/music.yaml
|
|
|
|
Hotkeys:
|
|
common|hotkeys/game.yaml
|
|
common|hotkeys/observer.yaml
|
|
common|hotkeys/production-common.yaml
|
|
common|hotkeys/supportpowers.yaml
|
|
common|hotkeys/viewport.yaml
|
|
common|hotkeys/chat.yaml
|
|
common|hotkeys/editor.yaml
|
|
common|hotkeys/control-groups.yaml
|
|
ts|hotkeys.yaml
|
|
|
|
LoadScreen: LogoStripeLoadScreen
|
|
Image: ts|uibits/loadscreen.png
|
|
|
|
ServerTraits:
|
|
LobbyCommands
|
|
SkirmishLogic
|
|
PlayerPinger
|
|
MasterServerPinger
|
|
LobbySettingsNotification
|
|
|
|
ChromeMetrics:
|
|
common|metrics.yaml
|
|
ts|metrics.yaml
|
|
|
|
Fonts:
|
|
Tiny:
|
|
Font: common|FreeSans.ttf
|
|
Size: 10
|
|
Ascender: 8
|
|
TinyBold:
|
|
Font: common|FreeSansBold.ttf
|
|
Size: 10
|
|
Ascender: 8
|
|
Small:
|
|
Font: common|FreeSans.ttf
|
|
Size: 12
|
|
Ascender: 9
|
|
Regular:
|
|
Font: common|FreeSans.ttf
|
|
Size: 14
|
|
Ascender: 11
|
|
Bold:
|
|
Font: common|FreeSansBold.ttf
|
|
Size: 14
|
|
Ascender: 11
|
|
MediumBold:
|
|
Font: common|FreeSansBold.ttf
|
|
Size: 18
|
|
Ascender: 14
|
|
BigBold:
|
|
Font: common|FreeSansBold.ttf
|
|
Size: 24
|
|
Ascender: 18
|
|
Title:
|
|
Font: common|FreeSansBold.ttf
|
|
Size: 32
|
|
Ascender: 24
|
|
|
|
DefaultOrderGenerator: UnitOrderGenerator
|
|
|
|
SupportsMapsFrom: ts
|
|
|
|
SoundFormats: Aud, Wav
|
|
|
|
SpriteFormats: ShpTS, TmpTS, ShpTD
|
|
|
|
VideoFormats: Vqa
|
|
|
|
TerrainFormat: DefaultTerrain
|
|
|
|
SpriteSequenceFormat: TilesetSpecificSpriteSequence
|
|
|
|
AssetBrowser:
|
|
SpriteExtensions: .shp, .tem, .sno
|
|
ModelExtensions: .vxl
|
|
AudioExtensions: .aud, .wav
|
|
VideoExtensions: .vqa
|
|
|
|
GameSpeeds:
|
|
DefaultSpeed: default
|
|
Speeds:
|
|
slowest:
|
|
Name: options-game-speed.slowest
|
|
Timestep: 80
|
|
OrderLatency: 2
|
|
slower:
|
|
Name: options-game-speed.slower
|
|
Timestep: 50
|
|
OrderLatency: 3
|
|
default:
|
|
Name: options-game-speed.normal
|
|
Timestep: 40
|
|
OrderLatency: 3
|
|
fast:
|
|
Name: options-game-speed.fast
|
|
Timestep: 35
|
|
OrderLatency: 4
|
|
faster:
|
|
Name: options-game-speed.faster
|
|
Timestep: 30
|
|
OrderLatency: 4
|
|
fastest:
|
|
Name: options-game-speed.fastest
|
|
Timestep: 20
|
|
OrderLatency: 6
|
|
|
|
ModContent:
|
|
InstallPromptMessage: modcontent-installprompt
|
|
QuickDownload: quickinstall
|
|
HeaderMessage: modcontent-header
|
|
Packages:
|
|
ContentPackage@tibsun:
|
|
Title: modcontent-package-basefiles
|
|
Identifier: tibsun
|
|
TestFiles: ^SupportDir|Content/ts/cache.mix, ^SupportDir|Content/ts/conquer.mix, ^SupportDir|Content/ts/isosnow.mix, ^SupportDir|Content/ts/isotemp.mix, ^SupportDir|Content/ts/local.mix, ^SupportDir|Content/ts/sidec01.mix, ^SupportDir|Content/ts/sidec02.mix, ^SupportDir|Content/ts/sno.mix, ^SupportDir|Content/ts/snow.mix, ^SupportDir|Content/ts/sounds.mix, ^SupportDir|Content/ts/speech01.mix, ^SupportDir|Content/ts/tem.mix, ^SupportDir|Content/ts/temperat.mix
|
|
Sources: tibsun, tfd, steam, origin
|
|
Required: true
|
|
Download: basefiles
|
|
ContentPackage@tibsun-music:
|
|
Title: modcontent-package-basemusic
|
|
Identifier: tibsun-music
|
|
TestFiles: ^SupportDir|Content/ts/scores.mix
|
|
Sources: tibsun, tfd, steam, origin
|
|
ContentPackage@fstorm:
|
|
Title: modcontent-package-firestormfiles
|
|
Identifier: fstorm
|
|
TestFiles: ^SupportDir|Content/ts/firestorm/e01sc01.mix, ^SupportDir|Content/ts/firestorm/e01sc02.mix, ^SupportDir|Content/ts/firestorm/e01vox01.mix, ^SupportDir|Content/ts/firestorm/e01vox02.mix
|
|
Sources: tfd, steam, origin, fstorm
|
|
Required: true
|
|
Download: fstorm
|
|
ContentPackage@fstorm-music:
|
|
Title: modcontent-package-firestormmusic
|
|
Identifier: fstorm-music
|
|
Sources: tfd, steam, origin, fstorm
|
|
TestFiles: ^SupportDir|Content/ts/firestorm/scores01.mix
|
|
Downloads:
|
|
ts|installer/downloads.yaml
|
|
Sources:
|
|
ts|installer/firestorm.yaml
|
|
ts|installer/firstdecade.yaml
|
|
ts|installer/steam.yaml
|
|
ts|installer/origin.yaml
|
|
ts|installer/tibsun.yaml
|
|
Translation: ts|languages/modcontent/en.ftl
|
|
|
|
DiscordService:
|
|
ApplicationId: 712713986558394399
|