X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=Config.m;h=046ccc2c6fa22980952d76ab84f0b59c76bea1a6;hp=84e6c324a782a09f22fba76fc41f4e6ef38c2c83;hb=0238d141f06420e1a73eccd14ca73a7e29ad2a69;hpb=c6fb77859e508aaef686b7a5a6a12abe29178708 diff --git a/Config.m b/Config.m index 84e6c32..046ccc2 100644 --- a/Config.m +++ b/Config.m @@ -9,31 +9,37 @@ #import "JSAction.h" -@implementation Config { - NSMutableDictionary *entries; -} - -@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; + return action ? _entries[action.uid] : nil; } - (void)setObject:(Target *)target forKeyedSubscript:(JSAction *)action { if (action) { if (target) - entries[action.uid] = target; + _entries[action.uid] = target; else - [entries removeObjectForKey:action.uid]; + [_entries removeObjectForKey:action.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