예제 #1
0
        private void OnItemRemoving(object sender, ItemRemovingEventArgs args)
        {
            var            node = this.target as RouteNode;
            RouteNodeEvent item = node.Events[args.ItemIndex];

            DestroyImmediate(item.gameObject);
        }
예제 #2
0
 /// <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)));
 }
예제 #3
0
        /// <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);
        }
예제 #4
0
 private RouteNodeEvent CustomListItem(Rect position, RouteNodeEvent itemValue)
 {
     return(EditorGUI.ObjectField(position, itemValue, typeof(RouteNodeEvent), true) as RouteNodeEvent);
 }