Пример #1
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        SpriteLookUp spriteLookUp = (SpriteLookUp)this.target;

        if (GUILayout.Button("Generate"))
        {
            this.PopulateDatabase();
            spriteLookUp.InitializeDictionaries();
        }
    }
Пример #2
0
        protected override void OnCreate()
        {
            base.OnCreate();

            _mailbox = Resources.Load <Mailbox>("Objects/Mailbox");
            _mailbox.SubscribeToTaskType <Tasks.UpdateInventoryTask>(this);

            _spriteDatabase = Resources.Load <SpriteLookUp>("Objects/SpriteLookUp");

            _sceneLifeCycle = Resources.Load <SceneLifeCycle>("Objects/LifeCycle");
            _sceneLifeCycle.Play.AddListener(this.OnPlay);

            _tasks = new Dictionary <string, Tasks.UpdateInventoryTask>();
        }
Пример #3
0
    /// <summary>
    /// Populates Dictionary and TileList with Tiles
    /// </summary>
    public void PopulateDatabase()
    {
        SpriteLookUp spriteLookUp = (SpriteLookUp)this.target;

        spriteLookUp.TileEntries = Directory.GetFiles(spriteLookUp.TilesPath)
                                   .Where(asset => !asset.Contains(".DS_Store"))
                                   .Where(asset => Path.GetExtension(asset) != ".meta")
                                   .Select(asset =>
        {
            string path = asset.Replace(spriteLookUp.TilesPath, "mm26_tiles/").Replace(".asset", ".png");
            Tile tile   = (Tile)AssetDatabase.LoadAssetAtPath(asset, typeof(Tile));

            if (tile == null)
            {
                Debug.LogErrorFormat("asset not found at {0}", path);
            }

            // some path might have all cap extensions, but the path
            // found by SpriteLookUpEditor all have lower case extension
            string directory = Path.GetDirectoryName(path);
            string name      = Path.GetFileNameWithoutExtension(path);
            string extension = Path.GetExtension(path);

            return(new SpriteLookUp.TileEntry()
            {
                Path = directory + "/" + $"{name}{extension}",
                Tile = tile,
            });
        })
                                   .ToArray();


        spriteLookUp.WearableEntries = Directory.GetFiles(spriteLookUp.WearablesPath, "*.*", SearchOption.AllDirectories)
                                       .Where(asset => !asset.Contains(".DS_Store"))
                                       .Where(asset => Path.GetExtension(asset) != ".meta")
                                       .Select(asset =>
        {
            string path   = asset.Replace(spriteLookUp.WearablesPath, "mm26_wearables/");   //.Replace(".PNG", ".png");
            Sprite sprite = (Sprite)AssetDatabase.LoadAssetAtPath(asset, typeof(Sprite));

            if (sprite == null)
            {
                Debug.LogErrorFormat("asset not found at {0}", path);
            }

            // some path might have all cap extensions, but the path
            // found by SpriteLookUpEditor all have lower case extension
            string directory = Path.GetDirectoryName(path).Replace("\\", "/");;
            string name      = Path.GetFileNameWithoutExtension(path);
            string extension = Path.GetExtension(path);

            string[] dir_slot = directory.Split('/');

            string slot = "unassigned";

            if (dir_slot.Length > 1)
            {
                if (dir_slot[1] != "_default")
                {
                    slot = dir_slot[1];
                }
                else
                {
                    if (name.Contains("bod"))
                    {
                        slot = "clothes";
                    }
                    else if (name.Contains("bottom"))
                    {
                        slot = "shoes";
                    }
                    else if (name.Contains("head"))
                    {
                        slot = "hats";
                    }
                }
            }


            return(new SpriteLookUp.WearableEntry()
            {
                Path = directory + "/" + $"{name}{extension}",
                Sprite = sprite,
                Slot = slot
            });
        })
                                       .ToArray();
    }