protected override IAspect CloneSubclass()
        {
            RespawnAspect ra = new RespawnAspect();

            ra.Bounds = this.Bounds;
            ra.RespawnPosition = this.RespawnPosition;

            return ra;
        }
        public static Entity MakeCharacterEntity(Game game, string name, string image, Vector2 position, Rectangle frame)
        {
            var e = new Entity()
            {
                Game = game,
                Name = name
            };

            var renderer = new RenderingAspect()
            {
                Name = "renderer"
            };
            e.Aspects.Add(renderer);

            var sprite = new SpriteAspect()
            {
                Name = "sprite",
                ImageFile = image,
                ImageFrame = frame,
                OrientationAspect = "collider",
                LayerDepth = 0.3f,
                CoordinateType = CoordinateType.World
            };
            e.Aspects.Add(sprite);

            var collider = new BoxCollisionAspect()
            {
                Name = "collider",
                Mass = 100,
                Position = position,
                IsStatic = false,
                Dimensions = frame
            };
            e.Aspects.Add(collider);

            var respawn = new RespawnAspect()
            {
                Bounds = new Rectangle(-512, -512, 2048, 1600),
                RespawnPosition = position
            };
            e.Aspects.Add(respawn);

            return e;
        }