using System; using Unity.Collections; using Unity.Entities; using Hash128 = Unity.Entities.Hash128; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [assembly: RegisterGenericComponentType(typeof(Rukhanka.NewBlobAssetDatabaseRecord))] [assembly: RegisterGenericComponentType(typeof(Rukhanka.NewBlobAssetDatabaseRecord))] ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// namespace Rukhanka { public struct BlobDatabaseSingleton: IComponentData { public NativeHashMap> animations; public NativeHashMap> avatarMasks; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static BlobAssetReference GetBlobAsset(Hash128 blobHash, NativeHashMap> blobDatabase) where T: unmanaged { if (!blobDatabase.TryGetValue(blobHash, out var bar)) return default; return bar; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public BlobAssetReference GetAvatarMaskBlob(Hash128 blobHash) => GetBlobAsset(blobHash, avatarMasks); public BlobAssetReference GetAnimationClipBlob(Hash128 blobHash) => GetBlobAsset(blobHash, animations); } //=================================================================================================================// public struct NewBlobAssetDatabaseRecord: IBufferElementData where T: unmanaged { public Hash128 hash; public BlobAssetReference value; } }