public void OnValidate()
    {
        if (connectionID == null)
        {
            connectionID = new GenerationConnectionID(CardinalDirections.North, CardinalDirections.South, new ConnectionID(), new ConnectionID());
        }

        connectionID.Validate();
    }
    public void DisplayTileID()
    {
        EditorGUILayout.BeginVertical();
        GenerationConnectionID connection = values.generationTile.connectionID;

        if (!values.generationTile.connectionID.IsValid())
        {
            EditorGUILayout.HelpBox("The connection ID is invalid. Make sure the direction values don't match or are 'none'", MessageType.Error);
        }

        EditorGUI.indentLevel++;

        EditorGUILayout.LabelField("Entry ID");
        EditorGUI.indentLevel++;
        EditorGUILayout.LabelField("Direction");
        connection.entry.dir = (CardinalDirections)EditorGUILayout.EnumPopup(connection.entry.dir);
        EditorGUI.indentLevel++;
        EditorGUILayout.LabelField("Identifier");
        for (int i = 0; i < ConnectionID.CONNECTION_SIZE; i++)
        {
            connection.entry.id.connectionID[i] = (ConnectionVariations)EditorGUILayout.EnumPopup(connection.entry.id.connectionID[i]);
        }
        EditorGUI.indentLevel -= 2;
        GUILayout.Label("");
        EditorGUILayout.LabelField("Exit ID");
        EditorGUI.indentLevel++;
        EditorGUILayout.LabelField("Direction");
        connection.exit.dir = (CardinalDirections)EditorGUILayout.EnumPopup(connection.exit.dir);
        EditorGUI.indentLevel++;
        EditorGUILayout.LabelField("Identifier");
        for (int i = 0; i < ConnectionID.CONNECTION_SIZE; i++)
        {
            connection.exit.id.connectionID[i] = (ConnectionVariations)EditorGUILayout.EnumPopup(connection.exit.id.connectionID[i]);
        }
        GUILayout.Label("");
        EditorGUI.indentLevel = 0;

        values.generationTile.OnValidate();
        EditorGUILayout.EndVertical();
    }