Ejemplo n.º 1
0
        public RemoveSpriteCommand(SpriteLayer spriteLayer, Coordinate coordinate)
        {
            spriteLayer.ThrowIfNull("spriteLayer");

            _spriteLayer = spriteLayer;
            _coordinate = coordinate;
        }
        public SetSpriteCommand(SpriteLayer spriteLayer, Sprite sprite)
        {
            spriteLayer.ThrowIfNull("spriteLayer");
            sprite.ThrowIfNull("sprite");

            _spriteLayer = spriteLayer;
            _sprite = sprite;
        }
        public XElement Serialize(SpriteLayer spriteLayer, string elementName = "spriteLayer")
        {
            spriteLayer.ThrowIfNull("spriteLayer");
            elementName.ThrowIfNull("elementName");

            return new XElement(
                elementName,
                spriteLayer.Sprites.Select(arg => SpriteSerializer.Instance.Serialize(arg)),
                new XAttribute("boardId", spriteLayer.BoardId),
                new XAttribute("size", SizeSerializer.Instance.Serialize(spriteLayer.Size)));
        }
Ejemplo n.º 4
0
        public Board(
			Guid id,
			string name,
			string description,
			Size size,
			SpriteLayer backgroundLayer,
			SpriteLayer foregroundLayer,
			ActorInstanceLayer actorInstanceLayer,
			IEnumerable<BoardExit> exits,
			IEnumerable<Timer> timers,
			EventHandlerCollection eventHandlerCollection = null)
        {
            name.ThrowIfNull("name");
            description.ThrowIfNull("description");
            backgroundLayer.ThrowIfNull("backgroundLayer");
            foregroundLayer.ThrowIfNull("foregroundLayer");
            actorInstanceLayer.ThrowIfNull("actorInstanceLayer");
            exits.ThrowIfNull("exits");
            timers.ThrowIfNull("timers");

            if (backgroundLayer.BoardId != id)
            {
                throw new ArgumentException("Background layer must belong to board.", "backgroundLayer");
            }
            if (foregroundLayer.BoardId != id)
            {
                throw new ArgumentException("Foreground layer must belong to board.", "backgroundLayer");
            }
            if (actorInstanceLayer.BoardId != id)
            {
                throw new ArgumentException("Actor instance layer must belong to board.", "backgroundLayer");
            }

            _id = id;
            Name = name;
            Description = description;
            _size = size;
            _backgroundLayer = backgroundLayer;
            _foregroundLayer = foregroundLayer;
            _actorInstanceLayer = actorInstanceLayer;
            _exits = exits;
            _timers = timers;
            _eventHandlerCollection = eventHandlerCollection;
        }
        public byte[] Serialize(SpriteLayer spriteLayer)
        {
            spriteLayer.ThrowIfNull("spriteLayer");

            var serializer = new CompactSerializer();

            serializer[0] = spriteLayer.BoardId.ToByteArray();
            serializer[1] = SizeSerializer.Instance.Seralize(spriteLayer.Size);

            var spriteSerializer = new CompactSerializer();
            int index = 0;

            foreach (Sprite sprite in spriteLayer.Sprites)
            {
                spriteSerializer[index++] = SpriteSerializer.Instance.Serialize(sprite);
            }

            serializer[2] = spriteSerializer.Serialize();

            return serializer.Serialize();
        }