Beispiel #1
0
    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);
    }
Beispiel #2
0
    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);
        }
    }
Beispiel #3
0
    // ---- 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);
    }
Beispiel #4
0
    /*
     * 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);
        }
    }