RuleTile Rule editor fails to cycle with left click

Hello!

I’m using a custom rule tile called “AdvancedRuleTile” whose code is below.

using UnityEngine;
using UnityEngine.Tilemaps;
using System.Linq;
using Unity.VisualScripting;

[CreateAssetMenu(menuName = "Custom/Advanced Rule Tile")]public class AdvancedRuleTile : RuleTile<AdvancedRuleTile.Neighbor> {
    [Header("Advanced Tile")]

    [Space]
    [Tooltip("Compatible tiles")]
    public TileBase[] compatibleTiles;

    [Tooltip("Edge Tile Data")]
    public EdgeTileData edgeTileData;

    public class Neighbor : RuleTile.TilingRule.Neighbor
    {
        public const int Compatible = 1;
        public const int NotCompatible = 2;
        public const int Nothing = 3;
        public const int EmptyCW = 4;
        public const int EmptyCCW = 5;
    }
...

This all works as intended. I’m using a modified editor window for this as well (called “AdvancedRuleTileEditor”):

#if UNITY_EDITOR
using UnityEngine;

namespace UnityEditor
{
    [CustomEditor(typeof(AdvancedRuleTile))]
    [CanEditMultipleObjects]
    public class AdvancedRuleTileEditor : RuleTileEditor
    {
        public Texture2D CompatibleIcon;
        public Texture2D NotCompatibleIcon;
        public Texture2D NothingIcon;
        public Texture2D EmptyCW;
        public Texture2D EmptyCCW;
        public override void RuleOnGUI(Rect rect, Vector3Int position, int neighbor)
        {
            switch (neighbor)
            {
                case AdvancedRuleTile.Neighbor.Compatible:
                    GUI.DrawTexture(rect, CompatibleIcon);
                    return;
                case AdvancedRuleTile.Neighbor.NotCompatible:
                    GUI.DrawTexture(rect, NotCompatibleIcon);
                    return;
                case AdvancedRuleTile.Neighbor.Nothing:
                    GUI.DrawTexture(rect, NothingIcon);
                    return;
                case AdvancedRuleTile.Neighbor.EmptyCW:
                    GUI.DrawTexture(rect, EmptyCW);
                    return;
                case AdvancedRuleTile.Neighbor.EmptyCCW:
                    GUI.DrawTexture(rect, EmptyCCW);
                    return;
            }

            base.RuleOnGUI(rect, position, neighbor);
        }
    }
}
#endif

The issue is that cycling these rules in the editor isn’t working properly. I’m able to right click to cycle the rules in reverse, but when I left click it gets stuck on state 1 (Compatible - it’s the green icon):
9806154--1408032--upload_2024-4-30_18-26-4.png

It’s quite aggravating that I’m only able to cycle this in reverse. Is there anything in my code that might be causing this, or is this just a bug in the Unity editor that I have to work around?