BITFALL/Assets/Artists/Scripts/Entities/Skins/EntityPropsDisplay.cs

68 lines
2.1 KiB
C#
Raw Normal View History

2023-06-08 14:09:50 +08:00
using BITKit;
using BITKit.Entities;
using System.Collections.Generic;
using UnityEngine;
2023-08-23 01:59:40 +08:00
using AYellowpaper.SerializedCollections;
2023-06-08 14:09:50 +08:00
namespace BITFALL
{
2023-08-23 01:59:40 +08:00
public class EntityPropsDisplay : EntityComponent,IEquipSelectorCallback,IPlayerEquipCallback
2023-06-08 14:09:50 +08:00
{
2023-08-23 01:59:40 +08:00
[SerializeField] private SerializedDictionary<string, GameObject> equipments = new();
[SerializeField] private SerializedDictionary<string, GameObject> unEquipDictionary = new();
[SerializeField] private SerializedDictionary<string, GameObject> equipDictionary = new();
2023-06-08 14:09:50 +08:00
public override void OnStart()
{
entity.RegisterCallback<IPlayerEquipCallback>(this);
entity.RegisterCallback<IEquipSelectorCallback>(this);
foreach (var x in equipments)
{
x.Value.SetActive(false);
}
2023-08-23 01:59:40 +08:00
foreach (var x in unEquipDictionary)
2023-06-08 14:09:50 +08:00
{
x.Value.SetActive(false);
}
2023-08-23 01:59:40 +08:00
foreach (var x in equipDictionary)
2023-06-08 14:09:50 +08:00
{
x.Value.SetActive(false);
}
}
public void DeEquip(IEquipmentSlot slot, IBasicItem item)
{
var asset = item.GetAssetable();
if (equipments.TryGetValue(asset.AdressablePath, out GameObject prop))
{
prop.SetActive(false);
}
}
public void OnEquip(IEquipmentSlot slot, IBasicItem item)
{
var asset = item.GetAssetable();
if(equipments.TryGetValue(asset.AdressablePath, out GameObject prop)) {
prop.SetActive(true);
}
}
public void OnEquip(IBasicItem item)
{
2023-08-23 01:59:40 +08:00
if (equipDictionary.TryGetValue(item.AdressablePath, out var model))
2023-06-08 14:09:50 +08:00
{
model.SetActive(true);
}
}
public void OnDeEquip(IBasicItem item)
{
2023-08-23 01:59:40 +08:00
foreach (var x in equipDictionary)
2023-06-08 14:09:50 +08:00
{
x.Value.gameObject.SetActive(false);
}
}
2023-08-23 01:59:40 +08:00
public void OnUpdateEquip(IDictionary<int, IBasicItem> maps)
2023-06-08 14:09:50 +08:00
{
}
}
}