Esempio n. 1
0
    public Item GetTool()
    {
        GameObject go = UniqueIDRegistry.GetInstanceGO(m_strToolID);

        if (go != null)
        {
            return(go.GetComponent <Item>());
        }
        else
        {
            return(null);
        }
    }
Esempio n. 2
0
 public GameObject GetGO()
 {
     return(UniqueIDRegistry.GetInstanceGO(m_strGOThisID));
 }
Esempio n. 3
0
    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();
    }