mirror of
https://github.com/copyrighttxt/watrbx-game-engine.git
synced 2026-09-07 13:57:48 +00:00
GEEKING
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
//
|
||||
// RBGameViewController.m
|
||||
// RobloxMobile
|
||||
//
|
||||
// Created by Ariel Lichtin on 10/22/14.
|
||||
// Copyright (c) 2014 ROBLOX. All rights reserved.
|
||||
//
|
||||
|
||||
#import "RBGameViewController.h"
|
||||
#import "RobloxNotifications.h"
|
||||
#import "RobloxHUD.h"
|
||||
#import "RobloxInfo.h"
|
||||
#import "RobloxGoogleAnalytics.h"
|
||||
|
||||
@interface RBGameViewController ()
|
||||
|
||||
@end
|
||||
|
||||
@implementation RBGameViewController
|
||||
|
||||
- (id) initWithLaunchParams:(RBXGameLaunchParams *)parameters
|
||||
{
|
||||
self = [super init];
|
||||
if (self)
|
||||
_launchParams = parameters;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma ACCESSORS
|
||||
#pragma mark
|
||||
+ (BOOL) isAppRunning
|
||||
{
|
||||
return [[PlaceLauncher sharedInstance] appActive];
|
||||
}
|
||||
|
||||
|
||||
#pragma VIEW FUNCTIONS
|
||||
#pragma mark
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
|
||||
self.view.frame = [UIScreen mainScreen].bounds;
|
||||
self.view.backgroundColor = [UIColor clearColor];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didLeaveGame:) name:RBX_NOTIFY_GAME_DID_LEAVE object:nil];
|
||||
|
||||
[self launchGame];
|
||||
}
|
||||
- (void)dealloc
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
}
|
||||
|
||||
- (void)didLeaveGame:(NSNotification*)notification
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^
|
||||
{
|
||||
[self dismissViewControllerAnimated:NO
|
||||
completion:^
|
||||
{
|
||||
if(_completionHandler)
|
||||
{
|
||||
_completionHandler();
|
||||
}
|
||||
}];
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
#pragma GAME FUNCTIONS
|
||||
#pragma mark
|
||||
-(void)launchGame
|
||||
{
|
||||
if( !hasMinMemory(512) )
|
||||
{
|
||||
[RobloxHUD showMessage:NSLocalizedString(@"UnsupportedDevicePlayError", nil)];
|
||||
return;
|
||||
}
|
||||
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:RBX_NOTIFY_GAME_JOINED object:nil];
|
||||
[[NSUserDefaults standardUserDefaults] setObject:@"tryGameJoin" forKey:@"RobloxGameState"];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
|
||||
[RobloxHUD showSpinnerWithLabel:NSLocalizedString(@"LaunchGame", nil) dimBackground:YES];
|
||||
|
||||
// Delay execution of the start block to display the spinner properly
|
||||
// TODO: Start the game in the place launcher in a separate thread (not UI)
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.25f * NSEC_PER_SEC), dispatch_get_main_queue(), ^
|
||||
{
|
||||
[[PlaceLauncher sharedInstance] startGame:_launchParams controller:self presentGameAutomatically:YES];
|
||||
});
|
||||
|
||||
[RobloxGoogleAnalytics setPageViewTracking:@"Visit/Try/Join"];
|
||||
}
|
||||
|
||||
-(void) handleStartGameFailure
|
||||
{
|
||||
[RobloxHUD hideSpinner:YES];
|
||||
}
|
||||
|
||||
-(void) handleStartGameSuccess
|
||||
{
|
||||
[RobloxHUD hideSpinner:YES];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user