Externalize briefing strings.
This commit is contained in:
committed by
Gustas Kažukauskas
parent
efa673d999
commit
81147bc3f3
@@ -17,6 +17,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
[TraitLocation(SystemActors.World)]
|
||||
public class MissionDataInfo : TraitInfo<MissionData>
|
||||
{
|
||||
[FluentReference(optional: true)]
|
||||
[Desc("Briefing text displayed in the mission browser.")]
|
||||
public readonly string Briefing;
|
||||
|
||||
|
||||
@@ -214,6 +214,9 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
var candidate = grouping.First();
|
||||
var key = $"{candidate.Actor}-{candidate.Key}";
|
||||
if (key == "actor-world-missiondata-briefing")
|
||||
key = "briefing";
|
||||
|
||||
build += $"{key} = {candidate.Value}\n";
|
||||
foreach (var node in candidate.Nodes)
|
||||
node.Value.Value = key;
|
||||
|
||||
@@ -29,7 +29,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
var missionData = world.Map.Rules.Actors[SystemActors.World].TraitInfoOrDefault<MissionDataInfo>();
|
||||
if (missionData != null)
|
||||
{
|
||||
var text = WidgetUtils.WrapText(missionData.Briefing?.Replace("\\n", "\n"), mapDescription.Bounds.Width, mapFont);
|
||||
var briefing = previewWidget.Preview().TryGetMessage(missionData.Briefing, out var translation) ? translation : missionData.Briefing;
|
||||
var text = WidgetUtils.WrapText(briefing, mapDescription.Bounds.Width, mapFont);
|
||||
mapDescription.GetText = () => text;
|
||||
mapDescription.Bounds.Height = mapFont.Measure(text).Y;
|
||||
mapDescriptionPanel.ScrollToTop();
|
||||
|
||||
@@ -678,7 +678,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
var missionData = map.WorldActorInfo.TraitInfoOrDefault<MissionDataInfo>();
|
||||
if (missionData != null && !string.IsNullOrEmpty(missionData.Briefing))
|
||||
TextNotificationsManager.AddSystemLine(missionData.Briefing.Replace("\\n", "\n"));
|
||||
{
|
||||
var briefing = map.TryGetMessage(missionData.Briefing, out var translation) ? translation : missionData.Briefing;
|
||||
TextNotificationsManager.AddSystemLine(briefing);
|
||||
}
|
||||
|
||||
var allOptions = map.PlayerActorInfo.TraitInfos<ILobbyOptions>()
|
||||
.Concat(map.WorldActorInfo.TraitInfos<ILobbyOptions>())
|
||||
|
||||
@@ -299,13 +299,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
infoVideo = missionData.BackgroundVideo;
|
||||
infoVideoVisible = infoVideo != null;
|
||||
|
||||
var briefing = WidgetUtils.WrapText(missionData.Briefing?.Replace("\\n", "\n"), description.Bounds.Width, descriptionFont);
|
||||
var height = descriptionFont.Measure(briefing).Y;
|
||||
var briefing = preview.TryGetMessage(missionData.Briefing, out var translation) ? translation : missionData.Briefing;
|
||||
var wrapped = WidgetUtils.WrapText(briefing, description.Bounds.Width, descriptionFont);
|
||||
var height = descriptionFont.Measure(wrapped).Y;
|
||||
Game.RunAfterTick(() =>
|
||||
{
|
||||
if (preview == selectedMap)
|
||||
{
|
||||
description.GetText = () => briefing;
|
||||
description.GetText = () => wrapped;
|
||||
description.Bounds.Height = height;
|
||||
descriptionPanel.Layout.AdjustChildren();
|
||||
panel = PanelType.MissionInfo;
|
||||
|
||||
Reference in New Issue
Block a user