public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        DigSpaceRule digSpaceRule = (DigSpaceRule)target;

        if (GUI.changed && digSpaceRule.CheckIfSizeHasToChange())
        {
            Debug.Log("Reset");
            digSpaceRule.SetArray(digSpaceRule.sizeX, digSpaceRule.sizeY);
        }
        for (int i = 0; i < digSpaceRule.sizeY; i++)
        {
            EditorGUILayout.BeginHorizontal(GUILayout.Width(digSpaceRule.sizeX * 5));
            for (int j = 0; j < digSpaceRule.sizeX; j++)
            {
                digSpaceRule.SetAtPosition(j, i, EditorGUILayout.Toggle(digSpaceRule.GetAtPosition(j, i)));
            }
            EditorGUILayout.EndHorizontal();
        }

        if (GUILayout.Button("Set dirty"))
        {
            SetAsDirty();
            Debug.Log("Dirty");
        }
    }
    public void Dig(Vector3 pos, DigSpaceRule space)
    {
        int offsetX = 0;// (space.sizeX / 2);
        int offsetY = (space.sizeY / 2);

        for (int i = 0; i < space.sizeY; i++)
        {
            for (int j = 0; j < space.sizeX; j++)
            {
                if (space.GetAtPosition(j, i))
                {
                    Vector3 marker = this.transform.up * (j - offsetX);
                    marker += this.transform.right * (i - offsetY);

                    tilemap.SetTile(Vector3Int.FloorToInt(marker + this.transform.position), space.replacementTile);
                }
            }
        }
    }