diff --git a/Classes/IJInventoryItem.h b/Classes/IJInventoryItem.h index 3bfd510..5ea1cdb 100644 --- a/Classes/IJInventoryItem.h +++ b/Classes/IJInventoryItem.h @@ -20,12 +20,12 @@ @interface IJInventoryItem : NSObject { int16_t itemId; int16_t damage; - int8_t count; + uint8_t count; int8_t slot; } @property (nonatomic, assign) int16_t itemId; @property (nonatomic, assign) int16_t damage; -@property (nonatomic, assign) int8_t count; +@property (nonatomic, assign) uint8_t count; @property (nonatomic, assign) int8_t slot; @property (nonatomic, readonly) NSString *itemName; diff --git a/Classes/IJInventoryItem.m b/Classes/IJInventoryItem.m index 0225c22..900b30e 100644 --- a/Classes/IJInventoryItem.m +++ b/Classes/IJInventoryItem.m @@ -69,12 +69,18 @@ if (itemId <= 94) { - if (itemId <= 17) + if (itemId <= 17){ index = itemId - 1; // first item is 1 - else if (itemId <= 35 ) + } + else if (itemId <= 34 ){ index = itemId + 1; - else if (itemId >= 37) + } + else if (itemId == 35 ){ + index = itemId - 8; + } + else if (itemId >= 37){ index = itemId + 6; + } atlasOffset = NSMakePoint(36, 75); } else if (itemId >= 256 && itemId <= 351) diff --git a/Classes/IJInventoryWindowController.h b/Classes/IJInventoryWindowController.h index 1b131d9..433463e 100644 --- a/Classes/IJInventoryWindowController.h +++ b/Classes/IJInventoryWindowController.h @@ -19,7 +19,7 @@ IJMinecraftLevel *player; /***< SMP Player.dat file use same format as level.dat */ NSArray *inventory; - NSSegmentedControl *worldSelectionControl; + NSPopUpButton *worldSelectionControl; NSTextField *statusTextField; IJInventoryView *inventoryView; @@ -49,15 +49,13 @@ NSString *loadedPlayer; } -@property (nonatomic, assign) IBOutlet NSSegmentedControl *worldSelectionControl; +@property (nonatomic, assign) IBOutlet NSPopUpButton *worldSelectionControl; @property (nonatomic, assign) IBOutlet NSTextField *statusTextField; @property (nonatomic, assign) IBOutlet IJInventoryView *inventoryView; @property (nonatomic, assign) IBOutlet IJInventoryView *quickView; @property (nonatomic, assign) IBOutlet IJInventoryView *armorView; @property (nonatomic, assign) IBOutlet NSSearchField *itemSearchField; @property (nonatomic, assign) IBOutlet NSTableView *itemTableView; -@property (nonatomic, assign) IBOutlet NSTextField *playerNameTextField; - @property (nonatomic, retain) NSNumber *worldTime; @property (nonatomic, retain) NSString *playerName; @@ -69,4 +67,13 @@ - (IBAction)makeSearchFieldFirstResponder:(id)sender; - (IBAction)itemTableViewDoubleClicked:(id)sender; +- (IBAction)setNextDay:(id)sender; +- (IBAction)setNextNight:(id)sender; +- (IBAction)setNextNoon:(id)sender; +- (IBAction)setNextMidnight:(id)sender; + +- (IBAction)emptyInventory:(id)sender; +- (IBAction)saveInventoryItems:(id)sender; +- (IBAction)loadInventoryItems:(id)sender; + @end diff --git a/Classes/IJInventoryWindowController.m b/Classes/IJInventoryWindowController.m index 8f1d4ae..fec0aa0 100644 --- a/Classes/IJInventoryWindowController.m +++ b/Classes/IJInventoryWindowController.m @@ -12,12 +12,14 @@ #import "IJInventoryView.h" #import "IJItemPropertiesViewController.h" #import "MAAttachedWindow.h" +#import "NSFileManager+DirectoryLocations.h" @interface IJInventoryWindowController () - (void)saveWorld; - (void)loadWorldAtIndex:(int)worldIndex; -- (void)loadWorldAtFolder:(NSString *)worldFolder; - (BOOL)isDocumentEdited; +- (void)loadWorldAtFolder:(NSString *)worldFolder; +- (void)loadWorldSelectionControl; @end @implementation IJInventoryWindowController @@ -30,6 +32,8 @@ - (void)awakeFromNib { + [self loadWorldSelectionControl]; + armorInventory = [[NSMutableArray alloc] init]; quickInventory = [[NSMutableArray alloc] init]; normalInventory = [[NSMutableArray alloc] init]; @@ -47,7 +51,6 @@ keys = [keys sortedArrayUsingSelector:@selector(compare:)]; allItemIds = [[NSArray alloc] initWithArray:keys]; filteredItemIds = [allItemIds retain]; - [itemTableView setTarget:self]; [itemTableView setDoubleAction:@selector(itemTableViewDoubleClicked:)]; } @@ -72,7 +75,7 @@ { if (returnCode == NSAlertOtherReturn) // Cancel { - [worldSelectionControl setSelectedSegment:loadedWorldIndex-1]; + [worldSelectionControl selectItemWithTitle:[loadedWorldFolder lastPathComponent]]; return; } @@ -124,11 +127,26 @@ [self didChangeValueForKey:@"worldTime"]; statusTextField.stringValue = @"No world loaded."; - - NSString *levelPath = [IJMinecraftLevel pathForLevelDatAtFolder:worldPath]; - - NSData *fileData = [NSData dataWithContentsOfURL:[NSURL fileURLWithPath:levelPath]]; + NSString *levelPath = [IJMinecraftLevel pathForLevelDatAtFolder:worldPath]; + NSData *fileData = [NSData dataWithContentsOfURL:[NSURL fileURLWithPath:levelPath]]; + + sessionLockValue = [IJMinecraftLevel writeToSessionLockAtFolder:worldPath]; + if (![IJMinecraftLevel checkSessionLockAtFolder:worldPath value:sessionLockValue]) + { + NSBeginCriticalAlertSheet(@"Error loading world.", @"Dismiss", nil, nil, self.window, nil, nil, nil, nil, @"Inside Job was unable obtain the session lock."); + return; + } + + if (!fileData) + { + // Error loading + NSBeginCriticalAlertSheet(@"Error loading world.", @"Dismiss", nil, nil, self.window, nil, nil, nil, nil, @"InsideJob was unable to load the level at %@.", levelPath); + return; + } + [self willChangeValueForKey:@"worldTime"]; + + /* Now search for first player .dat file (but by default try to load from level.dat */ if (!fileData) { // Error loading @@ -141,7 +159,6 @@ /* Now search for first player .dat file (but by default try to load from level.dat */ #if 1 loadedPlayer = nil; - NSString *playerPath = [IJMinecraftLevel pathForPlayer:loadedPlayer withWorld:worldPath]; #else NSString *playerPath = [worldPath stringByAppendingString:@"/players/Godzil.dat"]; @@ -200,6 +217,10 @@ [self setDocumentEdited:NO]; statusTextField.stringValue = @""; loadedWorldFolder = [worldPath retain]; + + NSLog(@"%@",loadedWorldFolder); + NSLog(@"%@",worldPath); + } - (void)loadWorldAtIndex:(int)worldIndex @@ -214,7 +235,7 @@ - (void)saveWorld { NSString *worldPath = loadedWorldFolder; - + if (inventory == nil) return; // no world loaded, nothing to save @@ -337,40 +358,88 @@ { int worldIndex = [sender tag]; [self loadWorldAtIndex:worldIndex]; - [worldSelectionControl setSelectedSegment:worldIndex - 1]; + [worldSelectionControl selectItemWithTitle:[loadedWorldFolder lastPathComponent]]; } - (IBAction)menuSelectWorldFromPath:(id)sender { - NSInteger openResult; - /* Ask user for world folder path */ - NSOpenPanel *panel = [NSOpenPanel openPanel]; - NSString *worldPath; - - /* Only allow to choose a folder */ - [panel setCanChooseDirectories:YES]; - [panel setCanChooseFiles:NO]; - openResult = [panel runModal]; - - if (openResult == NSOKButton) - { - worldPath = [[panel directoryURL] path]; + NSInteger openResult; + /* Ask user for world folder path */ + NSOpenPanel *panel = [NSOpenPanel openPanel]; + NSString *worldPath; - /* Verify for level.dat */ - if (![IJMinecraftLevel worldExistsAtFolder: worldPath]) - { - NSBeginCriticalAlertSheet(@"No world exists in that slot.", @"Dismiss", nil, nil, self.window, nil, nil, nil, nil, @"Please create a new single player world in this slot using Minecraft and try again."); - return; - } - /* Now try to open the world... */ - [self loadWorldAtFolder:[[panel directoryURL] path]]; - } + /* Only allow to choose a folder */ + [panel setCanChooseDirectories:YES]; + [panel setCanChooseFiles:NO]; + openResult = [panel runModal]; + + if (openResult == NSOKButton) + { + worldPath = [[panel directoryURL] path]; + + /* Verify for level.dat */ + if (![IJMinecraftLevel worldExistsAtFolder: worldPath]) + { + NSBeginCriticalAlertSheet(@"No world exists in that slot.", @"Dismiss", nil, nil, self.window, nil, nil, nil, nil, @"Please create a new single player world in this slot using Minecraft and try again."); + return; + } + /* Now try to open the world... */ + [self loadWorldAtFolder:[[panel directoryURL] path]]; + [worldSelectionControl addItemWithTitle:[loadedWorldFolder lastPathComponent]]; + [worldSelectionControl selectItemWithTitle:[loadedWorldFolder lastPathComponent]]; + + } } - (IBAction)worldSelectionChanged:(id)sender { - int worldIndex = [worldSelectionControl selectedSegment] + 1; - [self loadWorldAtIndex:worldIndex]; + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); + NSString *path = [paths objectAtIndex:0]; + path = [path stringByAppendingPathComponent:@"minecraft"]; + path = [path stringByAppendingPathComponent:@"saves"]; + + + NSString* worldName = [worldSelectionControl titleOfSelectedItem]; + NSString* worldPath = [path stringByAppendingPathComponent:worldName]; + + NSLog(@"loadedWorldFolder: %@",loadedWorldFolder); + NSLog(@"worldName: %@",worldName); + NSLog(@"worldPath: %@",worldPath); + + [self loadWorldAtFolder:worldPath]; +} + +- (void)loadWorldSelectionControl +{ + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); + NSString *path = [paths objectAtIndex:0]; + path = [path stringByAppendingPathComponent:@"minecraft"]; + path = [path stringByAppendingPathComponent:@"saves"]; + + + NSFileManager *filemgr; + NSArray *filelist; + NSError *fileError; + int count; + int i; + + filemgr = [NSFileManager defaultManager]; + + filelist = [filemgr contentsOfDirectoryAtPath:path error:&fileError]; + + count = [filelist count]; + + + [worldSelectionControl removeAllItems]; + for (i = 0; i < count; i++) + { + NSLog (@"%@", [filelist objectAtIndex: i]); + if([IJMinecraftLevel worldExistsAtFolder:[path stringByAppendingPathComponent:[filelist objectAtIndex: i]]]) + [worldSelectionControl addItemWithTitle:[filelist objectAtIndex: i]]; + } + + [filemgr release]; + } - (void)saveDocument:(id)sender @@ -401,10 +470,12 @@ return YES; } + - (NSNumber *)worldTime { return [level worldTimeContainer].numberValue; } + - (void)setWorldTime:(NSNumber *)number { [self willChangeValueForKey:@"worldTime"]; @@ -415,13 +486,143 @@ - (NSString *)playerName { - return [level ].numberValue; + return @"Godzil"; } - (void)setPlayerName:(NSString *)playerName { - } +- (void)calcTimePoints:(int)number +{ + int result; + int wTime = [[self worldTime] intValue]; + result =wTime +(number - (wTime % number)); + + NSNumber *newTime = [NSNumber numberWithInt:result]; + [self setWorldTime:newTime]; +} + +- (IBAction)setNextDay:(id)sender +{ + int number = 24000; + [self calcTimePoints:number]; +} + +- (IBAction)setNextNight:(id)sender +{ + int number = 12000; + [self calcTimePoints:number]; +} + +- (IBAction)setNextMidnight:(id)sender +{ + int number = 18000; + [self calcTimePoints:number]; +} + +- (IBAction)setNextNoon:(id)sender +{ + int number = 6000; + [self calcTimePoints:number]; +} + +- (void)clearInventory{ + + [armorInventory removeAllObjects]; + [quickInventory removeAllObjects]; + [normalInventory removeAllObjects]; + + [inventoryView setItems:normalInventory]; + [quickView setItems:quickInventory]; + [armorView setItems:armorInventory]; + + [self setDocumentEdited:YES]; +} + +- (void)saveInventory +{ + + NSString *path = [[NSFileManager defaultManager] applicationSupportDirectory]; + NSLog(@"%@",path); + NSString *file = @"Inventory.plist"; + + + NSString *InventoryPath = [path stringByAppendingPathComponent:file]; + + NSLog(@"%@",InventoryPath); + + + NSMutableArray *newInventory = [NSMutableArray array]; + + for (NSArray *items in [NSArray arrayWithObjects:armorInventory, quickInventory, normalInventory, nil]) + { + for (IJInventoryItem *item in items) + { + if (item.count > 0 && item.itemId > 0) + [newInventory addObject:item]; + } + } + + [NSKeyedArchiver archiveRootObject: newInventory toFile:InventoryPath]; +} + +-(void)loadInventory +{ + NSString *path = [[NSFileManager defaultManager] applicationSupportDirectory]; + NSString *file = @"Inventory.plist"; + NSString *InventoryPath = [path stringByAppendingPathComponent:file]; + + + [self clearInventory]; + NSArray *newInventory = [NSKeyedUnarchiver unarchiveObjectWithFile:InventoryPath]; + + for (int i = 0; i < IJInventorySlotQuickLast + 1 - IJInventorySlotQuickFirst; i++) + [quickInventory addObject:[IJInventoryItem emptyItemWithSlot:IJInventorySlotQuickFirst + i]]; + + for (int i = 0; i < IJInventorySlotNormalLast + 1 - IJInventorySlotNormalFirst; i++) + [normalInventory addObject:[IJInventoryItem emptyItemWithSlot:IJInventorySlotNormalFirst + i]]; + + for (int i = 0; i < IJInventorySlotArmorLast + 1 - IJInventorySlotArmorFirst; i++) + [armorInventory addObject:[IJInventoryItem emptyItemWithSlot:IJInventorySlotArmorFirst + i]]; + + for (IJInventoryItem *item in newInventory) + { + if (IJInventorySlotQuickFirst <= item.slot && item.slot <= IJInventorySlotQuickLast) + { + [quickInventory replaceObjectAtIndex:item.slot - IJInventorySlotQuickFirst withObject:item]; + } + else if (IJInventorySlotNormalFirst <= item.slot && item.slot <= IJInventorySlotNormalLast) + { + [normalInventory replaceObjectAtIndex:item.slot - IJInventorySlotNormalFirst withObject:item]; + } + else if (IJInventorySlotArmorFirst <= item.slot && item.slot <= IJInventorySlotArmorLast) + { + [armorInventory replaceObjectAtIndex:item.slot - IJInventorySlotArmorFirst withObject:item]; + } + } + + [inventoryView setItems:normalInventory]; + [quickView setItems:quickInventory]; + [armorView setItems:armorInventory]; + +} + +- (IBAction)emptyInventory:(id)sender +{ + [self clearInventory]; +} + +- (IBAction)saveInventoryItems:(id)sender +{ + [self saveInventory]; +} + +- (IBAction)loadInventoryItems:(id)sender +{ + [self loadInventory]; +} + + #pragma mark - #pragma mark IJInventoryViewDelegate @@ -534,6 +735,14 @@ [propertiesWindow setAlphaValue:0.0]; }]; propertiesViewController.item = item; + + if (propertiesViewController.item.damage == -1000){ + [propertiesViewController setState:YES]; + }else { + [propertiesViewController setState:NO]; + } + + [propertiesWindow setPoint:point side:MAPositionRight]; [propertiesWindow makeKeyAndOrderFront:nil]; [propertiesWindow setAlphaValue:1.0]; @@ -649,12 +858,12 @@ NSMutableArray *inventoryArray = [self inventoryArrayWithEmptySlot:&slot]; if (!inventoryArray) return; - + IJInventoryItem *item = [inventoryArray objectAtIndex:slot]; item.itemId = [[filteredItemIds objectAtIndex:[itemTableView selectedRow]] shortValue]; item.count = 1; [self setDocumentEdited:YES]; - + IJInventoryView *invView = [self inventoryViewForItemArray:inventoryArray]; [invView reloadItemAtIndex:slot]; [self inventoryView:invView selectedItemAtIndex:slot]; @@ -715,5 +924,4 @@ return YES; } - @end diff --git a/Classes/IJItemPropertiesViewController.h b/Classes/IJItemPropertiesViewController.h index 9a9638e..a9f82cc 100644 --- a/Classes/IJItemPropertiesViewController.h +++ b/Classes/IJItemPropertiesViewController.h @@ -12,9 +12,11 @@ @interface IJItemPropertiesViewController : NSViewController { IJInventoryItem *item; + IBOutlet NSButton *checkIndestructible; } @property (nonatomic, retain) IJInventoryItem *item; +- (void)setState:(bool)enabel; - (IBAction)closeButton:(id)sender; - +- (IBAction)makeIndestructible:(id)sender; @end diff --git a/Classes/IJItemPropertiesViewController.m b/Classes/IJItemPropertiesViewController.m index 49b9403..39cccf8 100644 --- a/Classes/IJItemPropertiesViewController.m +++ b/Classes/IJItemPropertiesViewController.m @@ -20,4 +20,17 @@ self.item = nil; // Hack to prevent this item as coming up as 'lastItem' if they click again. } +- (IBAction)makeIndestructible:(id)sender +{ + if ([checkIndestructible state] == NSOnState) { + self.item.damage = -1000; + + }else { + self.item.damage = 0; + } +} + +- (void)setState:(bool)enabel{ + [checkIndestructible setState:enabel]; +} @end diff --git a/Classes/IJMinecraftLevel.h b/Classes/IJMinecraftLevel.h index 228b764..abfbfa2 100644 --- a/Classes/IJMinecraftLevel.h +++ b/Classes/IJMinecraftLevel.h @@ -11,20 +11,18 @@ #import "NBTContainer.h" @interface IJMinecraftLevel : NBTContainer { - + } @property (nonatomic, copy) NSArray *inventory; // Array of IJInventoryItem objects. @property (nonatomic, readonly) NBTContainer *worldTimeContainer; + (NSString *)pathForWorldAtIndex:(int)worldIndex; - ++ (BOOL)worldExistsAtFolder:(NSString *)worldPath; + (NSString *)pathForLevelDatAtFolder:(NSString *)worldPath; + (NSString *)pathForSessionLockAtFolder:(NSString *)worldPath; + (NSString *)pathForPlayer:(NSString *)loadedPlayer withWorld:(NSString *)worldPath; -+ (BOOL)worldExistsAtFolder:(NSString *)worldPath; - + (int64_t)writeToSessionLockAtFolder:(NSString *)worldPath; + (BOOL)checkSessionLockAtFolder:(NSString *)worldPath value:(int64_t)checkValue; diff --git a/Classes/IJMinecraftLevel.m b/Classes/IJMinecraftLevel.m index 05f1297..d30d9fc 100644 --- a/Classes/IJMinecraftLevel.m +++ b/Classes/IJMinecraftLevel.m @@ -53,7 +53,7 @@ for (NSArray *listItems in [self inventoryList].children) { IJInventoryItem *invItem = [[IJInventoryItem alloc] init]; - + invItem.itemId = [[self containerWithName:@"id" inArray:listItems].numberValue shortValue]; invItem.count = [[self containerWithName:@"Count" inArray:listItems].numberValue unsignedCharValue]; invItem.damage = [[self containerWithName:@"Damage" inArray:listItems].numberValue shortValue]; @@ -68,7 +68,7 @@ { NSMutableArray *newChildren = [NSMutableArray array]; NBTContainer *inventoryList = [self inventoryList]; - + if (inventoryList.listType != NBTTypeCompound) { // There appears to be a bug in the way Minecraft writes empty inventory lists; it appears to @@ -76,7 +76,7 @@ NSLog(@"%s Fixing inventory list type; was %d.", __PRETTY_FUNCTION__, inventoryList.listType); inventoryList.listType = NBTTypeCompound; } - + for (IJInventoryItem *invItem in newInventory) { NSArray *listItems = [NSArray arrayWithObjects: @@ -158,10 +158,10 @@ NSTimeInterval interval = [now timeIntervalSince1970]; int64_t milliseconds = (int64_t)(interval * 1000.0); // write as number of milliseconds - + NSData *data = [IJMinecraftLevel dataWithInt64:milliseconds]; [data writeToFile:path atomically:YES]; - + return milliseconds; } @@ -169,13 +169,13 @@ { NSString *path = [IJMinecraftLevel pathForSessionLockAtFolder:worldPath]; NSData *data = [NSData dataWithContentsOfFile:path]; - + if (!data) { NSLog(@"Failed to read session lock at %@", path); return NO; } - + int64_t milliseconds = [IJMinecraftLevel int64FromData:data]; return checkValue == milliseconds; } diff --git a/Classes/NSFileManager+DirectoryLocations.h b/Classes/NSFileManager+DirectoryLocations.h new file mode 100644 index 0000000..3b9c178 --- /dev/null +++ b/Classes/NSFileManager+DirectoryLocations.h @@ -0,0 +1,27 @@ +// +// NSFileManager+DirectoryLocations.h +// +// Created by Matt Gallagher on 06 May 2010 +// +// Permission is given to use this source code file, free of charge, in any +// project, commercial or otherwise, entirely at your risk, with the condition +// that any redistribution (in part or whole) of source code must retain +// this copyright and permission notice. Attribution in compiled projects is +// appreciated but not required. +// + +#import + +// +// DirectoryLocations is a set of global methods for finding the fixed location +// directoriess. +// +@interface NSFileManager (DirectoryLocations) + +- (NSString *)findOrCreateDirectory:(NSSearchPathDirectory)searchPathDirectory + inDomain:(NSSearchPathDomainMask)domainMask + appendPathComponent:(NSString *)appendComponent + error:(NSError **)errorOut; +- (NSString *)applicationSupportDirectory; + +@end diff --git a/Classes/NSFileManager+DirectoryLocations.m b/Classes/NSFileManager+DirectoryLocations.m new file mode 100644 index 0000000..d8313e3 --- /dev/null +++ b/Classes/NSFileManager+DirectoryLocations.m @@ -0,0 +1,179 @@ +// +// NSFileManager+DirectoryLocations.m +// +// Created by Matt Gallagher on 06 May 2010 +// +// Permission is given to use this source code file, free of charge, in any +// project, commercial or otherwise, entirely at your risk, with the condition +// that any redistribution (in part or whole) of source code must retain +// this copyright and permission notice. Attribution in compiled projects is +// appreciated but not required. +// + +#import "NSFileManager+DirectoryLocations.h" + +enum +{ + DirectoryLocationErrorNoPathFound, + DirectoryLocationErrorFileExistsAtLocation +}; + +NSString * const DirectoryLocationDomain = @"DirectoryLocationDomain"; + +@implementation NSFileManager (DirectoryLocations) + +// +// findOrCreateDirectory:inDomain:appendPathComponent:error: +// +// Method to tie together the steps of: +// 1) Locate a standard directory by search path and domain mask +// 2) Select the first path in the results +// 3) Append a subdirectory to that path +// 4) Create the directory and intermediate directories if needed +// 5) Handle errors by emitting a proper NSError object +// +// Parameters: +// searchPathDirectory - the search path passed to NSSearchPathForDirectoriesInDomains +// domainMask - the domain mask passed to NSSearchPathForDirectoriesInDomains +// appendComponent - the subdirectory appended +// errorOut - any error from file operations +// +// returns the path to the directory (if path found and exists), nil otherwise +// +- (NSString *)findOrCreateDirectory:(NSSearchPathDirectory)searchPathDirectory + inDomain:(NSSearchPathDomainMask)domainMask + appendPathComponent:(NSString *)appendComponent + error:(NSError **)errorOut +{ + // + // Search for the path + // + NSArray* paths = NSSearchPathForDirectoriesInDomains( + searchPathDirectory, + domainMask, + YES); + if ([paths count] == 0) + { + if (errorOut) + { + NSDictionary *userInfo = + [NSDictionary dictionaryWithObjectsAndKeys: + NSLocalizedStringFromTable( + @"No path found for directory in domain.", + @"Errors", + nil), + NSLocalizedDescriptionKey, + [NSNumber numberWithInteger:searchPathDirectory], + @"NSSearchPathDirectory", + [NSNumber numberWithInteger:domainMask], + @"NSSearchPathDomainMask", + nil]; + *errorOut = + [NSError + errorWithDomain:DirectoryLocationDomain + code:DirectoryLocationErrorNoPathFound + userInfo:userInfo]; + } + return nil; + } + + // + // Normally only need the first path returned + // + NSString *resolvedPath = [paths objectAtIndex:0]; + + // + // Append the extra path component + // + if (appendComponent) + { + resolvedPath = [resolvedPath + stringByAppendingPathComponent:appendComponent]; + } + + // + // Check if the path exists + // + BOOL exists; + BOOL isDirectory; + exists = [self + fileExistsAtPath:resolvedPath + isDirectory:&isDirectory]; + if (!exists || !isDirectory) + { + if (exists) + { + if (errorOut) + { + NSDictionary *userInfo = + [NSDictionary dictionaryWithObjectsAndKeys: + NSLocalizedStringFromTable( + @"File exists at requested directory location.", + @"Errors", + nil), + NSLocalizedDescriptionKey, + [NSNumber numberWithInteger:searchPathDirectory], + @"NSSearchPathDirectory", + [NSNumber numberWithInteger:domainMask], + @"NSSearchPathDomainMask", + nil]; + *errorOut = + [NSError + errorWithDomain:DirectoryLocationDomain + code:DirectoryLocationErrorFileExistsAtLocation + userInfo:userInfo]; + } + return nil; + } + + // + // Create the path if it doesn't exist + // + NSError *error = nil; + BOOL success = [self + createDirectoryAtPath:resolvedPath + withIntermediateDirectories:YES + attributes:nil + error:&error]; + if (!success) + { + if (errorOut) + { + *errorOut = error; + } + return nil; + } + } + + if (errorOut) + { + *errorOut = nil; + } + return resolvedPath; +} + +// +// applicationSupportDirectory +// +// Returns the path to the applicationSupportDirectory (creating it if it doesn't +// exist). +// +- (NSString *)applicationSupportDirectory +{ + NSString *executableName = + [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleExecutable"]; + NSError *error; + NSString *result = + [self + findOrCreateDirectory:NSApplicationSupportDirectory + inDomain:NSUserDomainMask + appendPathComponent:executableName + error:&error]; + if (!result) + { + NSLog(@"Unable to find or create application support directory:\n%@", error); + } + return result; +} + +@end diff --git a/English.lproj/ItemPropertiesView.xib b/English.lproj/ItemPropertiesView.xib index c642369..6d48742 100644 --- a/English.lproj/ItemPropertiesView.xib +++ b/English.lproj/ItemPropertiesView.xib @@ -2,13 +2,13 @@ 1060 - 10F569 - 804 - 1038.29 + 10H574 + 823 + 1038.35 461.00 com.apple.InterfaceBuilder.CocoaPlugin - 804 + 823 YES @@ -43,21 +43,80 @@ 268 YES + + + 268 + {{106, 11}, {21, 21}} + + YES + + 67239424 + 0 + checkIndestructible + + LucidaGrande + 13 + 1044 + + + 1211912703 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + {{8, 13}, {95, 17}} + + YES + + 68288064 + 71304192 + Indestructible: + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + 268 - {{127, 54}, {12, 30}} + {{156, 88}, {13, 20}} YES 67239424 268435456 Button - - LucidaGrande - 13 - 1044 - + -2042347265 129 @@ -74,11 +133,11 @@ 268 - {{74, 9}, {51, 22}} + {{108, 36}, {51, 22}} YES - -1804468671 + 343014977 272630848 @@ -88,6 +147,7 @@ YES allowsFloats formatterBehavior + lenient locale negativeInfinitySymbol nilSymbol @@ -98,17 +158,18 @@ YES + -∞ - + +∞ - #,##0.### - #,##0.### + # + # @@ -142,7 +203,7 @@ . , - YES + NO NO YES @@ -161,17 +222,14 @@ 6 System textColor - - 3 - MAA - + 268 - {{74, 36}, {51, 22}} + {{108, 62}, {51, 22}} YES @@ -237,7 +295,7 @@ 268 - {{3, 11}, {66, 17}} + {{37, 38}, {66, 17}} YES @@ -246,27 +304,14 @@ Damage: - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - + + 268 - {{8, 63}, {120, 14}} + {{8, 92}, {120, 14}} YES @@ -286,7 +331,7 @@ 268 - {{3, 38}, {66, 17}} + {{37, 65}, {66, 17}} YES @@ -300,7 +345,7 @@ - {140, 80} + {174, 109} NSView @@ -372,6 +417,22 @@ 25 + + + makeIndestructible: + + + + 34 + + + + checkIndestructible + + + + 35 + @@ -405,12 +466,14 @@ YES + + + - @@ -516,6 +579,35 @@ + + 26 + + + YES + + + + + + 27 + + + + + 28 + + + YES + + + + checkIndestructible + + + 29 + + + @@ -524,6 +616,7 @@ YES 1.IBEditorWindowLastContentRect 1.IBPluginDependency + 1.IBViewBoundsToFrameTransform 1.WindowOrigin 1.editorWindowContentRectSynchronizationRect 10.IBPluginDependency @@ -531,6 +624,7 @@ 11.IBPluginDependency 12.IBNumberFormatterBehaviorMetadataKey 12.IBNumberFormatterLocalizesFormatMetadataKey + 12.IBNumberFormatterSampleNumberKey 12.IBPluginDependency 17.IBPluginDependency 17.IBViewBoundsToFrameTransform @@ -538,6 +632,12 @@ 22.IBPluginDependency 22.IBViewBoundsToFrameTransform 23.IBPluginDependency + 26.IBPluginDependency + 26.IBViewBoundsToFrameTransform + 27.IBPluginDependency + 28.IBPluginDependency + 28.IBViewBoundsToFrameTransform + 29.IBPluginDependency 3.IBPluginDependency 3.IBViewBoundsToFrameTransform 4.IBPluginDependency @@ -553,21 +653,23 @@ YES - {{550, 448}, {140, 80}} + {{1100, 300}, {174, 109}} com.apple.InterfaceBuilder.CocoaPlugin + {628, 654} {{217, 442}, {480, 272}} com.apple.InterfaceBuilder.CocoaPlugin - P4AAAL+AAABClAAAwjwAAA + P4AAAL+AAABC2AAAwmAAAA com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - P4AAAL+AAABCogAAwo4AAA + P4AAAL+AAABDHAAAwtQAAA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -577,17 +679,27 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - P4AAAL+AAABAQAAAwmQAAA + P4AAAL+AAADAAAAAwfAAAA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - P4AAAL+AAABAQAAAwjAAAA + P4AAAL+AAABC1AAAwfAAAA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - P4AAAL+AAABClAAAwpQAAA + P4AAAL+AAABB2AAAwqQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB2AAAwlwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCxAAAwqgAAA com.apple.InterfaceBuilder.CocoaPlugin @@ -611,7 +723,7 @@ - 25 + 35 @@ -620,19 +732,51 @@ IJItemPropertiesViewController NSViewController - closeButton: - id + YES + + YES + closeButton: + makeIndestructible: + + + YES + id + id + - closeButton: - - closeButton: - id + YES + + YES + closeButton: + makeIndestructible: + + + YES + + closeButton: + id + + + makeIndestructible: + id + + + + + checkIndestructible + NSButton + + + checkIndestructible + + checkIndestructible + NSButton IBProjectSource - IJItemPropertiesViewController.h + Classes/IJItemPropertiesViewController.h @@ -1099,11 +1243,20 @@ YES - InsideJob.xcodeproj + ../InsideJob.xcodeproj 3 - NSStopProgressFreestandingTemplate - {83, 83} + YES + + YES + NSStopProgressFreestandingTemplate + NSSwitch + + + YES + {83, 83} + {15, 15} + diff --git a/English.lproj/MainMenu.xib b/English.lproj/MainMenu.xib index 1948196..8a0123a 100644 --- a/English.lproj/MainMenu.xib +++ b/English.lproj/MainMenu.xib @@ -12,27 +12,25 @@ YES - NSMenu - NSButton - NSCustomObject - NSImageCell - NSTableView - NSCustomView - NSSearchField - NSTextField + NSPopUpButtonCell NSNumberFormatter - NSSearchFieldCell - NSWindowTemplate - NSTextFieldCell - NSButtonCell - NSTableColumn - NSSegmentedControl - NSBox - NSView - NSScrollView - NSSegmentedCell NSScroller NSMenuItem + NSMenu + NSTextFieldCell + NSScrollView + NSPopUpButton + NSBox + NSImageCell + NSSearchField + NSTableView + NSSearchFieldCell + NSCustomView + NSCustomObject + NSView + NSWindowTemplate + NSTextField + NSTableColumn YES @@ -207,89 +205,14 @@ World YES - + Open - + o + 1048576 2147483647 - submenuAction: - - Open - - YES - - - World 1 - 1 - 1048576 - 2147483647 - - - 1 - - - - World 2 - 2 - 1048576 - 2147483647 - - - 2 - - - - World 3 - 3 - 1048576 - 2147483647 - - - 3 - - - - World 4 - 4 - 1048576 - 2147483647 - - - 4 - - - - World 5 - 5 - 1048576 - 2147483647 - - - 5 - - - - YES - YES - - - 2147483647 - - - - - - From Folder - o - 1048576 - 2147483647 - - - - - @@ -419,36 +342,120 @@ - + - View + Tools - 1048576 2147483647 submenuAction: - - View + + Tools YES - - - Show Toolbar - t - 1572864 + + + Inventory + + 2147483647 + + + submenuAction: + + Inventory + + YES + + + Save Inventory + S + 1048576 + 2147483647 + + + + + + Load Inventory + L + 1048576 + 2147483647 + + + + + + Clear Inventory + C + 1048576 + 2147483647 + + + + + + + + + YES + YES + + 2147483647 - - - Customize Toolbar… + + + Time - 1048576 2147483647 + submenuAction: + + Time + + YES + + + Next Sunrise + R + 1048576 + 2147483647 + + + + + + Next Noon + N + 1048576 + 2147483647 + + + + + + Next Nightfall + F + 1048576 + 2147483647 + + + + + + Next Midnight + M + 1048576 + 2147483647 + + + + + @@ -522,6 +529,7 @@ YES + YES InsideJob Help ? 1048576 @@ -552,7 +560,7 @@ 266 - {{303, 369}, {274, 14}} + {{211, 369}, {366, 14}} @@ -593,7 +601,7 @@ {{101, 327}, {85, 19}} - + YES -1804468671 @@ -635,7 +643,7 @@ NaN - + YES YES @@ -675,7 +683,7 @@ MQA - + 6 System textColor @@ -701,24 +709,6 @@ - - - 268 - {{203, 329}, {43, 14}} - - - - YES - - 68288064 - 71435264 - Player : - - - - - - 10 @@ -747,55 +737,6 @@ 0 NO - - - 268 - {{11, 364}, {195, 25}} - - - - YES - - 67239424 - 0 - - LucidaGrande - 13 - 16 - - - - YES - - World 1 - 1 - YES - 0 - - - 2 - 2 - 0 - - - 3 - 3 - 0 - - - 4 - 4 - 0 - - - 5 - 5 - 0 - - - 2 - - 268 @@ -970,7 +911,7 @@ NaN - + @@ -997,6 +938,7 @@ 3 YES + YES @@ -1028,6 +970,7 @@ 3 YES + YES @@ -1122,89 +1065,79 @@ QSAAAEEgAABBmAAAQZgAAA - + - -2147483380 - {{212, 368}, {88, 18}} + 268 + {{11, 363}, {172, 25}} YES - - 67239424 - 0 - SMP World + + -2080244160 + 2048 - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 268 - {{351, 326}, {20, 21}} - - - - YES - - -2080244224 - 134217728 - - - - -2033434369 - 162 - - NSImage - NSUser - + + -2035269377 + 35 400 75 - - - - - 268 - {{251, 327}, {96, 19}} - - - - YES - - -1804468671 - 272761856 - - - LucidaGrande - 11 - 16 + + + Item 1 + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + - - YES - - + YES + + OtherViews + + YES + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 2 + YES + YES + 2 {{7, 11}, {585, 396}} - + {{0, 0}, {1440, 878}} {1e+13, 1e+13} @@ -1327,22 +1260,6 @@ 364 - - - runToolbarCustomizationPalette: - - - - 365 - - - - toggleToolbarShown: - - - - 366 - hide: @@ -1423,22 +1340,6 @@ 593 - - - worldSelectionControl - - - - 603 - - - - worldSelectionChanged: - - - - 604 - value: worldTime @@ -1537,75 +1438,83 @@ - menuSelectWorld: + setNextDay: - + - 680 + 705 - menuSelectWorld: + setNextNight: - + - 681 + 708 - menuSelectWorld: + setNextMidnight: - + - 682 + 710 - menuSelectWorld: + setNextNoon: - + - 683 + 712 - menuSelectWorld: + saveInventoryItems: - + - 684 + 719 - - delegate - - + + emptyInventory: + + - 685 + 720 + + + + loadInventoryItems: + + + + 722 menuSelectWorldFromPath: - + - 694 + 731 - - value: playerName - - - - - - value: playerName - value - playerName - 2 - + + worldSelectionChanged: + + - 710 + 740 + + + + worldSelectionControl + + + + 741 @@ -1644,8 +1553,8 @@ - + @@ -1685,27 +1594,6 @@ - - 81 - - - YES - - - - - - - - 75 - - - - - 112 - - - 205 @@ -1879,35 +1767,6 @@ - - 295 - - - YES - - - - - - 296 - - - YES - - - - - - - 297 - - - - - 298 - - - 371 @@ -1923,8 +1782,6 @@ YES - - @@ -1932,10 +1789,8 @@ - - - - + + @@ -2033,20 +1888,6 @@ - - 600 - - - YES - - - - - - 601 - - - 641 @@ -2054,6 +1895,7 @@ YES + Inventory View 643 @@ -2173,119 +2015,175 @@ - 672 - + 81 + YES - + + + + + + + 112 + - 673 - - - YES - - - - - - - - - - - - 674 - - - - - 676 - - - - - 677 - - - - - 678 - - - - - 679 - - - - - 692 - - - - - 693 - - - - - 695 - - - YES - - - + 75 + + 696 - - - - - 698 - + YES - + - + - 699 - - - - - 705 - + 701 + YES - + + + - + + + + 713 + + + + + 723 + + + YES + + + + + + 724 + + + YES + + + + + + + + 714 + + + + + 721 + + + + + 717 + + + + + 726 + + + YES + + + + + + 727 + + + YES + + + + + + + + + 702 + + + + + 711 + + 706 - - + + - 707 - + 709 + + + + + 732 + YES - + - 708 - - + 733 + + + YES + + + + + + 734 + + + YES + + + + + + + + 735 + + + + + 736 + + + + + 737 + + + + + 730 + + @@ -2356,12 +2254,6 @@ 29.ImportedFromIB2 29.WindowOrigin 29.editorWindowContentRectSynchronizationRect - 295.IBPluginDependency - 296.IBEditorWindowLastContentRect - 296.IBPluginDependency - 296.editorWindowContentRectSynchronizationRect - 297.IBPluginDependency - 298.IBPluginDependency 371.IBEditorWindowLastContentRect 371.IBPluginDependency 371.IBWindowTemplateEditedContentRect @@ -2397,10 +2289,6 @@ 597.IBViewBoundsToFrameTransform 598.IBPluginDependency 599.IBPluginDependency - 600.IBPluginDependency - 600.IBViewBoundsToFrameTransform - 601.IBPluginDependency - 601.IBSegmentedControlInspectorSelectedSegmentMetadataKey 641.IBPluginDependency 641.IBViewBoundsToFrameTransform 643.IBPluginDependency @@ -2425,25 +2313,26 @@ 667.IBPluginDependency 669.IBPluginDependency 671.IBPluginDependency - 672.IBPluginDependency - 673.IBEditorWindowLastContentRect - 673.IBPluginDependency - 674.IBPluginDependency - 676.IBPluginDependency - 677.IBPluginDependency - 678.IBPluginDependency - 679.IBPluginDependency - 692.IBPluginDependency - 693.IBPluginDependency - 695.IBPluginDependency 696.IBPluginDependency - 698.IBPluginDependency - 698.IBViewBoundsToFrameTransform - 699.IBPluginDependency - 705.IBPluginDependency + 701.IBEditorWindowLastContentRect + 701.IBPluginDependency + 702.IBPluginDependency 706.IBPluginDependency - 707.IBPluginDependency - 708.IBPluginDependency + 709.IBPluginDependency + 711.IBPluginDependency + 713.IBPluginDependency + 714.IBPluginDependency + 717.IBPluginDependency + 721.IBPluginDependency + 723.IBPluginDependency + 724.IBEditorWindowLastContentRect + 724.IBPluginDependency + 726.IBPluginDependency + 727.IBEditorWindowLastContentRect + 727.IBPluginDependency + 730.IBPluginDependency + 732.IBPluginDependency + 733.IBPluginDependency 75.IBPluginDependency 75.ImportedFromIB2 81.IBEditorWindowLastContentRect @@ -2493,7 +2382,7 @@ com.apple.InterfaceBuilder.CocoaPlugin - {{525, 653}, {160, 183}} + {{541, 653}, {160, 183}} com.apple.InterfaceBuilder.CocoaPlugin {{187, 434}, {243, 243}} @@ -2511,29 +2400,23 @@ com.apple.InterfaceBuilder.CocoaPlugin - {{619, 763}, {194, 73}} + {{641, 763}, {194, 73}} com.apple.InterfaceBuilder.CocoaPlugin {{525, 802}, {197, 73}} - {{380, 836}, {387, 20}} + {{380, 1136}, {393, 20}} com.apple.InterfaceBuilder.CocoaPlugin {74, 862} {{6, 978}, {478, 20}} + {{855, 83}, {585, 396}} com.apple.InterfaceBuilder.CocoaPlugin - {{569, 793}, {231, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - {{475, 832}, {234, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{114, 295}, {585, 396}} - com.apple.InterfaceBuilder.CocoaPlugin - {{114, 295}, {585, 396}} + {{855, 83}, {585, 396}} {{33, 99}, {480, 360}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{690, 813}, {169, 23}} + {{712, 813}, {169, 23}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -2575,12 +2458,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDiYAAw82AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin AUKcAABDFQAAA @@ -2613,7 +2490,7 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{661, 733}, {127, 103}} + {{585, 1083}, {193, 53}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -2624,11 +2501,10 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{778, 1073}, {192, 63}} com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDBQAAw6qAAA - com.apple.InterfaceBuilder.CocoaPlugin + {{778, 1023}, {189, 83}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -2657,7 +2533,7 @@ - 710 + 741 @@ -2677,10 +2553,17 @@ YES YES + emptyInventory: itemTableViewDoubleClicked: + loadInventoryItems: makeSearchFieldFirstResponder: menuSelectWorld: menuSelectWorldFromPath: + saveInventoryItems: + setNextDay: + setNextMidnight: + setNextNight: + setNextNoon: updateItemSearchFilter: worldSelectionChanged: @@ -2692,25 +2575,47 @@ id id id + id + id + id + id + id + id + id YES YES + emptyInventory: itemTableViewDoubleClicked: + loadInventoryItems: makeSearchFieldFirstResponder: menuSelectWorld: menuSelectWorldFromPath: + saveInventoryItems: + setNextDay: + setNextMidnight: + setNextNight: + setNextNoon: updateItemSearchFilter: worldSelectionChanged: YES + + emptyInventory: + id + itemTableViewDoubleClicked: id + + loadInventoryItems: + id + makeSearchFieldFirstResponder: id @@ -2723,6 +2628,26 @@ menuSelectWorldFromPath: id + + saveInventoryItems: + id + + + setNextDay: + id + + + setNextMidnight: + id + + + setNextNight: + id + + + setNextNoon: + id + updateItemSearchFilter: id @@ -2741,7 +2666,6 @@ inventoryView itemSearchField itemTableView - playerNameTextField quickView statusTextField worldSelectionControl @@ -2752,10 +2676,9 @@ IJInventoryView NSSearchField NSTableView - NSTextField IJInventoryView NSTextField - NSSegmentedControl + NSPopUpButton @@ -2766,7 +2689,6 @@ inventoryView itemSearchField itemTableView - playerNameTextField quickView statusTextField worldSelectionControl @@ -2789,10 +2711,6 @@ itemTableView NSTableView - - playerNameTextField - NSTextField - quickView IJInventoryView @@ -2803,7 +2721,7 @@ worldSelectionControl - NSSegmentedControl + NSPopUpButton @@ -2926,15 +2844,11 @@ YES NSMenuCheckmark NSMenuMixedState - NSSwitch - NSUser YES {9, 8} {7, 2} - {15, 15} - {32, 32} diff --git a/InsideJob.xcodeproj/project.pbxproj b/InsideJob.xcodeproj/project.pbxproj index f98134d..2daca4e 100644 --- a/InsideJob.xcodeproj/project.pbxproj +++ b/InsideJob.xcodeproj/project.pbxproj @@ -9,7 +9,6 @@ /* Begin PBXBuildFile section */ 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; 256AC3DA0F4B6AC300CF3369 /* InsideJobAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* InsideJobAppDelegate.m */; }; - 663803B2131769E90015CFAD /* blockNotFound.png in Resources */ = {isa = PBXBuildFile; fileRef = 663803B1131769E90015CFAD /* blockNotFound.png */; }; 668B2556125D5A3E0060BF71 /* NBTContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 668B2555125D5A3E0060BF71 /* NBTContainer.m */; }; 668B255C125D5BCA0060BF71 /* NSData+CocoaDevAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 668B255B125D5BCA0060BF71 /* NSData+CocoaDevAdditions.m */; }; 668B2560125D5C1C0060BF71 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 668B255F125D5C1C0060BF71 /* libz.dylib */; }; @@ -17,7 +16,6 @@ 668B27B2125D8F8E0060BF71 /* IJInventoryItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 668B27B1125D8F8E0060BF71 /* IJInventoryItem.m */; }; 668B27F2125D963F0060BF71 /* IJInventoryWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 668B27F1125D963F0060BF71 /* IJInventoryWindowController.m */; }; 668B290F125E40560060BF71 /* Items.csv in Resources */ = {isa = PBXBuildFile; fileRef = 668B28D8125E370A0060BF71 /* Items.csv */; }; - 6697AD7212B86762001890C6 /* IJTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6697AD7112B86762001890C6 /* IJTableView.m */; }; 66BC00031260215C005A23F4 /* IJInventoryView.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BC00021260215C005A23F4 /* IJInventoryView.m */; }; 66BC000E12602359005A23F4 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 66BC000D12602359005A23F4 /* QuartzCore.framework */; }; 66BC033B1260CC59005A23F4 /* MAAttachedWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BC033A1260CC59005A23F4 /* MAAttachedWindow.m */; }; @@ -30,6 +28,9 @@ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + BA24598B1297428900F8B9C2 /* blockNotFound.png in Resources */ = {isa = PBXBuildFile; fileRef = BA24598A1297428900F8B9C2 /* blockNotFound.png */; }; + BA3329A9129889860079447B /* NSFileManager+DirectoryLocations.m in Sources */ = {isa = PBXBuildFile; fileRef = BA3329A8129889860079447B /* NSFileManager+DirectoryLocations.m */; }; + BA9186CB1328C1C600769DEC /* IJTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = BA9186CA1328C1C600769DEC /* IJTableView.m */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -43,7 +44,6 @@ 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 663803B1131769E90015CFAD /* blockNotFound.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = blockNotFound.png; sourceTree = ""; }; 668B2554125D5A3E0060BF71 /* NBTContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBTContainer.h; sourceTree = ""; }; 668B2555125D5A3E0060BF71 /* NBTContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBTContainer.m; sourceTree = ""; }; 668B255A125D5BCA0060BF71 /* NSData+CocoaDevAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+CocoaDevAdditions.h"; sourceTree = ""; }; @@ -74,8 +74,12 @@ 66BCFE61125FCEC6005A23F4 /* DataValuesV110Transparent.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DataValuesV110Transparent.png; sourceTree = ""; }; 8D1107310486CEB800E47090 /* InsideJob-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "InsideJob-Info.plist"; sourceTree = ""; }; 8D1107320486CEB800E47090 /* Inside Job.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Inside Job.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - D13FDB481322757D00D318D1 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; - D13FDB491322782100D318D1 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file; name = fr; path = fr.lproj/MainMenu.xib; sourceTree = ""; }; + BA24598A1297428900F8B9C2 /* blockNotFound.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = blockNotFound.png; sourceTree = ""; }; + BA3329A7129889860079447B /* NSFileManager+DirectoryLocations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSFileManager+DirectoryLocations.h"; sourceTree = ""; }; + BA3329A8129889860079447B /* NSFileManager+DirectoryLocations.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSFileManager+DirectoryLocations.m"; sourceTree = ""; }; + BA9186C91328C1C600769DEC /* IJTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IJTableView.h; sourceTree = ""; }; + BA9186CA1328C1C600769DEC /* IJTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IJTableView.m; sourceTree = ""; }; + D13FDB481322757D00D318D1 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -198,6 +202,8 @@ 668B255B125D5BCA0060BF71 /* NSData+CocoaDevAdditions.m */, 66BC04F612619072005A23F4 /* NSColor+Additions.h */, 66BC04F712619072005A23F4 /* NSColor+Additions.m */, + BA3329A7129889860079447B /* NSFileManager+DirectoryLocations.h */, + BA3329A8129889860079447B /* NSFileManager+DirectoryLocations.m */, ); name = Categories; sourceTree = ""; @@ -218,6 +224,8 @@ 66BC033E1260CC68005A23F4 /* Views & Windows */ = { isa = PBXGroup; children = ( + BA9186C91328C1C600769DEC /* IJTableView.h */, + BA9186CA1328C1C600769DEC /* IJTableView.m */, 66BC03391260CC59005A23F4 /* MAAttachedWindow.h */, 66BC033A1260CC59005A23F4 /* MAAttachedWindow.m */, 6697AD7012B86762001890C6 /* IJTableView.h */, @@ -229,7 +237,7 @@ 66BC07711262823E005A23F4 /* Images */ = { isa = PBXGroup; children = ( - 663803B1131769E90015CFAD /* blockNotFound.png */, + BA24598A1297428900F8B9C2 /* blockNotFound.png */, 66BCFE61125FCEC6005A23F4 /* DataValuesV110Transparent.png */, 66BCFC35125EA53E005A23F4 /* InsideJob.icns */, ); @@ -297,7 +305,7 @@ 66BCFC36125EA53E005A23F4 /* InsideJob.icns in Resources */, 66BCFE62125FCEC6005A23F4 /* DataValuesV110Transparent.png in Resources */, 66BC077312628257005A23F4 /* ItemPropertiesView.xib in Resources */, - 663803B2131769E90015CFAD /* blockNotFound.png in Resources */, + BA24598B1297428900F8B9C2 /* blockNotFound.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -319,7 +327,8 @@ 66BC033B1260CC59005A23F4 /* MAAttachedWindow.m in Sources */, 66BC03621260D095005A23F4 /* IJItemPropertiesViewController.m in Sources */, 66BC04F812619072005A23F4 /* NSColor+Additions.m in Sources */, - 6697AD7212B86762001890C6 /* IJTableView.m in Sources */, + BA3329A9129889860079447B /* NSFileManager+DirectoryLocations.m in Sources */, + BA9186CB1328C1C600769DEC /* IJTableView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -339,7 +348,6 @@ isa = PBXVariantGroup; children = ( 1DDD58150DA1D0A300B32029 /* English */, - D13FDB491322782100D318D1 /* fr */, ); name = MainMenu.xib; sourceTree = ""; diff --git a/fr.lproj/MainMenu.xib b/fr.lproj/MainMenu.xib deleted file mode 100644 index b3eee80..0000000 --- a/fr.lproj/MainMenu.xib +++ /dev/null @@ -1,2719 +0,0 @@ - - - - 1060 - 10J567 - 1294 - 1038.35 - 462.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 1294 - - - YES - NSTableColumn - NSSegmentedControl - NSNumberFormatter - NSScroller - NSMenuItem - NSMenu - NSTextFieldCell - NSScrollView - NSBox - NSImageCell - NSSearchField - NSTableView - NSSearchFieldCell - NSCustomObject - NSSegmentedCell - NSView - NSWindowTemplate - NSTextField - NSCustomView - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - YES - - NSApplication - - - FirstResponder - - - NSApplication - - - AMainMenu - - YES - - - Inside Job - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - submenuAction: - - Inside Job - - YES - - - About Inside Job - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Preferences… - , - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Services - - 1048576 - 2147483647 - - - submenuAction: - - Services - - YES - - _NSServicesMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide Inside Job - h - 1048576 - 2147483647 - - - - - - Hide Others - h - 1572864 - 2147483647 - - - - - - Show All - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Quit Inside Job - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - Monde - - 1048576 - 2147483647 - - - submenuAction: - - Monde - - YES - - - Open - - 2147483647 - - - submenuAction: - - Open - - YES - - - World 1 - 1 - 1048576 - 2147483647 - - - 1 - - - - World 2 - 2 - 1048576 - 2147483647 - - - 2 - - - - World 3 - 3 - 1048576 - 2147483647 - - - 3 - - - - World 4 - 4 - 1048576 - 2147483647 - - - 4 - - - - World 5 - 5 - 1048576 - 2147483647 - - - 5 - - - - YES - YES - - - 2147483647 - - - - - - From Folder - o - 1048576 - 2147483647 - - - - - - - - - Save - s - 1048576 - 2147483647 - - - - - - Revert to Saved - - 2147483647 - - - - - - - - - Édition - - 1048576 - 2147483647 - - - submenuAction: - - Édition - - YES - - - Undo - z - 1048576 - 2147483647 - - - - - - Redo - Z - 1179648 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Cut - x - 1048576 - 2147483647 - - - - - - Copy - c - 1048576 - 2147483647 - - - - - - Paste - v - 1048576 - 2147483647 - - - - - - Delete - CA - 2147483647 - - - - - - Select All - a - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Find Item - f - 1048576 - 2147483647 - - - - - - - - - Vue - - 1048576 - 2147483647 - - - submenuAction: - - Vue - - YES - - - Show Toolbar - t - 1572864 - 2147483647 - - - - - - Customize Toolbar… - - 1048576 - 2147483647 - - - - - - - - - Fenêtres - - 1048576 - 2147483647 - - - submenuAction: - - Fenêtres - - YES - - - Minimize - m - 1048576 - 2147483647 - - - - - - Zoom - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Bring All to Front - - 1048576 - 2147483647 - - - - - _NSWindowsMenu - - - - - Aide - - 2147483647 - - - submenuAction: - - Aide - - YES - - - InsideJob Help - ? - 1048576 - 2147483647 - - - - - _NSHelpMenu - - - - _NSMainMenu - - - 7 - 2 - {{347, 340}, {585, 396}} - 1954021376 - Inside Job - NSWindow - - - - 256 - - YES - - - 266 - {{211, 369}, {366, 14}} - - - YES - - 68288064 - 71435264 - Status - - LucidaGrande - 11 - 3100 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 268 - {{101, 327}, {85, 19}} - - - YES - - -1804468671 - 272761856 - - - - YES - - YES - allowsFloats - formatterBehavior - locale - negativeInfinitySymbol - nilSymbol - numberStyle - positiveInfinitySymbol - - - YES - - - - - - -∞ - - - +∞ - - - #,##0.### - #,##0.### - - - - - - - - NaN - - YES - - YES - - - - - - 0 - 0 - YES - NO - 1 - AAAAAAAAAAAAAAAAAAAAAA - - - - 3 - YES - YES - YES - - . - , - YES - NO - YES - - - YES - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - textColor - - - - - - - 268 - {{56, 329}, {40, 14}} - - - YES - - 68288064 - 71435264 - Time: - - - - - - - - - 10 - {{0, 355}, {585, 5}} - - - {0, 0} - - 67239424 - 0 - Box - - LucidaGrande - 13 - 1044 - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - 3 - 2 - 0 - NO - - - - 268 - {{11, 364}, {195, 25}} - - - YES - - 67239424 - 0 - - LucidaGrande - 13 - 16 - - - - YES - - World 1 - 1 - YES - 0 - - - 2 - 2 - 0 - - - 3 - 3 - 0 - - - 4 - 4 - 0 - - - 5 - 5 - 0 - - - 2 - - - - - 268 - {{11, 58}, {360, 120}} - - - IJInventoryView - - - - 268 - {{11, 10}, {360, 40}} - - - IJInventoryView - - - - 268 - {{11, 186}, {40, 160}} - - - IJInventoryView - - - - 265 - {{379, 327}, {195, 22}} - - - YES - - 343014976 - 268436544 - - - - YES - 1 - - - - 130560 - 0 - search - - _searchFieldSearch: - - 138690815 - 0 - - 400 - 75 - - - 130560 - 0 - clear - - YES - - YES - - YES - AXDescription - NSAccessibilityEncodedAttributesValueType - - - YES - cancel - - - - - - _searchFieldCancel: - - 138690815 - 0 - - 400 - 75 - - 255 - CAAAAA - - - - - 4369 - - YES - - - 2304 - - YES - - - 4352 - {193, 307} - - - YES - - - -2147483392 - {{191, 0}, {16, 17}} - - - YES - - itemId - 40 - 40 - 1000 - - 75628096 - 2048 - - - - 3 - MC4zMzMzMzI5ODU2AA - - - 6 - System - headerTextColor - - - - - 337772096 - -2080372736 - Text Cell - - - - YES - - YES - allowsFloats - formatterBehavior - locale - negativeInfinitySymbol - nilSymbol - positiveInfinitySymbol - - - YES - - - - -∞ - - +∞ - - - # - # - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - - - 6 - System - controlBackgroundColor - - - - - 3 - YES - - - - image - 32 - 10 - 3.4028234663852886e+38 - - 75628096 - 2048 - - - - 6 - System - headerColor - - - - - - 67239424 - 33554432 - - 0 - 0 - 0 - NO - - 3 - YES - - - - name - 112 - 40 - 1000 - - 75628096 - 2048 - - - - - - - 337772096 - 2048 - Text Cell - - - - - - 3 - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 17 - -767557632 - - - 4 - 15 - 0 - YES - 0 - - - {{1, 1}, {193, 307}} - - - - - 4 - - - - -2147483392 - {{191, 17}, {15, 365}} - - - - _doScroller: - 0.9974811083123426 - - - - -2147483392 - {{1, 382}, {190, 15}} - - 1 - - _doScroller: - 0.99514563106796117 - - - {{379, 10}, {195, 309}} - - - 562 - - - - QSAAAEEgAABBmAAAQZgAAA - - - {{7, 11}, {585, 396}} - - - {{0, 0}, {1440, 878}} - {1e+13, 1e+13} - MainWindow - - - InsideJobAppDelegate - - - NSFontManager - - - IJInventoryWindowController - - - - - YES - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - orderFrontStandardAboutPanel: - - - - 142 - - - - undo: - - - - 223 - - - - copy: - - - - 224 - - - - paste: - - - - 226 - - - - cut: - - - - 228 - - - - redo: - - - - 231 - - - - selectAll: - - - - 232 - - - - delete: - - - - 235 - - - - performZoom: - - - - 240 - - - - saveDocument: - - - - 362 - - - - revertDocumentToSaved: - - - - 364 - - - - runToolbarCustomizationPalette: - - - - 365 - - - - toggleToolbarShown: - - - - 366 - - - - hide: - - - - 367 - - - - hideOtherApplications: - - - - 368 - - - - unhideAllApplications: - - - - 370 - - - - terminate: - - - - 449 - - - - showHelp: - - - - 493 - - - - delegate - - - - 495 - - - - window - - - - 534 - - - - delegate - - - - 535 - - - - inventoryWindowController - - - - 590 - - - - statusTextField - - - - 593 - - - - worldSelectionControl - - - - 603 - - - - worldSelectionChanged: - - - - 604 - - - - value: worldTime - - - - - - value: worldTime - value - worldTime - 2 - - - 607 - - - - inventoryView - - - - 642 - - - - armorView - - - - 645 - - - - quickView - - - - 646 - - - - itemSearchField - - - - 659 - - - - itemTableView - - - - 660 - - - - dataSource - - - - 661 - - - - delegate - - - - 662 - - - - updateItemSearchFilter: - - - - 663 - - - - initialFirstResponder - - - - 668 - - - - makeSearchFieldFirstResponder: - - - - 670 - - - - menuSelectWorld: - - - - 680 - - - - menuSelectWorld: - - - - 681 - - - - menuSelectWorld: - - - - 682 - - - - menuSelectWorld: - - - - 683 - - - - menuSelectWorld: - - - - 684 - - - - delegate - - - - 685 - - - - menuSelectWorldFromPath: - - - - 694 - - - - - YES - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 29 - - - YES - - - - - - - - - - - 19 - - - YES - - - - - - 56 - - - YES - - - - - - 217 - - - YES - - - - - - 83 - - - YES - - - - - - 81 - - - YES - - - - - - - - 75 - - - - - 112 - - - - - 205 - - - YES - - - - - - - - - - - - - - - 202 - - - - - 198 - - - - - 207 - - - - - 199 - - - - - 203 - - - - - 197 - - - - - 206 - - - - - 215 - - - - - 57 - - - YES - - - - - - - - - - - - - - - - 58 - - - - - 134 - - - - - 150 - - - - - 136 - - - - - 144 - - - - - 129 - - - - - 143 - - - - - 236 - - - - - 131 - - - YES - - - - - - 149 - - - - - 145 - - - - - 130 - - - - - 24 - - - YES - - - - - - - - - 92 - - - - - 5 - - - - - 239 - - - - - 23 - - - - - 295 - - - YES - - - - - - 296 - - - YES - - - - - - - 297 - - - - - 298 - - - - - 371 - - - YES - - - - - - 372 - - - YES - - - - - - - - - - - - - - - 420 - - - - - 490 - - - YES - - - - - - 491 - - - YES - - - - - - 492 - - - - - 494 - - - - - 533 - - - - - 591 - - - YES - - - - - - 592 - - - - - 594 - - - YES - - - - - - 595 - - - YES - - - - - - 596 - - - - - 597 - - - YES - - - - - - 598 - - - - - 599 - - - - - 600 - - - YES - - - - - - 601 - - - - - 641 - - - YES - - - - - 643 - - - - - 644 - - - - - 647 - - - YES - - - - - - 648 - - - - - 649 - - - YES - - - - - - - - 650 - - - - - 651 - - - - - 652 - - - YES - - - - - - - - 654 - - - YES - - - - - - 655 - - - YES - - - - - - 656 - - - - - 657 - - - YES - - - - - - 658 - - - - - 665 - - - YES - - - - - - 667 - - - - - 669 - - - - - 671 - - - - - 672 - - - YES - - - - - - 673 - - - YES - - - - - - - - - - - - 674 - - - - - 676 - - - - - 677 - - - - - 678 - - - - - 679 - - - - - 692 - - - - - 693 - - - - - - - YES - - YES - -3.IBPluginDependency - 112.IBPluginDependency - 112.ImportedFromIB2 - 129.IBPluginDependency - 129.ImportedFromIB2 - 130.IBPluginDependency - 130.ImportedFromIB2 - 130.editorWindowContentRectSynchronizationRect - 131.IBPluginDependency - 131.ImportedFromIB2 - 134.IBPluginDependency - 134.ImportedFromIB2 - 136.IBPluginDependency - 136.ImportedFromIB2 - 143.IBPluginDependency - 143.ImportedFromIB2 - 144.IBPluginDependency - 144.ImportedFromIB2 - 145.IBPluginDependency - 145.ImportedFromIB2 - 149.IBPluginDependency - 149.ImportedFromIB2 - 150.IBPluginDependency - 150.ImportedFromIB2 - 19.IBPluginDependency - 19.ImportedFromIB2 - 197.IBPluginDependency - 197.ImportedFromIB2 - 198.IBPluginDependency - 198.ImportedFromIB2 - 199.IBPluginDependency - 199.ImportedFromIB2 - 202.IBPluginDependency - 202.ImportedFromIB2 - 203.IBPluginDependency - 203.ImportedFromIB2 - 205.IBEditorWindowLastContentRect - 205.IBPluginDependency - 205.ImportedFromIB2 - 205.editorWindowContentRectSynchronizationRect - 206.IBPluginDependency - 206.ImportedFromIB2 - 207.IBPluginDependency - 207.ImportedFromIB2 - 215.IBPluginDependency - 215.ImportedFromIB2 - 217.IBPluginDependency - 217.ImportedFromIB2 - 23.IBPluginDependency - 23.ImportedFromIB2 - 236.IBPluginDependency - 236.ImportedFromIB2 - 239.IBPluginDependency - 239.ImportedFromIB2 - 24.IBEditorWindowLastContentRect - 24.IBPluginDependency - 24.ImportedFromIB2 - 24.editorWindowContentRectSynchronizationRect - 29.IBEditorWindowLastContentRect - 29.IBPluginDependency - 29.ImportedFromIB2 - 29.WindowOrigin - 29.editorWindowContentRectSynchronizationRect - 295.IBPluginDependency - 296.IBEditorWindowLastContentRect - 296.IBPluginDependency - 296.editorWindowContentRectSynchronizationRect - 297.IBPluginDependency - 298.IBPluginDependency - 371.IBEditorWindowLastContentRect - 371.IBPluginDependency - 371.IBWindowTemplateEditedContentRect - 371.NSWindowTemplate.visibleAtLaunch - 371.editorWindowContentRectSynchronizationRect - 372.IBPluginDependency - 490.IBPluginDependency - 491.IBEditorWindowLastContentRect - 491.IBPluginDependency - 492.IBPluginDependency - 5.IBPluginDependency - 5.ImportedFromIB2 - 533.IBPluginDependency - 56.IBPluginDependency - 56.ImportedFromIB2 - 57.IBEditorWindowLastContentRect - 57.IBPluginDependency - 57.ImportedFromIB2 - 57.editorWindowContentRectSynchronizationRect - 58.IBPluginDependency - 58.ImportedFromIB2 - 591.IBPluginDependency - 591.IBViewBoundsToFrameTransform - 592.IBPluginDependency - 594.IBAttributePlaceholdersKey - 594.IBPluginDependency - 594.IBViewBoundsToFrameTransform - 595.IBPluginDependency - 596.IBNumberFormatterBehaviorMetadataKey - 596.IBNumberFormatterLocalizesFormatMetadataKey - 596.IBPluginDependency - 597.IBPluginDependency - 597.IBViewBoundsToFrameTransform - 598.IBPluginDependency - 599.IBPluginDependency - 600.IBPluginDependency - 600.IBViewBoundsToFrameTransform - 601.IBPluginDependency - 601.IBSegmentedControlInspectorSelectedSegmentMetadataKey - 641.IBPluginDependency - 641.IBViewBoundsToFrameTransform - 643.IBPluginDependency - 643.IBViewBoundsToFrameTransform - 644.IBPluginDependency - 644.IBViewBoundsToFrameTransform - 647.IBPluginDependency - 648.IBPluginDependency - 649.IBPluginDependency - 649.IBViewBoundsToFrameTransform - 650.IBPluginDependency - 651.IBPluginDependency - 652.CustomClassName - 652.IBPluginDependency - 654.IBPluginDependency - 655.IBPluginDependency - 656.IBPluginDependency - 657.IBPluginDependency - 658.IBNumberFormatterBehaviorMetadataKey - 658.IBNumberFormatterLocalizesFormatMetadataKey - 658.IBPluginDependency - 667.IBPluginDependency - 669.IBPluginDependency - 671.IBPluginDependency - 672.IBPluginDependency - 673.IBEditorWindowLastContentRect - 673.IBPluginDependency - 674.IBPluginDependency - 676.IBPluginDependency - 677.IBPluginDependency - 678.IBPluginDependency - 679.IBPluginDependency - 692.IBPluginDependency - 693.IBPluginDependency - 75.IBPluginDependency - 75.ImportedFromIB2 - 81.IBEditorWindowLastContentRect - 81.IBPluginDependency - 81.ImportedFromIB2 - 81.editorWindowContentRectSynchronizationRect - 83.IBPluginDependency - 83.ImportedFromIB2 - 92.IBPluginDependency - 92.ImportedFromIB2 - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{436, 809}, {64, 6}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{525, 653}, {160, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{187, 434}, {243, 243}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{619, 763}, {194, 73}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{525, 802}, {197, 73}} - {{380, 836}, {387, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - - {74, 862} - {{6, 978}, {478, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - {{569, 793}, {231, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - {{475, 832}, {234, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{114, 295}, {585, 396}} - com.apple.InterfaceBuilder.CocoaPlugin - {{114, 295}, {585, 396}} - - {{33, 99}, {480, 360}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{690, 813}, {169, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{392, 653}, {203, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{23, 794}, {245, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDOgAAw8SAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - 0-24,000. 0 is dawn, 12,000 is dusk. - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDMgAAw6wAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDBQAAw6qAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDiYAAw82AAA - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - AUKcAABDFQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUKcAABCygAAA - - com.apple.InterfaceBuilder.CocoaPlugin - - AUKcAABDioAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABEDUAAw8AAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - IJTableView - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{661, 733}, {127, 103}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{483, 773}, {178, 63}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{145, 474}, {199, 203}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - YES - - - - - - YES - - - - - 694 - - - - YES - - IJInventoryView - NSView - - IBProjectSource - ./Classes/IJInventoryView.h - - - - IJInventoryWindowController - NSWindowController - - YES - - YES - itemTableViewDoubleClicked: - makeSearchFieldFirstResponder: - menuSelectWorld: - menuSelectWorldFromPath: - updateItemSearchFilter: - worldSelectionChanged: - - - YES - id - id - id - id - id - id - - - - YES - - YES - itemTableViewDoubleClicked: - makeSearchFieldFirstResponder: - menuSelectWorld: - menuSelectWorldFromPath: - updateItemSearchFilter: - worldSelectionChanged: - - - YES - - itemTableViewDoubleClicked: - id - - - makeSearchFieldFirstResponder: - id - - - menuSelectWorld: - id - - - menuSelectWorldFromPath: - id - - - updateItemSearchFilter: - id - - - worldSelectionChanged: - id - - - - - YES - - YES - armorView - inventoryView - itemSearchField - itemTableView - quickView - statusTextField - worldSelectionControl - - - YES - IJInventoryView - IJInventoryView - NSSearchField - NSTableView - IJInventoryView - NSTextField - NSSegmentedControl - - - - YES - - YES - armorView - inventoryView - itemSearchField - itemTableView - quickView - statusTextField - worldSelectionControl - - - YES - - armorView - IJInventoryView - - - inventoryView - IJInventoryView - - - itemSearchField - NSSearchField - - - itemTableView - NSTableView - - - quickView - IJInventoryView - - - statusTextField - NSTextField - - - worldSelectionControl - NSSegmentedControl - - - - - IBProjectSource - ./Classes/IJInventoryWindowController.h - - - - IJTableView - NSTableView - - IBProjectSource - ./Classes/IJTableView.h - - - - InsideJobAppDelegate - NSObject - - inventoryWindowController - IJInventoryWindowController - - - inventoryWindowController - - inventoryWindowController - IJInventoryWindowController - - - - IBProjectSource - ./Classes/InsideJobAppDelegate.h - - - - NSDocument - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: - - - YES - id - id - id - id - id - id - - - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: - - - YES - - printDocument: - id - - - revertDocumentToSaved: - id - - - runPageLayout: - id - - - saveDocument: - id - - - saveDocumentAs: - id - - - saveDocumentTo: - id - - - - - IBProjectSource - ./Classes/NSDocument.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - - - YES - {9, 8} - {7, 2} - - - -