Esempio n. 1
0
    private Level DeserializeLevel(LevelData levelData)
    {
        Level level = new Level(levelData.width, levelData.height, levelData.length);

        level.InitializeLevel();
        int x, y, z;

        Node.Direction facing      = Node.Direction.FORWARD;
        Node.Direction upDirection = Node.Direction.UP;

        for (int i = 0; i < levelData.nodeDataList.Count; i++)
        {
            NodeData nodeData = levelData.nodeDataList[i];
            x = nodeData.x;
            y = nodeData.y;
            z = nodeData.z;
            if (nodeData.facing != "" && nodeData.upDirection != "")
            {
                facing      = (Node.Direction) int.Parse(nodeData.facing);
                upDirection = (Node.Direction) int.Parse(nodeData.upDirection);
            }
            level.SetNode(x, y, z, nodeData.id, facing, upDirection);
        }
        for (int i = 0; i < levelData.nodeMemberDataList.Count; i++)
        {
            NodeMemberData nodeMemberData = levelData.nodeMemberDataList[i];
            x = nodeMemberData.x;
            y = nodeMemberData.y;
            z = nodeMemberData.z;
            if (nodeMemberData.facing != "" && nodeMemberData.upDirection != "")
            {
                facing      = (Node.Direction) int.Parse(nodeMemberData.facing);
                upDirection = (Node.Direction) int.Parse(nodeMemberData.upDirection);
            }

            level.AddNodeMember(x, y, z, nodeMemberData.id, facing, upDirection);
        }
        for (int i = 0; i < levelData.nodeConnections.Count; i++)
        {
            level.NodeConnections.Add(levelData.nodeConnections[i]);
        }

        return(level);
    }
Esempio n. 2
0
    private LevelData SerializeLevel(Level level)
    {
        LevelData levelData = new LevelData(level.Width, level.Height, level.Length);

        for (int x = 0; x < level.Width; x++)
        {
            for (int y = 0; y < level.Height; y++)
            {
                for (int z = 0; z < level.Length; z++)
                {
                    if (level.NodeMap[x, y, z].Id != 0)
                    {
                        NodeData nodeData = new NodeData(level.NodeMap[x, y, z]);
                        levelData.nodeDataList.Add(nodeData);
                    }
                    if (level.NodeMap[x, y, z].NodeMember != null)
                    {
                        if (level.NodeMap[x, y, z].NodeMember.Id != 0)
                        {
                            NodeMemberData nodeMemberData = new NodeMemberData(level.NodeMap[x, y, z].NodeMember, x, y, z);
                            levelData.nodeMemberDataList.Add(nodeMemberData);
                        }
                    }
                }
            }
        }
        for (int i = 0; i < level.NodeTogglers.Count; i++)
        {
            NodeToggler    t          = level.NodeTogglers[i];
            Vector3        tPos       = t.GetPos();
            Vector3        rPos       = t.GetConnectNodePosition();
            NodeConnection connection = new NodeConnection((int)tPos.x, (int)tPos.y, (int)tPos.z, (int)rPos.x, (int)rPos.y, (int)rPos.z);
            levelData.nodeConnections.Add(connection);
        }
        return(levelData);
    }