/*
         * private static InteractorRuleObject DrawInteractorRuleOffset( ICECreatureControl _control,InteractorObject _interactor, InteractorRuleObject _rule )
         * {
         *      TargetObject _target = _rule as TargetObject;//new TargetObject(  TargetType.INTERACTOR );
         *      _target.TargetGameObject = _interactor.TargetGameObject;// m_creature_register.GetTargetByName( _interactor.TargetName );
         *      _target.TargetTag = _interactor.TargetTag;
         *      _target.TargetName = _interactor.TargetName;
         *
         *      _rule.OverrideTargetMovePosition = EditorSharedTools.DrawTargetObjectBlind( _target, _rule.OverrideTargetMovePosition );
         *      if( _rule.OverrideTargetMovePosition )
         *              EditorSharedTools.DrawTargetMoveSettings( _control.gameObject, _target);
         *
         *      return _rule;
         * }	*/

        private static bool DrawInteractorRule(ICECreatureControl _control, InteractorObject _interactor, int _index)
        {
            InteractorRuleObject _rule = _interactor.Rules[_index];

            ICEEditorLayout.BeginHorizontal();
            EditorGUI.BeginDisabledGroup(_rule.Enabled == false);
            _rule.Foldout = ICEEditorLayout.Foldout(_rule.Foldout, " Act #" + (_index + 2) + " - " + _rule.Behaviour.BehaviourTitle());

            if (ICEEditorLayout.CopyButtonSmall("Creates a copy of the selected interactor rule"))
            {
                _interactor.Rules.Insert(_index, new InteractorRuleObject(_rule, true));
            }

            if (ICEEditorLayout.ResetButtonSmall("Resets the selected interactor rule"))
            {
                _rule.Copy(new InteractorRuleObject());
            }
            EditorGUI.EndDisabledGroup();

            GUILayout.Space(5);
            if (ICEEditorLayout.ListDeleteButton <InteractorRuleObject>(_interactor.Rules, _rule))
            {
                return(true);
            }

            GUILayout.Space(5);
            if (ICEEditorLayout.ListUpDownButtons <InteractorRuleObject>(_interactor.Rules, _interactor.Rules.IndexOf(_rule)))
            {
                return(true);
            }


            GUILayout.Space(5);
            _rule.Enabled = ICEEditorLayout.EnableButton("Enables/disables the selected rule", _rule.Enabled);

            ICEEditorLayout.PriorityButton(_rule.SelectionPriority);


            ICEEditorLayout.EndHorizontal(ref _rule.ShowInfoText, ref _rule.InfoText, Info.INTERACTION_INTERACTOR_RULE);

            if (_rule.Foldout)
            {
                EditorGUI.BeginDisabledGroup(_rule.Enabled == false);

                if (!Application.isPlaying)
                {
                    _rule.OverrideTargetGameObject(_interactor.TargetGameObject);
                }

                _rule.Selectors.CanUseDefaultPriority = true;

                if (_rule.Selectors.UseDefaultPriority)
                {
                    _rule.Selectors.Priority = _interactor.Selectors.Priority + _index + 1;
                }

                TargetEditor.DrawTargetObjectBlind(_rule as TargetObject, "", "");
                TargetEditor.DrawTargetContent(_control, _rule as TargetObject, true, "IACT_" + _interactor.TargetName.ToUpper() + "_R" + (_index + 2));


                //TargetEditor.DrawTargetBehaviour( _control, _rule as TargetObject );

                /*
                 *      // BEHAVIOUR
                 *      string _auto_key = _interactor.TargetName + "_action_" + _index;
                 *      _rule.BehaviourModeKey = BehaviourEditor.BehaviourSelect( _control, "Behaviour", "Action behaviour for this interaction rule", _rule.BehaviourModeKey, _auto_key );
                 */
                EditorGUILayout.Separator();

                EditorGUI.EndDisabledGroup();
            }
            return(false);
        }