Example #1
0
    void CreatePuzzle(bool addInitialElements = false)
    {
        Puzzle puzzle = new Puzzle();

        if (puzzleFront)
        {
            Destroy(puzzleFront.gameObject);
        }
        puzzleFront = Instantiate(puzzleFrontPrefab) as PuzzleFront;
        puzzleFront.CreatePuzzle(puzzle);
        puzzle.addEdge        += e => DirtyPuzzle();
        puzzle.removeEdge     += e => DirtyPuzzle();
        puzzle.addElement     += e => DirtyPuzzle();
        puzzle.removeElement  += e => DirtyPuzzle();
        puzzle.addItem        += e => DirtyPuzzle();
        puzzle.removeItem     += e => DirtyPuzzle();
        puzzle.addNode        += e => DirtyPuzzle();
        puzzle.removeNode     += e => DirtyPuzzle();
        puzzle.addReceiver    += (e, f) => DirtyPuzzle();
        puzzle.removeReceiver += (e, f) => DirtyPuzzle();

        if (addInitialElements)
        {
            PuzzleNode   node   = new PuzzleNode();
            PuzzlePlayer player = new PuzzlePlayer();
            player.defaultNode = node;
            puzzle.AddNode(node);
            puzzle.AddItem(player);
        }

        RefreshData();
    }
Example #2
0
    public static void Deserialize(Puzzle emptyPuzzle, TextReader reader)
    {
        SerializationTool tool = new SerializationTool(emptyPuzzle);

        emptyPuzzle.name = reader.ReadLine();

        while (reader.Peek() != -1)
        {
            string             line = reader.ReadLine();
            PuzzleSerializable obj  = tool.DeserializePartly(line);
            if (obj is PuzzleNode)
            {
                emptyPuzzle.AddNode(obj as PuzzleNode);
            }
            else if (obj is PuzzleEdge)
            {
                emptyPuzzle.AddEdge(obj as PuzzleEdge);
            }
            else if (obj is PuzzleElement)
            {
                emptyPuzzle.AddElement(obj as PuzzleElement);
            }
            else if (obj is PuzzleItem)
            {
                emptyPuzzle.AddItem(obj as PuzzleItem);
            }
        }

        tool.Final();
    }