public string[] GetNthLocationItems(int n)
        {
            string location = GetNthLocation(n);

            return(ItemPlacements.Where(pair => pair.Item2 == location).Select(pair => pair.Item1).ToArray());
        }
 public HashSet <string> GetPlacedItems()
 {
     return(new HashSet <string>(ItemPlacements.Select(pair => pair.Item1)));
 }
Ejemplo n.º 3
0
//	public Sprite[] SpriteArray = {};

    void OnGUI()
    {
        // The actual window code goes here
        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("CSV File", GUILayout.Width(128));
        fileToLoad = (TextAsset)EditorGUILayout.ObjectField(fileToLoad, typeof(TextAsset), true, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Collider JS File", GUILayout.Width(128));
        colliderFile = (TextAsset)EditorGUILayout.ObjectField(colliderFile, typeof(TextAsset), true, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Parent Transform", GUILayout.Width(128));
        parentTransform = (Transform)EditorGUILayout.ObjectField(parentTransform, typeof(Transform), true, GUILayout.Width(128));
        if (parentTransform != null)
        {
            parentTransform.position = new Vector3(0, 0, 0);
        }
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("SpritePrefab", GUILayout.Width(128));
        spriteBase = (GameObject)EditorGUILayout.ObjectField(spriteBase, typeof(GameObject), true, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("ColliderPrefab", GUILayout.Width(128));
        colliderBase = (GameObject)EditorGUILayout.ObjectField(colliderBase, typeof(GameObject), true, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("OptionalPrefab", GUILayout.Width(128));
        optionalBase = (GameObject)EditorGUILayout.ObjectField(optionalBase, typeof(GameObject), true, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("DoorPrefab", GUILayout.Width(128));
        doorPrefab = (GameObject)EditorGUILayout.ObjectField(doorPrefab, typeof(GameObject), true, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();

        if (GUILayout.Button("Generate Tilemap", GUILayout.Width(128)))
        {
            if (fileToLoad != null)
            {
                tileMapping = CSVLoader.ParseCSV(fileToLoad);
                Debug.Log(allSprites.Length);
                GenerateTiles();
            }
        }

        if (GUILayout.Button("Generate Colliders", GUILayout.Width(128)))
        {
            if (colliderFile != null)
            {
                GenerateColliders(colliderFile);
            }
        }
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();

        if (GUILayout.Button("Find Platforms", GUILayout.Width(128)))
        {
            if (fileToLoad != null)
            {
                ItemPlacements items = parentTransform.gameObject.AddComponent <ItemPlacements> ();
                tileMapping = CSVLoader.ParseCSV(fileToLoad);
                items.FindItemPlacements(tileMapping);
            }
        }
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("TMX File", GUILayout.Width(128));
        tmxFile = (TextAsset)EditorGUILayout.ObjectField(tmxFile, typeof(TextAsset), true, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Base Layer", GUILayout.Width(128));
        baseLayerName = (string)EditorGUILayout.TextField(baseLayerName, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Collider Layer", GUILayout.Width(128));
        colliderLayerName = (string)EditorGUILayout.TextField(colliderLayerName, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Optional Tile Layer", GUILayout.Width(128));
        optionalLayerName = (string)EditorGUILayout.TextField(optionalLayerName, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Enemy Layer", GUILayout.Width(128));
        enemyLayerName = (string)EditorGUILayout.TextField(enemyLayerName, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("FireDinoEnemy Prefab", GUILayout.Width(128));
        fireDino = (GameObject)EditorGUILayout.ObjectField(fireDino, typeof(GameObject), true, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("SquishSlime Prefab", GUILayout.Width(128));
        squishSlime = (GameObject)EditorGUILayout.ObjectField(squishSlime, typeof(GameObject), true, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Door Layer", GUILayout.Width(128));
        doorLayerName = (string)EditorGUILayout.TextField(doorLayerName, GUILayout.Width(128));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();

        if (GUILayout.Button("Parse TMX", GUILayout.Width(128)))
        {
            if (tmxFile != null)
            {
                //ItemPlacements items = parentTransform.gameObject.AddComponent<ItemPlacements> ();
                //tileMapping = CSVLoader.ParseCSV (fileToLoad);
                //items.FindItemPlacements (tileMapping);
                var map = new TmxMap("Assets/Levels/" + tmxFile.name + ".xml");
//				var objectLayer = map.Tilesets["Tile Layer 1"];
                //Debug.Log (map.Tilesets);
                GenerateTiles(map);
            }
        }
        GUILayout.EndHorizontal();

        if (!Directory.Exists(Application.dataPath + "/Tilemaps/"))
        {
            //Directory.CreateDirectory(Application.dataPath + "/Tilemaps/");
            AssetDatabase.CreateFolder("Assets", "Tilemaps");
            AssetDatabase.Refresh();
            Debug.Log("Created Tilemaps Directory");
        }
        files   = Directory.GetFiles(Application.dataPath + "/Tilemaps/", "*.png");
        options = new string[files.Length];
        EditorGUILayout.LabelField("Tile Map", GUILayout.Width(256));
        for (int i = 0; i < files.Length; i++)
        {
            options[i] = files[i].Replace(Application.dataPath + "/Tilemaps/", "");
        }
        index      = EditorGUILayout.Popup(index, options, GUILayout.Width(256));
        allSprites = AssetDatabase.LoadAllAssetsAtPath("Assets/Tilemaps/" + options[index]).Select(x => x as Sprite).Where(x => x != null).ToArray();
    }