public Item GetTool() { GameObject go = UniqueIDRegistry.GetInstanceGO(m_strToolID); if (go != null) { return(go.GetComponent <Item>()); } else { return(null); } }
public GameObject GetGO() { return(UniqueIDRegistry.GetInstanceGO(m_strGOThisID)); }
private void ShowInteractionDetails(Interaction _interaction, int _index) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("\t Type:"); EditorGUILayout.LabelField(_interaction.Type.ToString()); EditorGUILayout.EndHorizontal(); if (_interaction.Type == InteractionType.Use) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("\t Tool:"); if (_interaction.GetTool() != null) { EditorGUILayout.LabelField(_interaction.GetTool().ToString()); } EditorGUILayout.EndHorizontal(); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("\t Text:"); EditorGUILayout.LabelField(_interaction.Text); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(EditorStyles.toolbarButton); EditorGUILayout.LabelField("Reactions", EditorStyles.boldLabel); //This button should pop up or foldout an interface to add Reactions with if (GUILayout.Button("Add Reaction", EditorStyles.miniButton, GUILayout.MaxWidth(80))) { s_listbAddReaction[_index] = true; } EditorGUILayout.EndHorizontal(); if (s_listbAddReaction[_index]) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Type"); m_reactionType = (ReactionType)EditorGUILayout.EnumPopup(m_reactionType); switch (m_reactionType) { case ReactionType.OpenDoor: EditorGUILayout.PrefixLabel("Target"); m_doorTarget = (Door)EditorGUILayout.ObjectField(m_doorTarget, typeof(Door), true); if (GUILayout.Button("Add Reaction")) { _interaction.AddReaction(new ReactionOpenDoor(_interaction.GetGO().GetComponent <UniqueID>().m_strUniqueId, m_doorTarget)); } break; case ReactionType.Say: EditorGUILayout.PrefixLabel("Dialogue Text"); m_strSayText = EditorGUILayout.TextField(m_strSayText); if (GUILayout.Button("Add Reaction")) { _interaction.AddReaction(new ReactionSay(_interaction.GetGO().GetComponent <UniqueID>().m_strUniqueId, m_strSayText)); } break; default: EditorGUILayout.LabelField("This Type cannot be created! Choose another."); break; } EditorGUILayout.EndHorizontal(); } scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition, false, true, GUIStyle.none, GUI.skin.verticalScrollbar, m_styleBox, GUILayout.MaxHeight(GUI.skin.label.lineHeight * 6)); if (_interaction.GetReactionCount() > 0) { for (int reactionIndex = 0; reactionIndex < _interaction.GetReactionCount(); reactionIndex++) { EditorGUILayout.BeginHorizontal(GUILayout.MaxWidth(position.width / 3)); Reaction r = _interaction.GetReactionAt(reactionIndex); EditorGUILayout.LabelField(r.Name, GUILayout.MaxWidth(80)); switch (r.m_reactiontypeThis) { case ReactionType.OpenDoor: EditorGUILayout.PrefixLabel("Target"); try { ReactionOpenDoor door = (ReactionOpenDoor)r; EditorGUILayout.LabelField(UniqueIDRegistry.GetInstanceGO(door.m_strTargetID).ToString()); } catch (System.Exception e) { } break; case ReactionType.Say: EditorGUILayout.PrefixLabel("Dialogue Text"); try { ReactionSay say = (ReactionSay)r; EditorGUILayout.LabelField(say.m_stringSayText); } catch (System.Exception e) { } break; default: EditorGUILayout.LabelField("This Type cannot be created! Choose another."); break; } if (GUILayout.Button("-", EditorStyles.miniButton, GUILayout.MaxWidth(30))) { _interaction.RemoveReactionAt(reactionIndex); } EditorGUILayout.EndHorizontal(); } } EditorGUILayout.EndScrollView(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); }