diff --git a/Runtime/Components/AuthoringComponentDatabase.cs b/Runtime/Components/AuthoringComponentDatabase.cs index 061df24..180a363 100644 --- a/Runtime/Components/AuthoringComponentDatabase.cs +++ b/Runtime/Components/AuthoringComponentDatabase.cs @@ -1,6 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 // © 2023-2024 Nikolay Melnikov +using System.Collections.Generic; using Depra.Ecs.Hybrid.Entities; using Depra.Ecs.Worlds; using UnityEngine; @@ -13,6 +14,8 @@ public sealed class AuthoringComponentDatabase : MonoBehaviour, IAuthoring { [SerializeField] private ComponentDatabase[] _components; + public IEnumerable Enumerate() => _components; + IBaker IAuthoring.CreateBaker() => new Baker(_components); private readonly struct Baker : IBaker diff --git a/Runtime/Entities/AuthoringEntity.cs b/Runtime/Entities/AuthoringEntity.cs index 26a9bbe..dfeee8b 100644 --- a/Runtime/Entities/AuthoringEntity.cs +++ b/Runtime/Entities/AuthoringEntity.cs @@ -39,6 +39,8 @@ private void OnEnable() public IEnumerable Nested => GetComponents() .Where(x => ReferenceEquals(x, this) == false); + public bool Unpack(out World world, out Entity entity) => _entity.Unpack(out world, out entity); + private void Initialize(PackedEntityWithWorld entity) { _entity = entity; @@ -64,8 +66,6 @@ private void FinalizeConversion() IBaker IAuthoring.CreateBaker() => new Backer(); - bool IAuthoringEntity.Unpack(out Entity entity) => _entity.Unpack(out _, out entity); - private readonly struct Backer : IBaker { void IBaker.Bake(IAuthoring authoring, World world) diff --git a/Runtime/Entities/AuthoringEntityExtensions.cs b/Runtime/Entities/AuthoringEntityExtensions.cs new file mode 100644 index 0000000..e05b50d --- /dev/null +++ b/Runtime/Entities/AuthoringEntityExtensions.cs @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Apache-2.0 +// © 2023-2024 Nikolay Melnikov + +using Depra.Ecs.Entities; + +namespace Depra.Ecs.Hybrid.Entities +{ + public static class AuthoringEntityExtensions + { + public static bool Unpack(this IAuthoringEntity self, out Entity entity) => self.Unpack(out _, out entity); + } +} \ No newline at end of file diff --git a/Runtime/Entities/AuthoringEntityExtensions.cs.meta b/Runtime/Entities/AuthoringEntityExtensions.cs.meta new file mode 100644 index 0000000..e17f7fb --- /dev/null +++ b/Runtime/Entities/AuthoringEntityExtensions.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5b1c26db67994628870da2a6329939f1 +timeCreated: 1716929491 \ No newline at end of file diff --git a/Runtime/Entities/IAuthoringEntity.cs b/Runtime/Entities/IAuthoringEntity.cs index 01ca09d..819e4ea 100644 --- a/Runtime/Entities/IAuthoringEntity.cs +++ b/Runtime/Entities/IAuthoringEntity.cs @@ -3,11 +3,12 @@ using Depra.Ecs.Entities; using Depra.Ecs.Hybrid.Components; +using Depra.Ecs.Worlds; namespace Depra.Ecs.Hybrid.Entities { public interface IAuthoringEntity : IAuthoring { - bool Unpack(out Entity entity); + bool Unpack(out World world, out Entity entity); } } \ No newline at end of file diff --git a/package.json b/package.json index a8f1862..f50dc5b 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,15 @@ { "name": "com.depra.ecs.hybrid", - "version": "0.1.9", + "version": "0.1.10", "displayName": "Depra.Ecs.Hybrid", "description": "Unity Conversion Workflow for Depra.Ecs. Easy convert GameObjects to Entity.", "unity": "2022.3", "license": "Apache-2.0", "dependencies": { "com.depra.ecs.unity": "0.2.6", - "com.depra.serialize-reference.extensions": "0.0.10" + "com.depra.serialize-reference.extensions": "0.0.14" }, "keywords": [ - "depra", "ecs", "bake", "baking",