Inheritance: UnityEditor.Editor
        void Awake()
        {
            _allPools = findAllPools();
            if (_allPools == null)
            {
                return;
            }

            var binaryBlueprint = ((BinaryBlueprint)target);

            _allPoolNames = _allPools.Select(pool => pool.metaData.poolName).ToArray();

            BinaryBlueprintInspector.UpdateBinaryBlueprint(binaryBlueprint, _allPoolNames);

            _blueprint = binaryBlueprint.Deserialize();

            AssetDatabase.RenameAsset(AssetDatabase.GetAssetPath(target), _blueprint.name);

            _poolIndex = Array.IndexOf(_allPoolNames, _blueprint.poolIdentifier);
            switchToPool();

            _entity.ApplyBlueprint(_blueprint);

            EntityDrawer.Initialize();
        }
        public override void OnInspectorGUI()
        {
            DrawDefaultInspector();

            if (GUILayout.Button("Find all Blueprints"))
            {
                var blueprints = ((Blueprints)target);
                blueprints.blueprints = BinaryBlueprintInspector.FindAllBlueprints();
                EditorUtility.SetDirty(blueprints);
            }
        }