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
тип
название типа ресурса, должен быть одним из ключей константы ТИПЫ_РЕСУРСОВ
Исключения:
- RangeError, если переданный
тип
отсутствует в константе ТИПЫ_РЕСУРСОВ. - РесурсыИсключение, если имя ресурса отсутствует среди загруженных имён.
- RangeError, если переданный
-
-
class
ЗагруженныеРесурсы
(T);Абстрактный шаблон класса - контейнера загруженных ресурсов.
Потомки этого класса хранятся в объекте DDDМенеджер в отдельной переменной для каждого типа ресурса. Требуется создавать класс-потомок для каждого типа загружаемого ресурса. Переопределять нужно только конструктор и функцию загрузить_один.
-
this(ИменаРесурсов
имена_ресурсов0
);Конструктор, принимающий ссылку на объект типа ИменаРесурсов, в котором уже должны храниться имена всех доступных файлов ресурсов.
-
void
загрузить
(string[]загружаемые_имена_ресурсов
, boolпервично
= true);Функция, загружающая в контейнер несколько ресурсов.
Параметры:
string[]
загружаемые_имена_ресурсов
массив имён ресурсов, которые требуется
загрузить
bool
первично
Если этот параметр равен
true
, и требуемый ресурс уже загружен, то повторная загрузка не производится. В случае значенияfalse
ресурс будет загружен вне зависимости от того, был ли он загружен ранее. -
abstract bool
загрузить_один
(stringимя
);Абстрактная функция загрузки одного файла с ресурсом. Требуется переопределить в каждом из потомков.
-
T
получить
(stringимя
);Функция, возвращающая ссылку на ресурс по его имени. Если ресурс в контейнере отсутствует, делается попытка загрузить его из файла.
Возвращаемое значение:
Ссылка на ресурс, если он присутствовал в контейнере или успешно загрузился.
null
, если загрузить файл ресурса не удалось. -
void
перезагрузить
(string[]загружаемые_имена_ресурсов
);Функция, загружающая в контейнер несколько ресурсов вне зависимости от того, были ли они загружены ранее.
Параметры:
string[]
загружаемые_имена_ресурсов
массив имён ресурсов, которые требуется загрузить
-