public BuiltConstructionData AddConstruction(string construct_id, string scene, Vector3 pos) { BuiltConstructionData citem = new BuiltConstructionData(); citem.uid = UniqueID.GenerateUniqueID(); citem.construction_id = construct_id; citem.scene = scene; citem.pos = pos; built_constructions[citem.uid] = citem; return(citem); }
public SowedPlantData AddPlant(string plant_id, string scene, Vector3 pos, int stage) { SowedPlantData citem = new SowedPlantData(); citem.uid = UniqueID.GenerateUniqueID(); citem.plant_id = plant_id; citem.scene = scene; citem.pos = pos; citem.growth_stage = stage; sowed_plants[citem.uid] = citem; return(citem); }
//-------- Dropped items -------- public DroppedItemData AddDroppedItem(string item_id, string scene, Vector3 pos, int quantity) { DroppedItemData ditem = new DroppedItemData(); ditem.uid = UniqueID.GenerateUniqueID(); ditem.item_id = item_id; ditem.scene = scene; ditem.pos = pos; ditem.quantity = quantity; dropped_items[ditem.uid] = ditem; return(ditem); }
public void Spawn() { GameObject prefab = spawn_prefabs[Random.Range(0, spawn_prefabs.Length)]; float radius = Random.Range(0f, spawn_radius); float angle = Random.Range(0f, 360f) * Mathf.Deg2Rad; Vector3 offset = new Vector3(Mathf.Cos(angle), 0f, Mathf.Sin(angle)) * radius; Vector3 pos = transform.position + offset; GameObject obj = Instantiate(prefab, pos, prefab.transform.rotation); spawn_list.Add(obj); if (obj.GetComponent <UniqueID>()) { obj.GetComponent <UniqueID>().unique_id = UniqueID.GenerateUniqueID(); } }
void OffsetObjects(UniqueID[] objs) { HashSet <string> existing_ids = new HashSet <string>(); foreach (UniqueID uid_obj in objs) { if (uid_obj.unique_id != "") { if (existing_ids.Contains(uid_obj.unique_id)) { uid_obj.unique_id = ""; } else { existing_ids.Add(uid_obj.unique_id); } } } foreach (UniqueID uid_obj in objs) { if (uid_obj.unique_id == "") { //Generate new ID string new_id = ""; while (new_id == "" || existing_ids.Contains(new_id)) { new_id = UniqueID.GenerateUniqueID(); } //Add new id uid_obj.unique_id = uid_obj.uid_prefix + new_id; existing_ids.Add(new_id); EditorUtility.SetDirty(uid_obj); } } EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); }