Files
XRLib/Assets/Scripts/Simulator/Components/SinkComponent.cs
2026-02-23 17:06:38 +09:00

47 lines
1.6 KiB
C#

using Simulator.Data;
using Simulator.Model;
using UnityEngine;
using UVC.Data.Core;
using System.Collections.Generic;
using Unity.VisualScripting;
public class SinkComponent : ComponentBase
{
public SinkDataClass sinkData = new SinkDataClass();
public SinkModelData sinkModelData = new SinkModelData();
public void SetComponent(SinkDataClass sinkData)
{
this.sinkData = sinkData;
data = sinkData;
onComponentClicked += FindAnyObjectByType<SinkProperty>().SetProertyWindow;
onComponentClicked += FindAnyObjectByType<ProgressPopupView>(FindObjectsInactive.Include).Show;
FitCollider();
SetPosition();
SetRotation();
}
public override void SetEntity(string key, string name = "")
{
EntityManager.Instance.GetEntity(key, this, name);
}
public override void GetModelData(DataObject modelData)
{
sinkModelData.component_id = modelData.GetString("component_id");
var datas = modelData.GetDataObject("data");
var sinkdatas = datas.GetDataArray("entity_ids");
var sinkentities = new List<string>();
foreach(var sinkdata in sinkdatas)
{
sinkentities.Add(sinkdata.GetString("entity_id"));
}
PlayerPropertyDataBase.Instance.CollectUseData(sinkentities.Count);
EntityManager.Instance.DestroyEnity(sinkentities);
ProgressDatabase.Instance.CollectData(sinkData.name, (datas.GetString("total_sinked"), datas.GetString("normal_items")));
}
public override void getpath()
{
onComponentClicked?.Invoke(componentType, sinkData);
}
}