X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=Config.m;h=189773436a41c7af148000a5834d65aafffa7d6a;hp=fcc18283a8230b959fd6bfe1c60c7d34e7b5f963;hb=f864d363128de19fc6591b77ae9226b34166d715;hpb=3dfe18e6224331f1161ddcc057f755d41ff55266 diff --git a/Config.m b/Config.m index fcc1828..1897734 100644 --- a/Config.m +++ b/Config.m @@ -7,31 +7,39 @@ #import "Config.h" -@implementation Config { - NSMutableDictionary *entries; -} +#import "NJInput.h" -@synthesize name; -@synthesize entries; +@implementation Config -- (id)init { +- (id)initWithName:(NSString *)name { if ((self = [super init])) { - entries = [[NSMutableDictionary alloc] init]; + self.name = name ? name : @"Untitled"; + _entries = [[NSMutableDictionary alloc] init]; } return self; } -- (Target *)objectForKeyedSubscript:(JSAction *)action { - return action ? entries[action.uid] : nil; +- (Target *)objectForKeyedSubscript:(NJInput *)input { + return input ? _entries[input.uid] : nil; } -- (void)setObject:(Target *)target forKeyedSubscript:(JSAction *)action { - if (action) { +- (void)setObject:(Target *)target forKeyedSubscript:(NJInput *)input { + if (input) { if (target) - entries[action.uid] = target; + _entries[input.uid] = target; else - [entries removeObjectForKey:action.uid]; + [_entries removeObjectForKey:input.uid]; + } +} + +- (NSDictionary *)serialize { + NSMutableDictionary* cfgEntries = [[NSMutableDictionary alloc] initWithCapacity:_entries.count]; + for (id key in _entries) { + id serialized = [_entries[key] serialize]; + if (serialized) + cfgEntries[key] = serialized; } + return @{ @"name": _name, @"entries": cfgEntries }; } @end