X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=Config.m;h=55162b081baa3270f35037fe0c00caed42bd18e2;hp=f62c40fdf49a1571442bd25becb1ffd9f7bd13ac;hb=d442b81606d83ebf913f43d7c3fc5c885c0bbe30;hpb=e68c19b5923618b763543c74bf8dd6f85d4d323e diff --git a/Config.m b/Config.m index f62c40f..55162b0 100644 --- a/Config.m +++ b/Config.m @@ -7,23 +7,36 @@ #import "Config.h" -@implementation Config +#import "JSAction.h" -@synthesize protect, name, 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; } -- (void)setTarget:(Target *)target forAction:(JSAction *)jsa { - entries[[jsa stringify]] = target; +- (Target *)objectForKeyedSubscript:(JSAction *)action { + return action ? _entries[action.uid] : nil; +} + +- (void)setObject:(Target *)target forKeyedSubscript:(JSAction *)action { + if (action) { + if (target) + _entries[action.uid] = target; + else + [_entries removeObjectForKey:action.uid]; + } } -- (Target *)getTargetForAction:(JSAction *)jsa { - return entries[[jsa stringify]]; +- (NSDictionary *)serialize { + NSMutableDictionary* cfgEntries = [[NSMutableDictionary alloc] initWithCapacity:_entries.count]; + for (id key in _entries) + cfgEntries[key] = [_entries[key] serialize]; + return @{ @"name": _name, @"entries": cfgEntries }; } @end