protected ProgressData()
    {
        Levels = new Dictionary <string, bool>();
        Tasks  = new Dictionary <string, bool>();
        foreach (var p in LevelContainer.GetInstance().Levels)
        {
            Levels.Add(p.Key, false);
            if (p.Value.Tasks == null)
            {
                continue;
            }
            foreach (var t in p.Value.Tasks)
            {
                Tasks.Add(t.Name, false);
            }
        }
        Skins = new Dictionary <string, bool>();
        foreach (var skin in SkinsContainer.GetInstance().Skins)
        {
            Skins.Add(skin.Skin.name, false);
        }
        //todo
        Data = new Dictionary <DataType, Dictionary <string, bool> >
        {
            { DataType.Level, Levels },
            { DataType.Task, Tasks },
            { DataType.Skin, Skins },
        };


        //special
        Levels["main"] = true;
    }
Exemple #2
0
 private void Start()
 {
     if (_instance != null)
     {
         throw new Exception("Second singleton");
     }
     _instance = this;
 }
    public void SetAvatar(string name)
    {
        var skin = SkinsContainer.GetInstance().Skins.FirstOrDefault(sp => name == sp.Skin.name);

        if (skin == null)
        {
            throw new ArgumentException("bad " + name);
        }
        AvatarSkinName = name;
        var ava = AvatarController.GetInstance().Avatar.gameObject;

        ava.GetComponent <MeshFilter>().mesh       = skin.Skin.GetComponent <MeshFilter>().mesh;
        ava.GetComponent <MeshRenderer>().material = skin.Skin.GetComponent <MeshRenderer>().material;
    }
    public ShowroomVM(Screen screen)
    {
        if (screen.Type != Screen.ScreenType.Showroom)
        {
            throw new ArgumentException();
        }
        Screen = screen;
        screen.Rect.transform.Find("Back").GetComponent <Button>().onClick.AddListener(HandleBackButton);
        screen.Rect.transform.Find("Left").GetComponent <ClickHandler>().Clicked  = () => Next(true);
        screen.Rect.transform.Find("Right").GetComponent <ClickHandler>().Clicked = () => Next(false);
        _use = screen.Rect.transform.Find("Use").GetComponent <Button>();
        _use.onClick.AddListener(Use);
        _useText = screen.Rect.transform.Find("Use").GetComponentInChildren <Text>();

        screen.TurnedOn = TurnOnHandler;
        _skins          = SkinsContainer.GetInstance().Skins;
        _mv             = ModelViewer.GetInstance();
        _progress       = ProgressData.GetInstance();
    }
Exemple #5
0
 private void TurnOnHandler()
 {
     if (_firstOn)
     {
         var skins     = SkinsContainer.GetInstance();
         var btns      = new RectTransform[skins.Skins.Length];
         var container = Screen.Rect.transform.Find("Skins") as RectTransform;
         var template  = Screen.Rect.transform.Find("Template") as RectTransform;
         for (int i = 0; i < skins.Skins.Length; ++i)
         {
             btns[i] = GameObject.Instantiate(template);
             btns[i].gameObject.SetActive(true);
             var lambda = btns[i].GetComponent <MonoLambda>();
             lambda.Parameters = skins.Skins[i].Skin.transform;
             lambda.Function   = o => GoToShowroom((Transform)o);
             btns[i].GetComponent <Button>().onClick.AddListener(lambda.Call);
         }
         SquareArranger.Arrange(container, btns, 0);
         _firstOn = false;
     }
 }