using NitroxModel.Core; using NitroxModel.DataStructures.GameLogic.Entities.Metadata; using NitroxModel.DataStructures.Util; namespace NitroxClient.GameLogic.Spawning.Metadata.Extractor.Abstract; public abstract class EntityMetadataExtractor : IEntityMetadataExtractor where O : EntityMetadata { public abstract O Extract(I entity); public Optional From(object o) { EntityMetadata result = Extract((I)o); return Optional.OfNullable(result); } protected T Resolve() where T : class { return NitroxServiceLocator.Cache.Value; } }