Exemplo n.º 1
0
        // Knapp som kräver haxiga parametrar, Export av griden till en json som går att användas i spelet. Ropas på ifrån view.
        public bool Export(dynamic dynamicObj)
        {
            try
            {
                var lvlJsonObj = new LevelJsonObj();

                lvlJsonObj.Width  = int.Parse(dynamicObj.width);
                lvlJsonObj.Height = int.Parse(dynamicObj.height);

                var tilesIndexString = (string)dynamicObj.indextileprop;
                var sArrayTiles      = tilesIndexString.Split(';');
                lvlJsonObj.TileIndex = Array.ConvertAll(sArrayTiles, int.Parse);

                var attIndexString = (string)dynamicObj.indexAttprop;
                var sArrayAtt      = attIndexString.Split(';');
                lvlJsonObj.AttributeIndex = Array.ConvertAll(sArrayAtt, int.Parse); // TODO: undefined?! // sista blir undefined 1600, tycks inte funka som tänkt


                var givenName = (string)dynamicObj.indexAttprop;


                string fileLocation = System.IO.Path.Combine(Environment.CurrentDirectory, @"Content\Export\mapoutput.json");
                if (!File.Exists(fileLocation))
                {
                    // Log
                }

                string json = JsonConvert.SerializeObject(lvlJsonObj);
                System.IO.File.WriteAllText(fileLocation, json);



                return(true);
            }
            catch (Exception e)
            {
                // Log
                return(false);
            }
        }
Exemplo n.º 2
0
        // Funktion för att importera värden sparad map. Ropas på från vyn
        public string Import()
        {
            try
            {
                string fileLocation = System.IO.Path.Combine(Environment.CurrentDirectory, @"Content\Export\mapoutput.json");
                if (!File.Exists(fileLocation))
                {
                    return("Could not find [map].json file.");
                }
                else
                {
                    LevelJsonObj SavedMap = JsonConvert.DeserializeObject <LevelJsonObj>(File.ReadAllText(fileLocation));

                    SavedMapValTiles      = string.Join(",", SavedMap.TileIndex);
                    SavedMapValAttributes = string.Join(",", SavedMap.AttributeIndex);

                    return("OK");
                }
            }
            catch (Exception e)
            {
                return("Exception Import: " + e.ToString());
            }
        }
Exemplo n.º 3
0
        //public abstract bool Create(string fileData, olcSprite* sprite, string name);
        public bool Create(string fileData, Sprite sprite, string name)
        {
            sName   = name;   // namnet sparat lokalt
            pSprite = sprite; // pekaren till spriten

            // Ladda filen som innehåller lvl data:
            bool experimentWithJson = true;

            if (experimentWithJson)
            {
                string       json    = File.ReadAllText(fileData);
                LevelJsonObj account = JsonConvert.DeserializeObject <LevelJsonObj>(json);;
                nHeight = account.Height;
                nWidth  = account.Width;

                m_indices = account.TileIndex;

                //m_solids = account.AttributeIndex;

                // Only use solid not solid for now.
                m_solids = new bool[nWidth * nHeight];
                var length = account.AttributeIndex.Length;
                for (int i = 0; i < length; i++)
                {
                    if (account.AttributeIndex[i].Equals(0))
                    {
                        m_solids[i] = false;
                    }
                    else
                    {
                        m_solids[i] = true;
                    }
                }
            }
            else
            {
                //File.ReadAllText("Resources\\Settings.txt")
                var fileDataString = File.ReadAllText(fileData);
                if (!string.IsNullOrEmpty(fileDataString))
                {
                    // Nollindexerat Första är höjden andra är bredden
                    // sen är det par. Först vilken tile att använda, sen om den är solid eller inte.
                    //t ex: 64 32 9 0 9 0


                    // crossX har gjort en sprite viewer. //TODO hitta den
                    // ittey ? har gjort en mapp editor // TODO: hitta den



                    //endast de två första värdena
                    var firstTwo = String.Join(" ", fileDataString.Split(' ').Take(2));

                    string[] firstTwoArray = firstTwo.Split(' ');
                    nHeight = Int32.Parse(firstTwoArray[1]); // testar byta plats på dessa och det händer grejer..
                    nWidth  = Int32.Parse(firstTwoArray[0]); // testar byta plats på dessa och det händer grejer.. // Kan också vara kartan (village1.lvl.txt) inte säker på om den är som den ska liksom

                    // Skapa våra två arrayer, solid och indexar.
                    m_solids  = new bool[nWidth * nHeight];
                    m_indices = new int[nWidth * nHeight];



                    //utan de två första i strängen
                    var      resultNoWH      = String.Join(" ", fileDataString.Split(' ').Skip(2));
                    string[] resultNoWHArray = resultNoWH.Split(' ');



                    var röv1 = new List <string>();
                    var röv2 = new List <string>();



                    for (int i = 0; i < resultNoWHArray.Length; i++)
                    {
                        var framröv = resultNoWHArray[i];

                        if (i % 2 == 0)
                        {
                            röv1.Add(framröv);
                        }
                        else
                        {
                            röv2.Add(framröv);
                        }
                    }


                    for (int i = 0; i < röv1.Count; i++)
                    {
                        m_indices[i] = int.Parse(röv1[i]);
                    }

                    for (int i = 0; i < röv2.Count; i++)
                    {
                        m_solids[i] = röv2[i].Equals("1");
                    }


                    return(true);
                }
            }

            return(false);
        }