63 lines
1.6 KiB
C#
63 lines
1.6 KiB
C#
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<IEntitiesService>();
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
}
|