Exemple #1
0
        public void Update(float time)
        {
            ImGui.Begin("Editor");
            int i = 0;
            var gameObjectCopy = CurrentScene.RootGameObjects.ToList();

            foreach (var obj in gameObjectCopy)
            {
                var name = obj.Name;
                ImGui.InputText($"Name {i}", ref name, 100);
                obj.Name = name;
                if (ImGui.Button($"Save {i}"))
                {
                    var data = CurrentScene.App.Serializer.Serialize(obj);

                    if (!Directory.Exists(SaveTo))
                    {
                        Directory.CreateDirectory(SaveTo);
                    }
                    File.WriteAllBytes(SaveTo + "\\" + obj.Name + ".vspace", data);
                }
                ImGui.SameLine();
                if (ImGui.Button($"Remove {i}"))
                {
                    CurrentScene.RemoveGameObject(obj);
                }
                ImGui.Separator();
                i++;
            }

            _saveFilePicker.Draw(ref SaveTo);

            if (_loadFilePicker.Draw(ref LoadFrom))
            {
                var data = File.ReadAllBytes(LoadFrom);
                var obj  = CurrentScene.App.Serializer.Deserialize <GameObject>(data);
                obj.Transform.WorldPosition = GameObject.Transform.WorldPosition;
                CurrentScene.AddGameObject(obj);
            }

            //ImGui.InputText("Load From", ref LoadFrom, 100);
            //if(ImGui.Button("Load"))
            //{
            //    var data = File.ReadAllBytes(Path + LoadFrom + ".vspace");
            //    var obj = CurrentScene.App.Serializer.Deserialize<GameObject>(data);
            //    obj.Name = LoadFrom;
            //    obj.Transform.WorldPosition = GameObject.Transform.WorldPosition;
            //    CurrentScene.AddGameObject(obj);
            //}
        }