Beispiel #1
0
        private void HandleDisplaySettingsChanged(object sender, PropertyChangedEventArgs e)
        {
            if (respondToViewModelChanges)
            {
                var glueProject = GlueState.Self.CurrentGlueProject;

                if (glueProject != null)
                {
                    glueProject.DisplaySettings = viewModel.ToDisplaySettings();

                    GlueCommands.Self.GluxCommands.SaveGlux();

                    CameraSetupCodeGenerator.UpdateOrAddCameraSetup();

                    CameraSetupCodeGenerator.CallSetupCamera(ProjectManager.GameClassFileName, true);
                }
            }
        }
Beispiel #2
0
        private void HandleDisplaySettingsChanged(object sender, PropertyChangedEventArgs e)
        {
            if (respondToViewModelChanges)
            {
                var glueProject = GlueState.Self.CurrentGlueProject;

                if (glueProject != null)
                {
                    glueProject.DisplaySettings = viewModel.ToDisplaySettings();

                    GlueCommands.Self.GluxCommands.SaveGlux();

                    if (CameraSetupCodeGenerator.ShouldGenerateCodeWhenPropertyChanged(e.PropertyName))
                    {
                        CameraSetupCodeGenerator.UpdateOrAddCameraSetup();
                    }

                    CameraSetupCodeGenerator.GenerateCallInGame1(ProjectManager.GameClassFileName, true);

                    CameraAtiUpdateLogic.UpdateAtiTo(viewModel);
                }
            }
        }
Beispiel #3
0
        static void GenerateAllCodeSync(object throwaway)
        {
            var glueProject = GlueState.CurrentGlueProject;

            CameraSetupCodeGenerator.UpdateOrAddCameraSetup();

            CameraSetupCodeGenerator.GenerateCallInGame1(ProjectManager.GameClassFileName, true);

            //Parallel.For(0, layer.data[0].tiles.Count, (count) =>
            GlueCommands.PrintOutput("Starting to generate all Screens");

            // make sure the user hasn't exited the program

            foreach (var screen in glueProject.Screens)
            {
                #region Check for exiting the function becuase Glue is closing

                if (ProjectManager.WantsToClose)
                {
                    PluginManager.ReceiveOutput("Stopping generation because the project is closing");
                    return;
                }

                #endregion


                CodeWriter.GenerateCode(screen);
            }

            GlueCommands.PrintOutput("Done generating Screens, starting Entities");

            // not sure which is faster:
            // Currently the referenced file dictionary makes this not work well:
            //Parallel.ForEach(GlueState.Self.CurrentGlueProject.Entities, (entity) =>
            //    {
            //        CodeWriter.GenerateCode(entity);
            //    });

            // Let's make this thread safe:
            IEnumerable <EntitySave> entityList = null;
            lock (glueProject.Entities)
            {
                entityList = glueProject.Entities.Where(item => true).ToList();
            }

            foreach (var entity in entityList)
            {
                #region Check for exiting the function becuase Glue is closing

                if (ProjectManager.WantsToClose)
                {
                    PluginManager.ReceiveOutput("Stopping generation because the project is closing");
                    return;
                }

                #endregion

                CodeWriter.GenerateCode(entity);
            }



            PluginManager.ReceiveOutput("Done generating Entities, starting GlobalContent");

            #region Check for exiting the function becuase Glue is closing

            if (ProjectManager.WantsToClose)
            {
                PluginManager.ReceiveOutput("Stopping generation because the project is closing");
                return;
            }

            #endregion

            GlobalContentCodeGenerator.UpdateLoadGlobalContentCode();



            #region Check for exiting the function becuase Glue is closing

            if (ProjectManager.WantsToClose)
            {
                PluginManager.ReceiveOutput("Stopping generation because the project is closing");
                return;
            }

            #endregion

            CsvCodeGenerator.RegenerateAllCsvs();
            CsvCodeGenerator.GenerateAllCustomClasses(glueProject);

            if (glueProject.FileVersion >= (int)GlueProjectSave.GluxVersions.AddedGeneratedGame1)
            {
                GlueCommands.GenerateCodeCommands.GenerateGame1();
            }

            GlueCommands.PrintOutput("Done with all generation");
        }
        private void UpdateGluxCameraSettings()
        {
            if (!isInitialized)
            {
                return;
            }

            if (cbIs2D.Text == "True")
            {
                ProjectManager.GlueProjectSave.In2D = true;
            }
            else
            {
                ProjectManager.GlueProjectSave.In2D = false;
            }

            ProjectManager.GlueProjectSave.SetResolution = cbSetResolution.Checked;

            int desiredWidth  = 0;
            int desiredHeight = 0;

            try
            {
                desiredWidth = int.Parse(tbResWidth.Text);
            }
            catch
            {
                tbResWidth.Text = ProjectManager.GlueProjectSave.ResolutionWidth.ToString();
                desiredWidth    = ProjectManager.GlueProjectSave.ResolutionWidth;
                System.Windows.Forms.MessageBox.Show("Invalid width");
            }

            try
            {
                desiredHeight = int.Parse(tbResHeight.Text);
            }
            catch
            {
                tbResHeight.Text = ProjectManager.GlueProjectSave.ResolutionHeight.ToString();
                desiredHeight    = ProjectManager.GlueProjectSave.ResolutionHeight;
                System.Windows.Forms.MessageBox.Show("Invalid height");
            }

            ProjectManager.GlueProjectSave.ResolutionWidth  = desiredWidth;
            ProjectManager.GlueProjectSave.ResolutionHeight = desiredHeight;

            if (ProjectManager.GlueProjectSave.In2D)
            {
                ProjectManager.GlueProjectSave.SetOrthogonalResolution = cbSetOrthResolution.Checked;

                int desiredOrthWidth  = 0;
                int desiredOrthHeight = 0;

                try
                {
                    desiredOrthWidth = int.Parse(tbOrthWidth.Text);
                }
                catch
                {
                    tbOrthWidth.Text = ProjectManager.GlueProjectSave.OrthogonalWidth.ToString();
                    desiredOrthWidth = ProjectManager.GlueProjectSave.OrthogonalWidth;
                    System.Windows.Forms.MessageBox.Show("Invalid Orthogonal width");
                }

                try
                {
                    desiredOrthHeight = int.Parse(tbOrthHeight.Text);
                }
                catch
                {
                    tbOrthHeight.Text = ProjectManager.GlueProjectSave.OrthogonalHeight.ToString();
                    desiredOrthHeight = ProjectManager.GlueProjectSave.OrthogonalHeight;
                    System.Windows.Forms.MessageBox.Show("Invalid Orthogonal height");
                }

                ProjectManager.GlueProjectSave.OrthogonalWidth  = desiredOrthWidth;
                ProjectManager.GlueProjectSave.OrthogonalHeight = desiredOrthHeight;
            }

            ProjectManager.GlueProjectSave.RunFullscreen = RunFullscreenCheckBox.Checked;

            ProjectManager.GlueProjectSave.ApplyToFixedResolutionPlatforms = ApplyToNonPCCheckBox.Checked;

            CameraSetupCodeGenerator.UpdateOrAddCameraSetup();

            //bool whetherToCall = ProjectManager.GlueProjectSave.SetResolution || ProjectManager.GlueProjectSave.In2D;
            // I think we should alway call.
            // Even in 3D the user should be able
            // to set up the Camera in Glue.
            bool whetherToCall = true;

            CameraSetupCodeGenerator.CallSetupCamera(ProjectManager.GameClassFileName, whetherToCall);

            GluxCommands.Self.SaveGlux();
            ProjectManager.SaveProjects();
        }