Esempio n. 1
0
    private void handle(string str)
    {
        if (string.IsNullOrEmpty(str))
        {
            if (callback != null)
            {
                callback(false);
            }
            return;
        }
        List <Scene> updateList;
        List <Scene> deleteList;

        SceneSerializer.ToObjects(str, out updateList, out deleteList);
        bool result = false;

        if (updateList != null && updateList.Count != 0)
        {
            LogicController.ReplaceScenesIgnoreFavourite(updateList);
            result = true;
        }
        if (deleteList != null && deleteList.Count != 0)
        {
            LogicController.DeleteScenes(deleteList);
            result = true;
        }
        if (callback != null)
        {
            callback(result);
        }
    }
Esempio n. 2
0
    void Serialize()
    {
        var scene = SceneManager.GetActiveScene();
        var data  = SceneSerializer.Serialize(scene);

        SceneSerializer.DeserializeGameObjects(data, transform);
    }
Esempio n. 3
0
        public void RestoreToCurrent(string path)
        {
            DebugUtil.Log("[OGSerializer] Restoring scene from " + path);

            XmlDocument doc = new XmlDocument();

            try {
                doc.Load(path);
            }catch (Exception) {
                DebugUtil.Log("[OGSerializer] failed to read XmlDocument");
                throw;
            }

            // begin restore
            OGActions.BeginRestoreExistingScene();

            // restore scene objects
            XMLInputStream stream = new XMLInputStream()
            {
                xml = doc
            };
            SceneSerializer serializer = new SceneSerializer()
            {
                SOFactory = new SOFactory()
            };

            serializer.Restore(stream, OG.Scene);

            // restore datamodel
            RestoreDataModel(doc);
        }
Esempio n. 4
0
        /// <summary>
        /// serialize scene, with SO filter
        /// </summary>
        protected virtual void StoreScene(IOutputStream o, FScene scene)
        {
            SceneSerializer serializer = new SceneSerializer();

            serializer.SOFilterF = SerializeSOFilter;
            serializer.Store(o, scene);
        }
Esempio n. 5
0
        public static Scene Load(string path)
        {
            SceneFileEnvironment sfe;

            JsonSerializer serializer = new JsonSerializer(JsonSerializerSettings.Default);

            using (FileStream stream = new FileStream(path, FileMode.Open))
            {
                sfe = (SceneFileEnvironment)serializer.Deserialize(stream, typeof(SceneFileEnvironment));
            }

            string directory = Path.GetDirectoryName(path);

            {
                string[] assembliesPaths = Array.ConvertAll(File.ReadAllText(directory + sfe.AssembliesList)
                                                            .Trim('\n', ' ').Split("\n"),
                                                            str => str.Trim(' '))
                                           .Where(str => !string.IsNullOrWhiteSpace(str))
                                           .ToArray();
                for (int i = 0; i < assembliesPaths.Length; i++)
                {
                    AssemblyLoader.Load(assembliesPaths[i]);
                }
            }

            Scene scene;

            {
                scene = SceneSerializer.DeserializeJson(File.ReadAllText(directory + sfe.Scene));
            }

            Log.Core.Info("loaded scene");

            return(scene);
        }
Esempio n. 6
0
        public static bool EmitScanSO(SceneSerializer s, IOutputStream o, SceneObject gso)
        {
            ScanSO so = gso as ScanSO;

            o.AddAttribute(IOStrings.ASOType, so.Type.identifier);
            SceneSerializerEmitTypesExt.EmitDMeshSO(s, o, so as DMeshSO);
            return(true);
        }
Esempio n. 7
0
        public static void OpenFile()
        {
            var path = EditorUtility.OpenFilePanel("Open a serialized scene file", "", "bin");

            if (path.Length != 0)
            {
                var data   = File.ReadAllBytes(path);
                var parent = new GameObject(Path.GetFileName(path));
                SceneSerializer.DeserializeGameObjects(data, parent.transform);
            }
        }
Esempio n. 8
0
    //-------------------------------------------------
    #region Start method

    private void Start()
    {
        if (this.cubes.Length != 0)
        {
            for (int i = 0; i < this.cubes.Length; i++)
            {
                cubes [i].position    = new Vector3(Random.Range(-this.range, this.range), Random.Range(-this.range, this.range), Random.Range(-this.range, this.range));
                cubes [i].eulerAngles = new Vector3(Random.Range(0, 360), Random.Range(0, 360), Random.Range(0, 360));
                SceneSerializer.AddCube(cubes[i]);
            }
        }
    }
Esempio n. 9
0
        public static bool EmitPlaneIntersectionCurveSO(SceneSerializer s, IOutputStream o, SceneObject gso)
        {
            PlaneIntersectionCurveSO so = gso as PlaneIntersectionCurveSO;

            if (so == null)
            {
                throw new Exception("EmitPlaneIntersectionCurveSO: input so is not an PlaneIntersectionCurveSO!");
            }
            o.AddAttribute(IOStrings.ASOType, so.Type.identifier);
            SceneSerializerEmitTypesExt.EmitPolyCurveSO(s, o, so as PolyCurveSO);
            return(true);
        }
Esempio n. 10
0
        public static bool Emit(SceneSerializer s, IOutputStream o, SceneObject gso)
        {
            PrintMeshSO so = gso as PrintMeshSO;

            o.AddAttribute(IOStrings.ASOType, so.Type.identifier);
            o.AddAttribute(AttrSourceFilePath, so.SourceFilePath);

            EmitPrintMeshSettings(s, o, so.Settings);

            SceneSerializerEmitTypesExt.EmitDMeshSO(s, o, so as DMeshSO);
            return(true);
        }
Esempio n. 11
0
    //-------------------------------------------------
    #region OnRandomizeClicked method

    public void OnRandomizeClicked()
    {
        if (this.cubes.Length != 0)
        {
            SceneSerializer.Collection.cubes.Clear();
            for (int i = 0; i < this.cubes.Length; i++)
            {
                cubes [i].position    = new Vector3(Random.Range(-this.range, this.range), Random.Range(-this.range, this.range), Random.Range(-this.range, this.range));
                cubes [i].eulerAngles = new Vector3(Random.Range(0, 360), Random.Range(0, 360), Random.Range(0, 360));
                SceneSerializer.AddCube(cubes[i]);
            }
        }
    }
Esempio n. 12
0
        public static bool EmitLengthenPivotSO(SceneSerializer s, IOutputStream o, SceneObject gso)
        {
            LengthenPivotSO so = gso as LengthenPivotSO;

            if (so == null)
            {
                throw new Exception("EmitLengthenPivotSO: input so is not an LengthenPivotSO!");
            }
            o.AddAttribute(IOStrings.ASOType, so.Type.identifier);
            s.EmitFrame(o, PivotOriginalLegPoint, new Frame3f(so.InitialLegPtL));
            SceneSerializerEmitTypesExt.EmitPivotSO(s, o, so as PivotSO);
            return(true);
        }
Esempio n. 13
0
        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"
            });
        }
Esempio n. 14
0
        public static void Save(string path, Scene scene, SceneFileEnvironment sfe)
        {
            // save all other files
            File.WriteAllText(sfe.AssembliesList, String.Join("\n", AssemblyLoader.LoadedAssemblies.Select(pair => pair.Path)));
            File.WriteAllText(sfe.Scene, SceneSerializer.SertializeJson(scene));

            JsonSerializer serializer = new JsonSerializer(JsonSerializerSettings.Default);

            using (FileStream stream = new FileStream(path, FileMode.Create))
            {
                serializer.Serialize(sfe, stream);
            }

            Log.Core.Info("saved scene");
        }
Esempio n. 15
0
        public static void EmitPrintMeshSettings(this SceneSerializer s, IOutputStream o, PrintMeshSettings settings)
        {
            o.BeginStruct(PrintSettingsStruct);
            o.AddAttribute(AttrPrintSettingsVersion, settings.Version);

            o.AddAttribute(AttrPrintSettingsObjectType, (int)settings.ObjectType);
            o.AddAttribute(AttrPrintSettingsOpenMode, (int)settings.OpenMeshMode);

            o.AddAttribute(AttrPrintSettingsNoVoids, settings.NoVoids);
            o.AddAttribute(AttrPrintSettingsShellOnly, settings.OuterShellOnly);

            o.AddAttribute(AttrPrintSettingsClearanceXY, (float)settings.Clearance);
            o.AddAttribute(AttrPrintSettingsOffsetXY, (float)settings.OffsetXY);

            o.EndStruct();
        }
        public async Task CanDeserializeAndReSerializeAsIs()
        {
            string sceneJson  = GetSampleSceneJson();
            var    fileSystem = new MockFileSystem(new Dictionary <string, MockFileData>
            {
                {
                    _scenePath,
                    new MockFileData(sceneJson)
                },
            });

            var serializer = new SceneSerializer(fileSystem, new Throttler());
            var scene      = await serializer.DeserializeAsync(_scenePath);

            await serializer.SerializeAsync(scene, _scenePath);

            Assert.That(fileSystem.File.ReadAllText(_scenePath), Is.EqualTo(sceneJson));
        }
        public void SetUp()
        {
            _sceneFactory = Substitute.For <ISceneFactory>();
            _sceneFactory.Create().Returns(ci => TestSceneFactory.Create());

            _sceneBehaviorFactoryProvider = Substitute.For <ISceneBehaviorFactoryProvider>();
            var emptySceneBehaviorFactory = Substitute.For <ISceneBehaviorFactory>();

            emptySceneBehaviorFactory.BehaviorName.Returns(string.Empty);
            emptySceneBehaviorFactory.Create(Arg.Any <Scene>())
            .Returns(ci => SceneBehavior.CreateEmpty(ci.Arg <Scene>()));
            _sceneBehaviorFactoryProvider.Get(string.Empty).Returns(emptySceneBehaviorFactory);

            _componentFactoryProvider = Substitute.For <IComponentFactoryProvider>();
            _assetStore = Substitute.For <IAssetStore>();

            _sceneSerializer = new SceneSerializer(_sceneFactory, _sceneBehaviorFactoryProvider, _componentFactoryProvider, _assetStore);
        }
Esempio n. 18
0
        public void StartPlaymode()
        {
            EditorApplication.Log.Info("starting playmode");

            string json;

            json = SceneSerializer.SertializeJson(Context.Scene);
            //EditorApplication.Log.Debug($"\n{json}");
            workingScene = Context.Scene;
            ClearContext();

            Context.Scene = SceneSerializer.DeserializeJson(json);

            Context.Scene.Load();
            Context.Scene.Start();

            EditorApplication.Log.Info("playmode started");
        }
        public async Task CanGetScriptsFast()
        {
            string sceneJson  = GetSampleSceneJson();
            var    fileSystem = new MockFileSystem(new Dictionary <string, MockFileData>
            {
                {
                    _scenePath,
                    new MockFileData(sceneJson)
                },
            });

            var serializer = new SceneSerializer(fileSystem, new Throttler());
            var scripts    = await serializer.FindScriptsFastAsync(_scenePath);

            Assert.That(scripts, Is.EqualTo(new[]
            {
                "Saves/Script 1.cs"
            }));
        }
Esempio n. 20
0
    public static void ExportToHTML5()
    {
        var sceneData = SceneSerializer.Serialize();
        var sceneJson = JsonConvert.SerializeObject(sceneData, Formatting.None, settings);
        var sceneJs   = $"window.sceneJson = '{sceneJson}'";

        var targetPath = EditorUtility.SaveFolderPanel("Save HTML 5 build", Directory.GetCurrentDirectory(), "ThreeJS");
        var distFiles  = Directory.GetFiles(distPath).Where((file) => !new Regex(@"\.meta$").IsMatch(file));

        foreach (var file in distFiles)
        {
            File.Copy(
                Path.Combine(distPath, Path.GetFileName(file)),
                Path.Combine(targetPath, Path.GetFileName(file)),
                true);
        }
        File.WriteAllText(Path.Combine(targetPath, "scene.js"), sceneJs);

        Debug.Log("Build complete!");
    }
Esempio n. 21
0
        public void Export(int i = 0)
        {
            i++;
            string save = "Content/LevelSave" + i + ".json";
            if (File.Exists(save))
            {
                Export(i);
                return;
            }

            Console.WriteLine("Saving in " + save);

            SceneSerializer serializer = new SceneSerializer(save);

            foreach (BodyEx body in world.Bodies)
            {
                serializer.AddBody(body);
            }

            File.WriteAllText(save, JsonConvert.SerializeObject(serializer.Scene, Formatting.Indented, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore, DefaultValueHandling = DefaultValueHandling.Ignore }));
        }
Esempio n. 22
0
    //-------------------------------------------------
    #region OnReceiveData method

    public void OnReceiveData(string data)
    {
        if (SceneSerializer.Deserialize(data))
        {
            if (this.cubes.Length != 0)
            {
                Vector3 vector = new Vector3();
                for (int i = 0; i < this.cubes.Length; i++)
                {
                    vector.x              = SceneSerializer.Collection.cubes[i].posX;
                    vector.y              = SceneSerializer.Collection.cubes[i].posY;
                    vector.z              = SceneSerializer.Collection.cubes[i].posZ;
                    cubes [i].position    = vector;
                    vector.x              = SceneSerializer.Collection.cubes[i].rotX;
                    vector.y              = SceneSerializer.Collection.cubes[i].rotY;
                    vector.z              = SceneSerializer.Collection.cubes[i].rotZ;
                    cubes [i].eulerAngles = vector;
                }
            }
        }
    }
Esempio n. 23
0
        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);
                }
            }
        }
Esempio n. 24
0
        public unsafe override void OnRender()
        {
            Profiler.BeginScope($"{nameof(EditorLayer)}.{nameof(EditorLayer.OnRender)}");

            Renderer.Clear();

            ImGuiLayer.Instance.Begin();

            SetupDockspace();

            DrawModals();

            DrawMainMenuBar();

            ImGui.ShowDemoWindow(); // purely dev thing

            // debug
            ImGui.Begin("Debug");
            if (Context.Scene != null)
            {
                Vector3 gr = (Context.Scene.RigidBodyWorld != null) ? Context.Scene.RigidBodyWorld.Gravity : default;
                if (ImGui.DragFloat3("gravity", ref gr))
                {
                    Context.Scene.RigidBodyWorld.Gravity = gr;
                }
                ImGui.Text("editor camera pos:");
                if (EditorCamera != null)
                {
                    ImGui.Text(EditorCamera.Position.ToString("0.00"));
                }
                ImGui.SliderInt("sleep", ref sleep, 0, 1000);
                if (sleep > 0)
                {
                    System.Threading.Thread.Sleep(sleep);
                }

                // test seri
                if (ImGui.Button("seri test"))
                {
                    string json;
                    json = SceneSerializer.SertializeJson(Context.Scene);
                    Log.App.Debug(json);

                    Context.Scene.Unload();
                    ClearContext();
                    Context.Scene = SceneSerializer.DeserializeJson(json);
                    Context.Scene.Load();
                }
            }
            ImGui.End();


            Profiler.BeginScope($"{nameof(EditorLayer)}.{nameof(EditorLayer.DrawPanels)}");
            DrawPanels();
            Profiler.EndScope();

            EndDockspace();

            ImGuiLayer.Instance.End();

            Profiler.EndScope();
        }
    void handle(string res)
    {
        if (string.IsNullOrEmpty(res))
        {
            if (callback != null)
            {
                callback(false);
            }
            return;
        }
        JsonData jd = JsonMapper.ToObject(res);

        if (jd.Contains(Param.SCENE))
        {
            List <Scene> updateList;
            List <Scene> deleteList;
            SceneSerializer.ToObjects(jd[Param.SCENE].ToJson(), out updateList, out deleteList);
            if (updateList != null && updateList.Count != 0)
            {
                LogicController.ReplaceScenesIgnoreFavourite(updateList);
            }
            if (deleteList != null && deleteList.Count != 0)
            {
                LogicController.DeleteScenes(deleteList);
            }
        }
        if (jd.Contains(Param.PRODUCT))
        {
            List <Product> updateList;
            List <Product> deleteList;
            ProductSerializer.ToObjects(jd[Param.PRODUCT].ToJson(), out updateList, out deleteList);
            if (updateList != null && updateList.Count != 0)
            {
                LogicController.ReplaceProducts(updateList);
            }
            if (deleteList != null && deleteList.Count != 0)
            {
                LogicController.DeleteProducts(deleteList);
            }
        }
        if (jd.Contains(Param.PICTURE))
        {
            List <Picture> list = PictureSerializer.ToObjects(jd[Param.PICTURE].ToJson());
            if (list != null && list.Count != 0)
            {
                LogicController.ReplacePictures(list);
            }
        }
        if (jd.Contains(Param.ASSET))
        {
            List <Asset> list = AssetSerializer.ToObjects(jd[Param.ASSET].ToJson());
            if (list != null && list.Count != 0)
            {
                LogicController.ReplaceAssets(list);
            }
        }
        if (callback != null)
        {
            callback(true);
        }
    }
Esempio n. 26
0
    //-------------------------------------------------
    #region OnSaveClicked method

    public void OnSaveClicked()
    {
        string serializedData = SceneSerializer.Serialize();

        Application.ExternalCall("saveSceneToDisk", serializedData);
    }