コード例 #1
0
ファイル: SceneController.cs プロジェクト: chc/thps.api
        public async Task <FileStreamResult> PostDownloadScene(GamePlatform platform, GameVersion version, [FromBody] Scene sceneData)
        {
            if (platform != GamePlatform.PlatformType_PC || version != GameVersion.GameVersion_THUG)
            {
                throw new System.NotImplementedException();
            }
            IChecksumResolver checksumResolver = new THPS.API.Utils.ChecksumResolver(scriptKeyRepository, platform, version);
            var writer = new SceneSerializer(checksumResolver);
            var ms     = await writer.WriteScene(sceneData);

            return(new FileStreamResult(ms, "application/octet-stream")
            {
                FileDownloadName = "scene.mdl.xbx"
            });
        }
コード例 #2
0
        public async Task <FileStreamResult> PostCreateCAS(GamePlatform platform, GameVersion version, string friendlyName, [FromBody] QScript.Save.CAS.CASData input)
        {
            SaveFileTypeRecord record = await scriptKeyRepository.GetFileInfo(friendlyName, version, platform);

            if (record == null)
            {
                throw new NotImplementedException();
            }
            //GetFileInfo(string name, GameVersion version, GamePlatform platform);
            IChecksumResolver checksumResolver = new THPS.API.Utils.ChecksumResolver(scriptKeyRepository, platform, version);

            QScript.Save.CAS.ISerializationProvider serializer = new QScript.Save.CAS.Games.THPS4Common_SerializationProvider(checksumResolver, (int)record.fileVersion, record.fixedFileSize);
            var ms = await serializer.SerializeCAS(input);

            ms.Seek(0, SeekOrigin.Begin);
            return(new FileStreamResult(ms, "application/octet-stream")
            {
                FileDownloadName = "save." + friendlyName
            });
        }
コード例 #3
0
        public async Task <List <TokenEntry> > PostDownloadCAS(GamePlatform platform, GameVersion version)
        {
            IChecksumResolver checksumResolver = new THPS.API.Utils.ChecksumResolver(scriptKeyRepository, platform, version);
            var formData = HttpContext.Request.Form;
            var files    = HttpContext.Request.Form.Files;

            using (MemoryStream ms = new MemoryStream())
            {
                var file = files.First();
                using (BinaryReader bs = new BinaryReader(ms))
                {
                    var reader = new TokenBufferReader(checksumResolver, bs);
                    await file.CopyToAsync(ms);

                    ms.Seek(0, SeekOrigin.Begin);
                    var results = await reader.ReadBuffer();

                    return(results);
                }
            }
        }
コード例 #4
0
        public async Task <QScript.Save.CAS.CASData> PostDownloadCAS(GamePlatform platform, GameVersion version)
        {
            IChecksumResolver checksumResolver = new THPS.API.Utils.ChecksumResolver(scriptKeyRepository, platform, version);

            QScript.Save.CAS.ISerializationProvider deserializer = new QScript.Save.CAS.Games.THPS4Common_SerializationProvider(checksumResolver, 1, 1);
            var formData = HttpContext.Request.Form;
            var files    = HttpContext.Request.Form.Files;

            using (MemoryStream ms = new MemoryStream())
            {
                var file = files.First();
                using (BinaryReader bs = new BinaryReader(ms))
                {
                    await file.CopyToAsync(ms);

                    ms.Seek(0, SeekOrigin.Begin);
                    var results = await deserializer.DeserializeCAS(bs);

                    return(results);
                }
            }
        }
コード例 #5
0
ファイル: SceneController.cs プロジェクト: chc/thps.api
        public async Task <Scene> PostUploadScene(GamePlatform platform, GameVersion version)
        {
            if (platform != GamePlatform.PlatformType_PC || version != GameVersion.GameVersion_THUG)
            {
                throw new System.NotImplementedException();
            }
            IChecksumResolver checksumResolver = new THPS.API.Utils.ChecksumResolver(scriptKeyRepository, platform, version);
            var files = HttpContext.Request.Form.Files;

            using (MemoryStream ms = new MemoryStream())
            {
                var file = files.First();
                using (BinaryReader bs = new BinaryReader(ms))
                {
                    var reader = new SceneSerializer(checksumResolver);
                    await file.CopyToAsync(ms);

                    ms.Seek(0, SeekOrigin.Begin);
                    var results = await reader.ReadBuffer(bs);

                    return(results);
                }
            }
        }