using System; using System.Collections; using System.Collections.Generic; using System.IO.Ports; using BITKit; using BITKit.Entities; using BITKit.WorldNode; using Microsoft.Extensions.DependencyInjection; using Net.Project.B.WorldNode; using Project.B.Item; using UnityEngine; namespace Net.Project.B.Item { public class WorldItemPlaceholder : MonoBehaviour { [SerializeField] private ScriptableItem scriptableItem; [SerializeField] private SpriteRenderer spriteRenderer; [BIT] public void Rebuild() { if (!scriptableItem) return; if (spriteRenderer) { spriteRenderer.sprite = scriptableItem.Icon; spriteRenderer.material = spriteRenderer.sharedMaterial; } gameObject.name = scriptableItem.Name; } private void Start() { var entitiesService = BITApp.ServiceProvider.GetRequiredService(); if (entitiesService.Entities.TryGetValue(gameObject.GetInstanceID(), out var entity) is false) { Debug.LogWarning("Not Registered",transform); return; } var node = new UnityItemNode() { ItemPath = scriptableItem.name, }; var info = new WorldInfoNode() { Name = scriptableItem.Name, Description = scriptableItem.Description, }; entity.ServiceCollection.AddSingleton(node); entity.ServiceCollection.AddSingleton(info); Destroy(this); } } }