<commit_before>﻿namespace Macabre2D.Framework {

    using Macabre2D.Framework.Extensions;
    using Microsoft.Xna.Framework;
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Collections.Specialized;
    using System.Linq;
    using System.Reflection;
    using System.Runtime.Serialization;

    /// <summary>
    /// The base class for all components.
    /// </summary>
    [DataContract]
    public abstract class BaseComponent : IDisposable {
        protected bool _disposedValue;
        protected IScene _scene;

        [DataMember]
        private readonly ObservableCollection<BaseComponent> _children = new ObservableCollection<BaseComponent>();

        private readonly List<Func<BaseComponent, bool>> _resolveChildActions = new List<Func<BaseComponent, bool>>();
        private readonly Transform _transform = new Transform();
        private readonly ResettableLazy<Matrix> _transformMatrix;

        [DataMember]
        private int _drawOrder;

        [DataMember]
        private bool _isEnabled = true;

        private bool _isTransformUpToDate;

        [DataMember]
        private bool _isVisible = true;<commit_msg>Refactor: BaseComponent now implements IBaseComponent.<commit_after>﻿namespace Macabre2D.Framework {

    using Macabre2D.Framework.Extensions;
    using Microsoft.Xna.Framework;
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Collections.Specialized;
    using System.Linq;
    using System.Reflection;
    using System.Runtime.Serialization;

    /// <summary>
    /// The base class for all components.
    /// </summary>
    [DataContract]
    public abstract class BaseComponent : IBaseComponent, IDisposable {
        protected bool _disposedValue;
        protected IScene _scene;

        [DataMember]
        private readonly ObservableCollection<BaseComponent> _children = new ObservableCollection<BaseComponent>();

        private readonly List<Func<BaseComponent, bool>> _resolveChildActions = new List<Func<BaseComponent, bool>>();
        private readonly Transform _transform = new Transform();
        private readonly ResettableLazy<Matrix> _transformMatrix;

        [DataMember]
        private int _drawOrder;

        [DataMember]
        private bool _isEnabled = true;

        private bool _isTransformUpToDate;

        [DataMember]
        private bool _isVisible = true;
{'fraction_non_alphanumeric': 0.07642539425798625, 'fraction_numerical': 0.0016174686615446825, 'mean_word_length': 3.157983193277311, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2729143', 'n_tokens_mistral': 622, 'n_tokens_neox': 604, 'n_words': 168}