Ejemplo n.º 1
0
        private void addDebugTools()
        {
            Add(DrawVisualiser = new DrawVisualiser()
            {
                Depth = float.MaxValue / 2,
            });

            Add(LogOverlay = new LogOverlay());
        }
Ejemplo n.º 2
0
        public bool OnPressed(FrameworkAction action)
        {
            switch (action)
            {
            case FrameworkAction.CycleFrameStatistics:
                switch (FrameStatistics.Value)
                {
                case FrameStatisticsMode.None:
                    FrameStatistics.Value = FrameStatisticsMode.Minimal;
                    break;

                case FrameStatisticsMode.Minimal:
                    FrameStatistics.Value = FrameStatisticsMode.Full;
                    break;

                case FrameStatisticsMode.Full:
                    FrameStatistics.Value = FrameStatisticsMode.None;
                    break;
                }

                return(true);

            case FrameworkAction.ToggleDrawVisualiser:

                if (drawVisualiser == null)
                {
                    LoadComponentAsync(drawVisualiser = new DrawVisualiser
                    {
                        Depth = float.MinValue / 2,
                    }, AddInternal);
                }

                drawVisualiser.ToggleVisibility();
                return(true);

            case FrameworkAction.ToggleLogOverlay:
                if (logOverlay == null)
                {
                    LoadComponentAsync(logOverlay = new LogOverlay
                    {
                        Depth = float.MinValue / 2,
                    }, AddInternal);
                }

                logOverlay.ToggleVisibility();
                return(true);

            case FrameworkAction.ToggleFullscreen:
                Window?.CycleMode();
                return(true);
            }

            return(false);
        }
Ejemplo n.º 3
0
        private void addDebugTools()
        {
            LoadComponentAsync(DrawVisualiser = new DrawVisualiser
            {
                Depth = float.MinValue / 2,
            }, AddInternal);

            LoadComponentAsync(logOverlay = new LogOverlay
            {
                Depth = float.MinValue / 2,
            }, AddInternal);
        }
Ejemplo n.º 4
0
        private void addDebugTools()
        {
            (DrawVisualiser = new DrawVisualiser()
            {
                Depth = float.MinValue / 2,
            }).Preload(this, AddInternal);

            (LogOverlay = new LogOverlay()
            {
                Depth = float.MinValue / 2,
            }).Preload(this, AddInternal);
        }
Ejemplo n.º 5
0
        private void addDebugTools()
        {
            (DrawVisualiser = new DrawVisualiser
            {
                Depth = float.MinValue / 2,
            }).LoadAsync(this, AddInternal);

            (logOverlay = new LogOverlay
            {
                Depth = float.MinValue / 2,
            }).LoadAsync(this, AddInternal);
        }
Ejemplo n.º 6
0
        public static void Initialize()
        {
            if (isInitialized)
            {
                return;
            }
            isInitialized = true;

            LogOverlay.ListenForLogs();

            Initializer.PreinitStep();

            Debug.Log("Adding global Scaphandre Engine object...");
            injectorGO = new GameObject("___SCAPHANDRE_ENGINE__GO");
            injectorGO.AddComponent <SceneCleanerPreserve>();
            Object.DontDestroyOnLoad(injectorGO);
            CreateScaphandreEngineObjectTree();


            Debug.Log("Added global Scaphandre Engine object");

            Initializer.InitStep(injectorGO);
        }
Ejemplo n.º 7
0
        private void load(FrameworkConfigManager config)
        {
            Resources = new ResourceStore <byte[]>();
            Resources.AddStore(new NamespacedResourceStore <byte[]>(new DllResourceStore(typeof(Game).Assembly), @"Resources"));

            Textures = new TextureStore(Host.CreateTextureLoaderStore(new NamespacedResourceStore <byte[]>(Resources, @"Textures")));
            Textures.AddStore(Host.CreateTextureLoaderStore(new OnlineStore()));
            dependencies.Cache(Textures);

            var tracks = new ResourceStore <byte[]>();

            tracks.AddStore(new NamespacedResourceStore <byte[]>(Resources, @"Tracks"));
            tracks.AddStore(new OnlineStore());

            var samples = new ResourceStore <byte[]>();

            samples.AddStore(new NamespacedResourceStore <byte[]>(Resources, @"Samples"));
            samples.AddStore(new OnlineStore());

            Audio = new AudioManager(Host.AudioThread, tracks, samples)
            {
                EventScheduler = Scheduler
            };
            dependencies.Cache(Audio);

            dependencies.CacheAs(Audio.Tracks);
            dependencies.CacheAs(Audio.Samples);

            // attach our bindables to the audio subsystem.
            config.BindWith(FrameworkSetting.AudioDevice, Audio.AudioDevice);
            config.BindWith(FrameworkSetting.VolumeUniversal, Audio.Volume);
            config.BindWith(FrameworkSetting.VolumeEffect, Audio.VolumeSample);
            config.BindWith(FrameworkSetting.VolumeMusic, Audio.VolumeTrack);

            Shaders = new ShaderManager(new NamespacedResourceStore <byte[]>(Resources, @"Shaders"));
            dependencies.Cache(Shaders);

            var cacheStorage = Host.Storage.GetStorageForDirectory(Path.Combine("cache", "fonts"));

            // base store is for user fonts
            Fonts = new FontStore(useAtlas: true, cacheStorage: cacheStorage);

            // nested store for framework provided fonts.
            // note that currently this means there could be two async font load operations.
            Fonts.AddStore(localFonts = new FontStore(useAtlas: false));

            addFont(localFonts, Resources, @"Fonts/OpenSans/OpenSans");
            addFont(localFonts, Resources, @"Fonts/OpenSans/OpenSans-Bold");
            addFont(localFonts, Resources, @"Fonts/OpenSans/OpenSans-Italic");
            addFont(localFonts, Resources, @"Fonts/OpenSans/OpenSans-BoldItalic");

            addFont(Fonts, Resources, @"Fonts/FontAwesome5/FontAwesome-Solid");
            addFont(Fonts, Resources, @"Fonts/FontAwesome5/FontAwesome-Regular");
            addFont(Fonts, Resources, @"Fonts/FontAwesome5/FontAwesome-Brands");

            dependencies.Cache(Fonts);

            Localisation = new LocalisationManager(config);
            dependencies.Cache(Localisation);

            logOverlayVisibility = config.GetBindable <bool>(FrameworkSetting.ShowLogOverlay);
            logOverlayVisibility.BindValueChanged(visibility =>
            {
                if (visibility.NewValue)
                {
                    if (logOverlay == null)
                    {
                        LoadComponentAsync(logOverlay = new LogOverlay
                        {
                            Depth = float.MinValue / 2,
                        }, AddInternal);
                    }

                    logOverlay.Show();
                }
                else
                {
                    logOverlay?.Hide();
                }
            }, true);
        }