コード例 #1
0
 public void Add(Tapestry_KeywordRegistry kr)
 {
     foreach (string str in kr.keywords)
     {
         Add(str);
     }
 }
コード例 #2
0
    private void OnTriggerEnter(Collider other)
    {
        if (ReferenceEquals(keywords, null))
        {
            keywords = (Tapestry_KeywordRegistry)ScriptableObject.CreateInstance("Tapestry_KeywordRegistry");
        }

        Tapestry_Actor a = other.GetComponentInParent <Tapestry_Actor>();

        if (keywords.Count == 0)
        {
            if (a != null)
            {
                a.AddEffect(effect.Clone());
            }
        }
        else if (applyByKeyword)
        {
            if (a != null && !ReferenceEquals(a.keywords, null))
            {
                if (a.keywords.ContainsOne(keywords))
                {
                    a.AddEffect(effect.Clone());
                }
            }
        }
        else
        {
            if (a != null && !ReferenceEquals(a.keywords, null))
            {
                if (!a.keywords.ContainsAll(keywords))
                {
                    a.AddEffect(effect.Clone());
                }
            }
        }
    }
コード例 #3
0
 private void Reset()
 {
     effect   = (Tapestry_Effect)ScriptableObject.CreateInstance("Tapestry_Effect");
     keywords = (Tapestry_KeywordRegistry)ScriptableObject.CreateInstance("Tapestry_KeywordRegistry");
 }
コード例 #4
0
 public bool ContainsAll(Tapestry_KeywordRegistry reg)
 {
     return(ContainsAll(reg.keywords));
 }
コード例 #5
0
 private void OnEnable()
 {
     keywords = (Tapestry_KeywordRegistry)ScriptableObject.CreateInstance("Tapestry_KeywordRegistry");
 }
コード例 #6
0
    public int DrawInspector(int pSel)
    {
        if (ReferenceEquals(payload, null))
        {
            payload = (Tapestry_EffectBuilder_Payload_Damage)ScriptableObject.CreateInstance("Tapestry_EffectBuilder_Payload_Damage");
        }
        if (ReferenceEquals(keywords, null))
        {
            keywords = (Tapestry_KeywordRegistry)ScriptableObject.CreateInstance("Tapestry_KeywordRegistry");
        }
        Dictionary <string, Type> payloads = Tapestry_Config.GetPayloadTypes();

        GUIStyle title = new GUIStyle();

        title.fontStyle = FontStyle.Bold;
        title.fontSize  = 14;

        EditorGUILayout.BeginVertical("box");
        GUILayout.BeginHorizontal();
        GUILayout.Label("Effect", title, GUILayout.Width(60));
        displayName = EditorGUILayout.DelayedTextField(displayName);
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        GUILayout.Space(65);
        canBeStacked = EditorGUILayout.Toggle(canBeStacked, GUILayout.Width(12));
        GUILayout.Label("Can be stacked?");
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        EditorGUILayout.BeginVertical("box");
        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Duration", title);
        GUILayout.FlexibleSpace();
        if (payload.mustBeInstant)
        {
            duration = Tapestry_EffectBuilder_Duration.Instant;
            EditorGUILayout.Popup(0, new string[] { "Instant" });
        }
        else
        {
            duration = (Tapestry_EffectBuilder_Duration)EditorGUILayout.EnumPopup(duration);
        }
        EditorGUILayout.EndHorizontal();

        if (duration == Tapestry_EffectBuilder_Duration.Timed)
        {
            payload.exposeTimeControls = true;
            EditorGUILayout.BeginHorizontal("box");

            GUILayout.Space(40);
            decayTime = EditorGUILayout.DelayedFloatField(decayTime, GUILayout.Width(42));
            GUILayout.Label("Seconds");
            GUILayout.FlexibleSpace();

            EditorGUILayout.EndHorizontal();
        }
        else if (duration == Tapestry_EffectBuilder_Duration.Permanent)
        {
            payload.exposeTimeControls = true;
        }
        else
        {
            payload.exposeTimeControls = false;
        }

        EditorGUILayout.EndVertical();

        EditorGUILayout.BeginVertical("box");

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Payload", title);
        GUILayout.FlexibleSpace();
        pSel = EditorGUILayout.Popup(pSel, payloads.Keys.ToArray());
        EditorGUILayout.EndHorizontal();

        Type pType = payloads[payloads.Keys.ToArray()[pSel]];

        if (ReferenceEquals(payload, null) || payload.GetType() != pType)
        {
            payload = (Tapestry_EffectBuilder_Payload)ScriptableObject.CreateInstance(pType.ToString());
        }
        payload.DrawInspector();

        EditorGUILayout.EndVertical();

        keywords.DrawInspector();

        EditorGUILayout.EndVertical();

        //if (GUILayout.Button("save"))
        //{
        //    AssetDatabase.CreateAsset(this, "Assets/Prefabs/Tapestry/Effects/" + displayName + ".asset");
        //}

        return(pSel);
    }