private void OnItemRemoving(object sender, ItemRemovingEventArgs args) { var node = this.target as RouteNode; RouteNodeEvent item = node.Events[args.ItemIndex]; DestroyImmediate(item.gameObject); }
/// <summary> /// Get the StrCode32 hash for a node event type. /// </summary> /// <param name="data">Event whose type to hash.</param> /// <param name="hashManager">Hash manager instance.</param> /// <returns>StrCode32 hash of the event type</returns> private static uint GetEventTypeHash(RouteNodeEvent data, StrCode32HashManager hashManager) { if (data.TreatTypeAsHash) { return(uint.Parse(RouteNodeEvent.EventTypeToString(data.Type))); } return(hashManager.GetHash(RouteNodeEvent.EventTypeToString(data.Type))); }
/// <summary> /// Create a RouteNodeEvent. /// </summary> /// <param name="parent">GameObject parent of the RouteEvent.</param> /// <param name="data">Parameters of the RouteEvent.</param> /// <param name="getEventTypeName">Function to get the name of the RouteEvent's type.</param> /// <param name="generateEventName">Function to generate a name for a RouteEvent.</param> /// <returns>The constructed RouteEvent.</returns> private static RouteNodeEvent CreateNodeEvent(GameObject parent, FoxLib.Tpp.RouteSet.RouteEvent data, IHashManagerExtensions.TryUnhashDelegate <uint> getEventTypeName, GenerateEventNameDelegate generateEventName) { var component = parent.GetComponent <RouteNodeEvent>(); if (component == null) { component = parent.AddComponent <RouteNodeEvent>(); } var eventNameContainer = getEventTypeName(data.EventType); if (eventNameContainer.WasNameUnhashed) { component.Type = RouteNodeEvent.ParseEventType(eventNameContainer.UnhashedString); } else { component.Type = RouteNodeEvent.ParseEventType(eventNameContainer.Hash.ToString()); } component.Name = generateEventName(RouteNodeEvent.EventTypeToString(component.Type)); component.Params = data.Params.Cast <uint>().ToList(); component.Snippet = data.Snippet; return(component); }
private RouteNodeEvent CustomListItem(Rect position, RouteNodeEvent itemValue) { return(EditorGUI.ObjectField(position, itemValue, typeof(RouteNodeEvent), true) as RouteNodeEvent); }