Exemple #1
0
 // This method destroys the targeted block
 private void destroyblock()
 {
     if (blockToDestroy.name != "Ground")
     {
         CreatedBlock blockToDelete = blockData.gameData.Find(x => x.blockId == blockToDestroy.GetInstanceID());
         blockData.gameData.Remove(blockToDelete);
         Destroy(blockToDestroy);
     }
 }
Exemple #2
0
    // This method creates the block at the targetted location
    private void placeBlock()
    {
        GameObject newBlock = Instantiate(blockPrefab, buildPos, Quaternion.identity) as GameObject; // Create new block object

        Block tempBlock = bSys.allBlocks[blockSelectCounter];                                        // Spawn new block from dictionary

        newBlock.name = tempBlock.blockName + "-Block";
        newBlock.GetComponent <MeshRenderer>().material = tempBlock.blockMaterial;

        // Adding to Dictionary
        CreatedBlock createdBlock = new CreatedBlock(newBlock.GetInstanceID(), buildPos.x, buildPos.y, buildPos.z, blockSelectCounter);

        blockData.gameData.Add(createdBlock);
    }
Exemple #3
0
    public void loadMazeBlocks(string mazeTitle, bool buildMode, bool playMode, string mapAuthor)
    {
        // Getting the Maze Data
        username_static.newMaze   = false;
        username_static.mazeTitle = mazeTitle;
        if (buildMode && !playMode)
        {
            FirebaseDatabase.DefaultInstance.GetReference("users").Child(username_static.userId).Child(mazeTitle).GetValueAsync().ContinueWith(task =>
            {
                if (task.IsFaulted)
                {
                    //Handle Error
                    Debug.Log("ERROR ==" + task.IsFaulted);
                }
                else if (task.IsCompleted)
                {
                    DataSnapshot snapshot             = task.Result;
                    DataSnapshot mazeData             = snapshot.Child("createdBlockData");
                    List <CreatedBlock> createdBlocks = new List <CreatedBlock>();
                    foreach (DataSnapshot createdBlockData in mazeData.Children)
                    {
                        int blockId            = 0;
                        float buildPosX        = 0;
                        float buildPosY        = 0;
                        float buildPosZ        = 0;
                        int blockSelectCounter = 0;
                        foreach (DataSnapshot a in createdBlockData.Children)
                        {
                            switch (a.Key)
                            {
                            case "blockId":
                                blockId = int.Parse(a.Value.ToString());
                                break;

                            case "buildPosX":
                                buildPosX = float.Parse(a.Value.ToString());
                                break;

                            case "buildPosY":
                                buildPosY = float.Parse(a.Value.ToString());
                                break;

                            case "buildPosZ":
                                buildPosZ = float.Parse(a.Value.ToString());
                                break;

                            case "blockSelectCounter":
                                blockSelectCounter = int.Parse(a.Value.ToString());
                                break;
                            }
                        }
                        CreatedBlock block = new CreatedBlock(blockId, buildPosX, buildPosY, buildPosZ, blockSelectCounter);
                        createdBlocks.Add(block);
                    }
                    loadBlocks(createdBlocks, buildMode, playMode);
                }
            });
        }
        else if (!buildMode && playMode)
        {
            FirebaseDatabase.DefaultInstance.GetReference("users").Child(mapAuthor).Child(mazeTitle).GetValueAsync().ContinueWith(task =>
            {
                if (task.IsFaulted)
                {
                    //Handle Error
                    Debug.Log("ERROR ==" + task.IsFaulted);
                }
                else if (task.IsCompleted)
                {
                    DataSnapshot snapshot             = task.Result;
                    DataSnapshot mazeData             = snapshot.Child("createdBlockData");
                    List <CreatedBlock> createdBlocks = new List <CreatedBlock>();
                    foreach (DataSnapshot createdBlockData in mazeData.Children)
                    {
                        int blockId            = 0;
                        float buildPosX        = 0;
                        float buildPosY        = 0;
                        float buildPosZ        = 0;
                        int blockSelectCounter = 0;
                        foreach (DataSnapshot a in createdBlockData.Children)
                        {
                            switch (a.Key)
                            {
                            case "blockId":
                                blockId = int.Parse(a.Value.ToString());
                                break;

                            case "buildPosX":
                                buildPosX = float.Parse(a.Value.ToString());
                                break;

                            case "buildPosY":
                                buildPosY = float.Parse(a.Value.ToString());
                                break;

                            case "buildPosZ":
                                buildPosZ = float.Parse(a.Value.ToString());
                                break;

                            case "blockSelectCounter":
                                blockSelectCounter = int.Parse(a.Value.ToString());
                                break;
                            }
                        }
                        CreatedBlock block = new CreatedBlock(blockId, buildPosX, buildPosY, buildPosZ, blockSelectCounter);
                        createdBlocks.Add(block);
                    }
                    loadBlocks(createdBlocks, buildMode, playMode);
                }
            });
        }
    }