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);
        }
    }
Пример #2
0
    //---------------------
    // Call event
    //---------------------

    public void Fire(MP4_Event e)
    {
        Type type = e.GetType();

        MP4_Event.Handler handlers;
        if (registeredHandlers.TryGetValue(type, out handlers))
        {
            handlers(e);
        }
    }