Пример #1
0
        public override void Init(MapContainer map)
        {
            Map = map;
            Map.GetType(MapItemTypes.Group, out var groupsStart, out var groupsNum);
            Map.GetType(MapItemTypes.Layer, out var layersStart, out var layersNum);

            GroupsStart = groupsStart;
            GroupsNum   = groupsNum;
            LayersStart = layersStart;
            LayersNum   = layersNum;

            for (var g = 0; g < GroupsNum; g++)
            {
                var group = GetGroup(g);

                for (var l = 0; l < group.NumLayers; l++)
                {
                    var layer = GetLayer(group.StartLayer + l);

                    if (layer.Type == LayerType.Tiles)
                    {
                        var tilemap = Map.GetItem <MapItemLayerTilemap>(
                            LayersStart + group.StartLayer + l,
                            out _,
                            out _
                            );

                        if ((tilemap.Flags & 1) == 0) // TILESLAYERFLAG_GAME
                        {
                            continue;
                        }

                        GameLayer = tilemap;
                        GameGroup = group;

                        GameGroup.OffsetX   = 0;
                        GameGroup.OffsetY   = 0;
                        GameGroup.ParallaxX = 100;
                        GameGroup.ParallaxY = 100;

                        if (GameGroup.Version >= 2)
                        {
                            GameGroup.UseClipping = 0;
                            GameGroup.ClipX       = 0;
                            GameGroup.ClipY       = 0;
                            GameGroup.ClipW       = 0;
                            GameGroup.ClipH       = 0;
                        }

                        break;
                    }
                }
            }
        }
Пример #2
0
        private static void ExportImages(MapContainer mapContainer)
        {
            mapContainer.GetType(MapItemTypes.Image, out var imagesStart, out var imagesNum);
            Debug.Log("map", imagesNum > 0 ? "images:" : "images not found");

            for (var i = 0; i < imagesNum; i++)
            {
                var image     = mapContainer.GetItem <MapItemImage>(imagesStart + i, out _, out _);
                var imageName = mapContainer.GetData <string>(image.ImageName);

                Debug.Log("map", "   " + string.Join(';', new string[]
                {
                    $"name={imageName}",
                    $"width={image.Width}",
                    $"height={image.Height}",
                    $"external={image.External}"
                }));

                //var imageData = mapContainer.GetData<byte[]>(image.ImageData);
                //var format = Image.DetectFormat(imageData);

                //using (var image32 = Image.Load<Rgba32>(imageData))
                //{
                //    image32.Save($"{image.ImageName}.png");
                //}

                mapContainer.UnloadData(image.ImageName);
            }
        }
Пример #3
0
        private static void ExportImages(MapContainer mapContainer)
        {
            mapContainer.GetType(MapItemTypes.IMAGE, out var imagesStart, out var imagesNum);
            Debug.Log("map", imagesNum > 0 ? "images:" : "images not found");

            for (var i = 0; i < imagesNum; i++)
            {
                var image     = mapContainer.GetItem <MapItemImage>(imagesStart + i, out _, out _);
                var imageName = mapContainer.GetData <string>(image.ImageName);

                Debug.Log("map", "   " + string.Join(';', new string[]
                {
                    $"name={imageName}",
                    $"width={image.Width}",
                    $"height={image.Height}",
                    $"external={image.External}"
                }));

                //var imageData = mapContainer.GetData<byte>(image.ImageData);
                //File.WriteAllBytes($"{image.ImageName}.png", imageData);

                mapContainer.UnloadData(image.ImageName);
            }
        }