コード例 #1
0
    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);
    }
コード例 #2
0
    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>());
            }
        }
    }