/// <summary> /// Finalizes the instance. /// </summary> public void Flush() { // Set references to this object Compound.Instance = this; foreach (var instanceElement in Bots.AsEnumerable <InstanceElement>() .Concat(Pods.AsEnumerable <InstanceElement>()) .Concat(Elevators.AsEnumerable <InstanceElement>()) .Concat(InputStations.AsEnumerable <InstanceElement>()) .Concat(OutputStations.AsEnumerable <InstanceElement>()) .Concat(Waypoints.AsEnumerable <InstanceElement>()) .Concat(ItemDescriptions.AsEnumerable <InstanceElement>()) .Concat(ItemBundles.AsEnumerable <InstanceElement>())) { instanceElement.Instance = this; } //TODO:why is the code below commented out?? //// Generate Waypointgraph //WaypointGraph = new WaypointGraph(); //foreach (var waypoint in Waypoints) //{ // WaypointGraph.Add(waypoint); //} }
/// <summary> /// Creates a bundle of items. /// </summary> /// <param name="itemDescription">An element describing the characteristics of the item.</param> /// <param name="count">The number of items in the bundle.</param> /// <returns>A bundle of items.</returns> public ItemBundle CreateItemBundle(ItemDescription itemDescription, int count) { // Create bundle ItemBundle bundle = null; switch (itemDescription.Type) { case ItemType.Letter: { bundle = new ColoredLetterBundle(this); } break; case ItemType.SimpleItem: { bundle = new SimpleItemBundle(this); } break; default: throw new ArgumentException("Unknown item type: " + itemDescription.Type); } bundle.ID = _itemBundleID++; bundle.Instance = this; bundle.ItemDescription = itemDescription; bundle.ItemCount = count; ItemBundles.Add(bundle); // Return the filled bundle return(bundle); }