public byte[] Seralize(Size size)
        {
            var serializer = new CompactSerializer();

            serializer[0] = BitConverter.GetBytes(size.Width);
            serializer[1] = BitConverter.GetBytes(size.Height);

            return serializer.Serialize();
        }
        public byte[] Serialize(Coordinate coordinate)
        {
            var serializer = new CompactSerializer();

            serializer[0] = BitConverter.GetBytes(coordinate.X);
            serializer[1] = BitConverter.GetBytes(coordinate.Y);

            return serializer.Serialize();
        }
        public byte[] Serialize(Character character)
        {
            var serializer = new CompactSerializer();

            serializer[0] = new[] { character.Symbol };
            serializer[1] = ColorSerializer.Instance.Serialize(character.ForegroundColor);
            serializer[2] = ColorSerializer.Instance.Serialize(character.BackgroundColor);

            return serializer.Serialize();
        }
        public byte[] Serialize(MessageColor messageColor)
        {
            messageColor.ThrowIfNull("messageColor");

            var serializer = new CompactSerializer();

            serializer[0] = ColorSerializer.Instance.Serialize(messageColor.Color);

            return serializer.Serialize();
        }
        public byte[] Serialize(MessageText messageText)
        {
            messageText.ThrowIfNull("messageText");

            var serializer = new CompactSerializer();

            serializer[0] = Encoding.UTF8.GetBytes(messageText.Text);

            return serializer.Serialize();
        }
        public byte[] Serialize(Sprite sprite)
        {
            sprite.ThrowIfNull("sprite");

            var serializer = new CompactSerializer();

            serializer[0] = CoordinateSerializer.Instance.Serialize(sprite.Coordinate);
            serializer[1] = CharacterSerializer.Instance.Serialize(sprite.Character);

            return serializer.Serialize();
        }
예제 #7
0
        public byte[] Serialize(Color color)
        {
            var serializer = new CompactSerializer();

            serializer[0] = BitConverter.GetBytes(color.R);
            serializer[1] = BitConverter.GetBytes(color.G);
            serializer[2] = BitConverter.GetBytes(color.B);
            serializer[3] = BitConverter.GetBytes(color.A);

            return serializer.Serialize();
        }
예제 #8
0
        public byte[] Serialize(Song song)
        {
            song.ThrowIfNull("song");

            var serializer = new CompactSerializer();

            serializer[0] = song.Id.ToByteArray();
            serializer[1] = Encoding.UTF8.GetBytes(song.Name);
            serializer[2] = Encoding.UTF8.GetBytes(song.Description);
            serializer[3] = song.Data;

            return serializer.Serialize();
        }
        public byte[] Serialize(BoardExit boardExit)
        {
            boardExit.ThrowIfNull("boardExit");

            var serializer = new CompactSerializer();

            serializer[0] = CoordinateSerializer.Instance.Serialize(boardExit.Coordinate);
            serializer[1] = Encoding.UTF8.GetBytes(boardExit.Direction.ToString());
            serializer[2] = boardExit.DestinationBoardId.ToByteArray();
            serializer[3] = CoordinateSerializer.Instance.Serialize(boardExit.DestinationCoordinate);

            return serializer.Serialize();
        }
예제 #10
0
        public byte[] Serialize(Actor actor)
        {
            actor.ThrowIfNull("actor");

            var serializer = new CompactSerializer();

            serializer[0] = actor.Id.ToByteArray();
            serializer[1] = Encoding.UTF8.GetBytes(actor.Name);
            serializer[2] = Encoding.UTF8.GetBytes(actor.Description);
            serializer[3] = CharacterSerializer.Instance.Serialize(actor.Character);

            return serializer.Serialize();
        }
예제 #11
0
        public byte[] Serialize(Player player)
        {
            player.ThrowIfNull("player");

            var serializer = new CompactSerializer();

            serializer[0] = player.Id.ToByteArray();
            serializer[1] = player.BoardId.ToByteArray();
            serializer[2] = CoordinateSerializer.Instance.Serialize(player.Coordinate);
            serializer[3] = CharacterSerializer.Instance.Serialize(player.Character);
            serializer[4] = EventHandlerCollectionSerializer.Instance.Serialize(player.EventHandlerCollection);

            return serializer.Serialize();
        }
        public byte[] Serialize(EventHandlerCollection eventHandlerCollection)
        {
            var serializer = new CompactSerializer();
            int index = 0;

            if (eventHandlerCollection != null)
            {
                foreach (IEventHandler eventHandler in eventHandlerCollection.EventHandlers)
                {
                    serializer[index++] = Encoding.ASCII.GetBytes(eventHandler.EventHandlerTypeName);
                }
            }

            return serializer.Serialize();
        }
        public byte[] Serialize(Timer timer)
        {
            timer.ThrowIfNull("timer");

            var serializer = new CompactSerializer();

            serializer[0] = timer.Id.ToByteArray();
            serializer[1] = Encoding.UTF8.GetBytes(timer.Name);
            serializer[2] = Encoding.UTF8.GetBytes(timer.Description);
            serializer[3] = BitConverter.GetBytes(timer.Interval.Ticks);
            serializer[4] = Encoding.UTF8.GetBytes(timer.State.ToString());
            serializer[5] = BitConverter.GetBytes(timer.ElapsedTime.Ticks);
            serializer[6] = EventHandlerCollectionSerializer.Instance.Serialize(timer.EventHandlerCollection);

            return serializer.Serialize();
        }
        public byte[] Serialize(ActorInstance actorInstance)
        {
            actorInstance.ThrowIfNull("actorInstance");

            var serializer = new CompactSerializer();

            serializer[0] = actorInstance.Id.ToByteArray();
            serializer[1] = Encoding.UTF8.GetBytes(actorInstance.Name);
            serializer[2] = Encoding.UTF8.GetBytes(actorInstance.Description);
            serializer[3] = actorInstance.ActorId.ToByteArray();
            serializer[4] = actorInstance.BoardId.ToByteArray();
            serializer[5] = CoordinateSerializer.Instance.Serialize(actorInstance.Coordinate);
            serializer[6] = CharacterSerializer.Instance.Serialize(actorInstance.Character);
            serializer[7] = EventHandlerCollectionSerializer.Instance.Serialize(actorInstance.EventHandlerCollection);

            return serializer.Serialize();
        }
        public byte[] Serialize(ActorInstanceLayer actorInstanceLayer)
        {
            actorInstanceLayer.ThrowIfNull("actorInstanceLayer");

            var serializer = new CompactSerializer();

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

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

            foreach (ActorInstance actorInstance in actorInstanceLayer.ActorInstances)
            {
                actorInstanceSerializer[index++] = ActorInstanceSerializer.Instance.Serialize(actorInstance);
            }

            serializer[2] = actorInstanceSerializer.Serialize();

            return serializer.Serialize();
        }
        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();
        }
        public byte[] Serialize(MessageAnswer messageAnswer)
        {
            messageAnswer.ThrowIfNull("messageAnswer");

            var serializer = new CompactSerializer();

            serializer[0] = messageAnswer.Id.ToByteArray();
            serializer[1] = Encoding.UTF8.GetBytes(messageAnswer.Text);

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

            foreach (IMessagePart part in messageAnswer.Parts)
            {
                partSerializer[index++] = MessagePartSerializer.Instance.Serialize(part);
            }

            serializer[2] = partSerializer.Serialize();
            serializer[3] = EventHandlerCollectionSerializer.Instance.Serialize(messageAnswer.EventHandlerCollection);

            return serializer.Serialize();
        }
        public byte[] Serialize(Message message)
        {
            message.ThrowIfNull("message");

            var serializer = new CompactSerializer();

            serializer[0] = message.Id.ToByteArray();
            serializer[1] = Encoding.UTF8.GetBytes(message.Name);
            serializer[2] = Encoding.UTF8.GetBytes(message.Description);
            serializer[3] = ColorSerializer.Instance.Serialize(message.BackgroundColor);

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

            foreach (IMessagePart part in message.Parts)
            {
                partSerializer[index++] = MessagePartSerializer.Instance.Serialize(part);
            }

            serializer[4] = partSerializer.Serialize();

            return serializer.Serialize();
        }
        public byte[] Serializer(Board board)
        {
            board.ThrowIfNull("board");

            var serializer = new CompactSerializer();

            serializer[0] = board.Id.ToByteArray();
            serializer[1] = Encoding.UTF8.GetBytes(board.Name);
            serializer[2] = Encoding.UTF8.GetBytes(board.Description);
            serializer[3] = SizeSerializer.Instance.Seralize(board.Size);
            serializer[4] = SpriteLayerSerializer.Instance.Serialize(board.BackgroundLayer);
            serializer[5] = SpriteLayerSerializer.Instance.Serialize(board.ForegroundLayer);
            serializer[6] = ActorInstanceLayerSerializer.Instance.Serialize(board.ActorInstanceLayer);

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

            foreach (BoardExit boardExit in board.Exits)
            {
                boardExitSerializer[index++] = BoardExitSerializer.Instance.Serialize(boardExit);
            }

            var timerSerializer = new CompactSerializer();

            index = 0;

            foreach (Timer timer in board.Timers)
            {
                timerSerializer[index++] = TimerSerializer.Instance.Serialize(timer);
            }

            serializer[7] = boardExitSerializer.Serialize();
            serializer[8] = timerSerializer.Serialize();
            serializer[9] = EventHandlerCollectionSerializer.Instance.Serialize(board.EventHandlerCollection);

            return serializer.Serialize();
        }
        public byte[] Serialize(IMessagePart messagePart)
        {
            messagePart.ThrowIfNull("messagePart");

            var serializer = new CompactSerializer();
            var messageColor = messagePart as MessageColor;
            var messageLineBreak = messagePart as MessageLineBreak;
            var messageQuestion = messagePart as MessageQuestion;
            var messageText = messagePart as MessageText;

            if (messageColor != null)
            {
                serializer[0] = Encoding.UTF8.GetBytes("Color");
                serializer[1] = MessageColorSerializer.Instance.Serialize(messageColor);
            }
            else if (messageLineBreak != null)
            {
                serializer[0] = Encoding.UTF8.GetBytes("LineBreak");
                serializer[1] = MessageLineBreakSerializer.Instance.Serialize(messageLineBreak);
            }
            else if (messageQuestion != null)
            {
                serializer[0] = Encoding.UTF8.GetBytes("Question");
                serializer[1] = MessageQuestionSerializer.Instance.Serialize(messageQuestion);
            }
            else if (messageText != null)
            {
                serializer[0] = Encoding.UTF8.GetBytes("Text");
                serializer[1] = MessageTextSerializer.Instance.Serialize(messageText);
            }
            else
            {
                throw new ArgumentException(String.Format("Unknown message part type '{0}'.", messagePart.GetType().Name));
            }

            return serializer.Serialize();
        }
        public byte[] Serialize(MessageQuestion messageQuestion)
        {
            messageQuestion.ThrowIfNull("messageQuestion");

            var serializer = new CompactSerializer();

            serializer[0] = Encoding.UTF8.GetBytes(messageQuestion.Prompt);
            serializer[1] = ColorSerializer.Instance.Serialize(messageQuestion.QuestionForegroundColor);
            serializer[2] = ColorSerializer.Instance.Serialize(messageQuestion.UnselectedAnswerForegroundColor);
            serializer[3] = ColorSerializer.Instance.Serialize(messageQuestion.SelectedAnswerForegroundColor);
            serializer[4] = ColorSerializer.Instance.Serialize(messageQuestion.SelectedAnswerBackgroundColor);

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

            foreach (MessageAnswer answer in messageQuestion.Answers)
            {
                answerSerializer[index++] = MessageAnswerSerializer.Instance.Serialize(answer);
            }

            serializer[5] = answerSerializer.Serialize();

            return serializer.Serialize();
        }
예제 #22
0
        public byte[] Serialize(World world)
        {
            world.ThrowIfNull("world");

            var serializer = new CompactSerializer();

            serializer[0] = world.Id.ToByteArray();
            serializer[1] = BitConverter.GetBytes(world.Version);
            serializer[2] = Encoding.UTF8.GetBytes(world.Title);
            serializer[3] = PlayerSerializer.Instance.Serialize(world.StartingPlayer);

            var boardSerializer = new CompactSerializer();
            int boardIndex = 0;

            foreach (Board board in world.Boards)
            {
                boardSerializer[boardIndex++] = BoardSerializer.Instance.Serializer(board);
            }

            serializer[4] = boardSerializer.Serialize();

            var actorSerializer = new CompactSerializer();
            int actorIndex = 0;

            foreach (Actor actor in world.Actors)
            {
                actorSerializer[actorIndex++] = ActorSerializer.Instance.Serialize(actor);
            }

            serializer[5] = actorSerializer.Serialize();

            var messageSerializer = new CompactSerializer();
            int messageIndex = 0;

            foreach (Message message in world.Messages)
            {
                messageSerializer[messageIndex++] = MessageSerializer.Instance.Serialize(message);
            }

            serializer[6] = messageSerializer.Serialize();

            var timerSerializer = new CompactSerializer();
            int timerIndex = 0;

            foreach (Timer timer in world.Timers)
            {
                timerSerializer[timerIndex++] = TimerSerializer.Instance.Serialize(timer);
            }

            serializer[7] = timerSerializer.Serialize();

            var soundEffectSerializer = new CompactSerializer();
            int soundEffectIndex = 0;

            foreach (SoundEffect soundEffect in world.SoundEffects)
            {
                soundEffectSerializer[soundEffectIndex++] = SoundEffectSerializer.Instance.Serialize(soundEffect);
            }

            serializer[8] = soundEffectSerializer.Serialize();

            var songSerializer = new CompactSerializer();
            int songIndex = 0;

            foreach (Song song in world.Songs)
            {
                songSerializer[songIndex++] = SongSerializer.Instance.Serialize(song);
            }

            serializer[9] = songSerializer.Serialize();

            return serializer.Serialize();
        }