using System; using System.Collections; using System.Collections.Generic; using BITKit.Modification; using UnityEngine; // ReSharper disable ConvertToAutoProperty namespace BITFALL.Cosmetic { [Serializable] public struct CosmeticTextureContent:ICosmeticContent { [SerializeField] private Texture texture; public Texture Texture => texture; } [Serializable] public struct CosmeticModelContent:ICosmeticContent { [SerializeField] private GameObject model; public GameObject Model => model; } [Serializable] public struct CosmeticArmColorContent:ICosmeticContent { [SerializeField] private Color color; public Color Color => color; } [Serializable] public struct CosmeticArmModelContent:ICosmeticContent { [SerializeField] private SkinnedMeshRenderer _skinnedMeshRenderer; public SkinnedMeshRenderer SkinnedMeshRenderer => _skinnedMeshRenderer; } public class AssetableCosmetic : ScriptableObject,ICosmetic { [SerializeField] private ulong id; [SerializeField] private string addressablePath; [SerializeField] private Sprite icon; [SerializeReference, SubclassSelector] private ICosmeticType type; [SerializeReference, SubclassSelector] private ICosmeticContent[] contents; [SerializeReference, SubclassSelector] private IModifyElement[] require; [SerializeReference, SubclassSelector] private IModifyElement[] incompatible; public Sprite Icon => icon; public string AddressablePath=> addressablePath; public ulong Id => id; public ICosmeticType Type=> type; public ICosmeticContent[] Contents=> contents; public IModifyElement[] Require=> require; public IModifyElement[] Incompatible=> incompatible; } }