52 lines
1.5 KiB
C#
52 lines
1.5 KiB
C#
using Simulator.Data;
|
|
using Simulator.Model;
|
|
using UnityEngine;
|
|
using UVC.Data.Core;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Simulator.Data
|
|
{
|
|
public class SinkComponent : ComponentBase
|
|
{
|
|
public SinkDataClass sinkData = new SinkDataClass();
|
|
public SinkModelData sinkModelData = new SinkModelData();
|
|
public void SetComponent(SinkDataClass sinkData)
|
|
{
|
|
this.sinkData = sinkData;
|
|
data = sinkData;
|
|
FitCollider();
|
|
SetPosition();
|
|
SetRotation();
|
|
}
|
|
|
|
public override void SetEntity(string key, string name = "")
|
|
{
|
|
EntityManager.Instance.GetEntity(key, 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")));
|
|
}
|
|
|
|
protected override void OnDestroy()
|
|
{
|
|
base.OnDestroy();
|
|
}
|
|
|
|
public override void GetPath()
|
|
{
|
|
onComponentClicked?.Invoke(componentType, sinkData);
|
|
}
|
|
}
|
|
} |