Exemplo n.º 1
0
 public void SetColor(SpiralScene.PatternGroup group, Color c)
 {
     if (particleMaterials.ContainsKey(group))
     {
         particleMaterials[group].color = c;
     }
 }
Exemplo n.º 2
0
    public void LoadScene(SpiralScene scene)
    {
        DataManager.Instance.CopiedObject = null;

        CurrentScene    = scene;
        SceneTitle.text = scene.name;

        for (int i = 0; i < Groups.Count; i++)
        {
            PatternGroupUI ui = Groups[i];
            if (i < scene.Patterns.Count)
            {
                SpiralScene.PatternGroup g = scene.Patterns[i];
                ui.LoadGroup(g);
            }
            else
            {
                ui.LoadGroup(null);
            }
        }
    }
Exemplo n.º 3
0
    IEnumerator playScene(SpiralScene scene, System.Action callback, float delay)
    {
        if (playing)
        {
            Clear();
        }

        playing = true;
        yield return(new WaitForSeconds(delay));

        if (playing)
        {
            executingSimulation = true;
            animationCallback   = callback;

            Camera.SetBackground(scene.BackgroundColor);

            particleMaterials.Clear();

            float avgColor = (scene.BackgroundColor.r + scene.BackgroundColor.g + scene.BackgroundColor.b) / 3f;
            Synth.CurrentScale = (Synth.ScaleType)(Mathf.Min(3, Mathf.FloorToInt(4 * avgColor)));
            float startZoom = 0f;

            for (int i = 0; i < scene.Patterns.Count; i++)
            {
                SpiralScene.PatternGroup group = scene.Patterns[i];
                if (group != null && group.Pattern != null && group.Particle != null && group.Enabled)
                {
                    Material particleMat = group.Pattern.Generate(group.Particle, group.Color, i * 0.1f);
                    particleMaterials.Add(group, particleMat);
                    startZoom = Mathf.Max(group.Pattern.SpokeDistance, startZoom);
                }
            }
            Camera.SetMinZoom(startZoom);
        }
    }
Exemplo n.º 4
0
    public void OnToggle(bool enabled)
    {
        if (enabled)
        {
            GroupPanel.alpha          = 1f;
            GroupPanel.blocksRaycasts = true;
            GroupPanel.interactable   = true;
        }
        else
        {
            GroupPanel.alpha          = 0.2f;
            GroupPanel.blocksRaycasts = false;
            GroupPanel.interactable   = false;
        }

        if (CurrentGroup == null && enabled)
        {
            SpiralScene.PatternGroup g = new SpiralScene.PatternGroup();
            g.Pattern  = DataManager.Instance.CreatePattern();
            g.Particle = DataManager.Instance.CreateParticle();
            g.Color    = Color.white;
            g.Enabled  = enabled;
            int patternIndex = SceneUI.Instance.Groups.IndexOf(this);
            SceneUI.CurrentScene.Patterns[patternIndex] = g;
            LoadGroup(g);
        }

        if (CurrentGroup != null)
        {
            if (CurrentGroup.Enabled != enabled)
            {
                CurrentGroup.Enabled = enabled;
                UIManager.TriggerRefresh();
            }
        }
    }
Exemplo n.º 5
0
    public void LoadGroup(SpiralScene.PatternGroup group)
    {
        CurrentGroup = group;

        UIManager.TriggerRefresh();
    }