using RecrownedAthenaeum.ContentSystem; using RecrownedAthenaeum.UI.Modular; using RecrownedAthenaeum.UI.SkinSystem; namespace RecrownedAthenaeum.UI.BookSystem { /// /// A page a part of a . /// public class Page : UIModuleGroup { private readonly int pageX, pageY; /// /// Whether or not this book needs to be refreshed with new dimensions. /// public bool requiresSizeUpdate; /// /// Constructs a page. /// /// The X position in the book. /// The Y position in the book. public Page(int pageX, int pageY) : base(false) { this.pageX = pageX; this.pageY = pageY; requiresSizeUpdate = true; Name = ToString(); } /// /// Called when this page is flagged as needing a size update. /// /// New width. /// New Height public virtual void ApplySize(int width, int height) { bounds.X = pageX * width; bounds.Y = pageY * height; bounds.Width = width; bounds.Height = height; requiresSizeUpdate = false; } /// /// Called only once after a page is added to a . Generally used to instantiate the modules of the page. /// /// The assets to be used during initialization passed by the book this page belongs to. /// The skin the book containing this page is given that can be used by this page. protected internal virtual void Initialize(ContentManagerController assets, Skin skin) { } } }