//Spawn an existing one in the save file (such as after loading) public static Construction Spawn(string uid) { BuiltConstructionData bdata = PlayerData.Get().GetConstructed(uid); if (bdata != null) { ConstructionData cdata = ConstructionData.Get(bdata.construction_id); if (cdata != null) { GameObject build = Instantiate(cdata.construction_prefab, bdata.pos, cdata.construction_prefab.transform.rotation); Construction construct = build.GetComponent <Construction>(); construct.data = cdata; construct.was_built = true; construct.unique_id.unique_id = uid; Destructible destruct = construct.GetComponent <Destructible>(); if (destruct != null) { destruct.was_built = true; } return(construct); } } return(null); }
public void FinishContruction() { building_mode = false; is_overlap = false; selectable.enabled = true; foreach (Collider collide in colliders) { collide.isTrigger = false; } destruct = GetComponent <Destructible>(); if (destruct) { destruct.enabled = true; destruct.was_built = true; } SetModelColor(Color.white); BuiltConstructionData cdata = PlayerData.Get().AddConstruction(data.id, SceneNav.GetCurrentScene(), transform.position); unique_id.unique_id = cdata.uid; if (build_fx != null) { Instantiate(build_fx, transform.position, Quaternion.identity); } TheAudio.Get().PlaySFX("construction", build_audio); if (onBuild != null) { onBuild.Invoke(); } }
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); }