Exemplo n.º 1
0
        public static byte[] GetBytes(TileGroup obj, bool withTiles = false)
        {
            var data = new byte[4];

            BitConverter.GetBytes(obj.Unknown).CopyTo(data, 0);

            if (withTiles && (obj.LandTiles != null || obj.StaticTiles != null))
            {
                if (obj.LandTiles != null)
                {
                    foreach (var landTile in obj.LandTiles.OrderBy(kvPair => kvPair.Key))
                    {
                        var landTileData = LandTiledata.GetBytes(landTile.Value);
                        Array.Resize(ref data, data.Length + landTileData.Length);
                        landTileData.CopyTo(data, data.Length - landTileData.Length);
                    }
                }
                else if (obj.StaticTiles != null)
                {
                    foreach (var staticTile in obj.StaticTiles.OrderBy(kvPair => kvPair.Key))
                    {
                        var staticTileData = StaticTiledata.GetBytes(staticTile.Value);
                        Array.Resize(ref data, data.Length + staticTileData.Length);
                        staticTileData.CopyTo(data, data.Length - staticTileData.Length);
                    }
                }
            }
            return(data);
        }
Exemplo n.º 2
0
        public static byte[] GetBytes(StaticTiledata obj)
        {
            var data = new byte[37];

            BitConverter.GetBytes((int)obj.Flags).CopyTo(data, 0);
            BitConverter.GetBytes(obj.Weight).CopyTo(data, 4);
            BitConverter.GetBytes(obj.Quality).CopyTo(data, 5);
            BitConverter.GetBytes(obj.MiscData).CopyTo(data, 6);
            BitConverter.GetBytes(obj.Unknown1).CopyTo(data, 8);
            BitConverter.GetBytes(obj.Quantity).CopyTo(data, 9);
            BitConverter.GetBytes(obj.AnimationID).CopyTo(data, 10);
            BitConverter.GetBytes(obj.Unknown2).CopyTo(data, 12);
            BitConverter.GetBytes(obj.Hue).CopyTo(data, 13);
            BitConverter.GetBytes(obj.StackOff).CopyTo(data, 14);
            BitConverter.GetBytes(obj.Value).CopyTo(data, 15);
            BitConverter.GetBytes(obj.Height).CopyTo(data, 16);
            var trimmedTileName = obj.TileName;

            if (trimmedTileName.Length > 20)
            {
                trimmedTileName.Substring(0, 20);
            }
            Encoding.Default.GetBytes(trimmedTileName).CopyTo(data, 17);

            return(data);
        }