/// <summary>
        /// Creates a wizard for the target RuleOverrideTIle
        /// </summary>
        /// <param name="target">The RuleOverrideTile to be edited by the wizard</param>
        public static void CreateWizard(RuleOverrideTile target)
        {
            PopulateRuleOverideTileWizard wizard =
                DisplayWizard <PopulateRuleOverideTileWizard>("Populate Override", "Populate");

            wizard.m_tileset = target;
        }
        public override void OnInspectorGUI()
        {
            serializedObject.UpdateIfRequiredOrScript();

            EditorGUI.BeginChangeCheck();

            EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Tile"));
            if (overrideTile.m_InstanceTile)
            {
                SerializedObject instanceTileSerializedObject = new SerializedObject(overrideTile.m_InstanceTile);
                overrideTile.m_InstanceTile.hideFlags = HideFlags.None;
                RuleTileEditor.DrawCustomFields(overrideTile.m_InstanceTile, instanceTileSerializedObject);
                overrideTile.m_InstanceTile.hideFlags = HideFlags.NotEditable;
                instanceTileSerializedObject.ApplyModifiedProperties();
            }
            EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Advanced"));
            serializedObject.ApplyModifiedProperties();

            if (EditorGUI.EndChangeCheck())
            {
                UpdateInstanceTile();
                SaveTile();
            }

            if (!overrideTile.m_Advanced)
            {
                using (new EditorGUI.DisabledScope(overrideTile.m_Tile == null))
                {
                    EditorGUI.BeginChangeCheck();
                    overrideTile.GetOverrides(m_Sprites);

                    m_SpriteList.list = m_Sprites;
                    m_SpriteList.DoLayoutList();
                    if (EditorGUI.EndChangeCheck())
                    {
                        for (int i = 0; i < targets.Length; i++)
                        {
                            RuleOverrideTile tile = targets[i] as RuleOverrideTile;
                            tile.ApplyOverrides(m_Sprites);
                            SaveTile();
                        }
                    }
                }
            }
            else
            {
                using (new EditorGUI.DisabledScope(overrideTile.m_Tile == null))
                {
                    overrideTile.GetOverrides(m_Rules);

                    m_RuleList.list = m_Rules;
                    m_RuleList.DoLayoutList();
                }
            }
        }
Ejemplo n.º 3
0
 private void UpdateOverrideTiles()
 {
     string[] overrideTileGuids = AssetDatabase.FindAssets("t:RuleOverrideTile");
     foreach (string overrideTileGuid in overrideTileGuids)
     {
         string           overrideTilePath = AssetDatabase.GUIDToAssetPath(overrideTileGuid);
         RuleOverrideTile overrideTile     = AssetDatabase.LoadAssetAtPath <RuleOverrideTile>(overrideTilePath);
         if (overrideTile.m_Tile == target)
         {
             overrideTile.Override();
         }
     }
 }
Ejemplo n.º 4
0
        public override void OnInspectorGUI()
        {
            serializedObject.UpdateIfRequiredOrScript();

            EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Tile"));
            EditorGUILayout.PropertyField(serializedObject.FindProperty("m_OverrideSelf"));
            EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Advanced"));
            serializedObject.ApplyModifiedProperties();


            using (new EditorGUI.DisabledScope(overrideTile.m_Tile == null))
            {
                if (GUILayout.Button("Populate based on sprite sheet..."))
                {
                    foreach (UnityEngine.Object obj in serializedObject.targetObjects)
                    {
                        PopulateRuleOverideTileWizard.CreateWizard(obj as RuleOverrideTile);
                    }
                }
            }

            if (!overrideTile.m_Advanced)
            {
                using (new EditorGUI.DisabledScope(overrideTile.m_Tile == null))
                {
                    EditorGUI.BeginChangeCheck();
                    overrideTile.GetOverrides(m_Sprites);

                    m_SpriteList.list = m_Sprites;
                    m_SpriteList.DoLayoutList();
                    if (EditorGUI.EndChangeCheck())
                    {
                        for (int i = 0; i < targets.Length; i++)
                        {
                            RuleOverrideTile tile = targets[i] as RuleOverrideTile;
                            tile.ApplyOverrides(m_Sprites);
                        }
                    }
                }
            }
            else
            {
                using (new EditorGUI.DisabledScope(overrideTile.m_Tile == null))
                {
                    overrideTile.GetOverrides(m_Rules);

                    m_RuleList.list = m_Rules;
                    m_RuleList.DoLayoutList();
                }
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Gets all RuleOverrideTiles which override the given RuleTile
        /// </summary>
        /// <param name="target">RuleTile which has been updated</param>
        /// <returns>A list of RuleOverrideTiles which override the given RuleTile</returns>
        public static List <RuleOverrideTile> FindAffectedOverrideTiles(RuleTile target)
        {
            List <RuleOverrideTile> overrideTiles = new List <RuleOverrideTile>();

            string[] overrideTileGuids = AssetDatabase.FindAssets("t:" + typeof(RuleOverrideTile).Name);
            foreach (string overrideTileGuid in overrideTileGuids)
            {
                string           overrideTilePath = AssetDatabase.GUIDToAssetPath(overrideTileGuid);
                RuleOverrideTile overrideTile     = AssetDatabase.LoadAssetAtPath <RuleOverrideTile>(overrideTilePath);
                if (overrideTile.m_Tile == target)
                {
                    overrideTiles.Add(overrideTile);
                }
            }

            return(overrideTiles);
        }
Ejemplo n.º 6
0
        public override void OnInspectorGUI()
        {
            serializedObject.UpdateIfRequiredOrScript();

            EditorGUI.BeginChangeCheck();

            EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Tile"));
            EditorGUILayout.PropertyField(serializedObject.FindProperty("m_OverrideSelf"));
            EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Advanced"));
            serializedObject.ApplyModifiedProperties();

            if (EditorGUI.EndChangeCheck())
            {
                SaveTile();
            }

            if (!overrideTile.m_Advanced)
            {
                using (new EditorGUI.DisabledScope(overrideTile.m_Tile == null))
                {
                    EditorGUI.BeginChangeCheck();
                    overrideTile.GetOverrides(m_Sprites);

                    m_SpriteList.list = m_Sprites;
                    m_SpriteList.DoLayoutList();
                    if (EditorGUI.EndChangeCheck())
                    {
                        for (int i = 0; i < targets.Length; i++)
                        {
                            RuleOverrideTile tile = targets[i] as RuleOverrideTile;
                            tile.ApplyOverrides(m_Sprites);
                        }
                    }
                }
            }
            else
            {
                using (new EditorGUI.DisabledScope(overrideTile.m_Tile == null))
                {
                    overrideTile.GetOverrides(m_Rules);

                    m_RuleList.list = m_Rules;
                    m_RuleList.DoLayoutList();
                }
            }
        }
        public override void OnInspectorGUI()
        {
            serializedObject.UpdateIfRequiredOrScript();

            DrawTileField();
            DrawCustomFields();

            // Sprite List
            EditorGUI.BeginChangeCheck();
            overrideTile.GetOverrides(m_Sprites);

            m_SpriteList.list = m_Sprites;
            m_SpriteList.DoLayoutList();
            if (EditorGUI.EndChangeCheck())
            {
                for (int i = 0; i < targets.Length; i++)
                {
                    RuleOverrideTile tile = targets[i] as RuleOverrideTile;
                    tile.ApplyOverrides(m_Sprites);
                    SaveTile();
                }
            }

            // GameObject List
            EditorGUI.BeginChangeCheck();
            overrideTile.GetOverrides(m_GameObjects);

            m_GameObjectList.list = m_GameObjects;
            m_GameObjectList.DoLayoutList();
            if (EditorGUI.EndChangeCheck())
            {
                for (int i = 0; i < targets.Length; i++)
                {
                    RuleOverrideTile tile = targets[i] as RuleOverrideTile;
                    tile.ApplyOverrides(m_GameObjects);
                    SaveTile();
                }
            }
        }
Ejemplo n.º 8
0
        void OnEnable()
        {
            _ruleOverrideTile = target as RuleOverrideTile;

            UpdateOverrides();
        }
        private static bool MenuOptionValidation(MenuCommand menuCommand)
        {
            RuleOverrideTile tile = menuCommand.context as RuleOverrideTile;

            return(tile.m_Tile);
        }
        static bool MenuOptionValidation(MenuCommand menuCommand)
        {
            RuleOverrideTile tile = menuCommand.context as RuleOverrideTile;

            return(tile.m_Tile && !tile.m_Advanced);
        }