public override void Activate(GameObject from_gameobject) { if (isActive) { return; } SawBeam saw_beam = from_gameobject.GetComponent <SawBeam>(); saw_beam.StartSpellAnimation(this); }
public static void OptimizedMainProfileExport(string idoptimdocs) { FolderBrowserDialog dialog = new FolderBrowserDialog(); //if (dialog.ShowDialog() != DialogResult.OK) // return; // string folderName = dialog.SelectedPath; string folderName = "C:\\MyProject\\! FO_LIBRARY 2\\TEST FILEs\\"; DataSet dataSet = new DataSet(); using (SqlCommand command = new SqlCommand()) using (SqlDataAdapter adapter = new SqlDataAdapter(command)) { command.Connection = dbinit.db; command.CommandText = "fo_optim_main_prof_by_idoptimdocs"; command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@idoptimdocs", idoptimdocs); adapter.Fill(dataSet); } // Документы оптимизации DataTable optimDocumnetTable = dataSet.Tables[0]; // Загатовки DataTable optimDocPicTable = dataSet.Tables[1]; // Напилиные балки DataTable beamTable = dataSet.Tables[2]; Dictionary <int, clsModel> idorderitemClsModel = new Dictionary <int, clsModel>(); foreach (DataRow row in dataSet.Tables[3].Rows) { byte[] modelByteArray = Atechnology.Components.ZipArchiver.UnZip2((byte[])row[1]); idorderitemClsModel.Add((int)row[0], new clsModel(modelByteArray)); } List <Tuple <DataRow, string> > beemDataRow_leafNumber = new List <Tuple <DataRow, string> >(); DataTable beemDataTable = dataSet.Tables[2]; beemDataTable.Columns.Add("FieldNumber"); int idorderitem = -1; SawWorkpiece piece; // Создать документы и заполнить их foreach (DataRow docRow in optimDocumnetTable.Rows) { SawDocument docWriter = new SawDocument(docRow); //string docText = string.Format("L,{0},CUT", docRow["docname"]); // Загатовки(картинки) для напиловки IEnumerable <DataRow> picRows = optimDocPicTable.AsEnumerable() .Where(pr => pr.Field <int>("idoptimdoc") == docWriter.IdOptimDoc); IEnumerable <DataRow> beamRows = beamTable.AsEnumerable() .Where(br => br.Field <int>("idoptimdoc") == docWriter.IdOptimDoc) .OrderBy(br => br.Field <string>("manufact_name")); // -- Цикл по заготовкам(картинкам оптимизации) внутри документа foreach (DataRow picRow in picRows) { int idoptimdocpic = (int)picRow["idoptimdocpic"]; piece = new SawWorkpiece(picRow); docWriter.AddPicWriter(piece); } IEnumerable <DataRow> beemRows = dataSet.Tables[2] .AsEnumerable() .Where(br => br.Field <int>("idoptimdoc") == docWriter.IdOptimDoc) .OrderBy(br => br.Field <string>("manufact_name")); // Упорядочить по manufactname. // Необходимо для того, чтобы балки(Рам, Створок и Импостов) // из одного заказа упаковывались в свои тележки в одинаковой последовательности. clsModel clsModel = null; // Цикл по напиленым балкам foreach (DataRow beemRow in beemRows) { // Получить модель для дальнейшего извлечения балки. idorderitem = (int)beemRow["idorderitem"]; clsModel = idorderitemClsModel[idorderitem]; SawBeam sawBeam = new SawBeam(beemRow, clsModel); sawBeam.IsRemark = true; docWriter.AddBeamWriter(sawBeam); } docWriter.FillDocument(folderName); } }