//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; }