Пример #1
0
        public override async Task <bool> InvokeAsync(string paramList)
        {
            const string CsvFileFormat = "collision/{0}.pcb";
            var          c             = 0;
            var          allMaps       = _Realm.GameData.GetSheet <SaintCoinach.Xiv.TerritoryType>().Where(i => i.PlaceName.ToString().Contains("The Palace of the Dead")).GroupBy(i => i.Bg).Select(i => i.First());

            foreach (var map in allMaps)
            {
                var territory = new Graphics.Territory(map);
                //if (territory.Collision == null) continue;

                OutputInformation(territory.Name);
                var target = new FileInfo(Path.Combine(_Realm.GameVersion, string.Format(CsvFileFormat, map.Key)));

                if (!target.Directory.Exists)
                {
                    target.Directory.Create();
                }

                //System.IO.File.WriteAllBytes(target.FullName, territory.Collision.GetData());
                c++;
            }
            OutputInformation("{0} collisions saved", c);

            return(true);
        }
Пример #2
0
        public Graphics.Territory GetTerritory()
        {
            if (TerritoryType == null || TerritoryType.Key == 0)
            {
                return(null);
            }

            Graphics.Territory t = new Graphics.Territory(this.TerritoryType);
            if (t.Terrain == null && t.LgbFiles.Length == 0)
            {
                return(null);
            }
            return(t);
        }
Пример #3
0
        public override async Task <bool> InvokeAsync(string paramList)
        {
            var c       = 1;
            var allMaps = _Realm.GameData.GetSheet <SaintCoinach.Xiv.TerritoryType>().Where(i => i.PlaceName.ToString().Contains("Heaven-on-High")).GroupBy(i => i.Bg).Select(i => i.First());
//var allMaps = _Realm.GameData.GetSheet<SaintCoinach.Xiv.TerritoryType>().Where(i => i.PlaceName.ToString().Contains("The Palace of the Dead")).GroupBy(i => i.Bg).Select(i => i.First());
            const string FilePath = @".\maps\";

            if (!Directory.Exists(FilePath))
            {
                Directory.CreateDirectory(FilePath);
            }

            try
            {
                foreach (var map in allMaps)
                {
                    var territory = new Graphics.Territory(map);
                    OutputInformation(territory.Name);

                    //var _LgbPartsContainer = new ComponentContainer();
                    if (territory.Collider != null)
                    {
                        OutputInformation("PCB FILE FOUND");
                    }


                    var fp = Path.Combine(FilePath, $"{territory.Name}.");
                    if (!Directory.Exists(FilePath))
                    {
                        Directory.CreateDirectory(FilePath);
                    }
                    await DumpMap(fp + "obj", territory);



                    c++;
                }
            }
            catch (Exception ex)
            {
                OutputError(ex.ToString());
            }

            OutputInformation("{0} maps saved", c);

            return(true);
        }
Пример #4
0
        public Graphics.Territory GetTerritory()
        {
            if (TerritoryType == null || TerritoryType.Key == 0)
                return null;

            var t = new Graphics.Territory(this.TerritoryType);
            if (t.Terrain == null && t.LgbFiles.Length == 0)
                return null;
            return t;
        }