Remove direct access to MapPreview.Rules.

This commit is contained in:
Paul Chote
2021-04-04 16:40:46 +01:00
committed by teinarss
parent 53e6d974f0
commit abee274f88
22 changed files with 57 additions and 54 deletions

View File

@@ -86,11 +86,13 @@ namespace OpenRA
public MapVisibility Visibility;
Lazy<Ruleset> rules;
public Ruleset Rules => rules?.Value;
public bool InvalidCustomRules { get; private set; }
public bool DefinesUnsafeCustomRules { get; private set; }
public bool RulesLoaded { get; private set; }
public ActorInfo WorldActorInfo => rules?.Value.Actors[SystemActors.World];
public ActorInfo PlayerActorInfo => rules?.Value.Actors[SystemActors.Player];
public void SetRulesetGenerator(ModData modData, Func<(Ruleset Ruleset, bool DefinesUnsafeCustomRules)> generator)
{
InvalidCustomRules = false;
@@ -154,16 +156,18 @@ namespace OpenRA
public MapClassification Class => innerData.Class;
public MapVisibility Visibility => innerData.Visibility;
public Ruleset Rules => innerData.Rules;
public bool InvalidCustomRules => innerData.InvalidCustomRules;
public bool RulesLoaded => innerData.RulesLoaded;
public ActorInfo WorldActorInfo => innerData.WorldActorInfo;
public ActorInfo PlayerActorInfo => innerData.PlayerActorInfo;
public bool DefinesUnsafeCustomRules
{
get
{
// Force lazy rules to be evaluated
var force = innerData.Rules;
var force = innerData.WorldActorInfo;
return innerData.DefinesUnsafeCustomRules;
}
}
@@ -338,7 +342,7 @@ namespace OpenRA
public void PreloadRules()
{
var unused = Rules;
var unused = WorldActorInfo;
}
public void UpdateRemoteSearch(MapStatus status, MiniYaml yaml, Action<MapPreview> parseMetadata = null)