Exemplo n.º 1
0
    public static GameSerialized Create()
    {
        var result = new GameSerialized
        {
            NodeBlocks    = new List <NodeBlockSerialized>(),
            RootBlocks    = new List <RootBlockSerialized>(),
            Binds         = new List <BindSerialized>(),
            SoundsPlayers = new List <SoundsPlayerSerialized>(),
        };

        foreach (var block in FieldMatrix.GetAllAsList())
        {
            switch (block)
            {
            case NodeBlock nodeBlock:
            {
                if (NodeBlockSerialized.Create(nodeBlock, out var t))
                {
                    result.NodeBlocks.Add(t);
                }
                break;
            }

            case RootBlock rootBlock:
            {
                if (RootBlockSerialized.Create(rootBlock, out var t))
                {
                    result.RootBlocks.Add(t);
                }
                break;
            }
            }
        }
        foreach (var bind in BindMatrix.GetAllAsList())
        {
            if (BindSerialized.Create(bind, out var t))
            {
                result.Binds.Add(t);
            }
        }
        foreach (var root in Roots.Root.Values)
        {
            if (SoundsPlayerSerialized.Create(root.block.soundsPlayer, root.block.rootId, out var t))
            {
                result.SoundsPlayers.Add(t);
            }
        }
        return(result);
    }
Exemplo n.º 2
0
 public static bool Create(Bind b, out BindSerialized result)
 {
     result = null;
     if (!(b.First is Block block1 && b.Second is Block block2))
     {
         return(false);
     }
     result = new BindSerialized
     {
         FirstX   = block1.logic.X,
         FirstY   = block1.logic.Y,
         SecondX  = block2.logic.X,
         SecondY  = block2.logic.Y,
         Strength = b.Strength,
     };
     return(true);
 }