Adds monster type to editor.
Sets all entity attributes for monster to default to empty string instead of null. Adds test for copyFromMonster. Makes initWithMonster:andContext call copyFromMonster to ensure they use the same logic to clone the other monster.
This commit is contained in:
@@ -73,6 +73,7 @@
|
||||
|
||||
self.name = [jsonRoot objectForKey:@"name"] ?: @"";
|
||||
self.size = [jsonRoot objectForKey:@"size"] ?: @"";
|
||||
self.type = [jsonRoot objectForKey:@"type"] ?: @"";
|
||||
|
||||
return self;
|
||||
}
|
||||
@@ -80,7 +81,7 @@
|
||||
-(id)initWithMonster:(Monster* _Nonnull)monster {
|
||||
self = [self initWithContext:monster.managedObjectContext];
|
||||
|
||||
self.name = monster.name;
|
||||
[self copyFromMonster:monster];
|
||||
|
||||
return self;
|
||||
}
|
||||
@@ -334,6 +335,7 @@
|
||||
-(void)copyFromMonster:(Monster*)monster {
|
||||
self.name = monster.name;
|
||||
self.size = monster.size;
|
||||
self.type = monster.type;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="16119" systemVersion="19G2021" minimumToolsVersion="Automatic" sourceLanguage="Objective-C" usedWithCloudKit="YES" userDefinedModelVersionIdentifier="">
|
||||
<entity name="Monster" representedClassName="Monster" syncable="YES" codeGenerationType="category">
|
||||
<attribute name="alignment" optional="YES" attributeType="String"/>
|
||||
<attribute name="alignment" attributeType="String" defaultValueString=""/>
|
||||
<attribute name="name" attributeType="String" defaultValueString=""/>
|
||||
<attribute name="size" optional="YES" attributeType="String" defaultValueString=""/>
|
||||
<attribute name="subtype" optional="YES" attributeType="String"/>
|
||||
<attribute name="type" optional="YES" attributeType="String"/>
|
||||
<attribute name="size" attributeType="String" defaultValueString=""/>
|
||||
<attribute name="subtype" attributeType="String" defaultValueString=""/>
|
||||
<attribute name="type" attributeType="String" defaultValueString=""/>
|
||||
</entity>
|
||||
<elements>
|
||||
<element name="Monster" positionX="-63" positionY="-18" width="128" height="118"/>
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
// * Subtype
|
||||
// * Alignment
|
||||
|
||||
return 2;
|
||||
return 3;
|
||||
}
|
||||
|
||||
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath {
|
||||
@@ -91,6 +91,17 @@
|
||||
shortStringCell.textField.text = self.editingMonster.size;
|
||||
shortStringCell.textField.placeholder = NSLocalizedString(@"Size", @"Placehodler text for the size of a monster or NPC.");
|
||||
return shortStringCell;
|
||||
case 2:
|
||||
shortStringCell = [self.monsterTableView dequeueReusableCellWithIdentifier:@"EditableShortString"];
|
||||
if (shortStringCell == nil) {
|
||||
shortStringCell = [[EditableShortStringTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"EditableShortString"];
|
||||
}
|
||||
shortStringCell.delegate = self;
|
||||
shortStringCell.identifier = @"monster.type";
|
||||
// TODO: make these use setters on EditableShortStringTableViewCell
|
||||
shortStringCell.textField.text = self.editingMonster.type;
|
||||
shortStringCell.textField.placeholder = NSLocalizedString(@"Type", @"Placehodler text for the type of a monster or NPC.");
|
||||
return shortStringCell;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -106,6 +117,8 @@
|
||||
self.editingMonster.name = (NSString*)value;
|
||||
} else if ([@"monster.size" isEqualToString:identifier]) {
|
||||
self.editingMonster.size = (NSString*)value;
|
||||
} else if ([@"monster.type" isEqualToString:identifier]) {
|
||||
self.editingMonster.type = (NSString*)value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user