public override ObjectData Save(ObjectData dataToUse) { BreakerData data = (BreakerData)base.Save(dataToUse); data.blackout = blackout; data.takenPower = takenPower; data.connected = new List <SerializableVector3>(); //Convert the references into something serializable foreach (Electronic electronic in connected) { data.connected.Add(electronic.transform.position); } return(data); }
public override void Load(ObjectData dataToUse) { base.Load(dataToUse); BreakerData data = (BreakerData)dataToUse; blackout = data.blackout; takenPower = data.takenPower; connected = new List <Electronic>(); //Grab the references from their positions for (int i = 0; i < data.connected.Count; i++) { Vector3Int pos = Vector3Int.RoundToInt(data.connected[i]); if (GameManager.manager.tileManager.utilityObjects[pos.x, pos.y] != null) { connected.Add(GameManager.manager.tileManager.utilityObjects[pos.x, pos.y].GetComponent <Electronic>()); } else { connected.Add(GameManager.manager.tileManager.objects[pos.x, pos.y].GetComponent <Electronic>()); } } }