private void NewInteractableHandler(MP4_Event e) { Event_NewInteractable n = e as Event_NewInteractable; if (n != null) { Debug.Assert(!_objIntModel.RegisteredInteractableObject.ContainsKey(n.data), "Attempting to register an interactible that is already registered"); GameObject body = new GameObject(n.data.type.ToString()); Debug.Log(n.startStowedOrInstalled); _Helper_SetBodyLayerUsingState(body, n.data); body.transform.SetParent(ServiceLocator.Instance.View.Find("InteractiveAssets")); body.transform.position = n.pos; if (n.data.cat == ServiceLocator.ThingCategory.Items) { ViewItem itemView = body.AddComponent <ViewItem>(); itemView.SetData(n.data as Item_Base); } else if (n.data.cat == ServiceLocator.ThingCategory.Equipment) { ViewEqpt eqptView = body.AddComponent <ViewEqpt>(); eqptView.SetData(n.data as Equipment_Base); } _objIntModel.RegisteredInteractableObject.Add(n.data, body); } }
//--------------------- // Call event //--------------------- public void Fire(MP4_Event e) { Type type = e.GetType(); MP4_Event.Handler handlers; if (registeredHandlers.TryGetValue(type, out handlers)) { handlers(e); } }