private void SetLevel(int level) { // Show or hide player skin player.SetActive(IsVisualization(level)); playerControl.SetActive(IsVisualization(level)); // Set skybox if (!IsVisualization(level) || level == Settings.Defaults.Visualization.BuildNumber) { RenderSettings.skybox = Resources.Load <Material> ("Skyboxes/Nebula"); } else { VisualizationObj viz = Array.Find(Settings.Visualizations, x => x.BuildNumber == level); if (viz.Skybox != null) { RenderSettings.skybox = Resources.Load <Material> ("Skyboxes/" + viz.Skybox); } else { RenderSettings.skybox = null; } } // Unload last scene if (Settings.Active.Scene > 0) { SceneManager.UnloadSceneAsync(Settings.Active.Scene); } Settings.Active.Scene = level; }
/// <summary> /// Determines whether the specified <see cref="System.Object" /> is equal to the current <see cref="VisualizationObj" />. /// </summary> /// <param name="obj">The <see cref="System.Object" /> to compare with the current <see cref="VisualizationObj" />.</param> /// <returns> /// <c>true</c> if the specified <see cref="System.Object" /> is equal to the current <see cref="VisualizationObj" />; /// otherwise, <c>false</c>. /// </returns> public override bool Equals(object obj) { VisualizationObj rhs = (VisualizationObj)obj; return(rhs != null && this.Name == rhs.Name && this.Colors == rhs.Colors && this.BuildNumber == rhs.BuildNumber); }
public static ColorSchemeObj GetDefault(VisualizationObj viz) { if (viz != null) { Load(true); return(ColorSchemes.Find(x => x.Name == viz.Name)); } return(null); }
public static VisualizationObj GetVisualization(long id, bool closeConnection) { if (Database.Connect()) { // Send database query SqliteCommand cmd = new SqliteCommand(Database.Connection); cmd.CommandText = "SELECT id,name,colors,buildNumber,skybox FROM visualization WHERE id = @ID"; // Add Parameters to statement cmd.Parameters.Add(new SqliteParameter("ID", id)); SqliteDataReader reader = cmd.ExecuteReader(); VisualizationObj viz = null; // Read and add visualization while (reader.Read()) { viz = new VisualizationObj(); viz.ID = reader.GetInt64(0); viz.Name = reader.GetString(1); viz.Colors = reader.GetInt32(2); viz.BuildNumber = reader.GetInt32(3); viz.Skybox = reader.IsDBNull(4) ? null : reader.GetString(4); } // Close reader reader.Close(); cmd.Dispose(); if (closeConnection) { Database.Close(); } return(viz); } // Close database connection if (closeConnection) { Database.Close(); } return(null); }
//-- DATABASE METHODS public void Load() { if (Database.Connect()) { // Database command SqliteCommand cmd = new SqliteCommand(Database.Connection); // Query statement string sql = "SELECT id,name,colors,buildNumber,skybox FROM visualization ORDER BY name ASC"; cmd.CommandText = sql; // Get sql results SqliteDataReader reader = cmd.ExecuteReader(); // Read sql results while (reader.Read()) { // Create visualization object VisualizationObj obj = new VisualizationObj(); // Set id and name obj.ID = reader.GetInt64(0); obj.Name = reader.GetString(1); obj.Colors = reader.GetInt32(2); obj.BuildNumber = reader.GetInt32(3); obj.Skybox = reader.IsDBNull(4) ? null : reader.GetString(4); // Add visualization to visualizations array if (Application.CanStreamedLevelBeLoaded(obj.BuildNumber)) { Visualizations.Add(obj); } } // Close reader reader.Close(); cmd.Dispose(); // Clone visualizations array tempViz = Visualizations; } // Close database connection Database.Close(); }
public void StartVisualization() { VisualizationObj viz = NextVisualization(); if (viz != null) { // Start visualization StartLevel(viz.BuildNumber); } else { // Show dialog GameObject.Find("MenuManager").GetComponent <Dialog> ().ShowDialog( "Keine Visualisierung", "Bitte wählen Sie eine gültige Visualisierung aus, um zu starten." ); } }
/// <summary> /// Initializes a new instance of the <see cref="ColorSchemeObj" /> class and /// sets the visualization connected to this color scheme. It also tries to /// set the colors of this color scheme which should be defined in /// <see cref="Settings.Defaults.Colors" />. /// </summary> /// <param name="Name">The name of this color scheme to be set.</param> /// <param name="Visualization">The visualization connected to this color scheme to be set.</param> public ColorSchemeObj(string Name, VisualizationObj Visualization) { this.Name = Name; this.Visualization = Visualization; ID = 0; // Set colors if (Settings.Defaults.Colors.ContainsKey(Visualization.Name)) { Colors = Settings.Defaults.Colors [Visualization.Name]; } else { Colors = new Color [Visualization.Colors]; for (int i = 0; i < Colors.Length; i++) { Colors [i] = Color.white; } } }
public void ToggleShuffle(bool state) { // Change shuffle Settings.Player.ShuffleViz = state; // Set visualizations if (visualizations == null || !Settings.Player.ShuffleViz) { SetVisualizations(); } // Update visualizations list if (Settings.Player.ShuffleViz && !isShuffled) { // Re-order visualizations System.Random rand = new System.Random(); int n = visualizations.Count; while (n > 1) { n--; int k = rand.Next(n + 1); VisualizationObj val = visualizations [k]; visualizations [k] = visualizations [n]; visualizations [n] = val; } } // Set selected visualization if (Settings.Selected.Visualization == null) { Settings.Selected.Visualization = Settings.Active.Visualization; } // Set shuffle isShuffled = Settings.Player.ShuffleViz; // Update UI shuffle.GetComponent <Text> ().color = Settings.Player.ShuffleViz ? Player.COLOR_ENABLED : Player.COLOR_DISABLED; }
public void Display() { if (Visualizations != null) { // Remove all GameObjects for (int i = transform.childCount - 1; i >= 0; i--) { GameObject.DestroyImmediate(transform.GetChild(i).gameObject); } foreach (VisualizationObj viz in Visualizations) { // Create GameObject GameObject gameObject = new GameObject("#" + viz.ID); gameObject.transform.SetParent(transform); RectTransform trans = gameObject.AddComponent <RectTransform> (); trans.pivot = new Vector2(0, 0.5f); // Add Layout Element LayoutElement layoutElement = gameObject.AddComponent <LayoutElement> (); layoutElement.minHeight = 30; layoutElement.preferredHeight = 30; // Add Horizontal Layout Group HorizontalLayoutGroup hlg = gameObject.AddComponent <HorizontalLayoutGroup> (); hlg.childForceExpandWidth = false; hlg.childForceExpandHeight = false; hlg.spacing = 10; hlg.childAlignment = TextAnchor.MiddleLeft; // Create arrow text GameObject GameObject mainArrow = new GameObject("Arrow"); mainArrow.transform.SetParent(gameObject.transform); // Add text TextUnicode mainTextArrow = mainArrow.AddComponent <TextUnicode> (); mainTextArrow.text = viz.Equals(Settings.Selected.Visualization) ? IconFont.DROPDOWN_CLOSED : ""; // Set text alignment mainTextArrow.alignment = TextAnchor.MiddleLeft; // Font settings mainTextArrow.font = IconFont.font; mainTextArrow.fontSize = 20; // Add Layout Element LayoutElement mainLayoutElementArrow = mainArrow.AddComponent <LayoutElement> (); mainLayoutElementArrow.minWidth = 22; // Create Text GameObject GameObject mainText = new GameObject("Text"); mainText.transform.SetParent(gameObject.transform); // Add Text Text text = mainText.AddComponent <Text> (); text.color = Color.white; text.font = Resources.Load <Font> ("Fonts/FuturaStd-Book"); text.text = viz.Name; text.fontSize = 30; // Add Button Button button = mainText.AddComponent <Button> (); button.transition = Selectable.Transition.Animation; // Add OnClick Handler VisualizationObj currentViz = viz; button.onClick.AddListener(delegate { if (!currentViz.Equals(Settings.Selected.Visualization)) { Settings.Selected.Visualization = currentViz; if (Settings.Selected.Visualization.Equals(Settings.Active.Visualization)) { Settings.Selected.ColorScheme = Settings.Active.ColorScheme; } else { Settings.Selected.ColorScheme = ColorScheme.GetDefault(currentViz); } ColorSchemes.Display(); Display(); // Show or hide start button MenuManager.ToggleStart(); } }); // Add Animator Animator animator = mainText.AddComponent <Animator> (); animator.runtimeAnimatorController = Resources.Load <RuntimeAnimatorController> ("Animations/MenuButtons"); // Create active text GameObject GameObject mainActive = new GameObject("Active"); mainActive.transform.SetParent(gameObject.transform); // Add text TextUnicode mainTextActive = mainActive.AddComponent <TextUnicode> (); if (viz.Equals(Settings.Active.Visualization)) { mainTextActive.text = IconFont.VISUALIZATION; mainTextActive.fontSize = 30; mainTextActive.color = new Color(0.7f, 0.7f, 0.7f); } // Set text alignment mainTextActive.alignment = TextAnchor.MiddleRight; // Font settings mainTextActive.font = IconFont.font; // Add Layout Element LayoutElement mainLayoutElementActive = mainActive.AddComponent <LayoutElement> (); mainLayoutElementActive.preferredWidth = 40; mainLayoutElementActive.preferredHeight = 30; // Set scaling gameObject.GetComponent <RectTransform> ().localScale = Vector3.one; } } }
/// <summary> /// Inserts all available visualizations into the database. /// </summary> public static void InsertVisualizations() { if (GetConnection() != null) { for (int i = 0; i < Settings.Visualizations.Length; i++) { // Get all available visualizations. VisualizationObj viz = Settings.Visualizations [i]; if (Application.CanStreamedLevelBeLoaded(viz.BuildNumber)) { // Query statement string sql = "INSERT INTO visualization (name, colors, buildNumber, skybox) " + "VALUES (@Name, @Colors, @BuildNumber, @Skybox); " + "SELECT last_insert_rowid()"; SqliteCommand cmd = new SqliteCommand(sql, Connection); // Add Parameters to statement cmd.Parameters.Add(new SqliteParameter("Name", viz.Name)); cmd.Parameters.Add(new SqliteParameter("Colors", viz.Colors)); cmd.Parameters.Add(new SqliteParameter("BuildNumber", viz.BuildNumber)); cmd.Parameters.Add(new SqliteParameter("Skybox", viz.Skybox)); try { // Execute insert statement long id = (long)cmd.ExecuteScalar(); // Update vz id. Settings.Visualizations [i].ID = id; // Dispose command cmd.Dispose(); } catch { // Dispose command cmd.Dispose(); // Select ID from database sql = "SELECT id FROM visualization WHERE name = @Name AND buildNumber = @BuildNumber"; cmd = new SqliteCommand(sql, Connection); // Add Parameters to statement cmd.Parameters.Add(new SqliteParameter("Name", viz.Name)); cmd.Parameters.Add(new SqliteParameter("BuildNumber", viz.BuildNumber)); // Get sql results SqliteDataReader reader = cmd.ExecuteReader(); // Read id while (reader.Read()) { Settings.Visualizations [i].ID = reader.GetInt64(0); } // Close reader reader.Close(); cmd.Dispose(); } } } } }