public void InitializeInterfaces(NpcInterfaceInfo.Set interfaceSet) { if (parentNpcInterfaces == null) { this.parentNpcInterfaces = new List <NpcInterfaceInfo>(); this.ancestorNpcInterfaces = new List <NpcInterfaceInfo>(); interfaceSet.GetParentInterfaces(type, parentNpcInterfaces, ancestorNpcInterfaces); if (parentNpcInterfaces.Count <= 0) { throw new InvalidOperationException(String.Format( "Class {0} did not implement any NpcInterfaces (An NpcInterface is an interface with the [NpcInterface] attribute)", type.Name)); } } else { foreach (var @interface in parentNpcInterfaces) { interfaceSet.TryAdd(@interface.interfaceType, @interface); } foreach (var @interface in ancestorNpcInterfaces) { interfaceSet.TryAdd(@interface.interfaceType, @interface); } } }
public void InitializeInterfaces(NpcInterfaceInfo.Set interfaceSet) { if (parentNpcInterfaces != null) { throw new InvalidOperationException("Interfaces already initialized"); } this.parentNpcInterfaces = new List <NpcInterfaceInfo>(); this.ancestorNpcInterfaces = new List <NpcInterfaceInfo>(); interfaceSet.GetParentInterfaces(interfaceType, parentNpcInterfaces, ancestorNpcInterfaces); }