/// <summary> /// /// </summary> /// <param name="master"></param> /// <param name="pic"></param> /// <param name="main"></param> /// <param name="opposite"></param> public VarHeightBuildingContribution(IAbstractStructure master, XmlElement pic, XmlElement main, bool opposite) : base(main) { this.Price = master.UnitPrice; if (opposite) { size = new Size(master.Size.Height, master.Size.Width); } else { size = master.Size; } this.PricePerArea = this.Price / Math.Max(1, size.Width * size.Height); minHeight = master.MinHeight; maxHeight = master.MaxHeight; tops = loadSpriteSets(pic.SelectNodes("top")); bottoms = loadSpriteSets(pic.SelectNodes("bottom")); XmlElement m = (XmlElement)XmlUtil.SelectSingleNode(pic, "middle"); XmlAttribute a = m.Attributes["overlay"]; if (a != null && a.InnerText.Equals("true")) { overlay = true; } middle = PluginUtil.getSpriteLoader(m).load2D(m, size, size.Width * 8); }
/// <summary> /// /// </summary> /// <param name="master"></param> /// <param name="pic"></param> /// <param name="main"></param> /// <param name="opposite"></param> public FixedSizeStructureContribution(IAbstractStructure master, XmlElement pic, XmlElement main, bool opposite) : base(main) { this.Price = master.UnitPrice; int height = master.MaxHeight; if (opposite) { size = new Distance(master.Size.Height, master.Size.Width, height); } else { this.size = new Distance(master.Size, height); } this.PricePerArea = this.Price / Math.Max(1, size.x * size.y); sprites = PluginUtil.getSpriteLoader(pic).load3D(pic, size.x, size.y, height); }
/// <summary> /// /// </summary> /// <param name="master"></param> /// <param name="pic"></param> /// <param name="main"></param> /// <param name="opposite"></param> public CommercialStructureContribution(IAbstractStructure master, XmlElement pic, XmlElement main, bool opposite) : base(master, pic, main, opposite) { }