X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=TargetConfig.m;h=0f892c68681ac939695a57089538bc903c1cf06b;hp=763bbac7157001ff217aad3fc06f07da458a57f3;hb=e2a4d830dd9817f6a515a3b1b6aa152d3bb98c2b;hpb=c6fb77859e508aaef686b7a5a6a12abe29178708 diff --git a/TargetConfig.m b/TargetConfig.m index 763bbac..0f892c6 100644 --- a/TargetConfig.m +++ b/TargetConfig.m @@ -8,30 +8,37 @@ #import "TargetConfig.h" #import "ApplicationController.h" -#import "Config.h" -#import "ConfigsController.h" +#import "NJMapping.h" +#import "NJMappingsController.h" @implementation TargetConfig -- (NSString *)stringify { - return [[NSString alloc] initWithFormat: @"cfg~%@", self.config.name]; ++ (NSString *)serializationCode { + return @"mapping"; } -+ (TargetConfig *)unstringifyImpl:(NSArray *)comps withConfigList:(NSArray *)configs { - NSString *name = comps[1]; +- (NSDictionary *)serialize { + return _mapping + ? @{ @"type": @"mapping", @"name": _mapping.name } + : nil; +} + ++ (TargetConfig *)targetDeserialize:(NSDictionary *)serialization + withMappings:(NSArray *)mappings { + NSString *name = serialization[@"name"]; TargetConfig *target = [[TargetConfig alloc] init]; - for (Config *config in configs) { - if ([config.name isEqualToString:name]) { - target.config = config; + for (NJMapping *mapping in mappings) { + if ([mapping.name isEqualToString:name]) { + target.mapping = mapping; return target; } } - NSLog(@"Warning: couldn't find matching config to restore from: %@", name); return nil; } - (void)trigger { - [[(ApplicationController *)[[NSApplication sharedApplication] delegate] configsController] activateConfig:self.config]; + ApplicationController *ctrl = NSApplication.sharedApplication.delegate; + [ctrl.mappingsController activateMapping:_mapping]; } @end