예제 #1
0
 private void OnItemBought(ItemConfig cfg, ItemVariant var)
 {
     if (variant == var)
     {
         lockIMG.gameObject.SetActive(false);
     }
 }
예제 #2
0
    private void ManipulateDisplayingInfo(ItemVariant var)
    {
        if (shopManager.CheckIfItemIsBought(itemCFG, var) /* || var.cost == 0*/)
        {
            buyButton.SetActive(false);
            itemBoughtTab.SetActive(true);
            // donebutton on
            doneButton.SetActive(true);
        }
        else
        {
            buyButton.SetActive(true);
            itemBoughtTab.SetActive(false);
            //donebutton off
            doneButton.SetActive(false);
        }



        if (currentRoomConfig.ItemAndVarIsInConfig(itemCFG, var))
        {
            doneButton.SetActive(false);
        }


        variantCostText.text = var.cost.ToString();

        variantCurrencyIMG.sprite = var.currencyType == CurrencyType.HARD ? hardCurrencySprite
            : softCurrencySprite;

        variantNameIDtext.text  = var.ConfigId;
        varDescriptionText.text = var.description;
    }
예제 #3
0
    //show item at model(preview)
    private void OnItemPressed(GameObject item)
    {
        ObjectsPreviewing.Clear();
        var itemCFG = item.GetComponent <RoomItemDisplay>().itemConfig;

        activeVariant = currentRoomConf?.GetActiveVariant(itemCFG);

        foreach (GameObject it in roomItems)
        {
            if (it.name == itemCFG.furnitureType.ToString())
            {
                camMov.target = it.transform;
                ObjectsPreviewing.Add(it);
                if (itemCFG.mesh != null)
                {
                    it.GetComponent <MeshFilter>().mesh = itemCFG.mesh;
                }

                var itemRenderer = it.GetComponent <MeshRenderer>();
                itemRenderer.material       = itemCFG.material;
                itemRenderer.material.color = currentRoomConf?.ItemIsInConfig(itemCFG) == true?
                                              currentRoomConf.GetActiveVariant(itemCFG).color : itemCFG.variants[0].color;
            }
        }
        itemPreviewing = itemCFG;
    }
예제 #4
0
    private void ManipulateDisplayingInfo(ItemVariant var)
    {
        if (shopManager.CheckIfItemIsBought(itemCFG, var) /* || var.cost == 0*/)
        {
            buyButton.SetActive(false);
            itemBoughtTab.SetActive(true);
            // donebutton on
            doneButton.SetActive(true);
/*            Debug.Log("SHOW DONE BUTTON!!!!");*/
        }
        else
        {
            buyButton.SetActive(true);
            itemBoughtTab.SetActive(false);
            //donebutton off
            doneButton.SetActive(false);
        }



        if (SaveManager.Instance.LoadClothesSet(previewManager.GetCurrentKey()).ItemAndVarIsInConfig(itemCFG, var))
        {
            doneButton.SetActive(false);
        }


        variantCostText.text = var.cost.ToString();

        variantCurrencyIMG.sprite = var.currencyType == CurrencyType.HARD ? hardCurrencySprite
            : softCurrencySprite;

        variantNameIDtext.text  = var.ConfigId;
        varDescriptionText.text = var.description;
    }
예제 #5
0
    public void AddItemToConfig(RoomItemConfig item)
    {
        ItemVariant var = new ItemVariant();

        string itemID    = item.ConfigId;
        string variantID = var.ConfigId;

        pickedItemsAndVariants.Add(itemID + "+" + variantID);
    }
예제 #6
0
 private void OnItemVariantChanged(ItemVariant variant)
 {
     foreach (var Gobject in ObjectsPreviewing)
     {
         //HERE WE APPLY VARIANT ON THE MODEL!
         Gobject.GetComponent <MeshRenderer>().material.color = variant.color;
     }
     activeVariant = variant;
 }
예제 #7
0
    public List <string> bought3DModelItems = new List <string>(); //last thing to do

    public void AddItemToBoughtList(ItemConfig cfg, ItemVariant variant)
    {
        var itemID    = cfg.ConfigId;
        var variantID = variant.ConfigId;

        var resultString = string.Concat(itemID, "+", variantID);

        bought3DModelItems.Add(resultString);
    }
예제 #8
0
 public void Deconstruct(
     out ItemVariant itemVariant,
     out Reference languageReference,
     out IDictionary <Reference, ItemVariant> newItemVariants
     )
 {
     itemVariant       = ItemVariant ?? throw new ArgumentNullException(nameof(ItemVariant));
     languageReference = LanguageReference ?? throw new ArgumentNullException(nameof(LanguageReference));
     newItemVariants   = NewItemVariants ?? throw new ArgumentNullException(nameof(NewItemVariants));
 }
예제 #9
0
    public void AddRoomItemToShopList(RoomItemConfig conf, ItemVariant activeVar)
    {
        var list = shopDataConfig.boughtRoomItems;
        var pair = string.Concat(conf.ConfigId, '+', activeVar.ConfigId);

        if (list.Contains(pair))
        {
            return;
        }
        list.Add(pair);
    }
예제 #10
0
    public void PutOnItem(ItemConfig config, ItemVariant variant)
    {
        if (config.itemObject != null)
        {
            if (skinHolder == null)
            {
                return;
            }

            var bodyAnimator = GetComponentInChildren <Animator>();           //player body is our child

            var bodyTransform = skinHolder?.Find(config.bodyPart.ToString()); //IF YOU WANT RENAME 3DMODEL PARTS - RENAME ENUM BODY_PART

            var newBodyPart = Instantiate(config.itemObject, skinHolder);

            newBodyPart.name = bodyTransform.name;

            var newAnimator = newBodyPart.GetComponent <Animator>();

            newAnimator.runtimeAnimatorController = bodyAnimator.runtimeAnimatorController;
            newAnimator.avatar = bodyAnimator.avatar;

            GameObject.DestroyImmediate(bodyTransform.gameObject);

/*            GameObject.Destroy(bodyTransform.gameObject);*/



/*            if (config.mesh != null)
 *          newBodyPart.GetComponentInChildren<SkinnedMeshRenderer>().sharedMesh = config.mesh;*/

            newBodyPart.GetComponentInChildren <SkinnedMeshRenderer>().material.color = variant.color;



            //and we disable
            DisableBodyParts(config.partsToDisable);
        }
        else
        {
            if (config.mesh != null /* && config.material != null*/)
            {
                var bodyTransform = skinHolder.Find(config.bodyPart.ToString()); //IF YOU WANT RENAME 3DMODEL PARTS - RENAME ENUM BODY_PART
                bodyTransform.GetComponentInChildren <SkinnedMeshRenderer>().sharedMesh = config.mesh;
/*                bodyTransform.GetComponentInChildren<SkinnedMeshRenderer>().material = config.material;*/
                bodyTransform.GetComponentInChildren <SkinnedMeshRenderer>().material.color = variant.color;
            }
            else
            {
                Debug.LogWarning("Set mesh/material in config and check skinholder!");
            }
        }
    }
예제 #11
0
 public bool ItemAndVarIsInConfig(RoomItemConfig item, ItemVariant var)
 {
     foreach (string dirtyPair in pickedItemsAndVariants)
     {
         string[] strs = dirtyPair.Split('+');
         if (strs.Contains(item.ConfigId) && strs.Contains(var.ConfigId))
         {
             return(true);
         }
     }
     return(false);
 }
예제 #12
0
    public void Buy(RoomItemConfig cfg, ItemVariant varitant, int cost, CurrencyType type)
    {
        switch (type)
        {
        case CurrencyType.SOFT:
            saveManager.SpendSoftCurrency(cost);
            break;

        case CurrencyType.HARD:
            saveManager.SpendHardCurrency(cost);
            break;
        }
        saveManager.AddRoomItemToShopList(cfg, varitant);
    }
예제 #13
0
    public bool CheckIfItemIsBought(RoomItemConfig cfg, ItemVariant variant) //check if bought item+concrete var
    {
        var list = saveManager.GetRoomItemList();

        foreach (string str in list)
        {
            var pair = str.Split('+');
            if (pair[0].Contains(cfg.ConfigId) && pair[1].Contains(variant.ConfigId))
            {
                return(true);
            }
        }
        return(false);
    }
예제 #14
0
 public bool VariantIsBought(ItemConfig item, ItemVariant variant)
 {
     foreach (string dirtyPair in bought3DModelItems)
     {
         string[] strs = dirtyPair.Split('+');
         if (strs.Contains(item.ConfigId))
         {
             if (strs.Contains(variant.ConfigId))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
예제 #15
0
    private void OnItemBought(RoomItemConfig cfg, ItemVariant var)     // TODO var is unnecessary
    {
        if (itemConfig == cfg)
        {
            if (lockIcon != null)
            {
                lockIcon.gameObject.SetActive(false);
                activeItemTick.SetActive(true);
/*                frameIMG.color = startFrameColor;*/
            }
        }
        else
        {
            activeItemTick.SetActive(false);
        }
    }
예제 #16
0
    //show item at model(preview)
    private void OnItemPressed(GameObject item)
    {
        var itemCFG = item.GetComponent <ItemDisplay>().itemConfig;

        activeVariant = previewingClothesConfig?.GetActiveVariant(itemCFG);

        GetComponent <SkinsManager>().PutOnItem(itemCFG, activeVariant);

        /*
         * var bodyPart = transform.Find(itemCFG.bodyPart.ToString());
         * previewingBodyPart = bodyPart.GetComponent<SkinnedMeshRenderer>();
         * previewingBodyPart.sharedMesh = itemCFG.mesh;
         *
         * previewingBodyPart.material.color = previewingClothesConfig.ItemIsInConfig(itemCFG) == true ?
         * previewingClothesConfig.GetActiveVariant(itemCFG).color :  itemCFG.variants[0].color;
         */
        itemPreviewing = itemCFG;
    }
예제 #17
0
    public void AddItemToConfig(RoomItemConfig item, ItemVariant variant)
    {
        string itemID    = item.ConfigId;
        string variantID = variant.ConfigId;

        foreach (string pair in pickedItemsAndVariants.ToList())
        {
            string[] strs = pair.Split('+');
            var      it   = ScriptableList <RoomItemConfig> .instance.GetItemByID(strs[0]);

            if (it.furnitureType == item.furnitureType)
            {
                pickedItemsAndVariants.Remove(pair);
            }
        }

        pickedItemsAndVariants.Add(string.Concat(itemID, "+", variantID));
    }
예제 #18
0
 public ItemVariantThumbnailViewModel(ItemVariant itemVariant) : base(itemVariant)
 {
     Images = itemVariant.Images.Select(i => new ItemVariantImageViewModel(i));
 }
예제 #19
0
 private void OnItemVariantChanged(ItemVariant variant)
 {
     GetComponent <SkinsManager>().PutOnItem(itemPreviewing, variant);
     //previewingBodyPart.material.color = variant.color;
     activeVariant = variant;
 }
예제 #20
0
 private void HideBuyButton(RoomItemConfig cfg, ItemVariant var)  //TODO cfg is unnecessary && var
 {
     //MAY BE DO NOT HIDE?
     buyButton.SetActive(false);
     itemBoughtTab.SetActive(true);
 }
예제 #21
0
 public ItemVariantDetailViewModel(ItemVariant itemVariant) : base(itemVariant)
 {
     ItemProperties = itemVariant.ItemProperties.Select(propertyValue => new ItemPropertyViewModel(propertyValue));
 }