public static void OnAddBlockReq(Player player, MemoryStream stream)
        {
            Ultilities.Print("OnAddBlockReq");
            CSAddBlockReq req = NetworkManager.Deserialize <CSAddBlockReq>(stream);

            Vector2Int chunk      = Ultilities.GetChunk(req.block.position);
            bool       addSuccess = TerrainData.AddBlockInChunk(chunk, req.block);

            //回包
            CSAddBlockRes res = new CSAddBlockRes();

            if (addSuccess)
            {
                res.RetCode = 0;
                res.block   = req.block;
            }
            else
            {
                res.RetCode = 2;
            }
            NetworkManager.Enqueue(player.socket, ENUM_CMD.CS_ADD_BLOCK_RES, res);
            if (addSuccess)
            {
                //同步给有该chunk视野的其他玩家
                foreach (Player p in TerrainData.GetChunkViewPlayers(chunk))
                {
                    if (p.id != player.id)
                    {
                        AddBlockNotify(p, req.block);
                    }
                }
            }
        }
Exemple #2
0
    void AddBlockRes(object data)
    {
        CSAddBlockRes rsp = NetworkManager.Deserialize <CSAddBlockRes>(data);

        //Debug.Log("AddBlockRes,retCode=" + rsp.RetCode);
        if (rsp.RetCode == 0)
        {
            ChunkManager.AddBlock(rsp.block);
            SoundManager.PlayPlaceSound(rsp.block.type, gameObject);
        }
        else
        {
            FastTips.Show(rsp.RetCode);
        }
    }
Exemple #3
0
    static void Single_OnAddBlockReq(object obj, Action <object> callback)
    {
        CSAddBlockReq req = obj as CSAddBlockReq;
        CSAddBlockRes res = new CSAddBlockRes();

        res.RetCode = 0;
        res.block   = req.block;
        if (req.block.depentPos != null)
        {
            dependenceDict.Add(req.block.position.ToVector3Int(), req.block.depentPos.ToVector3Int());
        }
        if (req.block.orient != CSBlockOrientation.Default)
        {
            orientationDict.Add(req.block.position.ToVector3Int(), req.block.orient);
        }
        callback(res);
    }