public void Add(Tapestry_KeywordRegistry kr) { foreach (string str in kr.keywords) { Add(str); } }
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()); } } } }
private void Reset() { effect = (Tapestry_Effect)ScriptableObject.CreateInstance("Tapestry_Effect"); keywords = (Tapestry_KeywordRegistry)ScriptableObject.CreateInstance("Tapestry_KeywordRegistry"); }
public bool ContainsAll(Tapestry_KeywordRegistry reg) { return(ContainsAll(reg.keywords)); }
private void OnEnable() { keywords = (Tapestry_KeywordRegistry)ScriptableObject.CreateInstance("Tapestry_KeywordRegistry"); }
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); }