示例#1
0
    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);
    }
示例#2
0
    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);
    }
示例#3
0
    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);
    }
示例#4
0
    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();
        }
    }
示例#5
0
    void SendDataToClient(ElectronicData data, GameObject recipient)
    {
        string json = JsonUtility.ToJson(data);

        ElectricalStatsMessage.Send(recipient, json);
    }