void PopState() { int lastIndex = states.Count - 1; if (lastIndex > -1) { KeyTimeState kts = states[lastIndex]; states.RemoveAt(lastIndex); if (isBroken && !kts.isBroken) { GetFixed(); } else if (!isBroken && kts.isBroken) { GetBroken(); } if (hasOwner && !kts.hasOwner) { RemoveOwner(); } else if (!hasOwner && kts.hasOwner) { SetOwner(); } } }
void PushState() { KeyTimeState kts = new KeyTimeState(); kts.isBroken = isBroken; kts.hasOwner = hasOwner; states.Add(kts); }