public override ObjectData Save(ObjectData dataToUse) { ElectronicData data = (ElectronicData)base.Save(dataToUse); //Store the reference as a serializable position if (generator != null) { data.generator = generator.transform.position; } data.input = new List <SerializableVector3>(); //Convert the references into something serializable foreach (Interactable interactable in input) { if (interactable != null) { data.input.Add(interactable.transform.position); } } if (breaker != null) { data.breaker = breaker.transform.position; } data.requiredPower = requiredPower; data.hasPower = hasPower; return(data); }
public uint Recipient; //fixme: Recipient is redundant! Can be safely removed public override void Process() { LoadNetworkObject(Recipient); ElectronicData data = JsonUtility.FromJson <ElectronicData>(JsonData); string newChatText = ""; newChatText += $"Current: {data.CurrentInWire} \n"; newChatText += $"Voltage: {data.ActualVoltage} \n"; newChatText += $"Resistance: {data.EstimatedResistance}"; Chat.AddExamineMsgToClient(newChatText); }
public uint Recipient; //fixme: Recipient is redundant! Can be safely removed public override IEnumerator Process() { yield return(WaitFor(Recipient)); ElectronicData data = JsonUtility.FromJson <ElectronicData>(JsonData); string newChatText = ""; newChatText += $"Current: {data.CurrentInWire} \n"; newChatText += $"Voltage: {data.ActualVoltage} \n"; newChatText += $"Resistance: {data.EstimatedResistance}"; Chat.AddExamineMsgToClient(newChatText); }
public override void Load(ObjectData dataToUse) { base.Load(dataToUse); ElectronicData data = (ElectronicData)dataToUse; //Grab the references from their positions if (data.generator != null) { Vector3Int generatorPos = Vector3Int.FloorToInt(data.generator) - GameManager.manager.tileManager.worldOrigin; generator = GameManager.manager.tileManager.utilityObjects[generatorPos.x, generatorPos.y].GetComponent <Generator>(); } for (int i = 0; i < data.input.Count; i++) { Vector3Int inputPos = Vector3Int.FloorToInt(data.input[i]) - GameManager.manager.tileManager.worldOrigin; input.Add(GameManager.manager.tileManager.utilityObjects[inputPos.x, inputPos.y].GetComponent <Interactable>()); } if (data.breaker != null) { Vector3Int breakerPos = Vector3Int.FloorToInt(data.breaker) - GameManager.manager.tileManager.worldOrigin; breaker = GameManager.manager.tileManager.utilityObjects[breakerPos.x, breakerPos.y].GetComponent <Breaker>(); } requiredPower = data.requiredPower; hasPower = data.hasPower; if (on) { Enable(); } else { Disable(); } }
void SendDataToClient(ElectronicData data, GameObject recipient) { string json = JsonUtility.ToJson(data); ElectricalStatsMessage.Send(recipient, json); }