public override ActionStatus OnUpdate() { EquipmentHandler handler = playerInfo.gameObject.GetComponent <EquipmentHandler>(); handler.UpdateEquipment(); return(ActionStatus.Success); }
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); } } }
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); }
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; } } }
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(); }