예제 #1
0
    public void BuilderInWorldQuickBar()
    {
        BuilderInWorldTestHelper.CreateTestCatalogLocalSingleObject();
        CatalogItem item = DataStore.i.builderInWorld.catalogItemDict.GetValues()[0];

        CatalogItemAdapter adapter = BuilderInWorldTestHelper.CreateCatalogItemAdapter(gameObjectToUse);

        adapter.SetContent(item);

        CatalogAssetGroupAdapter groupAdatper = new CatalogAssetGroupAdapter();

        groupAdatper.AddAdapter(adapter);

        CatalogGroupListView catalogGroupListView = new CatalogGroupListView();

        catalogGroupListView.AddAdapter(groupAdatper);
        catalogGroupListView.generalCanvas = Utils.GetOrCreateComponent <Canvas>(gameObjectToUse);

        QuickBarView quickBarView = new QuickBarView();

        quickBarView.catalogGroupListView = catalogGroupListView;

        QuickBarController quickBarController = new QuickBarController(quickBarView);
        int slots = quickBarController.GetSlotsCount();

        quickBarView.shortcutsImgs = new QuickBarSlot[slots];

        for (int i = 0; i < slots; i++)
        {
            quickBarView.SetIndexToDrop(i);
            adapter.AdapterStartDragging(null);
            quickBarView.SceneObjectDropped(null);
            Assert.AreEqual(item, quickBarController.QuickBarObjectSelected(i));
        }
    }
 public void AddAdapter(CatalogItemAdapter adapter)
 {
     adapter.OnCatalogItemClicked  += CatalogItemClicked;
     adapter.OnCatalogItemFavorite += CatalogItemFavorite;
     adapter.OnAdapterStartDrag    += AdapterStartDragging;
     adapter.OnAdapterDrag         += OnDrag;
     adapter.OnAdapterEndDrag      += OnEndDrag;
 }
    public void SceneObjectDroppedFromCatalog(BaseEventData data)
    {
        CatalogItemAdapter adapter = sceneCatalogController.GetLastCatalogItemDragged();

        if (adapter != null)
        {
            SetCatalogItemToShortcut(adapter.GetContent());
        }
    }
예제 #4
0
 public void UnsubscribeToEvents(CatalogItemAdapter adapter)
 {
     adapter.OnCatalogItemClicked    -= CatalogItemClicked;
     adapter.OnCatalogItemFavorite   -= CatalogItemFavorite;
     adapter.OnAdapterStartDrag      -= AdapterStartDragging;
     adapter.OnAdapterDrag           -= OnDrag;
     adapter.OnAdapterEndDrag        -= OnEndDrag;
     adapter.OnPointerEnterInAdapter -= OnPointerEnter;
     adapter.OnPointerExitInAdapter  -= OnPointerExit;
 }
예제 #5
0
 public void SetContent(string category, List <CatalogItem> catalogItemList)
 {
     categoryTxt.text = category.ToUpper();
     RemoveAdapters();
     foreach (CatalogItem catalogItem in catalogItemList)
     {
         CatalogItemAdapter adapter = Instantiate(catalogItemAdapterPrefab, categoryContentGO.transform).GetComponent <CatalogItemAdapter>();
         adapter.SetContent(catalogItem);
         SubscribeToEvents(adapter);
     }
 }
예제 #6
0
    public void SceneObjectDropped(BaseEventData data)
    {
        CatalogItemAdapter adapter     = catalogGroupListView.GetLastCatalogItemDragged();
        CatalogItem        catalogItem = adapter.GetContent();

        if (adapter.thumbnailImg.enabled)
        {
            Texture texture = adapter.thumbnailImg.texture;
            SetQuickBarShortcut(catalogItem, lastIndexDroped, texture);
        }
    }
    public void SceneObjectDropped()
    {
        CatalogItemAdapter adapter = catalogGroupListView.GetLastSceneObjectDragged();

        if (adapter == null)
        {
            return;
        }
        SceneObject sceneObject = adapter.GetContent();

        OnSceneObjectDropped?.Invoke(sceneObject);
    }
예제 #8
0
 public void RemoveAdapters()
 {
     for (int i = 0; i < categoryContentGO.transform.childCount; i++)
     {
         CatalogItemAdapter toRemove = categoryContentGO.transform.GetChild(i).GetComponent <CatalogItemAdapter>();
         if (toRemove != null)
         {
             UnsubscribeToEvents(toRemove);
             Destroy(toRemove.gameObject);
         }
     }
 }
    public void CatalogitemDropped()
    {
        CatalogItemAdapter adapter = catalogGroupListView.GetLastCatalogItemDragged();

        if (adapter == null)
        {
            return;
        }
        CatalogItem catalogItem = adapter.GetContent();

        OnCatalogItemDropped?.Invoke(catalogItem);
    }
예제 #10
0
    public void SceneObjectDroppedFromCatalog(BaseEventData data)
    {
        CatalogItemAdapter adapter = sceneCatalogController.GetLastCatalogItemDragged();

        if (adapter != null &&
            adapter.thumbnailImg != null &&
            adapter.thumbnailImg.enabled)
        {
            Texture     texture     = adapter.thumbnailImg.texture;
            CatalogItem catalogItem = adapter.GetContent();
            SetQuickBarShortcut(catalogItem, lastIndexDroped, texture);
        }
    }
예제 #11
0
    public void ToggleFavoriteState(CatalogItem catalogItem, CatalogItemAdapter adapter)
    {
        if (!favoritesCatalogItems.Contains(catalogItem))
        {
            favoritesCatalogItems.Add(catalogItem);
            catalogItem.SetFavorite(true);
        }
        else
        {
            favoritesCatalogItems.Remove(catalogItem);
            catalogItem.SetFavorite(false);
        }

        adapter?.SetFavorite(catalogItem.IsFavorite());
    }
 public void SetContent(string category, List <SceneObject> sceneObjectsList)
 {
     categoryTxt.text = category.ToUpper();
     RemoveAdapters();
     foreach (SceneObject sceneObject in sceneObjectsList)
     {
         CatalogItemAdapter adapter = Instantiate(catalogItemAdapterPrefab, categoryContentGO.transform).GetComponent <CatalogItemAdapter>();
         adapter.SetContent(sceneObject);
         adapter.OnSceneObjectClicked  += SceneObjectClicked;
         adapter.OnSceneObjectFavorite += SceneObjectFavorite;
         adapter.OnAdapterStartDrag    += AdapterStartDragging;
         adapter.OnAdapterDrag         += OnDrag;
         adapter.OnAdapterEndDrag      += OnEndDrag;
     }
 }
예제 #13
0
    public void ToggleFavoriteState(SceneObject sceneObject, CatalogItemAdapter adapter)
    {
        if (!favoritesSceneObjects.Contains(sceneObject))
        {
            favoritesSceneObjects.Add(sceneObject);
            sceneObject.isFavorite = true;
        }
        else
        {
            favoritesSceneObjects.Remove(sceneObject);
            sceneObject.isFavorite = false;
        }

        adapter.SetFavorite(sceneObject.isFavorite);
    }
예제 #14
0
    public static CatalogItemAdapter CreateCatalogItemAdapter(GameObject gameObject)
    {
        CatalogItemAdapter adapter = Utils.GetOrCreateComponent <CatalogItemAdapter>(gameObject);

        adapter.onFavoriteColor  = Color.white;
        adapter.offFavoriteColor = Color.white;
        adapter.favImg           = Utils.GetOrCreateComponent <Image>(gameObject);
        adapter.smartItemGO      = gameObject;
        adapter.lockedGO         = gameObject;
        adapter.canvasGroup      = Utils.GetOrCreateComponent <CanvasGroup>(gameObject);

        GameObject newGameObject = new GameObject();

        newGameObject.transform.SetParent(gameObject.transform);
        adapter.thumbnailImg = Utils.GetOrCreateComponent <RawImage>(newGameObject);
        return(adapter);
    }
예제 #15
0
    private void AdapterStartDragging(CatalogItem catalogItemClicked, CatalogItemAdapter adapter, BaseEventData data)
    {
        PointerEventData eventData = data as PointerEventData;

        if (draggedObject == null)
        {
            draggedObject = Instantiate(adapter.gameObject, generalCanvas.transform);
        }

        CatalogItemAdapter newAdapter = draggedObject.GetComponent <CatalogItemAdapter>();

        RectTransform adapterRT = adapter.GetComponent <RectTransform>();

        newAdapter.SetContent(adapter.GetContent());
        newAdapter.EnableDragMode(adapterRT.sizeDelta);
        catalogItemAdapterDragged = newAdapter;

        OnStopInput?.Invoke();
    }
    public void BuilderInWorldQuickBar()
    {
        BIWTestHelper.CreateTestCatalogLocalSingleObject();
        CatalogItem item = DataStore.i.dataStoreBuilderInWorld.catalogItemDict.GetValues()[0];

        CatalogItemAdapter adapter = BIWTestHelper.CreateCatalogItemAdapter(gameObjectToUse);

        adapter.SetContent(item);

        CatalogAssetGroupAdapter groupAdapter = new GameObject("_CatalogAssetGroupAdapter").AddComponent <CatalogAssetGroupAdapter>();

        groupAdapter.SubscribeToEvents(adapter);

        CatalogGroupListView catalogGroupListView = new GameObject("_CatalogGroupListView").AddComponent <CatalogGroupListView>();

        catalogGroupListView.SubscribeToEvents(groupAdapter);
        catalogGroupListView.generalCanvas = Utils.GetOrCreateComponent <Canvas>(gameObjectToUse);
        SceneCatalogView sceneCatalogView = SceneCatalogView.Create();

        sceneCatalogView.catalogGroupListView = catalogGroupListView;
        SceneCatalogController sceneCatalogController = new SceneCatalogController();

        QuickBarView quickBarView = QuickBarView.Create();

        QuickBarController quickBarController = new QuickBarController();

        sceneCatalogController.Initialize(sceneCatalogView, quickBarController);
        quickBarController.Initialize(quickBarView, sceneCatalogController);
        int slots = quickBarController.GetSlotsCount();

        quickBarView.shortcutsImgs = new QuickBarSlot[slots];

        for (int i = 0; i < slots; i++)
        {
            quickBarController.SetIndexToDrop(i);
            adapter.AdapterStartDragging(null);
            quickBarController.SetQuickBarShortcut(item, i, new Texture2D(10, 10));
            Assert.AreEqual(item, quickBarController.QuickBarObjectSelected(i));
        }
    }
예제 #17
0
 private void OnPointerExit(PointerEventData eventData, CatalogItemAdapter adapter)
 {
     OnPointerExitInCatalogItemAdapter?.Invoke(eventData, adapter);
 }
 void AdapterStartDragging(SceneObject sceneObjectClicked, CatalogItemAdapter adapter, BaseEventData data)
 {
     OnAdapterStartDragging?.Invoke(sceneObjectClicked, adapter, data);
 }
 void SceneObjectFavorite(SceneObject sceneObjectClicked, CatalogItemAdapter adapter)
 {
     OnSceneObjectFavorite?.Invoke(sceneObjectClicked, adapter);
 }
예제 #20
0
 private void CatalogItemFavorite(CatalogItem sceneObject, CatalogItemAdapter adapter)
 {
     OnCatalogItemFavorite?.Invoke(sceneObject, adapter);
 }
예제 #21
0
 private void AdapterStartDragging(CatalogItem catalogItemClicked, CatalogItemAdapter adapter, BaseEventData data)
 {
     OnAdapterStartDragging?.Invoke(catalogItemClicked, adapter, data);
 }
예제 #22
0
 private void CatalogItemFavorite(CatalogItem catalogItemClicked, CatalogItemAdapter adapter)
 {
     OnCatalogItemFavorite?.Invoke(catalogItemClicked, adapter);
 }
예제 #23
0
 private void ShowTooltipForCatalogItemAdapter(PointerEventData data, CatalogItemAdapter adapter)
 {
     controllers.tooltipController.SetTooltipText(adapter.GetContent().name);
     controllers.tooltipController.ShowTooltip(data, catalogItemTooltipOffset);
 }