private void SetupParameters() { CASettings settings = UICASettings.instance.GetSettings(); seed = settings.seed; useRandomSeed = settings.useRandomSeed; columns = settings.levelWidth; rows = settings.levelHeight; wallsFillPercent = settings.wallFill; smoothingIterations = settings.iterations1; neighbourhoodType = settings.ruleset1.neighbourhoodType; surviveMin = settings.ruleset1.survMin; surviveMax = settings.ruleset1.survMax; newMin = settings.ruleset1.newMin; newMax = settings.ruleset1.newMax; hybridMode = settings.enableSecondRuleset; smoothingIterationsHybrid = settings.iterations1; neighbourhoodTypeHybrid = settings.ruleset2.neighbourhoodType; surviveMinHybrid = settings.ruleset2.survMin; surviveMaxHybrid = settings.ruleset2.survMax; newMinHybrid = settings.ruleset2.newMin; newMaxHybrid = settings.ruleset2.newMax; roomThreshold = settings.minRoomSize; roomUpperThreshold = settings.maxRoomSize; wallThreshold = settings.minWallSize; wallUpperThreshold = settings.maxWallSize; connectRooms = settings.enableConnections; if (settings.useDirectConnections) { connectionType = ConnectionType.direct; } else { connectionType = ConnectionType.straight; } connectionUpperThreshold = settings.maxLeavingConnections; connectionSizeFactor = settings.connectionSizeFactor; maxCorridorLengthX = settings.maxConnectionLengthX; maxCorridorLengthY = settings.maxConnectionLengthY; }
// Lataa tai kirjoittaa tiedostoja ja asettaa muuttujien arvot kohdilleen private void loadFiles() { //Debug.Log ("LOAD/WRITE ASSET FILE!"); cellGen = Resources.LoadAssetAtPath<CASettings>(resourcePath + "CASettings.asset"); // Ei löydetty tiedostoa, alustetaan oletusarvot ja tallennetaan if (cellGen == null) { cellGen = CreateInstance<CASettings> (); AssetDatabase.CreateAsset (cellGen, resourcePath + "CASettings.asset"); cellGen.width = 32; cellGen.height = 32; cellGen.seedNumber = 0; cellGen.minNearbyToSpawn = 5; cellGen.minNearbyToLive = 5; cellGen.startChanceToLive = 0.7f; cellGen.stepCount = 10; AssetDatabase.SaveAssets(); AssetDatabase.Refresh (); } settings = Resources.LoadAssetAtPath<GraduSettings>(resourcePath + "GraduSettings.asset"); // Ei löydetty tiedostoa, alustetaan oletusarvot ja tallennetaan if (settings == null) { settings = CreateInstance<GraduSettings> (); AssetDatabase.CreateAsset (settings, resourcePath + "GraduSettings.asset"); settings.filenames = new string[1]; settings.filenames[0] = "tempMap"; AssetDatabase.SaveAssets(); AssetDatabase.Refresh (); } loadedMap = Resources.LoadAssetAtPath<MapScriptableObject>(resourcePath + ""+settings.filenames[0]+".asset"); // Ei löydetty tiedostoa, alustetaan oletusarvot ja tallennetaan if (loadedMap == null) { Debug.Log ("WRITE MAP FILE!"); loadedMap = CreateInstance<MapScriptableObject> (); AssetDatabase.CreateAsset (loadedMap, resourcePath + ""+settings.filenames[0]+".asset"); loadedMap.layerBaseMap = new List<Cell>(); loadedMap.layerFreeHand = new List<Cell>(); loadedMap.openSides = new bool[]{false,false,false,false}; for (int i = 0; i < cellGen.width; i++) { for (int j = 0; j < cellGen.height; j++) { loadedMap.layerBaseMap.Add(new Cell(map[i,j])); } } for (int i = 0; i < cellGen.width; i++) { for (int j = 0; j < cellGen.height; j++) { loadedMap.layerFreeHand.Add(new Cell(mapFreehand[i,j])); } } AssetDatabase.CreateAsset (loadedMap, resourcePath + ""+settings.filenames[0]+".asset"); AssetDatabase.SaveAssets (); AssetDatabase.Refresh (); } else { Debug.Log ("LOAD MAP FILE!"); map = new int[cellGen.width,cellGen.height]; mapFreehand = new int[cellGen.width,cellGen.height]; openSides = loadedMap.openSides; int j = 0; int k = 0; // Täytetään taulukko tallennetun tiedon perusteella foreach (Cell c in loadedMap.layerBaseMap) { map[k,j] = c.state; j = j + 1; if (j >= cellGen.height) { j = 0; k++; } } j = 0; k = 0; // Täytetään taulukko tallennetun tiedon perusteella foreach (Cell c in loadedMap.layerFreeHand) { mapFreehand[k,j] = c.state; j = j + 1; if (j >= cellGen.height) { j = 0; k++; } } } }