public BaseObject() { Id = Guid.NewGuid(); CreateDate = UpdateDate = DateTime.Now; ValueHistoryManager = new ValueHistoryManager(); }
public void SetPosition(Vector2 position) { //if (Position != Vector2.Zero && Position == position) // return; Position = position; if (ValueHistoryManager.HasChangedFor(new ValueHistoryRecord("Position", position))) { OnChangeRectangle?.Invoke(); } }
public void SetSize(Vector2 size) { //if (Size != Vector2.Zero && Size == size) // return; Size = size; ClampManager.Update(); if (ValueHistoryManager.HasChangedFor(new ValueHistoryRecord("Size", Size))) { OnChangeRectangle?.Invoke(); } }
public virtual void Initialize() { SetName(MemberInfoName); OnChangeRectangle += SetRectangle; IsActive = IsAlive = IsVisible = true; ClampManager = new ClampManager(this) .Add(new ClampObject("Size.X", 0f, float.MaxValue)) .Add(new ClampObject("Size.Y", 0f, float.MaxValue)); SetStartingSettings(); //DestinationRectangle = new Rectangle((int)Position.X, (int)Position.Y, (int)Size.X, (int)Size.Y); //destinationRectangle = new Rectangle((int)(position.X - origin.X), (int)(position.Y - origin.Y), (int)size.X, (int)size.Y); SourceRectangle = new Rectangle(0, 0, (int)Size.X, (int)Size.Y); Color = Color.White; //Effects.Add(new PulsateEffect(this)); Events.Add(new DraggingEvent(this)); Events.Add(new SimpleShadowEffect(this, new Vector2(-6, -6))); Events.Add(new PulsateEffect(this)); TestInfo = new TestInfo(this); SpriteBatch = Global.SpriteBatch; var equalityFunctionForVector2 = new Func <object, object, bool>((previousValue, currentValue) => { var previousValueAsVector2 = (Vector2)previousValue; var currentValueAsVector2 = (Vector2)currentValue; return(previousValueAsVector2 != currentValueAsVector2); }); ValueHistoryManager.AddSetting(new ValueHistorySetting("Position", 2, equalityFunctionForVector2)); ValueHistoryManager.AddSetting(new ValueHistorySetting("Size", 2, equalityFunctionForVector2)); }
public virtual void Update(GameTime gameTime = null) { if (IsActive) { SetRectangle(); SetOrigin(); //if (IsPulsating) //{ // Scale = General.Pulsate(); //} //foreach (var effect in Effects) //{ // effect.Update(); //} foreach (var e in Events) { e.Update(); } ClampManager.Update(); IsHovering = InputManager.IsHovering(DestinationRectangle); if (IsClickable) { IsSelecting = InputManager.Selected(DestinationRectangle); } TestInfo.Update(); ValueHistoryManager.Update(); } }
static void Main(string[] args) { var date1 = DateTime.Now; var date2 = DateTime.Now.AddYears(-1); var date3 = DateTime.Now.AddYears(-2); var date4 = DateTime.Now.AddYears(-3); var date5 = DateTime.Now.AddYears(-5); var dateList = new List <DateTime>() { date1, date2, date3, date4, date5 }; for (int i = 0; i < dateList.Count; i++) { Console.WriteLine("{0:yyyy-MM-dd HH:mm:ss.fff}", dateList[i]); } dateList.Sort(); Console.WriteLine(); var list = dateList.OrderByDescending(dt => dt.Year).OrderByDescending(dt => dt.Millisecond).ThenByDescending(dt => dt.Ticks).ToList(); for (int i = 0; i < list.Count; i++) { Console.WriteLine(list[i].Year + " " + list[i].Millisecond + " " + list[i].Ticks + " " + list[i].AddTicks(1).Ticks); } TestObject to = new TestObject(); var historyManager = new ValueHistoryManager(); //historyManager.AddSetting(new ValueHistorySetting("Name", 2, // (previousValue,currentValue) => // { // return !previousValue.Equals(currentValue); // })); //historyManager.HasChangedFor(new ValueHistorySetting("Id",10)); historyManager.AddSettings(to); historyManager.HasChangedFor(to); //historyManager.HasChangedFor(new ValueHistoryRecord("Name",to.Name)); historyManager.Update(); to.Name = "Koray"; historyManager.HasChangedFor(to); //historyManager.HasChangedFor(new ValueHistoryRecord("Name", to.Name)); historyManager.Update(); to.Name = "Lebron"; historyManager.HasChangedFor(to); //historyManager.HasChangedFor(new ValueHistoryRecord("Name", to.Name)); historyManager.Update(); to.Name = "Shaq"; historyManager.HasChangedFor(to); historyManager.Update(); historyManager.HasChangedFor(to); var records = historyManager.GetRecordsByPropertyName("Name"); }