public static List <AtlasScene> getNeighbors(string sceneName = null) { if (sceneName == null) { sceneName = SceneManager.GetActiveScene().name; } AtlasSceneData sceneData = getSceneData(); AtlasScene currentScene = getScene(); if (currentScene == null) { throw new Exception("Cannot get neighbors for scene: " + sceneName); } List <AtlasScene> neighbors = new List <AtlasScene>(); for (int x = 0; x < currentScene.size.x; x++) { neighbors.Add(findSceneByCoords(currentScene.position + new Vector2(x, -1))); neighbors.Add(findSceneByCoords(currentScene.position + new Vector2(x, currentScene.size.y))); } for (int y = 0; y < currentScene.size.y; y++) { neighbors.Add(findSceneByCoords(currentScene.position + new Vector2(-1, y))); neighbors.Add(findSceneByCoords(currentScene.position + new Vector2(currentScene.size.x, y))); } return(neighbors); }
public static void printSceneNames() { StreamReader reader = new StreamReader(path); string json = reader.ReadToEnd(); reader.Close(); AtlasSceneData sceneData = JsonUtility.FromJson <AtlasSceneData>(json); sceneData.printSceneNames(); }
public static AtlasSceneData getSceneData(string sceneName = null) { StreamReader reader = new StreamReader(path); string json = reader.ReadToEnd(); reader.Close(); //string json = "{\"scenes\":[{\"scene\":\"UndergroundFountain\",\"position\":{\"x\":4,\"y\":3},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":4,\"y\":3}]},{\"scene\":\"LandingSite\",\"position\":{\"x\":-1,\"y\":2},\"size\":{\"x\":2,\"y\":2},\"coords\":[{\"x\":-1,\"y\":2},{\"x\":-1,\"y\":3},{\"x\":0,\"y\":2},{\"x\":0,\"y\":3}]},{\"scene\":\"CaveEntrance\",\"position\":{\"x\":3,\"y\":2},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":3,\"y\":2}]},{\"scene\":\"caveOpening\",\"position\":{\"x\":2,\"y\":2},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":2,\"y\":2}]},{\"scene\":\"plainsPath1\",\"position\":{\"x\":1,\"y\":2},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":1,\"y\":2}]},{\"scene\":\"UndergroundPath\",\"position\":{\"x\":3,\"y\":3},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":3,\"y\":3}]},{\"scene\":\"AltairKettle\",\"position\":{\"x\":7,\"y\":6},\"size\":{\"x\":1,\"y\":6},\"coords\":[{\"x\":7,\"y\":6},{\"x\":7,\"y\":7},{\"x\":7,\"y\":8},{\"x\":7,\"y\":9},{\"x\":7,\"y\":10},{\"x\":7,\"y\":11}]},{\"scene\":\"BamBerry Grotto Intro\",\"position\":{\"x\":4,\"y\":6},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":4,\"y\":6}]},{\"scene\":\"ClockworkBombs\",\"position\":{\"x\":5,\"y\":6},\"size\":{\"x\":2,\"y\":1},\"coords\":[{\"x\":5,\"y\":6},{\"x\":6,\"y\":6}]},{\"scene\":\"followTheBomb\",\"position\":{\"x\":2,\"y\":6},\"size\":{\"x\":1,\"y\":2},\"coords\":[{\"x\":2,\"y\":6},{\"x\":2,\"y\":7}]},{\"scene\":\"warpZone\",\"position\":{\"x\":5,\"y\":3},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":5,\"y\":3}]},{\"scene\":\"witchCanyon\",\"position\":{\"x\":3,\"y\":7},\"size\":{\"x\":2,\"y\":4},\"coords\":[{\"x\":3,\"y\":7},{\"x\":3,\"y\":8},{\"x\":3,\"y\":9},{\"x\":3,\"y\":10},{\"x\":4,\"y\":7},{\"x\":4,\"y\":8},{\"x\":4,\"y\":9},{\"x\":4,\"y\":10}]},{\"scene\":\"followStarChamber\",\"position\":{\"x\":3,\"y\":6},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":3,\"y\":6}]},{\"scene\":\"gardenEntrance\",\"position\":{\"x\":6,\"y\":3},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":6,\"y\":3}]},{\"scene\":\"climbpastbombers\",\"position\":{\"x\":7,\"y\":0},\"size\":{\"x\":1,\"y\":2},\"coords\":[{\"x\":7,\"y\":0},{\"x\":7,\"y\":1}]},{\"scene\":\"gardenhub1\",\"position\":{\"x\":9,\"y\":1},\"size\":{\"x\":1,\"y\":3},\"coords\":[{\"x\":9,\"y\":1},{\"x\":9,\"y\":2},{\"x\":9,\"y\":3}]},{\"scene\":\"bombflowerHallway\",\"position\":{\"x\":8,\"y\":2},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":8,\"y\":2}]},{\"scene\":\"chargerHall\",\"position\":{\"x\":10,\"y\":1},\"size\":{\"x\":2,\"y\":1},\"coords\":[{\"x\":10,\"y\":1},{\"x\":11,\"y\":1}]},{\"scene\":\"gardenTemplate\",\"position\":{\"x\":0,\"y\":6},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":0,\"y\":6}]},{\"scene\":\"gardenRampDown\",\"position\":{\"x\":8,\"y\":3},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":8,\"y\":3}]},{\"scene\":\"bombberryTree\",\"position\":{\"x\":7,\"y\":2},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":7,\"y\":2}]},{\"scene\":\"bombCrossroads\",\"position\":{\"x\":10,\"y\":3},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":10,\"y\":3}]},{\"scene\":\"gardenStairs\",\"position\":{\"x\":11,\"y\":2},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":11,\"y\":2}]},{\"scene\":\"gardenBombPuzzle1\",\"position\":{\"x\":11,\"y\":3},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":11,\"y\":3}]},{\"scene\":\"movingUpToBumpBerry\",\"position\":{\"x\":12,\"y\":2},\"size\":{\"x\":1,\"y\":2},\"coords\":[{\"x\":12,\"y\":2},{\"x\":12,\"y\":3}]},{\"scene\":\"gardenReturn\",\"position\":{\"x\":9,\"y\":4},\"size\":{\"x\":2,\"y\":1},\"coords\":[{\"x\":9,\"y\":4},{\"x\":10,\"y\":4}]},{\"scene\":\"gardenRibbonBridge\",\"position\":{\"x\":7,\"y\":3},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":7,\"y\":3}]},{\"scene\":\"bumpberryTree\",\"position\":{\"x\":10,\"y\":2},\"size\":{\"x\":1,\"y\":1},\"coords\":[{\"x\":10,\"y\":2}]}]}"; AtlasSceneData sceneData = JsonUtility.FromJson <AtlasSceneData>(json); return(sceneData); }
public static AtlasScene findSceneByCoords(Vector2 sceneCoords) { AtlasSceneData sceneData = getSceneData(); AtlasScene rtnScene = sceneData.scenes.Find(s => { return (sceneCoords.x < s.position.x + s.size.x && sceneCoords.x >= s.position.x && sceneCoords.y < s.position.y + s.size.y && sceneCoords.y >= s.position.y); }); if (rtnScene == null) { rtnScene = new AtlasScene(); } return(rtnScene); }
public static Vector2 getSceneCoords(string sceneName = null) { if (sceneName == null) { sceneName = SceneManager.GetActiveScene().name; } AtlasSceneData sceneData = getSceneData(); AtlasScene scene = sceneData.scenes.Find(s => s.scene == sceneName); if (scene != null) { return(new Vector2(scene.position.x, scene.position.y)); } return(new Vector2(-1, -1)); }
public static AtlasScene getScene(string sceneName = null) { if (sceneName == null) { sceneName = SceneManager.GetActiveScene().name; } if (sceneName == "Main Menu") { return(new AtlasScene()); } AtlasSceneData sceneData = getSceneData(); AtlasScene currentScene = sceneData.scenes.Find(s => s.scene == sceneName); if (currentScene == null) { throw new Exception("No Scene data found for scene: " + sceneName); } return(currentScene); }