public AbstractDungeonStructureBuilder AddEmbeddedDungeon(string key, AbstractDungeonStructure dungeonStructure) => this.Also(x =>
 {
     if (newInstance.EmbeddedDungeons == null)
     {
         newInstance.EmbeddedDungeons = new Dictionary <string, AbstractDungeonStructure>();
     }
     newInstance.EmbeddedDungeons.Add(key, dungeonStructure);
 });
 public AbstractDungeonStructureBuilderFinisher(AbstractDungeonStructure newInstance, AbstractDungeonElement startElement)
 {
     this.newInstance = newInstance;
     this.newInstance.StartElement = startElement;
 }
 public AbstractDungeonStructureBuilder()
 {
     newInstance = new AbstractDungeonStructure();
     newInstance.StructureMetaData = StructureMetaData.Builder.Empty;
 }
 public DungeonStructure(DungeonNode startElement, StructureMetaData structureMetaData, AbstractDungeonStructure abstractStructure)
 {
     StartElement      = startElement;
     AbstractStructure = abstractStructure;
     StructureMetaData = structureMetaData;
 }