OSDN Git Service

補強増設装備スロットに装備可能なアイテムを通常装備すると短縮名称が表示される問題を解消
authormasakih <masakih@users.sourceforge.jp>
Fri, 23 Oct 2015 15:17:56 +0000 (00:17 +0900)
committermasakih <masakih@users.sourceforge.jp>
Fri, 23 Oct 2015 15:17:56 +0000 (00:17 +0900)
HMSlotItemShortNameTransformerクラスを追加

KCD.xcodeproj/project.pbxproj
KCD/HMSlotItemShortNameTransformer.h [new file with mode: 0644]
KCD/HMSlotItemShortNameTransformer.m [new file with mode: 0644]
KCD/ja.lproj/SlotItemShortName.plist

index 88cef3e..ba387db 100644 (file)
@@ -71,6 +71,7 @@
                F46F104118A9B85E0063E503 /* HMJSONNode.m in Sources */ = {isa = PBXBuildFile; fileRef = F46F104018A9B85E0063E503 /* HMJSONNode.m */; };
                F46F104518AA50730063E503 /* HMBroserWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F46F104318AA50730063E503 /* HMBroserWindowController.m */; };
                F46F104918ABAC910063E503 /* KCD.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = F46F104718ABAC910063E503 /* KCD.xcdatamodeld */; };
+               F46FCB291BD933C600304DE7 /* HMSlotItemShortNameTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F46FCB281BD933C600304DE7 /* HMSlotItemShortNameTransformer.m */; };
                F47178471B6DE9F400F5E59D /* HMMapAreaTransformaer.m in Sources */ = {isa = PBXBuildFile; fileRef = F47178461B6DE9F400F5E59D /* HMMapAreaTransformaer.m */; };
                F471784A1B6F9B5600F5E59D /* ResourceHistory.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = F47178481B6F9B5600F5E59D /* ResourceHistory.xcdatamodeld */; };
                F471784D1B6FA18800F5E59D /* HMKCResource.m in Sources */ = {isa = PBXBuildFile; fileRef = F471784C1B6FA18800F5E59D /* HMKCResource.m */; };
                F46F104218AA50730063E503 /* HMBroserWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMBroserWindowController.h; sourceTree = "<group>"; };
                F46F104318AA50730063E503 /* HMBroserWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMBroserWindowController.m; sourceTree = "<group>"; };
                F46F104818ABAC910063E503 /* KCD.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = KCD.xcdatamodel; sourceTree = "<group>"; };
+               F46FCB271BD933C600304DE7 /* HMSlotItemShortNameTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMSlotItemShortNameTransformer.h; sourceTree = "<group>"; };
+               F46FCB281BD933C600304DE7 /* HMSlotItemShortNameTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMSlotItemShortNameTransformer.m; sourceTree = "<group>"; };
                F47178451B6DE9F400F5E59D /* HMMapAreaTransformaer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMapAreaTransformaer.h; sourceTree = "<group>"; };
                F47178461B6DE9F400F5E59D /* HMMapAreaTransformaer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMapAreaTransformaer.m; sourceTree = "<group>"; };
                F47178491B6F9B5600F5E59D /* ResourceHistory.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = ResourceHistory.xcdatamodel; sourceTree = "<group>"; };
                                F4D6BCAF1AA2A97200742FEB /* HMLengTransformer.m */,
                                F4D6BCB11AA2B18100742FEB /* HMSlotitemNameTransformer.h */,
                                F4D6BCB21AA2B18100742FEB /* HMSlotitemNameTransformer.m */,
+                               F46FCB271BD933C600304DE7 /* HMSlotItemShortNameTransformer.h */,
+                               F46FCB281BD933C600304DE7 /* HMSlotItemShortNameTransformer.m */,
                                F4D6BCB41AA2C10700742FEB /* HMHideEquipNumberTransformer.h */,
                                F4D6BCB51AA2C10700742FEB /* HMHideEquipNumberTransformer.m */,
                                F4666C5C1B242124001840DB /* HMQuestProgressTransformer.h */,
                                F4131ED5190F63D8004F7F9A /* HMUpdateSlotItemCommand.m in Sources */,
                                F4C1190518A71AEA005D5B25 /* HMJSONReciever.m in Sources */,
                                F44AB24119E8252600F217AF /* HMKCSlotItemObject+Extensions.m in Sources */,
+                               F46FCB291BD933C600304DE7 /* HMSlotItemShortNameTransformer.m in Sources */,
                                F4A3AD82199F529700FDBF80 /* HMCombinedBattleCommand.m in Sources */,
                                F4AA05FE192B932E00844688 /* HMTemporaryDataStore.m in Sources */,
                                F4B37EFD19FC8D98002F371A /* HMUpgradableShipsWindowController.m in Sources */,
diff --git a/KCD/HMSlotItemShortNameTransformer.h b/KCD/HMSlotItemShortNameTransformer.h
new file mode 100644 (file)
index 0000000..f5de522
--- /dev/null
@@ -0,0 +1,13 @@
+//
+//  HMSlotItemShortNameTransformer.h
+//  KCD
+//
+//  Created by Hori,Masaki on 2015/10/23.
+//  Copyright (c) 2015年 Hori,Masaki. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface HMSlotItemShortNameTransformer : NSValueTransformer
+
+@end
diff --git a/KCD/HMSlotItemShortNameTransformer.m b/KCD/HMSlotItemShortNameTransformer.m
new file mode 100644 (file)
index 0000000..a848026
--- /dev/null
@@ -0,0 +1,76 @@
+//
+//  HMSlotItemShortNameTransformer.m
+//  KCD
+//
+//  Created by Hori,Masaki on 2015/10/23.
+//  Copyright (c) 2015年 Hori,Masaki. All rights reserved.
+//
+
+#import "HMSlotItemShortNameTransformer.h"
+
+#import "HMServerDataStore.h"
+
+#import "HMKCSlotItemObject+Extensions.h"
+#import "HMKCMasterSlotItemObject.h"
+
+static NSDictionary *slotItemShortName = nil;
+
+@implementation HMSlotItemShortNameTransformer
++ (void)load
+{
+       static dispatch_once_t onceToken;
+       dispatch_once(&onceToken, ^{
+               [NSValueTransformer setValueTransformer:[self new] forName:@"HMSlotItemShortNameTransformer"];
+               
+               NSBundle *mainBundle = [NSBundle mainBundle];
+               NSString *path = [mainBundle pathForResource:@"SlotItemShortName" ofType:@"plist"];
+               if(!path) {
+                       NSLog(@"Could not find SlotItemShortName.plist");
+                       NSBeep();
+                       return;
+               }
+               id dict = [NSDictionary dictionaryWithContentsOfFile:path];
+               if(!dict) {
+                       NSLog(@"SlotItemShortName.plist is not dictionay.");
+                       NSBeep();
+                       return;
+               }
+               slotItemShortName = dict;
+       });
+}
+
++ (Class)transformedValueClass
+{
+       return [NSString class];
+}
++ (BOOL)allowsReverseTransformation
+{
+       return NO;
+}
+
+- (id)transformedValue:(id)value
+{
+       if(![value isKindOfClass:[NSNumber class]]) return nil;
+       NSInteger slotItemID = [value integerValue];
+       if(slotItemID == -1) return nil;
+       if(slotItemID == 0) return nil;
+       
+       HMServerDataStore *store = [HMServerDataStore defaultManager];
+       
+       NSError *error = nil;
+       NSArray *array = [store objectsWithEntityName:@"SlotItem"
+                                                                                       error:&error
+                                                                 predicateFormat:@"id = %@", value];
+       if([array count] == 0) {
+               NSLog(@"SlotItem is invalid.");
+               return nil;
+       }
+       
+       HMKCSlotItemObject *slotItem = array[0];
+       NSString *mstIDString = [slotItem.master_slotItem.id stringValue];
+       NSString *shortName = slotItemShortName[mstIDString];
+       if(shortName) return shortName;
+       
+       return [slotItem.name copy];
+}
+@end
index 4de9528..a89ee5c 100644 (file)
@@ -8,5 +8,7 @@
        <string>女神</string>
        <key>145</key>
        <string>糧食</string>
+       <key>150</key>
+       <string>秋缶</string>
 </dict>
 </plist>