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;
    }
Exemple #2
0
    /// <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);
    }
Exemple #3
0
    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;
            }
        }
    }
Exemple #8
0
    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;
            }
        }
    }
Exemple #10
0
    /// <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();
                    }
                }
            }
        }
    }