using System;
using System.Collections;
using System.Collections.Generic;
using BITKit.Modification;
using Cysharp.Threading.Tasks;

namespace Net.Project.B.Cosmetics
{
    public interface ICosmeticsClass
    {
        
    }
    
    public interface IRequiredCosmeticsClass{}

    [Serializable]
    public struct CosmeticsHand:ICosmeticsClass
    {
        public override bool Equals(object obj) => this.GetType() == obj?.GetType();
        public override int GetHashCode() => GetType().GetHashCode();
    }
    
    [Serializable]
    public struct CosmeticsModel:ICosmeticsClass,IRequiredCosmeticsClass
    {
        public override bool Equals(object obj) => this.GetType() == obj?.GetType();
        public override int GetHashCode() => GetType().GetHashCode();
    }
    
    [Serializable]
    public struct CosmeticsHat:ICosmeticsClass
    {
        public override bool Equals(object obj) => this.GetType() == obj?.GetType();
        public override int GetHashCode() => GetType().GetHashCode();
    }
 
    public class CosmeticsCustomizeComponent
    {
        public virtual HashSet<int> ComponentIds { get; set; } = new();
    }
}
