/** * <summary>Serialises appropriate GameObject values into a string.</summary> * <returns>The data, serialised as a string</returns> */ public override string SaveData() { NPCData npcData = new NPCData(); npcData.objectID = constantID; npcData.savePrevented = savePrevented; if (OwnHotspot != null) { npcData.isOn = OwnHotspot.IsOn(); } npcData.LocX = transform.position.x; npcData.LocY = transform.position.y; npcData.LocZ = transform.position.z; npcData.RotX = transform.eulerAngles.x; npcData.RotY = transform.eulerAngles.y; npcData.RotZ = transform.eulerAngles.z; npcData.ScaleX = transform.localScale.x; npcData.ScaleY = transform.localScale.y; npcData.ScaleZ = transform.localScale.z; if (GetComponent <NPC>()) { NPC npc = GetComponent <NPC>(); npcData = npc.SaveData(npcData); } return(Serializer.SaveScriptData <NPCData> (npcData)); }
/** * <summary>Deserialises a string of data, and restores the GameObject to its previous state.</summary> * <param name = "stringData">The data, serialised as a string</param> */ public override void LoadData(string stringData) { NPCData data = Serializer.LoadScriptData <NPCData> (stringData); if (data == null) { loadedData = false; return; } SavePrevented = data.savePrevented; if (savePrevented) { return; } if (GetComponent <RememberHotspot>() == null) { /*if (data.isOn) * { * gameObject.layer = LayerMask.NameToLayer (KickStarter.settingsManager.hotspotLayer); * } * else * { * gameObject.layer = LayerMask.NameToLayer (KickStarter.settingsManager.deactivatedLayer); * }*/ if (OwnHotspot != null) { if (data.isOn) { OwnHotspot.TurnOn(); } else { OwnHotspot.TurnOff(); } } } transform.position = new Vector3(data.LocX, data.LocY, data.LocZ); transform.eulerAngles = new Vector3(data.RotX, data.RotY, data.RotZ); transform.localScale = new Vector3(data.ScaleX, data.ScaleY, data.ScaleZ); if (GetComponent <NPC>()) { NPC npc = GetComponent <NPC>(); npc.SetRotation(transform.rotation); npc.LoadData(data); } loadedData = true; }
/** * <summary>Deserialises a string of data, and restores the GameObject to its previous state.</summary> * <param name = "stringData">The data, serialised as a string</param> */ public override void LoadData(string stringData) { HotspotData data = Serializer.LoadScriptData <HotspotData> (stringData); if (data == null) { loadedData = false; return; } SavePrevented = data.savePrevented; if (savePrevented) { return; } if (data.isOn) { gameObject.layer = LayerMask.NameToLayer(KickStarter.settingsManager.hotspotLayer); } else { gameObject.layer = LayerMask.NameToLayer(KickStarter.settingsManager.deactivatedLayer); } if (OwnHotspot) { if (data.isOn) { OwnHotspot.TurnOn(); } else { OwnHotspot.TurnOff(); } StringToButtonStates(OwnHotspot, data.buttonStates); if (!string.IsNullOrEmpty(data.hotspotName)) { OwnHotspot.SetName(data.hotspotName, data.displayLineID); } OwnHotspot.ResetMainIcon(); } loadedData = true; }
/** * <summary>Serialises appropriate GameObject values into a string.</summary> * <returns>The data, serialised as a string</returns> */ public override string SaveData() { HotspotData hotspotData = new HotspotData(); hotspotData.objectID = constantID; hotspotData.savePrevented = savePrevented; if (OwnHotspot) { hotspotData.isOn = OwnHotspot.IsOn(); hotspotData.buttonStates = ButtonStatesToString(OwnHotspot); hotspotData.hotspotName = OwnHotspot.GetName(0); hotspotData.displayLineID = OwnHotspot.displayLineID; } return(Serializer.SaveScriptData <HotspotData> (hotspotData)); }
private void Awake() { if (loadedData) { return; } if (OwnHotspot != null && KickStarter.settingsManager && GameIsPlaying()) { if (startState == AC_OnOff.On) { OwnHotspot.TurnOn(); } else { OwnHotspot.TurnOff(); } } }