Files
minecraft-pe-0.6.1/project/iosproj/minecraftpe/dialogs/CreateNewWorldViewController.mm
2026-03-02 22:04:18 +03:00

188 lines
5.6 KiB
Plaintext
Executable File

//
// CreateNewWorldViewController.m
// minecraftpe
//
// Created by rhino on 10/20/11.
// Copyright 2011 Mojang. All rights reserved.
//
#import "CreateNewWorldViewController.h"
#import <QuartzCore/QuartzCore.h>
static const int GameMode_Creative = 0;
static const int GameMode_Survival = 1;
static const char* getGameModeName(int mode) {
if (mode == GameMode_Survival) return "survival";
return "creative";
}
@implementation CreateNewWorldViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
_currentGameModeId = GameMode_Creative;
}
return self;
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void) UpdateGameModeDesc
{
if (_currentGameModeId == GameMode_Creative) {
[_labelGameModeDesc setText:@"Unlimited resources, flying"];
UIImage *img = [UIImage imageNamed:@"creative_0_4.png"];
[_btnGameMode setImage:img forState:UIControlStateNormal];
UIImage *img2 = [UIImage imageNamed:@"creative_1_4.png"];
[_btnGameMode setImage:img2 forState:UIControlStateHighlighted];
}
if (_currentGameModeId == GameMode_Survival) {
[_labelGameModeDesc setText:@"Mobs, health and gather resources"];
UIImage *img = [UIImage imageNamed:@"survival_0_4.png"];
[_btnGameMode setImage:img forState:UIControlStateNormal];
UIImage *img2 = [UIImage imageNamed:@"survival_1_4.png"];
[_btnGameMode setImage:img2 forState:UIControlStateHighlighted];
}
}
#pragma mark - View lifecycle
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
//NSLog(@"TextField should return\n");
[textField setUserInteractionEnabled:YES];
[self DismissKeyboard];
// [textField resignFirstResponder];
// if (textField == _textName)
// [_textSeed becomeFirstResponder];
// else if (textField == _textSeed)
// [self Create];
return YES;
}
- (void) resizeView:(UIView*)obj width:(int)w height:(int)h {
if (w < 0) w = obj.frame.size.width;
if (h < 0) h = obj.frame.size.height;
obj.frame = CGRectMake(obj.frame.origin.x, obj.frame.origin.y, w, h);
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == _textName) {
NSUInteger newLength = [textField.text length] + [string length] - range.length;
if (newLength > 18)
return NO;
}
int length = [string length];
for (int i = 0; i < length; ++i) {
unichar ch = [string characterAtIndex:i];
if (ch >= 128)
return NO;
}
return YES;
}
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
[super viewDidLoad];
BOOL isIpad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
UIFont* fontLarge = nil;
UIFont* fontSmall = nil;
if (isIpad) {
[self resizeView:_textName width:-1 height:48];
[self resizeView:_textSeed width:-1 height:48];
self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"bg128.png"] ];
fontLarge = [UIFont fontWithName:@"minecraft" size:28];
fontSmall = [UIFont fontWithName:@"minecraft" size:24];
} else {
[self resizeView:_textName width:-1 height:32];
[self resizeView:_textSeed width:-1 height:32];
self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"bg64.png"] ];
fontLarge = [UIFont fontWithName:@"minecraft" size:16];
fontSmall = [UIFont fontWithName:@"minecraft" size: 14];
}
UIView *paddingView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 4, 20)] autorelease];
_textName.leftView = paddingView;
_textSeed.leftView = paddingView;
[_labelName setFont:fontLarge];
[_labelSeed setFont:fontSmall];
[_labelSeedHint setFont:fontSmall];
[_labelGameMode setFont:fontSmall];
[_labelGameModeDesc setFont:fontSmall];
[_textName setFont:fontLarge];
[_textSeed setFont:fontLarge];
_textName.layer.borderColor = [[UIColor whiteColor] CGColor];
_textName.layer.borderWidth = 2.0f;
_textSeed.layer.borderColor = [[UIColor whiteColor] CGColor];
_textSeed.layer.borderWidth = 2.0f;
_textSeed.delegate = self;
_textName.delegate = self;
[self UpdateGameModeDesc];
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
- (IBAction)Create {
//NSLog(@"I'm done!");
// Push the strings
[self addString: [[_textName text] UTF8String]];
[self addString: [[_textSeed text] UTF8String]];
[self addString: getGameModeName(_currentGameModeId)];
[self closeOk];
}
- (IBAction)Cancel {
//NSLog(@"I'm cancelled!");
[self closeCancel];
}
- (IBAction)ToggleGameMode {
const int NumGameModes = 2;
if (++_currentGameModeId >= NumGameModes)
_currentGameModeId = 0;
[self UpdateGameModeDesc];
}
- (IBAction)DismissKeyboard {
//NSLog(@"Trying to dismiss keyboard %p %p\n", _textName, _textSeed);
[_textName resignFirstResponder];
[_textSeed resignFirstResponder];
}
@end