public bool AddFirstDataObjectInGrid(ModelNPC.ObjectData objDataSave, string nameField) { ModelNPC.FieldData fieldData = new ModelNPC.FieldData() { NameField = nameField }; _GridDataG.FieldsD.Add(nameField, fieldData); fieldData.Objects.Add(objDataSave); return(true); }
public void AddNewFieldInGrid_Cache(ref ModelNPC.FieldData result, string newField, string callFunc, bool isForce = false) { result = new ModelNPC.FieldData() { NameField = newField }; _GridDataG.FieldsD.Add(newField, result); if (Storage.Map.IsGridMap) { Storage.Map.CheckSector(newField); } }
// ---- ONLY FIELD and NOT DATA public ModelNPC.FieldData AddNewFieldInGrid(string newField, string callFunc, bool isForce = false) { ModelNPC.FieldData fieldData = new ModelNPC.FieldData() { NameField = newField }; _GridDataG.FieldsD.Add(newField, fieldData); //! SaveHistory("", "AddNewFieldInGrid", callFunc, newField); if (Storage.Map.IsGridMap) { Storage.Map.CheckSector(newField); } return(fieldData); }
/* * static public void SaveGridPartsXml(ModelNPC.GridData state, string datapath, bool isNewWorld = false) * { * * string indErr = "start"; * * if (isNewWorld) * { * for (int partX = 0; partX < Helper.SizePart; partX++) * { * for (int partY = 0; partY < Helper.SizePart; partY++) * { * indErr = "c.1"; * string nameFileXML = +(partX + 1) + "x" + (partY + 1); * string datapathPart = Application.dataPath + "/Levels/LevelDataPart" + nameFileXML + ".xml"; * datapath = datapathPart; * if (File.Exists(datapathPart)) * { * try * { * indErr = "delete"; * File.Delete(datapathPart); * } * catch (Exception x) * { * Debug.Log("############# Error SaveGridXml NOT File Delete: " + datapathPart + " : " + x.Message); * } * } * * } * } * * * } * * try * { * Dictionary<string, ModelNPC.FieldData> FieldsPart = new Dictionary<string, ModelNPC.FieldData>(); * int SizePart = Helper.WidthLevel / Helper.SizePart; * * Dictionary<string, Dictionary<string, ModelNPC.FieldData>> PartsGrids = new Dictionary<string, Dictionary<string, ModelNPC.FieldData>>(); * for (int partX = 0; partX < Helper.SizePart; partX++) * { * for (int partY = 0; partY < Helper.SizePart; partY++) * { * FieldsPart = new Dictionary<string, ModelNPC.FieldData>(); * string nameFileXML = +(partX + 1) + "x" + (partY + 1); * int startX = partX * SizePart; * int startY = partY * SizePart; * int widthX = startX + SizePart; * int widthY = startY + SizePart; * for (int x = startX; x < widthX; x++) * { * for (int y = startY; y < widthY; y++) * { * indErr = "d.1"; * string fieldName = Helper.GetNameField(x, y); * indErr = "d.2"; * if (state.FieldsD.ContainsKey(fieldName)) * { * ModelNPC.FieldData copyFields = state.FieldsD[fieldName]; * * FieldsPart.Add(fieldName, copyFields); * } * } * } * indErr = "d.3"; * PartsGrids.Add(nameFileXML, FieldsPart); * } * } * * foreach (var partGrid in PartsGrids) * { * indErr = "1"; * //Type[] extraTypes = { typeof(FieldData), typeof(ObjectData), typeof(ObjectDataUfo) }; * //## * Dictionary<string, ModelNPC.FieldData> partGridFields = partGrid.Value; * indErr = "1.1."; * string nameFileXML = partGrid.Key; * indErr = "1.2."; * string datapathPart = Application.dataPath + "/Levels/LevelDataPart" + nameFileXML + ".xml"; * datapath = datapathPart; * * indErr = "1.3."; * * state.FieldsXML = partGridFields.ToList(); * indErr = "2"; * //## * Debug.Log("SaveXml GridData D:" + partGridFields.Count() + " XML:" + state.FieldsXML.Count() + " datapath=" + datapathPart); * * indErr = "3"; * XmlSerializer serializer = new XmlSerializer(typeof(ModelNPC.GridData), extraTypes); * * indErr = "5"; * //FileStream fs = new FileStream(datapathPart, FileMode.CreateNew); * * //indErr = "6"; * //serializer.Serialize(fs, state); * * //indErr = "7"; * //fs.Close(); * using (FileStream fs = new FileStream(datapathPart, FileMode.CreateNew)) * { * indErr = "6"; * serializer.Serialize(fs, state); * * indErr = "7"; * fs.Close(); * } * } * indErr = "8"; * state.FieldsXML = null; * //Debug.Log("Saved Xml GridData L:" + state.Fields.Count() + " D:" + state.FieldsD.Count() + " XML:" + state.FieldsXML.Count() + " datapath=" + datapath); * } * catch (Exception x) * { * Debug.Log("######### SaveGridXml: " + x.Message + " to :" + datapath + " #" + indErr); * } * } */ static public void SaveGridCashXml(ModelNPC.GridData state, string datapath, bool isNewWorld = false) { string indErr = "start"; try { Dictionary <string, ModelNPC.FieldData> dataSave = new Dictionary <string, ModelNPC.FieldData>(state.FieldsD); Dictionary <string, ModelNPC.FieldData> FieldsPart = new Dictionary <string, ModelNPC.FieldData>(); int SizePart = Helper.WidthLevel / Helper.SizePart; Dictionary <string, Dictionary <string, ModelNPC.FieldData> > PartsGrids = new Dictionary <string, Dictionary <string, ModelNPC.FieldData> >(); int partX = 0; int partY = 0; FieldsPart = new Dictionary <string, ModelNPC.FieldData>(); string nameFileXML = +(partX + 1) + "x" + (partY + 1); int startX = partX * SizePart; int startY = partY * SizePart; int widthX = startX + SizePart; int widthY = startY + SizePart; Helper.StartControlTime(); for (int x = startX; x < widthX; x++) { for (int y = startY; y < widthY; y++) { indErr = "d.1"; string fieldName = Helper.GetNameField(x, y); indErr = "d.2"; //if (state.FieldsD.ContainsKey(fieldName)) if (dataSave.ContainsKey(fieldName)) { //ModelNPC.FieldData copyFields = state.FieldsD[fieldName]; ModelNPC.FieldData copyFields = dataSave[fieldName]; FieldsPart.Add(fieldName, copyFields); //state.FieldsD.Remove(fieldName); dataSave.Remove(fieldName); } } } indErr = "d.3"; Helper.StopControlTime("...time: SaveGridCashXml FieldsPart: "); //Dictionary<string, ModelNPC.FieldData> cashPart = PartsGrids["1x1"]; Dictionary <string, ModelNPC.FieldData> cashPart = FieldsPart; Dictionary <string, ModelNPC.FieldData> bigPart = dataSave; Helper.StartControlTime(); ModelNPC.GridData stateCash = new ModelNPC.GridData() { FieldsD = cashPart }; SavePartXML(stateCash, "1x1"); Helper.StopControlTime("...time: SaveGridCashXml Save Cash"); Helper.StartControlTime(); ModelNPC.GridData stateBig = new ModelNPC.GridData() { FieldsD = bigPart }; SavePartXML(stateBig, "1x2"); Helper.StopControlTime("...time: SaveGridCashXml Save Big"); indErr = "8"; state.FieldsXML = null; //Debug.Log("Saved Xml GridData L:" + state.Fields.Count() + " D:" + state.FieldsD.Count() + " XML:" + state.FieldsXML.Count() + " datapath=" + datapath); } catch (Exception x) { Debug.Log("######### SaveGridXml: " + x.Message + " to :" + datapath + " #" + indErr); } }