Add ISingleInstanceInit interface.
Inits that are logically singletons (e.g. actor location or owner) should implement this interface to avoid runtime inconsistencies. Duplicate instances are rejected at init-time, allowing simpler queries when they are used.
This commit is contained in:
@@ -60,7 +60,7 @@ namespace OpenRA.Mods.Cnc.Traits
|
||||
{
|
||||
self = init.Self;
|
||||
|
||||
var returnInit = init.GetOrDefault<ChronoshiftReturnInit>(info);
|
||||
var returnInit = init.GetOrDefault<ChronoshiftReturnInit>();
|
||||
if (returnInit != null)
|
||||
{
|
||||
ReturnTicks = returnInit.Ticks;
|
||||
@@ -176,7 +176,7 @@ namespace OpenRA.Mods.Cnc.Traits
|
||||
void ITransformActorInitModifier.ModifyTransformActorInit(Actor self, TypeDictionary init) { ModifyActorInit(init); }
|
||||
}
|
||||
|
||||
public class ChronoshiftReturnInit : CompositeActorInit
|
||||
public class ChronoshiftReturnInit : CompositeActorInit, ISingleInstanceInit
|
||||
{
|
||||
public readonly int Ticks;
|
||||
public readonly int Duration;
|
||||
|
||||
Reference in New Issue
Block a user