/// <summary> /// Initializes a new instance of the <see cref="BuildingObject"/> class. /// </summary> /// <param name="father">The father node.</param> /// <param name="type">The type of this node.</param> public BuildingObject(BuildingObject father, BuildingObjectType type, uint id) { this.Father = father; this.Type = type; this.Childs = new Hashtable(); this.Id = id; }
/// <summary> /// Insert a new child into child list.[Not use] /// </summary> /// <param name="child">New child</param> public void AddNewChild(Object child) { switch (this.Type) { case BuildingObjectType.Outside: this._object = child; break; case BuildingObjectType.Building: if (this.Childs.Contains(child.Location[0]) == false) { BuildingObjectType childType; if (child.Location[0] == "0") { childType = BuildingObjectType.Outside; } else { childType = BuildingObjectType.Floor; } BuildingObject bObj = new BuildingObject(this, childType, (uint)System.Convert.ToInt32(child.Location[0])); this.Childs.Add(child.Location[0], bObj); bObj.AddNewChild(child); } else { (this.Childs[(child.Location[0])] as BuildingObject).AddNewChild(child); } break; case BuildingObjectType.Floor: if (this.Childs.Contains(child.Location[1]) == false) { BuildingObject bObj = new BuildingObject(this, BuildingObjectType.Room, (uint)System.Convert.ToInt32(child.Location[1])); this.Childs.Add(child.Location[1], bObj); bObj.AddNewChild(child); } else { (this.Childs[(child.Location[1])] as BuildingObject).AddNewChild(child); } break; case BuildingObjectType.Room: if (this.Childs.Contains(child.Location[2]) == false) { BuildingObject bObj = new BuildingObject(this, BuildingObjectType.Object, (uint)System.Convert.ToInt32(child.Location[2])); this.Childs.Add(child.Location[2], bObj); bObj.AddNewChild(child); } else { // Same Name... ??? } break; case BuildingObjectType.Object: this._object = child; break; default: break; } }
/// <summary> /// Insert a new child into child list.[Not use] /// </summary> /// <param name="child">New child</param> public void AddNewChild(Object child) { switch (this.Type) { case BuildingObjectType.Outside: this._object = child; break; case BuildingObjectType.Building: if (this.Childs.Contains(child.Location[0]) == false) { BuildingObjectType childType; if(child.Location[0] == "0") { childType = BuildingObjectType.Outside; } else { childType = BuildingObjectType.Floor; } BuildingObject bObj = new BuildingObject(this, childType, (uint)System.Convert.ToInt32(child.Location[0])); this.Childs.Add(child.Location[0], bObj); bObj.AddNewChild(child); } else { (this.Childs[(child.Location[0])] as BuildingObject).AddNewChild(child); } break; case BuildingObjectType.Floor: if (this.Childs.Contains(child.Location[1]) == false) { BuildingObject bObj = new BuildingObject(this, BuildingObjectType.Room, (uint)System.Convert.ToInt32(child.Location[1])); this.Childs.Add(child.Location[1], bObj); bObj.AddNewChild(child); } else { (this.Childs[(child.Location[1])] as BuildingObject).AddNewChild(child); } break; case BuildingObjectType.Room: if (this.Childs.Contains(child.Location[2]) == false) { BuildingObject bObj = new BuildingObject(this, BuildingObjectType.Object, (uint)System.Convert.ToInt32(child.Location[2])); this.Childs.Add(child.Location[2], bObj); bObj.AddNewChild(child); } else { // Same Name... ??? } break; case BuildingObjectType.Object: this._object = child; break; default: break; } }