ddd.resources

Модуль, представляющий классы работы с загружаемыми внешними ресурсами:

  • ИменаРесурсов - контейнер всех имён ресурсов, доступных для загрузки
  • ЗагруженныеРесурсы - абстрактный класс-родитель классов, представляющих контейнеры с уже загруженными ресурсами конктретнгго типа

Также объявляется класс РесурсыИсключение для исключений, которые могут возникнуть в результате загрузки ресурсов или их использования.

  • enum string[][string] ТИПЫ_РЕСУРСОВ;

    Константа, в которой ключами являются все возможные типы ресурсов, а значениями - списки типов файлов, которые им соответствуют:

    • меш: [".me"]
    • скелет: [".sk"]
    • картинка: [".jpg", ".png", ".tga", ".tif"]
    • инфопанель: [".ip"]
    • TTF_шрифт: [".ttf", ".fon"]

  • class РесурсыИсключение: object.Exception;

    Класс исключений, которые могут возникнуть при работе с внешними ресурсами

  • class ИменаРесурсов;

    Класс - контейнер для всех имён ресурсов, которые доступны для загрузки из программы

    Сканирует каждый каталог из переданного списка имён каталогов, и сохраняет все имена файлов, которые там находятся и расширения которых соответствуют значениям константы ТИПЫ_РЕСУРСОВ

    • this(string[] каталоги_ресурсов);

      Конструктор, в который необходимо передать массив имён каталогов с ресурсами программы.

      Внутри вызывается метод загрузить_имена_файлов

    • void загрузить_имена_файлов(string[] каталоги_ресурсов);

      Функция, сканирующая каталоги с ресурсами, и заполняющая контейнер именами файлов найденных ресурсов.

    • string получить_имя_файла_ресурса(string имя_ресурса, string тип);

      Возвращает имя файла ресурса (вместе с абсолютным путём к нему).

      Параметры:

      string имя_ресурса

      название ресурса, т.е. основа имени файла без расширения

      string тип

      название типа ресурса, должен быть одним из ключей константы ТИПЫ_РЕСУРСОВ

      Исключения:

  • class ЗагруженныеРесурсы(T);

    Абстрактный шаблон класса - контейнера загруженных ресурсов.

    Потомки этого класса хранятся в объекте DDDМенеджер в отдельной переменной для каждого типа ресурса. Требуется создавать класс-потомок для каждого типа загружаемого ресурса. Переопределять нужно только конструктор и функцию загрузить_один.

    • this(ИменаРесурсов имена_ресурсов0);

      Конструктор, принимающий ссылку на объект типа ИменаРесурсов, в котором уже должны храниться имена всех доступных файлов ресурсов.

    • void загрузить(string[] загружаемые_имена_ресурсов, bool первично = true);

      Функция, загружающая в контейнер несколько ресурсов.

      Параметры:

      string[] загружаемые_имена_ресурсов

      массив имён ресурсов, которые требуется загрузить

      bool первично

      Если этот параметр равен true, и требуемый ресурс уже загружен, то повторная загрузка не производится. В случае значения false ресурс будет загружен вне зависимости от того, был ли он загружен ранее.

    • abstract bool загрузить_один(string имя);

      Абстрактная функция загрузки одного файла с ресурсом. Требуется переопределить в каждом из потомков.

    • T получить(string имя);

      Функция, возвращающая ссылку на ресурс по его имени. Если ресурс в контейнере отсутствует, делается попытка загрузить его из файла.

      Возвращаемое значение:

      Ссылка на ресурс, если он присутствовал в контейнере или успешно загрузился. null, если загрузить файл ресурса не удалось.

    • void перезагрузить(string[] загружаемые_имена_ресурсов);

      Функция, загружающая в контейнер несколько ресурсов вне зависимости от того, были ли они загружены ранее.

      Параметры:

      string[] загружаемые_имена_ресурсов

      массив имён ресурсов, которые требуется загрузить