Exemplo n.º 1
0
        public static bool AddBlockInChunk(Vector2Int chunk, CSBlock block)
        {
            List <CSBlock> chunkBlocks = GetChunkBlocks(chunk);
            //检查是否已存在
            bool addSuccess = false;
            bool isExist    = false;

            foreach (CSBlock b in chunkBlocks)
            {
                if (b.position.x == block.position.x &&
                    b.position.y == block.position.y &&
                    b.position.z == block.position.z)
                {
                    isExist = true;
                    break;
                }
            }
            //添加到list中
            if (!isExist)
            {
                chunkBlocks.Add(block);
                Redis.SetChunkData(chunk, chunkBlocks);
                addSuccess = true;
            }
            return(addSuccess);
        }
Exemplo n.º 2
0
        private void ConstructBody()
        {
            CSBlock usingBlock     = new CSBlock("using (SqlCommand sqlCommand = new SqlCommand())");
            string  sqlString      = $"{Quotes}{SqlInsertBuilder.CreateInsertSql(datatable)} SELECT SCOPE_IDENTITY() AS INT;{Quotes};";
            string  parameterName  = string.Empty;
            string  propertyName   = string.Empty;
            string  parameterValue = string.Empty;

            usingBlock.Statements.Add($"sqlCommand.CommandText = {sqlString}");

            foreach (DataColumn clm in datatable.Columns)
            {
                if (clm.AutoIncrement)
                {
                    continue;
                }

                parameterName  = $"{Quotes}@{clm.ColumnName.Replace(" ", "")}{Quotes}";
                propertyName   = ProperVarName.Get(clm.ColumnName);
                parameterValue = $"{ProperVarName.Get(datatable.TableName.ToLower())}.{propertyName}";

                if (clm.AllowDBNull)
                {
                    parameterValue += " ?? (object)DBNull.Value";
                }

                usingBlock.Statements.Add($"sqlCommand.Parameters.AddWithValue({parameterName}, {parameterValue});");
            }

            usingBlock.Statements.Add($"table.DbAccess.Commands.Add(sqlCommand);");

            this.Statements.Add(usingBlock.ToString());
        }
Exemplo n.º 3
0
        private void ConstructBody()
        {
            string className    = datatable.TableName;
            string instanceName = ProperVarName.Get(datatable.TableName.ToLower());

            this.Statements.Add("var dt = table.DbAccess.GetDataTable(sqlCommand);");
            this.Statements.Add($"List<{className}> list = new List<{className}>();");

            CSBlock forEachBlock = new CSBlock("foreach (DataRow dataRow in dt.Rows)");

            forEachBlock.Statements.Add($"{className} {instanceName} = new {className}();");

            foreach (DataColumn clm in datatable.Columns)
            {
                string clmName  = ProperVarName.Get(clm.ColumnName, false);
                string propName = ProperVarName.Get(clm.ColumnName, true);
                if (clm.AllowDBNull)
                {
                    forEachBlock.Statements.Add($"{instanceName}.{propName} = ({ProperCSTypeName.Get(clm)})(dataRow[{Quotes}{clmName}{Quotes}] == DBNull.Value ? null : dataRow[{Quotes}{clmName}{Quotes}]);");
                }
                else
                {
                    forEachBlock.Statements.Add($"{instanceName}.{propName} = ({ProperCSTypeName.Get(clm)})dataRow[{Quotes}{clmName}{Quotes}];");
                }
            }
            forEachBlock.Statements.Add($"list.Add({instanceName});");
            this.Statements.Add(forEachBlock.ToString());
            this.Statements.Add("return list;");
        }
Exemplo n.º 4
0
    public static void AddBlock(CSBlock block)
    {
        Chunk chunk = GetChunk(block.position.x, block.position.y, block.position.z);

        if (chunk != null)
        {
            int xInChunk = chunk.GetXInChunkByGlobalX(block.position.x);
            int zInChunk = chunk.GetZInChunkByGlobalZ(block.position.z);
            chunk.SetBlockType(xInChunk, block.position.y, zInChunk, block.type);
            Vector3Int pos = block.position.ToVector3Int();
            AddBlockOrientation(pos, block.orient);
            if (block.depentPos != null)
            {
                AddBlockDependence(pos, block.depentPos.ToVector3Int());
            }
            chunk.RebuildMesh();

            // if this block is adjacent to other chunks, refresh nearby chunks
            //foreach (Chunk nearbyChunk in GetNearbyChunks(xInChunk, zInChunk, chunk))
            //{
            //    nearbyChunk.RebuildMesh();
            //}

            if (block.type == CSBlockType.Torch)
            {
                chunk.AddTorch(pos);
            }
        }
    }
Exemplo n.º 5
0
        private void ConstructBody()
        {
            CSBlock usingBlock = new CSBlock("using (SqlCommand sqlCommand = new SqlCommand())");

            usingBlock.Statements.Add($"sqlCommand.CommandText = {Quotes}SELECT COUNT(*) FROM [{datatable.TableName}];{Quotes};");
            usingBlock.Statements.Add($"return Convert.ToInt32(table.DbAccess.ExecuteScalar(sqlCommand));");
            this.Statements.Add(usingBlock.ToString());
        }
Exemplo n.º 6
0
        static void AddBlockNotify(Player player, CSBlock block)
        {
            CSAddBlockNotify notify = new CSAddBlockNotify
            {
                block = block
            };

            NetworkManager.Enqueue(player.socket, ENUM_CMD.CS_ADD_BLOCK_NOTIFY, notify);
        }
Exemplo n.º 7
0
        private void ConstructBody()
        {
            CSBlock usingBlock = new CSBlock("using (SqlCommand sqlCommand = new SqlCommand())");
            string  sqlString  = $"{Quotes}{SqlSelectBuilder.CreateSelectAll(datatable)}{Quotes};";

            usingBlock.Statements.Add($"sqlCommand.CommandText = {sqlString}");
            usingBlock.Statements.Add($"return ToList(sqlCommand);");
            this.Statements.Add(usingBlock.ToString());
        }
Exemplo n.º 8
0
        private void ConstructBody()
        {
            CSBlock usingBlock = new CSBlock("using (SqlCommand sqlCommand = new SqlCommand())");
            string  sqlString  = $"{Quotes}{SqlSelectBuilder.CreateSelectCountByKeyword(datatable)}{Quotes};";

            usingBlock.Statements.Add($"sqlCommand.CommandText = {sqlString}");
            usingBlock.Statements.Add($"{NewLine}sqlCommand.Parameters.AddWithValue({$"{Quotes}@Keyword{Quotes}"}, keyword);");
            usingBlock.Statements.Add($"return Convert.ToInt32(table.DbAccess.ExecuteScalar(sqlCommand));");
            this.Statements.Add(usingBlock.ToString());
        }
Exemplo n.º 9
0
        private void ConstructBody()
        {
            CSBlock usingBlock = new CSBlock("using (SqlCommand sqlCommand = new SqlCommand())");
            string  sqlString  = $"{Quotes}{SqlUpdateBuilder.UpdateByColumn(datatable, datacolumn)}{Quotes}";

            usingBlock.Statements.Add($"sqlCommand.CommandText = {sqlString};");
            usingBlock.Statements.Add($"SetSqlCommandParameter(sqlCommand, {ProperVarName.Get(datatable.TableName.ToLower())});");
            usingBlock.Statements.Add($"table.DbAccess.Commands.Add(sqlCommand);");

            this.Statements.Add(usingBlock.ToString());
        }
Exemplo n.º 10
0
        private void ConstructBody()
        {
            var    usingBlock = new CSBlock("using (SqlCommand sqlCommand = new SqlCommand())");
            string sqlString  = $"${Quotes}{SqlSelectBuilder.CreateSelectByKeyword(datatable)}{Quotes};";

            usingBlock.Statements.Add($"sqlCommand.CommandText = {sqlString} ");

            usingBlock.Statements.Add($"{NewLine}sqlCommand.Parameters.AddWithValue({$"{Quotes}@Keyword{Quotes}"}, keyword);");
            usingBlock.Statements.Add($"sqlCommand.Parameters.AddWithValue({Quotes}@Start{Quotes}, start);");
            usingBlock.Statements.Add($"sqlCommand.Parameters.AddWithValue({Quotes}@End{Quotes}, end);");
            usingBlock.Statements.Add($"return ToList(sqlCommand);");
            this.Statements.Add(usingBlock.ToString());
        }
Exemplo n.º 11
0
        private void ConstructBody()
        {
            CSBlock usingBlock     = new CSBlock("using (SqlCommand sqlCommand = new SqlCommand())");
            string  parameterName  = $"{Quotes}@{datacolumn.ColumnName.Replace(" ","")}{Quotes}";
            string  parameterValue = ProperVarName.Get(datacolumn.ColumnName.ToLower());
            string  columnName     = datacolumn.ColumnName.Contains(" ") ? $"[{datacolumn.ColumnName}]" : datacolumn.ColumnName;
            string  sqlString      = $"{Quotes}{SqlSelectBuilder.CreateSelectAllWhere(datatable, $"{columnName} = @{datacolumn.ColumnName.Replace(" ", "")}")}{Quotes};";

            usingBlock.Statements.Add($"sqlCommand.CommandText = {sqlString}");
            usingBlock.Statements.Add($"sqlCommand.Parameters.AddWithValue({parameterName}, {parameterValue});");
            usingBlock.Statements.Add($"return ToList(sqlCommand);");
            this.Statements.Add(usingBlock.ToString());
        }
Exemplo n.º 12
0
 public static List <CSBlock> GetChunkBlocks(Vector2Int chunk)
 {
     if (!chunkMap.ContainsKey(chunk))
     {
         bool b = Redis.GetChunkData(chunk, out List <CSBlock> blockList);
         //Ultilities.Print($"chunk({chunk.x},{chunk.y}), generated = {b}");
         if (b)
         {
             chunkMap[chunk] = blockList;
         }
         else
         {
             blockList = new List <CSBlock>();
             for (int i = 0; i < 16; i++)
             {
                 for (int j = 0; j < 16; j++)
                 {
                     int x         = i + chunk.x * 16;
                     int z         = j + chunk.y * 16;
                     int maxHeight = GetHeight(i + chunk.x * 16, j + chunk.y * 16) + 20;
                     for (int k = maxHeight; k >= 0; k--)
                     {
                         CSBlock item = new CSBlock
                         {
                             position = new CSVector3Int()
                         };
                         item.position.x = x;
                         item.position.y = k;
                         item.position.z = z;
                         //Ultilities.Print($"i={i},j={j},height{item.position.y}");
                         if (k == maxHeight)
                         {
                             item.type = CSBlockType.Grass;
                         }
                         else
                         {
                             item.type = CSBlockType.Dirt;
                         }
                         blockList.Add(item);
                     }
                 }
             }
             Redis.SetChunkData(chunk, blockList);
             chunkMap[chunk] = blockList;
         }
     }
     return(chunkMap[chunk]);
 }
Exemplo n.º 13
0
        private void ConstructBody()
        {
            CSBlock usingBlock     = new CSBlock("using (SqlCommand sqlCommand = new SqlCommand())");
            string  sqlString      = $"{Quotes}{SqlDeleteBuilder.DeleteByColumn(datatable, datacolumn)}{Quotes};";
            string  parameterName  = $"{Quotes}@{datacolumn.ColumnName.Replace(" ","")}{Quotes}";
            string  parameterValue = ProperVarName.Get(datacolumn.ColumnName.ToLower());

            usingBlock.Statements.Add($"sqlCommand.CommandText = {sqlString}");
            if (datacolumn.AllowDBNull)
            {
                parameterValue += " ?? (object)DBNull.Value";
            }

            usingBlock.Statements.Add($"sqlCommand.Parameters.AddWithValue({parameterName}, {parameterValue});");
            usingBlock.Statements.Add($"table.DbAccess.Commands.Add(sqlCommand);");

            this.Statements.Add(usingBlock.ToString());
        }
Exemplo n.º 14
0
        private void ConstructBody()
        {
            CSBlock usingBlock     = new CSBlock("using (SqlCommand sqlCommand = new SqlCommand())");
            string  sqlString      = $"{Quotes}{SqlDeleteBuilder.DeleteByPrimaryKey(datatable)}{Quotes};";
            string  parameterName  = string.Empty;
            string  parameterValue = string.Empty;

            usingBlock.Statements.Add($"sqlCommand.CommandText = {sqlString}");

            foreach (DataColumn clm in this.datatable.PrimaryKey)
            {
                parameterName  = $"{Quotes}@{clm.ColumnName}{Quotes}";
                parameterValue = GetParameterValue(clm);

                usingBlock.Statements.Add($"sqlCommand.Parameters.AddWithValue({parameterName}, {parameterValue});");
            }

            usingBlock.Statements.Add($"table.DbAccess.Commands.Add(sqlCommand);");

            this.Statements.Add(usingBlock.ToString());
        }
Exemplo n.º 15
0
        private void ConstructBody()
        {
            CSBlock usingBlock = new CSBlock("using (SqlCommand sqlCommand = new SqlCommand())");
            string  sqlString  = $"{Quotes}{SqlUpdateBuilder.UpdateColumnByPrimaryKey(datatable, datacolumn)}{Quotes}";

            usingBlock.Statements.Add($"sqlCommand.CommandText = {sqlString};");

            #region Updated Column
            string parameterName  = $"{Quotes}@{datacolumn.ColumnName.Replace(" ","")}{Quotes}";
            string parameterValue = ProperVarName.Get(datacolumn.ColumnName.ToLower().Replace(" ", ""));
            if (datacolumn.AllowDBNull)
            {
                parameterValue += " ?? (object)DBNull.Value";
            }
            usingBlock.Statements.Add($"sqlCommand.Parameters.AddWithValue({parameterName}, {parameterValue});");
            #endregion

            #region Primary Key Column
            string keyParameterName  = string.Empty;
            string keyParameterValue = string.Empty;
            foreach (DataColumn clm in this.datatable.PrimaryKey)
            {
                keyParameterName  = $"{Quotes}@{clm.ColumnName.Replace(" ", "")}{Quotes}";
                keyParameterValue = ProperVarName.Get(clm.ColumnName.ToLower());
                if (clm.AllowDBNull)
                {
                    keyParameterValue += " ?? (object)DBNull.Value";
                }

                usingBlock.Statements.Add($"sqlCommand.Parameters.AddWithValue({keyParameterName}, {keyParameterValue});");
            }
            #endregion

            usingBlock.Statements.Add($"table.DbAccess.Commands.Add(sqlCommand);");

            this.Statements.Add(usingBlock.ToString());
        }
Exemplo n.º 16
0
        private void ConstructBody()
        {
            CSBlock usingBlock = new CSBlock("using (SqlCommand sqlCommand = new SqlCommand())");
            string  sqlString  = $"{Quotes}{SqlSelectBuilder.SelectByPrimaryKey(datatable)}{Quotes};";

            usingBlock.Statements.Add($"sqlCommand.CommandText = {sqlString}");

            foreach (DataColumn clm in datatable.PrimaryKey)
            {
                string parameterName  = $"{Quotes}@{clm.ColumnName}{Quotes}";
                string parameterValue = clm.ColumnName.ToLower();

                usingBlock.Statements.Add($"sqlCommand.Parameters.AddWithValue({parameterName}, {parameterValue});");
            }
            usingBlock.Statements.Add($"var list = ToList(sqlCommand);");

            var ifBlock = new CSBlock("if (list.Count > 0)");

            ifBlock.Statements.Add("return list[0];");

            usingBlock.Statements.Add(ifBlock.ToString());
            usingBlock.Statements.Add($"return null;");
            this.Statements.Add(usingBlock.ToString());
        }