Ejemplo n.º 1
0
    public void OnReceived(EBEvent e)
    {
        switch (e.type)
        {
        case EBEventType.RoomSpawningTrigger:
            RoomSpawningTriggerEvent rstee = (e as RoomSpawningTriggerEvent);
            if (rstee.action == TriggerAction.Enter)
            {
                if ((rstee.roomEntryId == id) && spawningEnabled)
                {
                    roomsManager.DisableAllRoomScenes();
                    RoomScene room = roomsManager.GetRandomRoomScene();
                    AttachRoom(room);
                    SetSpawningEnabled(false);

                    room.ClearCollectibles();
                    Transform itemPlace = room.GetCollectiblePlaceholder();
                    if (itemPlace != null)
                    {
                        CollectibleItem item = itemsManager.GetItem();
                        if (item != null)
                        {
                            item.transform.parent   = itemPlace;
                            item.transform.position = itemPlace.position;
                            item.transform.rotation = itemPlace.rotation;
                            item.SetRoomScene(room);
                            item.gameObject.SetActive(true);
                        }
                    }
                }

                if (rstee.roomEntryId != id)
                {
                    SetSpawningEnabled(true);
                }
            }
            break;

        case EBEventType.DoorClosingTrigger:
            DoorClosingTriggerEvent dcte = (e as DoorClosingTriggerEvent);
            if ((dcte.roomEntryId == id) && (dcte.action == TriggerAction.Exit))
            {
                CloseDoor();
            }
            break;

        case EBEventType.HallMovingTriggerEntered:
            CloseDoor();
            break;
        }
    }