private void UpdateOwnerGui()
        {
            long?owner;
            bool propertyMixed = GetOwnershipStatus(out owner);

            m_transferToCombobox.ClearItems();

            if (!propertyMixed && !owner.HasValue)
            {
                return; //selected block without id module
            }
            if (propertyMixed || owner.Value != 0)
            {
                m_transferToCombobox.AddItem(0, MyTexts.Get(MySpaceTexts.BlockOwner_Nobody));
            }

            if (propertyMixed || owner.Value != MySession.Static.LocalPlayerId)
            {
                m_transferToCombobox.AddItem(MySession.Static.LocalPlayerId, MyTexts.Get(MySpaceTexts.BlockOwner_Me));
            }

            foreach (var playerEntry in Sync.Players.GetOnlinePlayers())
            {
                var identity = playerEntry.Identity;
                if (identity.IdentityId != MySession.Static.LocalPlayerId && !identity.IsDead)
                {
                    var relation = MySession.Static.LocalHumanPlayer.GetRelationTo(identity.IdentityId);
                    if (relation != VRage.Game.MyRelationsBetweenPlayerAndBlock.Enemies)
                    {
                        m_transferToCombobox.AddItem(identity.IdentityId, new StringBuilder(identity.DisplayName));
                    }
                }
            }

            foreach (var identityId in Sync.Players.GetNPCIdentities())
            {
                var identity = Sync.Players.TryGetIdentity(identityId);
                Debug.Assert(identity != null, "Couldn't find NPC identity!");
                if (identity == null)
                {
                    continue;
                }

                var relation = MySession.Static.LocalHumanPlayer.GetRelationTo(identity.IdentityId);
                m_transferToCombobox.AddItem(identity.IdentityId, new StringBuilder(identity.DisplayName));
            }

            if (!propertyMixed)
            {
                if (owner.Value == MySession.Static.LocalPlayerId)
                {
                    m_shareModeCombobox.Enabled = true;
                }
                else
                {
                    m_shareModeCombobox.Enabled = false;
                }

                if (owner.Value == 0)
                {
                    m_transferToCombobox.Enabled = true;
                    m_ownerLabel.TextEnum        = MySpaceTexts.BlockOwner_Nobody;
                }
                else
                {
                    m_transferToCombobox.Enabled = owner.Value == MySession.Static.LocalPlayerId;
                    m_ownerLabel.TextEnum        = MySpaceTexts.BlockOwner_Me;
                    if (owner.Value != MySession.Static.LocalPlayerId)
                    {
                        var identity = Sync.Players.TryGetIdentity(owner.Value);
                        if (identity != null)
                        {
                            m_ownerLabel.Text = identity.DisplayName + (identity.IsDead ? " [" + MyTexts.Get(MyCommonTexts.PlayerInfo_Dead).ToString() + "]" : "");
                        }
                        else
                        {
                            m_ownerLabel.TextEnum = MySpaceTexts.BlockOwner_Unknown;
                        }
                    }
                }

                MyOwnershipShareModeEnum?shareMode;
                propertyMixed        = GetShareMode(out shareMode);
                m_canChangeShareMode = false;
                if (!propertyMixed && shareMode.HasValue && owner.Value != 0)
                {
                    m_shareModeCombobox.SelectItemByKey((long)shareMode.Value);
                }
                else
                {
                    m_shareModeCombobox.SelectItemByIndex(-1);
                }
                m_canChangeShareMode = true;
            }
            else
            {
                m_shareModeCombobox.Enabled = true;
                m_ownerLabel.Text           = "";

                m_canChangeShareMode = false;
                m_shareModeCombobox.SelectItemByIndex(-1);
                m_canChangeShareMode = true;
            }
        }
Ejemplo n.º 2
0
        void UdpateCuesCombo(MyGuiControlCombobox box)
        {

            box.ClearItems();
            long key = 0;
            foreach (var cue in MyAudio.Static.CueDefinitions)
            {
                if ((m_currentCategorySelectedItem == ALL_CATEGORIES) || (m_currentCategorySelectedItem == cue.Category.ToString()))
                {
                    box.AddItem(key, new StringBuilder(cue.SubtypeId.ToString()));
                    key++;
                }
            }

            box.SortItemsByValueText();
            if (box.GetItemsCount() > 0)
                box.SelectItemByIndex(0);
        }
        void RecreateOwnershipControls()
        {
            bool ownershipBlockPresent = false;

            foreach (var block in m_currentBlocks)
            {
                if (block.IDModule != null)
                {
                    ownershipBlockPresent = true;
                }
            }

            if (ownershipBlockPresent && MyFakes.SHOW_FACTIONS_GUI)
            {
                m_ownershipLabel.Visible     = true;
                m_ownerLabel.Visible         = true;
                m_transferToLabel.Visible    = true;
                m_transferToCombobox.Visible = true;
                m_shareModeCombobox.Visible  = true;

                if (m_npcButton != null)
                {
                    m_npcButton.Visible = true;
                }
            }
            else
            {
                m_ownershipLabel.Visible     = false;
                m_ownerLabel.Visible         = false;
                m_transferToLabel.Visible    = false;
                m_transferToCombobox.Visible = false;
                m_shareModeCombobox.Visible  = false;

                if (m_npcButton != null)
                {
                    m_npcButton.Visible = false;
                }
                return;
            }


            var     topLeftRelative = Vector2.One * -0.5f;
            Vector2 leftColumnSize  = new Vector2(0.3f, 0.55f);

            m_ownershipLabel.Position = topLeftRelative + new Vector2(leftColumnSize.X + 0.22f, 0.38f);

            m_ownerLabel.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_CENTER;
            m_ownerLabel.Position    = topLeftRelative + new Vector2(leftColumnSize.X + 0.46f, 0.38f);

            m_transferToLabel.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP;
            m_transferToLabel.Position    = topLeftRelative + new Vector2(leftColumnSize.X + 0.22f, 0.405f);

            m_transferToCombobox.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP;
            m_transferToCombobox.Position    = topLeftRelative + new Vector2(leftColumnSize.X + 0.32f, 0.4f);

            m_shareModeCombobox.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP;
            m_shareModeCombobox.Position    = topLeftRelative + new Vector2(leftColumnSize.X + 0.22f, 0.45f);

            m_shareModeCombobox.ClearItems();
            m_shareModeCombobox.AddItem((long)MyOwnershipShareModeEnum.None, MyTexts.Get(MySpaceTexts.BlockOwner_ShareNone));
            m_shareModeCombobox.AddItem((long)MyOwnershipShareModeEnum.Faction, MyTexts.Get(MySpaceTexts.BlockOwner_ShareFaction));
            m_shareModeCombobox.AddItem((long)MyOwnershipShareModeEnum.All, MyTexts.Get(MySpaceTexts.BlockOwner_ShareAll));

            UpdateOwnerGui();
        }
        public override void RecreateControls(bool constructor)
        {
            base.RecreateControls(constructor);

            m_scale = 0.7f;

            AddCaption("Cutscenes", Color.Yellow.ToVector4());
            AddShareFocusHint();

            m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.10f);


            m_comboCutscenes = AddCombo();
            m_playButton = AddButton(new StringBuilder("Play"), onClick_PlayButton);
            m_addCutsceneButton = AddButton(new StringBuilder("Add cutscene"), onClick_AddCutsceneButton);
            m_deleteCutsceneButton = AddButton(new StringBuilder("Delete cutscene"), onClick_DeleteCutsceneButton);


            m_currentPosition.Y += 0.01f;

            AddLabel("Nodes", Color.Yellow.ToVector4(), 1);
            m_comboNodes = AddCombo();
            m_comboNodes.ItemSelected += m_comboNodes_ItemSelected;


            m_addNodeButton = AddButton(new StringBuilder("Add node"), onClick_AddNodeButton);
            m_deleteNodeButton = AddButton(new StringBuilder("Delete node"), onClick_DeleteNodeButton);

            m_nodeTimeSlider = AddSlider("Node time", 0, 0, 100, OnNodeTimeChanged);

            var cutscenes = MySession.Static.GetComponent<MySessionComponentCutscenes>();

            m_comboCutscenes.ClearItems();
            foreach (var key in cutscenes.GetCutscenes().Keys) 
            {
                m_comboCutscenes.AddItem(key.GetHashCode(), key);
            }

            m_comboCutscenes.SortItemsByValueText();
            m_comboCutscenes.ItemSelected += m_comboCutscenes_ItemSelected;

            AddLabel("Waypoints", Color.Yellow.ToVector4(), 1);
            m_comboWaypoints = AddCombo();
            m_comboWaypoints.ItemSelected += m_comboWaypoints_ItemSelected;

            



            m_currentPosition.Y += 0.01f;

            m_spawnButton = AddButton(new StringBuilder("Spawn entity"), onSpawnButton);
            m_removeAllButton = AddButton(new StringBuilder("Remove all"), onRemoveAllButton);


            if (m_comboCutscenes.GetItemsCount() > 0)
                m_comboCutscenes.SelectItemByIndex(0);

         
         
      
            
      
        }