Тайлсет-организатор

Автор: strelokhalfer
Версия скрипта: 1.0
Версия мейкера: VX Ace
Тип: Позволяет переместить графику тайлсетов в подпапки, упрощая навигацию.
Условия использования/Лицензия: Любой проект, только укажите меня в благодарностях.

Описание:
Лично меня напрягает, что ресурсы в мукере не могут лежать в подпапках. Теперь тайлсеты могут.

Настройки:

Файлы в папке тайлсетов должны называться по шаблону:
[id][папка][тип тайла].png
id - номер тайлсета в базе данных
папка - имя папки для тайлсета
тип тайла - Тип вкладки тайлсета(например A1, C, E)

Запустите проект и скрипт переместит файлы в папки,
обновив пути в файле тайлсета. Если вы запустили проект через
редактор, перезапустите его, если спросит сохранить проект - Нет.
После, вы можете спокойно редактировать базу данных
(кроме графики, так как придется повторять процедуру)
Вы можете поместить файлы тайлсета в разные папки
(например, если файл используется в нескольких тайлсетах)

Пример:
[2][Exterior][A1].png

Файл будет перемещен в подпапку Exterior и переименован в A1.

Код:
Код:
%Q{╔═══════════════════════════════════════════════════════════════════════════╗
╔══╝                Tileset organizer | Тайлсет-организатор                    ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ ┌───────────────────────────┬──────────────────────────────────────────────┐ ║
║ │       Author | Автор      │                 strelokhalfer                │ ║
║ ├───────────────────────────┼──────────────────────────────────────────────┤ ║
║ │      Contacts | Связь     │                                              │ ║
║ ├───────────────────────────┘                                              │ ║
║ │  E-mail: strelokhalfer@gmail.com                                         │ ║
║ │  Site | Сайт: rm-dev.info                                                │ ║
║ ├───────────────────────────┬──────────────────────────────────────────────┤ ║
║ │      Version | Версия     │                                              │ ║
║ ├───────────────────────────┘                                              │ ║
║ │ 1.0 - Release | Релиз                                                    │ ║
║ ├───────────────────────────┬──────────────────────────────────────────────┤ ║
║ │     License | Лицензия    │                                              │ ║
║ ├───────────────────────────┘                                              │ ║
║ │ You can | Вы можете                                                      │ ║
║ │    Use this script in free/commercial project                            │ ║
║ │      Использовать скрипт в бесплатных и коммерческих проектах            │ ║
║ │    Edit this script if you need                                          │ ║
║ │      Изменять скрипт, если нужно                                         │ ║
║ │    Distribute anywhere                                                   │ ║
║ │      Распространять где хотите                                           │ ║
║ │                                                                          │ ║
║ │ You CANT | Вы НЕ можете                                                  │ ║
║ │    Cut this license                                                      │ ║
║ │      Удалять эту лицензию                                                │ ║
║ │    Sell this script                                                      │ ║
║ │      Продавать этот скрипт                                               │ ║
║ │                                                                          │ ║
║ │ You CANT | Вы НЕ можете                                                  │ ║
║ │    Cut this license                                                      │ ║
║ │      Удалять эту лицензию                                                │ ║
║ │    Sell this script                                                      │ ║
║ │      Продавать этот скрипт                                               │ ║
║ │                                                                          │ ║    
║ │ You must | Вы ДОЛЖНЫ                                                     │ ║
║ │    Credit me(strelokhalfer)                                              │ ║
║ │      Указать меня(strelokhalfer) в благодарностях                        │ ║
║ ├───────────────────────────┬──────────────────────────────────────────────┤ ║
║ │ How to | Как использовать │                                              │ ║
║ ├───────────────────────────┘                                              │ ║
║ │    Files in the Tileset folder should be named by template:              │ ║
║ │      [id][folder][tile type].png                                         │ ║
║ │        id - tileset number in Database                                   │ ║
║ │        folder - folder name for tileset                                  │ ║
║ │        tile type - tile tab name(like A1, C, E)                          │ ║
║ │    Файлы в папке тайлсетов должны называться по шаблону:                 │ ║
║ │      [id][папка][тип тайла].png                                          │ ║
║ │        id - номер тайлсета в базе данных                                 │ ║
║ │        папка - имя папки для тайлсета                                    │ ║
║ │        тип тайла - Тип вкладки тайлсета(например A1, C, E)               │ ║
║ │                                                                          │ ║
║ │    Just run project and files will moved to folders,                     │ ║
║ │    tileset data will be updated. If you run project from Editor,         │ ║
║ │    close them without saving, and restart.                               │ ║
║ │    You can free edit Database and even Tilesets, exept tileset files.    │ ║
║ │    You can store one tileset in different folders.                       │ ║
║ │                                                                          │ ║ 
║ │    Запустите проект и скрипт переместит файлы в папки,                   │ ║
║ │    обновив пути в файле тайлсета. Если вы запустили проект через         │ ║
║ │    редактор, перезапустите его, если спросит сохранить проект - Нет.     │ ║
║ │    После, вы можете спокойно редактировать базу данных и тайлсеты        │ ║
║ │    (кроме графики, так как придется повторять процедуру)                 │ ║
║ │    Вы можете поместить файлы тайлсета в разные папки                     │ ║
║ │    (например, если файл используется в нескольких тайлсетах)             │ ║
║ │                                                                         ┌┘ ║
║ └─────────────────────────────────────────────────────────────────────────┘ ╔╝
╚═════════════════════════════════════════════════════════════════════════════╝}
module Halfer
  TileTypes = [:A1, :A2, :A3, :A4, :A5, :B, :C, :D, :E]
end
tilehash = {}
Dir["Graphics/Tilesets/*.png"].each{|file|
 file.slice!("Graphics/Tilesets/") 
 file.sub(/\[(\d+)\]\[(\w+)\]\[(\w+)\]/){|str|
  if Halfer::TileTypes.include?($3.upcase.to_sym)
    tilehash[$1.to_i] ||= {} 
    tilehash[$1.to_i][$3.upcase.to_sym] = $2.to_sym
    Dir.mkdir "Graphics/Tilesets/#{$2}"
    File.rename("Graphics/Tilesets/#{file}", "Graphics/Tilesets/#{$2}/#{$3.upcase}.png")
  end
 }
}
if !tilehash.empty?
  tilesets = load_data("Data/Tilesets.rvdata2")
  tilehash.each_pair{ |key, value|
    value.each_pair{ |type, folder|
      tilesets[key].tileset_names[Halfer::TileTypes.index(type)] = "#{folder}/#{type}"
    }
  }
  save_data(tilesets, "Data/Tilesets.rvdata2")
  tilesets = nil
  tilehash = nil
end
Скриншоты:
tilesets.png

Скачать демо:
нету