public void SetColor(SpiralScene.PatternGroup group, Color c) { if (particleMaterials.ContainsKey(group)) { particleMaterials[group].color = c; } }
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); } } }
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); } }
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(); } } }
public void LoadGroup(SpiralScene.PatternGroup group) { CurrentGroup = group; UIManager.TriggerRefresh(); }