public override ActionStatus OnUpdate()
        {
            EquipmentHandler handler = playerInfo.gameObject.GetComponent <EquipmentHandler>();

            handler.UpdateEquipment();
            return(ActionStatus.Success);
        }
Example #2
0
        private void OnEnable()
        {
            this.m_Script     = serializedObject.FindProperty("m_Script");
            this.m_WindowName = serializedObject.FindProperty("m_WindowName");
            EquipmentHandler handler = target as EquipmentHandler;

            gameObject = handler.gameObject;

            VisibleItem[] visibleItems = gameObject.GetComponents <VisibleItem>();
            for (int i = 0; i < visibleItems.Length; i++)
            {
                visibleItems[i].hideFlags = EditorPrefs.GetBool("InventorySystem.showAllComponents") ? HideFlags.None : HideFlags.HideInInspector;
            }

            if (!EditorApplication.isPlaying)
            {
                for (int i = 0; i < handler.VisibleItems.Count; i++)
                {
                    if (handler.VisibleItems[i].gameObject != gameObject)
                    {
                        if (ComponentUtility.CopyComponent(handler.VisibleItems[i]))
                        {
                            VisibleItem compoent = gameObject.AddComponent(handler.VisibleItems[i].GetType()) as VisibleItem;
                            ComponentUtility.PasteComponentValues(compoent);
                            handler.VisibleItems[i] = compoent;
                        }
                    }
                }
            }
            EditorApplication.playModeStateChanged += PlayModeState;
        }
        private void Start()
        {
            if (transform.root != transform)
            {
                EquipmentHandler handler = transform.root.gameObject.GetComponent <EquipmentHandler>();
                if (handler == null)
                {
                    handler = transform.root.gameObject.AddComponent <EquipmentHandler>();
                }
                handler.m_VisibleItems = m_VisibleItems;

                Destroy(this);
                return;
            }

            this.m_EquipmentContainer = WidgetUtility.Find <ItemContainer>(this.m_WindowName);
            if (this.m_EquipmentContainer != null)
            {
                for (int i = 0; i < this.m_VisibleItems.Count; i++)
                {
                    this.m_VisibleItems[i].enabled = false;
                }
                this.m_EquipmentContainer.OnAddItem    += OnAddItem;
                this.m_EquipmentContainer.OnRemoveItem += OnRemoveItem;

                UpdateEquipment();
                if (InventoryManager.current != null)
                {
                    InventoryManager.current.onSceneLoaded.AddListener(UpdateEquipment);
                }
            }
        }
Example #4
0
 protected virtual void Awake()
 {
     this.m_Handler           = GetComponent <EquipmentHandler>();
     this.m_CharacterAnimator = GetComponentInParent <Animator>();
     m_CharacterColliders     = GetComponentsInChildren <Collider>(true);
     this.m_Camera            = Camera.main;
     this.m_CameraTransform   = this.m_Camera.transform;
 }
        public override ActionStatus OnUpdate()
        {
            EquipmentHandler   handler = playerInfo.gameObject.GetComponent <EquipmentHandler>();
            List <VisibleItem> items   = handler.VisibleItems.Where(x => (x.item as EquipmentItem).Region.Contains(this.m_Region)).ToList();

            for (int i = 0; i < items.Count; i++)
            {
                items[i].OnItemUnEquip(items[i].item);
            }
            return(ActionStatus.Success);
        }
Example #6
0
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            EditorGUI.PropertyField(position, property, label, true);
            if (property.isExpanded)
            {
                SerializedProperty region     = property.FindPropertyRelative("region");
                SerializedProperty prefab     = property.FindPropertyRelative("prefab");
                SerializedProperty pos        = property.FindPropertyRelative("position");
                SerializedProperty rotation   = property.FindPropertyRelative("rotation");
                SerializedProperty scale      = property.FindPropertyRelative("scale");
                SerializedProperty gameObject = property.FindPropertyRelative("gameObject");
                EditorGUI.BeginDisabledGroup(region.objectReferenceValue == null || prefab.objectReferenceValue == null);

                if (GUI.Button(new Rect(position.xMin + 30f, position.yMax - 20f, position.width - 30f, 20f), gameObject.objectReferenceValue != null?"Remove Prefab Handle":"Attach Prefab Handle"))
                {
                    if (gameObject.objectReferenceValue != null)
                    {
                        GameObject.DestroyImmediate(gameObject.objectReferenceValue);
                        return;
                    }
                    VisibleItem      visibleItem        = (VisibleItem)property.serializedObject.targetObject;
                    EquipmentHandler handler            = visibleItem.GetComponent <EquipmentHandler>();
                    EquipmentHandler.EquipmentBone bone = handler.Bones.Find(x => x.region == region.objectReferenceValue);
                    if (bone != null)
                    {
                        GameObject go = (GameObject)GameObject.Instantiate(prefab.objectReferenceValue, bone.bone.transform);
                        go.transform.localPosition      = pos.vector3Value;
                        go.transform.localEulerAngles   = rotation.vector3Value;
                        go.transform.localScale         = scale.vector3Value;
                        gameObject.objectReferenceValue = go;
                    }
                }
                EditorGUI.EndDisabledGroup();

                if (gameObject.objectReferenceValue != null)
                {
                    Transform transform = (gameObject.objectReferenceValue as GameObject).transform;
                    pos.vector3Value      = transform.localPosition;
                    rotation.vector3Value = transform.localEulerAngles;
                    scale.vector3Value    = transform.localScale;
                }
            }
        }
Example #7
0
            public GameObject Instantiate(EquipmentHandler handler)
            {
                gameObject = GameObject.Instantiate(prefab, handler.GetBone(region));

                //Calean prefab, not the best way, but keeps the project clean from duplicate prefabs.
                Trigger trigger = gameObject.GetComponent <Trigger>();

                if (trigger != null)
                {
                    Destroy(trigger);
                }
                IGenerator[] generators = gameObject.GetComponents <IGenerator>();
                for (int i = 0; i < generators.Length; i++)
                {
                    Destroy((generators[i] as Component));
                }
                ItemCollection collection = gameObject.GetComponent <ItemCollection>();

                if (collection != null)
                {
                    Destroy(collection);
                }

                Rigidbody rigidbody = gameObject.GetComponent <Rigidbody>();

                if (rigidbody != null)
                {
                    Destroy(rigidbody);
                }
                Collider[] colliders = gameObject.GetComponents <Collider>();
                for (int i = 0; i < colliders.Length; i++)
                {
                    Destroy(colliders[i]);
                }
                gameObject.transform.localPosition    = position;
                gameObject.transform.localEulerAngles = rotation;
                gameObject.transform.localScale       = scale;
                return(gameObject);
            }
        public override void OnInterrupt()
        {
            EquipmentHandler handler = playerInfo.gameObject.GetComponent <EquipmentHandler>();

            handler.UpdateEquipment();
        }