|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Заставить FD вкомпилировать все классы из указанного пакета
Знаю, что где-то подобная тема была, но что-то не могу найти. Собственно вопрос: как заставить FD (или компилятор через FD) компилировать даже те классы, которые нигде не импортированы и никак не упоминаются. Нужно, чтобы getDefinitionByName() работал без упоминания классов в проекте.
Уже весь нет перерыл, и на форуме FD тему создал. Пока безрезультатно |
|
|||||
Нет, они просто текстовые
Я постоянно забываю упомянуть какой-нибудь новый класс в проекте, и получаю рантайм ошибку при попытке создать объект на его основе. У меня в игре в описании локаций прописаны текстовые пакеты и классы объектов, которые должны использоваться в той или иной локации. Это конечно не принципиально, но хотелось бы автоматизировать процесс |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Можно в project properties->build->pre-build с помощью .bat файла например генерировать .as файл с упоминанием всех классов.
|
|
|||||
Цитата:
Эти классы не используются нигде сразу, а должны быть доступны исплючительно по требованию Цитата:
|
|
|||||
Использовать что-нибудь типа фабрики и энумератора типа объектов? Не тащить классы в данные, а вместо этого хранить тип объекта по которому генерить объект нужного класса. Так классы не потеряешь и данные чистые. При этом инфа о конкретных классах будет только внутри фабрики.
Хотя это оффтоп по теме
__________________
Будь проще. |
|
|||||
Собственно, у меня так и есть. Но в том то и проблема, что туда надо указывать вновь созданные классы и удалять убранные вручную. Я забываю это делать, и это уже напрягает)
Я хочу, чтобы я создавал новый класс в определенной директории, и ничего больше не делая собирал проект, а он уже был туда вкомпилирован. Я уже почти написал батник, как посоветовал callme, но что-то не могу разобраться как мне получить именно имена файлов в директории, а не полные пути к ним. Видимо придется забить на батч, и написать это на си шарпе) Добавлено через 1 час 10 минут Все, вопрос решен. Написал батник гененирующий что-то типа энумератора. callme, спасибо за идею Собственно, кому интересно, сам батник такой set DIR=%~dp0 set OUTPUT_FILE_NAME=com\untitledproject\game\levels\ClassDefinitions.as set OBSTACLES_DIR=%DIR%com\untitledproject\game\view\obstacles set ENEMIES_DIR=%DIR%com\untitledproject\game\view\characters\enemies set BOSSESS_DIR=%DIR%com\untitledproject\game\view\characters\enemies\bosses set NPC_DIR=%DIR%com\untitledproject\game\view\characters\npc set EXTENSION=.as set OUTPUT_FILE=%DIR%\%OUTPUT_FILE_NAME% set PACKAGE=package com.untitledproject.game.levels { set CLASS= public class ClassDefinitions { set CONSTRUCTOR= public function ClassDefinitions() { @echo off @echo %PACKAGE%> %OUTPUT_FILE% @echo import com.untitledproject.game.view.obstacles.*; >> %OUTPUT_FILE% @echo import com.untitledproject.game.view.characters.enemies.*; >> %OUTPUT_FILE% @echo import com.untitledproject.game.view.characters.enemies.bosses.*; >> %OUTPUT_FILE% @echo import com.untitledproject.game.view.characters.npc.*; >> %OUTPUT_FILE% @echo. >> %OUTPUT_FILE% @echo %CLASS%>> %OUTPUT_FILE% @echo %CONSTRUCTOR%>> %OUTPUT_FILE% for %%i in ( %OBSTACLES_DIR%\*%EXTENSION%) do ( echo %%~ni >> %OUTPUT_FILE%; ) for %%i in ( %ENEMIES_DIR%\*%EXTENSION%) do ( echo %%~ni >> %OUTPUT_FILE%; ) for %%i in ( %BOSSESS_DIR%\*%EXTENSION%) do ( echo %%~ni >> %OUTPUT_FILE%; ) for %%i in ( %NPC_DIR%\*%EXTENSION%) do ( echo %%~ni >> %OUTPUT_FILE%; ) @echo }>> %OUTPUT_FILE% @echo }>> %OUTPUT_FILE% @echo }>> %OUTPUT_FILE% exit; Батник называется FileImporter.bat и лежит в директории src проекта. А в project - build - pre-build добавил следующий код Все работает как по маслу) Последний раз редактировалось caseyryan; 30.11.2015 в 21:18. |
|
|||||
Я не особый специалист по батникам Код тут достаточно примитивный, уверен, что его можно написать гораздо лучше. Но мою задачу он выполняет, и мне этого достаточно
|
Часовой пояс GMT +4, время: 08:57. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|