Esempio n. 1
0
    /// <summary>
    /// Returns true if has component. Outputs component
    /// </summary>
    public bool TryGet <C>(out C component) where C : EntityComponent <C>
    {
        ComponentHolder h = componentLookup[Group <C> .instance.ID];

        component = (C)h.component;
        return(h.has);
    }
Esempio n. 2
0
    /// <summary>
    /// Returns true if has component and enabled. Outputs component;
    /// </summary>
    public bool TryGetEnabled <C>(out C component) where C : EntityComponent <C>        // used to speed up systems a little bit
    {
        ComponentHolder h = componentLookup[Group <C> .instance.ID];

        component = (C)h.component;
        return(h.enabled);
    }
Esempio n. 3
0
 /// <summary>
 /// Mono object awake
 /// </summary>
 private void Awake()
 {
     compHolder = ComponentHolder.GetHolder(gameObject);
     if (node != null)
     {
         node = node.ResetNode();
     }
 }
        public void RegisterComponentHolder(ComponentHolder menuComponentHolder)
        {
            if (_controllers == null || !_controllers.ContainsKey(menuComponentHolder.RelatedVisualController))
            {
                Debug.LogErrorFormat("No {0} is available to register component holder!", menuComponentHolder.RelatedVisualController);
                return;
            }

            _controllers[menuComponentHolder.RelatedVisualController].AssignComponentHolder(menuComponentHolder);
        }
    /// <summary>
    /// Get the holder
    /// </summary>
    /// <param name="gmObject"></param>
    /// <returns></returns>
    public static ComponentHolder GetHolder(GameObject gmObject)
    {
        ComponentHolder compHolder = gmObject.GetComponent <ComponentHolder>();

        if (compHolder == null)
        {
            Destroy(gmObject);
            return(null);
        }
        else
        {
            return(compHolder);
        }
    }
Esempio n. 6
0
    private void SetAllAchievementBlocks()
    {
        for (int i = 0; i < Enum.GetValues(typeof(AchievementManager.Achievements)).Length; i++)
        {
            ComponentHolder componentHolder = achievementBlocks[i].GetComponent <ComponentHolder>();

            if (!PlayerPrefsManager.IsAchievementUnlocked(AchievementManager.achievements[i]))
            {
                componentHolder.achievementName.GetComponent <Text>().text = "???";
                componentHolder.description.GetComponent <Text>().text     = "???";
                componentHolder.image.GetComponent <Image>().sprite        = lockedImage;
            }
            else
            {
                componentHolder.achievementName.GetComponent <Text>().text = AchievementManager.achievements[i].name;
                componentHolder.description.GetComponent <Text>().text     = AchievementManager.achievements[i].text;
                componentHolder.image.GetComponent <Image>().sprite        = AchievementManager.achievements[i].icon;
            }
        }
    }
 public override void AssignComponentHolder(ComponentHolder componentHolder)
 {
     _componentHolder = componentHolder as MovableObjectComponentHolder;
 }
Esempio n. 8
0
 public override void AssignComponentHolder(ComponentHolder componentHolder)
 {
     _componentHolder = componentHolder as VideoFeedComponentHolder;
 }
 /// <summary>
 /// Mono object awake
 /// </summary>
 private void Awake()
 {
     holder             = ComponentHolder.GetHolder(gameObject);
     SpecialWeaponFire += FireSpecialWeapons;
 }
 /// <summary>
 /// Mono awake
 /// </summary>
 private void Awake()
 {
     holder = ComponentHolder.GetHolder(gameObject);
 }
Esempio n. 11
0
 public override void AssignComponentHolder(ComponentHolder componentHolder)
 {
     _componentHolder = componentHolder as ButtonComponentHolder;
 }
 /// <summary>
 /// Mono awake
 /// </summary>
 private void Awake()
 {
     holder      = ComponentHolder.GetHolder(gameObject);
     UseAbility += AbilityUsed;
 }
Esempio n. 13
0
    //public void ToggleWindow(InteractiveObject _io, InteractiveObject.State _state, WindowType _type) { // currently only support for 1 window, but maybe more later?
    //    if (currentInfoWindow != null && currentInfoWindow.OwnerIO == _io)
    //        CloseCurrentInfoWindow();
    //    else
    //        OpenNewWindow(_io, _state, _type);
    //}

    public void OpenNewWindow(CanInspect _inspectable, CanInspect.State _state, WindowType _type)
    {
        int          _index         = currentInfoWindows.FindIndex(x => x.User == _inspectable);
        UIInfoWindow _currentWindow = null;

        if (_index > -1)
        {
            _currentWindow = currentInfoWindows[_index].Window;

            if (_currentWindow.OwnerInspectable == _inspectable)
            {
                if (_state != _currentWindow.State)
                {
                    _currentWindow.ChangeState(_state);
                }

                return;
            }

            CloseInfoWindow(_inspectable, _index); // not sure if needed
        }

        switch (_type)
        {
        case WindowType.Basic:
            _currentWindow = ComponentWindow_Main;
            break;

        case WindowType.Basic_SecondWindow:
            _currentWindow = ComponentWindow_Sub;
            break;

        case WindowType.ComponentHolder_x6:
            _currentWindow = ComponentHolderWindow_x6;
            break;

        case WindowType.ComponentHolder_x9:
            _currentWindow = ComponentHolderWindow_x9;
            break;

        case WindowType.ComponentHolder_15:
            _currentWindow = ComponentHolderWindow_x15;
            break;

        case WindowType.ComponentHolder_x24:
            _currentWindow = ComponentHolderWindow_x24;
            break;
        }

        // make sure no on else is using this window
        for (int i = 0; i < currentInfoWindows.Count; i++)
        {
            if (currentInfoWindows [i].Window == _currentWindow)
            {
                CloseInfoWindow(currentInfoWindows[i].User, i);
            }
        }

        ComponentObject _trackedComponent = null;

        switch (_type)
        {
        case WindowType.Basic:
        case WindowType.Basic_SecondWindow:
            _trackedComponent = _inspectable.GetComponent <ComponentObject>();
            break;

        case WindowType.ComponentHolder_x6:
        case WindowType.ComponentHolder_x9:
        case WindowType.ComponentHolder_15:
        case WindowType.ComponentHolder_x24:
            currentComponentHolder = _inspectable.GetComponent <ComponentHolder>();

            // set button-names to be the same as in the component-slots
            ComponentObject.ComponentType _compType;
            int _compTypeID;
            for (int i = 0; i < _currentWindow.Buttons.Length; i++)
            {
                _compType   = currentComponentHolder.ComponentSlots[i].SlotType;
                _compTypeID = currentComponentHolder.ComponentSlots[i].SlotTypeID;
                _currentWindow.Buttons[i].GetComponentInChildren <Text>().text = ComponentInfoManager.Instance.AllComponentsInfo[_compType][_compTypeID].Name;
            }
            break;
        }

        _currentWindow.UI_Image.sprite = _inspectable.Selected_Sprite;
        _currentWindow.UI_Name.text    = _inspectable.Selected_Name;
        _currentWindow.UI_Desc.text    = _inspectable.Selected_Desc;

        UITrackObject _tracker = _currentWindow.GetComponent <UITrackObject>();

        if (_tracker != null)
        {
            _tracker.trackTransform = _inspectable.transform;
        }

        _currentWindow.ChangeState(_state);
        _currentWindow.ShowWindow(_inspectable, _trackedComponent);
        currentInfoWindows.Add(new InfoWindowUser(_currentWindow, _inspectable));

        UpdateButtonGraphics(_inspectable);
    }
Esempio n. 14
0
 /// <summary>
 /// Mono awake
 /// </summary>
 private void Awake()
 {
     holder   = ComponentHolder.GetHolder(gameObject);
     listener = holder.CollisionListner.GetComponent <ICollisionListner>();
 }