using System; using JetBrains.Annotations; using RoR2.EntitlementManagement; using RoR2.ExpansionManagement; using RoR2.Skills; using UnityEngine; namespace RoR2.ContentManagement; public readonly struct ReadOnlyContentPack { private readonly ContentPack src; public bool isValid => src != null; public string identifier => src.identifier; public ReadOnlyNamedAssetCollection bodyPrefabs => src.bodyPrefabs; public ReadOnlyNamedAssetCollection masterPrefabs => src.masterPrefabs; public ReadOnlyNamedAssetCollection projectilePrefabs => src.projectilePrefabs; public ReadOnlyNamedAssetCollection gameModePrefabs => src.gameModePrefabs; public ReadOnlyNamedAssetCollection networkedObjectPrefabs => src.networkedObjectPrefabs; public ReadOnlyNamedAssetCollection skillDefs => src.skillDefs; public ReadOnlyNamedAssetCollection skillFamilies => src.skillFamilies; public ReadOnlyNamedAssetCollection sceneDefs => src.sceneDefs; public ReadOnlyNamedAssetCollection itemDefs => src.itemDefs; public ReadOnlyNamedAssetCollection itemTierDefs => src.itemTierDefs; public ReadOnlyNamedAssetCollection itemRelationshipProviders => src.itemRelationshipProviders; public ReadOnlyNamedAssetCollection itemRelationshipTypes => src.itemRelationshipTypes; public ReadOnlyNamedAssetCollection equipmentDefs => src.equipmentDefs; public ReadOnlyNamedAssetCollection buffDefs => src.buffDefs; public ReadOnlyNamedAssetCollection eliteDefs => src.eliteDefs; public ReadOnlyNamedAssetCollection unlockableDefs => src.unlockableDefs; public ReadOnlyNamedAssetCollection survivorDefs => src.survivorDefs; public ReadOnlyNamedAssetCollection artifactDefs => src.artifactDefs; public ReadOnlyNamedAssetCollection effectDefs => src.effectDefs; public ReadOnlyNamedAssetCollection surfaceDefs => src.surfaceDefs; public ReadOnlyNamedAssetCollection networkSoundEventDefs => src.networkSoundEventDefs; public ReadOnlyNamedAssetCollection musicTrackDefs => src.musicTrackDefs; public ReadOnlyNamedAssetCollection gameEndingDefs => src.gameEndingDefs; public ReadOnlyNamedAssetCollection entityStateConfigurations => src.entityStateConfigurations; public ReadOnlyNamedAssetCollection expansionDefs => src.expansionDefs; public ReadOnlyNamedAssetCollection entitlementDefs => src.entitlementDefs; public ReadOnlyNamedAssetCollection miscPickupDefs => src.miscPickupDefs; public ReadOnlyNamedAssetCollection entityStateTypes => src.entityStateTypes; public ReadOnlyContentPack([NotNull] ContentPack src) { this.src = src ?? throw new ArgumentNullException("src"); } public bool ValueEquals(in ReadOnlyContentPack other) { return src.ValueEquals(other.src); } public static implicit operator ReadOnlyContentPack([NotNull] ContentPack contentPack) { return new ReadOnlyContentPack(contentPack); } public bool FindAsset(string collectionName, string assetName, out object result) { return src.FindAsset(collectionName, assetName, out result); } }