/
BirdLeon
/
ROBLOX2016
Обзор
Документация
Войти
/
BirdLeon
/
ROBLOX2016
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
iOS/SharedCode/In-Game Controls/ControlComponent.mm
84 строки
2 KB
PatoFlamejanteTV
full source code
19 дек 2024, 19:11
19 дек 2024, 19:11
05db15d
Код
Авторство
О чём код?
// // ControlComponent.m // IOSClient // // Created by Ben Tkacheff on 9/6/12. // Copyright (c) 2012 tolkring@gmail.com. All rights reserved. // #import "ControlComponent.h" #import "ControlView.h" #include "v8datamodel/TouchInputService.h" @implementation ControlComponent - (id) init { if (self = [super init]) { self.userInteractionEnabled = true; } return self; } - (ControlView*) findControlView { if ([self isKindOfClass:[ControlView class]]) return (ControlView*)self; id nextSuperView = self.superview; while (nextSuperView != nil) { if ([nextSuperView isKindOfClass:[ControlView class]]) return nextSuperView; if ([nextSuperView isKindOfClass:[UIView class]]) { UIView* theUIView = nextSuperView; nextSuperView = theUIView.superview; } else nextSuperView = nil; } return nil; } -(RBX::Game*) getGameFromControlView { ControlView* controlView = [self findControlView]; if (controlView == nil) return nil; return [controlView getGame].get(); } - (RBX::GamepadService*) getGamepadServiceForGameDataModel { if (RBX::Game* game = [self getGameFromControlView]) if (shared_ptr<RBX::DataModel> currDataModel = game->getDataModel()) return RBX::ServiceProvider::create<RBX::GamepadService>(currDataModel.get()); return nil; } - (RBX::UserInputService*) getUserInputServiceForGameDataModel { if (RBX::Game* game = [self getGameFromControlView]) if (shared_ptr<RBX::DataModel> currDataModel = game->getDataModel()) return RBX::ServiceProvider::find<RBX::UserInputService>(currDataModel.get()); return nil; } - (RBX::TouchInputService*) getTouchInputServiceForGameDataModel { if (RBX::Game* game = [self getGameFromControlView]) if (shared_ptr<RBX::DataModel> currDataModel = game->getDataModel()) return RBX::ServiceProvider::create<RBX::TouchInputService>(currDataModel.get()); return nil; } @end