Merge pull request #8004 from pchote/remove-owner

Remove deprecated Buildable.Owner field.
This commit is contained in:
Pavel Penev
2015-04-29 23:01:41 +03:00
9 changed files with 21 additions and 42 deletions

View File

@@ -21,9 +21,6 @@ namespace OpenRA.Mods.Common.Traits
"and by the ProvidesCustomPrerequisite trait.")]
public readonly string[] Prerequisites = { };
[Desc("Restrict production to a specific race(s). **Deprecated**: Use race-specific prerequisites instead.")]
public readonly string[] Owner = { };
[Desc("Production queue(s) that can produce this.")]
public readonly string[] Queue = { };

View File

@@ -26,9 +26,6 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Group queues from separate buildings together into the same tab.")]
public readonly string Group = null;
[Desc("Filter buildable items based on their Owner.")]
public readonly bool RequireOwner = true;
[Desc("Only enable this queue for certain factions")]
public readonly string[] Race = { };
@@ -155,14 +152,8 @@ namespace OpenRA.Mods.Common.Traits
{
var bi = a.Traits.Get<BuildableInfo>();
// Can our race build this by satisfying normal prerequisites?
var buildable = !Info.RequireOwner || bi.Owner.Contains(Race);
// Checks if Prerequisites want to hide the Actor from buildQueue if they are false
produceable.Add(a, new ProductionState { Visible = buildable });
if (buildable)
ttc.Add(a.Name, bi.Prerequisites, bi.BuildLimit, this);
produceable.Add(a, new ProductionState());
ttc.Add(a.Name, bi.Prerequisites, bi.BuildLimit, this);
}
}
@@ -391,7 +382,7 @@ namespace OpenRA.Mods.Common.Traits
public class ProductionState
{
public bool Visible = false;
public bool Visible = true;
public bool Buildable = false;
}

View File

@@ -872,10 +872,26 @@ namespace OpenRA.Mods.Common.UtilityCommands
}
}
if (engineVersion < 201504277)
if (engineVersion < 20150427)
if (node.Key.StartsWith("WithRotor"))
node.Value.Nodes.RemoveAll(p => p.Key == "Id");
if (engineVersion < 20150430)
{
if (node.Key.StartsWith("ProductionQueue@") || node.Key.StartsWith("ClassicProductionQueue@"))
node.Value.Nodes.RemoveAll(n => n.Key == "RequireOwner");
if (node.Key == "Buildable")
{
var removed = node.Value.Nodes.RemoveAll(n => n.Key == "Owner");
if (removed > 0)
{
Console.WriteLine("The 'Owner' field has been removed.");
Console.WriteLine("Please use prerequisites instead.");
}
}
}
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
}
}