using BITKit; using BITKit.Entities; using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Linq; using RotaryHeart.Lib.SerializableDictionary; namespace BITFALL { public class EntityPropsDisplay : EntityComponent,IPlayerEquipCallback,IEquipSelectorCallback { public SerializableDictionaryBase equipments = new(); public SerializableDictionaryBase unequipdDictionary = new(); public SerializableDictionaryBase equipedDictionary = new(); public override void OnStart() { base.OnStart(); entity.RegisterCallback(this); entity.RegisterCallback(this); foreach (var x in equipments) { x.Value.SetActive(false); } foreach (var x in unequipdDictionary) { x.Value.SetActive(false); } foreach (var x in equipedDictionary) { 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) { if (equipedDictionary.TryGetValue(item.AdressablePath, out var model)) { model.SetActive(true); } } public void OnDeEquip(IBasicItem item) { foreach (var x in equipedDictionary) { x.Value.gameObject.SetActive(false); } } public void OnUpdateEquiped(IDictionary maps) { } } }