Exemplo n.º 1
0
 private static string GetPromptImagePath(this SteamControllerButton button, ISteamController controller)
 {
     if (controller is SteamworksSteamController)
     {
         return(((SteamworksSteamController)controller).GetButtonPromptPath(button.GetID(), button.GetActionSet().GetID()));
     }
     return(null);
 }
 public static string GetPromptPath(this SteamControllerJoystick axis, ISteamController controller)
 {
     if (controller is SteamworksSteamController)
     {
         return(((SteamworksSteamController)controller).GetJoystickPromptPath(axis.GetID(), axis.GetActionSet().GetID()));
     }
     return(null);
 }
Exemplo n.º 3
0
 public bool OpenSteamControllerConfig(ISteamController controller)
 {
     if (controller is SteamworksSteamController)
     {
         return(SteamController.ShowBindingPanel(
                    ((SteamworksSteamController)controller).Handle
                    ));
     }
     return(false);
 }
Exemplo n.º 4
0
        protected override void OnInit()
        {
            m_lastInputMethod     = Screen.InputMethod;
            m_lastPadType         = (Screen.Gamepad != null) ? Screen.Gamepad.Type : GamepadType.Unknown;
            m_lastSteamController = Screen.SteamController;

            m_text.Anchor        = Anchor;
            m_text.LocalPosition = LocalPosition;
            m_text.Parent        = this.Parent;
            m_text.Init(Screen);
        }
Exemplo n.º 5
0
        public static string GetPrompt(this SteamControllerButton button, ISteamController controller)
        {
            var path = button.GetPromptImagePath(controller);

            if (path != null)
            {
                return('[' + path + ']');
            }
            else
            {
                return("?");
            }
        }
        public static string GetPrompt(this SteamControllerJoystick axis, ISteamController controller)
        {
            var path = axis.GetPromptPath(controller);

            if (path != null)
            {
                return('[' + path + ']');
            }
            else
            {
                return("?");
            }
        }
Exemplo n.º 7
0
        protected override void OnUpdate(float dt)
        {
            var inputMethod     = Screen.InputMethod;
            var padType         = (Screen.Gamepad != null) ? Screen.Gamepad.Type : GamepadType.Unknown;
            var steamController = Screen.SteamController;

            if (inputMethod != m_lastInputMethod || padType != m_lastPadType || (inputMethod == InputMethod.SteamController)) // Steam controller bindings can change without warning
            {
                m_lastInputMethod     = inputMethod;
                m_lastPadType         = padType;
                m_lastSteamController = steamController;
                RequestRebuild();
            }

            m_text.Visible = Visible;
            m_text.Update(dt);
        }
        public LoadingExtension(ILogger logger, ISteamController steamController)
        {
            this.logger          = logger;
            this.steamController = steamController;

            try
            {
                steamController.UpdateAchievementsStatus();
                steamController.UpdatePopupPosition();

                logger.Info("SteamyUserMod");
            }
            catch (Exception ex)
            {
                logger.LogException(ex);

                throw;
            }
        }
Exemplo n.º 9
0
        public SteamyUserMod(ILogger logger, ISteamController steamController)
        {
            this.logger          = logger;
            this.steamController = steamController;

            try
            {
                OptionsPanelManager = new OptionsPanelManager(logger, steamController);

                steamController.UpdateAchievementsStatus();
                steamController.UpdatePopupPosition();

                logger.Info("SteamyUserMod");
            }
            catch (Exception ex)
            {
                logger.LogException(ex);

                throw;
            }
        }
Exemplo n.º 10
0
        private void Configure()
        {
            ISteamController controller = null;

            if (Game.ActiveSteamController != null)
            {
                controller = Game.ActiveSteamController;
            }
            else if (Game.SteamControllers.Count > 0)
            {
                controller = Game.SteamControllers.First();
            }
            if (controller == null)
            {
                ShowDialog(DialogBox.CreateQueryBox(
                               Game.Screen,
                               Game.Language.Translate("menus.steam_controller_input_options.configure"),
                               Game.Language.Translate("menus.steam_controller_input_options.no_controller"),
                               new string[] {
                    Game.Language.Translate("menus.ok")
                },
                               false
                               ));
            }
            else if (!Game.Network.OpenSteamControllerConfig(controller))
            {
                if (!m_bigPicture)
                {
                    ShowDialog(DialogBox.CreateQueryBox(
                                   Game.Screen,
                                   Game.Language.Translate("menus.steam_controller_input_options.configure"),
                                   Game.Language.Translate("menus.steam_controller_input_options.no_big_picture"),
                                   new string[] {
                        Game.Language.Translate("menus.ok")
                    },
                                   false
                                   ));
                }
            }
        }
Exemplo n.º 11
0
 public bool OpenSteamControllerConfig(ISteamController controller)
 {
     return(false);
 }
Exemplo n.º 12
0
 public OptionsPanelManager(ILogger logger, ISteamController steamController)
 {
     this.logger          = logger;
     this.steamController = steamController;
 }
Exemplo n.º 13
0
        public Game()
        {
            m_promiseTasks = new List <PromiseTask>();

            m_over         = false;
            RenderUI       = true;
            UseDebugCamera = false;

            // Init network
            if (App.Steam)
            {
                m_network = new SteamworksNetwork(
                    AchievementExtensions.GetAllIDs(),
                    StatisticExtensions.GetAllIDs()
                    );
            }
            else
            {
                m_network = new BuiltinNetwork();
            }
            if (m_network.SupportsAchievements)
            {
                m_network.SetAchievementCorner(AchievementCorner.TopRight);
            }

            // Init user
            m_user = LoadUser();

            // Init window
            var title = App.Info.Title + " " + App.Info.Version.ToString();

            if (App.Debug && App.Steam)
            {
                title += " (Steam Debug build)";
            }
            else if (App.Debug)
            {
                title += " (Debug build)";
            }

            bool fullscreen = m_user.Settings.Fullscreen;
            bool vsync      = m_user.Settings.VSync;

            using (var icon = new Bitmap(Path.Combine(App.AssetPath, "icon.png")))
            {
                m_window = new SDL2Window(
                    title,
                    m_user.Settings.WindowWidth,
                    m_user.Settings.WindowHeight,
                    m_user.Settings.Fullscreen,
                    m_user.Settings.WindowMaximised,
                    m_user.Settings.VSync
                    );
                m_window.SetIcon(icon);
            }
            m_window.OnClosed += delegate(object sender, EventArgs e)
            {
                Over = true;
            };
            m_window.OnResized += delegate(object sender, EventArgs e)
            {
                Resize();
                if (!m_window.Fullscreen)
                {
                    if (m_window.Maximised)
                    {
                        m_user.Settings.WindowMaximised = true;
                    }
                    else
                    {
                        m_user.Settings.WindowMaximised = false;
                        m_user.Settings.WindowWidth     = m_window.Width;
                        m_user.Settings.WindowHeight    = m_window.Height;
                    }
                    m_user.Settings.Save();
                }
            };

            // Init audio
            if (App.Arguments.GetBool("nosound"))
            {
                m_audio = new NullAudio();
            }
            else
            {
                m_audio = new OpenALAudio();
            }
            m_audio.EnableSound = m_user.Settings.EnableSound;
            m_audio.SoundVolume = m_user.Settings.SoundVolume / 11.0f;
            m_audio.EnableMusic = m_user.Settings.EnableMusic;
            m_audio.MusicVolume = m_user.Settings.MusicVolume / 11.0f;
            m_gameAudio         = new GameAudio(m_audio);

            // Init input
            m_keyboard      = new SDL2Keyboard(m_window);
            m_mouse         = new SDL2Mouse(m_window);
            m_gamepads      = new SDL2GamepadCollection(m_window);
            m_activeGamepad = null;
            if (App.Steam)
            {
                m_steamControllers = new SteamworksSteamControllerCollection(
                    m_window,
                    SteamControllerActionSetExtensions.GetAllIDs(),
                    SteamControllerButtonExtensions.GetAllIDs(),
                    SteamControllerJoystickExtensions.GetAllIDs(),
                    SteamControllerAxisExtensions.GetAllIDs()
                    );
                m_readOnlySteamControllers = m_steamControllers;
                m_activeSteamController    = null;
            }
            else
            {
                m_steamControllers         = null;
                m_readOnlySteamControllers = new List <ISteamController>(0).ToReadOnly();
                m_activeSteamController    = null;
            }

            // Init tiles
            Tiles.Init();

            // Load early assets
            var earlyAssetFileStore = new FolderFileStore(Path.Combine(App.AssetPath, "early"));
            var earlyAssets         = new FileAssetSource("early", earlyAssetFileStore);

            Assets.AddSource(earlyAssets);
            Assets.LoadAll();

            // Find mods
            Mods.Refresh(Network);
            if (Network.SupportsWorkshop)
            {
                // See if any mods are worthy of the popular mod achievement
                var myModIDs = new List <ulong>();
                foreach (var mod in Mods.AllMods)
                {
                    if (mod.Source == ModSource.Editor &&
                        mod.SteamWorkshopID.HasValue)
                    {
                        myModIDs.Add(mod.SteamWorkshopID.Value);
                    }
                }
                if (myModIDs.Count > 0)
                {
                    QueuePromiseTask(
                        m_network.Workshop.GetItemInfo(myModIDs.ToArray()),
                        delegate(Promise <WorkshopItemInfo[]> result)
                    {
                        if (result.Status == Status.Complete)
                        {
                            var infos = result.Result;
                            int subs  = 0;
                            for (int i = 0; i < infos.Length; ++i)
                            {
                                var info = infos[i];
                                if (info.AuthorID == m_network.LocalUser.ID &&
                                    info.UpVotes >= info.DownVotes)
                                {
                                    subs = Math.Max(info.TotalSubscribers, subs);
                                }
                            }
                            int oldSubs = User.Progress.GetStatistic(Statistic.MostPopularModSubscriptions);
                            if (subs >= 25)
                            {
                                User.Progress.SetStatistic(Statistic.MostPopularModSubscriptions, subs);
                                User.Progress.UnlockAchievement(Achievement.CreatePopularMod);
                                User.Progress.Save();
                            }
                            else if (subs > oldSubs)
                            {
                                User.Progress.SetStatistic(Statistic.MostPopularModSubscriptions, subs);
                                User.Progress.IndicateAchievementProgress(Achievement.CreatePopularMod, subs, 25);
                                User.Progress.Save();
                            }
                        }
                    }
                        );
                }
            }

            // Load language
            SelectLanguage();

            // Load debug stuff
            m_debugCameraController = new DebugCameraController(this);

            // Load game
            Load();
        }