BITFALL/Assets/Artists/Scripts/CosmeticInventory/AssetableCosmetic.cs

41 lines
1.3 KiB
C#

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;
}
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;
}
}