Example #1
0
        //[DllImport( "user32.dll", CharSet = CharSet.Auto, ExactSpelling = true )]
        //private static extern IntPtr GetForegroundWindow();
        //[DllImport( "user32.dll", CharSet = CharSet.Auto, SetLastError = true )]
        //private static extern int GetWindowThreadProcessId( IntPtr handle, out int processId );

        //static bool ApplicationIsActivated()
        //{
        //	var activatedHandle = GetForegroundWindow();
        //	if( activatedHandle == IntPtr.Zero )
        //		return false;       // No window is currently activated

        //	var procId = Process.GetCurrentProcess().Id;
        //	int activeProcId;
        //	GetWindowThreadProcessId( activatedHandle, out activeProcId );

        //	return activeProcId == procId;
        //}

        bool IsActive()
        {
            SoundChannelGroup masterGroup = MasterChannelGroup;
            bool masterGroupPaused        = masterGroup == null || masterGroup.Pause;

            bool active = !masterGroupPaused;

            if (active && _SuspendWorkingWhenApplicationIsNotActive)
            {
                if (SystemSettings.CurrentPlatform == SystemSettings.Platform.Windows)
                {
                    active = EngineApp.platform.ApplicationIsActivated();

                    //IntPtr h = hWnd;
                    //while( h != IntPtr.Zero )
                    //{
                    //	active = IsWindow( h ) != 0 && IsWindowVisible( h ) != 0 && IsIconic( h ) == 0;
                    //	if( !active )
                    //		break;

                    //	h = GetParent( h );
                    //}
                }
                else
                {
                    if (EngineApp.EnginePaused)
                    {
                        active = false;
                    }
                }
            }

            return(active);
        }
        public static void EngineApp_AppCreateAfter()
        {
            Log.Handlers.InvisibleInfoHandler += InvisibleLog_Handlers_InfoHandler;
            Log.Handlers.InfoHandler          += Log_Handlers_InfoHandler;
            Log.Handlers.WarningHandler       += Log_Handlers_WarningHandler;
            Log.Handlers.ErrorHandler         += Log_Handlers_ErrorHandler;
            Log.Handlers.FatalHandler         += Log_Handlers_FatalHandler;

            EngineApp.RegisterConfigParameter += EngineApp_RegisterConfigParameter;

            EngineConsole.Init();
            //!!!!
            //GameControlsManager.Init();

            //UIControl engineLoadingWindow = ResourceManager.LoadSeparateInstance<UIControl>( "Base\\UI\\Windows\\EngineLoadingWindow.ui", false, null );
            //if( engineLoadingWindow != null )
            //	MainViewport.UIContainer.AddComponent( engineLoadingWindow );

            ////Subcribe to callbacks during engine loading. We will render scene from callback.
            //LongOperationCallbackManager.Subscribe( LongOperationCallbackManager_LoadingCallback, programLoadingWindow );

            EngineApp.Tick += EngineApp_Tick;

            ////finish initialization of materials and hide loading window.
            ////!!!!!!
            ////LongOperationCallbackManager.Unsubscribe();
            //if( engineLoadingWindow != null )
            //	engineLoadingWindow.RemoveFromParent( true );

            //subscribe to main viewport events
            {
                MainViewport.KeyDown                 += MainViewport_KeyDown;
                MainViewport.KeyPress                += MainViewport_KeyPress;
                MainViewport.KeyUp                   += MainViewport_KeyUp;
                MainViewport.MouseDown               += MainViewport_MouseDown;
                MainViewport.MouseUp                 += MainViewport_MouseUp;
                MainViewport.MouseDoubleClick        += MainViewport_MouseDoubleClick;
                MainViewport.MouseMove               += MainViewport_MouseMove;
                MainViewport.MouseWheel              += MainViewport_MouseWheel;
                MainViewport.JoystickEvent           += MainViewport_JoystickEvent;
                MainViewport.SpecialInputDeviceEvent += MainViewport_SpecialInputDeviceEvent;

                //!!!!!Tick +=

                MainViewport.UpdateBegin        += MainViewport_UpdateBegin;
                MainViewport.UpdateBeforeOutput += MainViewport_UpdateBeforeOutput;
                MainViewport.UpdateEnd          += MainViewport_UpdateEnd;
            }

            //change application title
            if (EngineApp.CreatedInsideEngineWindow != null)
            {
                EngineApp.CreatedInsideEngineWindow.Title = ProjectSettings.Get.ProjectName;
            }

            //update sound volume
            if (EngineApp.DefaultSoundChannelGroup != null)
            {
                EngineApp.DefaultSoundChannelGroup.Volume = soundVolume;
            }

            //create music channel group
            musicChannelGroup = SoundWorld.CreateChannelGroup("Music");
            if (musicChannelGroup != null)
            {
                SoundWorld.MasterChannelGroup.AddGroup(musicChannelGroup);
                musicChannelGroup.Volume = musicVolume;
            }


            PlayerInv.Name = "PlayerInv";
            PlayerInv.InitialItems.Add("Water, 20");
            PlayerInv.InitialItems.Add("Seed, 4");
            PlayerInv.InitialItems.Add("Empty, 0");
            PlayerInv.InitialItems.Add("Empty, 0");
            PlayerInv.InitialItems.Add("Empty, 0");
            PlayerInv.CalcInitialItems();
            PlayerInv.CalcImagePaths();
        }