generator-x2mod
Version:
A Yeoman generator that creates a XCOM 2 mods. Community maintained to free the masses from ModBuddy!
49 lines (41 loc) • 1.79 kB
JavaScript
const Generator = require('yeoman-generator');
const ModConfigService = require('../../services/service.modConfig');
const ModFilesService = require('../../services/service.modFiles');
const SafeNameService = require('../../services/service.safeName');
require('../../lib/extensions.generator');
module.exports = class extends Generator {
constructor(args, opts) {
super(args, opts);
}
initializing() {
this.modConfigService = new ModConfigService(this.createModConfigContext());
}
prompting() {
return this.prompt({
type: 'input',
name: 'voiceFriendlyName',
message: 'What\'s the friendly name of the voice you\'re adding? This\'ll appear in-game, so make it awesome!',
default: 'Donald Duck'
}).then(answers => {
this.voiceConfig = answers;
let safeNameService = new SafeNameService();
this.voiceConfig.voiceSafeName = safeNameService.createSafeNameFrom(this.voiceConfig.voiceFriendlyName);
});
}
writing() {
let modFilesService = new ModFilesService(this, this.modConfigService);
modFilesService.copyConfigTemplate('XComContent.ini', {
modSafeName: this.modConfigService.getSafeName(),
voiceSafeName: this.voiceConfig.voiceSafeName
});
modFilesService.copyLocalizationFile({
modSafeName: this.modConfigService.getSafeName(),
voiceFriendlyName: this.voiceConfig.voiceFriendlyName,
voiceSafeName: this.voiceConfig.voiceSafeName
});
modFilesService.copyContentFile(
'ModSafeName_VoiceSafeName.upk',
`${this.modConfigService.getSafeName()}_${this.voiceConfig.voiceSafeName}.upk`
);
}
}