using System;
using System.Collections.Generic;
namespace Chernobyl.Update
{
///
/// Used to work with objects that can be updated. 's
/// have a set of children s that they call update
/// on. This structure forms a tree of s and allows
/// for each to have it's own rules for when and
/// how it and its children objects are updated.
///
public interface IUpdateable
{
///
/// Updates this object and it's children if
/// the feels it's necessary.
///
/// The amount of time that has passed since
/// this update was last called.
void Update(TimeSpan deltaTime);
///
/// The parent of this IUpdateable or null if this IUpdateable does not
/// have a parent.
///
IUpdateable UpdateableParent { get; set; }
///
/// Holds a collection of children that should be updated when this
/// decides they should be updated.
///
ICollection UpdateableChildren { get; }
}
}