//Create regrowth data after an object dies
        public static WorldRegrowthData CreateRegrowthData(string uid, CraftData item, string scene, Vector3 pos, Quaternion rot, float scale, float duration, float probability)
        {
            WorldRegrowthData data = new WorldRegrowthData();

            data.data_id     = item.id;
            data.uid         = uid;
            data.scene       = scene;
            data.pos         = pos;
            data.rot         = rot;
            data.scale       = scale;
            data.time        = duration;
            data.probability = probability;
            PlayerData.Get().AddWorldRegrowth(uid, data);
            return(data);
        }
        //Spawn the prefab from existin regrowth data, after its timer reaches the duration
        public static GameObject SpawnRegrowth(WorldRegrowthData data)
        {
            CraftData craftable = CraftData.Get(data.data_id);

            if (craftable != null && data.scene == SceneNav.GetCurrentScene())
            {
                if (Random.value < data.probability)
                {
                    GameObject nobj = Craftable.Create(craftable, data.pos);
                    nobj.transform.rotation   = data.rot;
                    nobj.transform.localScale = nobj.transform.localScale * data.scale;
                    return(nobj);
                }
            }
            return(null);
        }
        //---- World Regrowth -----

        public void AddWorldRegrowth(string uid, WorldRegrowthData data)
        {
            world_regrowth[uid] = data;
        }