using MiniJSON;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Item : MonoBehaviour
{
public int PlayerID;
public int ItemID;
public GameObject ItemRoot;
public string Type = "";
public bool DeleteOnDisconnect = true;
public string Key
{
get { return PlayerID + "_" + ItemID; }
}
private NetHost netHost;
// Start is called before the first frame update
void Awake()
{
netHost = FindObjectOfType<NetHost>();
}
public bool IsLocal
{
get { return PlayerID == netHost.LocalPlayerID; }
}
// Update is called once per frame
void Update()
{
}
public Transform RootTransform
{
get
{
return ItemRoot == null ? transform.root : ItemRoot.transform;
}
}
public void UpdateFromData(Dictionary<string, object> itemData)
{
if (itemData.ContainsKey("x") && itemData.ContainsKey("y") && itemData.ContainsKey("z"))
{
RootTransform.position = new Vector3(
itemData.Key("x", Convert.ToSingle),
itemData.Key("y", Convert.ToSingle),
itemData.Key("z", Convert.ToSingle)
);
}
}
public Dictionary<string, object> GetItemData()
{
return new Dictionary<string, object>
{
{ "x", RootTransform.position.x },
{ "y", RootTransform.position.y },
{ "z", RootTransform.position.z },
{ "item_id", ItemID },
{ "type", Type },
{ "dod", DeleteOnDisconnect },
};
}
}