Beispiel #1
0
        public void Update(float deltaTime)
        {
            EventManager.Update(deltaTime);

            if (GUI.DisableHUD)
            {
                return;
            }

            //guiRoot.Update(deltaTime);
            infoButton.Update(deltaTime);

            if (GameMode != null)
            {
                GameMode.Update(deltaTime);
            }
            if (Mission != null)
            {
                Mission.Update(deltaTime);
            }
            if (infoFrame != null)
            {
                infoFrame.Update(deltaTime);

                if (CrewManager != null && CrewManager.CrewCommander != null && CrewManager.CrewCommander.IsOpen)
                {
                    infoFrame = null;
                }
            }
        }
Beispiel #2
0
        public void Update(float deltaTime)
        {
            guiFrame.Update(deltaTime);

            //TODO: implement AI commands in multiplayer?
            if (GameMain.NetworkMember == null &&
                GameMain.Config.KeyBind(InputType.CrewOrders).IsHit())
            {
                //deselect construction unless it's the ladders the character is climbing
                if (!commander.IsOpen && Character.Controlled != null &&
                    Character.Controlled.SelectedConstruction != null &&
                    Character.Controlled.SelectedConstruction.GetComponent <Items.Components.Ladder>() == null)
                {
                    Character.Controlled.SelectedConstruction = null;
                }

                //only allow opening the command UI if there are AICharacters in the crew
                if (commander.IsOpen || characters.Any(c => c is AICharacter))
                {
                    commander.ToggleGUIFrame();
                }
            }

            if (commander.Frame != null)
            {
                commander.Frame.Update(deltaTime);
            }
        }
Beispiel #3
0
        public override void Update(double deltaTime)
        {
            //GameMain.TitleScreen.Update();

            menu.Update((float)deltaTime);

            //GUI.Update((float)deltaTime);
        }
Beispiel #4
0
        public static void Update(GameMain game, float deltaTime)
        {
            lock (queuedMessages)
            {
                while (queuedMessages.Count > 0)
                {
                    AddMessage(queuedMessages.Dequeue());
                }
            }

            if (activeQuestionText != null &&
                (listBox.children.Count == 0 || listBox.children[listBox.children.Count - 1] != activeQuestionText))
            {
                listBox.children.Remove(activeQuestionText);
                listBox.children.Add(activeQuestionText);
            }

            if (PlayerInput.KeyHit(Keys.F3))
            {
                isOpen = !isOpen;
                if (isOpen)
                {
                    textBox.Select();
                    AddToGUIUpdateList();
                }
                else
                {
                    GUIComponent.ForceMouseOn(null);
                    textBox.Deselect();
                }
            }

            if (isOpen)
            {
                frame.Update(deltaTime);

                Character.DisableControls = true;

                if (PlayerInput.KeyHit(Keys.Up))
                {
                    textBox.Text = SelectMessage(-1);
                }
                else if (PlayerInput.KeyHit(Keys.Down))
                {
                    textBox.Text = SelectMessage(1);
                }
                else if (PlayerInput.KeyHit(Keys.Tab))
                {
                    textBox.Text = AutoComplete(textBox.Text);
                }

                if (PlayerInput.KeyHit(Keys.Enter))
                {
                    ExecuteCommand(textBox.Text);
                    textBox.Text = "";
                }
            }
        }
Beispiel #5
0
        public override void Update(double deltaTime)
        {
            buttonsTab.Update((float)deltaTime);

            if (selectedTab > 0)
            {
                menuTabs[(int)selectedTab].Update((float)deltaTime);
            }

            GameMain.TitleScreen.TitlePosition =
                Vector2.Lerp(GameMain.TitleScreen.TitlePosition, new Vector2(
                                 GameMain.TitleScreen.TitleSize.X / 2.0f * GameMain.TitleScreen.Scale + 30.0f,
                                 GameMain.TitleScreen.TitleSize.Y / 2.0f * GameMain.TitleScreen.Scale + 30.0f),
                             0.1f);
        }
Beispiel #6
0
        public static void UpdateHud(Item item, Character character)
        {
            if (frame == null || frame.UserData != item)
            {
                CreateGUIFrame(item);
            }
            UpdateGUIFrame(item, character);

            if (frame == null)
            {
                return;
            }

            frame.Update((float)Timing.Step);
        }
Beispiel #7
0
        public override void Update(double deltaTime)
        {
            base.Update(deltaTime);

            topPanel.Update((float)deltaTime);
            bottomPanel[selectedRightPanel].Update((float)deltaTime);

            mapZoom += PlayerInput.ScrollWheelSpeed / 1000.0f;
            mapZoom  = MathHelper.Clamp(mapZoom, 1.0f, 4.0f);

            GameMain.GameSession.Map.Update((float)deltaTime, new Rectangle(
                                                bottomPanel[selectedRightPanel].Rect.X + 20,
                                                bottomPanel[selectedRightPanel].Rect.Y + 20,
                                                bottomPanel[selectedRightPanel].Rect.Width - 310,
                                                bottomPanel[selectedRightPanel].Rect.Height - 40), mapZoom);
        }
Beispiel #8
0
        public void Update(float deltaTime)
        {
            EventManager.Update(deltaTime);

            if (GUI.DisableHUD)
            {
                return;
            }

            if (GameMain.Client != null)
            {
                if (GameMain.Client.HasPermission(Networking.ClientPermissions.Kick) || GameMain.Client.HasPermission(Networking.ClientPermissions.Ban))
                {
                    //ingameInfoButton.Visible = true;
                    ingameInfoButton.Visible = false;
                }
                else
                {
                    ingameInfoButton.Visible = false;
                }
            }

            //if (GameMain.Server == null) ingameInfoButton.Visible = false;

            //guiRoot.Update(deltaTime);
            infoButton.Update(deltaTime);
            ingameInfoButton.Update(deltaTime);


            if (GameMode != null)
            {
                GameMode.Update(deltaTime);
            }
            if (Mission != null)
            {
                Mission.Update(deltaTime);
            }
            if (infoFrame != null)
            {
                infoFrame.Update(deltaTime);

                if (CrewManager != null && CrewManager.CrewCommander != null && CrewManager.CrewCommander.IsOpen)
                {
                    infoFrame = null;
                }
            }
        }
Beispiel #9
0
        public static void Update(float deltaTime)
        {
            if (pauseMenuOpen)
            {
                pauseMenu.Update(deltaTime);
            }

            if (settingsMenuOpen)
            {
                GameMain.Config.SettingsFrame.Update(deltaTime);
            }

            if (GUIMessageBox.VisibleBox != null)
            {
                GUIMessageBox.VisibleBox.Update(deltaTime);
            }
        }
Beispiel #10
0
        public static void Update(GameMain game, float deltaTime)
        {
            if (PlayerInput.KeyHit(Keys.F3))
            {
                isOpen = !isOpen;
                if (isOpen)
                {
                    textBox.Select();
                    AddToGUIUpdateList();
                }
                else
                {
                    GUIComponent.ForceMouseOn(null);
                    textBox.Deselect();
                }

                //keyboardDispatcher.Subscriber = (isOpen) ? textBox : null;
            }

            if (isOpen)
            {
                frame.Update(deltaTime);

                Character.DisableControls = true;

                if (PlayerInput.KeyHit(Keys.Up))
                {
                    SelectMessage(-1);
                }
                else if (PlayerInput.KeyHit(Keys.Down))
                {
                    SelectMessage(1);
                }

                //textBox.Update(deltaTime);

                if (PlayerInput.KeyDown(Keys.Enter) && textBox.Text != "")
                {
                    ExecuteCommand(textBox.Text, game);
                    textBox.Text = "";

                    //selectedIndex = messages.Count;
                }
            }
        }
Beispiel #11
0
 public override void Update(double deltaTime)
 {
     menu.Update((float)deltaTime);
 }
Beispiel #12
0
        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        public override void Update(double deltaTime)
        {
            if (tutorial != null)
            {
                tutorial.Update((float)deltaTime);
            }

            hullVolumeFrame.Visible = MapEntity.SelectedList.Any(s => s is Hull);

            cam.MoveCamera((float)deltaTime, true, GUIComponent.MouseOn == null);

            if (characterMode || wiringMode)
            {
                if (dummyCharacter == null || Entity.FindEntityByID(dummyCharacter.ID) != dummyCharacter)
                {
                    ToggleCharacterMode(null, null);
                }
                else
                {
                    foreach (MapEntity me in MapEntity.mapEntityList)
                    {
                        me.IsHighlighted = false;
                    }

                    if (wiringMode && dummyCharacter.SelectedConstruction == null)
                    {
                        List <Wire> wires = new List <Wire>();
                        foreach (Item item in Item.ItemList)
                        {
                            var wire = item.GetComponent <Wire>();
                            if (wire != null)
                            {
                                wires.Add(wire);
                            }
                        }
                        Wire.UpdateEditing(wires);
                    }

                    if (dummyCharacter.SelectedConstruction == null)
                    {
                        Vector2 mouseSimPos = FarseerPhysics.ConvertUnits.ToSimUnits(dummyCharacter.CursorPosition);
                        foreach (Limb limb in dummyCharacter.AnimController.Limbs)
                        {
                            limb.body.SetTransform(mouseSimPos, 0.0f);
                        }
                        dummyCharacter.AnimController.Collider.SetTransform(mouseSimPos, 0.0f);
                    }

                    dummyCharacter.ControlLocalPlayer((float)deltaTime, cam, false);
                    dummyCharacter.Control((float)deltaTime, cam);

                    dummyCharacter.Submarine = Submarine.MainSub;

                    cam.TargetPos = Vector2.Zero;
                }
            }
            else
            {
                MapEntity.UpdateSelecting(cam);
            }

            //GUIComponent.ForceMouseOn(null);

            if (!characterMode && !wiringMode)
            {
                if (MapEntityPrefab.Selected != null)
                {
                    MapEntityPrefab.Selected.UpdatePlacing(cam);
                }

                MapEntity.UpdateEditor(cam);
            }

            leftPanel.Update((float)deltaTime);
            topPanel.Update((float)deltaTime);

            if (wiringMode)
            {
                if (!dummyCharacter.SelectedItems.Any(it => it != null && it.HasTag("Wire")))
                {
                    wiringToolPanel.GetChild <GUIListBox>().Deselect();
                }
                wiringToolPanel.Update((float)deltaTime);
            }

            if (loadFrame != null)
            {
                loadFrame.Update((float)deltaTime);
                if (PlayerInput.RightButtonClicked())
                {
                    loadFrame = null;
                }
            }
            else if (saveFrame != null)
            {
                saveFrame.Update((float)deltaTime);
            }
            else if (selectedTab > -1)
            {
                GUItabs[selectedTab].Update((float)deltaTime);
                if (PlayerInput.RightButtonClicked())
                {
                    selectedTab = -1;
                }
            }


            if ((characterMode || wiringMode) && dummyCharacter != null)
            {
                dummyCharacter.AnimController.FindHull(dummyCharacter.CursorWorldPosition, false);

                foreach (Item item in dummyCharacter.SelectedItems)
                {
                    if (item == null)
                    {
                        continue;
                    }

                    item.SetTransform(dummyCharacter.SimPosition, 0.0f);
                    item.Update((float)deltaTime, cam);
                    item.SetTransform(item.body.SimPosition, 0.0f);
                }

                if (dummyCharacter.SelectedConstruction != null)
                {
                    if (dummyCharacter.SelectedConstruction != null)
                    {
                        dummyCharacter.SelectedConstruction.UpdateHUD(cam, dummyCharacter);
                    }

                    if (PlayerInput.KeyHit(InputType.Select) && dummyCharacter.FocusedItem != dummyCharacter.SelectedConstruction)
                    {
                        dummyCharacter.SelectedConstruction = null;
                    }
                }

                CharacterHUD.Update((float)deltaTime, dummyCharacter);
            }

            GUI.Update((float)deltaTime);
        }