diff --git a/GameUploadDocuments/2.StepOfDoom/.DS_Store b/GameUploadDocuments/2.StepOfDoom/.DS_Store new file mode 100644 index 0000000..5ff915c Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/.DS_Store differ diff --git a/GameUploadDocuments/2.StepOfDoom/Account SS/.DS_Store b/GameUploadDocuments/2.StepOfDoom/Account SS/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Account SS/.DS_Store differ diff --git a/GameUploadDocuments/2.StepOfDoom/Account SS/StepOfDoom_WithAccount.png b/GameUploadDocuments/2.StepOfDoom/Account SS/StepOfDoom_WithAccount.png new file mode 100755 index 0000000..c6f3a35 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Account SS/StepOfDoom_WithAccount.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/.DS_Store b/GameUploadDocuments/2.StepOfDoom/Build/.DS_Store new file mode 100644 index 0000000..e92988a Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/.DS_Store differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/.DS_Store b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/.DS_Store new file mode 100644 index 0000000..9877498 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/.DS_Store differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/.cocos-project.json b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/.cocos-project.json new file mode 100644 index 0000000..fd9c5e7 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/.cocos-project.json @@ -0,0 +1,7 @@ +{ + "engine_version": "2.1.3", + "has_native": true, + "project_type": "js", + "projectName": "StepOfDoom", + "packageName": "Com.Wow.Stepofdoom" +} \ No newline at end of file diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/cocos-project-template.json b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/cocos-project-template.json new file mode 100755 index 0000000..be5de11 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/cocos-project-template.json @@ -0,0 +1,69 @@ +{ + "do_default": { + "exclude_from_template": [ + "frameworks/runtime-src" + ] + }, + "do_add_native_support": { + "append_from_template": { + "from": "frameworks/runtime-src", + "to": "frameworks/runtime-src", + "exclude": [ + "proj.ios_mac/HelloJavascript.xcodeproj/project.xcworkspace", + "proj.ios_mac/HelloJavascript.xcodeproj/xcuserdata", + "proj.win32/Debug.win32", + "proj.win32/Release.win32", + "proj.win32/HelloJavascript.sdf" + ] + }, + "append_file": [{ + "from": "cocos/scripting/js-bindings/manual/jsb_module_register.cpp", + "to": "frameworks/runtime-src/Classes/jsb_module_register.cpp" + }], + "project_rename": { + "src_project_name": "HelloJavascript", + "files": [ + "frameworks/runtime-src/proj.win32/PROJECT_NAME.vcxproj", + "frameworks/runtime-src/proj.win32/PROJECT_NAME.vcxproj.filters", + "frameworks/runtime-src/proj.win32/PROJECT_NAME.vcxproj.user", + "frameworks/runtime-src/proj.win32/PROJECT_NAME.sln", + "frameworks/runtime-src/proj.ios_mac/PROJECT_NAME.xcodeproj" + ] + }, + "project_replace_project_name": { + "src_project_name": "HelloJavascript", + "files": [ + "frameworks/runtime-src/proj.win32/PROJECT_NAME.vcxproj", + "frameworks/runtime-src/proj.win32/PROJECT_NAME.vcxproj.filters", + "frameworks/runtime-src/proj.win32/PROJECT_NAME.vcxproj.user", + "frameworks/runtime-src/proj.win32/PROJECT_NAME.sln", + "frameworks/runtime-src/proj.win32/main.cpp", + "frameworks/runtime-src/proj.android-studio/settings.gradle", + "frameworks/runtime-src/proj.android-studio/app/res/values/strings.xml", + "frameworks/runtime-src/proj.ios_mac/ios/main.m", + "frameworks/runtime-src/proj.ios_mac/ios/Prefix.pch", + "frameworks/runtime-src/proj.ios_mac/PROJECT_NAME.xcodeproj/project.pbxproj", + "frameworks/runtime-src/Classes/AppDelegate.cpp" + ] + }, + "project_replace_package_name": { + "src_package_name": "org.cocos2dx.hellojavascript", + "files": [ + "frameworks/runtime-src/proj.android-studio/app/build.gradle", + "frameworks/runtime-src/proj.android-studio/app/AndroidManifest.xml" + ] + }, + "project_replace_mac_bundleid": { + "src_bundle_id": "org.cocos2dx.hellojavascript", + "files": [ + "frameworks/runtime-src/proj.ios_mac/mac/Info.plist" + ] + }, + "project_replace_ios_bundleid": { + "src_bundle_id": "org.cocos2dx.hellojavascript", + "files": [ + "frameworks/runtime-src/proj.ios_mac/ios/Info.plist" + ] + } + } +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/.DS_Store b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/.DS_Store new file mode 100644 index 0000000..5eb26de Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/.DS_Store differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/.DS_Store b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/.DS_Store new file mode 100644 index 0000000..2684e52 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/.DS_Store differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/Classes/AppDelegate.cpp b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/Classes/AppDelegate.cpp new file mode 100755 index 0000000..1ac0ae7 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/Classes/AppDelegate.cpp @@ -0,0 +1,91 @@ +/**************************************************************************** + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos.com + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated engine source code (the "Software"), a limited, + worldwide, royalty-free, non-assignable, revocable and non-exclusive license + to use Cocos Creator solely to develop games on your target platforms. You shall + not use Cocos Creator software for developing other software or tools that's + used for developing games. You are not granted to publish, distribute, + sublicense, and/or sell copies of Cocos Creator. + + The software or tools in this License Agreement are licensed, not sold. + Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#include "AppDelegate.h" + +#include "cocos2d.h" + +#include "cocos/scripting/js-bindings/manual/jsb_module_register.hpp" +#include "cocos/scripting/js-bindings/manual/jsb_global.h" +#include "cocos/scripting/js-bindings/jswrapper/SeApi.h" +#include "cocos/scripting/js-bindings/event/EventDispatcher.h" +#include "cocos/scripting/js-bindings/manual/jsb_classtype.hpp" +// #include "platform/CCFileUtils.h" + +USING_NS_CC; + +AppDelegate::AppDelegate(int width, int height) : Application("Cocos Game", width, height) +{ +} + +AppDelegate::~AppDelegate() +{ +} + +bool AppDelegate::applicationDidFinishLaunching() +{ + se::ScriptEngine *se = se::ScriptEngine::getInstance(); + + jsb_set_xxtea_key("13c0be3a-a2cd-4e"); + + jsb_init_file_operation_delegate(); + +#if defined(COCOS2D_DEBUG) && (COCOS2D_DEBUG > 0) + // Enable debugger here + jsb_enable_debugger("0.0.0.0", 6086, false); +#endif + + se->setExceptionCallback([](const char *location, const char *message, const char *stack) { + // Send exception information to server like Tencent Bugly. + }); + + jsb_register_all_modules(); + + se->start(); + + se::AutoHandleScope hs; + jsb_run_script("jsb-adapter/jsb-builtin.js"); + jsb_run_script("main.js"); + + se->addAfterCleanupHook([]() { + JSBClassType::destroy(); + }); + + cocos2d::Device::setKeepScreenOn(true); + + return true; +} + +// This function will be called when the app is inactive. When comes a phone call,it's be invoked too +void AppDelegate::applicationDidEnterBackground() +{ + EventDispatcher::dispatchEnterBackgroundEvent(); +} + +// this function will be called when the app is active again +void AppDelegate::applicationWillEnterForeground() +{ + EventDispatcher::dispatchEnterForegroundEvent(); +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/Classes/AppDelegate.h b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/Classes/AppDelegate.h new file mode 100755 index 0000000..47bad36 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/Classes/AppDelegate.h @@ -0,0 +1,57 @@ +/**************************************************************************** + Copyright (c) 2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos.com + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated engine source code (the "Software"), a limited, + worldwide, royalty-free, non-assignable, revocable and non-exclusive license + to use Cocos Creator solely to develop games on your target platforms. You shall + not use Cocos Creator software for developing other software or tools that's + used for developing games. You are not granted to publish, distribute, + sublicense, and/or sell copies of Cocos Creator. + + The software or tools in this License Agreement are licensed, not sold. + Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ +#pragma once + +#include "platform/CCApplication.h" +/** + @brief The cocos2d Application. + + The reason for implement as private inheritance is to hide some interface call by Director. + */ +class AppDelegate : public cocos2d::Application +{ +public: + AppDelegate(int width, int height); + virtual ~AppDelegate(); + + /** + @brief Implement Director and Scene init code here. + @return true Initialize success, app continue. + @return false Initialize failed, app terminate. + */ + virtual bool applicationDidFinishLaunching() override; + + /** + @brief The function be called when the application enter background + @param the pointer of the application + */ + virtual void applicationDidEnterBackground() override; + + /** + @brief The function be called when the application enter foreground + @param the pointer of the application + */ + virtual void applicationWillEnterForeground() override; +}; diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/Classes/jsb_module_register.cpp b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/Classes/jsb_module_register.cpp new file mode 100644 index 0000000..59c778b --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/Classes/jsb_module_register.cpp @@ -0,0 +1,181 @@ +/**************************************************************************** + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos.com + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated engine source code (the "Software"), a limited, + worldwide, royalty-free, non-assignable, revocable and non-exclusive license + to use Cocos Creator solely to develop games on your target platforms. You shall + not use Cocos Creator software for developing other software or tools that's + used for developing games. You are not granted to publish, distribute, + sublicense, and/or sell copies of Cocos Creator. + + The software or tools in this License Agreement are licensed, not sold. + Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#include "cocos2d.h" + +#include "cocos/scripting/js-bindings/manual/jsb_module_register.hpp" +#include "cocos/scripting/js-bindings/jswrapper/SeApi.h" + +#include "cocos/scripting/js-bindings/auto/jsb_cocos2dx_auto.hpp" + +#include "cocos/scripting/js-bindings/manual/jsb_global.h" +#include "cocos/scripting/js-bindings/manual/jsb_node.hpp" +#include "cocos/scripting/js-bindings/manual/jsb_conversions.hpp" +#include "cocos/scripting/js-bindings/manual/jsb_opengl_manual.hpp" +#include "cocos/scripting/js-bindings/manual/jsb_platform.h" +#include "cocos/scripting/js-bindings/manual/jsb_cocos2dx_manual.hpp" +#include "cocos/scripting/js-bindings/manual/jsb_xmlhttprequest.hpp" +#include "cocos/scripting/js-bindings/manual/jsb_cocos2dx_network_manual.h" +#include "cocos/scripting/js-bindings/auto/jsb_cocos2dx_network_auto.hpp" +#include "cocos/scripting/js-bindings/auto/jsb_cocos2dx_extension_auto.hpp" + +#if USE_GFX_RENDERER +#include "cocos/scripting/js-bindings/auto/jsb_gfx_auto.hpp" +#include "cocos/scripting/js-bindings/auto/jsb_renderer_auto.hpp" +#include "cocos/scripting/js-bindings/manual/jsb_gfx_manual.hpp" +#include "cocos/scripting/js-bindings/manual/jsb_renderer_manual.hpp" +#endif + +#if USE_SOCKET +#include "cocos/scripting/js-bindings/manual/jsb_websocket.hpp" +#include "cocos/scripting/js-bindings/manual/jsb_socketio.hpp" +#endif // USE_SOCKET + +#if USE_AUDIO +#include "cocos/scripting/js-bindings/auto/jsb_cocos2dx_audioengine_auto.hpp" +#endif + +#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC) +#include "cocos/scripting/js-bindings/manual/JavaScriptObjCBridge.h" +#endif + +#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) +#include "cocos/scripting/js-bindings/manual/JavaScriptJavaBridge.h" +#endif + +#if USE_MIDDLEWARE +#include "cocos/scripting/js-bindings/auto/jsb_cocos2dx_editor_support_auto.hpp" + +#if USE_SPINE +#include "cocos/scripting/js-bindings/auto/jsb_cocos2dx_spine_auto.hpp" +#include "cocos/scripting/js-bindings/manual/jsb_spine_manual.hpp" +#endif + +#if USE_DRAGONBONES +#include "cocos/scripting/js-bindings/auto/jsb_cocos2dx_dragonbones_auto.hpp" +#include "cocos/scripting/js-bindings/manual/jsb_dragonbones_manual.hpp" +#endif + +#endif // USE_MIDDLEWARE + +#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) + +#if USE_VIDEO +#include "cocos/scripting/js-bindings/auto/jsb_video_auto.hpp" +#endif + +#if USE_WEB_VIEW +#include "cocos/scripting/js-bindings/auto/jsb_webview_auto.hpp" +#endif + +#endif // (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) + +using namespace cocos2d; + +bool jsb_register_all_modules() +{ + se::ScriptEngine* se = se::ScriptEngine::getInstance(); + + se->addBeforeInitHook([](){ + JSBClassType::init(); + }); + + se->addBeforeCleanupHook([se](){ + se->garbageCollect(); + PoolManager::getInstance()->getCurrentPool()->clear(); + se->garbageCollect(); + PoolManager::getInstance()->getCurrentPool()->clear(); + }); + + se->addRegisterCallback(jsb_register_global_variables); + se->addRegisterCallback(JSB_register_opengl); + se->addRegisterCallback(register_all_engine); + se->addRegisterCallback(register_all_cocos2dx_manual); + se->addRegisterCallback(register_platform_bindings); + + se->addRegisterCallback(register_all_network); + se->addRegisterCallback(register_all_cocos2dx_network_manual); + se->addRegisterCallback(register_all_xmlhttprequest); + // extension depend on network + se->addRegisterCallback(register_all_extension); + +#if USE_GFX_RENDERER + se->addRegisterCallback(register_all_gfx); + se->addRegisterCallback(jsb_register_gfx_manual); + se->addRegisterCallback(register_all_renderer); + se->addRegisterCallback(jsb_register_renderer_manual); +#endif + +#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC) + se->addRegisterCallback(register_javascript_objc_bridge); +#endif + +#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) + se->addRegisterCallback(register_javascript_java_bridge); +#endif + +#if USE_AUDIO + se->addRegisterCallback(register_all_audioengine); +#endif + + +#if USE_SOCKET + se->addRegisterCallback(register_all_websocket); + se->addRegisterCallback(register_all_socketio); +#endif + +#if USE_MIDDLEWARE + se->addRegisterCallback(register_all_cocos2dx_editor_support); + +#if USE_SPINE + se->addRegisterCallback(register_all_cocos2dx_spine); + se->addRegisterCallback(register_all_spine_manual); +#endif + +#if USE_DRAGONBONES + se->addRegisterCallback(register_all_cocos2dx_dragonbones); + se->addRegisterCallback(register_all_dragonbones_manual); +#endif + +#endif // USE_MIDDLEWARE + +#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) + +#if USE_VIDEO + se->addRegisterCallback(register_all_video); +#endif + +#if USE_WEB_VIEW + se->addRegisterCallback(register_all_webview); +#endif + +#endif // (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) + + se->addAfterCleanupHook([](){ + PoolManager::getInstance()->getCurrentPool()->clear(); + JSBClassType::destroy(); + }); + return true; +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/.gitignore b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/.gitignore new file mode 100755 index 0000000..9c4de58 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/.gitignore @@ -0,0 +1,7 @@ +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/.gitignore b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/.gitignore new file mode 100755 index 0000000..1de9949 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/.gitignore @@ -0,0 +1,2 @@ +/build +/jniLibs diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/AndroidManifest.xml b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/AndroidManifest.xml new file mode 100755 index 0000000..5c029b9 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/AndroidManifest.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/build.gradle b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/build.gradle new file mode 100755 index 0000000..40dacc1 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/build.gradle @@ -0,0 +1,140 @@ +import org.apache.tools.ant.taskdefs.condition.Os + +apply plugin: 'com.android.application' + +android { + compileSdkVersion PROP_COMPILE_SDK_VERSION.toInteger() + buildToolsVersion PROP_BUILD_TOOLS_VERSION + + defaultConfig { + applicationId "Com.Wow.Stepofdoom" + minSdkVersion PROP_MIN_SDK_VERSION + targetSdkVersion PROP_TARGET_SDK_VERSION + versionCode 1 + versionName "1.0" + + externalNativeBuild { + ndkBuild { + if (!project.hasProperty("PROP_NDK_MODE") || PROP_NDK_MODE.compareTo('none') != 0) { + // skip the NDK Build step if PROP_NDK_MODE is none + targets 'cocos2djs' + arguments 'NDK_TOOLCHAIN_VERSION=clang' + + def module_paths = [project.file("/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x"), + project.file("/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos"), + project.file("/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external")] + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + arguments 'NDK_MODULE_PATH=' + module_paths.join(";") + } + else { + arguments 'NDK_MODULE_PATH=' + module_paths.join(':') + } + + arguments '-j' + Runtime.runtime.availableProcessors() + abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String}) + } + } + } + } + + sourceSets.main { + java.srcDir "src" + res.srcDir "res" + jniLibs.srcDir "libs" + manifest.srcFile "AndroidManifest.xml" + } + + externalNativeBuild { + ndkBuild { + if (!project.hasProperty("PROP_NDK_MODE") || PROP_NDK_MODE.compareTo('none') != 0) { + // skip the NDK Build step if PROP_NDK_MODE is none + path "jni/Android.mk" + } + } + } + + signingConfigs { + + release { + if (project.hasProperty("RELEASE_STORE_FILE")) { + storeFile file(RELEASE_STORE_FILE) + storePassword RELEASE_STORE_PASSWORD + keyAlias RELEASE_KEY_ALIAS + keyPassword RELEASE_KEY_PASSWORD + } + } + } + + buildTypes { + release { + debuggable false + jniDebuggable false + renderscriptDebuggable false + minifyEnabled true + shrinkResources true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + if (project.hasProperty("RELEASE_STORE_FILE")) { + signingConfig signingConfigs.release + } + + externalNativeBuild { + ndkBuild { + arguments 'NDK_DEBUG=0' + } + } + } + + debug { + debuggable true + jniDebuggable true + renderscriptDebuggable true + externalNativeBuild { + ndkBuild { + arguments 'NDK_DEBUG=1' + } + } + } + } +} + +android.applicationVariants.all { variant -> + // delete previous files first + delete "${buildDir}/intermediates/merged_assets/${variant.dirName}" + + variant.mergeAssets.doLast { + def sourceDir = "${buildDir}/../../../../.." + + copy { + from "${sourceDir}/res" + into "${outputDir}/res" + } + + copy { + from "${sourceDir}/subpackages" + into "${outputDir}/subpackages" + } + + copy { + from "${sourceDir}/src" + into "${outputDir}/src" + } + + copy { + from "${sourceDir}/jsb-adapter" + into "${outputDir}/jsb-adapter" + } + + copy { + from "${sourceDir}/main.js" + from "${sourceDir}/project.json" + from "${sourceDir}/cacert.pem" + into outputDir + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar','*.aar']) + implementation fileTree(dir: "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/platform/android/java/libs", include: ['*.jar']) + implementation project(':libcocos2dx') +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/jni/Android.mk b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/jni/Android.mk new file mode 100755 index 0000000..4962c98 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/jni/Android.mk @@ -0,0 +1,23 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := cocos2djs_shared + +LOCAL_MODULE_FILENAME := libcocos2djs + +ifeq ($(USE_ARM_MODE),1) +LOCAL_ARM_MODE := arm +endif + +LOCAL_SRC_FILES := hellojavascript/main.cpp \ + ../../../Classes/AppDelegate.cpp \ + ../../../Classes/jsb_module_register.cpp \ + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../Classes + +LOCAL_STATIC_LIBRARIES := cocos2dx_static + +include $(BUILD_SHARED_LIBRARY) + +$(call import-module, cocos) diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/jni/Application.mk b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/jni/Application.mk new file mode 100755 index 0000000..f01cbb1 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/jni/Application.mk @@ -0,0 +1,47 @@ +APP_STL := c++_static + +# Uncomment this line to compile to armeabi-v7a, your application will run faster but support less devices +APP_ABI := armeabi-v7a + +APP_CPPFLAGS := -frtti -std=c++11 -fsigned-char +APP_LDFLAGS := -latomic + +# To solve windows commands char length too long +#APP_SHORT_COMMANDS := true + +USE_ARM_MODE := 1 + +# MUST be careful to modify this manually +# disable module will speed up compile time, and reduce package size +USE_GFX_RENDERER := 0 +USE_VIDEO := 1 +USE_WEB_VIEW := 1 +USE_AUDIO := 1 +USE_SOCKET := 1 +USE_SPINE := 1 +USE_DRAGONBONES := 1 +USE_TIFF := 1 +USE_MIDDLEWARE := 1 + +APP_CPPFLAGS += -DUSE_GFX_RENDERER=$(USE_GFX_RENDERER) +APP_CPPFLAGS += -DUSE_VIDEO=${USE_VIDEO} +APP_CPPFLAGS += -DUSE_WEB_VIEW=${USE_WEB_VIEW} +APP_CPPFLAGS += -DUSE_AUDIO=${USE_AUDIO} +APP_CPPFLAGS += -DUSE_SOCKET=${USE_SOCKET} +APP_CPPFLAGS += -DUSE_SPINE=${USE_SPINE} +APP_CPPFLAGS += -DUSE_DRAGONBONES=${USE_DRAGONBONES} +APP_CPPFLAGS += -DCC_USE_TIFF=${USE_TIFF} +APP_CPPFLAGS += -DUSE_MIDDLEWARE=${USE_MIDDLEWARE} + +ifeq ($(NDK_DEBUG),1) + APP_CPPFLAGS += -DCOCOS2D_DEBUG=1 + APP_CFLAGS += -DCOCOS2D_DEBUG=1 + APP_OPTIM := debug +else + APP_CPPFLAGS += -DNDEBUG + APP_CFLAGS += -DNDEBUG + APP_OPTIM := release +endif + +# Some Android Simulators don't support SSE instruction, so disable it for x86 arch. +APP_CPPFLAGS += -U__SSE__ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/jni/hellojavascript/main.cpp b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/jni/hellojavascript/main.cpp new file mode 100755 index 0000000..df636ff --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/jni/hellojavascript/main.cpp @@ -0,0 +1,53 @@ +/**************************************************************************** + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos.com + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated engine source code (the "Software"), a limited, + worldwide, royalty-free, non-assignable, revocable and non-exclusive license + to use Cocos Creator solely to develop games on your target platforms. You shall + not use Cocos Creator software for developing other software or tools that's + used for developing games. You are not granted to publish, distribute, + sublicense, and/or sell copies of Cocos Creator. + + The software or tools in this License Agreement are licensed, not sold. + Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#include "AppDelegate.h" +#include "cocos2d.h" +#include "platform/android/jni/JniHelper.h" +#include +#include + +#define LOG_TAG "main" +#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) +using namespace cocos2d; + +//called when JNI_OnLoad() +void cocos_jni_env_init(JNIEnv *env) +{ + LOGD("cocos_jni_env_init"); +} + +//called when onSurfaceCreated() +Application *cocos_android_app_init(JNIEnv *env, int width, int height) +{ + LOGD("cocos_android_app_init"); + auto app = new AppDelegate(width, height); + return app; +} + +extern "C" +{ + /*JNI_CALL_FUNCTION*/ +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/proguard-rules.pro b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/proguard-rules.pro new file mode 100755 index 0000000..6485510 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/proguard-rules.pro @@ -0,0 +1,37 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in E:\developSoftware\Android\SDK/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Proguard Cocos2d-x-lite for release +-keep public class org.cocos2dx.** { *; } +-dontwarn org.cocos2dx.** + +# Proguard Apache HTTP for release +-keep class org.apache.http.** { *; } +-dontwarn org.apache.http.** + +# Proguard Android Webivew for release. you can comment if you are not using a webview +-keep public class android.net.http.SslError +-keep public class android.webkit.WebViewClient + +-dontwarn android.webkit.WebView +-dontwarn android.net.http.SslError +-dontwarn android.webkit.WebViewClient + +# keep anysdk for release. you can comment if you are not using anysdk +-keep public class com.anysdk.** { *; } +-dontwarn com.anysdk.** diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/project.properties b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/project.properties new file mode 100755 index 0000000..f049142 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/project.properties @@ -0,0 +1,11 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "ant.properties", and override values to adapt the script to your +# project structure. + +# Project target. +target=android-10 diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/mipmap-hdpi/ic_launcher.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/mipmap-hdpi/ic_launcher.png new file mode 100755 index 0000000..8aa4767 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/mipmap-hdpi/ic_launcher.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/mipmap-mdpi/ic_launcher.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/mipmap-mdpi/ic_launcher.png new file mode 100755 index 0000000..d53fbdd Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/mipmap-mdpi/ic_launcher.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/mipmap-xhdpi/ic_launcher.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/mipmap-xhdpi/ic_launcher.png new file mode 100755 index 0000000..2f72eac Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/mipmap-xxhdpi/ic_launcher.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/mipmap-xxhdpi/ic_launcher.png new file mode 100755 index 0000000..1526615 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/values/strings.xml b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/values/strings.xml new file mode 100755 index 0000000..1cef5ed --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/values/strings.xml @@ -0,0 +1,3 @@ + + StepOfDoom + diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/AppActivity.java b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/AppActivity.java new file mode 100755 index 0000000..3e7710e --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/AppActivity.java @@ -0,0 +1,137 @@ +/**************************************************************************** +Copyright (c) 2015-2016 Chukong Technologies Inc. +Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + +http://www.cocos2d-x.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +****************************************************************************/ +package org.cocos2dx.javascript; + +import org.cocos2dx.lib.Cocos2dxActivity; +import org.cocos2dx.lib.Cocos2dxGLSurfaceView; + +import android.os.Bundle; + +import android.content.Intent; +import android.content.res.Configuration; + +public class AppActivity extends Cocos2dxActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + // Workaround in https://stackoverflow.com/questions/16283079/re-launch-of-activity-on-home-button-but-only-the-first-time/16447508 + if (!isTaskRoot()) { + // Android launched another instance of the root activity into an existing task + // so just quietly finish and go away, dropping the user back into the activity + // at the top of the stack (ie: the last state of this task) + // Don't need to finish it again since it's finished in super.onCreate . + return; + } + // DO OTHER INITIALIZATION BELOW + SDKWrapper.getInstance().init(this); + + } + + @Override + public Cocos2dxGLSurfaceView onCreateView() { + Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this); + // TestCpp should create stencil buffer + glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8); + SDKWrapper.getInstance().setGLSurfaceView(glSurfaceView, this); + + return glSurfaceView; + } + + @Override + protected void onResume() { + super.onResume(); + SDKWrapper.getInstance().onResume(); + + } + + @Override + protected void onPause() { + super.onPause(); + SDKWrapper.getInstance().onPause(); + + } + + @Override + protected void onDestroy() { + super.onDestroy(); + SDKWrapper.getInstance().onDestroy(); + + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + SDKWrapper.getInstance().onActivityResult(requestCode, resultCode, data); + } + + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + SDKWrapper.getInstance().onNewIntent(intent); + } + + @Override + protected void onRestart() { + super.onRestart(); + SDKWrapper.getInstance().onRestart(); + } + + @Override + protected void onStop() { + super.onStop(); + SDKWrapper.getInstance().onStop(); + } + + @Override + public void onBackPressed() { + SDKWrapper.getInstance().onBackPressed(); + super.onBackPressed(); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + SDKWrapper.getInstance().onConfigurationChanged(newConfig); + super.onConfigurationChanged(newConfig); + } + + @Override + protected void onRestoreInstanceState(Bundle savedInstanceState) { + SDKWrapper.getInstance().onRestoreInstanceState(savedInstanceState); + super.onRestoreInstanceState(savedInstanceState); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + SDKWrapper.getInstance().onSaveInstanceState(outState); + super.onSaveInstanceState(outState); + } + + @Override + protected void onStart() { + SDKWrapper.getInstance().onStart(); + super.onStart(); + } +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/SDKWrapper.java b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/SDKWrapper.java new file mode 100644 index 0000000..4cc8cf3 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/SDKWrapper.java @@ -0,0 +1,179 @@ +/**************************************************************************** + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos.com + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated engine source code (the "Software"), a limited, + worldwide, royalty-free, non-assignable, revocable and non-exclusive license + to use Cocos Creator solely to develop games on your target platforms. You shall + not use Cocos Creator software for developing other software or tools that's + used for developing games. You are not granted to publish, distribute, + sublicense, and/or sell copies of Cocos Creator. + + The software or tools in this License Agreement are licensed, not sold. + Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +package org.cocos2dx.javascript; + +import android.content.Context; +import android.content.Intent; +import android.content.res.AssetManager; +import android.content.res.Configuration; +import android.opengl.GLSurfaceView; +import android.os.Bundle; +import org.cocos2dx.javascript.service.SDKClass; +import org.json.*; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; + +public class SDKWrapper { + private Context mainActive = null; + private static SDKWrapper mInstace = null; + private List sdkClasses; + + public static SDKWrapper getInstance() { + if (null == mInstace) { + mInstace = new SDKWrapper(); + } + return mInstace; + } + + public void init(Context context) { + this.mainActive = context; + for (SDKClass sdk : this.sdkClasses) { + sdk.init(context); + } + } + + public Context getContext() { + return this.mainActive; + } + + public void loadSDKClass() { + ArrayList classes = new ArrayList(); + try { + String json = this.getJson(this.mainActive, "project.json"); + JSONObject jsonObject = new JSONObject(json); + JSONArray serviceClassPath = jsonObject.getJSONArray("serviceClassPath"); + if (serviceClassPath == null) return; + int length = serviceClassPath.length(); + for (int i = 0; i < length; i++) { + String classPath = serviceClassPath.getString(i); + SDKClass sdk = (SDKClass) Class.forName(classPath).newInstance(); + classes.add(sdk); + } + } catch (Exception e) { + e.printStackTrace(); + } + this.sdkClasses = classes; + } + + private String getJson(Context mContext, String fileName) { + StringBuilder sb = new StringBuilder(); + AssetManager am = mContext.getAssets(); + try { + BufferedReader br = new BufferedReader(new InputStreamReader(am.open(fileName))); + String next = ""; + while (null != (next = br.readLine())) { + sb.append(next); + } + } catch (IOException e) { + e.printStackTrace(); + sb.delete(0, sb.length()); + } + return sb.toString().trim(); + } + + public void setGLSurfaceView(GLSurfaceView view, Context context) { + this.mainActive = context; + this.loadSDKClass(); + for (SDKClass sdk : this.sdkClasses) { + sdk.setGLSurfaceView(view); + } + } + + public void onResume() { + for (SDKClass sdk : this.sdkClasses) { + sdk.onResume(); + } + } + + public void onPause() { + for (SDKClass sdk : this.sdkClasses) { + sdk.onPause(); + } + } + + public void onDestroy() { + for (SDKClass sdk : this.sdkClasses) { + sdk.onDestroy(); + } + } + + public void onActivityResult(int requestCode, int resultCode, Intent data) { + for (SDKClass sdk : this.sdkClasses) { + sdk.onActivityResult(requestCode, resultCode, data); + } + } + + public void onNewIntent(Intent intent) { + for (SDKClass sdk : this.sdkClasses) { + sdk.onNewIntent(intent); + } + } + + public void onRestart() { + for (SDKClass sdk : this.sdkClasses) { + sdk.onRestart(); + } + } + + public void onStop() { + for (SDKClass sdk : this.sdkClasses) { + sdk.onStop(); + } + } + + public void onBackPressed() { + for (SDKClass sdk : this.sdkClasses) { + sdk.onBackPressed(); + } + } + + public void onConfigurationChanged(Configuration newConfig) { + for (SDKClass sdk : this.sdkClasses) { + sdk.onConfigurationChanged(newConfig); + } + } + + public void onRestoreInstanceState(Bundle savedInstanceState) { + for (SDKClass sdk : this.sdkClasses) { + sdk.onRestoreInstanceState(savedInstanceState); + } + } + + public void onSaveInstanceState(Bundle outState) { + for (SDKClass sdk : this.sdkClasses) { + sdk.onSaveInstanceState(outState); + } + } + + public void onStart() { + for (SDKClass sdk : this.sdkClasses) { + sdk.onStart(); + } + } +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/service/SDKClass.java b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/service/SDKClass.java new file mode 100644 index 0000000..d296192 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/service/SDKClass.java @@ -0,0 +1,40 @@ +package org.cocos2dx.javascript.service; + +import android.content.Context; +import android.content.Intent; +import android.content.res.Configuration; +import android.opengl.GLSurfaceView; +import android.os.Bundle; + +public abstract class SDKClass implements SDKInterface { + private Context mainActive = null; + public Context getContext(){ return mainActive;} + @Override + public void init(Context context){ this.mainActive = context; } + @Override + public void setGLSurfaceView(GLSurfaceView view){} + @Override + public void onResume(){} + @Override + public void onPause(){} + @Override + public void onDestroy(){} + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data){} + @Override + public void onNewIntent(Intent intent){} + @Override + public void onRestart(){} + @Override + public void onStop(){} + @Override + public void onBackPressed(){} + @Override + public void onConfigurationChanged(Configuration newConfig){} + @Override + public void onRestoreInstanceState(Bundle savedInstanceState){} + @Override + public void onSaveInstanceState(Bundle outState){} + @Override + public void onStart(){} +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/service/SDKInterface.java b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/service/SDKInterface.java new file mode 100644 index 0000000..a13a329 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/service/SDKInterface.java @@ -0,0 +1,24 @@ +package org.cocos2dx.javascript.service; + +import android.content.Context; +import android.content.Intent; +import android.content.res.Configuration; +import android.opengl.GLSurfaceView; +import android.os.Bundle; + +public interface SDKInterface { + void init(Context context); + void setGLSurfaceView(GLSurfaceView view); + void onResume(); + void onPause(); + void onDestroy(); + void onActivityResult(int requestCode, int resultCode, Intent data); + void onNewIntent(Intent intent); + void onRestart(); + void onStop(); + void onBackPressed(); + void onConfigurationChanged(Configuration newConfig); + void onRestoreInstanceState(Bundle savedInstanceState); + void onSaveInstanceState(Bundle outState); + void onStart(); +} \ No newline at end of file diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/build-cfg.json b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/build-cfg.json new file mode 100755 index 0000000..850facb --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/build-cfg.json @@ -0,0 +1,8 @@ +{ + "ndk_module_path" :[ + "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x", + "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos", + "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external" + ], + "copy_resources": [] +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/build.gradle b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/build.gradle new file mode 100755 index 0000000..59e17ac --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/build.gradle @@ -0,0 +1,30 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + + repositories { + google() + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.3.3' + + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + flatDir { + dirs 'libs' + } + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle.properties b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle.properties new file mode 100755 index 0000000..0e6d187 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle.properties @@ -0,0 +1,42 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# Android SDK version that will be used as the compile project +PROP_COMPILE_SDK_VERSION=27 + +# Android SDK version that will be used as the earliest version of android this application can run on +PROP_MIN_SDK_VERSION=16 + +# Android SDK version that will be used as the latest version of android this application has been tested on +PROP_TARGET_SDK_VERSION=27 + +# Android Build Tools version that will be used as the compile project +PROP_BUILD_TOOLS_VERSION=28.0.3 + +# List of CPU Archtexture to build that application with +# Available architextures (armeabi-v7a | arm64-v8a | x86) +# To build for multiple architexture, use the `:` between them +# Example - PROP_APP_ABI=armeabi-v7a:arm64-v8a:x86 +PROP_APP_ABI=armeabi-v7a + +# fill in sign information for release mode +RELEASE_STORE_FILE= +RELEASE_STORE_PASSWORD= +RELEASE_KEY_ALIAS= +RELEASE_KEY_PASSWORD= diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle/wrapper/gradle-wrapper.jar b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle/wrapper/gradle-wrapper.jar new file mode 100755 index 0000000..8c0fb64 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle/wrapper/gradle-wrapper.jar differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle/wrapper/gradle-wrapper.properties b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle/wrapper/gradle-wrapper.properties new file mode 100755 index 0000000..46f17a9 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Oct 27 10:18:28 CST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradlew b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradlew new file mode 100755 index 0000000..64f1d2c --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +eval "source ~/.bash_profile" +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradlew.bat b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradlew.bat new file mode 100755 index 0000000..8a0b282 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/settings.gradle b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/settings.gradle new file mode 100755 index 0000000..f8ee2ec --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.android-studio/settings.gradle @@ -0,0 +1,4 @@ +include ':libcocos2dx' +project(':libcocos2dx').projectDir = new File('/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/platform/android/libcocos2dx') +include ':StepOfDoom' +project(':StepOfDoom').projectDir = new File(settingsDir, 'app') diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/.DS_Store b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/.DS_Store new file mode 100644 index 0000000..416646d Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/.DS_Store differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/StepOfDoom.xcodeproj/project.pbxproj b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/StepOfDoom.xcodeproj/project.pbxproj new file mode 100755 index 0000000..c235272 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/StepOfDoom.xcodeproj/project.pbxproj @@ -0,0 +1,781 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1A37E9DA200DEF120078AF72 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A37E9D9200DEF110078AF72 /* SystemConfiguration.framework */; }; + 1A37E9DC200DEF190078AF72 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A37E9DB200DEF190078AF72 /* SystemConfiguration.framework */; }; + 1A499EBB1F0CDDC3004E6AEC /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A499EBA1F0CDDC3004E6AEC /* CFNetwork.framework */; }; + 1A499EBD1F0CDDD9004E6AEC /* libicucore.A.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A499EBC1F0CDDD9004E6AEC /* libicucore.A.tbd */; }; + 1A82F5FB169AC92500C4B13A /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A82F5FA169AC92500C4B13A /* libsqlite3.dylib */; }; + 1AC22EDE18CA0E11007112B9 /* project.json in Resources */ = {isa = PBXBuildFile; fileRef = 1A1A081B18C9DF05005C6854 /* project.json */; }; + 1ACA99231F550A20002DE225 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1ACA99221F550A20002DE225 /* JavaScriptCore.framework */; }; + 1ACA99251F550A28002DE225 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1ACA99241F550A28002DE225 /* JavaScriptCore.framework */; }; + 1AD7E0A818C9DB93004817A6 /* main.js in Resources */ = {isa = PBXBuildFile; fileRef = 1A6BF21418C9DB5900FB0E1C /* main.js */; }; + 1AD7E0A918C9DBE3004817A6 /* main.js in Resources */ = {isa = PBXBuildFile; fileRef = 1A6BF21418C9DB5900FB0E1C /* main.js */; }; + 1AE159EC18C9DF3600FCA372 /* project.json in Resources */ = {isa = PBXBuildFile; fileRef = 1A1A081B18C9DF05005C6854 /* project.json */; }; + 1AFFCD7E1F7A5D5400628F2C /* LaunchScreenBackground.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AFFCD7B1F7A5D4F00628F2C /* LaunchScreenBackground.png */; }; + 1AFFCD7F1F7A5D5400628F2C /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1ABC56911F7A005D00826282 /* Images.xcassets */; }; + 22CC757121BA5B5C00FBF2F7 /* SDKWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 22CC756D21BA5B5C00FBF2F7 /* SDKWrapper.m */; }; + 28A34C10225B462E00926306 /* subpackages in Resources */ = {isa = PBXBuildFile; fileRef = 28A34C0F225B462E00926306 /* subpackages */; }; + 294D7D801D0D668F002CE7B7 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 294D7D7F1D0D668F002CE7B7 /* CoreText.framework */; }; + 4011F9CF212BD6750091CC5B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4011F9D1212BD6750091CC5B /* LaunchScreen.storyboard */; }; + 4011F9D5212BD7050091CC5B /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4011F9D7212BD7050091CC5B /* Localizable.strings */; }; + 4033CDBC20E4935100DAA37B /* jsb-adapter in Resources */ = {isa = PBXBuildFile; fileRef = 4033CDBB20E4935000DAA37B /* jsb-adapter */; }; + 4033CDBD20E4935100DAA37B /* jsb-adapter in Resources */ = {isa = PBXBuildFile; fileRef = 4033CDBB20E4935000DAA37B /* jsb-adapter */; }; + 467AF6082321FBED00770112 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 467AF6072321FBED00770112 /* WebKit.framework */; }; + 467AF613232881E400770112 /* AVKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 467AF612232881E400770112 /* AVKit.framework */; }; + 467AF615232881EB00770112 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 467AF614232881EB00770112 /* CoreMedia.framework */; }; + 4DD5E6AB1CDAF6430046171E /* libcocos2d Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DD0DB561CDAF5F40099AD86 /* libcocos2d Mac.a */; }; + 4DD5E6B11CDAF65C0046171E /* libcocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DD0DB581CDAF5F40099AD86 /* libcocos2d iOS.a */; }; + 502380DC17EBB88200990C9B /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 502380DB17EBB88200990C9B /* libcurl.dylib */; }; + 509D4A8117EBB24E00697056 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D4545215156E28EF00887EB5 /* AppDelegate.cpp */; }; + 509D4A8817EBB24E00697056 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A82F5FA169AC92500C4B13A /* libsqlite3.dylib */; }; + 509D4A8917EBB24E00697056 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D454520B156E22BD00887EB5 /* libz.dylib */; }; + 509D4A8A17EBB24E00697056 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275411517C094001B78AA /* QuartzCore.framework */; }; + 509D4A8C17EBB24E00697056 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275451517C094001B78AA /* OpenAL.framework */; }; + 509D4A8D17EBB24E00697056 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275471517C094001B78AA /* AudioToolbox.framework */; }; + 509D4A8E17EBB24E00697056 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275491517C094001B78AA /* AVFoundation.framework */; }; + 509D4A9017EBB24E00697056 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754D1517C094001B78AA /* Foundation.framework */; }; + 509D4A9117EBB24E00697056 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754F1517C094001B78AA /* CoreGraphics.framework */; }; + 509D4ABC17EBB2AB00697056 /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 509D4AAC17EBB2AB00697056 /* AppController.mm */; }; + 509D4AC817EBB2AB00697056 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 509D4AB817EBB2AB00697056 /* main.m */; }; + 509D4AC917EBB2AB00697056 /* RootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 509D4ABB17EBB2AB00697056 /* RootViewController.mm */; }; + 509D4ACF17EBB2BE00697056 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 509D4ACB17EBB2BE00697056 /* Icon.icns */; }; + 509D4AE717EBB81800697056 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 509D4AE617EBB81800697056 /* OpenGL.framework */; }; + 509D4AE917EBB82000697056 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 509D4AE817EBB82000697056 /* AppKit.framework */; }; + 509D4AEB17EBB82600697056 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 509D4AEA17EBB82600697056 /* IOKit.framework */; }; + A92275421517C094001B78AA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275411517C094001B78AA /* QuartzCore.framework */; }; + A92275441517C094001B78AA /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275431517C094001B78AA /* OpenGLES.framework */; }; + A92275461517C094001B78AA /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275451517C094001B78AA /* OpenAL.framework */; }; + A92275481517C094001B78AA /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275471517C094001B78AA /* AudioToolbox.framework */; }; + A922754A1517C094001B78AA /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275491517C094001B78AA /* AVFoundation.framework */; }; + A922754C1517C094001B78AA /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754B1517C094001B78AA /* UIKit.framework */; }; + A922754E1517C094001B78AA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754D1517C094001B78AA /* Foundation.framework */; }; + A92275501517C094001B78AA /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754F1517C094001B78AA /* CoreGraphics.framework */; }; + ABE456E31D34F87300F1F400 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABE456E21D34F87300F1F400 /* CFNetwork.framework */; }; + ABE456E51D34F87A00F1F400 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABE456E41D34F87A00F1F400 /* CoreFoundation.framework */; }; + ABE456E71D34F87F00F1F400 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABE456E61D34F87F00F1F400 /* MobileCoreServices.framework */; }; + ABE456E91D34F88A00F1F400 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABE456E81D34F88A00F1F400 /* SystemConfiguration.framework */; }; + ABE456EB1D34F89000F1F400 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABE456EA1D34F89000F1F400 /* GameController.framework */; }; + BA3A85EC1A724AE900924D24 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA3A85EB1A724AE900924D24 /* Security.framework */; }; + BAEE4D841AC40C11003BEB0F /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BAEE4D831AC40C11003BEB0F /* Security.framework */; }; + C03780EB18BEE0E400FE4F13 /* src in Resources */ = {isa = PBXBuildFile; fileRef = C03780EA18BEE0E400FE4F13 /* src */; }; + C03780EC18BEE0E400FE4F13 /* src in Resources */ = {isa = PBXBuildFile; fileRef = C03780EA18BEE0E400FE4F13 /* src */; }; + C06E23CC18CEFE680093C81A /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C06E23CB18CEFE680093C81A /* main.cpp */; }; + C0799CB918BAE62000E9C828 /* res in Resources */ = {isa = PBXBuildFile; fileRef = C0799CB518BAE62000E9C828 /* res */; }; + C0799CBA18BAE62000E9C828 /* res in Resources */ = {isa = PBXBuildFile; fileRef = C0799CB518BAE62000E9C828 /* res */; }; + D454520C156E22BD00887EB5 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D454520B156E22BD00887EB5 /* libz.dylib */; }; + D4545227156E28EF00887EB5 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D4545215156E28EF00887EB5 /* AppDelegate.cpp */; }; + D6B061241803AB9F0077942B /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B061231803AB9F0077942B /* CoreMotion.framework */; }; + FA676C761C71AFA200E091E3 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FA676C751C71AFA200E091E3 /* libiconv.dylib */; }; + FA676C781C71AFAB00E091E3 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FA676C771C71AFAB00E091E3 /* libiconv.dylib */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 4DD0DB551CDAF5F40099AD86 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1551A33F158F2AB200E66CFE; + remoteInfo = "libcocos2d Mac"; + }; + 4DD0DB571CDAF5F40099AD86 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A07A4D641783777C0073F6A7; + remoteInfo = "libcocos2d iOS"; + }; + 4DD5E6A91CDAF6330046171E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1551A33E158F2AB200E66CFE; + remoteInfo = "libcocos2d Mac"; + }; + 4DD5E6AF1CDAF6520046171E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4C241783777C0073F6A7; + remoteInfo = "libcocos2d iOS"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 051C018121E32AE400D4A347 /* UserConfigIOS.release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = UserConfigIOS.release.xcconfig; path = ios/UserConfigIOS.release.xcconfig; sourceTree = ""; }; + 051C018221E32AE400D4A347 /* UserConfigIOS.debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = UserConfigIOS.debug.xcconfig; path = ios/UserConfigIOS.debug.xcconfig; sourceTree = ""; }; + 051C018521E32AF000D4A347 /* UserConfigMac.release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = UserConfigMac.release.xcconfig; sourceTree = ""; }; + 051C018621E32AF100D4A347 /* UserConfigMac.debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = UserConfigMac.debug.xcconfig; sourceTree = ""; }; + 1A1A081B18C9DF05005C6854 /* project.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = project.json; path = ../../../project.json; sourceTree = ""; }; + 1A37E9D9200DEF110078AF72 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.2.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; + 1A37E9DB200DEF190078AF72 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + 1A499EBA1F0CDDC3004E6AEC /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; + 1A499EBC1F0CDDD9004E6AEC /* libicucore.A.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libicucore.A.tbd; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/lib/libicucore.A.tbd; sourceTree = DEVELOPER_DIR; }; + 1A6BF21418C9DB5900FB0E1C /* main.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; name = main.js; path = ../../../main.js; sourceTree = ""; }; + 1A82F5FA169AC92500C4B13A /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; }; + 1A96A4F2174A3432008653A9 /* libcurl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcurl.a; path = "../../cocos2d-x/cocos2dx/platform/third_party/ios/libraries/libcurl.a"; sourceTree = ""; }; + 1ABC56911F7A005D00826282 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ios/Images.xcassets; sourceTree = ""; }; + 1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = cocos2d_libs.xcodeproj; path = "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/build/cocos2d_libs.xcodeproj"; sourceTree = ""; }; + 1ACA99221F550A20002DE225 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; + 1ACA99241F550A28002DE225 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; + 1AFFCD7B1F7A5D4F00628F2C /* LaunchScreenBackground.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = LaunchScreenBackground.png; path = ios/LaunchScreenBackground.png; sourceTree = ""; }; + 22CC756D21BA5B5C00FBF2F7 /* SDKWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDKWrapper.m; path = ios/SDKWrapper.m; sourceTree = ""; }; + 22CC756F21BA5B5C00FBF2F7 /* SDKDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDKDelegate.h; sourceTree = ""; }; + 22CC757021BA5B5C00FBF2F7 /* SDKWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDKWrapper.h; path = ios/SDKWrapper.h; sourceTree = ""; }; + 28A34C0F225B462E00926306 /* subpackages */ = {isa = PBXFileReference; lastKnownFileType = folder; name = subpackages; path = ../../../subpackages; sourceTree = ""; }; + 294D7D7F1D0D668F002CE7B7 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; }; + 4011F9D2212BD6810091CC5B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 4011F9D8212BD7150091CC5B /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = ""; }; + 4011F9D9212BD73A0091CC5B /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; + 4033CDBB20E4935000DAA37B /* jsb-adapter */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "jsb-adapter"; path = "../../../jsb-adapter"; sourceTree = ""; }; + 467AF6072321FBED00770112 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/WebKit.framework; sourceTree = DEVELOPER_DIR; }; + 467AF612232881E400770112 /* AVKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/AVKit.framework; sourceTree = DEVELOPER_DIR; }; + 467AF614232881EB00770112 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreMedia.framework; sourceTree = DEVELOPER_DIR; }; + 4D697BD91CBD301C00A5AF29 /* libjs_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjs_static.a; path = "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/ios/libs/libjs_static.a"; sourceTree = ""; }; + 4D697BDC1CBD303100A5AF29 /* libjs_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjs_static.a; path = "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/mac/libs/libjs_static.a"; sourceTree = ""; }; + 502380DB17EBB88200990C9B /* libcurl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcurl.dylib; path = usr/lib/libcurl.dylib; sourceTree = SDKROOT; }; + 509D4AAA17EBB24E00697056 /* StepOfDoom-desktop.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "StepOfDoom-desktop.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 509D4AAB17EBB2AB00697056 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppController.h; path = ios/AppController.h; sourceTree = ""; }; + 509D4AAC17EBB2AB00697056 /* AppController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppController.mm; path = ios/AppController.mm; sourceTree = ""; }; + 509D4AB717EBB2AB00697056 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ios/Info.plist; sourceTree = ""; }; + 509D4AB817EBB2AB00697056 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ios/main.m; sourceTree = ""; }; + 509D4AB917EBB2AB00697056 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Prefix.pch; path = ios/Prefix.pch; sourceTree = ""; }; + 509D4ABA17EBB2AB00697056 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RootViewController.h; path = ios/RootViewController.h; sourceTree = ""; }; + 509D4ABB17EBB2AB00697056 /* RootViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = RootViewController.mm; path = ios/RootViewController.mm; sourceTree = ""; }; + 509D4ACB17EBB2BE00697056 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = ""; }; + 509D4ACC17EBB2BE00697056 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 509D4ACE17EBB2BE00697056 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = ""; }; + 509D4AE617EBB81800697056 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 509D4AE817EBB82000697056 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; + 509D4AEA17EBB82600697056 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + A922753D1517C094001B78AA /* StepOfDoom-mobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "StepOfDoom-mobile.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + A92275411517C094001B78AA /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + A92275431517C094001B78AA /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + A92275451517C094001B78AA /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; + A92275471517C094001B78AA /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + A92275491517C094001B78AA /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + A922754B1517C094001B78AA /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + A922754D1517C094001B78AA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + A922754F1517C094001B78AA /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + ABE456E21D34F87300F1F400 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; + ABE456E41D34F87A00F1F400 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; }; + ABE456E61D34F87F00F1F400 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; + ABE456E81D34F88A00F1F400 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; + ABE456EA1D34F89000F1F400 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/GameController.framework; sourceTree = DEVELOPER_DIR; }; + BA3A85EB1A724AE900924D24 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + BA4E718019EB6E3E00932425 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/MediaPlayer.framework; sourceTree = DEVELOPER_DIR; }; + BA4E718219EB6E4600932425 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/GameController.framework; sourceTree = DEVELOPER_DIR; }; + BAEE4D831AC40C11003BEB0F /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + C03780EA18BEE0E400FE4F13 /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; name = src; path = ../../../src; sourceTree = ""; }; + C06E23CB18CEFE680093C81A /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + C0799CB518BAE62000E9C828 /* res */ = {isa = PBXFileReference; lastKnownFileType = folder; name = res; path = ../../../res; sourceTree = ""; }; + D454520B156E22BD00887EB5 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; + D4545215156E28EF00887EB5 /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AppDelegate.cpp; sourceTree = ""; }; + D4545216156E28EF00887EB5 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + D6B061231803AB9F0077942B /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/CoreMotion.framework; sourceTree = DEVELOPER_DIR; }; + FA676C751C71AFA200E091E3 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk/usr/lib/libiconv.dylib; sourceTree = DEVELOPER_DIR; }; + FA676C771C71AFAB00E091E3 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = usr/lib/libiconv.dylib; sourceTree = SDKROOT; }; + FA81D1222BD43A37008B5689 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/System/Library/Frameworks/MessageUI.framework; sourceTree = DEVELOPER_DIR; }; + FA81D1242BD43A40008B5689 /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/System/Library/Frameworks/Photos.framework; sourceTree = DEVELOPER_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 509D4A8217EBB24E00697056 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1A37E9DC200DEF190078AF72 /* SystemConfiguration.framework in Frameworks */, + 1ACA99231F550A20002DE225 /* JavaScriptCore.framework in Frameworks */, + 1A499EBB1F0CDDC3004E6AEC /* CFNetwork.framework in Frameworks */, + 4DD5E6AB1CDAF6430046171E /* libcocos2d Mac.a in Frameworks */, + FA676C781C71AFAB00E091E3 /* libiconv.dylib in Frameworks */, + BAEE4D841AC40C11003BEB0F /* Security.framework in Frameworks */, + 502380DC17EBB88200990C9B /* libcurl.dylib in Frameworks */, + 509D4A8817EBB24E00697056 /* libsqlite3.dylib in Frameworks */, + 509D4A8917EBB24E00697056 /* libz.dylib in Frameworks */, + 509D4AEB17EBB82600697056 /* IOKit.framework in Frameworks */, + 509D4AE917EBB82000697056 /* AppKit.framework in Frameworks */, + 509D4AE717EBB81800697056 /* OpenGL.framework in Frameworks */, + 509D4A8A17EBB24E00697056 /* QuartzCore.framework in Frameworks */, + 509D4A8C17EBB24E00697056 /* OpenAL.framework in Frameworks */, + 509D4A8D17EBB24E00697056 /* AudioToolbox.framework in Frameworks */, + 509D4A8E17EBB24E00697056 /* AVFoundation.framework in Frameworks */, + 509D4A9017EBB24E00697056 /* Foundation.framework in Frameworks */, + 509D4A9117EBB24E00697056 /* CoreGraphics.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A922753A1517C094001B78AA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 467AF615232881EB00770112 /* CoreMedia.framework in Frameworks */, + 467AF613232881E400770112 /* AVKit.framework in Frameworks */, + 467AF6082321FBED00770112 /* WebKit.framework in Frameworks */, + 1A37E9DA200DEF120078AF72 /* SystemConfiguration.framework in Frameworks */, + 1ACA99251F550A28002DE225 /* JavaScriptCore.framework in Frameworks */, + 1A499EBD1F0CDDD9004E6AEC /* libicucore.A.tbd in Frameworks */, + ABE456EB1D34F89000F1F400 /* GameController.framework in Frameworks */, + ABE456E91D34F88A00F1F400 /* SystemConfiguration.framework in Frameworks */, + ABE456E71D34F87F00F1F400 /* MobileCoreServices.framework in Frameworks */, + ABE456E51D34F87A00F1F400 /* CoreFoundation.framework in Frameworks */, + ABE456E31D34F87300F1F400 /* CFNetwork.framework in Frameworks */, + 294D7D801D0D668F002CE7B7 /* CoreText.framework in Frameworks */, + 4DD5E6B11CDAF65C0046171E /* libcocos2d iOS.a in Frameworks */, + FA676C761C71AFA200E091E3 /* libiconv.dylib in Frameworks */, + BA3A85EC1A724AE900924D24 /* Security.framework in Frameworks */, + D6B061241803AB9F0077942B /* CoreMotion.framework in Frameworks */, + 1A82F5FB169AC92500C4B13A /* libsqlite3.dylib in Frameworks */, + D454520C156E22BD00887EB5 /* libz.dylib in Frameworks */, + A92275421517C094001B78AA /* QuartzCore.framework in Frameworks */, + A92275441517C094001B78AA /* OpenGLES.framework in Frameworks */, + A92275461517C094001B78AA /* OpenAL.framework in Frameworks */, + A92275481517C094001B78AA /* AudioToolbox.framework in Frameworks */, + A922754A1517C094001B78AA /* AVFoundation.framework in Frameworks */, + A922754C1517C094001B78AA /* UIKit.framework in Frameworks */, + A922754E1517C094001B78AA /* Foundation.framework in Frameworks */, + A92275501517C094001B78AA /* CoreGraphics.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 15628F5B15F0F5C2000CF24B /* Resources */ = { + isa = PBXGroup; + children = ( + 4033CDBB20E4935000DAA37B /* jsb-adapter */, + 1A1A081B18C9DF05005C6854 /* project.json */, + 1A6BF21418C9DB5900FB0E1C /* main.js */, + C0799CB518BAE62000E9C828 /* res */, + C03780EA18BEE0E400FE4F13 /* src */, + 4011F9D7212BD7050091CC5B /* Localizable.strings */, + ); + name = Resources; + sourceTree = ""; + }; + 22CC756E21BA5B5C00FBF2F7 /* service */ = { + isa = PBXGroup; + children = ( + 22CC756F21BA5B5C00FBF2F7 /* SDKDelegate.h */, + ); + name = service; + path = ios/service; + sourceTree = ""; + }; + 4DD0DB511CDAF5F40099AD86 /* Products */ = { + isa = PBXGroup; + children = ( + 4DD0DB561CDAF5F40099AD86 /* libcocos2d Mac.a */, + 4DD0DB581CDAF5F40099AD86 /* libcocos2d iOS.a */, + ); + name = Products; + sourceTree = ""; + }; + 509D4ACA17EBB2BE00697056 /* mac */ = { + isa = PBXGroup; + children = ( + 051C018621E32AF100D4A347 /* UserConfigMac.debug.xcconfig */, + 051C018521E32AF000D4A347 /* UserConfigMac.release.xcconfig */, + C06E23CB18CEFE680093C81A /* main.cpp */, + 509D4ACB17EBB2BE00697056 /* Icon.icns */, + 509D4ACC17EBB2BE00697056 /* Info.plist */, + 509D4ACE17EBB2BE00697056 /* Prefix.pch */, + ); + path = mac; + sourceTree = ""; + }; + A92275321517C094001B78AA = { + isa = PBXGroup; + children = ( + 28A34C0F225B462E00926306 /* subpackages */, + 1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */, + D4545214156E28EF00887EB5 /* Classes */, + A92275401517C094001B78AA /* Frameworks */, + D45446CC156DE73F00887EB5 /* ios */, + 509D4ACA17EBB2BE00697056 /* mac */, + A922753E1517C094001B78AA /* Products */, + 15628F5B15F0F5C2000CF24B /* Resources */, + ); + sourceTree = ""; + }; + A922753E1517C094001B78AA /* Products */ = { + isa = PBXGroup; + children = ( + A922753D1517C094001B78AA /* StepOfDoom-mobile.app */, + 509D4AAA17EBB24E00697056 /* StepOfDoom-desktop.app */, + ); + name = Products; + sourceTree = ""; + }; + A92275401517C094001B78AA /* Frameworks */ = { + isa = PBXGroup; + children = ( + FA81D1242BD43A40008B5689 /* Photos.framework */, + FA81D1222BD43A37008B5689 /* MessageUI.framework */, + 467AF614232881EB00770112 /* CoreMedia.framework */, + 467AF612232881E400770112 /* AVKit.framework */, + 467AF6072321FBED00770112 /* WebKit.framework */, + 1A37E9D9200DEF110078AF72 /* SystemConfiguration.framework */, + 1A37E9DB200DEF190078AF72 /* SystemConfiguration.framework */, + 1ACA99241F550A28002DE225 /* JavaScriptCore.framework */, + 1ACA99221F550A20002DE225 /* JavaScriptCore.framework */, + 1A499EBC1F0CDDD9004E6AEC /* libicucore.A.tbd */, + 1A499EBA1F0CDDC3004E6AEC /* CFNetwork.framework */, + ABE456EA1D34F89000F1F400 /* GameController.framework */, + ABE456E81D34F88A00F1F400 /* SystemConfiguration.framework */, + ABE456E61D34F87F00F1F400 /* MobileCoreServices.framework */, + ABE456E41D34F87A00F1F400 /* CoreFoundation.framework */, + ABE456E21D34F87300F1F400 /* CFNetwork.framework */, + 294D7D7F1D0D668F002CE7B7 /* CoreText.framework */, + 4D697BDC1CBD303100A5AF29 /* libjs_static.a */, + 4D697BD91CBD301C00A5AF29 /* libjs_static.a */, + FA676C771C71AFAB00E091E3 /* libiconv.dylib */, + FA676C751C71AFA200E091E3 /* libiconv.dylib */, + BAEE4D831AC40C11003BEB0F /* Security.framework */, + BA3A85EB1A724AE900924D24 /* Security.framework */, + BA4E718219EB6E4600932425 /* GameController.framework */, + BA4E718019EB6E3E00932425 /* MediaPlayer.framework */, + D6B061231803AB9F0077942B /* CoreMotion.framework */, + 502380DB17EBB88200990C9B /* libcurl.dylib */, + 509D4AEA17EBB82600697056 /* IOKit.framework */, + 509D4AE817EBB82000697056 /* AppKit.framework */, + 509D4AE617EBB81800697056 /* OpenGL.framework */, + 1A96A4F2174A3432008653A9 /* libcurl.a */, + 1A82F5FA169AC92500C4B13A /* libsqlite3.dylib */, + D454520B156E22BD00887EB5 /* libz.dylib */, + A92275411517C094001B78AA /* QuartzCore.framework */, + A92275431517C094001B78AA /* OpenGLES.framework */, + A92275451517C094001B78AA /* OpenAL.framework */, + A92275471517C094001B78AA /* AudioToolbox.framework */, + A92275491517C094001B78AA /* AVFoundation.framework */, + A922754B1517C094001B78AA /* UIKit.framework */, + A922754D1517C094001B78AA /* Foundation.framework */, + A922754F1517C094001B78AA /* CoreGraphics.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D45446CC156DE73F00887EB5 /* ios */ = { + isa = PBXGroup; + children = ( + 051C018221E32AE400D4A347 /* UserConfigIOS.debug.xcconfig */, + 051C018121E32AE400D4A347 /* UserConfigIOS.release.xcconfig */, + 22CC756E21BA5B5C00FBF2F7 /* service */, + 4011F9D1212BD6750091CC5B /* LaunchScreen.storyboard */, + 1AFFCD7B1F7A5D4F00628F2C /* LaunchScreenBackground.png */, + 1ABC56911F7A005D00826282 /* Images.xcassets */, + 509D4AAB17EBB2AB00697056 /* AppController.h */, + 509D4AAC17EBB2AB00697056 /* AppController.mm */, + 509D4AB717EBB2AB00697056 /* Info.plist */, + 509D4AB817EBB2AB00697056 /* main.m */, + 509D4AB917EBB2AB00697056 /* Prefix.pch */, + 509D4ABA17EBB2AB00697056 /* RootViewController.h */, + 509D4ABB17EBB2AB00697056 /* RootViewController.mm */, + 22CC757021BA5B5C00FBF2F7 /* SDKWrapper.h */, + 22CC756D21BA5B5C00FBF2F7 /* SDKWrapper.m */, + ); + name = ios; + sourceTree = ""; + }; + D4545214156E28EF00887EB5 /* Classes */ = { + isa = PBXGroup; + children = ( + D4545215156E28EF00887EB5 /* AppDelegate.cpp */, + D4545216156E28EF00887EB5 /* AppDelegate.h */, + ); + name = Classes; + path = ../Classes; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 509D4A7517EBB24E00697056 /* StepOfDoom-desktop */ = { + isa = PBXNativeTarget; + buildConfigurationList = 509D4AA717EBB24E00697056 /* Build configuration list for PBXNativeTarget "StepOfDoom-desktop" */; + buildPhases = ( + 509D4A8017EBB24E00697056 /* Sources */, + 509D4A9317EBB24E00697056 /* Resources */, + 509D4A8217EBB24E00697056 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 4DD5E6AA1CDAF6330046171E /* PBXTargetDependency */, + ); + name = "StepOfDoom-desktop"; + productName = StepOfDoom; + productReference = 509D4AAA17EBB24E00697056 /* StepOfDoom-desktop.app */; + productType = "com.apple.product-type.application"; + }; + A922753C1517C094001B78AA /* StepOfDoom-mobile */ = { + isa = PBXNativeTarget; + buildConfigurationList = A92277001517C097001B78AA /* Build configuration list for PBXNativeTarget "StepOfDoom-mobile" */; + buildPhases = ( + A92275391517C094001B78AA /* Sources */, + A922753A1517C094001B78AA /* Frameworks */, + A922753B1517C094001B78AA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 4DD5E6B01CDAF6520046171E /* PBXTargetDependency */, + ); + name = "StepOfDoom-mobile"; + productName = StepOfDoom; + productReference = A922753D1517C094001B78AA /* StepOfDoom-mobile.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A92275341517C094001B78AA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + }; + buildConfigurationList = A92275371517C094001B78AA /* Build configuration list for PBXProject "StepOfDoom" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + Base, + "zh-Hans", + ); + mainGroup = A92275321517C094001B78AA; + productRefGroup = A922753E1517C094001B78AA /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 4DD0DB511CDAF5F40099AD86 /* Products */; + ProjectRef = 1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + A922753C1517C094001B78AA /* StepOfDoom-mobile */, + 509D4A7517EBB24E00697056 /* StepOfDoom-desktop */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 4DD0DB561CDAF5F40099AD86 /* libcocos2d Mac.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libcocos2d Mac.a"; + remoteRef = 4DD0DB551CDAF5F40099AD86 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4DD0DB581CDAF5F40099AD86 /* libcocos2d iOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libcocos2d iOS.a"; + remoteRef = 4DD0DB571CDAF5F40099AD86 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 509D4A9317EBB24E00697056 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1AC22EDE18CA0E11007112B9 /* project.json in Resources */, + 1AD7E0A918C9DBE3004817A6 /* main.js in Resources */, + 4033CDBD20E4935100DAA37B /* jsb-adapter in Resources */, + C0799CBA18BAE62000E9C828 /* res in Resources */, + 509D4ACF17EBB2BE00697056 /* Icon.icns in Resources */, + C03780EC18BEE0E400FE4F13 /* src in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A922753B1517C094001B78AA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 28A34C10225B462E00926306 /* subpackages in Resources */, + 4033CDBC20E4935100DAA37B /* jsb-adapter in Resources */, + 1AFFCD7F1F7A5D5400628F2C /* Images.xcassets in Resources */, + 1AFFCD7E1F7A5D5400628F2C /* LaunchScreenBackground.png in Resources */, + 1AE159EC18C9DF3600FCA372 /* project.json in Resources */, + 1AD7E0A818C9DB93004817A6 /* main.js in Resources */, + C03780EB18BEE0E400FE4F13 /* src in Resources */, + C0799CB918BAE62000E9C828 /* res in Resources */, + 4011F9CF212BD6750091CC5B /* LaunchScreen.storyboard in Resources */, + 4011F9D5212BD7050091CC5B /* Localizable.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 509D4A8017EBB24E00697056 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 509D4A8117EBB24E00697056 /* AppDelegate.cpp in Sources */, + C06E23CC18CEFE680093C81A /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A92275391517C094001B78AA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 509D4AC917EBB2AB00697056 /* RootViewController.mm in Sources */, + D4545227156E28EF00887EB5 /* AppDelegate.cpp in Sources */, + 509D4AC817EBB2AB00697056 /* main.m in Sources */, + 22CC757121BA5B5C00FBF2F7 /* SDKWrapper.m in Sources */, + 509D4ABC17EBB2AB00697056 /* AppController.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 4DD5E6AA1CDAF6330046171E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d Mac"; + targetProxy = 4DD5E6A91CDAF6330046171E /* PBXContainerItemProxy */; + }; + 4DD5E6B01CDAF6520046171E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d iOS"; + targetProxy = 4DD5E6AF1CDAF6520046171E /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 4011F9D1212BD6750091CC5B /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 4011F9D2212BD6810091CC5B /* Base */, + ); + name = LaunchScreen.storyboard; + path = ios; + sourceTree = ""; + }; + 4011F9D7212BD7050091CC5B /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 4011F9D8212BD7150091CC5B /* Base */, + 4011F9D9212BD73A0091CC5B /* zh-Hans */, + ); + name = Localizable.strings; + path = ios; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 509D4AA817EBB24E00697056 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 051C018621E32AF100D4A347 /* UserConfigMac.debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; + DEAD_CODE_STRIPPING = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + CC_TARGET_OS_MAC, + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = mac/Info.plist; + LIBRARY_SEARCH_PATHS = "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/mac/libs"; + OTHER_LDFLAGS = ""; + SDKROOT = macosx; + USER_HEADER_SEARCH_PATHS = "$(inherited) /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/platform/mac /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/glfw3/include/mac /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/mac/include/ /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/mac/include/spidermonkey"; + }; + name = Debug; + }; + 509D4AA917EBB24E00697056 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 051C018521E32AF000D4A347 /* UserConfigMac.release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; + DEAD_CODE_STRIPPING = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + CC_TARGET_OS_MAC, + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = mac/Info.plist; + LIBRARY_SEARCH_PATHS = "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/mac/libs"; + OTHER_LDFLAGS = ""; + SDKROOT = macosx; + USER_HEADER_SEARCH_PATHS = "$(inherited) /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/platform/mac /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/glfw3/include/mac /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/mac/include/ /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/mac/include/spidermonkey"; + }; + name = Release; + }; + A92276FE1517C097001B78AA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "COCOS2D_DEBUG=1", + USE_FILE32API, + COCOS2D_JAVASCRIPT, + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ""; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.9; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + USER_HEADER_SEARCH_PATHS = "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/base /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/physics /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/math/kazmath /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/2d /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/gui /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/network /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/audio/include /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/editor-support /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/extensions /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/sources /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/chipmunk/include/chipmunk /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/mac/include/v8 /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/scripting/js-bindings/auto /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/scripting/js-bindings/manual /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/renderer"; + }; + name = Debug; + }; + A92276FF1517C097001B78AA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_PREPROCESSOR_DEFINITIONS = ( + NDEBUG, + USE_FILE32API, + COCOS2D_JAVASCRIPT, + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ""; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.9; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + PRODUCT_NAME = "$(TARGET_NAME)"; + USER_HEADER_SEARCH_PATHS = "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/base /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/physics /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/math/kazmath /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/2d /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/gui /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/network /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/audio/include /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/editor-support /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/extensions /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/sources /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/chipmunk/include/chipmunk /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/mac/include/v8 /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/scripting/js-bindings/auto /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/scripting/js-bindings/manual /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/renderer"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + A92277011517C097001B78AA /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 051C018221E32AE400D4A347 /* UserConfigIOS.debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + ENABLE_BITCODE = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + CC_TARGET_OS_IPHONE, + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = ios/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LIBRARY_SEARCH_PATHS = "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/ios/libs"; + OTHER_LDFLAGS = ( + "-ObjC", + "$(inherited)", + ); + SDKROOT = iphoneos; + STRIP_PNG_TEXT = NO; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = "$(inherited) /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/platform/ios /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/plugin/jsbindings/auto /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/plugin/jsbindings/manual /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/ios/include /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/ios/include/spidermonkey"; + VALID_ARCHS = "arm64 armv7"; + }; + name = Debug; + }; + A92277021517C097001B78AA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 051C018121E32AE400D4A347 /* UserConfigIOS.release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + ENABLE_BITCODE = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + CC_TARGET_OS_IPHONE, + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = ios/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LIBRARY_SEARCH_PATHS = "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/ios/libs"; + OTHER_LDFLAGS = ( + "-ObjC", + "$(inherited)", + ); + SDKROOT = iphoneos; + STRIP_PNG_TEXT = NO; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = "$(inherited) /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/platform/ios /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/plugin/jsbindings/auto /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/plugin/jsbindings/manual /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/ios/include /Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/external/ios/include/spidermonkey"; + VALID_ARCHS = "arm64 armv7"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 509D4AA717EBB24E00697056 /* Build configuration list for PBXNativeTarget "StepOfDoom-desktop" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 509D4AA817EBB24E00697056 /* Debug */, + 509D4AA917EBB24E00697056 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A92275371517C094001B78AA /* Build configuration list for PBXProject "StepOfDoom" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A92276FE1517C097001B78AA /* Debug */, + A92276FF1517C097001B78AA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A92277001517C097001B78AA /* Build configuration list for PBXNativeTarget "StepOfDoom-mobile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A92277011517C097001B78AA /* Debug */, + A92277021517C097001B78AA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A92275341517C094001B78AA /* Project object */; +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/.DS_Store b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/.DS_Store new file mode 100644 index 0000000..affdc7a Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/.DS_Store differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/AppController.h b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/AppController.h new file mode 100755 index 0000000..10d55da --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/AppController.h @@ -0,0 +1,37 @@ +/**************************************************************************** + Copyright (c) 2010-2013 cocos2d-x.org + Copyright (c) 2013-2016 Chukong Technologies Inc. + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ +#import + +@class RootViewController; + +@interface AppController : NSObject +{ +} + +@property(nonatomic, readonly) RootViewController* viewController; + +@end + diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/AppController.mm b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/AppController.mm new file mode 100755 index 0000000..f1c4ca4 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/AppController.mm @@ -0,0 +1,139 @@ +/**************************************************************************** + Copyright (c) 2010-2013 cocos2d-x.org + Copyright (c) 2013-2016 Chukong Technologies Inc. + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#import "AppController.h" +#import "cocos2d.h" +#import "AppDelegate.h" +#import "RootViewController.h" +#import "SDKWrapper.h" +#import "platform/ios/CCEAGLView-ios.h" + + + +using namespace cocos2d; + +@implementation AppController + +Application* app = nullptr; +@synthesize window; + +#pragma mark - +#pragma mark Application lifecycle + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + [[SDKWrapper getInstance] application:application didFinishLaunchingWithOptions:launchOptions]; + // Add the view controller's view to the window and display. + float scale = [[UIScreen mainScreen] scale]; + CGRect bounds = [[UIScreen mainScreen] bounds]; + window = [[UIWindow alloc] initWithFrame: bounds]; + + // cocos2d application instance + app = new AppDelegate(bounds.size.width * scale, bounds.size.height * scale); + app->setMultitouch(true); + + // Use RootViewController to manage CCEAGLView + _viewController = [[RootViewController alloc]init]; +#ifdef NSFoundationVersionNumber_iOS_7_0 + _viewController.automaticallyAdjustsScrollViewInsets = NO; + _viewController.extendedLayoutIncludesOpaqueBars = NO; + _viewController.edgesForExtendedLayout = UIRectEdgeAll; +#else + _viewController.wantsFullScreenLayout = YES; +#endif + // Set RootViewController to window + if ( [[UIDevice currentDevice].systemVersion floatValue] < 6.0) + { + // warning: addSubView doesn't work on iOS6 + [window addSubview: _viewController.view]; + } + else + { + // use this method on ios6 + [window setRootViewController:_viewController]; + } + + [window makeKeyAndVisible]; + + [[UIApplication sharedApplication] setStatusBarHidden:YES]; + + //run the cocos2d-x game scene + app->start(); + + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application { + /* + Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. + */ + [[SDKWrapper getInstance] applicationWillResignActive:application]; +} + +- (void)applicationDidBecomeActive:(UIApplication *)application { + /* + Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + */ + [[SDKWrapper getInstance] applicationDidBecomeActive:application]; +} + +- (void)applicationDidEnterBackground:(UIApplication *)application { + /* + Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + If your application supports background execution, called instead of applicationWillTerminate: when the user quits. + */ + [[SDKWrapper getInstance] applicationDidEnterBackground:application]; + app->applicationDidEnterBackground(); + +} + +- (void)applicationWillEnterForeground:(UIApplication *)application { + /* + Called as part of transition from the background to the inactive state: here you can undo many of the changes made on entering the background. + */ + [[SDKWrapper getInstance] applicationWillEnterForeground:application]; + app->applicationWillEnterForeground(); + +} + +- (void)applicationWillTerminate:(UIApplication *)application +{ + [[SDKWrapper getInstance] applicationWillTerminate:application]; + delete app; + app = nil; +} + + +#pragma mark - +#pragma mark Memory management + +- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { + /* + Free up as much memory as possible by purging cached data objects that can be recreated (or reloaded from disk) later. + */ +} + +@end diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Base.lproj/LaunchScreen.storyboard b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..068bbaa --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Base.lproj/Localizable.strings b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Base.lproj/Localizable.strings new file mode 100644 index 0000000..2a177ff --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Base.lproj/Localizable.strings @@ -0,0 +1,9 @@ +/* + Localizable.strings + */ + +"done" = "Done"; +"next" = "Next"; +"search" = "Search"; +"go" = "Go"; +"send" = "Send"; diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Contents.json b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100755 index 0000000..51cbd32 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,157 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-29.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-40@3x.png", + "scale" : "3x" + }, + { + "size" : "57x57", + "idiom" : "iphone", + "filename" : "Icon-57.png", + "scale" : "1x" + }, + { + "size" : "57x57", + "idiom" : "iphone", + "filename" : "Icon-57@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-20.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-29.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-40.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-40@2x.png", + "scale" : "2x" + }, + { + "size" : "50x50", + "idiom" : "ipad", + "filename" : "Icon-50.png", + "scale" : "1x" + }, + { + "size" : "50x50", + "idiom" : "ipad", + "filename" : "Icon-50@2x.png", + "scale" : "2x" + }, + { + "size" : "72x72", + "idiom" : "ipad", + "filename" : "Icon-72.png", + "scale" : "1x" + }, + { + "size" : "72x72", + "idiom" : "ipad", + "filename" : "Icon-72@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-83.5@2x.png", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-20.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-20.png new file mode 100755 index 0000000..8ead23e Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-20.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-20@2x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-20@2x.png new file mode 100755 index 0000000..775685d Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-20@2x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-20@3x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-20@3x.png new file mode 100755 index 0000000..a5b49cc Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-20@3x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-29.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-29.png new file mode 100755 index 0000000..0500184 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-29.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png new file mode 100755 index 0000000..f0f8b7f Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png new file mode 100755 index 0000000..5287e50 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-40.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-40.png new file mode 100755 index 0000000..775685d Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-40.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png new file mode 100755 index 0000000..d9c7ab4 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png new file mode 100755 index 0000000..a5b49cc Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-50.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-50.png new file mode 100755 index 0000000..ac381bc Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-50.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-50@2x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-50@2x.png new file mode 100755 index 0000000..ef38d45 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-50@2x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-57.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-57.png new file mode 100755 index 0000000..4fcc6fd Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-57.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-57@2x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-57@2x.png new file mode 100644 index 0000000..c380786 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-57@2x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png new file mode 100755 index 0000000..a5b49cc Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png new file mode 100644 index 0000000..d4bc531 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-72.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-72.png new file mode 100755 index 0000000..2c573c8 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-72.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-72@2x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-72@2x.png new file mode 100755 index 0000000..1526615 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-72@2x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-76.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-76.png new file mode 100755 index 0000000..8a1fa18 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-76.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png new file mode 100755 index 0000000..8aa8250 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-83.5@2x.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-83.5@2x.png new file mode 100644 index 0000000..6bf801d Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/AppIcon.appiconset/Icon-83.5@2x.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/Contents.json b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Info.plist b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Info.plist new file mode 100755 index 0000000..ac13590 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Info.plist @@ -0,0 +1,54 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIcons~ipad + + CFBundleIdentifier + Com.Wow.Stepofdoom + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + UILaunchStoryboardName + LaunchScreen + UIPrerenderedIcon + + UIRequiredDeviceCapabilities + + accelerometer + + opengles-1 + + + UIRequiresFullScreen + + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + + \ No newline at end of file diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/LaunchScreenBackground.png b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/LaunchScreenBackground.png new file mode 100644 index 0000000..dadccee Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/LaunchScreenBackground.png differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Prefix.pch b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Prefix.pch new file mode 100755 index 0000000..7b4c9d7 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the 'StepOfDoom' target in the 'StepOfDoom' project +// + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/RootViewController.h b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/RootViewController.h new file mode 100755 index 0000000..47aa9ed --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/RootViewController.h @@ -0,0 +1,34 @@ +/**************************************************************************** + Copyright (c) 2013 cocos2d-x.org + Copyright (c) 2013-2016 Chukong Technologies Inc. + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#import + + +@interface RootViewController : UIViewController { + +} +- (BOOL)prefersStatusBarHidden; +@end diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/RootViewController.mm b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/RootViewController.mm new file mode 100755 index 0000000..7f476be --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/RootViewController.mm @@ -0,0 +1,98 @@ +/**************************************************************************** + Copyright (c) 2013 cocos2d-x.org + Copyright (c) 2013-2016 Chukong Technologies Inc. + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +****************************************************************************/ + +#import "RootViewController.h" +#import "cocos2d.h" + +#include "platform/CCApplication.h" +#include "platform/ios/CCEAGLView-ios.h" + +@implementation RootViewController + +/* +// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { +if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) { +// Custom initialization +} +return self; +} +*/ + +// Implement loadView to create a view hierarchy programmatically, without using a nib. +- (void)loadView { + // Set EAGLView as view of RootViewController + self.view = (__bridge CCEAGLView *)cocos2d::Application::getInstance()->getView(); +} + +// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. +- (void)viewDidLoad { + [super viewDidLoad]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; +} + + +// For ios6, use supportedInterfaceOrientations & shouldAutorotate instead +#ifdef __IPHONE_6_0 +- (NSUInteger) supportedInterfaceOrientations{ + return UIInterfaceOrientationMaskAllButUpsideDown; +} +#endif + +- (BOOL) shouldAutorotate { + return YES; +} + +- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { + [super didRotateFromInterfaceOrientation:fromInterfaceOrientation]; +} + +//fix not hide status on ios7 +- (BOOL)prefersStatusBarHidden { + return YES; +} + +// Controls the application's preferred home indicator auto-hiding when this view controller is shown. +- (BOOL)prefersHomeIndicatorAutoHidden { + return YES; +} + +- (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. +} + + +@end diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/SDKWrapper.h b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/SDKWrapper.h new file mode 100644 index 0000000..03b0401 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/SDKWrapper.h @@ -0,0 +1,24 @@ +// +// SDKWrapper.h +// polish_project-mobile +// +// Created by 杨欣 on 2018/10/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SDKWrapper : NSObject +@property(nonatomic,strong) NSString *name; ++ (instancetype)getInstance; +// iOS应用生命周期 +- (void)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; +- (void)applicationDidBecomeActive:(UIApplication *)application; +- (void)applicationWillResignActive:(UIApplication *)application; +- (void)applicationDidEnterBackground:(UIApplication *)application; +- (void)applicationWillEnterForeground:(UIApplication *)application; +- (void)applicationWillTerminate:(UIApplication *)application; +@end + +NS_ASSUME_NONNULL_END diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/SDKWrapper.m b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/SDKWrapper.m new file mode 100644 index 0000000..2b8fd03 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/SDKWrapper.m @@ -0,0 +1,133 @@ +// +// SDKWrapper.m +// polish_project-mobile +// +// Created by 杨欣 on 2018/10/20. +// + +#import "SDKWrapper.h" +#import "SDKDelegate.h" + +@interface SDKWrapper () + +@property (nonatomic, strong) NSArray *sdkClasses; + +@end + +@implementation SDKWrapper + +#pragma mark - +#pragma mark Singleton + +static SDKWrapper *mInstace = nil; + ++ (instancetype)getInstance { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + mInstace = [[super allocWithZone:NULL] init]; + [mInstace initSDKWrapper]; + }); + return mInstace; +} ++ (id)allocWithZone:(struct _NSZone *)zone { + return [SDKWrapper getInstance]; +} + ++ (id)copyWithZone:(struct _NSZone *)zone { + return [SDKWrapper getInstance]; +} + +#pragma mark - +#pragma mark Application lifecycle +- (void)initSDKWrapper { + [self loadSDKClass]; +} + +- (void)loadSDKClass { + NSString *path = [NSString stringWithFormat:@"%@/project.json", + [[NSBundle mainBundle] resourcePath]]; + NSData *data = [NSData dataWithContentsOfFile:path options:NSDataReadingMappedIfSafe error:nil]; + id obj = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; + id dic = obj[@"serviceClassPath"]; + NSLog(@"%@",dic); + NSMutableArray *sdks = [NSMutableArray array]; + for (NSString *str in dic) { + @try { + NSString *className = [[str componentsSeparatedByString:@"."] lastObject]; + NSLog(@"%@",className); + Class c = NSClassFromString(className); + id sdk = [[c alloc] init]; + [sdks addObject:sdk]; + NSLog(@"%@",sdk); + } @catch (NSException *e) { + NSLog(@"%@",@"NSException"); + NSLog(@"%@",e); + } + } + self.sdkClasses = [NSArray arrayWithArray:sdks]; +} + +/** + app显示给用户之前执行最后的初始化操作 + */ +- (void)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + for (id sdk in self.sdkClasses) { + if ([sdk respondsToSelector:@selector(application:didFinishLaunchingWithOptions:)]) { + [sdk application:application didFinishLaunchingWithOptions:launchOptions]; + } + } + +} + +/** + app已经切换到active状态后需要执行的操作 + */ +- (void)applicationDidBecomeActive:(UIApplication *)application { + for (id sdk in self.sdkClasses) { + if ([sdk respondsToSelector:@selector(applicationDidBecomeActive:)]) { + [sdk applicationDidBecomeActive:application]; + } + } +} +/** + app将要从前台切换到后台时需要执行的操作 + */ +- (void)applicationWillResignActive:(UIApplication *)application { + for (id sdk in self.sdkClasses) { + if ([sdk respondsToSelector:@selector(applicationWillResignActive:)]) { + [sdk applicationWillResignActive:application]; + } + } +} +/** + app已经进入后台后需要执行的操作 + */ +- (void)applicationDidEnterBackground:(UIApplication *)application { + for (id sdk in self.sdkClasses) { + if ([sdk respondsToSelector:@selector(applicationDidEnterBackground:)]) { + [sdk applicationDidEnterBackground:application]; + } + } +} +/** + app将要从后台切换到前台需要执行的操作,但app还不是active状态 + */ +- (void)applicationWillEnterForeground:(UIApplication *)application { + for (id sdk in self.sdkClasses) { + if ([sdk respondsToSelector:@selector(applicationWillEnterForeground:)]) { + [sdk applicationWillEnterForeground:application]; + } + } +} +/** + app将要结束时需要执行的操作 + */ +- (void)applicationWillTerminate:(UIApplication *)application { + for (id sdk in self.sdkClasses) { + if ([sdk respondsToSelector:@selector(applicationWillTerminate:)]) { + [sdk applicationWillTerminate:application]; + } + } +} + +@end diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/UserConfigIOS.debug.xcconfig b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/UserConfigIOS.debug.xcconfig new file mode 100644 index 0000000..31dd375 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/UserConfigIOS.debug.xcconfig @@ -0,0 +1,4 @@ +// Configuration settings file format documentation can be found at: +// https://help.apple.com/xcode/#/dev745c5c974 + +#include "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/platform/ios/CCModuleConfigIOS.debug.xcconfig" diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/UserConfigIOS.release.xcconfig b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/UserConfigIOS.release.xcconfig new file mode 100644 index 0000000..d91b4c6 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/UserConfigIOS.release.xcconfig @@ -0,0 +1,4 @@ +// Configuration settings file format documentation can be found at: +// https://help.apple.com/xcode/#/dev745c5c974 + +#include "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/platform/ios/CCModuleConfigIOS.release.xcconfig" diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/main.m b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/main.m new file mode 100755 index 0000000..b1286e3 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/main.m @@ -0,0 +1,11 @@ + + +#import + +int main(int argc, char *argv[]) { + + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + int retVal = UIApplicationMain(argc, argv, nil, @"AppController"); + [pool release]; + return retVal; +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/service/SDKDelegate.h b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/service/SDKDelegate.h new file mode 100644 index 0000000..7d88d15 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/service/SDKDelegate.h @@ -0,0 +1,25 @@ +// +// SDKWrapperDelegate.h +// polish_project-mobile +// +// Created by 杨欣 on 2018/10/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol SDKDelegate + +@optional +- (void) optionalFunction; +- (void)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; +- (void)applicationDidBecomeActive:(UIApplication *)application; +- (void)applicationWillResignActive:(UIApplication *)application; +- (void)applicationDidEnterBackground:(UIApplication *)application; +- (void)applicationWillEnterForeground:(UIApplication *)application; +- (void)applicationWillTerminate:(UIApplication *)application; + +@end + +NS_ASSUME_NONNULL_END diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/zh-Hans.lproj/Localizable.strings b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000..5524fc7 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,9 @@ +/* + Localizable.strings + */ + +"done" = "完成"; +"next" = "下一个"; +"search" = "搜索"; +"go" = "前往"; +"send" = "发送"; diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/Icon.icns b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/Icon.icns new file mode 100755 index 0000000..2040fc6 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/Icon.icns differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/Info.plist b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/Info.plist new file mode 100755 index 0000000..f3d6e40 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/Info.plist @@ -0,0 +1,41 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + Icon + CFBundleIdentifier + Com.Wow.Stepofdoom + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSApplicationCategoryType + public.app-category.games + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + NSHumanReadableCopyright + Copyright © 2013. All rights reserved. + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + + diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/Prefix.pch b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/Prefix.pch new file mode 100755 index 0000000..46c36a7 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'Paralaxer' target in the 'Paralaxer' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/UserConfigMac.debug.xcconfig b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/UserConfigMac.debug.xcconfig new file mode 100644 index 0000000..457b64a --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/UserConfigMac.debug.xcconfig @@ -0,0 +1,4 @@ +// Configuration settings file format documentation can be found at: +// https://help.apple.com/xcode/#/dev745c5c974 + +#include "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/platform/mac/CCModuleConfigMac.debug.xcconfig" diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/UserConfigMac.release.xcconfig b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/UserConfigMac.release.xcconfig new file mode 100644 index 0000000..80640bb --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/UserConfigMac.release.xcconfig @@ -0,0 +1,4 @@ +// Configuration settings file format documentation can be found at: +// https://help.apple.com/xcode/#/dev745c5c974 + +#include "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x/cocos/platform/mac/CCModuleConfigMac.release.xcconfig" diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/main.cpp b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/main.cpp new file mode 100755 index 0000000..510a7bd --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/main.cpp @@ -0,0 +1,34 @@ +/**************************************************************************** + Copyright (c) 2010 cocos2d-x.org + Copyright (c) 2013-2016 Chukong Technologies Inc. + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#include "AppDelegate.h" + +int main(int argc, char *argv[]) +{ + AppDelegate app(960, 640); + app.start(); + return 0; +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/StepOfDoom.sln b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/StepOfDoom.sln new file mode 100644 index 0000000..5d525b1 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/StepOfDoom.sln @@ -0,0 +1,53 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StepOfDoom", "StepOfDoom.vcxproj", "{3B0B58B1-2734-488E-A542-ECEC11EB2455}" + ProjectSection(ProjectDependencies) = postProject + {39379840-825A-45A0-B363-C09FFEF864BD} = {39379840-825A-45A0-B363-C09FFEF864BD} + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "/Applications/CocosCreator-2.1.3.app/Contents/Resources/cocos2d-x\build\libcocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3B0B58B1-2734-488E-A542-ECEC11EB2455}.Debug|Win32.ActiveCfg = Debug|Win32 + {3B0B58B1-2734-488E-A542-ECEC11EB2455}.Debug|Win32.Build.0 = Debug|Win32 + {3B0B58B1-2734-488E-A542-ECEC11EB2455}.Release|Win32.ActiveCfg = Release|Win32 + {3B0B58B1-2734-488E-A542-ECEC11EB2455}.Release|Win32.Build.0 = Release|Win32 + {B7C2A162-DEC9-4418-972E-240AB3CBFCAE}.Debug|Win32.ActiveCfg = Debug|Win32 + {B7C2A162-DEC9-4418-972E-240AB3CBFCAE}.Debug|Win32.Build.0 = Debug|Win32 + {B7C2A162-DEC9-4418-972E-240AB3CBFCAE}.Release|Win32.ActiveCfg = Release|Win32 + {B7C2A162-DEC9-4418-972E-240AB3CBFCAE}.Release|Win32.Build.0 = Release|Win32 + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Debug|Win32.ActiveCfg = Debug|Win32 + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Debug|Win32.Build.0 = Debug|Win32 + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Release|Win32.ActiveCfg = Release|Win32 + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Release|Win32.Build.0 = Release|Win32 + {39379840-825A-45A0-B363-C09FFEF864BD}.Debug|Win32.ActiveCfg = Debug|Win32 + {39379840-825A-45A0-B363-C09FFEF864BD}.Debug|Win32.Build.0 = Debug|Win32 + {39379840-825A-45A0-B363-C09FFEF864BD}.Release|Win32.ActiveCfg = Release|Win32 + {39379840-825A-45A0-B363-C09FFEF864BD}.Release|Win32.Build.0 = Release|Win32 + {6B494955-1E66-40DA-830D-0D31B8D301EF}.Debug|Win32.ActiveCfg = Debug|Win32 + {6B494955-1E66-40DA-830D-0D31B8D301EF}.Debug|Win32.Build.0 = Debug|Win32 + {6B494955-1E66-40DA-830D-0D31B8D301EF}.Release|Win32.ActiveCfg = Release|Win32 + {6B494955-1E66-40DA-830D-0D31B8D301EF}.Release|Win32.Build.0 = Release|Win32 + {EB7E5610-C178-49C9-8B4C-1C283E616ED9}.Debug|Win32.ActiveCfg = Debug|Win32 + {EB7E5610-C178-49C9-8B4C-1C283E616ED9}.Debug|Win32.Build.0 = Debug|Win32 + {EB7E5610-C178-49C9-8B4C-1C283E616ED9}.Release|Win32.ActiveCfg = Release|Win32 + {EB7E5610-C178-49C9-8B4C-1C283E616ED9}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {B7C2A162-DEC9-4418-972E-240AB3CBFCAE} = {8C6B0381-B325-4D7F-B1BB-474ABACE46AC} + {6B494955-1E66-40DA-830D-0D31B8D301EF} = {8C6B0381-B325-4D7F-B1BB-474ABACE46AC} + {EB7E5610-C178-49C9-8B4C-1C283E616ED9} = {8C6B0381-B325-4D7F-B1BB-474ABACE46AC} + EndGlobalSection +EndGlobal diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/StepOfDoom.vcxproj b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/StepOfDoom.vcxproj new file mode 100755 index 0000000..f55951d --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/StepOfDoom.vcxproj @@ -0,0 +1,203 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {3B0B58B1-2734-488E-A542-ECEC11EB2455} + StepOfDoom + + + + Application + Unicode + v120 + v120_xp + v140 + v140_xp + v140 + v140_xp + + + Application + Unicode + v120 + v120_xp + v140 + v140_xp + v140 + v140_xp + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.21005.1 + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + false + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + false + AllRules.ruleset + + + AllRules.ruleset + + + + + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\lib;$(LibraryPath) + + + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\lib;$(LibraryPath) + + + + _DEBUG;%(PreprocessorDefinitions) + false + Win32 + true + $(IntDir)game.tlb + game.h + + + game_i.c + game_p.c + + + Disabled + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\base;$(EngineRoot)cocos\scripting\js-bindings\auto;$(EngineRoot)cocos\scripting\js-bindings\manual;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\win32\include\;$(EngineRoot)external\win32\include\v8;$(EngineRoot)extensions;$(EngineRoot)cocos\editor-support;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;STRICT;_DEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_USRLIBSIMSTATIC;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + 4267;4251;4244;4800;%(DisableSpecificWarnings) + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(IntDir);%(AdditionalIncludeDirectories) + + + + + + + v8.dll.lib;v8_libbase.dll.lib;v8_libplatform.dll.lib;libuv.lib;%(AdditionalDependencies) + $(OutDir);%(AdditionalLibraryDirectories) + true + Windows + MachineX86 + + + + + + + + + + + + + xcopy "$(ProjectDir)..\..\..\src" "$(OutDir)\src" /D /E /I /F /Y +xcopy "$(ProjectDir)..\..\..\res" "$(OutDir)\res" /D /E /I /F /Y +xcopy "$(ProjectDir)..\..\..\jsb-adapter" "$(OutDir)\jsb-adapter" /D /E /I /F /Y +copy "$(ProjectDir)..\..\..\main.js" "$(OutDir)\" /Y +copy "$(ProjectDir)..\..\..\project.json" "$(OutDir)\" /Y + $(TargetName).cab + $(TargetFileName) + + + + + NDEBUG;%(PreprocessorDefinitions) + false + Win32 + true + $(IntDir)game.tlb + game.h + + + game_i.c + game_p.c + + + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\base;$(EngineRoot)cocos\scripting\js-bindings\auto;$(EngineRoot)cocos\scripting\js-bindings\manual;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\win32\include\;$(EngineRoot)external\win32\include\v8;$(EngineRoot)extensions;$(EngineRoot)cocos\editor-support;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;STRICT;NDEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_USRLIBSIMSTATIC;%(PreprocessorDefinitions) + + + MultiThreadedDLL + + + Level3 + + + 4267;4251;4244;4800;%(DisableSpecificWarnings) + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(IntDir);%(AdditionalIncludeDirectories) + + + + + + + v8.dll.lib;v8_libbase.dll.lib;v8_libplatform.dll.lib;libuv.lib;%(AdditionalDependencies) + $(OutDir);%(AdditionalLibraryDirectories) + Windows + MachineX86 + true + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/StepOfDoom.vcxproj.filters b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/StepOfDoom.vcxproj.filters new file mode 100755 index 0000000..3410e72 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/StepOfDoom.vcxproj.filters @@ -0,0 +1,45 @@ + + + + + {ca9c9e15-d942-43a1-aa7a-5f0b74ca1afd} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;jpg;jpeg;jpe;png;manifest + + + {ccb2323b-1cfa-41ea-bcf4-ba5f07309396} + + + {e93a77e1-af1e-4400-87d3-504b62ebdbb0} + + + + + win32 + + + Classes + + + Classes + + + + + Classes + + + win32 + + + + + + resource + + + + + resource + + + \ No newline at end of file diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/StepOfDoom.vcxproj.user b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/StepOfDoom.vcxproj.user new file mode 100644 index 0000000..8cf1d60 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/StepOfDoom.vcxproj.user @@ -0,0 +1,11 @@ + + + + $(OutDir) + WindowsLocalDebugger + + + $(OutDir) + WindowsLocalDebugger + + \ No newline at end of file diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/build-cfg.json b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/build-cfg.json new file mode 100755 index 0000000..d854c66 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/build-cfg.json @@ -0,0 +1,28 @@ +{ + "copy_resources": [ + { + "from": "../../../src", + "to": "src" + }, + { + "from": "../../../res", + "to": "res" + }, + { + "from": "../../../subpackages", + "to": "subpackages" + }, + { + "from": "../../../main.js", + "to": "" + }, + { + "from": "../../../project.json", + "to": "" + }, + { + "from": "../../../jsb-adapter", + "to": "jsb-adapter" + } + ] +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/game.rc b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/game.rc new file mode 100755 index 0000000..491e970 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/game.rc @@ -0,0 +1,126 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winresrc.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Chinese (Simplified, PRC) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) +LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED +#pragma code_page(936) + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +2 TEXTINCLUDE +BEGIN + "#include ""winresrc.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // Chinese (Simplified, PRC) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +GLFW_ICON ICON "res\\game.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "FileDescription", "game Module" + VALUE "FileVersion", "1, 0, 0, 1" + VALUE "InternalName", "game" + VALUE "LegalCopyright", "Copyright " + VALUE "OriginalFilename", "game.exe" + VALUE "ProductName", "game Module" + VALUE "ProductVersion", "1, 0, 0, 1" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED \ No newline at end of file diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/main.cpp b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/main.cpp new file mode 100755 index 0000000..2c368a2 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/main.cpp @@ -0,0 +1,58 @@ +/**************************************************************************** + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos.com + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated engine source code (the "Software"), a limited, + worldwide, royalty-free, non-assignable, revocable and non-exclusive license + to use Cocos Creator solely to develop games on your target platforms. You shall + not use Cocos Creator software for developing other software or tools that's + used for developing games. You are not granted to publish, distribute, + sublicense, and/or sell copies of Cocos Creator. + + The software or tools in this License Agreement are licensed, not sold. + Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#include "main.h" +#include "AppDelegate.h" + +USING_NS_CC; + +// uncomment below line, open debug console +// #define USE_WIN32_CONSOLE + +int APIENTRY _tWinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPTSTR lpCmdLine, + int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + +#ifdef USE_WIN32_CONSOLE + AllocConsole(); + freopen("CONIN$", "r", stdin); + freopen("CONOUT$", "w", stdout); + freopen("CONOUT$", "w", stderr); +#endif + + // create the application instance + AppDelegate app(960, 640); + app.start(); + +#ifdef USE_WIN32_CONSOLE + FreeConsole(); +#endif + + return 0; +} diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/main.h b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/main.h new file mode 100755 index 0000000..1f01f63 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/main.h @@ -0,0 +1,37 @@ +/**************************************************************************** + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos.com + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated engine source code (the "Software"), a limited, + worldwide, royalty-free, non-assignable, revocable and non-exclusive license + to use Cocos Creator solely to develop games on your target platforms. You shall + not use Cocos Creator software for developing other software or tools that's + used for developing games. You are not granted to publish, distribute, + sublicense, and/or sell copies of Cocos Creator. + + The software or tools in this License Agreement are licensed, not sold. + Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#ifndef __MAIN_H__ +#define __MAIN_H__ + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers + +// Windows Header Files: +#include + +// C RunTime Header Files +#include "CCStdC.h" + +#endif // __WINMAIN_H__ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/res/game.ico b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/res/game.ico new file mode 100755 index 0000000..feaf932 Binary files /dev/null and b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/res/game.ico differ diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/resource.h b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/resource.h new file mode 100755 index 0000000..9201190 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/frameworks/runtime-src/proj.win32/resource.h @@ -0,0 +1,17 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by game.rc +// +#define IDS_PROJNAME 100 +#define IDR_TESTJS 100 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 204 +#define _APS_NEXT_COMMAND_VALUE 32785 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/js backups (useful for debugging)/cocos2d-jsb.js b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/js backups (useful for debugging)/cocos2d-jsb.js new file mode 100644 index 0000000..bd7bac8 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/js backups (useful for debugging)/cocos2d-jsb.js @@ -0,0 +1,64859 @@ +(function() { +(function(t, e, i) { +function n(i, r) { +var s = e[i]; +if (!s) { +var o = t[i]; +if (!o) return; +var a = {}; +s = e[i] = { +exports: a +}; +o[0]((function(t) { +return n(o[1][t] || t); +}), s, a); +} +return s.exports; +} +for (var r = 0; r < i.length; r++) n(i[r]); +})({ +1: [ (function(t, e, i) { +"use strict"; +t("../core/platform/CCClass"); +var n = t("../core/utils/misc"); +cc.Action = cc.Class({ +name: "cc.Action", +ctor: function() { +this.originalTarget = null; +this.target = null; +this.tag = cc.Action.TAG_INVALID; +}, +clone: function() { +var t = new cc.Action(); +t.originalTarget = null; +t.target = null; +t.tag = this.tag; +return t; +}, +isDone: function() { +return !0; +}, +startWithTarget: function(t) { +this.originalTarget = t; +this.target = t; +}, +stop: function() { +this.target = null; +}, +step: function(t) { +cc.logID(1006); +}, +update: function(t) { +cc.logID(1007); +}, +getTarget: function() { +return this.target; +}, +setTarget: function(t) { +this.target = t; +}, +getOriginalTarget: function() { +return this.originalTarget; +}, +setOriginalTarget: function(t) { +this.originalTarget = t; +}, +getTag: function() { +return this.tag; +}, +setTag: function(t) { +this.tag = t; +}, +retain: function() {}, +release: function() {} +}); +cc.Action.TAG_INVALID = -1; +cc.FiniteTimeAction = cc.Class({ +name: "cc.FiniteTimeAction", +extends: cc.Action, +ctor: function() { +this._duration = 0; +}, +getDuration: function() { +return this._duration * (this._timesForRepeat || 1); +}, +setDuration: function(t) { +this._duration = t; +}, +reverse: function() { +cc.logID(1008); +return null; +}, +clone: function() { +return new cc.FiniteTimeAction(); +} +}); +cc.Speed = cc.Class({ +name: "cc.Speed", +extends: cc.Action, +ctor: function(t, e) { +this._speed = 0; +this._innerAction = null; +t && this.initWithAction(t, e); +}, +getSpeed: function() { +return this._speed; +}, +setSpeed: function(t) { +this._speed = t; +}, +initWithAction: function(t, e) { +if (!t) { +cc.errorID(1021); +return !1; +} +this._innerAction = t; +this._speed = e; +return !0; +}, +clone: function() { +var t = new cc.Speed(); +t.initWithAction(this._innerAction.clone(), this._speed); +return t; +}, +startWithTarget: function(t) { +cc.Action.prototype.startWithTarget.call(this, t); +this._innerAction.startWithTarget(t); +}, +stop: function() { +this._innerAction.stop(); +cc.Action.prototype.stop.call(this); +}, +step: function(t) { +this._innerAction.step(t * this._speed); +}, +isDone: function() { +return this._innerAction.isDone(); +}, +reverse: function() { +return new cc.Speed(this._innerAction.reverse(), this._speed); +}, +setInnerAction: function(t) { +this._innerAction !== t && (this._innerAction = t); +}, +getInnerAction: function() { +return this._innerAction; +} +}); +cc.speed = function(t, e) { +return new cc.Speed(t, e); +}; +cc.Follow = cc.Class({ +name: "cc.Follow", +extends: cc.Action, +ctor: function(t, e) { +this._followedNode = null; +this._boundarySet = !1; +this._boundaryFullyCovered = !1; +this._halfScreenSize = null; +this._fullScreenSize = null; +this.leftBoundary = 0; +this.rightBoundary = 0; +this.topBoundary = 0; +this.bottomBoundary = 0; +this._worldRect = cc.rect(0, 0, 0, 0); +t && (e ? this.initWithTarget(t, e) : this.initWithTarget(t)); +}, +clone: function() { +var t = new cc.Follow(), e = this._worldRect, i = new cc.Rect(e.x, e.y, e.width, e.height); +t.initWithTarget(this._followedNode, i); +return t; +}, +isBoundarySet: function() { +return this._boundarySet; +}, +setBoudarySet: function(t) { +this._boundarySet = t; +}, +initWithTarget: function(t, e) { +if (!t) { +cc.errorID(1022); +return !1; +} +e = e || cc.rect(0, 0, 0, 0); +this._followedNode = t; +this._worldRect = e; +this._boundarySet = !(0 === e.width && 0 === e.height); +this._boundaryFullyCovered = !1; +var i = cc.winSize; +this._fullScreenSize = cc.v2(i.width, i.height); +this._halfScreenSize = this._fullScreenSize.mul(.5); +if (this._boundarySet) { +this.leftBoundary = -(e.x + e.width - this._fullScreenSize.x); +this.rightBoundary = -e.x; +this.topBoundary = -e.y; +this.bottomBoundary = -(e.y + e.height - this._fullScreenSize.y); +this.rightBoundary < this.leftBoundary && (this.rightBoundary = this.leftBoundary = (this.leftBoundary + this.rightBoundary) / 2); +this.topBoundary < this.bottomBoundary && (this.topBoundary = this.bottomBoundary = (this.topBoundary + this.bottomBoundary) / 2); +this.topBoundary === this.bottomBoundary && this.leftBoundary === this.rightBoundary && (this._boundaryFullyCovered = !0); +} +return !0; +}, +step: function(t) { +var e = this.target.convertToWorldSpaceAR(cc.Vec2.ZERO), i = this._followedNode.convertToWorldSpaceAR(cc.Vec2.ZERO), r = e.sub(i), s = this.target.parent.convertToNodeSpaceAR(r.add(this._halfScreenSize)); +if (this._boundarySet) { +if (this._boundaryFullyCovered) return; +this.target.setPosition(n.clampf(s.x, this.leftBoundary, this.rightBoundary), n.clampf(s.y, this.bottomBoundary, this.topBoundary)); +} else this.target.setPosition(s.x, s.y); +}, +isDone: function() { +return !this._followedNode.activeInHierarchy; +}, +stop: function() { +this.target = null; +cc.Action.prototype.stop.call(this); +} +}); +cc.follow = function(t, e) { +return new cc.Follow(t, e); +}; +}), { +"../core/platform/CCClass": 201, +"../core/utils/misc": 297 +} ], +2: [ (function(t, e, i) { +"use strict"; +function n(t, e, i, n, r, s) { +var o = s * s, a = o * s, c = (1 - r) / 2, l = c * (2 * o - a - s), h = c * (-a + o) + (2 * a - 3 * o + 1), u = c * (a - 2 * o + s) + (-2 * a + 3 * o), _ = c * (a - o), f = t.x * l + e.x * h + i.x * u + n.x * _, d = t.y * l + e.y * h + i.y * u + n.y * _; +return cc.v2(f, d); +} +function r(t, e) { +return t[Math.min(t.length - 1, Math.max(e, 0))]; +} +function s(t) { +for (var e = [], i = t.length - 1; i >= 0; i--) e.push(cc.v2(t[i].x, t[i].y)); +return e; +} +function o(t) { +for (var e = [], i = 0; i < t.length; i++) e.push(cc.v2(t[i].x, t[i].y)); +return e; +} +cc.CardinalSplineTo = cc.Class({ +name: "cc.CardinalSplineTo", +extends: cc.ActionInterval, +ctor: function(t, e, i) { +this._points = []; +this._deltaT = 0; +this._tension = 0; +this._previousPosition = null; +this._accumulatedDiff = null; +void 0 !== i && cc.CardinalSplineTo.prototype.initWithDuration.call(this, t, e, i); +}, +initWithDuration: function(t, e, i) { +if (!e || 0 === e.length) { +cc.errorID(1024); +return !1; +} +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +this.setPoints(e); +this._tension = i; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.CardinalSplineTo(); +t.initWithDuration(this._duration, o(this._points), this._tension); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._deltaT = 1 / (this._points.length - 1); +this._previousPosition = cc.v2(this.target.x, this.target.y); +this._accumulatedDiff = cc.v2(0, 0); +}, +update: function(t) { +t = this._computeEaseTime(t); +var e, i, s = this._points; +if (1 === t) { +e = s.length - 1; +i = 1; +} else { +var o = this._deltaT; +i = (t - o * (e = 0 | t / o)) / o; +} +var a = n(r(s, e - 1), r(s, e - 0), r(s, e + 1), r(s, e + 2), this._tension, i); +if (cc.macro.ENABLE_STACKABLE_ACTIONS) { +var c, l; +c = this.target.x - this._previousPosition.x; +l = this.target.y - this._previousPosition.y; +if (0 !== c || 0 !== l) { +var h = this._accumulatedDiff; +c = h.x + c; +l = h.y + l; +h.x = c; +h.y = l; +a.x += c; +a.y += l; +} +} +this.updatePosition(a); +}, +reverse: function() { +var t = s(this._points); +return cc.cardinalSplineTo(this._duration, t, this._tension); +}, +updatePosition: function(t) { +this.target.setPosition(t); +this._previousPosition = t; +}, +getPoints: function() { +return this._points; +}, +setPoints: function(t) { +this._points = t; +} +}); +cc.cardinalSplineTo = function(t, e, i) { +return new cc.CardinalSplineTo(t, e, i); +}; +cc.CardinalSplineBy = cc.Class({ +name: "cc.CardinalSplineBy", +extends: cc.CardinalSplineTo, +ctor: function(t, e, i) { +this._startPosition = cc.v2(0, 0); +void 0 !== i && this.initWithDuration(t, e, i); +}, +startWithTarget: function(t) { +cc.CardinalSplineTo.prototype.startWithTarget.call(this, t); +this._startPosition.x = t.x; +this._startPosition.y = t.y; +}, +reverse: function() { +for (var t, e = this._points.slice(), i = e[0], n = 1; n < e.length; ++n) { +t = e[n]; +e[n] = t.sub(i); +i = t; +} +var r = s(e); +i = r[r.length - 1]; +r.pop(); +i.x = -i.x; +i.y = -i.y; +r.unshift(i); +for (n = 1; n < r.length; ++n) { +(t = r[n]).x = -t.x; +t.y = -t.y; +t.x += i.x; +t.y += i.y; +r[n] = t; +i = t; +} +return cc.cardinalSplineBy(this._duration, r, this._tension); +}, +updatePosition: function(t) { +var e = this._startPosition, i = t.x + e.x, n = t.y + e.y; +this._previousPosition.x = i; +this._previousPosition.y = n; +this.target.setPosition(i, n); +}, +clone: function() { +var t = new cc.CardinalSplineBy(); +t.initWithDuration(this._duration, o(this._points), this._tension); +return t; +} +}); +cc.cardinalSplineBy = function(t, e, i) { +return new cc.CardinalSplineBy(t, e, i); +}; +cc.CatmullRomTo = cc.Class({ +name: "cc.CatmullRomTo", +extends: cc.CardinalSplineTo, +ctor: function(t, e) { +e && this.initWithDuration(t, e); +}, +initWithDuration: function(t, e) { +return cc.CardinalSplineTo.prototype.initWithDuration.call(this, t, e, .5); +}, +clone: function() { +var t = new cc.CatmullRomTo(); +t.initWithDuration(this._duration, o(this._points)); +return t; +} +}); +cc.catmullRomTo = function(t, e) { +return new cc.CatmullRomTo(t, e); +}; +cc.CatmullRomBy = cc.Class({ +name: "cc.CatmullRomBy", +extends: cc.CardinalSplineBy, +ctor: function(t, e) { +e && this.initWithDuration(t, e); +}, +initWithDuration: function(t, e) { +return cc.CardinalSplineTo.prototype.initWithDuration.call(this, t, e, .5); +}, +clone: function() { +var t = new cc.CatmullRomBy(); +t.initWithDuration(this._duration, o(this._points)); +return t; +} +}); +cc.catmullRomBy = function(t, e) { +return new cc.CatmullRomBy(t, e); +}; +}), {} ], +3: [ (function(t, e, i) { +"use strict"; +cc.easeIn = function(t) { +return { +_rate: t, +easing: function(t) { +return Math.pow(t, this._rate); +}, +reverse: function() { +return cc.easeIn(1 / this._rate); +} +}; +}; +cc.easeOut = function(t) { +return { +_rate: t, +easing: function(t) { +return Math.pow(t, 1 / this._rate); +}, +reverse: function() { +return cc.easeOut(1 / this._rate); +} +}; +}; +cc.easeInOut = function(t) { +return { +_rate: t, +easing: function(t) { +return (t *= 2) < 1 ? .5 * Math.pow(t, this._rate) : 1 - .5 * Math.pow(2 - t, this._rate); +}, +reverse: function() { +return cc.easeInOut(this._rate); +} +}; +}; +var n = { +easing: function(t) { +return 0 === t ? 0 : Math.pow(2, 10 * (t - 1)); +}, +reverse: function() { +return r; +} +}; +cc.easeExponentialIn = function() { +return n; +}; +var r = { +easing: function(t) { +return 1 === t ? 1 : 1 - Math.pow(2, -10 * t); +}, +reverse: function() { +return n; +} +}; +cc.easeExponentialOut = function() { +return r; +}; +var s = { +easing: function(t) { +return 1 !== t && 0 !== t ? (t *= 2) < 1 ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (2 - Math.pow(2, -10 * (t - 1))) : t; +}, +reverse: function() { +return s; +} +}; +cc.easeExponentialInOut = function() { +return s; +}; +var o = { +easing: function(t) { +return 0 === t || 1 === t ? t : -1 * Math.cos(t * Math.PI / 2) + 1; +}, +reverse: function() { +return a; +} +}; +cc.easeSineIn = function() { +return o; +}; +var a = { +easing: function(t) { +return 0 === t || 1 === t ? t : Math.sin(t * Math.PI / 2); +}, +reverse: function() { +return o; +} +}; +cc.easeSineOut = function() { +return a; +}; +var c = { +easing: function(t) { +return 0 === t || 1 === t ? t : -.5 * (Math.cos(Math.PI * t) - 1); +}, +reverse: function() { +return c; +} +}; +cc.easeSineInOut = function() { +return c; +}; +var l = { +easing: function(t) { +if (0 === t || 1 === t) return t; +t -= 1; +return -Math.pow(2, 10 * t) * Math.sin((t - .075) * Math.PI * 2 / .3); +}, +reverse: function() { +return h; +} +}; +cc.easeElasticIn = function(t) { +return t && .3 !== t ? { +_period: t, +easing: function(t) { +if (0 === t || 1 === t) return t; +t -= 1; +return -Math.pow(2, 10 * t) * Math.sin((t - this._period / 4) * Math.PI * 2 / this._period); +}, +reverse: function() { +return cc.easeElasticOut(this._period); +} +} : l; +}; +var h = { +easing: function(t) { +return 0 === t || 1 === t ? t : Math.pow(2, -10 * t) * Math.sin((t - .075) * Math.PI * 2 / .3) + 1; +}, +reverse: function() { +return l; +} +}; +cc.easeElasticOut = function(t) { +return t && .3 !== t ? { +_period: t, +easing: function(t) { +return 0 === t || 1 === t ? t : Math.pow(2, -10 * t) * Math.sin((t - this._period / 4) * Math.PI * 2 / this._period) + 1; +}, +reverse: function() { +return cc.easeElasticIn(this._period); +} +} : h; +}; +cc.easeElasticInOut = function(t) { +return { +_period: t = t || .3, +easing: function(t) { +var e = 0, i = this._period; +if (0 === t || 1 === t) e = t; else { +t *= 2; +i || (i = this._period = .3 * 1.5); +var n = i / 4; +e = (t -= 1) < 0 ? -.5 * Math.pow(2, 10 * t) * Math.sin((t - n) * Math.PI * 2 / i) : Math.pow(2, -10 * t) * Math.sin((t - n) * Math.PI * 2 / i) * .5 + 1; +} +return e; +}, +reverse: function() { +return cc.easeElasticInOut(this._period); +} +}; +}; +function u(t) { +return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; +} +var _ = { +easing: function(t) { +return 1 - u(1 - t); +}, +reverse: function() { +return f; +} +}; +cc.easeBounceIn = function() { +return _; +}; +var f = { +easing: function(t) { +return u(t); +}, +reverse: function() { +return _; +} +}; +cc.easeBounceOut = function() { +return f; +}; +var d = { +easing: function(t) { +return t < .5 ? .5 * (1 - u(1 - (t *= 2))) : .5 * u(2 * t - 1) + .5; +}, +reverse: function() { +return d; +} +}; +cc.easeBounceInOut = function() { +return d; +}; +var m = { +easing: function(t) { +return 0 === t || 1 === t ? t : t * t * (2.70158 * t - 1.70158); +}, +reverse: function() { +return p; +} +}; +cc.easeBackIn = function() { +return m; +}; +var p = { +easing: function(t) { +return (t -= 1) * t * (2.70158 * t + 1.70158) + 1; +}, +reverse: function() { +return m; +} +}; +cc.easeBackOut = function() { +return p; +}; +var v = { +easing: function(t) { +return (t *= 2) < 1 ? t * t * (3.5949095 * t - 2.5949095) / 2 : (t -= 2) * t * (3.5949095 * t + 2.5949095) / 2 + 1; +}, +reverse: function() { +return v; +} +}; +cc.easeBackInOut = function() { +return v; +}; +cc.easeBezierAction = function(t, e, i, n) { +return { +easing: function(r) { +return Math.pow(1 - r, 3) * t + 3 * r * Math.pow(1 - r, 2) * e + 3 * Math.pow(r, 2) * (1 - r) * i + Math.pow(r, 3) * n; +}, +reverse: function() { +return cc.easeBezierAction(n, i, e, t); +} +}; +}; +var y = { +easing: function(t) { +return Math.pow(t, 2); +}, +reverse: function() { +return y; +} +}; +cc.easeQuadraticActionIn = function() { +return y; +}; +var g = { +easing: function(t) { +return -t * (t - 2); +}, +reverse: function() { +return g; +} +}; +cc.easeQuadraticActionOut = function() { +return g; +}; +var x = { +easing: function(t) { +return (t *= 2) < 1 ? t * t * .5 : -.5 * (--t * (t - 2) - 1); +}, +reverse: function() { +return x; +} +}; +cc.easeQuadraticActionInOut = function() { +return x; +}; +var C = { +easing: function(t) { +return t * t * t * t; +}, +reverse: function() { +return C; +} +}; +cc.easeQuarticActionIn = function() { +return C; +}; +var b = { +easing: function(t) { +return -((t -= 1) * t * t * t - 1); +}, +reverse: function() { +return b; +} +}; +cc.easeQuarticActionOut = function() { +return b; +}; +var A = { +easing: function(t) { +return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2); +}, +reverse: function() { +return A; +} +}; +cc.easeQuarticActionInOut = function() { +return A; +}; +var S = { +easing: function(t) { +return t * t * t * t * t; +}, +reverse: function() { +return S; +} +}; +cc.easeQuinticActionIn = function() { +return S; +}; +var w = { +easing: function(t) { +return (t -= 1) * t * t * t * t + 1; +}, +reverse: function() { +return w; +} +}; +cc.easeQuinticActionOut = function() { +return w; +}; +var T = { +easing: function(t) { +return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2); +}, +reverse: function() { +return T; +} +}; +cc.easeQuinticActionInOut = function() { +return T; +}; +var E = { +easing: function(t) { +return -1 * (Math.sqrt(1 - t * t) - 1); +}, +reverse: function() { +return E; +} +}; +cc.easeCircleActionIn = function() { +return E; +}; +var M = { +easing: function(t) { +t -= 1; +return Math.sqrt(1 - t * t); +}, +reverse: function() { +return M; +} +}; +cc.easeCircleActionOut = function() { +return M; +}; +var B = { +easing: function(t) { +if ((t *= 2) < 1) return -.5 * (Math.sqrt(1 - t * t) - 1); +t -= 2; +return .5 * (Math.sqrt(1 - t * t) + 1); +}, +reverse: function() { +return B; +} +}; +cc.easeCircleActionInOut = function() { +return B; +}; +var D = { +easing: function(t) { +return t * t * t; +}, +reverse: function() { +return D; +} +}; +cc.easeCubicActionIn = function() { +return D; +}; +var I = { +easing: function(t) { +return (t -= 1) * t * t + 1; +}, +reverse: function() { +return I; +} +}; +cc.easeCubicActionOut = function() { +return I; +}; +var P = { +easing: function(t) { +return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2); +}, +reverse: function() { +return P; +} +}; +cc.easeCubicActionInOut = function() { +return P; +}; +}), {} ], +4: [ (function(t, e, i) { +"use strict"; +cc.ActionInstant = cc.Class({ +name: "cc.ActionInstant", +extends: cc.FiniteTimeAction, +isDone: function() { +return !0; +}, +step: function(t) { +this.update(1); +}, +update: function(t) {}, +reverse: function() { +return this.clone(); +}, +clone: function() { +return new cc.ActionInstant(); +} +}); +cc.Show = cc.Class({ +name: "cc.Show", +extends: cc.ActionInstant, +update: function(t) { +for (var e = this.target.getComponentsInChildren(cc.RenderComponent), i = 0; i < e.length; ++i) { +e[i].enabled = !0; +} +}, +reverse: function() { +return new cc.Hide(); +}, +clone: function() { +return new cc.Show(); +} +}); +cc.show = function() { +return new cc.Show(); +}; +cc.Hide = cc.Class({ +name: "cc.Hide", +extends: cc.ActionInstant, +update: function(t) { +for (var e = this.target.getComponentsInChildren(cc.RenderComponent), i = 0; i < e.length; ++i) { +e[i].enabled = !1; +} +}, +reverse: function() { +return new cc.Show(); +}, +clone: function() { +return new cc.Hide(); +} +}); +cc.hide = function() { +return new cc.Hide(); +}; +cc.ToggleVisibility = cc.Class({ +name: "cc.ToggleVisibility", +extends: cc.ActionInstant, +update: function(t) { +for (var e = this.target.getComponentsInChildren(cc.RenderComponent), i = 0; i < e.length; ++i) { +var n = e[i]; +n.enabled = !n.enabled; +} +}, +reverse: function() { +return new cc.ToggleVisibility(); +}, +clone: function() { +return new cc.ToggleVisibility(); +} +}); +cc.toggleVisibility = function() { +return new cc.ToggleVisibility(); +}; +cc.RemoveSelf = cc.Class({ +name: "cc.RemoveSelf", +extends: cc.ActionInstant, +ctor: function(t) { +this._isNeedCleanUp = !0; +void 0 !== t && this.init(t); +}, +update: function(t) { +this.target.removeFromParent(this._isNeedCleanUp); +}, +init: function(t) { +this._isNeedCleanUp = t; +return !0; +}, +reverse: function() { +return new cc.RemoveSelf(this._isNeedCleanUp); +}, +clone: function() { +return new cc.RemoveSelf(this._isNeedCleanUp); +} +}); +cc.removeSelf = function(t) { +return new cc.RemoveSelf(t); +}; +cc.FlipX = cc.Class({ +name: "cc.FlipX", +extends: cc.ActionInstant, +ctor: function(t) { +this._flippedX = !1; +void 0 !== t && this.initWithFlipX(t); +}, +initWithFlipX: function(t) { +this._flippedX = t; +return !0; +}, +update: function(t) { +this.target.scaleX = Math.abs(this.target.scaleX) * (this._flippedX ? -1 : 1); +}, +reverse: function() { +return new cc.FlipX(!this._flippedX); +}, +clone: function() { +var t = new cc.FlipX(); +t.initWithFlipX(this._flippedX); +return t; +} +}); +cc.flipX = function(t) { +return new cc.FlipX(t); +}; +cc.FlipY = cc.Class({ +name: "cc.FlipY", +extends: cc.ActionInstant, +ctor: function(t) { +this._flippedY = !1; +void 0 !== t && this.initWithFlipY(t); +}, +initWithFlipY: function(t) { +this._flippedY = t; +return !0; +}, +update: function(t) { +this.target.scaleY = Math.abs(this.target.scaleY) * (this._flippedY ? -1 : 1); +}, +reverse: function() { +return new cc.FlipY(!this._flippedY); +}, +clone: function() { +var t = new cc.FlipY(); +t.initWithFlipY(this._flippedY); +return t; +} +}); +cc.flipY = function(t) { +return new cc.FlipY(t); +}; +cc.Place = cc.Class({ +name: "cc.Place", +extends: cc.ActionInstant, +ctor: function(t, e) { +this._x = 0; +this._y = 0; +if (void 0 !== t) { +if (void 0 !== t.x) { +e = t.y; +t = t.x; +} +this.initWithPosition(t, e); +} +}, +initWithPosition: function(t, e) { +this._x = t; +this._y = e; +return !0; +}, +update: function(t) { +this.target.setPosition(this._x, this._y); +}, +clone: function() { +var t = new cc.Place(); +t.initWithPosition(this._x, this._y); +return t; +} +}); +cc.place = function(t, e) { +return new cc.Place(t, e); +}; +cc.CallFunc = cc.Class({ +name: "cc.CallFunc", +extends: cc.ActionInstant, +ctor: function(t, e, i) { +this._selectorTarget = null; +this._function = null; +this._data = null; +this.initWithFunction(t, e, i); +}, +initWithFunction: function(t, e, i) { +t && (this._function = t); +e && (this._selectorTarget = e); +void 0 !== i && (this._data = i); +return !0; +}, +execute: function() { +this._function && this._function.call(this._selectorTarget, this.target, this._data); +}, +update: function(t) { +this.execute(); +}, +getTargetCallback: function() { +return this._selectorTarget; +}, +setTargetCallback: function(t) { +if (t !== this._selectorTarget) { +this._selectorTarget && (this._selectorTarget = null); +this._selectorTarget = t; +} +}, +clone: function() { +var t = new cc.CallFunc(); +t.initWithFunction(this._function, this._selectorTarget, this._data); +return t; +} +}); +cc.callFunc = function(t, e, i) { +return new cc.CallFunc(t, e, i); +}; +}), {} ], +5: [ (function(t, e, i) { +"use strict"; +cc.ActionInterval = cc.Class({ +name: "cc.ActionInterval", +extends: cc.FiniteTimeAction, +ctor: function(t) { +this.MAX_VALUE = 2; +this._elapsed = 0; +this._firstTick = !1; +this._easeList = null; +this._speed = 1; +this._timesForRepeat = 1; +this._repeatForever = !1; +this._repeatMethod = !1; +this._speedMethod = !1; +void 0 !== t && cc.ActionInterval.prototype.initWithDuration.call(this, t); +}, +getElapsed: function() { +return this._elapsed; +}, +initWithDuration: function(t) { +this._duration = 0 === t ? cc.macro.FLT_EPSILON : t; +this._elapsed = 0; +this._firstTick = !0; +return !0; +}, +isDone: function() { +return this._elapsed >= this._duration; +}, +_cloneDecoration: function(t) { +t._repeatForever = this._repeatForever; +t._speed = this._speed; +t._timesForRepeat = this._timesForRepeat; +t._easeList = this._easeList; +t._speedMethod = this._speedMethod; +t._repeatMethod = this._repeatMethod; +}, +_reverseEaseList: function(t) { +if (this._easeList) { +t._easeList = []; +for (var e = 0; e < this._easeList.length; e++) t._easeList.push(this._easeList[e].reverse()); +} +}, +clone: function() { +var t = new cc.ActionInterval(this._duration); +this._cloneDecoration(t); +return t; +}, +easing: function(t) { +this._easeList ? this._easeList.length = 0 : this._easeList = []; +for (var e = 0; e < arguments.length; e++) this._easeList.push(arguments[e]); +return this; +}, +_computeEaseTime: function(t) { +var e = this._easeList; +if (!e || 0 === e.length) return t; +for (var i = 0, n = e.length; i < n; i++) t = e[i].easing(t); +return t; +}, +step: function(t) { +if (this._firstTick) { +this._firstTick = !1; +this._elapsed = 0; +} else this._elapsed += t; +var e = this._elapsed / (this._duration > 1.192092896e-7 ? this._duration : 1.192092896e-7); +e = 1 > e ? e : 1; +this.update(e > 0 ? e : 0); +if (this._repeatMethod && this._timesForRepeat > 1 && this.isDone()) { +this._repeatForever || this._timesForRepeat--; +this.startWithTarget(this.target); +this.step(this._elapsed - this._duration); +} +}, +startWithTarget: function(t) { +cc.Action.prototype.startWithTarget.call(this, t); +this._elapsed = 0; +this._firstTick = !0; +}, +reverse: function() { +cc.logID(1010); +return null; +}, +setAmplitudeRate: function(t) { +cc.logID(1011); +}, +getAmplitudeRate: function() { +cc.logID(1012); +return 0; +}, +speed: function(t) { +if (t <= 0) { +cc.logID(1013); +return this; +} +this._speedMethod = !0; +this._speed *= t; +return this; +}, +getSpeed: function() { +return this._speed; +}, +setSpeed: function(t) { +this._speed = t; +return this; +}, +repeat: function(t) { +t = Math.round(t); +if (isNaN(t) || t < 1) { +cc.logID(1014); +return this; +} +this._repeatMethod = !0; +this._timesForRepeat *= t; +return this; +}, +repeatForever: function() { +this._repeatMethod = !0; +this._timesForRepeat = this.MAX_VALUE; +this._repeatForever = !0; +return this; +} +}); +cc.actionInterval = function(t) { +return new cc.ActionInterval(t); +}; +cc.Sequence = cc.Class({ +name: "cc.Sequence", +extends: cc.ActionInterval, +ctor: function(t) { +this._actions = []; +this._split = null; +this._last = 0; +this._reversed = !1; +var e = t instanceof Array ? t : arguments; +if (1 !== e.length) { +var i = e.length - 1; +i >= 0 && null == e[i] && cc.logID(1015); +if (i >= 0) { +for (var n, r = e[0], s = 1; s < i; s++) if (e[s]) { +n = r; +r = cc.Sequence._actionOneTwo(n, e[s]); +} +this.initWithTwoActions(r, e[i]); +} +} else cc.errorID(1019); +}, +initWithTwoActions: function(t, e) { +if (!t || !e) { +cc.errorID(1025); +return !1; +} +var i = t._duration, n = e._duration, r = (i *= t._repeatMethod ? t._timesForRepeat : 1) + (n *= e._repeatMethod ? e._timesForRepeat : 1); +this.initWithDuration(r); +this._actions[0] = t; +this._actions[1] = e; +return !0; +}, +clone: function() { +var t = new cc.Sequence(); +this._cloneDecoration(t); +t.initWithTwoActions(this._actions[0].clone(), this._actions[1].clone()); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._split = this._actions[0]._duration / this._duration; +this._split *= this._actions[0]._repeatMethod ? this._actions[0]._timesForRepeat : 1; +this._last = -1; +}, +stop: function() { +-1 !== this._last && this._actions[this._last].stop(); +cc.Action.prototype.stop.call(this); +}, +update: function(t) { +var e, i, n = 0, r = this._split, s = this._actions, o = this._last; +if ((t = this._computeEaseTime(t)) < r) { +e = 0 !== r ? t / r : 1; +if (0 === n && 1 === o && this._reversed) { +s[1].update(0); +s[1].stop(); +} +} else { +n = 1; +e = 1 === r ? 1 : (t - r) / (1 - r); +if (-1 === o) { +s[0].startWithTarget(this.target); +s[0].update(1); +s[0].stop(); +} +if (0 === o) { +s[0].update(1); +s[0].stop(); +} +} +i = s[n]; +if (o !== n || !i.isDone()) { +o !== n && i.startWithTarget(this.target); +e *= i._timesForRepeat; +i.update(e > 1 ? e % 1 : e); +this._last = n; +} +}, +reverse: function() { +var t = cc.Sequence._actionOneTwo(this._actions[1].reverse(), this._actions[0].reverse()); +this._cloneDecoration(t); +this._reverseEaseList(t); +t._reversed = !0; +return t; +} +}); +cc.sequence = function(t) { +var e = t instanceof Array ? t : arguments; +if (1 === e.length) { +cc.errorID(1019); +return null; +} +var i = e.length - 1; +i >= 0 && null == e[i] && cc.logID(1015); +var n = null; +if (i >= 0) { +n = e[0]; +for (var r = 1; r <= i; r++) e[r] && (n = cc.Sequence._actionOneTwo(n, e[r])); +} +return n; +}; +cc.Sequence._actionOneTwo = function(t, e) { +var i = new cc.Sequence(); +i.initWithTwoActions(t, e); +return i; +}; +cc.Repeat = cc.Class({ +name: "cc.Repeat", +extends: cc.ActionInterval, +ctor: function(t, e) { +this._times = 0; +this._total = 0; +this._nextDt = 0; +this._actionInstant = !1; +this._innerAction = null; +void 0 !== e && this.initWithAction(t, e); +}, +initWithAction: function(t, e) { +var i = t._duration * e; +if (this.initWithDuration(i)) { +this._times = e; +this._innerAction = t; +if (t instanceof cc.ActionInstant) { +this._actionInstant = !0; +this._times -= 1; +} +this._total = 0; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.Repeat(); +this._cloneDecoration(t); +t.initWithAction(this._innerAction.clone(), this._times); +return t; +}, +startWithTarget: function(t) { +this._total = 0; +this._nextDt = this._innerAction._duration / this._duration; +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._innerAction.startWithTarget(t); +}, +stop: function() { +this._innerAction.stop(); +cc.Action.prototype.stop.call(this); +}, +update: function(t) { +t = this._computeEaseTime(t); +var e = this._innerAction, i = this._duration, n = this._times, r = this._nextDt; +if (t >= r) { +for (;t > r && this._total < n; ) { +e.update(1); +this._total++; +e.stop(); +e.startWithTarget(this.target); +r += e._duration / i; +this._nextDt = r > 1 ? 1 : r; +} +if (t >= 1 && this._total < n) { +e.update(1); +this._total++; +} +this._actionInstant || (this._total === n ? e.stop() : e.update(t - (r - e._duration / i))); +} else e.update(t * n % 1); +}, +isDone: function() { +return this._total === this._times; +}, +reverse: function() { +var t = new cc.Repeat(this._innerAction.reverse(), this._times); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +}, +setInnerAction: function(t) { +this._innerAction !== t && (this._innerAction = t); +}, +getInnerAction: function() { +return this._innerAction; +} +}); +cc.repeat = function(t, e) { +return new cc.Repeat(t, e); +}; +cc.RepeatForever = cc.Class({ +name: "cc.RepeatForever", +extends: cc.ActionInterval, +ctor: function(t) { +this._innerAction = null; +t && this.initWithAction(t); +}, +initWithAction: function(t) { +if (!t) { +cc.errorID(1026); +return !1; +} +this._innerAction = t; +return !0; +}, +clone: function() { +var t = new cc.RepeatForever(); +this._cloneDecoration(t); +t.initWithAction(this._innerAction.clone()); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._innerAction.startWithTarget(t); +}, +step: function(t) { +var e = this._innerAction; +e.step(t); +if (e.isDone()) { +e.startWithTarget(this.target); +e.step(e.getElapsed() - e._duration); +} +}, +isDone: function() { +return !1; +}, +reverse: function() { +var t = new cc.RepeatForever(this._innerAction.reverse()); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +}, +setInnerAction: function(t) { +this._innerAction !== t && (this._innerAction = t); +}, +getInnerAction: function() { +return this._innerAction; +} +}); +cc.repeatForever = function(t) { +return new cc.RepeatForever(t); +}; +cc.Spawn = cc.Class({ +name: "cc.Spawn", +extends: cc.ActionInterval, +ctor: function(t) { +this._one = null; +this._two = null; +var e = t instanceof Array ? t : arguments; +if (1 !== e.length) { +var i = e.length - 1; +i >= 0 && null == e[i] && cc.logID(1015); +if (i >= 0) { +for (var n, r = e[0], s = 1; s < i; s++) if (e[s]) { +n = r; +r = cc.Spawn._actionOneTwo(n, e[s]); +} +this.initWithTwoActions(r, e[i]); +} +} else cc.errorID(1020); +}, +initWithTwoActions: function(t, e) { +if (!t || !e) { +cc.errorID(1027); +return !1; +} +var i = !1, n = t._duration, r = e._duration; +if (this.initWithDuration(Math.max(n, r))) { +this._one = t; +this._two = e; +n > r ? this._two = cc.Sequence._actionOneTwo(e, cc.delayTime(n - r)) : n < r && (this._one = cc.Sequence._actionOneTwo(t, cc.delayTime(r - n))); +i = !0; +} +return i; +}, +clone: function() { +var t = new cc.Spawn(); +this._cloneDecoration(t); +t.initWithTwoActions(this._one.clone(), this._two.clone()); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._one.startWithTarget(t); +this._two.startWithTarget(t); +}, +stop: function() { +this._one.stop(); +this._two.stop(); +cc.Action.prototype.stop.call(this); +}, +update: function(t) { +t = this._computeEaseTime(t); +this._one && this._one.update(t); +this._two && this._two.update(t); +}, +reverse: function() { +var t = cc.Spawn._actionOneTwo(this._one.reverse(), this._two.reverse()); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +} +}); +cc.spawn = function(t) { +var e = t instanceof Array ? t : arguments; +if (1 === e.length) { +cc.errorID(1020); +return null; +} +e.length > 0 && null == e[e.length - 1] && cc.logID(1015); +for (var i = e[0], n = 1; n < e.length; n++) null != e[n] && (i = cc.Spawn._actionOneTwo(i, e[n])); +return i; +}; +cc.Spawn._actionOneTwo = function(t, e) { +var i = new cc.Spawn(); +i.initWithTwoActions(t, e); +return i; +}; +cc.RotateTo = cc.Class({ +name: "cc.RotateTo", +extends: cc.ActionInterval, +ctor: function(t, e) { +this._startAngle = 0; +this._dstAngle = 0; +this._angle = 0; +void 0 !== e && this.initWithDuration(t, e); +}, +initWithDuration: function(t, e) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +this._dstAngle = e; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.RotateTo(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._dstAngle); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +var e = t.angle % 360, i = cc.macro.ROTATE_ACTION_CCW ? this._dstAngle - e : this._dstAngle + e; +i > 180 && (i -= 360); +i < -180 && (i += 360); +this._startAngle = e; +this._angle = cc.macro.ROTATE_ACTION_CCW ? i : -i; +}, +reverse: function() { +cc.logID(1016); +}, +update: function(t) { +t = this._computeEaseTime(t); +this.target && (this.target.angle = this._startAngle + this._angle * t); +} +}); +cc.rotateTo = function(t, e) { +return new cc.RotateTo(t, e); +}; +cc.RotateBy = cc.Class({ +name: "cc.RotateBy", +extends: cc.ActionInterval, +ctor: function(t, e) { +e *= cc.macro.ROTATE_ACTION_CCW ? 1 : -1; +this._deltaAngle = 0; +this._startAngle = 0; +void 0 !== e && this.initWithDuration(t, e); +}, +initWithDuration: function(t, e) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +this._deltaAngle = e; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.RotateBy(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._deltaAngle); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._startAngle = t.angle; +}, +update: function(t) { +t = this._computeEaseTime(t); +this.target && (this.target.angle = this._startAngle + this._deltaAngle * t); +}, +reverse: function() { +var t = new cc.RotateBy(this._duration, -this._deltaAngle); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +} +}); +cc.rotateBy = function(t, e) { +return new cc.RotateBy(t, e); +}; +cc.MoveBy = cc.Class({ +name: "cc.MoveBy", +extends: cc.ActionInterval, +ctor: function(t, e, i) { +this._positionDelta = cc.v2(0, 0); +this._startPosition = cc.v2(0, 0); +this._previousPosition = cc.v2(0, 0); +void 0 !== e && cc.MoveBy.prototype.initWithDuration.call(this, t, e, i); +}, +initWithDuration: function(t, e, i) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +if (void 0 !== e.x) { +i = e.y; +e = e.x; +} +this._positionDelta.x = e; +this._positionDelta.y = i; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.MoveBy(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._positionDelta); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +var e = t.x, i = t.y; +this._previousPosition.x = e; +this._previousPosition.y = i; +this._startPosition.x = e; +this._startPosition.y = i; +}, +update: function(t) { +t = this._computeEaseTime(t); +if (this.target) { +var e = this._positionDelta.x * t, i = this._positionDelta.y * t, n = this._startPosition; +if (cc.macro.ENABLE_STACKABLE_ACTIONS) { +var r = this.target.x, s = this.target.y, o = this._previousPosition; +n.x = n.x + r - o.x; +n.y = n.y + s - o.y; +e += n.x; +i += n.y; +o.x = e; +o.y = i; +this.target.setPosition(e, i); +} else this.target.setPosition(n.x + e, n.y + i); +} +}, +reverse: function() { +var t = new cc.MoveBy(this._duration, cc.v2(-this._positionDelta.x, -this._positionDelta.y)); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +} +}); +cc.moveBy = function(t, e, i) { +return new cc.MoveBy(t, e, i); +}; +cc.MoveTo = cc.Class({ +name: "cc.MoveTo", +extends: cc.MoveBy, +ctor: function(t, e, i) { +this._endPosition = cc.v2(0, 0); +void 0 !== e && this.initWithDuration(t, e, i); +}, +initWithDuration: function(t, e, i) { +if (cc.MoveBy.prototype.initWithDuration.call(this, t, e, i)) { +if (void 0 !== e.x) { +i = e.y; +e = e.x; +} +this._endPosition.x = e; +this._endPosition.y = i; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.MoveTo(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._endPosition); +return t; +}, +startWithTarget: function(t) { +cc.MoveBy.prototype.startWithTarget.call(this, t); +this._positionDelta.x = this._endPosition.x - t.x; +this._positionDelta.y = this._endPosition.y - t.y; +} +}); +cc.moveTo = function(t, e, i) { +return new cc.MoveTo(t, e, i); +}; +cc.SkewTo = cc.Class({ +name: "cc.SkewTo", +extends: cc.ActionInterval, +ctor: function(t, e, i) { +this._skewX = 0; +this._skewY = 0; +this._startSkewX = 0; +this._startSkewY = 0; +this._endSkewX = 0; +this._endSkewY = 0; +this._deltaX = 0; +this._deltaY = 0; +void 0 !== i && cc.SkewTo.prototype.initWithDuration.call(this, t, e, i); +}, +initWithDuration: function(t, e, i) { +var n = !1; +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +this._endSkewX = e; +this._endSkewY = i; +n = !0; +} +return n; +}, +clone: function() { +var t = new cc.SkewTo(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._endSkewX, this._endSkewY); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._startSkewX = t.skewX % 180; +this._deltaX = this._endSkewX - this._startSkewX; +this._deltaX > 180 && (this._deltaX -= 360); +this._deltaX < -180 && (this._deltaX += 360); +this._startSkewY = t.skewY % 360; +this._deltaY = this._endSkewY - this._startSkewY; +this._deltaY > 180 && (this._deltaY -= 360); +this._deltaY < -180 && (this._deltaY += 360); +}, +update: function(t) { +t = this._computeEaseTime(t); +this.target.skewX = this._startSkewX + this._deltaX * t; +this.target.skewY = this._startSkewY + this._deltaY * t; +} +}); +cc.skewTo = function(t, e, i) { +return new cc.SkewTo(t, e, i); +}; +cc.SkewBy = cc.Class({ +name: "cc.SkewBy", +extends: cc.SkewTo, +ctor: function(t, e, i) { +void 0 !== i && this.initWithDuration(t, e, i); +}, +initWithDuration: function(t, e, i) { +var n = !1; +if (cc.SkewTo.prototype.initWithDuration.call(this, t, e, i)) { +this._skewX = e; +this._skewY = i; +n = !0; +} +return n; +}, +clone: function() { +var t = new cc.SkewBy(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._skewX, this._skewY); +return t; +}, +startWithTarget: function(t) { +cc.SkewTo.prototype.startWithTarget.call(this, t); +this._deltaX = this._skewX; +this._deltaY = this._skewY; +this._endSkewX = this._startSkewX + this._deltaX; +this._endSkewY = this._startSkewY + this._deltaY; +}, +reverse: function() { +var t = new cc.SkewBy(this._duration, -this._skewX, -this._skewY); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +} +}); +cc.skewBy = function(t, e, i) { +return new cc.SkewBy(t, e, i); +}; +cc.JumpBy = cc.Class({ +name: "cc.JumpBy", +extends: cc.ActionInterval, +ctor: function(t, e, i, n, r) { +this._startPosition = cc.v2(0, 0); +this._previousPosition = cc.v2(0, 0); +this._delta = cc.v2(0, 0); +this._height = 0; +this._jumps = 0; +void 0 !== n && cc.JumpBy.prototype.initWithDuration.call(this, t, e, i, n, r); +}, +initWithDuration: function(t, e, i, n, r) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +if (void 0 === r) { +r = n; +n = i; +i = e.y; +e = e.x; +} +this._delta.x = e; +this._delta.y = i; +this._height = n; +this._jumps = r; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.JumpBy(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._delta, this._height, this._jumps); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +var e = t.x, i = t.y; +this._previousPosition.x = e; +this._previousPosition.y = i; +this._startPosition.x = e; +this._startPosition.y = i; +}, +update: function(t) { +t = this._computeEaseTime(t); +if (this.target) { +var e = t * this._jumps % 1, i = 4 * this._height * e * (1 - e); +i += this._delta.y * t; +var n = this._delta.x * t, r = this._startPosition; +if (cc.macro.ENABLE_STACKABLE_ACTIONS) { +var s = this.target.x, o = this.target.y, a = this._previousPosition; +r.x = r.x + s - a.x; +r.y = r.y + o - a.y; +n += r.x; +i += r.y; +a.x = n; +a.y = i; +this.target.setPosition(n, i); +} else this.target.setPosition(r.x + n, r.y + i); +} +}, +reverse: function() { +var t = new cc.JumpBy(this._duration, cc.v2(-this._delta.x, -this._delta.y), this._height, this._jumps); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +} +}); +cc.jumpBy = function(t, e, i, n, r) { +return new cc.JumpBy(t, e, i, n, r); +}; +cc.JumpTo = cc.Class({ +name: "cc.JumpTo", +extends: cc.JumpBy, +ctor: function(t, e, i, n, r) { +this._endPosition = cc.v2(0, 0); +void 0 !== n && this.initWithDuration(t, e, i, n, r); +}, +initWithDuration: function(t, e, i, n, r) { +if (cc.JumpBy.prototype.initWithDuration.call(this, t, e, i, n, r)) { +if (void 0 === r) { +i = e.y; +e = e.x; +} +this._endPosition.x = e; +this._endPosition.y = i; +return !0; +} +return !1; +}, +startWithTarget: function(t) { +cc.JumpBy.prototype.startWithTarget.call(this, t); +this._delta.x = this._endPosition.x - this._startPosition.x; +this._delta.y = this._endPosition.y - this._startPosition.y; +}, +clone: function() { +var t = new cc.JumpTo(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._endPosition, this._height, this._jumps); +return t; +} +}); +cc.jumpTo = function(t, e, i, n, r) { +return new cc.JumpTo(t, e, i, n, r); +}; +function n(t, e, i, n, r) { +return Math.pow(1 - r, 3) * t + 3 * r * Math.pow(1 - r, 2) * e + 3 * Math.pow(r, 2) * (1 - r) * i + Math.pow(r, 3) * n; +} +cc.BezierBy = cc.Class({ +name: "cc.BezierBy", +extends: cc.ActionInterval, +ctor: function(t, e) { +this._config = []; +this._startPosition = cc.v2(0, 0); +this._previousPosition = cc.v2(0, 0); +e && cc.BezierBy.prototype.initWithDuration.call(this, t, e); +}, +initWithDuration: function(t, e) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +this._config = e; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.BezierBy(); +this._cloneDecoration(t); +for (var e = [], i = 0; i < this._config.length; i++) { +var n = this._config[i]; +e.push(cc.v2(n.x, n.y)); +} +t.initWithDuration(this._duration, e); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +var e = t.x, i = t.y; +this._previousPosition.x = e; +this._previousPosition.y = i; +this._startPosition.x = e; +this._startPosition.y = i; +}, +update: function(t) { +t = this._computeEaseTime(t); +if (this.target) { +var e = this._config, i = e[0].x, r = e[1].x, s = e[2].x, o = e[0].y, a = e[1].y, c = e[2].y, l = n(0, i, r, s, t), h = n(0, o, a, c, t), u = this._startPosition; +if (cc.macro.ENABLE_STACKABLE_ACTIONS) { +var _ = this.target.x, f = this.target.y, d = this._previousPosition; +u.x = u.x + _ - d.x; +u.y = u.y + f - d.y; +l += u.x; +h += u.y; +d.x = l; +d.y = h; +this.target.setPosition(l, h); +} else this.target.setPosition(u.x + l, u.y + h); +} +}, +reverse: function() { +var t = this._config, e = t[0].x, i = t[0].y, n = t[1].x, r = t[1].y, s = t[2].x, o = t[2].y, a = [ cc.v2(n - s, r - o), cc.v2(e - s, i - o), cc.v2(-s, -o) ], c = new cc.BezierBy(this._duration, a); +this._cloneDecoration(c); +this._reverseEaseList(c); +return c; +} +}); +cc.bezierBy = function(t, e) { +return new cc.BezierBy(t, e); +}; +cc.BezierTo = cc.Class({ +name: "cc.BezierTo", +extends: cc.BezierBy, +ctor: function(t, e) { +this._toConfig = []; +e && this.initWithDuration(t, e); +}, +initWithDuration: function(t, e) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +this._toConfig = e; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.BezierTo(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._toConfig); +return t; +}, +startWithTarget: function(t) { +cc.BezierBy.prototype.startWithTarget.call(this, t); +var e = this._startPosition, i = this._toConfig, n = this._config; +n[0] = i[0].sub(e); +n[1] = i[1].sub(e); +n[2] = i[2].sub(e); +} +}); +cc.bezierTo = function(t, e) { +return new cc.BezierTo(t, e); +}; +cc.ScaleTo = cc.Class({ +name: "cc.ScaleTo", +extends: cc.ActionInterval, +ctor: function(t, e, i) { +this._scaleX = 1; +this._scaleY = 1; +this._startScaleX = 1; +this._startScaleY = 1; +this._endScaleX = 0; +this._endScaleY = 0; +this._deltaX = 0; +this._deltaY = 0; +void 0 !== e && cc.ScaleTo.prototype.initWithDuration.call(this, t, e, i); +}, +initWithDuration: function(t, e, i) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +this._endScaleX = e; +this._endScaleY = null != i ? i : e; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.ScaleTo(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._endScaleX, this._endScaleY); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._startScaleX = t.scaleX; +this._startScaleY = t.scaleY; +this._deltaX = this._endScaleX - this._startScaleX; +this._deltaY = this._endScaleY - this._startScaleY; +}, +update: function(t) { +t = this._computeEaseTime(t); +if (this.target) { +this.target.scaleX = this._startScaleX + this._deltaX * t; +this.target.scaleY = this._startScaleY + this._deltaY * t; +} +} +}); +cc.scaleTo = function(t, e, i) { +return new cc.ScaleTo(t, e, i); +}; +cc.ScaleBy = cc.Class({ +name: "cc.ScaleBy", +extends: cc.ScaleTo, +startWithTarget: function(t) { +cc.ScaleTo.prototype.startWithTarget.call(this, t); +this._deltaX = this._startScaleX * this._endScaleX - this._startScaleX; +this._deltaY = this._startScaleY * this._endScaleY - this._startScaleY; +}, +reverse: function() { +var t = new cc.ScaleBy(this._duration, 1 / this._endScaleX, 1 / this._endScaleY); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +}, +clone: function() { +var t = new cc.ScaleBy(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._endScaleX, this._endScaleY); +return t; +} +}); +cc.scaleBy = function(t, e, i) { +return new cc.ScaleBy(t, e, i); +}; +cc.Blink = cc.Class({ +name: "cc.Blink", +extends: cc.ActionInterval, +ctor: function(t, e) { +this._times = 0; +this._originalState = !1; +void 0 !== e && this.initWithDuration(t, e); +}, +initWithDuration: function(t, e) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +this._times = e; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.Blink(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._times); +return t; +}, +update: function(t) { +t = this._computeEaseTime(t); +if (this.target && !this.isDone()) { +var e = 1 / this._times, i = t % e; +this.target.opacity = i > e / 2 ? 255 : 0; +} +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._originalState = t.opacity; +}, +stop: function() { +this.target.opacity = this._originalState; +cc.ActionInterval.prototype.stop.call(this); +}, +reverse: function() { +var t = new cc.Blink(this._duration, this._times); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +} +}); +cc.blink = function(t, e) { +return new cc.Blink(t, e); +}; +cc.FadeTo = cc.Class({ +name: "cc.FadeTo", +extends: cc.ActionInterval, +ctor: function(t, e) { +this._toOpacity = 0; +this._fromOpacity = 0; +void 0 !== e && cc.FadeTo.prototype.initWithDuration.call(this, t, e); +}, +initWithDuration: function(t, e) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +this._toOpacity = e; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.FadeTo(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._toOpacity); +return t; +}, +update: function(t) { +t = this._computeEaseTime(t); +var e = void 0 !== this._fromOpacity ? this._fromOpacity : 255; +this.target.opacity = e + (this._toOpacity - e) * t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._fromOpacity = t.opacity; +} +}); +cc.fadeTo = function(t, e) { +return new cc.FadeTo(t, e); +}; +cc.FadeIn = cc.Class({ +name: "cc.FadeIn", +extends: cc.FadeTo, +ctor: function(t) { +null == t && (t = 0); +this._reverseAction = null; +this.initWithDuration(t, 255); +}, +reverse: function() { +var t = new cc.FadeOut(); +t.initWithDuration(this._duration, 0); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +}, +clone: function() { +var t = new cc.FadeIn(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._toOpacity); +return t; +}, +startWithTarget: function(t) { +this._reverseAction && (this._toOpacity = this._reverseAction._fromOpacity); +cc.FadeTo.prototype.startWithTarget.call(this, t); +} +}); +cc.fadeIn = function(t) { +return new cc.FadeIn(t); +}; +cc.FadeOut = cc.Class({ +name: "cc.FadeOut", +extends: cc.FadeTo, +ctor: function(t) { +null == t && (t = 0); +this._reverseAction = null; +this.initWithDuration(t, 0); +}, +reverse: function() { +var t = new cc.FadeIn(); +t._reverseAction = this; +t.initWithDuration(this._duration, 255); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +}, +clone: function() { +var t = new cc.FadeOut(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._toOpacity); +return t; +} +}); +cc.fadeOut = function(t) { +return new cc.FadeOut(t); +}; +cc.TintTo = cc.Class({ +name: "cc.TintTo", +extends: cc.ActionInterval, +ctor: function(t, e, i, n) { +this._to = cc.color(0, 0, 0); +this._from = cc.color(0, 0, 0); +if (e instanceof cc.Color) { +n = e.b; +i = e.g; +e = e.r; +} +void 0 !== n && this.initWithDuration(t, e, i, n); +}, +initWithDuration: function(t, e, i, n) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +this._to = cc.color(e, i, n); +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.TintTo(); +this._cloneDecoration(t); +var e = this._to; +t.initWithDuration(this._duration, e.r, e.g, e.b); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._from = this.target.color; +}, +update: function(t) { +t = this._computeEaseTime(t); +var e = this._from, i = this._to; +e && (this.target.color = cc.color(e.r + (i.r - e.r) * t, e.g + (i.g - e.g) * t, e.b + (i.b - e.b) * t)); +} +}); +cc.tintTo = function(t, e, i, n) { +return new cc.TintTo(t, e, i, n); +}; +cc.TintBy = cc.Class({ +name: "cc.TintBy", +extends: cc.ActionInterval, +ctor: function(t, e, i, n) { +this._deltaR = 0; +this._deltaG = 0; +this._deltaB = 0; +this._fromR = 0; +this._fromG = 0; +this._fromB = 0; +void 0 !== n && this.initWithDuration(t, e, i, n); +}, +initWithDuration: function(t, e, i, n) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +this._deltaR = e; +this._deltaG = i; +this._deltaB = n; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.TintBy(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._deltaR, this._deltaG, this._deltaB); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +var e = t.color; +this._fromR = e.r; +this._fromG = e.g; +this._fromB = e.b; +}, +update: function(t) { +t = this._computeEaseTime(t); +this.target.color = cc.color(this._fromR + this._deltaR * t, this._fromG + this._deltaG * t, this._fromB + this._deltaB * t); +}, +reverse: function() { +var t = new cc.TintBy(this._duration, -this._deltaR, -this._deltaG, -this._deltaB); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +} +}); +cc.tintBy = function(t, e, i, n) { +return new cc.TintBy(t, e, i, n); +}; +cc.DelayTime = cc.Class({ +name: "cc.DelayTime", +extends: cc.ActionInterval, +update: function(t) {}, +reverse: function() { +var t = new cc.DelayTime(this._duration); +this._cloneDecoration(t); +this._reverseEaseList(t); +return t; +}, +clone: function() { +var t = new cc.DelayTime(); +this._cloneDecoration(t); +t.initWithDuration(this._duration); +return t; +} +}); +cc.delayTime = function(t) { +return new cc.DelayTime(t); +}; +cc.ReverseTime = cc.Class({ +name: "cc.ReverseTime", +extends: cc.ActionInterval, +ctor: function(t) { +this._other = null; +t && this.initWithAction(t); +}, +initWithAction: function(t) { +if (!t) { +cc.errorID(1028); +return !1; +} +if (t === this._other) { +cc.errorID(1029); +return !1; +} +if (cc.ActionInterval.prototype.initWithDuration.call(this, t._duration)) { +this._other = t; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.ReverseTime(); +this._cloneDecoration(t); +t.initWithAction(this._other.clone()); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._other.startWithTarget(t); +}, +update: function(t) { +t = this._computeEaseTime(t); +this._other && this._other.update(1 - t); +}, +reverse: function() { +return this._other.clone(); +}, +stop: function() { +this._other.stop(); +cc.Action.prototype.stop.call(this); +} +}); +cc.reverseTime = function(t) { +return new cc.ReverseTime(t); +}; +cc.TargetedAction = cc.Class({ +name: "cc.TargetedAction", +extends: cc.ActionInterval, +ctor: function(t, e) { +this._action = null; +this._forcedTarget = null; +e && this.initWithTarget(t, e); +}, +initWithTarget: function(t, e) { +if (this.initWithDuration(e._duration)) { +this._forcedTarget = t; +this._action = e; +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.TargetedAction(); +this._cloneDecoration(t); +t.initWithTarget(this._forcedTarget, this._action.clone()); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._action.startWithTarget(this._forcedTarget); +}, +stop: function() { +this._action.stop(); +}, +update: function(t) { +t = this._computeEaseTime(t); +this._action.update(t); +}, +getForcedTarget: function() { +return this._forcedTarget; +}, +setForcedTarget: function(t) { +this._forcedTarget !== t && (this._forcedTarget = t); +} +}); +cc.targetedAction = function(t, e) { +return new cc.TargetedAction(t, e); +}; +}), {} ], +6: [ (function(t, e, i) { +"use strict"; +t("../core/platform/CCClass"); +var n = t("../core/platform/js"), r = function() { +this.actions = []; +this.target = null; +this.actionIndex = 0; +this.currentAction = null; +this.paused = !1; +this.lock = !1; +}; +cc.ActionManager = function() { +this._hashTargets = n.createMap(!0); +this._arrayTargets = []; +this._currentTarget = null; +cc.director._scheduler && cc.director._scheduler.enableForTarget(this); +}; +cc.ActionManager.prototype = { +constructor: cc.ActionManager, +_elementPool: [], +_searchElementByTarget: function(t, e) { +for (var i = 0; i < t.length; i++) if (e === t[i].target) return t[i]; +return null; +}, +_getElement: function(t, e) { +var i = this._elementPool.pop(); +i || (i = new r()); +i.target = t; +i.paused = !!e; +return i; +}, +_putElement: function(t) { +t.actions.length = 0; +t.actionIndex = 0; +t.currentAction = null; +t.paused = !1; +t.target = null; +t.lock = !1; +this._elementPool.push(t); +}, +addAction: function(t, e, i) { +if (t && e) { +var n = this._hashTargets[e._id]; +if (n) n.actions || (n.actions = []); else { +n = this._getElement(e, i); +this._hashTargets[e._id] = n; +this._arrayTargets.push(n); +} +n.actions.push(t); +t.startWithTarget(e); +} else cc.errorID(1e3); +}, +removeAllActions: function() { +for (var t = this._arrayTargets, e = 0; e < t.length; e++) { +var i = t[e]; +i && this._putElement(i); +} +this._arrayTargets.length = 0; +this._hashTargets = n.createMap(!0); +}, +removeAllActionsFromTarget: function(t, e) { +if (null != t) { +var i = this._hashTargets[t._id]; +if (i) { +i.actions.length = 0; +this._deleteHashElement(i); +} +} +}, +removeAction: function(t) { +if (null != t) { +var e = t.getOriginalTarget(), i = this._hashTargets[e._id]; +if (i) { +for (var n = 0; n < i.actions.length; n++) if (i.actions[n] === t) { +i.actions.splice(n, 1); +i.actionIndex >= n && i.actionIndex--; +break; +} +} else cc.logID(1001); +} +}, +removeActionByTag: function(t, e) { +t === cc.Action.TAG_INVALID && cc.logID(1002); +cc.assertID(e, 1003); +var i = this._hashTargets[e._id]; +if (i) for (var n = i.actions.length, r = 0; r < n; ++r) { +var s = i.actions[r]; +if (s && s.getTag() === t && s.getOriginalTarget() === e) { +this._removeActionAtIndex(r, i); +break; +} +} +}, +getActionByTag: function(t, e) { +t === cc.Action.TAG_INVALID && cc.logID(1004); +var i = this._hashTargets[e._id]; +if (i) { +if (null != i.actions) for (var n = 0; n < i.actions.length; ++n) { +var r = i.actions[n]; +if (r && r.getTag() === t) return r; +} +cc.logID(1005, t); +} +return null; +}, +getNumberOfRunningActionsInTarget: function(t) { +var e = this._hashTargets[t._id]; +return e && e.actions ? e.actions.length : 0; +}, +pauseTarget: function(t) { +var e = this._hashTargets[t._id]; +e && (e.paused = !0); +}, +resumeTarget: function(t) { +var e = this._hashTargets[t._id]; +e && (e.paused = !1); +}, +pauseAllRunningActions: function() { +for (var t = [], e = this._arrayTargets, i = 0; i < e.length; i++) { +var n = e[i]; +if (n && !n.paused) { +n.paused = !0; +t.push(n.target); +} +} +return t; +}, +resumeTargets: function(t) { +if (t) for (var e = 0; e < t.length; e++) t[e] && this.resumeTarget(t[e]); +}, +pauseTargets: function(t) { +if (t) for (var e = 0; e < t.length; e++) t[e] && this.pauseTarget(t[e]); +}, +purgeSharedManager: function() { +cc.director.getScheduler().unscheduleUpdate(this); +}, +_removeActionAtIndex: function(t, e) { +e.actions[t]; +e.actions.splice(t, 1); +e.actionIndex >= t && e.actionIndex--; +0 === e.actions.length && this._deleteHashElement(e); +}, +_deleteHashElement: function(t) { +var e = !1; +if (t && !t.lock && this._hashTargets[t.target._id]) { +delete this._hashTargets[t.target._id]; +for (var i = this._arrayTargets, n = 0, r = i.length; n < r; n++) if (i[n] === t) { +i.splice(n, 1); +break; +} +this._putElement(t); +e = !0; +} +return e; +}, +update: function(t) { +for (var e, i = this._arrayTargets, n = 0; n < i.length; n++) { +this._currentTarget = i[n]; +if (!(e = this._currentTarget).paused && e.actions) { +e.lock = !0; +for (e.actionIndex = 0; e.actionIndex < e.actions.length; e.actionIndex++) { +e.currentAction = e.actions[e.actionIndex]; +if (e.currentAction) { +e.currentAction.step(t * (e.currentAction._speedMethod ? e.currentAction._speed : 1)); +if (e.currentAction && e.currentAction.isDone()) { +e.currentAction.stop(); +var r = e.currentAction; +e.currentAction = null; +this.removeAction(r); +} +e.currentAction = null; +} +} +e.lock = !1; +} +0 === e.actions.length && this._deleteHashElement(e) && n--; +} +} +}; +0; +}), { +"../core/platform/CCClass": 201, +"../core/platform/js": 221 +} ], +7: [ (function(t, e, i) { +"use strict"; +t("./CCActionManager"); +t("./CCAction"); +t("./CCActionInterval"); +t("./CCActionInstant"); +t("./CCActionEase"); +t("./CCActionCatmullRom"); +t("./tween"); +}), { +"./CCAction": 1, +"./CCActionCatmullRom": 2, +"./CCActionEase": 3, +"./CCActionInstant": 4, +"./CCActionInterval": 5, +"./CCActionManager": 6, +"./tween": 8 +} ], +8: [ (function(i, n, r) { +"use strict"; +var s = cc.Class({ +name: "cc.TweenAction", +extends: cc.ActionInterval, +ctor: function(i, n, r) { +this._opts = r = r || Object.create(null); +this._props = Object.create(null); +r.progress = r.progress || this.progress; +if (r.easing && "string" === ("object" === (e = typeof r.easing) ? t(r.easing) : e)) { +var s = r.easing; +r.easing = cc.easing[s]; +!r.easing && cc.warnID(1031, s); +} +var o = this._opts.relative; +for (var a in n) { +var c = n[a], l = void 0, h = void 0; +if (void 0 !== c.value && (c.easing || c.progress)) { +"string" === ("object" === (e = typeof c.easing) ? t(c.easing) : e) ? !(l = cc.easing[c.easing]) && cc.warnID(1031, c.easing) : l = c.easing; +h = c.progress; +c = c.value; +} +if ("number" === ("object" === (e = typeof c) ? t(c) : e) || c.lerp && (!o || c.add || c.mul) && c.clone) { +var u = Object.create(null); +u.value = c; +u.easing = l; +u.progress = h; +this._props[a] = u; +} else cc.warn("Can not animate " + a + " property, because it do not have [lerp, (add|mul), clone] function."); +} +this._originProps = n; +this.initWithDuration(i); +}, +clone: function() { +var t = new s(this._duration, this._originProps, this._opts); +this._cloneDecoration(t); +return t; +}, +startWithTarget: function(i) { +cc.ActionInterval.prototype.startWithTarget.call(this, i); +var n = !!this._opts.relative, r = this._props; +for (var s in r) { +var o = i[s], a = r[s]; +if ("number" === ("object" === (e = typeof o) ? t(o) : e)) { +a.start = o; +a.current = o; +a.end = n ? o + a.value : a.value; +} else { +a.start = o.clone(); +a.current = o.clone(); +a.end = n ? (o.add || o.mul).call(o, a.value) : a.value; +} +} +}, +update: function(t) { +var e = this._opts, i = t; +e.easing && (i = e.easing(t)); +var n = this.target; +if (n) { +var r = this._props, s = this._opts.progress; +for (var o in r) { +var a = r[o], c = a.easing ? a.easing(t) : i, l = a.current = (a.progress || s)(a.start, a.end, a.current, c); +n[o] = l; +} +} +}, +progress: function(i, n, r, s) { +"number" === ("object" === (e = typeof i) ? t(i) : e) ? r = i + (n - i) * s : i.lerp(n, s, r); +return r; +} +}), o = cc.Class({ +name: "cc.SetAction", +extends: cc.ActionInstant, +ctor: function(t) { +this._props = {}; +void 0 !== t && this.init(t); +}, +init: function(t) { +for (var e in t) this._props[e] = t[e]; +return !0; +}, +update: function() { +var t = this._props, e = this.target; +for (var i in t) e[i] = t[i]; +}, +clone: function() { +var t = new o(); +t.init(this._props); +return t; +} +}); +function a(t) { +this._actions = []; +this._finalAction = null; +this._target = t; +} +a.prototype.then = function(t) { +t instanceof cc.Action ? this._actions.push(t.clone()) : this._actions.push(t._union()); +return this; +}; +a.prototype.target = function(t) { +this._target = t; +return this; +}; +a.prototype.start = function() { +if (!this._target) { +cc.warn("Please set target to tween first"); +return this; +} +this._finalAction && cc.director.getActionManager().removeAction(this._finalAction); +this._finalAction = this._union(); +cc.director.getActionManager().addAction(this._finalAction, this._target, !1); +return this; +}; +a.prototype.stop = function() { +this._finalAction && cc.director.getActionManager().removeAction(this._finalAction); +return this; +}; +a.prototype.clone = function(t) { +var e = this._union(); +return cc.tween(t).then(e.clone()); +}; +a.prototype.union = function() { +var t = this._union(); +this._actions.length = 0; +this._actions.push(t); +return this; +}; +a.prototype._union = function() { +var t = this._actions; +return t = 1 === t.length ? t[0] : cc.sequence(t); +}; +var c = []; +function l(t) { +return function() { +c.length = 0; +for (var e = arguments.length, i = 0; i < e; i++) { +var n = c[i] = arguments[i]; +n instanceof a && (c[i] = n._union()); +} +return t.apply(this, c); +}; +} +for (var h = { +to: function(t, e, i) { +(i = i || Object.create(null)).relative = !1; +return new s(t, e, i); +}, +by: function(t, e, i) { +(i = i || Object.create(null)).relative = !0; +return new s(t, e, i); +}, +set: function(t) { +return new o(t); +}, +delay: cc.delayTime, +call: cc.callFunc, +hide: cc.hide, +show: cc.show, +removeSelf: cc.removeSelf, +sequence: l(cc.sequence), +parallel: l(cc.spawn) +}, u = { +repeat: cc.repeat, +repeatForever: cc.repeatForever, +reverseTime: cc.reverseTime +}, _ = Object.keys(h), f = function(t) { +var e = _[t]; +a.prototype[e] = function() { +var t = h[e].apply(h, arguments); +this._actions.push(t); +return this; +}; +}, d = 0; d < _.length; d++) f(d); +_ = Object.keys(u); +var m = function(t) { +var e = _[t]; +a.prototype[e] = function() { +var t = this._actions, i = arguments[arguments.length - 1], n = arguments.length - 1; +if (i instanceof cc.Tween) i = i._union(); else if (!(i instanceof cc.Action)) { +i = t[t.length - 1]; +t.length -= 1; +n += 1; +} +for (var r = [ i ], s = 0; s < n; s++) r.push(arguments[s]); +i = u[e].apply(this, r); +t.push(i); +return this; +}; +}; +for (d = 0; d < _.length; d++) m(d); +cc.tween = function(t) { +return new a(t); +}; +cc.Tween = a; +}), {} ], +9: [ (function(i, n, r) { +"use strict"; +var s = cc.js, o = i("./playable"), a = i("./animation-curves"), c = a.EventAnimCurve, l = a.EventInfo, h = i("./types").WrapModeMask, u = i("../core/utils/binary-search").binarySearchEpsilon; +function _(t, e) { +o.call(this); +this.target = t; +this.animation = e; +this._anims = new s.array.MutableForwardIterator([]); +} +s.extend(_, o); +var f = _.prototype; +f.playState = function(i, n) { +if (i.clip) { +i.curveLoaded || d(this.target, i); +i.animator = this; +i.play(); +"number" === ("object" === (e = typeof n) ? t(n) : e) && i.setTime(n); +this.play(); +} +}; +f.stopStatesExcept = function(t) { +var e = this._anims, i = e.array; +for (e.i = 0; e.i < i.length; ++e.i) { +var n = i[e.i]; +n !== t && this.stopState(n); +} +}; +f.addAnimation = function(t) { +-1 === this._anims.array.indexOf(t) && this._anims.push(t); +t._setEventTarget(this.animation); +}; +f.removeAnimation = function(t) { +var e = this._anims.array.indexOf(t); +if (e >= 0) { +this._anims.fastRemoveAt(e); +0 === this._anims.array.length && this.stop(); +} else cc.errorID(3908); +t.animator = null; +}; +f.sample = function() { +var t = this._anims, e = t.array; +for (t.i = 0; t.i < e.length; ++t.i) { +e[t.i].sample(); +} +}; +f.stopState = function(t) { +t && t.stop(); +}; +f.pauseState = function(t) { +t && t.pause(); +}; +f.resumeState = function(t) { +t && t.resume(); +this.isPaused && this.resume(); +}; +f.setStateTime = function(t, e) { +if (void 0 !== e) { +if (t) { +t.setTime(e); +t.sample(); +} +} else { +e = t; +for (var i = this._anims.array, n = 0; n < i.length; ++n) { +var r = i[n]; +r.setTime(e); +r.sample(); +} +} +}; +f.onStop = function() { +var t = this._anims, e = t.array; +for (t.i = 0; t.i < e.length; ++t.i) { +e[t.i].stop(); +} +}; +f.onPause = function() { +for (var t = this._anims.array, e = 0; e < t.length; ++e) { +var i = t[e]; +i.pause(); +i.animator = null; +} +}; +f.onResume = function() { +for (var t = this._anims.array, e = 0; e < t.length; ++e) { +var i = t[e]; +i.animator = this; +i.resume(); +} +}; +f._reloadClip = function(t) { +d(this.target, t); +}; +0; +function d(t, e) { +var i = e.clip; +e.duration = i.duration; +e.speed = i.speed; +e.wrapMode = i.wrapMode; +e.frameRate = i.sample; +(e.wrapMode & h.Loop) === h.Loop ? e.repeatCount = Infinity : e.repeatCount = 1; +var n = e.curves = i.createCurves(e, t), r = i.events; +if (r) for (var s = void 0, o = 0, a = r.length; o < a; o++) { +if (!s) { +(s = new c()).target = t; +n.push(s); +} +var _ = r[o], f = _.frame / e.duration, d = void 0, m = u(s.ratios, f); +if (m >= 0) d = s.events[m]; else { +d = new l(); +s.ratios.push(f); +s.events.push(d); +} +d.add(_.func, _.params); +} +} +0; +n.exports = _; +}), { +"../core/utils/binary-search": 288, +"./animation-curves": 11, +"./playable": 18, +"./types": 19 +} ], +10: [ (function(i, n, r) { +"use strict"; +var s = i("./types").WrapMode, o = i("./animation-curves"), a = o.DynamicAnimCurve, c = o.quickFindIndex, l = i("./motion-path-helper").sampleMotionPaths, h = i("../core/utils/binary-search").binarySearchEpsilon, u = cc.Class({ +name: "cc.AnimationClip", +extends: cc.Asset, +properties: { +_duration: { +default: 0, +type: "Float" +}, +duration: { +get: function() { +return this._duration; +} +}, +sample: { +default: 60 +}, +speed: { +default: 1 +}, +wrapMode: { +default: s.Normal +}, +curveData: { +default: {}, +visible: !1 +}, +events: { +default: [], +visible: !1 +} +}, +statics: { +createWithSpriteFrames: function(t, e) { +if (!Array.isArray(t)) { +cc.errorID(3905); +return null; +} +var i = new u(); +i.sample = e || i.sample; +i._duration = t.length / i.sample; +for (var n = [], r = 1 / i.sample, s = 0, o = t.length; s < o; s++) n[s] = { +frame: s * r, +value: t[s] +}; +i.curveData = { +comps: { +"cc.Sprite": { +spriteFrame: n +} +} +}; +return i; +} +}, +onLoad: function() { +this._duration = Number.parseFloat(this.duration); +this.speed = Number.parseFloat(this.speed); +this.wrapMode = Number.parseInt(this.wrapMode); +this.frameRate = Number.parseFloat(this.sample); +}, +createPropCurve: function(i, n, r) { +var s = [], o = i instanceof cc.Node && "position" === n, u = new a(); +u.target = i; +u.prop = n; +for (var _ = 0, f = r.length; _ < f; _++) { +var d = r[_], m = d.frame / this.duration; +u.ratios.push(m); +o && s.push(d.motionPath); +var p = d.value; +u.values.push(p); +var v = d.curve; +if (v) { +if ("string" === ("object" === (e = typeof v) ? t(v) : e)) { +u.types.push(v); +continue; +} +if (Array.isArray(v)) { +v[0] === v[1] && v[2] === v[3] ? u.types.push(a.Linear) : u.types.push(a.Bezier(v)); +continue; +} +} +u.types.push(a.Linear); +} +o && l(s, u, this.duration, this.sample, i); +for (var y = u.ratios, g = void 0, x = void 0, C = !0, b = 1, A = y.length; b < A; b++) { +g = y[b] - y[b - 1]; +if (1 === b) x = g; else if (Math.abs(g - x) > 1e-6) { +C = !1; +break; +} +} +u._findFrameIndex = C ? c : h; +var S = u.values[0]; +void 0 === S || null === S || u._lerp || ("number" === ("object" === (e = typeof S) ? t(S) : e) ? u._lerp = a.prototype._lerpNumber : S instanceof cc.Quat ? u._lerp = a.prototype._lerpQuat : S instanceof cc.Vec2 || S instanceof cc.Vec3 ? u._lerp = a.prototype._lerpVector : S.lerp && (u._lerp = a.prototype._lerpObject)); +return u; +}, +createTargetCurves: function(t, e, i) { +var n = e.props, r = e.comps; +if (n) for (var s in n) { +var o = n[s], a = this.createPropCurve(t, s, o); +i.push(a); +} +if (r) for (var c in r) { +var l = t.getComponent(c); +if (l) { +var h = r[c]; +for (var u in h) { +var _ = h[u], f = this.createPropCurve(l, u, _); +i.push(f); +} +} +} +}, +createCurves: function(t, e) { +var i = this.curveData, n = i.paths, r = []; +this.createTargetCurves(e, i, r); +for (var s in n) { +var o = cc.find(s, e); +if (o) { +var a = n[s]; +this.createTargetCurves(o, a, r); +} +} +return r; +} +}); +cc.AnimationClip = n.exports = u; +}), { +"../core/utils/binary-search": 288, +"./animation-curves": 11, +"./motion-path-helper": 17, +"./types": 19 +} ], +11: [ (function(i, n, r) { +"use strict"; +var s = i("./bezier").bezierByTime, o = i("../core/utils/binary-search").binarySearchEpsilon, a = i("./types").WrapModeMask, c = i("./types").WrappedInfo; +function l(i, n) { +if ("string" === ("object" === (e = typeof n) ? t(n) : e)) { +var r = cc.easing[n]; +r ? i = r(i) : cc.errorID(3906, n); +} else Array.isArray(n) && (i = s(n, i)); +return i; +} +var h = cc.Class({ +name: "cc.AnimCurve", +sample: function(t, e, i) {}, +onTimeChangedManually: void 0 +}); +function u(t, e) { +var i = t.length - 1; +if (0 === i) return 0; +var n = t[0]; +if (e < n) return 0; +var r = t[i]; +if (e > r) return i; +var s = (e = (e - n) / (r - n)) / (1 / i), o = 0 | s; +return s - o < 1e-6 ? o : o + 1 - s < 1e-6 ? o + 1 : ~(o + 1); +} +var _ = cc.Class({ +name: "cc.DynamicAnimCurve", +extends: h, +properties: { +target: null, +prop: "", +values: [], +ratios: [], +types: [] +}, +_findFrameIndex: o, +_lerp: void 0, +_lerpNumber: function(t, e, i) { +return t + (e - t) * i; +}, +_lerpObject: function(t, e, i) { +return t.lerp(e, i); +}, +_lerpQuat: (function() { +var t = cc.quat(); +return function(e, i, n) { +return e.lerp(i, n, t); +}; +})(), +_lerpVector: (function() { +var t = cc.v3(); +return function(e, i, n) { +return e.lerp(i, n, t); +}; +})(), +sample: function(t, e, i) { +var n = this.values, r = this.ratios, s = r.length; +if (0 !== s) { +var o, a = this._findFrameIndex(r, e); +if (a < 0) if ((a = ~a) <= 0) o = n[0]; else if (a >= s) o = n[s - 1]; else { +var c = n[a - 1]; +if (this._lerp) { +var h = r[a - 1], u = r[a], _ = this.types[a - 1], f = (e - h) / (u - h); +_ && (f = l(f, _)); +var d = n[a]; +o = this._lerp(c, d, f); +} else o = c; +} else o = n[a]; +this.target[this.prop] = o; +} +} +}); +_.Linear = null; +_.Bezier = function(t) { +return t; +}; +var f = function() { +this.events = []; +}; +f.prototype.add = function(t, e) { +this.events.push({ +func: t || "", +params: e || [] +}); +}; +var d = cc.Class({ +name: "cc.EventAnimCurve", +extends: h, +properties: { +target: null, +ratios: [], +events: [], +_wrappedInfo: { +default: function() { +return new c(); +} +}, +_lastWrappedInfo: null, +_ignoreIndex: NaN +}, +_wrapIterations: function(t) { +t - (0 | t) == 0 && (t -= 1); +return 0 | t; +}, +sample: function(t, e, i) { +var n = this.ratios.length, r = i.getWrappedInfo(i.time, this._wrappedInfo), s = r.direction, l = o(this.ratios, r.ratio); +if (l < 0) { +l = ~l - 1; +s < 0 && (l += 1); +} +this._ignoreIndex !== l && (this._ignoreIndex = NaN); +r.frameIndex = l; +if (this._lastWrappedInfo) { +var h = i.wrapMode, u = this._wrapIterations(r.iterations), _ = this._lastWrappedInfo, f = this._wrapIterations(_.iterations), d = _.frameIndex, m = _.direction, p = -1 !== f && u !== f; +if (d === l && p && 1 === n) this._fireEvent(0); else if (d !== l || p) { +s = m; +do { +if (d !== l) { +if (-1 === s && 0 === d && l > 0) { +(h & a.PingPong) === a.PingPong ? s *= -1 : d = n; +f++; +} else if (1 === s && d === n - 1 && l < n - 1) { +(h & a.PingPong) === a.PingPong ? s *= -1 : d = -1; +f++; +} +if (d === l) break; +if (f > u) break; +} +d += s; +cc.director.getAnimationManager().pushDelayEvent(this, "_fireEvent", [ d ]); +} while (d !== l && d > -1 && d < n); +} +this._lastWrappedInfo.set(r); +} else { +this._fireEvent(l); +this._lastWrappedInfo = new c(r); +} +}, +_fireEvent: function(t) { +if (!(t < 0 || t >= this.events.length || this._ignoreIndex === t)) { +var e = this.events[t].events; +if (this.target.isValid) for (var i = this.target._components, n = 0; n < e.length; n++) for (var r = e[n], s = r.func, o = 0; o < i.length; o++) { +var a = i[o], c = a[s]; +c && c.apply(a, r.params); +} +} +}, +onTimeChangedManually: function(t, e) { +this._lastWrappedInfo = null; +this._ignoreIndex = NaN; +var i = e.getWrappedInfo(t, this._wrappedInfo), n = i.direction, r = o(this.ratios, i.ratio); +if (r < 0) { +r = ~r - 1; +n < 0 && (r += 1); +this._ignoreIndex = r; +} +} +}); +0; +n.exports = { +AnimCurve: h, +DynamicAnimCurve: _, +EventAnimCurve: d, +EventInfo: f, +computeRatioByType: l, +quickFindIndex: u +}; +}), { +"../core/utils/binary-search": 288, +"./bezier": 14, +"./types": 19 +} ], +12: [ (function(t, e, i) { +"use strict"; +var n = cc.js, r = cc.Class({ +ctor: function() { +this._anims = new n.array.MutableForwardIterator([]); +this._delayEvents = []; +cc.director._scheduler && cc.director._scheduler.enableForTarget(this); +}, +update: function(t) { +var e = this._anims, i = e.array; +for (e.i = 0; e.i < i.length; ++e.i) { +var n = i[e.i]; +n._isPlaying && !n._isPaused && n.update(t); +} +for (var r = this._delayEvents, s = 0; s < r.length; s++) { +var o = r[s]; +o.target[o.func].apply(o.target, o.args); +} +r.length = 0; +}, +destruct: function() {}, +addAnimation: function(t) { +-1 === this._anims.array.indexOf(t) && this._anims.push(t); +}, +removeAnimation: function(t) { +var e = this._anims.array.indexOf(t); +e >= 0 ? this._anims.fastRemoveAt(e) : cc.errorID(3907); +}, +pushDelayEvent: function(t, e, i) { +this._delayEvents.push({ +target: t, +func: e, +args: i +}); +} +}); +cc.AnimationManager = e.exports = r; +}), {} ], +13: [ (function(t, e, i) { +"use strict"; +var n = cc.js, r = t("./playable"), s = t("./types"), o = s.WrappedInfo, a = s.WrapMode, c = s.WrapModeMask; +function l(t, e) { +r.call(this); +this._currentFramePlayed = !1; +this._delay = 0; +this._delayTime = 0; +this._wrappedInfo = new o(); +this._lastWrappedInfo = null; +this._process = u; +this._clip = t; +this._name = e || t && t.name; +this.animator = null; +this.curves = []; +this.delay = 0; +this.repeatCount = 1; +this.duration = 1; +this.speed = 1; +this.wrapMode = a.Normal; +this.time = 0; +this._target = null; +this._lastframeEventOn = !1; +this.emit = function() { +for (var t = new Array(arguments.length), e = 0, i = t.length; e < i; e++) t[e] = arguments[e]; +cc.director.getAnimationManager().pushDelayEvent(this, "_emit", t); +}; +} +n.extend(l, r); +var h = l.prototype; +h._emit = function(t, e) { +this._target && this._target.isValid && this._target.emit(t, t, e); +}; +h.on = function(t, e, i) { +if (this._target && this._target.isValid) { +"lastframe" === t && (this._lastframeEventOn = !0); +return this._target.on(t, e, i); +} +return null; +}; +h.once = function(t, e, i) { +if (this._target && this._target.isValid) { +"lastframe" === t && (this._lastframeEventOn = !0); +var n = this; +return this._target.once(t, (function(t) { +e.call(i, t); +n._lastframeEventOn = !1; +})); +} +return null; +}; +h.off = function(t, e, i) { +if (this._target && this._target.isValid) { +"lastframe" === t && (this._target.hasEventListener(t) || (this._lastframeEventOn = !1)); +this._target.off(t, e, i); +} +}; +h._setEventTarget = function(t) { +this._target = t; +}; +h.onPlay = function() { +this.setTime(0); +this._delayTime = this._delay; +cc.director.getAnimationManager().addAnimation(this); +this.animator && this.animator.addAnimation(this); +this.emit("play", this); +}; +h.onStop = function() { +this.isPaused || cc.director.getAnimationManager().removeAnimation(this); +this.animator && this.animator.removeAnimation(this); +this.emit("stop", this); +}; +h.onResume = function() { +cc.director.getAnimationManager().addAnimation(this); +this.emit("resume", this); +}; +h.onPause = function() { +cc.director.getAnimationManager().removeAnimation(this); +this.emit("pause", this); +}; +h.setTime = function(t) { +this._currentFramePlayed = !1; +this.time = t || 0; +for (var e = this.curves, i = 0, n = e.length; i < n; i++) { +var r = e[i]; +r.onTimeChangedManually && r.onTimeChangedManually(t, this); +} +}; +function u() { +var t = this.sample(); +if (this._lastframeEventOn) { +var e; +e = this._lastWrappedInfo ? this._lastWrappedInfo : this._lastWrappedInfo = new o(t); +this.repeatCount > 1 && (0 | t.iterations) > (0 | e.iterations) && this.emit("lastframe", this); +e.set(t); +} +if (t.stopped) { +this.stop(); +this.emit("finished", this); +} +} +function _() { +var t = this.time, e = this.duration; +t > e ? 0 === (t %= e) && (t = e) : t < 0 && 0 !== (t %= e) && (t += e); +for (var i = t / e, n = this.curves, r = 0, s = n.length; r < s; r++) { +n[r].sample(t, i, this); +} +if (this._lastframeEventOn) { +void 0 === this._lastIterations && (this._lastIterations = i); +(this.time > 0 && this._lastIterations > i || this.time < 0 && this._lastIterations < i) && this.emit("lastframe", this); +this._lastIterations = i; +} +} +h.update = function(t) { +if (this._delayTime > 0) { +this._delayTime -= t; +if (this._delayTime > 0) return; +} +this._currentFramePlayed ? this.time += t * this.speed : this._currentFramePlayed = !0; +this._process(); +}; +h._needRevers = function(t) { +var e = this.wrapMode, i = !1; +if ((e & c.PingPong) === c.PingPong) { +t - (0 | t) == 0 && t > 0 && (t -= 1); +1 & t && (i = !i); +} +(e & c.Reverse) === c.Reverse && (i = !i); +return i; +}; +h.getWrappedInfo = function(t, e) { +e = e || new o(); +var i = !1, n = this.duration, r = this.repeatCount, s = t > 0 ? t / n : -t / n; +if (s >= r) { +s = r; +i = !0; +var a = r - (0 | r); +0 === a && (a = 1); +t = a * n * (t > 0 ? 1 : -1); +} +if (t > n) { +var l = t % n; +t = 0 === l ? n : l; +} else t < 0 && 0 !== (t %= n) && (t += n); +var h = !1, u = this._wrapMode & c.ShouldWrap; +u && (h = this._needRevers(s)); +var _ = h ? -1 : 1; +this.speed < 0 && (_ *= -1); +u && h && (t = n - t); +e.ratio = t / n; +e.time = t; +e.direction = _; +e.stopped = i; +e.iterations = s; +return e; +}; +h.sample = function() { +for (var t = this.getWrappedInfo(this.time, this._wrappedInfo), e = this.curves, i = 0, n = e.length; i < n; i++) { +e[i].sample(t.time, t.ratio, this); +} +return t; +}; +n.get(h, "clip", (function() { +return this._clip; +})); +n.get(h, "name", (function() { +return this._name; +})); +n.obsolete(h, "AnimationState.length", "duration"); +n.getset(h, "curveLoaded", (function() { +return this.curves.length > 0; +}), (function() { +this.curves.length = 0; +})); +n.getset(h, "wrapMode", (function() { +return this._wrapMode; +}), (function(t) { +this._wrapMode = t; +0; +this.time = 0; +t & c.Loop ? this.repeatCount = Infinity : this.repeatCount = 1; +})); +n.getset(h, "repeatCount", (function() { +return this._repeatCount; +}), (function(t) { +this._repeatCount = t; +var e = this._wrapMode & c.ShouldWrap, i = (this.wrapMode & c.Reverse) === c.Reverse; +this._process = Infinity !== t || e || i ? u : _; +})); +n.getset(h, "delay", (function() { +return this._delay; +}), (function(t) { +this._delayTime = this._delay = t; +})); +cc.AnimationState = e.exports = l; +}), { +"./playable": 18, +"./types": 19 +} ], +14: [ (function(t, e, i) { +"use strict"; +function n(t, e, i, n, r) { +var s = 1 - r; +return s * (s * (t + (3 * e - t) * r) + 3 * i * r * r) + n * r * r * r; +} +var r = Math.cos, s = Math.acos, o = Math.max, a = 2 * Math.PI, c = Math.sqrt; +function l(t) { +return t < 0 ? -Math.pow(-t, 1 / 3) : Math.pow(t, 1 / 3); +} +function h(t, e) { +var i, n, h, u, _ = e - 0, f = e - t[0], d = 3 * _, m = 3 * f, p = 3 * (e - t[2]), v = 1 / (-_ + m - p + (e - 1)), y = (d - 6 * f + p) * v, g = y * (1 / 3), x = (-d + m) * v, C = 1 / 3 * (3 * x - y * y), b = C * (1 / 3), A = (2 * y * y * y - 9 * y * x + 27 * (_ * v)) / 27, S = A / 2, w = S * S + b * b * b; +if (w < 0) { +var T = 1 / 3 * -C, E = c(T * T * T), M = -A / (2 * E), B = s(M < -1 ? -1 : M > 1 ? 1 : M), D = 2 * l(E); +n = D * r(B * (1 / 3)) - g; +h = D * r((B + a) * (1 / 3)) - g; +u = D * r((B + 2 * a) * (1 / 3)) - g; +return 0 <= n && n <= 1 ? 0 <= h && h <= 1 ? 0 <= u && u <= 1 ? o(n, h, u) : o(n, h) : 0 <= u && u <= 1 ? o(n, u) : n : 0 <= h && h <= 1 ? 0 <= u && u <= 1 ? o(h, u) : h : u; +} +if (0 === w) { +h = -(i = S < 0 ? l(-S) : -l(S)) - g; +return 0 <= (n = 2 * i - g) && n <= 1 ? 0 <= h && h <= 1 ? o(n, h) : n : h; +} +var I = c(w); +return n = (i = l(-S + I)) - l(S + I) - g; +} +function u(t, e) { +var i = h(t, e), n = t[1]; +return ((1 - i) * (n + (t[3] - n) * i) * 3 + i * i) * i; +} +0; +e.exports = { +bezier: n, +bezierByTime: u +}; +}), {} ], +15: [ (function(t, e, i) { +"use strict"; +var n = { +constant: function() { +return 0; +}, +linear: function(t) { +return t; +}, +quadIn: function(t) { +return t * t; +}, +quadOut: function(t) { +return t * (2 - t); +}, +quadInOut: function(t) { +return (t *= 2) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1); +}, +cubicIn: function(t) { +return t * t * t; +}, +cubicOut: function(t) { +return --t * t * t + 1; +}, +cubicInOut: function(t) { +return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2); +}, +quartIn: function(t) { +return t * t * t * t; +}, +quartOut: function(t) { +return 1 - --t * t * t * t; +}, +quartInOut: function(t) { +return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2); +}, +quintIn: function(t) { +return t * t * t * t * t; +}, +quintOut: function(t) { +return --t * t * t * t * t + 1; +}, +quintInOut: function(t) { +return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2); +}, +sineIn: function(t) { +return 1 - Math.cos(t * Math.PI / 2); +}, +sineOut: function(t) { +return Math.sin(t * Math.PI / 2); +}, +sineInOut: function(t) { +return .5 * (1 - Math.cos(Math.PI * t)); +}, +expoIn: function(t) { +return 0 === t ? 0 : Math.pow(1024, t - 1); +}, +expoOut: function(t) { +return 1 === t ? 1 : 1 - Math.pow(2, -10 * t); +}, +expoInOut: function(t) { +return 0 === t ? 0 : 1 === t ? 1 : (t *= 2) < 1 ? .5 * Math.pow(1024, t - 1) : .5 * (2 - Math.pow(2, -10 * (t - 1))); +}, +circIn: function(t) { +return 1 - Math.sqrt(1 - t * t); +}, +circOut: function(t) { +return Math.sqrt(1 - --t * t); +}, +circInOut: function(t) { +return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1); +}, +elasticIn: function(t) { +var e, i = .1; +if (0 === t) return 0; +if (1 === t) return 1; +if (!i || i < 1) { +i = 1; +e = .1; +} else e = .4 * Math.asin(1 / i) / (2 * Math.PI); +return -i * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4); +}, +elasticOut: function(t) { +var e, i = .1; +if (0 === t) return 0; +if (1 === t) return 1; +if (!i || i < 1) { +i = 1; +e = .1; +} else e = .4 * Math.asin(1 / i) / (2 * Math.PI); +return i * Math.pow(2, -10 * t) * Math.sin((t - e) * (2 * Math.PI) / .4) + 1; +}, +elasticInOut: function(t) { +var e, i = .1; +if (0 === t) return 0; +if (1 === t) return 1; +if (!i || i < 1) { +i = 1; +e = .1; +} else e = .4 * Math.asin(1 / i) / (2 * Math.PI); +return (t *= 2) < 1 ? i * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4) * -.5 : i * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4) * .5 + 1; +}, +backIn: function(t) { +var e = 1.70158; +return t * t * ((e + 1) * t - e); +}, +backOut: function(t) { +var e = 1.70158; +return --t * t * ((e + 1) * t + e) + 1; +}, +backInOut: function(t) { +var e = 2.5949095; +return (t *= 2) < 1 ? t * t * ((e + 1) * t - e) * .5 : .5 * ((t -= 2) * t * ((e + 1) * t + e) + 2); +}, +bounceIn: function(t) { +return 1 - n.bounceOut(1 - t); +}, +bounceOut: function(t) { +return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; +}, +bounceInOut: function(t) { +return t < .5 ? .5 * n.bounceIn(2 * t) : .5 * n.bounceOut(2 * t - 1) + .5; +}, +smooth: function(t) { +return t <= 0 ? 0 : t >= 1 ? 1 : t * t * (3 - 2 * t); +}, +fade: function(t) { +return t <= 0 ? 0 : t >= 1 ? 1 : t * t * t * (t * (6 * t - 15) + 10); +} +}; +function r(t, e) { +return function(i) { +return i < .5 ? e(2 * i) / 2 : t(2 * i - 1) / 2 + .5; +}; +} +n.quadOutIn = r(n.quadIn, n.quadOut); +n.cubicOutIn = r(n.cubicIn, n.cubicOut); +n.quartOutIn = r(n.quartIn, n.quartOut); +n.quintOutIn = r(n.quintIn, n.quintOut); +n.sineOutIn = r(n.sineIn, n.sineOut); +n.expoOutIn = r(n.expoIn, n.expoOut); +n.circOutIn = r(n.circIn, n.circOut); +n.backOutIn = r(n.backIn, n.backOut); +n.bounceIn = function(t) { +return 1 - n.bounceOut(1 - t); +}; +n.bounceInOut = function(t) { +return t < .5 ? .5 * n.bounceIn(2 * t) : .5 * n.bounceOut(2 * t - 1) + .5; +}; +n.bounceOutIn = r(n.bounceIn, n.bounceOut); +cc.easing = e.exports = n; +}), {} ], +16: [ (function(t, e, i) { +"use strict"; +t("./bezier"); +t("./easing"); +t("./types"); +t("./motion-path-helper"); +t("./animation-curves"); +t("./animation-clip"); +t("./animation-manager"); +t("./animation-state"); +t("./animation-animator"); +}), { +"./animation-animator": 9, +"./animation-clip": 10, +"./animation-curves": 11, +"./animation-manager": 12, +"./animation-state": 13, +"./bezier": 14, +"./easing": 15, +"./motion-path-helper": 17, +"./types": 19 +} ], +17: [ (function(t, e, i) { +"use strict"; +var n = t("./animation-curves").DynamicAnimCurve, r = t("./animation-curves").computeRatioByType, s = t("./bezier").bezier, o = t("../core/utils/binary-search").binarySearchEpsilon, a = cc.v2; +function c(t) { +this.points = t || []; +this.beziers = []; +this.ratios = []; +this.progresses = []; +this.length = 0; +this.computeBeziers(); +} +c.prototype.computeBeziers = function() { +this.beziers.length = 0; +this.ratios.length = 0; +this.progresses.length = 0; +this.length = 0; +for (var t, e = 1; e < this.points.length; e++) { +var i = this.points[e - 1], n = this.points[e]; +(t = new l()).start = i.pos; +t.startCtrlPoint = i.out; +t.end = n.pos; +t.endCtrlPoint = n.in; +this.beziers.push(t); +this.length += t.getLength(); +} +var r = 0; +for (e = 0; e < this.beziers.length; e++) { +t = this.beziers[e]; +this.ratios[e] = t.getLength() / this.length; +this.progresses[e] = r += this.ratios[e]; +} +return this.beziers; +}; +function l() { +this.start = a(); +this.end = a(); +this.startCtrlPoint = a(); +this.endCtrlPoint = a(); +} +l.prototype.getPointAt = function(t) { +var e = this.getUtoTmapping(t); +return this.getPoint(e); +}; +l.prototype.getPoint = function(t) { +var e = s(this.start.x, this.startCtrlPoint.x, this.endCtrlPoint.x, this.end.x, t), i = s(this.start.y, this.startCtrlPoint.y, this.endCtrlPoint.y, this.end.y, t); +return new a(e, i); +}; +l.prototype.getLength = function() { +var t = this.getLengths(); +return t[t.length - 1]; +}; +l.prototype.getLengths = function(t) { +t || (t = this.__arcLengthDivisions ? this.__arcLengthDivisions : 200); +if (this.cacheArcLengths && this.cacheArcLengths.length === t + 1) return this.cacheArcLengths; +var e, i, n = [], r = this.getPoint(0), s = a(), o = 0; +n.push(0); +for (i = 1; i <= t; i++) { +e = this.getPoint(i / t); +s.x = r.x - e.x; +s.y = r.y - e.y; +o += s.mag(); +n.push(o); +r = e; +} +this.cacheArcLengths = n; +return n; +}; +l.prototype.getUtoTmapping = function(t, e) { +var i, n = this.getLengths(), r = 0, s = n.length; +i = e || t * n[s - 1]; +for (var o, a = 0, c = s - 1; a <= c; ) if ((o = n[r = Math.floor(a + (c - a) / 2)] - i) < 0) a = r + 1; else { +if (!(o > 0)) { +c = r; +break; +} +c = r - 1; +} +if (n[r = c] === i) { +return r / (s - 1); +} +var l = n[r]; +return (r + (i - l) / (n[r + 1] - l)) / (s - 1); +}; +function h(t) { +if (!Array.isArray(t)) return !1; +for (var e = 0, i = t.length; e < i; e++) { +var n = t[e]; +if (!Array.isArray(n) || 6 !== n.length) return !1; +} +return !0; +} +function u(t, e, i, s, l) { +function u(t) { +return t instanceof cc.Vec2 ? { +in: t, +pos: t, +out: t +} : Array.isArray(t) && 6 === t.length ? { +in: a(t[2], t[3]), +pos: a(t[0], t[1]), +out: a(t[4], t[5]) +} : { +in: cc.Vec2.ZERO, +pos: cc.Vec2.ZERO, +out: cc.Vec2.ZERO +}; +} +var _ = e.values = e.values.map((function(t) { +Array.isArray(t) && (t = 2 === t.length ? cc.v2(t[0], t[1]) : cc.v3(t[0], t[1], t[2])); +return t; +})); +if (0 !== t.length && 0 !== _.length) { +for (var f = !1, d = 0; d < t.length; d++) { +var m = t[d]; +if (m && !h(m)) { +cc.errorID(3904, l ? l.name : "", "position", d); +m = null; +} +if (m && m.length > 0) { +f = !0; +break; +} +} +if (f && 1 !== _.length) { +for (var p = e.types, v = e.ratios, y = e.values = [], g = e.types = [], x = e.ratios = [], C = 0, b = n.Linear, A = 0, S = t.length; A < S - 1; A++) { +var w, T = t[A], E = v[A], M = v[A + 1] - E, B = _[A], D = _[A + 1], I = p[A], P = [], R = C / M, L = 1 / (M * i * s); +if (T && T.length > 0) { +var F = []; +F.push(u(B)); +for (var O = 0, V = T.length; O < V; O++) { +var N = u(T[O]); +F.push(N); +} +F.push(u(D)); +var k = new c(F); +k.computeBeziers(); +for (var z = k.progresses; 1 - R > 1e-6; ) { +var G, U, j, W; +if ((w = r(w = R, I)) < 0) { +W = (0 - w) * (U = k.beziers[0]).getLength(); +j = U.start.sub(U.endCtrlPoint).normalize(); +G = U.start.add(j.mul(W)); +} else if (w > 1) { +W = (w - 1) * (U = k.beziers[k.beziers.length - 1]).getLength(); +j = U.end.sub(U.startCtrlPoint).normalize(); +G = U.end.add(j.mul(W)); +} else { +var H = o(z, w); +H < 0 && (H = ~H); +w -= H > 0 ? z[H - 1] : 0; +w /= k.ratios[H]; +G = k.beziers[H].getPointAt(w); +} +P.push(G); +R += L; +} +} else for (;1 - R > 1e-6; ) { +w = r(w = R, I); +P.push(B.lerp(D, w)); +R += L; +} +b = "constant" === I ? I : n.Linear; +for (O = 0, V = P.length; O < V; O++) { +var q = E + C + L * O * M; +X(P[O], b, q); +} +C = Math.abs(R - 1) > 1e-6 ? (R - 1) * M : 0; +} +v[v.length - 1] !== x[x.length - 1] && X(_[_.length - 1], b, v[v.length - 1]); +} +} +function X(t, e, i) { +y.push(t); +g.push(e); +x.push(i); +} +} +0; +e.exports = { +sampleMotionPaths: u, +Curve: c, +Bezier: l +}; +}), { +"../core/utils/binary-search": 288, +"./animation-curves": 11, +"./bezier": 14 +} ], +18: [ (function(t, e, i) { +"use strict"; +var n = cc.js, r = t("../core/CCDebug"); +function s() { +this._isPlaying = !1; +this._isPaused = !1; +this._stepOnce = !1; +} +var o = s.prototype; +n.get(o, "isPlaying", (function() { +return this._isPlaying; +}), !0); +n.get(o, "isPaused", (function() { +return this._isPaused; +}), !0); +var a = function() {}; +o.onPlay = a; +o.onPause = a; +o.onResume = a; +o.onStop = a; +o.onError = a; +o.play = function() { +if (this._isPlaying) if (this._isPaused) { +this._isPaused = !1; +this.onResume(); +} else this.onError(r.getError(3912)); else { +this._isPlaying = !0; +this.onPlay(); +} +}; +o.stop = function() { +if (this._isPlaying) { +this._isPlaying = !1; +this.onStop(); +this._isPaused = !1; +} +}; +o.pause = function() { +if (this._isPlaying && !this._isPaused) { +this._isPaused = !0; +this.onPause(); +} +}; +o.resume = function() { +if (this._isPlaying && this._isPaused) { +this._isPaused = !1; +this.onResume(); +} +}; +o.step = function() { +this.pause(); +this._stepOnce = !0; +this._isPlaying || this.play(); +}; +e.exports = s; +}), { +"../core/CCDebug": 49 +} ], +19: [ (function(t, e, i) { +"use strict"; +var n = { +Loop: 2, +ShouldWrap: 4, +PingPong: 22, +Reverse: 36 +}, r = cc.Enum({ +Default: 0, +Normal: 1, +Reverse: n.Reverse, +Loop: n.Loop, +LoopReverse: n.Loop | n.Reverse, +PingPong: n.PingPong, +PingPongReverse: n.PingPong | n.Reverse +}); +cc.WrapMode = r; +function s(t) { +if (t) this.set(t); else { +this.ratio = 0; +this.time = 0; +this.direction = 1; +this.stopped = !0; +this.iterations = 0; +this.frameIndex = void 0; +} +} +s.prototype.set = function(t) { +this.ratio = t.ratio; +this.time = t.time; +this.direction = t.direction; +this.stopped = t.stopped; +this.iterations = t.iterations; +this.frameIndex = t.frameIndex; +}; +e.exports = { +WrapModeMask: n, +WrapMode: r, +WrappedInfo: s +}; +}), {} ], +20: [ (function(t, e, i) { +"use strict"; +var n = t("../core/event/event-target"), r = t("../core/platform/CCSys"), s = t("../core/assets/CCAudioClip").LoadMode, o = !1, a = [], c = function t(e) { +n.call(this); +this._src = e; +this._element = null; +this.id = 0; +this._volume = 1; +this._loop = !1; +this._nextTime = 0; +this._state = t.State.INITIALZING; +this._onended = function() { +this._state = t.State.STOPPED; +this.emit("ended"); +}.bind(this); +}; +cc.js.extend(c, n); +c.State = { +ERROR: -1, +INITIALZING: 0, +PLAYING: 1, +PAUSED: 2, +STOPPED: 3 +}; +(function(t) { +t._bindEnded = function(t) { +t = t || this._onended; +var e = this._element; +this._src && e instanceof HTMLAudioElement ? e.addEventListener("ended", t) : e.onended = t; +}; +t._unbindEnded = function() { +var t = this._element; +t instanceof HTMLAudioElement ? t.removeEventListener("ended", this._onended) : t && (t.onended = null); +}; +t._onLoaded = function() { +var t = this._src._nativeAsset; +if (t instanceof HTMLAudioElement) { +this._element || (this._element = document.createElement("audio")); +this._element.src = t.src; +} else this._element = new h(t, this); +this.setVolume(this._volume); +this.setLoop(this._loop); +0 !== this._nextTime && this.setCurrentTime(this._nextTime); +this.getState() === c.State.PLAYING ? this.play() : this._state = c.State.INITIALZING; +}; +t.play = function() { +this._state = c.State.PLAYING; +if (this._element) { +this._bindEnded(); +this._element.play(); +this._src && this._src.loadMode === s.DOM_AUDIO && this._element.paused && a.push({ +instance: this, +offset: 0, +audio: this._element +}); +if (!o) { +o = !0; +var t = "ontouchend" in window ? "touchend" : "mousedown"; +cc.game.canvas.addEventListener(t, (function() { +for (var t = void 0; t = a.pop(); ) t.audio.play(t.offset); +})); +} +} +}; +t.destroy = function() { +0; +this._element = null; +}; +t.pause = function() { +if (this._element && this.getState() === c.State.PLAYING) { +this._unbindEnded(); +this._element.pause(); +this._state = c.State.PAUSED; +} +}; +t.resume = function() { +if (this._element && this.getState() === c.State.PAUSED) { +this._bindEnded(); +this._element.play(); +this._state = c.State.PLAYING; +} +}; +t.stop = function() { +if (this._element) { +this._element.pause(); +try { +this._element.currentTime = 0; +} catch (t) {} +for (var t = 0; t < a.length; t++) if (a[t].instance === this) { +a.splice(t, 1); +break; +} +this._unbindEnded(); +this.emit("stop"); +this._state = c.State.STOPPED; +} +}; +t.setLoop = function(t) { +this._loop = t; +this._element && (this._element.loop = t); +}; +t.getLoop = function() { +return this._loop; +}; +t.setVolume = function(t) { +this._volume = t; +this._element && (this._element.volume = t); +}; +t.getVolume = function() { +return this._volume; +}; +t.setCurrentTime = function(t) { +if (this._element) { +this._nextTime = 0; +this._unbindEnded(); +this._bindEnded(function() { +this._bindEnded(); +}.bind(this)); +try { +this._element.currentTime = t; +} catch (i) { +var e = this._element; +if (e.addEventListener) { +e.addEventListener("loadedmetadata", (function i() { +e.removeEventListener("loadedmetadata", i); +e.currentTime = t; +})); +} +} +} else this._nextTime = t; +}; +t.getCurrentTime = function() { +return this._element ? this._element.currentTime : 0; +}; +t.getDuration = function() { +return this._element ? this._element.duration : 0; +}; +t.getState = function() { +var t = this._element; +t && (c.State.PLAYING === this._state && t.paused ? this._state = c.State.STOPPED : c.State.STOPPED !== this._state || t.paused || (this._state = c.State.PLAYING)); +return this._state; +}; +Object.defineProperty(t, "src", { +get: function() { +return this._src; +}, +set: function(t) { +this._unbindEnded(); +if (t) { +this._src = t; +if (t.loaded) this._onLoaded(); else { +var e = this; +t.once("load", (function() { +t === e._src && e._onLoaded(); +})); +cc.loader.load({ +url: t.nativeUrl, +skips: [ "Loader" ] +}, (function(e, i) { +e ? cc.error(e) : t.loaded || (t._nativeAsset = i); +})); +} +} else { +this._src = null; +this._element instanceof HTMLAudioElement ? this._element.src = "" : this._element = null; +this._state = c.State.INITIALZING; +} +return t; +}, +enumerable: !0, +configurable: !0 +}); +Object.defineProperty(t, "paused", { +get: function() { +return !this._element || this._element.paused; +}, +enumerable: !0, +configurable: !0 +}); +})(c.prototype); +var l = void 0; +l = cc.sys.browserType === cc.sys.BROWSER_TYPE_EDGE || cc.sys.browserType === cc.sys.BROWSER_TYPE_BAIDU || cc.sys.browserType === cc.sys.BROWSER_TYPE_UC ? .01 : 0; +var h = function(t, e) { +this._audio = e; +this._context = r.__audioSupport.context; +this._buffer = t; +this._gainObj = this._context.createGain(); +this.volume = 1; +this._gainObj.connect(this._context.destination); +this._loop = !1; +this._startTime = -1; +this._currentSource = null; +this.playedLength = 0; +this._currentTimer = null; +this._endCallback = function() { +this.onended && this.onended(this); +}.bind(this); +}; +(function(t) { +t.play = function(t) { +if (this._currentSource && !this.paused) { +this._currentSource.onended = null; +this._currentSource.stop(0); +this.playedLength = 0; +} +var e = this._context.createBufferSource(); +e.buffer = this._buffer; +e.connect(this._gainObj); +e.loop = this._loop; +this._startTime = this._context.currentTime; +(t = t || this.playedLength) && (this._startTime -= t); +var i = this._buffer.duration, n = t, r = void 0; +if (this._loop) e.start ? e.start(0, n) : e.notoGrainOn ? e.noteGrainOn(0, n) : e.noteOn(0, n); else { +r = i - t; +e.start ? e.start(0, n, r) : e.noteGrainOn ? e.noteGrainOn(0, n, r) : e.noteOn(0, n, r); +} +this._currentSource = e; +e.onended = this._endCallback; +if ((!e.context.state || "suspended" === e.context.state) && 0 === this._context.currentTime) { +var s = this; +clearTimeout(this._currentTimer); +this._currentTimer = setTimeout((function() { +0 === s._context.currentTime && a.push({ +instance: s._audio, +offset: t, +audio: s +}); +}), 10); +} +}; +t.pause = function() { +clearTimeout(this._currentTimer); +if (!this.paused) { +this.playedLength = this._context.currentTime - this._startTime; +this.playedLength %= this._buffer.duration; +var t = this._currentSource; +this._currentSource = null; +this._startTime = -1; +t && t.stop(0); +} +}; +Object.defineProperty(t, "paused", { +get: function() { +return (!this._currentSource || !this._currentSource.loop) && (-1 === this._startTime || this._context.currentTime - this._startTime > this._buffer.duration); +}, +enumerable: !0, +configurable: !0 +}); +Object.defineProperty(t, "loop", { +get: function() { +return this._loop; +}, +set: function(t) { +this._currentSource && (this._currentSource.loop = t); +return this._loop = t; +}, +enumerable: !0, +configurable: !0 +}); +Object.defineProperty(t, "volume", { +get: function() { +return this._volume; +}, +set: function(t) { +this._volume = t; +if (this._gainObj.gain.setTargetAtTime) try { +this._gainObj.gain.setTargetAtTime(t, this._context.currentTime, l); +} catch (e) { +this._gainObj.gain.setTargetAtTime(t, this._context.currentTime, .01); +} else this._gainObj.gain.value = t; +if (r.os === r.OS_IOS && !this.paused && this._currentSource) { +this._currentSource.onended = null; +this.pause(); +this.play(); +} +}, +enumerable: !0, +configurable: !0 +}); +Object.defineProperty(t, "currentTime", { +get: function() { +if (this.paused) return this.playedLength; +this.playedLength = this._context.currentTime - this._startTime; +this.playedLength %= this._buffer.duration; +return this.playedLength; +}, +set: function(t) { +if (this.paused) this.playedLength = t; else { +this.pause(); +this.playedLength = t; +this.play(); +} +return t; +}, +enumerable: !0, +configurable: !0 +}); +Object.defineProperty(t, "duration", { +get: function() { +return this._buffer.duration; +}, +enumerable: !0, +configurable: !0 +}); +})(h.prototype); +e.exports = cc.Audio = c; +}), { +"../core/assets/CCAudioClip": 57, +"../core/event/event-target": 133, +"../core/platform/CCSys": 210 +} ], +21: [ (function(i, n, r) { +"use strict"; +var s = i("./CCAudio"), o = i("../core/assets/CCAudioClip"), a = cc.js, c = 0, l = a.createMap(!0), h = {}, u = [], _ = function(t) { +t._finishCallback = null; +t.off("ended"); +t.off("stop"); +t.src = null; +u.includes(t) || (u.length < 32 ? u.push(t) : t.destroy()); +}, f = function(t) { +var e = c++, i = h[t]; +i || (i = h[t] = []); +if (p._maxAudioInstance <= i.length) { +var n = i.shift(); +d(n).stop(); +} +var r = u.pop() || new s(), o = function() { +if (d(this.id)) { +delete l[this.id]; +var t = i.indexOf(this.id); +cc.js.array.fastRemoveAt(i, t); +} +_(this); +}; +r.on("ended", (function() { +this._finishCallback && this._finishCallback(); +o.call(this); +}), r); +r.on("stop", o, r); +r.id = e; +l[e] = r; +i.push(e); +return r; +}, d = function(t) { +return l[t]; +}, m = function(i) { +void 0 === i ? i = 1 : "string" === ("object" === (e = typeof i) ? t(i) : e) && (i = Number.parseFloat(i)); +return i; +}, p = { +AudioState: s.State, +_maxWebAudioSize: 2097152, +_maxAudioInstance: 24, +_id2audio: l, +play: function(i, n, r) { +var s, a = i; +if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { +cc.warnID(8401, "cc.audioEngine", "cc.AudioClip", "AudioClip", "cc.AudioClip", "audio"); +s = f(a = i); +o._loadByUrl(a, (function(t, e) { +e && (s.src = e); +})); +} else { +if (!i) return; +a = i.nativeUrl; +(s = f(a)).src = i; +} +s.setLoop(n || !1); +r = m(r); +s.setVolume(r); +s.play(); +return s.id; +}, +setLoop: function(t, e) { +var i = d(t); +i && i.setLoop && i.setLoop(e); +}, +isLoop: function(t) { +var e = d(t); +return !(!e || !e.getLoop) && e.getLoop(); +}, +setVolume: function(t, e) { +var i = d(t); +i && i.setVolume(e); +}, +getVolume: function(t) { +var e = d(t); +return e ? e.getVolume() : 1; +}, +setCurrentTime: function(t, e) { +var i = d(t); +if (i) { +i.setCurrentTime(e); +return !0; +} +return !1; +}, +getCurrentTime: function(t) { +var e = d(t); +return e ? e.getCurrentTime() : 0; +}, +getDuration: function(t) { +var e = d(t); +return e ? e.getDuration() : 0; +}, +getState: function(t) { +var e = d(t); +return e ? e.getState() : this.AudioState.ERROR; +}, +setFinishCallback: function(t, e) { +var i = d(t); +i && (i._finishCallback = e); +}, +pause: function(t) { +var e = d(t); +if (e) { +e.pause(); +return !0; +} +return !1; +}, +_pauseIDCache: [], +pauseAll: function() { +for (var t in l) { +var e = l[t]; +if (e.getState() === s.State.PLAYING) { +this._pauseIDCache.push(t); +e.pause(); +} +} +}, +resume: function(t) { +var e = d(t); +e && e.resume(); +}, +resumeAll: function() { +for (var t = 0; t < this._pauseIDCache.length; ++t) { +var e = this._pauseIDCache[t], i = d(e); +i && i.resume(); +} +this._pauseIDCache.length = 0; +}, +stop: function(t) { +var e = d(t); +if (e) { +e.stop(); +return !0; +} +return !1; +}, +stopAll: function() { +for (var t in l) { +var e = l[t]; +e && e.stop(); +} +}, +setMaxAudioInstance: function(t) { +this._maxAudioInstance = t; +}, +getMaxAudioInstance: function() { +return this._maxAudioInstance; +}, +uncache: function(i) { +var n = i; +if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { +cc.warnID(8401, "cc.audioEngine", "cc.AudioClip", "AudioClip", "cc.AudioClip", "audio"); +n = i; +} else { +if (!i) return; +n = i.nativeUrl; +} +var r = h[n]; +if (r) for (;r.length > 0; ) { +var s = r.pop(), o = l[s]; +if (o) { +o.stop(); +delete l[s]; +} +} +}, +uncacheAll: function() { +this.stopAll(); +var t = void 0; +for (var e in l) (t = l[e]) && t.destroy(); +for (;t = u.pop(); ) t.destroy(); +l = a.createMap(!0); +h = {}; +}, +getProfile: function(t) {}, +preload: function(t, e) { +0; +cc.loader.load(t, e && function(t) { +t || e(); +}); +}, +setMaxWebAudioSize: function(t) { +this._maxWebAudioSize = 1024 * t; +}, +_breakCache: null, +_break: function() { +this._breakCache = []; +for (var t in l) { +var e = l[t]; +if (e.getState() === s.State.PLAYING) { +this._breakCache.push(t); +e.pause(); +} +} +}, +_restore: function() { +if (this._breakCache) { +for (;this._breakCache.length > 0; ) { +var t = this._breakCache.pop(), e = d(t); +e && e.resume && e.resume(); +} +this._breakCache = null; +} +}, +_music: { +id: -1, +loop: !1, +volume: 1 +}, +_effect: { +volume: 1, +pauseCache: [] +}, +playMusic: function(t, e) { +var i = this._music; +this.stop(i.id); +i.id = this.play(t, e, i.volume); +i.loop = e; +return i.id; +}, +stopMusic: function() { +this.stop(this._music.id); +}, +pauseMusic: function() { +this.pause(this._music.id); +return this._music.id; +}, +resumeMusic: function() { +this.resume(this._music.id); +return this._music.id; +}, +getMusicVolume: function() { +return this._music.volume; +}, +setMusicVolume: function(t) { +t = m(t); +var e = this._music; +e.volume = t; +this.setVolume(e.id, e.volume); +return e.volume; +}, +isMusicPlaying: function() { +return this.getState(this._music.id) === this.AudioState.PLAYING; +}, +playEffect: function(t, e) { +return this.play(t, e || !1, this._effect.volume); +}, +setEffectsVolume: function(t) { +t = m(t); +var e = this._music.id; +this._effect.volume = t; +for (var i in l) { +var n = l[i]; +n && n.id !== e && p.setVolume(i, t); +} +}, +getEffectsVolume: function() { +return this._effect.volume; +}, +pauseEffect: function(t) { +return this.pause(t); +}, +pauseAllEffects: function() { +var t = this._music.id, e = this._effect; +e.pauseCache.length = 0; +for (var i in l) { +var n = l[i]; +if (n && n.id !== t) { +if (n.getState() === this.AudioState.PLAYING) { +e.pauseCache.push(i); +n.pause(); +} +} +} +}, +resumeEffect: function(t) { +this.resume(t); +}, +resumeAllEffects: function() { +for (var t = this._effect.pauseCache, e = 0; e < t.length; ++e) { +var i = t[e], n = l[i]; +n && n.resume(); +} +}, +stopEffect: function(t) { +return this.stop(t); +}, +stopAllEffects: function() { +var t = this._music.id; +for (var e in l) { +var i = l[e]; +if (i && i.id !== t) { +i.getState() === p.AudioState.PLAYING && i.stop(); +} +} +} +}; +n.exports = cc.audioEngine = p; +}), { +"../core/assets/CCAudioClip": 57, +"./CCAudio": 20 +} ], +22: [ (function(t, e, i) { +"use strict"; +var n = { +name: "Jacob__Codec" +}; +n.Base64 = t("./base64"); +n.GZip = t("./gzip"); +n.unzip = function() { +return n.GZip.gunzip.apply(n.GZip, arguments); +}; +n.unzipBase64 = function() { +var t = n.Base64.decode.apply(n.Base64, arguments); +try { +return n.GZip.gunzip.call(n.GZip, t); +} catch (e) { +return t.slice(7); +} +}; +n.unzipBase64AsArray = function(t, e) { +e = e || 1; +var i, n, r, s = this.unzipBase64(t), o = []; +for (i = 0, r = s.length / e; i < r; i++) { +o[i] = 0; +for (n = e - 1; n >= 0; --n) o[i] += s.charCodeAt(i * e + n) << 8 * n; +} +return o; +}; +n.unzipAsArray = function(t, e) { +e = e || 1; +var i, n, r, s = this.unzip(t), o = []; +for (i = 0, r = s.length / e; i < r; i++) { +o[i] = 0; +for (n = e - 1; n >= 0; --n) o[i] += s.charCodeAt(i * e + n) << 8 * n; +} +return o; +}; +cc.codec = e.exports = n; +}), { +"./base64": 23, +"./gzip": 24 +} ], +23: [ (function(t, e, i) { +"use strict"; +var n = t("../core/utils/misc").BASE64_VALUES, r = { +name: "Jacob__Codec__Base64", +decode: function(t) { +var e, i, r, s, o, a, c, l = [], h = 0; +t = t.replace(/[^A-Za-z0-9\+\/\=]/g, ""); +for (;h < t.length; ) { +s = n[t.charCodeAt(h++)]; +o = n[t.charCodeAt(h++)]; +a = n[t.charCodeAt(h++)]; +c = n[t.charCodeAt(h++)]; +e = s << 2 | o >> 4; +i = (15 & o) << 4 | a >> 2; +r = (3 & a) << 6 | c; +l.push(String.fromCharCode(e)); +64 !== a && l.push(String.fromCharCode(i)); +64 !== c && l.push(String.fromCharCode(r)); +} +return l = l.join(""); +}, +decodeAsArray: function(t, e) { +var i, n, r, s = this.decode(t), o = []; +for (i = 0, r = s.length / e; i < r; i++) { +o[i] = 0; +for (n = e - 1; n >= 0; --n) o[i] += s.charCodeAt(i * e + n) << 8 * n; +} +return o; +} +}; +e.exports = r; +}), { +"../core/utils/misc": 297 +} ], +24: [ (function(t, e, i) { +"use strict"; +var n = function(t) { +this.data = t; +this.debug = !1; +this.gpflags = void 0; +this.files = 0; +this.unzipped = []; +this.buf32k = new Array(32768); +this.bIdx = 0; +this.modeZIP = !1; +this.bytepos = 0; +this.bb = 1; +this.bits = 0; +this.nameBuf = []; +this.fileout = void 0; +this.literalTree = new Array(n.LITERALS); +this.distanceTree = new Array(32); +this.treepos = 0; +this.Places = null; +this.len = 0; +this.fpos = new Array(17); +this.fpos[0] = 0; +this.flens = void 0; +this.fmax = void 0; +}; +n.gunzip = function(t) { +t.constructor === Array || (t.constructor, String); +return new n(t).gunzip()[0][0]; +}; +n.HufNode = function() { +this.b0 = 0; +this.b1 = 0; +this.jump = null; +this.jumppos = -1; +}; +n.LITERALS = 288; +n.NAMEMAX = 256; +n.bitReverse = [ 0, 128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, 48, 176, 112, 240, 8, 136, 72, 200, 40, 168, 104, 232, 24, 152, 88, 216, 56, 184, 120, 248, 4, 132, 68, 196, 36, 164, 100, 228, 20, 148, 84, 212, 52, 180, 116, 244, 12, 140, 76, 204, 44, 172, 108, 236, 28, 156, 92, 220, 60, 188, 124, 252, 2, 130, 66, 194, 34, 162, 98, 226, 18, 146, 82, 210, 50, 178, 114, 242, 10, 138, 74, 202, 42, 170, 106, 234, 26, 154, 90, 218, 58, 186, 122, 250, 6, 134, 70, 198, 38, 166, 102, 230, 22, 150, 86, 214, 54, 182, 118, 246, 14, 142, 78, 206, 46, 174, 110, 238, 30, 158, 94, 222, 62, 190, 126, 254, 1, 129, 65, 193, 33, 161, 97, 225, 17, 145, 81, 209, 49, 177, 113, 241, 9, 137, 73, 201, 41, 169, 105, 233, 25, 153, 89, 217, 57, 185, 121, 249, 5, 133, 69, 197, 37, 165, 101, 229, 21, 149, 85, 213, 53, 181, 117, 245, 13, 141, 77, 205, 45, 173, 109, 237, 29, 157, 93, 221, 61, 189, 125, 253, 3, 131, 67, 195, 35, 163, 99, 227, 19, 147, 83, 211, 51, 179, 115, 243, 11, 139, 75, 203, 43, 171, 107, 235, 27, 155, 91, 219, 59, 187, 123, 251, 7, 135, 71, 199, 39, 167, 103, 231, 23, 151, 87, 215, 55, 183, 119, 247, 15, 143, 79, 207, 47, 175, 111, 239, 31, 159, 95, 223, 63, 191, 127, 255 ]; +n.cplens = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 ]; +n.cplext = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99 ]; +n.cpdist = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ]; +n.cpdext = [ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 ]; +n.border = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]; +n.prototype.gunzip = function() { +this.outputArr = []; +this.nextFile(); +return this.unzipped; +}; +n.prototype.readByte = function() { +this.bits += 8; +return this.bytepos < this.data.length ? this.data.charCodeAt(this.bytepos++) : -1; +}; +n.prototype.byteAlign = function() { +this.bb = 1; +}; +n.prototype.readBit = function() { +var t; +this.bits++; +t = 1 & this.bb; +this.bb >>= 1; +if (0 === this.bb) { +this.bb = this.readByte(); +t = 1 & this.bb; +this.bb = this.bb >> 1 | 128; +} +return t; +}; +n.prototype.readBits = function(t) { +for (var e = 0, i = t; i--; ) e = e << 1 | this.readBit(); +t && (e = n.bitReverse[e] >> 8 - t); +return e; +}; +n.prototype.flushBuffer = function() { +this.bIdx = 0; +}; +n.prototype.addBuffer = function(t) { +this.buf32k[this.bIdx++] = t; +this.outputArr.push(String.fromCharCode(t)); +32768 === this.bIdx && (this.bIdx = 0); +}; +n.prototype.IsPat = function() { +for (;;) { +if (this.fpos[this.len] >= this.fmax) return -1; +if (this.flens[this.fpos[this.len]] === this.len) return this.fpos[this.len]++; +this.fpos[this.len]++; +} +}; +n.prototype.Rec = function() { +var t, e = this.Places[this.treepos]; +if (17 === this.len) return -1; +this.treepos++; +this.len++; +if ((t = this.IsPat()) >= 0) e.b0 = t; else { +e.b0 = 32768; +if (this.Rec()) return -1; +} +if ((t = this.IsPat()) >= 0) { +e.b1 = t; +e.jump = null; +} else { +e.b1 = 32768; +e.jump = this.Places[this.treepos]; +e.jumppos = this.treepos; +if (this.Rec()) return -1; +} +this.len--; +return 0; +}; +n.prototype.CreateTree = function(t, e, i, n) { +var r; +this.Places = t; +this.treepos = 0; +this.flens = i; +this.fmax = e; +for (r = 0; r < 17; r++) this.fpos[r] = 0; +this.len = 0; +return this.Rec() ? -1 : 0; +}; +n.prototype.DecodeValue = function(t) { +for (var e, i, n = 0, r = t[n]; ;) if (this.readBit()) { +if (!(32768 & r.b1)) return r.b1; +r = r.jump; +e = t.length; +for (i = 0; i < e; i++) if (t[i] === r) { +n = i; +break; +} +} else { +if (!(32768 & r.b0)) return r.b0; +r = t[++n]; +} +return -1; +}; +n.prototype.DeflateLoop = function() { +var t, e, i; +do { +t = this.readBit(); +if (0 === (e = this.readBits(2))) { +var r, s; +this.byteAlign(); +r = this.readByte(); +r |= this.readByte() << 8; +s = this.readByte(); +65535 & (r ^ ~(s |= this.readByte() << 8)) && document.write("BlockLen checksum mismatch\n"); +for (;r--; ) { +o = this.readByte(); +this.addBuffer(o); +} +} else if (1 === e) for (;;) { +(a = n.bitReverse[this.readBits(7)] >> 1) > 23 ? (a = a << 1 | this.readBit()) > 199 ? a = (a -= 128) << 1 | this.readBit() : (a -= 48) > 143 && (a += 136) : a += 256; +if (a < 256) this.addBuffer(a); else { +if (256 === a) break; +a -= 257; +m = this.readBits(n.cplext[a]) + n.cplens[a]; +a = n.bitReverse[this.readBits(5)] >> 3; +if (n.cpdext[a] > 8) { +p = this.readBits(8); +p |= this.readBits(n.cpdext[a] - 8) << 8; +} else p = this.readBits(n.cpdext[a]); +p += n.cpdist[a]; +for (a = 0; a < m; a++) { +var o = this.buf32k[this.bIdx - p & 32767]; +this.addBuffer(o); +} +} +} else if (2 === e) { +var a, c, l, h, u, _ = new Array(320); +l = 257 + this.readBits(5); +h = 1 + this.readBits(5); +u = 4 + this.readBits(4); +for (a = 0; a < 19; a++) _[a] = 0; +for (a = 0; a < u; a++) _[n.border[a]] = this.readBits(3); +m = this.distanceTree.length; +for (i = 0; i < m; i++) this.distanceTree[i] = new n.HufNode(); +if (this.CreateTree(this.distanceTree, 19, _, 0)) { +this.flushBuffer(); +return 1; +} +c = l + h; +i = 0; +for (;i < c; ) { +0; +if ((a = this.DecodeValue(this.distanceTree)) < 16) _[i++] = a; else if (16 === a) { +var f; +if (i + (a = 3 + this.readBits(2)) > c) { +this.flushBuffer(); +return 1; +} +f = i ? _[i - 1] : 0; +for (;a--; ) _[i++] = f; +} else { +if (i + (a = 17 === a ? 3 + this.readBits(3) : 11 + this.readBits(7)) > c) { +this.flushBuffer(); +return 1; +} +for (;a--; ) _[i++] = 0; +} +} +m = this.literalTree.length; +for (i = 0; i < m; i++) this.literalTree[i] = new n.HufNode(); +if (this.CreateTree(this.literalTree, l, _, 0)) { +this.flushBuffer(); +return 1; +} +m = this.literalTree.length; +for (i = 0; i < m; i++) this.distanceTree[i] = new n.HufNode(); +var d = new Array(); +for (i = l; i < _.length; i++) d[i - l] = _[i]; +if (this.CreateTree(this.distanceTree, h, d, 0)) { +this.flushBuffer(); +return 1; +} +for (;;) if ((a = this.DecodeValue(this.literalTree)) >= 256) { +var m, p; +if (0 === (a -= 256)) break; +a--; +m = this.readBits(n.cplext[a]) + n.cplens[a]; +a = this.DecodeValue(this.distanceTree); +if (n.cpdext[a] > 8) { +p = this.readBits(8); +p |= this.readBits(n.cpdext[a] - 8) << 8; +} else p = this.readBits(n.cpdext[a]); +p += n.cpdist[a]; +for (;m--; ) { +o = this.buf32k[this.bIdx - p & 32767]; +this.addBuffer(o); +} +} else this.addBuffer(a); +} +} while (!t); +this.flushBuffer(); +this.byteAlign(); +return 0; +}; +n.prototype.unzipFile = function(t) { +var e; +this.gunzip(); +for (e = 0; e < this.unzipped.length; e++) if (this.unzipped[e][1] === t) return this.unzipped[e][0]; +}; +n.prototype.nextFile = function() { +this.outputArr = []; +this.modeZIP = !1; +var t = []; +t[0] = this.readByte(); +t[1] = this.readByte(); +if (120 === t[0] && 218 === t[1]) { +this.DeflateLoop(); +this.unzipped[this.files] = [ this.outputArr.join(""), "geonext.gxt" ]; +this.files++; +} +if (31 === t[0] && 139 === t[1]) { +this.skipdir(); +this.unzipped[this.files] = [ this.outputArr.join(""), "file" ]; +this.files++; +} +if (80 === t[0] && 75 === t[1]) { +this.modeZIP = !0; +t[2] = this.readByte(); +t[3] = this.readByte(); +if (3 === t[2] && 4 === t[3]) { +t[0] = this.readByte(); +t[1] = this.readByte(); +this.gpflags = this.readByte(); +this.gpflags |= this.readByte() << 8; +var e = this.readByte(); +e |= this.readByte() << 8; +this.readByte(); +this.readByte(); +this.readByte(); +this.readByte(); +this.readByte(); +this.readByte() << 8; +this.readByte() << 16; +this.readByte() << 24; +this.readByte(); +this.readByte() << 8; +this.readByte() << 16; +this.readByte() << 24; +var i = this.readByte(); +i |= this.readByte() << 8; +var r = this.readByte(); +r |= this.readByte() << 8; +o = 0; +this.nameBuf = []; +for (;i--; ) { +var s = this.readByte(); +"/" === s | ":" === s ? o = 0 : o < n.NAMEMAX - 1 && (this.nameBuf[o++] = String.fromCharCode(s)); +} +this.fileout || (this.fileout = this.nameBuf); +for (var o = 0; o < r; ) { +s = this.readByte(); +o++; +} +if (8 === e) { +this.DeflateLoop(); +this.unzipped[this.files] = [ this.outputArr.join(""), this.nameBuf.join("") ]; +this.files++; +} +this.skipdir(); +} +} +}; +n.prototype.skipdir = function() { +var t, e, i = []; +if (8 & this.gpflags) { +i[0] = this.readByte(); +i[1] = this.readByte(); +i[2] = this.readByte(); +i[3] = this.readByte(); +this.readByte(); +this.readByte() << 8; +this.readByte() << 16; +this.readByte() << 24; +this.readByte(); +this.readByte() << 8; +this.readByte() << 16; +this.readByte() << 24; +} +this.modeZIP && this.nextFile(); +i[0] = this.readByte(); +if (8 !== i[0]) return 0; +this.gpflags = this.readByte(); +this.readByte(); +this.readByte(); +this.readByte(); +this.readByte(); +this.readByte(); +this.readByte(); +if (4 & this.gpflags) { +i[0] = this.readByte(); +i[2] = this.readByte(); +this.len = i[0] + 256 * i[1]; +for (t = 0; t < this.len; t++) this.readByte(); +} +if (8 & this.gpflags) { +t = 0; +this.nameBuf = []; +for (;e = this.readByte(); ) { +"7" !== e && ":" !== e || (t = 0); +t < n.NAMEMAX - 1 && (this.nameBuf[t++] = e); +} +} +if (16 & this.gpflags) for (;e = this.readByte(); ) ; +if (2 & this.gpflags) { +this.readByte(); +this.readByte(); +} +this.DeflateLoop(); +this.readByte(); +this.readByte() << 8; +this.readByte() << 16; +this.readByte() << 24; +this.modeZIP && this.nextFile(); +}; +e.exports = n; +}), {} ], +25: [ (function(i, n, r) { +"use strict"; +(function() { +function i(t) { +throw t; +} +var n = void 0, r = !0, s = this; +function o(t, e) { +var i, r = t.split("."), o = s; +!(r[0] in o) && o.execScript && o.execScript("var " + r[0]); +for (;r.length && (i = r.shift()); ) r.length || e === n ? o = o[i] ? o[i] : o[i] = {} : o[i] = e; +} +var a = "undefined" !== ("object" === (e = typeof Uint8Array) ? t(Uint8Array) : e) && "undefined" !== ("object" === (e = typeof Uint16Array) ? t(Uint16Array) : e) && "undefined" !== ("object" === (e = typeof Uint32Array) ? t(Uint32Array) : e); +function c(i) { +if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { +var n, r, s = i.split(""); +n = 0; +for (r = s.length; n < r; n++) s[n] = (255 & s[n].charCodeAt(0)) >>> 0; +i = s; +} +for (var o, a = 1, c = 0, l = i.length, h = 0; 0 < l; ) { +l -= o = 1024 < l ? 1024 : l; +do { +c += a += i[h++]; +} while (--o); +a %= 65521; +c %= 65521; +} +return (c << 16 | a) >>> 0; +} +function l(n, r) { +this.index = "number" === ("object" === (e = typeof r) ? t(r) : e) ? r : 0; +this.i = 0; +this.buffer = n instanceof (a ? Uint8Array : Array) ? n : new (a ? Uint8Array : Array)(32768); +2 * this.buffer.length <= this.index && i(Error("invalid index")); +this.buffer.length <= this.index && this.f(); +} +l.prototype.f = function() { +var t, e = this.buffer, i = e.length, n = new (a ? Uint8Array : Array)(i << 1); +if (a) n.set(e); else for (t = 0; t < i; ++t) n[t] = e[t]; +return this.buffer = n; +}; +l.prototype.d = function(t, e, i) { +var n, r = this.buffer, s = this.index, o = this.i, a = r[s]; +i && 1 < e && (t = 8 < e ? (m[255 & t] << 24 | m[t >>> 8 & 255] << 16 | m[t >>> 16 & 255] << 8 | m[t >>> 24 & 255]) >> 32 - e : m[t] >> 8 - e); +if (8 > e + o) a = a << e | t, o += e; else for (n = 0; n < e; ++n) a = a << 1 | t >> e - n - 1 & 1, +8 == ++o && (o = 0, r[s++] = m[a], a = 0, s === r.length && (r = this.f())); +r[s] = a; +this.buffer = r; +this.i = o; +this.index = s; +}; +l.prototype.finish = function() { +var t, e = this.buffer, i = this.index; +0 < this.i && (e[i] <<= 8 - this.i, e[i] = m[e[i]], i++); +a ? t = e.subarray(0, i) : (e.length = i, t = e); +return t; +}; +var h, u = new (a ? Uint8Array : Array)(256); +for (h = 0; 256 > h; ++h) { +for (var _ = d = h, f = 7, d = d >>> 1; d; d >>>= 1) _ <<= 1, _ |= 1 & d, --f; +u[h] = (_ << f & 255) >>> 0; +} +var m = u; +a && new Uint32Array([ 0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117 ]); +function p(t) { +this.buffer = new (a ? Uint16Array : Array)(2 * t); +this.length = 0; +} +p.prototype.getParent = function(t) { +return 2 * ((t - 2) / 4 | 0); +}; +p.prototype.push = function(t, e) { +var i, n, r, s = this.buffer; +i = this.length; +s[this.length++] = e; +for (s[this.length++] = t; 0 < i && (n = this.getParent(i), s[i] > s[n]); ) r = s[i], +s[i] = s[n], s[n] = r, r = s[i + 1], s[i + 1] = s[n + 1], s[n + 1] = r, i = n; +return this.length; +}; +p.prototype.pop = function() { +var t, e, i, n, r, s = this.buffer; +e = s[0]; +t = s[1]; +this.length -= 2; +s[0] = s[this.length]; +s[1] = s[this.length + 1]; +for (r = 0; !((n = 2 * r + 2) >= this.length); ) { +n + 2 < this.length && s[n + 2] > s[n] && (n += 2); +if (!(s[n] > s[r])) break; +i = s[r], s[r] = s[n], s[n] = i, i = s[r + 1], s[r + 1] = s[n + 1], s[n + 1] = i; +r = n; +} +return { +index: t, +value: e, +length: this.length +}; +}; +function v(t) { +var e, i, n, r, s, o, c, l, h, u = t.length, _ = 0, f = Number.POSITIVE_INFINITY; +for (l = 0; l < u; ++l) t[l] > _ && (_ = t[l]), t[l] < f && (f = t[l]); +e = 1 << _; +i = new (a ? Uint32Array : Array)(e); +n = 1; +r = 0; +for (s = 2; n <= _; ) { +for (l = 0; l < u; ++l) if (t[l] === n) { +o = 0; +c = r; +for (h = 0; h < n; ++h) o = o << 1 | 1 & c, c >>= 1; +for (h = o; h < e; h += s) i[h] = n << 16 | l; +++r; +} +++n; +r <<= 1; +s <<= 1; +} +return [ i, _, f ]; +} +function y(i, n) { +this.h = x; +this.w = 0; +this.input = i; +this.b = 0; +n && (n.lazy && (this.w = n.lazy), "number" === ("object" === (e = typeof n.compressionType) ? t(n.compressionType) : e) && (this.h = n.compressionType), +n.outputBuffer && (this.a = a && n.outputBuffer instanceof Array ? new Uint8Array(n.outputBuffer) : n.outputBuffer), +"number" === ("object" === (e = typeof n.outputIndex) ? t(n.outputIndex) : e) && (this.b = n.outputIndex)); +this.a || (this.a = new (a ? Uint8Array : Array)(32768)); +} +var g, x = 2, C = { +NONE: 0, +r: 1, +j: x, +N: 3 +}, b = []; +for (g = 0; 288 > g; g++) switch (r) { +case 143 >= g: +b.push([ g + 48, 8 ]); +break; + +case 255 >= g: +b.push([ g - 144 + 400, 9 ]); +break; + +case 279 >= g: +b.push([ g - 256 + 0, 7 ]); +break; + +case 287 >= g: +b.push([ g - 280 + 192, 8 ]); +break; + +default: +i("invalid literal: " + g); +} +y.prototype.n = function() { +var t, e, s, o, c = this.input; +switch (this.h) { +case 0: +s = 0; +for (o = c.length; s < o; ) { +var h, u, _, f = e = a ? c.subarray(s, s + 65535) : c.slice(s, s + 65535), d = (s += e.length) === o, m = n, p = n, v = this.a, y = this.b; +if (a) { +for (v = new Uint8Array(this.a.buffer); v.length <= y + f.length + 5; ) v = new Uint8Array(v.length << 1); +v.set(this.a); +} +h = d ? 1 : 0; +v[y++] = 0 | h; +_ = 65536 + ~(u = f.length) & 65535; +v[y++] = 255 & u; +v[y++] = u >>> 8 & 255; +v[y++] = 255 & _; +v[y++] = _ >>> 8 & 255; +if (a) v.set(f, y), y += f.length, v = v.subarray(0, y); else { +m = 0; +for (p = f.length; m < p; ++m) v[y++] = f[m]; +v.length = y; +} +this.b = y; +this.a = v; +} +break; + +case 1: +var g = new l(new Uint8Array(this.a.buffer), this.b); +g.d(1, 1, r); +g.d(1, 2, r); +var C, A, S, w = B(this, c); +C = 0; +for (A = w.length; C < A; C++) if (S = w[C], l.prototype.d.apply(g, b[S]), 256 < S) g.d(w[++C], w[++C], r), +g.d(w[++C], 5), g.d(w[++C], w[++C], r); else if (256 === S) break; +this.a = g.finish(); +this.b = this.a.length; +break; + +case x: +var T, E, M, P, R, L, F, O, V, N, k, z, G, U, j, W = new l(new Uint8Array(this.a), this.b), H = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ], q = Array(19); +T = x; +W.d(1, 1, r); +W.d(T, 2, r); +E = B(this, c); +F = I(L = D(this.L, 15)); +V = I(O = D(this.K, 7)); +for (M = 286; 257 < M && 0 === L[M - 1]; M--) ; +for (P = 30; 1 < P && 0 === O[P - 1]; P--) ; +var X, Y, J, Z, K, Q, $ = M, tt = P, et = new (a ? Uint32Array : Array)($ + tt), it = new (a ? Uint32Array : Array)(316), nt = new (a ? Uint8Array : Array)(19); +for (X = Y = 0; X < $; X++) et[Y++] = L[X]; +for (X = 0; X < tt; X++) et[Y++] = O[X]; +if (!a) { +X = 0; +for (Z = nt.length; X < Z; ++X) nt[X] = 0; +} +X = K = 0; +for (Z = et.length; X < Z; X += Y) { +for (Y = 1; X + Y < Z && et[X + Y] === et[X]; ++Y) ; +J = Y; +if (0 === et[X]) if (3 > J) for (;0 < J--; ) it[K++] = 0, nt[0]++; else for (;0 < J; ) (Q = 138 > J ? J : 138) > J - 3 && Q < J && (Q = J - 3), +10 >= Q ? (it[K++] = 17, it[K++] = Q - 3, nt[17]++) : (it[K++] = 18, it[K++] = Q - 11, +nt[18]++), J -= Q; else if (it[K++] = et[X], nt[et[X]]++, 3 > --J) for (;0 < J--; ) it[K++] = et[X], +nt[et[X]]++; else for (;0 < J; ) (Q = 6 > J ? J : 6) > J - 3 && Q < J && (Q = J - 3), +it[K++] = 16, it[K++] = Q - 3, nt[16]++, J -= Q; +} +t = a ? it.subarray(0, K) : it.slice(0, K); +N = D(nt, 7); +for (U = 0; 19 > U; U++) q[U] = N[H[U]]; +for (R = 19; 4 < R && 0 === q[R - 1]; R--) ; +k = I(N); +W.d(M - 257, 5, r); +W.d(P - 1, 5, r); +W.d(R - 4, 4, r); +for (U = 0; U < R; U++) W.d(q[U], 3, r); +U = 0; +for (j = t.length; U < j; U++) if (z = t[U], W.d(k[z], N[z], r), 16 <= z) { +U++; +switch (z) { +case 16: +G = 2; +break; + +case 17: +G = 3; +break; + +case 18: +G = 7; +break; + +default: +i("invalid code: " + z); +} +W.d(t[U], G, r); +} +var rt, st, ot, at, ct, lt, ht, ut, _t = [ F, L ], ft = [ V, O ]; +ct = _t[0]; +lt = _t[1]; +ht = ft[0]; +ut = ft[1]; +rt = 0; +for (st = E.length; rt < st; ++rt) if (ot = E[rt], W.d(ct[ot], lt[ot], r), 256 < ot) W.d(E[++rt], E[++rt], r), +at = E[++rt], W.d(ht[at], ut[at], r), W.d(E[++rt], E[++rt], r); else if (256 === ot) break; +this.a = W.finish(); +this.b = this.a.length; +break; + +default: +i("invalid compression type"); +} +return this.a; +}; +function A(t, e) { +this.length = t; +this.G = e; +} +function S() { +var t = w; +switch (r) { +case 3 === t: +return [ 257, t - 3, 0 ]; + +case 4 === t: +return [ 258, t - 4, 0 ]; + +case 5 === t: +return [ 259, t - 5, 0 ]; + +case 6 === t: +return [ 260, t - 6, 0 ]; + +case 7 === t: +return [ 261, t - 7, 0 ]; + +case 8 === t: +return [ 262, t - 8, 0 ]; + +case 9 === t: +return [ 263, t - 9, 0 ]; + +case 10 === t: +return [ 264, t - 10, 0 ]; + +case 12 >= t: +return [ 265, t - 11, 1 ]; + +case 14 >= t: +return [ 266, t - 13, 1 ]; + +case 16 >= t: +return [ 267, t - 15, 1 ]; + +case 18 >= t: +return [ 268, t - 17, 1 ]; + +case 22 >= t: +return [ 269, t - 19, 2 ]; + +case 26 >= t: +return [ 270, t - 23, 2 ]; + +case 30 >= t: +return [ 271, t - 27, 2 ]; + +case 34 >= t: +return [ 272, t - 31, 2 ]; + +case 42 >= t: +return [ 273, t - 35, 3 ]; + +case 50 >= t: +return [ 274, t - 43, 3 ]; + +case 58 >= t: +return [ 275, t - 51, 3 ]; + +case 66 >= t: +return [ 276, t - 59, 3 ]; + +case 82 >= t: +return [ 277, t - 67, 4 ]; + +case 98 >= t: +return [ 278, t - 83, 4 ]; + +case 114 >= t: +return [ 279, t - 99, 4 ]; + +case 130 >= t: +return [ 280, t - 115, 4 ]; + +case 162 >= t: +return [ 281, t - 131, 5 ]; + +case 194 >= t: +return [ 282, t - 163, 5 ]; + +case 226 >= t: +return [ 283, t - 195, 5 ]; + +case 257 >= t: +return [ 284, t - 227, 5 ]; + +case 258 === t: +return [ 285, t - 258, 0 ]; + +default: +i("invalid length: " + t); +} +} +var w, T, E = []; +for (w = 3; 258 >= w; w++) T = S(), E[w] = T[2] << 24 | T[1] << 16 | T[0]; +var M = a ? new Uint32Array(E) : E; +function B(t, e) { +function s(t, e) { +var n, s, o, a, c = t.G, l = [], h = 0; +n = M[t.length]; +l[h++] = 65535 & n; +l[h++] = n >> 16 & 255; +l[h++] = n >> 24; +switch (r) { +case 1 === c: +s = [ 0, c - 1, 0 ]; +break; + +case 2 === c: +s = [ 1, c - 2, 0 ]; +break; + +case 3 === c: +s = [ 2, c - 3, 0 ]; +break; + +case 4 === c: +s = [ 3, c - 4, 0 ]; +break; + +case 6 >= c: +s = [ 4, c - 5, 1 ]; +break; + +case 8 >= c: +s = [ 5, c - 7, 1 ]; +break; + +case 12 >= c: +s = [ 6, c - 9, 2 ]; +break; + +case 16 >= c: +s = [ 7, c - 13, 2 ]; +break; + +case 24 >= c: +s = [ 8, c - 17, 3 ]; +break; + +case 32 >= c: +s = [ 9, c - 25, 3 ]; +break; + +case 48 >= c: +s = [ 10, c - 33, 4 ]; +break; + +case 64 >= c: +s = [ 11, c - 49, 4 ]; +break; + +case 96 >= c: +s = [ 12, c - 65, 5 ]; +break; + +case 128 >= c: +s = [ 13, c - 97, 5 ]; +break; + +case 192 >= c: +s = [ 14, c - 129, 6 ]; +break; + +case 256 >= c: +s = [ 15, c - 193, 6 ]; +break; + +case 384 >= c: +s = [ 16, c - 257, 7 ]; +break; + +case 512 >= c: +s = [ 17, c - 385, 7 ]; +break; + +case 768 >= c: +s = [ 18, c - 513, 8 ]; +break; + +case 1024 >= c: +s = [ 19, c - 769, 8 ]; +break; + +case 1536 >= c: +s = [ 20, c - 1025, 9 ]; +break; + +case 2048 >= c: +s = [ 21, c - 1537, 9 ]; +break; + +case 3072 >= c: +s = [ 22, c - 2049, 10 ]; +break; + +case 4096 >= c: +s = [ 23, c - 3073, 10 ]; +break; + +case 6144 >= c: +s = [ 24, c - 4097, 11 ]; +break; + +case 8192 >= c: +s = [ 25, c - 6145, 11 ]; +break; + +case 12288 >= c: +s = [ 26, c - 8193, 12 ]; +break; + +case 16384 >= c: +s = [ 27, c - 12289, 12 ]; +break; + +case 24576 >= c: +s = [ 28, c - 16385, 13 ]; +break; + +case 32768 >= c: +s = [ 29, c - 24577, 13 ]; +break; + +default: +i("invalid distance"); +} +n = s; +l[h++] = n[0]; +l[h++] = n[1]; +l[h++] = n[2]; +o = 0; +for (a = l.length; o < a; ++o) v[y++] = l[o]; +x[l[0]]++; +C[l[3]]++; +g = t.length + e - 1; +d = null; +} +var o, c, l, h, u, _, f, d, m, p = {}, v = a ? new Uint16Array(2 * e.length) : [], y = 0, g = 0, x = new (a ? Uint32Array : Array)(286), C = new (a ? Uint32Array : Array)(30), b = t.w; +if (!a) { +for (l = 0; 285 >= l; ) x[l++] = 0; +for (l = 0; 29 >= l; ) C[l++] = 0; +} +x[256] = 1; +o = 0; +for (c = e.length; o < c; ++o) { +l = u = 0; +for (h = 3; l < h && o + l !== c; ++l) u = u << 8 | e[o + l]; +p[u] === n && (p[u] = []); +_ = p[u]; +if (!(0 < g--)) { +for (;0 < _.length && 32768 < o - _[0]; ) _.shift(); +if (o + 3 >= c) { +d && s(d, -1); +l = 0; +for (h = c - o; l < h; ++l) m = e[o + l], v[y++] = m, ++x[m]; +break; +} +if (0 < _.length) { +var S = n, w = n, T = 0, E = n, B = n, D = n, I = e.length, P = (B = 0, _.length); +t: for (;B < P; B++) { +S = _[P - B - 1]; +E = 3; +if (3 < T) { +for (D = T; 3 < D; D--) if (e[S + D - 1] !== e[o + D - 1]) continue t; +E = T; +} +for (;258 > E && o + E < I && e[S + E] === e[o + E]; ) ++E; +E > T && (w = S, T = E); +if (258 === E) break; +} +f = new A(T, o - w); +d ? d.length < f.length ? (m = e[o - 1], v[y++] = m, ++x[m], s(f, 0)) : s(d, -1) : f.length < b ? d = f : s(f, 0); +} else d ? s(d, -1) : (m = e[o], v[y++] = m, ++x[m]); +} +_.push(o); +} +v[y++] = 256; +x[256]++; +t.L = x; +t.K = C; +return a ? v.subarray(0, y) : v; +} +function D(t, e) { +function i(t) { +var e = A[t][S[t]]; +e === y ? (i(t + 1), i(t + 1)) : --C[e]; +++S[t]; +} +var n, r, s, o, c, l = t.length, h = new p(572), u = new (a ? Uint8Array : Array)(l); +if (!a) for (o = 0; o < l; o++) u[o] = 0; +for (o = 0; o < l; ++o) 0 < t[o] && h.push(o, t[o]); +n = Array(h.length / 2); +r = new (a ? Uint32Array : Array)(h.length / 2); +if (1 === n.length) return u[h.pop().index] = 1, u; +o = 0; +for (c = h.length / 2; o < c; ++o) n[o] = h.pop(), r[o] = n[o].value; +var _, f, d, m, v, y = r.length, g = new (a ? Uint16Array : Array)(e), x = new (a ? Uint8Array : Array)(e), C = new (a ? Uint8Array : Array)(y), b = Array(e), A = Array(e), S = Array(e), w = (1 << e) - y, T = 1 << e - 1; +g[e - 1] = y; +for (f = 0; f < e; ++f) w < T ? x[f] = 0 : (x[f] = 1, w -= T), w <<= 1, g[e - 2 - f] = (g[e - 1 - f] / 2 | 0) + y; +g[0] = x[0]; +b[0] = Array(g[0]); +A[0] = Array(g[0]); +for (f = 1; f < e; ++f) g[f] > 2 * g[f - 1] + x[f] && (g[f] = 2 * g[f - 1] + x[f]), +b[f] = Array(g[f]), A[f] = Array(g[f]); +for (_ = 0; _ < y; ++_) C[_] = e; +for (d = 0; d < g[e - 1]; ++d) b[e - 1][d] = r[d], A[e - 1][d] = d; +for (_ = 0; _ < e; ++_) S[_] = 0; +1 === x[e - 1] && (--C[0], ++S[e - 1]); +for (f = e - 2; 0 <= f; --f) { +m = _ = 0; +v = S[f + 1]; +for (d = 0; d < g[f]; d++) (m = b[f + 1][v] + b[f + 1][v + 1]) > r[_] ? (b[f][d] = m, +A[f][d] = y, v += 2) : (b[f][d] = r[_], A[f][d] = _, ++_); +S[f] = 0; +1 === x[f] && i(f); +} +s = C; +o = 0; +for (c = n.length; o < c; ++o) u[n[o].index] = s[o]; +return u; +} +function I(t) { +var e, n, r, s, o = new (a ? Uint16Array : Array)(t.length), c = [], l = [], h = 0; +e = 0; +for (n = t.length; e < n; e++) c[t[e]] = 1 + (0 | c[t[e]]); +e = 1; +for (n = 16; e <= n; e++) l[e] = h, (h += 0 | c[e]) > 1 << e && i("overcommitted"), +h <<= 1; +65536 > h && i("undercommitted"); +e = 0; +for (n = t.length; e < n; e++) { +h = l[t[e]]; +l[t[e]] += 1; +r = o[e] = 0; +for (s = t[e]; r < s; r++) o[e] = o[e] << 1 | 1 & h, h >>>= 1; +} +return o; +} +function P(i, n) { +this.input = i; +this.a = new (a ? Uint8Array : Array)(32768); +this.h = R.j; +var r, s = {}; +!n && (n = {}) || "number" !== ("object" === (e = typeof n.compressionType) ? t(n.compressionType) : e) || (this.h = n.compressionType); +for (r in n) s[r] = n[r]; +s.outputBuffer = this.a; +this.z = new y(this.input, s); +} +var R = C; +P.prototype.n = function() { +var t, e, n, r, s, o, l, h = 0; +l = this.a; +switch (t = _t) { +case _t: +e = Math.LOG2E * Math.log(32768) - 8; +break; + +default: +i(Error("invalid compression method")); +} +n = e << 4 | t; +l[h++] = n; +switch (t) { +case _t: +switch (this.h) { +case R.NONE: +s = 0; +break; + +case R.r: +s = 1; +break; + +case R.j: +s = 2; +break; + +default: +i(Error("unsupported compression type")); +} +break; + +default: +i(Error("invalid compression method")); +} +r = s << 6 | 0; +l[h++] = r | 31 - (256 * n + r) % 31; +o = c(this.input); +this.z.b = h; +h = (l = this.z.n()).length; +a && ((l = new Uint8Array(l.buffer)).length <= h + 4 && (this.a = new Uint8Array(l.length + 4), +this.a.set(l), l = this.a), l = l.subarray(0, h + 4)); +l[h++] = o >> 24 & 255; +l[h++] = o >> 16 & 255; +l[h++] = o >> 8 & 255; +l[h++] = 255 & o; +return l; +}; +o("Zlib.Deflate", P); +o("Zlib.Deflate.compress", (function(t, e) { +return new P(t, e).n(); +})); +o("Zlib.Deflate.CompressionType", R); +o("Zlib.Deflate.CompressionType.NONE", R.NONE); +o("Zlib.Deflate.CompressionType.FIXED", R.r); +o("Zlib.Deflate.CompressionType.DYNAMIC", R.j); +function L(t, e) { +this.k = []; +this.l = 32768; +this.e = this.g = this.c = this.q = 0; +this.input = a ? new Uint8Array(t) : t; +this.s = !1; +this.m = O; +this.B = !1; +!e && (e = {}) || (e.index && (this.c = e.index), e.bufferSize && (this.l = e.bufferSize), +e.bufferType && (this.m = e.bufferType), e.resize && (this.B = e.resize)); +switch (this.m) { +case F: +this.b = 32768; +this.a = new (a ? Uint8Array : Array)(32768 + this.l + 258); +break; + +case O: +this.b = 0; +this.a = new (a ? Uint8Array : Array)(this.l); +this.f = this.J; +this.t = this.H; +this.o = this.I; +break; + +default: +i(Error("invalid inflate mode")); +} +} +var F = 0, O = 1, V = { +D: F, +C: O +}; +L.prototype.p = function() { +for (;!this.s; ) { +var t = it(this, 3); +1 & t && (this.s = r); +switch (t >>>= 1) { +case 0: +var e = this.input, s = this.c, o = this.a, c = this.b, l = n, h = n, u = n, _ = o.length, f = n; +this.e = this.g = 0; +(l = e[s++]) === n && i(Error("invalid uncompressed block header: LEN (first byte)")); +h = l; +(l = e[s++]) === n && i(Error("invalid uncompressed block header: LEN (second byte)")); +h |= l << 8; +(l = e[s++]) === n && i(Error("invalid uncompressed block header: NLEN (first byte)")); +u = l; +(l = e[s++]) === n && i(Error("invalid uncompressed block header: NLEN (second byte)")); +h === ~(u |= l << 8) && i(Error("invalid uncompressed block header: length verify")); +s + h > e.length && i(Error("input buffer is broken")); +switch (this.m) { +case F: +for (;c + h > o.length; ) { +h -= f = _ - c; +if (a) o.set(e.subarray(s, s + f), c), c += f, s += f; else for (;f--; ) o[c++] = e[s++]; +this.b = c; +o = this.f(); +c = this.b; +} +break; + +case O: +for (;c + h > o.length; ) o = this.f({ +v: 2 +}); +break; + +default: +i(Error("invalid inflate mode")); +} +if (a) o.set(e.subarray(s, s + h), c), c += h, s += h; else for (;h--; ) o[c++] = e[s++]; +this.c = s; +this.b = c; +this.a = o; +break; + +case 1: +this.o($, et); +break; + +case 2: +rt(this); +break; + +default: +i(Error("unknown BTYPE: " + t)); +} +} +return this.t(); +}; +var N, k, z = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ], G = a ? new Uint16Array(z) : z, U = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 258, 258 ], j = a ? new Uint16Array(U) : U, W = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 ], H = a ? new Uint8Array(W) : W, q = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ], X = a ? new Uint16Array(q) : q, Y = [ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 ], J = a ? new Uint8Array(Y) : Y, Z = new (a ? Uint8Array : Array)(288); +N = 0; +for (k = Z.length; N < k; ++N) Z[N] = 143 >= N ? 8 : 255 >= N ? 9 : 279 >= N ? 7 : 8; +var K, Q, $ = v(Z), tt = new (a ? Uint8Array : Array)(30); +K = 0; +for (Q = tt.length; K < Q; ++K) tt[K] = 5; +var et = v(tt); +function it(t, e) { +for (var r, s = t.g, o = t.e, a = t.input, c = t.c; o < e; ) (r = a[c++]) === n && i(Error("input buffer is broken")), +s |= r << o, o += 8; +r = s & (1 << e) - 1; +t.g = s >>> e; +t.e = o - e; +t.c = c; +return r; +} +function nt(t, e) { +for (var r, s, o, a = t.g, c = t.e, l = t.input, h = t.c, u = e[0], _ = e[1]; c < _; ) (r = l[h++]) === n && i(Error("input buffer is broken")), +a |= r << c, c += 8; +o = (s = u[a & (1 << _) - 1]) >>> 16; +t.g = a >> o; +t.e = c - o; +t.c = h; +return 65535 & s; +} +function rt(t) { +function e(t, e, i) { +var n, r, s, o; +for (o = 0; o < t; ) switch (n = nt(this, e)) { +case 16: +for (s = 3 + it(this, 2); s--; ) i[o++] = r; +break; + +case 17: +for (s = 3 + it(this, 3); s--; ) i[o++] = 0; +r = 0; +break; + +case 18: +for (s = 11 + it(this, 7); s--; ) i[o++] = 0; +r = 0; +break; + +default: +r = i[o++] = n; +} +return i; +} +var i, n, r, s, o = it(t, 5) + 257, c = it(t, 5) + 1, l = it(t, 4) + 4, h = new (a ? Uint8Array : Array)(G.length); +for (s = 0; s < l; ++s) h[G[s]] = it(t, 3); +i = v(h); +n = new (a ? Uint8Array : Array)(o); +r = new (a ? Uint8Array : Array)(c); +t.o(v(e.call(t, o, i, n)), v(e.call(t, c, i, r))); +} +L.prototype.o = function(t, e) { +var i = this.a, n = this.b; +this.u = t; +for (var r, s, o, a, c = i.length - 258; 256 !== (r = nt(this, t)); ) if (256 > r) n >= c && (this.b = n, +i = this.f(), n = this.b), i[n++] = r; else { +a = j[s = r - 257]; +0 < H[s] && (a += it(this, H[s])); +r = nt(this, e); +o = X[r]; +0 < J[r] && (o += it(this, J[r])); +n >= c && (this.b = n, i = this.f(), n = this.b); +for (;a--; ) i[n] = i[n++ - o]; +} +for (;8 <= this.e; ) this.e -= 8, this.c--; +this.b = n; +}; +L.prototype.I = function(t, e) { +var i = this.a, n = this.b; +this.u = t; +for (var r, s, o, a, c = i.length; 256 !== (r = nt(this, t)); ) if (256 > r) n >= c && (c = (i = this.f()).length), +i[n++] = r; else { +a = j[s = r - 257]; +0 < H[s] && (a += it(this, H[s])); +r = nt(this, e); +o = X[r]; +0 < J[r] && (o += it(this, J[r])); +n + a > c && (c = (i = this.f()).length); +for (;a--; ) i[n] = i[n++ - o]; +} +for (;8 <= this.e; ) this.e -= 8, this.c--; +this.b = n; +}; +L.prototype.f = function() { +var t, e, i = new (a ? Uint8Array : Array)(this.b - 32768), n = this.b - 32768, r = this.a; +if (a) i.set(r.subarray(32768, i.length)); else { +t = 0; +for (e = i.length; t < e; ++t) i[t] = r[t + 32768]; +} +this.k.push(i); +this.q += i.length; +if (a) r.set(r.subarray(n, n + 32768)); else for (t = 0; 32768 > t; ++t) r[t] = r[n + t]; +this.b = 32768; +return r; +}; +L.prototype.J = function(i) { +var n, r, s, o = this.input.length / this.c + 1 | 0, c = this.input, l = this.a; +i && ("number" === ("object" === (e = typeof i.v) ? t(i.v) : e) && (o = i.v), "number" === ("object" === (e = typeof i.F) ? t(i.F) : e) && (o += i.F)); +2 > o ? r = (s = (c.length - this.c) / this.u[2] / 2 * 258 | 0) < l.length ? l.length + s : l.length << 1 : r = l.length * o; +a ? (n = new Uint8Array(r)).set(l) : n = l; +return this.a = n; +}; +L.prototype.t = function() { +var t, e, i, n, r, s = 0, o = this.a, c = this.k, l = new (a ? Uint8Array : Array)(this.q + (this.b - 32768)); +if (0 === c.length) return a ? this.a.subarray(32768, this.b) : this.a.slice(32768, this.b); +e = 0; +for (i = c.length; e < i; ++e) { +t = c[e]; +n = 0; +for (r = t.length; n < r; ++n) l[s++] = t[n]; +} +e = 32768; +for (i = this.b; e < i; ++e) l[s++] = o[e]; +this.k = []; +return this.buffer = l; +}; +L.prototype.H = function() { +var t, e = this.b; +a ? this.B ? (t = new Uint8Array(e)).set(this.a.subarray(0, e)) : t = this.a.subarray(0, e) : (this.a.length > e && (this.a.length = e), +t = this.a); +return this.buffer = t; +}; +function st(t, e) { +var n, r; +this.input = t; +this.c = 0; +!e && (e = {}) || (e.index && (this.c = e.index), e.verify && (this.M = e.verify)); +n = t[this.c++]; +r = t[this.c++]; +switch (15 & n) { +case _t: +this.method = _t; +break; + +default: +i(Error("unsupported compression method")); +} +0 != ((n << 8) + r) % 31 && i(Error("invalid fcheck flag:" + ((n << 8) + r) % 31)); +32 & r && i(Error("fdict flag is not supported")); +this.A = new L(t, { +index: this.c, +bufferSize: e.bufferSize, +bufferType: e.bufferType, +resize: e.resize +}); +} +st.prototype.p = function() { +var t, e = this.input; +t = this.A.p(); +this.c = this.A.c; +this.M && ((e[this.c++] << 24 | e[this.c++] << 16 | e[this.c++] << 8 | e[this.c++]) >>> 0 !== c(t) && i(Error("invalid adler-32 checksum"))); +return t; +}; +o("Zlib.Inflate", st); +o("Zlib.Inflate.BufferType", V); +V.ADAPTIVE = V.C; +V.BLOCK = V.D; +o("Zlib.Inflate.prototype.decompress", st.prototype.p); +a && new Uint16Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]); +a && new Uint16Array([ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 258, 258 ]); +a && new Uint8Array([ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 ]); +a && new Uint16Array([ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ]); +a && new Uint8Array([ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 ]); +var ot, at, ct = new (a ? Uint8Array : Array)(288); +ot = 0; +for (at = ct.length; ot < at; ++ot) ct[ot] = 143 >= ot ? 8 : 255 >= ot ? 9 : 279 >= ot ? 7 : 8; +v(ct); +var lt, ht, ut = new (a ? Uint8Array : Array)(30); +lt = 0; +for (ht = ut.length; lt < ht; ++lt) ut[lt] = 5; +v(ut); +var _t = 8; +}).call(window); +var s = window.Zlib; +s.Deflate = s.Deflate; +s.Deflate.compress = s.Deflate.compress; +s.Inflate = s.Inflate; +s.Inflate.BufferType = s.Inflate.BufferType; +s.Inflate.prototype.decompress = s.Inflate.prototype.decompress; +n.exports = s; +}), {} ], +26: [ (function(i, n, r) { +"use strict"; +r.__esModule = !0; +r.default = void 0; +var s, o, a, c, l, h, u, _, f, d, m, p, v, y, g, x, C, b, A, S, w, T, E, M = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(), B = R(i("../../renderer/enums")), D = R(i("../../renderer/scene/light")), I = i("../value-types"), P = i("../vmath"); +function R(t) { +return t && t.__esModule ? t : { +default: t +}; +} +function L(t, e, i, n) { +i && Object.defineProperty(t, e, { +enumerable: i.enumerable, +configurable: i.configurable, +writable: i.writable, +value: i.initializer ? i.initializer.call(n) : void 0 +}); +} +function F(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +function O(i, n) { +if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); +return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; +} +function V(i, n) { +if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); +i.prototype = Object.create(n && n.prototype, { +constructor: { +value: i, +enumerable: !1, +writable: !0, +configurable: !0 +} +}); +n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); +} +function N(t, e, i, n, r) { +var s = {}; +Object.keys(n).forEach((function(t) { +s[t] = n[t]; +})); +s.enumerable = !!s.enumerable; +s.configurable = !!s.configurable; +("value" in s || s.initializer) && (s.writable = !0); +s = i.slice().reverse().reduce((function(i, n) { +return n(t, e, i) || i; +}), s); +if (r && void 0 !== s.initializer) { +s.value = s.initializer ? s.initializer.call(r) : void 0; +s.initializer = void 0; +} +if (void 0 === s.initializer) { +Object.defineProperty(t, e, s); +s = null; +} +return s; +} +var k = i("../renderer/index"), z = i("../platform/CCEnum"), G = i("../components/CCComponent"), U = i("../platform/CCClassDecorator"), j = U.ccclass, W = U.menu, H = U.inspector, q = U.property, X = U.executeInEditMode, Y = z({ +DIRECTIONAL: 0, +POINT: 1, +SPOT: 2 +}), J = z({ +NONE: 0, +HARD: 2 +}), Z = (s = j("cc.Light"), o = W("i18n:MAIN_MENU.component.renderers/Light"), a = H("packages://inspector/inspectors/comps/light.js"), +c = q({ +type: Y +}), l = q({ +type: J +}), s(h = o(h = X(h = a(h = (u = (E = T = (function(t) { +V(e, t); +M(e, [ { +key: "type", +get: function() { +return this._type; +}, +set: function(t) { +this._type = t; +var e = B.default.LIGHT_DIRECTIONAL; +this._type === Y.POINT ? e = B.default.LIGHT_POINT : this._type === Y.SPOT && (e = B.default.LIGHT_SPOT); +this._light.setType(e); +} +}, { +key: "color", +get: function() { +return this._color; +}, +set: function(t) { +this._color = t; +this._light.setColor(t.r / 255, t.g / 255, t.b / 255); +} +}, { +key: "intensity", +get: function() { +return this._intensity; +}, +set: function(t) { +this._intensity = t; +this._light.setIntensity(t); +} +}, { +key: "range", +get: function() { +return this._range; +}, +set: function(t) { +this._range = t; +this._light.setRange(t); +} +}, { +key: "spotAngle", +get: function() { +return this._spotAngle; +}, +set: function(t) { +this._spotAngle = t; +this._light.setSpotAngle((0, P.toRadian)(t)); +} +}, { +key: "spotExp", +get: function() { +return this._spotExp; +}, +set: function(t) { +this._spotExp = t; +this._light.setSpotExp(t); +} +}, { +key: "shadowType", +get: function() { +return this._shadowType; +}, +set: function(t) { +this._shadowType = t; +var e = B.default.SHADOW_NONE; +t === J.HARD ? e = B.default.SHADOW_HARD : t === J.SOFT && (e = B.default.SHADOW_SOFT); +this._light.setShadowType(e); +} +}, { +key: "shadowResolution", +get: function() { +return this._shadowResolution; +}, +set: function(t) { +this._shadowResolution = t; +this._light.setShadowResolution(t); +} +}, { +key: "shadowDarkness", +get: function() { +return this._shadowDarkness; +}, +set: function(t) { +this._shadowDarkness = t; +this._light.setShadowDarkness(t); +} +}, { +key: "shadowMinDepth", +get: function() { +return this._shadowMinDepth; +}, +set: function(t) { +this._shadowMinDepth = t; +this._light.setShadowMinDepth(t); +} +}, { +key: "shadowMaxDepth", +get: function() { +return this._shadowMaxDepth; +}, +set: function(t) { +this._shadowMaxDepth = t; +this._light.setShadowMaxDepth(t); +} +}, { +key: "shadowDepthScale", +get: function() { +return this._shadowDepthScale; +}, +set: function(t) { +this._shadowDepthScale = t; +this._light.setShadowDepthScale(t); +} +}, { +key: "shadowFrustumSize", +get: function() { +return this._shadowFrustumSize; +}, +set: function(t) { +this._shadowFrustumSize = t; +this._light.setShadowFrustumSize(t); +} +} ]); +function e() { +F(this, e); +var i = O(this, t.call(this)); +L(i, "_type", _, i); +L(i, "_color", f, i); +L(i, "_intensity", d, i); +L(i, "_range", m, i); +L(i, "_spotAngle", p, i); +L(i, "_spotExp", v, i); +L(i, "_shadowType", y, i); +L(i, "_shadowResolution", g, i); +L(i, "_shadowDarkness", x, i); +L(i, "_shadowMinDepth", C, i); +L(i, "_shadowMaxDepth", b, i); +L(i, "_shadowDepthScale", A, i); +L(i, "_shadowFrustumSize", S, i); +L(i, "_shadowBias", w, i); +i._light = new D.default(); +return i; +} +e.prototype.onLoad = function() { +this._light.setNode(this.node); +this.type = this._type; +this.color = this._color; +this.intensity = this._intensity; +this.range = this._range; +this.spotAngle = this._spotAngle; +this.spotExp = this._spotExp; +this.shadowType = this._shadowType; +this.shadowResolution = this._shadowResolution; +this.shadowDarkness = this._shadowDarkness; +this.shadowMaxDepth = this._shadowMaxDepth; +this.shadowDepthScale = this._shadowDepthScale; +this.shadowFrustumSize = this._shadowFrustumSize; +this.shadowBias = this._shadowBias; +}; +e.prototype.onEnable = function() { +k.scene.addLight(this._light); +}; +e.prototype.onDisable = function() { +k.scene.removeLight(this._light); +}; +return e; +})(G), T.Type = Y, T.ShadowType = J, E), _ = N(u.prototype, "_type", [ q ], { +enumerable: !0, +initializer: function() { +return Y.DIRECTIONAL; +} +}), f = N(u.prototype, "_color", [ q ], { +enumerable: !0, +initializer: function() { +return I.Color.WHITE; +} +}), d = N(u.prototype, "_intensity", [ q ], { +enumerable: !0, +initializer: function() { +return 1; +} +}), m = N(u.prototype, "_range", [ q ], { +enumerable: !0, +initializer: function() { +return 1; +} +}), p = N(u.prototype, "_spotAngle", [ q ], { +enumerable: !0, +initializer: function() { +return 60; +} +}), v = N(u.prototype, "_spotExp", [ q ], { +enumerable: !0, +initializer: function() { +return 1; +} +}), y = N(u.prototype, "_shadowType", [ q ], { +enumerable: !0, +initializer: function() { +return J.NONE; +} +}), g = N(u.prototype, "_shadowResolution", [ q ], { +enumerable: !0, +initializer: function() { +return 1024; +} +}), x = N(u.prototype, "_shadowDarkness", [ q ], { +enumerable: !0, +initializer: function() { +return .5; +} +}), C = N(u.prototype, "_shadowMinDepth", [ q ], { +enumerable: !0, +initializer: function() { +return 1; +} +}), b = N(u.prototype, "_shadowMaxDepth", [ q ], { +enumerable: !0, +initializer: function() { +return 4096; +} +}), A = N(u.prototype, "_shadowDepthScale", [ q ], { +enumerable: !0, +initializer: function() { +return 250; +} +}), S = N(u.prototype, "_shadowFrustumSize", [ q ], { +enumerable: !0, +initializer: function() { +return 1024; +} +}), w = N(u.prototype, "_shadowBias", [ q ], { +enumerable: !0, +initializer: function() { +return 5e-4; +} +}), N(u.prototype, "type", [ c ], Object.getOwnPropertyDescriptor(u.prototype, "type"), u.prototype), +N(u.prototype, "color", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "color"), u.prototype), +N(u.prototype, "intensity", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "intensity"), u.prototype), +N(u.prototype, "range", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "range"), u.prototype), +N(u.prototype, "spotAngle", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "spotAngle"), u.prototype), +N(u.prototype, "spotExp", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "spotExp"), u.prototype), +N(u.prototype, "shadowType", [ l ], Object.getOwnPropertyDescriptor(u.prototype, "shadowType"), u.prototype), +N(u.prototype, "shadowResolution", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "shadowResolution"), u.prototype), +N(u.prototype, "shadowDarkness", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "shadowDarkness"), u.prototype), +N(u.prototype, "shadowMinDepth", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "shadowMinDepth"), u.prototype), +N(u.prototype, "shadowMaxDepth", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "shadowMaxDepth"), u.prototype), +N(u.prototype, "shadowDepthScale", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "shadowDepthScale"), u.prototype), +N(u.prototype, "shadowFrustumSize", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "shadowFrustumSize"), u.prototype), +u)) || h) || h) || h) || h); +r.default = Z; +cc.Light = Z; +n.exports = r.default; +}), { +"../../renderer/enums": 344, +"../../renderer/scene/light": 372, +"../components/CCComponent": 95, +"../platform/CCClassDecorator": 202, +"../platform/CCEnum": 203, +"../renderer/index": 244, +"../value-types": 306, +"../vmath": 317 +} ], +27: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.Model", +extends: cc.Asset, +ctor: function() { +this._rootNode = null; +}, +properties: { +_nodes: { +default: [] +}, +_precomputeJointMatrix: !1, +nodes: { +get: function() { +return this._nodes; +} +}, +rootNode: { +get: function() { +return this._rootNode; +} +}, +precomputeJointMatrix: { +get: function() { +return this._precomputeJointMatrix; +} +} +}, +onLoad: function() { +var t = this._nodes; +this._rootNode = t[0]; +for (var e = 0; e < t.length; e++) { +var i = t[e]; +i.position = cc.v3.apply(this, i.position); +i.scale = cc.v3.apply(this, i.scale); +i.quat = cc.quat.apply(this, i.quat); +i.uniqueBindPose && (i.uniqueBindPose = cc.mat4.apply(this, i.uniqueBindPose)); +var n = i.bindpose; +if (n) for (var r in n) n[r] = cc.mat4.apply(this, n[r]); +var s = i.children; +if (s) for (var o = 0; o < s.length; o++) s[o] = t[s[o]]; +} +} +}); +cc.Model = e.exports = n; +}), {} ], +28: [ (function(t, e, i) { +"use strict"; +var n = cc.vmath.quat, r = cc.quat(), s = cc.v3(); +cc.Rotate3DTo = cc.Class({ +name: "cc.Rotate3DTo", +extends: cc.ActionInterval, +ctor: function(t, e, i, n) { +this._startQuat = cc.quat(); +this._dstQuat = cc.quat(); +void 0 !== e && this.initWithDuration(t, e, i, n); +}, +initWithDuration: function(t, e, i, n) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +var r = this._dstQuat; +if (e instanceof cc.Quat) r.set(e); else { +if (e instanceof cc.Vec3) { +i = e.y; +n = e.z; +e = e.x; +} else { +i = i || 0; +n = n || 0; +} +cc.vmath.quat.fromEuler(r, e, i, n); +} +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.Rotate3DTo(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._dstQuat); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._startQuat.set(t.quat); +}, +reverse: function() { +cc.logID(1016); +}, +update: function(t) { +t = this._computeEaseTime(t); +if (this.target) { +n.slerp(r, this._startQuat, this._dstQuat, t); +this.target.setRotation(r); +} +} +}); +cc.rotate3DTo = function(t, e, i, n) { +return new cc.Rotate3DTo(t, e, i, n); +}; +cc.Rotate3DBy = cc.Class({ +name: "cc.Rotate3DBy", +extends: cc.ActionInterval, +ctor: function(t, e, i, n) { +this._angle = cc.v3(); +this._quat = cc.quat(); +this._lastDt = 0; +void 0 !== e && this.initWithDuration(t, e, i, n); +}, +initWithDuration: function(t, e, i, n) { +if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { +if (e instanceof cc.Vec3) { +i = e.y; +n = e.z; +e = e.x; +} else { +i = i || 0; +n = n || 0; +} +cc.vmath.vec3.set(this._angle, e, i, n); +return !0; +} +return !1; +}, +clone: function() { +var t = new cc.Rotate3DBy(); +this._cloneDecoration(t); +t.initWithDuration(this._duration, this._angle); +return t; +}, +startWithTarget: function(t) { +cc.ActionInterval.prototype.startWithTarget.call(this, t); +this._quat.set(t.quat); +this._lastDt = 0; +}, +update: (function() { +var t = Math.PI / 180; +return function(e) { +e = this._computeEaseTime(e); +if (this.target) { +var i = this._angle, r = this._quat, s = e - this._lastDt, o = i.x, a = i.y, c = i.z; +o && n.rotateX(r, r, o * t * s); +a && n.rotateY(r, r, a * t * s); +c && n.rotateZ(r, r, c * t * s); +this.target.setRotation(r); +this._lastDt = e; +} +}; +})(), +reverse: function() { +var t = this._angle; +s.x = -t.x; +s.y = -t.y; +s.z = -t.z; +var e = new cc.Rotate3DBy(this._duration, s); +this._cloneDecoration(e); +this._reverseEaseList(e); +return e; +} +}); +cc.rotate3DBy = function(t, e, i, n) { +return new cc.Rotate3DBy(t, e, i, n); +}; +}), {} ], +29: [ (function(t, e, i) { +"use strict"; +t("./polyfill-3d"); +t("./primitive"); +t("./CCModel"); +t("./skeleton/CCSkeleton"); +t("./skeleton/CCSkeletonAnimationClip"); +t("./actions"); +t("./skeleton/CCSkeletonAnimation"); +t("./skeleton/CCSkinnedMeshRenderer"); +t("./skeleton/skinned-mesh-renderer"); +t("./CCLightComponent"); +}), { +"./CCLightComponent": 26, +"./CCModel": 27, +"./actions": 28, +"./polyfill-3d": 30, +"./primitive": 35, +"./skeleton/CCSkeleton": 44, +"./skeleton/CCSkeletonAnimation": 45, +"./skeleton/CCSkeletonAnimationClip": 46, +"./skeleton/CCSkinnedMeshRenderer": 47, +"./skeleton/skinned-mesh-renderer": 48 +} ], +30: [ (function(i, n, r) { +"use strict"; +var s = i("../vmath"), o = i("../CCNode"), a = o.EventType, c = o._LocalDirtyFlag, l = i("../renderer/render-flow"), h = Math.PI / 180, u = 1, _ = 2; +function f() { +if (this._localMatDirty) { +var t = this._matrix; +s.mat4.fromRTS(t, this._quat, this._position, this._scale); +if (this._skewX || this._skewY) { +var e = t.m00, i = t.m01, n = t.m04, r = t.m05, o = Math.tan(this._skewX * h), a = Math.tan(this._skewY * h); +Infinity === o && (o = 99999999); +Infinity === a && (a = 99999999); +t.m00 = e + n * a; +t.m01 = i + r * a; +t.m04 = n + e * o; +t.m05 = r + i * o; +} +this._localMatDirty = 0; +this._worldMatDirty = !0; +} +} +function d() { +this._localMatDirty && this._updateLocalMatrix(); +if (this._parent) { +var t = this._parent._worldMatrix; +s.mat4.mul(this._worldMatrix, t, this._matrix); +} else s.mat4.copy(this._worldMatrix, this._matrix); +this._worldMatDirty = !1; +} +function m(t, e, i) { +var n = void 0; +if (void 0 === e) { +n = t.x; +e = t.y; +i = t.z || 0; +} else { +n = t; +i = i || 0; +} +var r = this._position; +if (r.x !== n || r.y !== e || r.z !== i) { +r.x = n; +r.y = e; +r.z = i; +this.setLocalDirty(c.POSITION); +this._renderFlag |= l.FLAG_WORLD_TRANSFORM; +this._eventMask & u && this.emit(a.POSITION_CHANGED); +} +} +var p = cc.Node.prototype, v = p._updateLocalMatrix, y = p._calculWorldMatrix, g = p._upgrade_1x_to_2x, x = p._mulMat; +p.setPosition = m; +p.setScale = function(i, n, r) { +if (i && "number" !== ("object" == (e = typeof i) ? t(i) : e)) { +n = i.y; +r = i.z || 1; +i = i.x; +} else if (void 0 !== i && void 0 === n) { +n = i; +r = i; +} else void 0 === r && (r = 1); +if (this._scale.x !== i || this._scale.y !== n || this._scale.z !== r) { +this._scale.x = i; +this._scale.y = n; +this._scale.z = r; +this.setLocalDirty(c.SCALE); +this._renderFlag |= l.FLAG_TRANSFORM; +this._eventMask & _ && this.emit(a.SCALE_CHANGED); +} +}; +p._upgrade_1x_to_2x = function() { +this._is3DNode && this._update3DFunction(); +g.call(this); +}; +p._update3DFunction = function() { +if (this._is3DNode) { +this._updateLocalMatrix = f; +this._calculWorldMatrix = d; +this._mulMat = s.mat4.mul; +} else { +this._updateLocalMatrix = v; +this._calculWorldMatrix = y; +this._mulMat = x; +} +this._renderComponent && this._renderComponent._on3DNodeChanged && this._renderComponent._on3DNodeChanged(); +this._renderFlag |= l.FLAG_TRANSFORM; +this._localMatDirty = c.ALL; +}; +cc.js.getset(p, "position", p.getPosition, m, !1, !0); +cc.js.getset(p, "is3DNode", (function() { +return this._is3DNode; +}), (function(t) { +if (this._is3DNode !== t) { +this._is3DNode = t; +this._update3DFunction(); +} +})); +cc.js.getset(p, "scaleZ", (function() { +return this._scale.z; +}), (function(t) { +if (this._scale.z !== t) { +this._scale.z = t; +this.setLocalDirty(c.SCALE); +this._renderFlag |= l.FLAG_TRANSFORM; +this._eventMask & _ && this.emit(a.SCALE_CHANGED); +} +})); +cc.js.getset(p, "z", (function() { +return this._position.z; +}), (function(t) { +var e = this._position; +if (t !== e.z) { +e.z = t; +this.setLocalDirty(c.POSITION); +this._renderFlag |= l.FLAG_WORLD_TRANSFORM; +this._eventMask & u && this.emit(a.POSITION_CHANGED); +} +})); +cc.js.getset(p, "eulerAngles", (function() { +return this._quat.toEuler(this._eulerAngles); +}), (function(t) { +0; +this._quat.fromEuler(t); +this.setLocalDirty(c.ROTATION); +this._renderFlag |= l.FLAG_TRANSFORM; +})); +cc.js.getset(p, "quat", (function() { +return this._quat; +}), p.setRotation); +}), { +"../CCNode": 52, +"../renderer/render-flow": 245, +"../vmath": 317 +} ], +31: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, v = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, y = void 0 !== v.widthSegments ? v.widthSegments : 1, g = void 0 !== v.heightSegments ? v.heightSegments : 1, x = void 0 !== v.lengthSegments ? v.lengthSegments : 1, C = void 0 !== v.invWinding && v.invWinding, b = .5 * t, A = .5 * e, S = .5 * i, w = [ n.vec3.set(l, -b, -A, S), n.vec3.set(h, b, -A, S), n.vec3.set(u, b, A, S), n.vec3.set(_, -b, A, S), n.vec3.set(f, b, -A, -S), n.vec3.set(d, -b, -A, -S), n.vec3.set(m, -b, A, -S), n.vec3.set(p, b, A, -S) ], T = [ [ 2, 3, 1 ], [ 4, 5, 7 ], [ 7, 6, 2 ], [ 1, 0, 4 ], [ 1, 4, 2 ], [ 5, 0, 6 ] ], E = [ [ 0, 0, 1 ], [ 0, 0, -1 ], [ 0, 1, 0 ], [ 0, -1, 0 ], [ 1, 0, 0 ], [ -1, 0, 0 ] ], M = [], B = [], D = [], I = [], P = n.vec3.create(-b, -A, -S), R = n.vec3.create(b, A, S), L = Math.sqrt(b * b + A * A + S * S); +function F(t, e, i) { +var r = void 0, l = void 0, h = void 0, u = void 0, _ = M.length / 3, f = T[t], d = E[t]; +for (u = 0; u <= i; u++) for (h = 0; h <= e; h++) { +r = h / e; +l = u / i; +n.vec3.lerp(s, w[f[0]], w[f[1]], r); +n.vec3.lerp(o, w[f[0]], w[f[2]], l); +n.vec3.sub(a, o, w[f[0]]); +n.vec3.add(c, s, a); +M.push(c.x, c.y, c.z); +B.push(d[0], d[1], d[2]); +D.push(r, l); +if (h < e && u < i) { +var m = e + 1, p = h + u * m, v = h + (u + 1) * m, y = h + 1 + (u + 1) * m, g = h + 1 + u * m; +if (C) { +I.push(_ + p, _ + v, _ + g); +I.push(_ + g, _ + v, _ + y); +} else { +I.push(_ + p, _ + g, _ + v); +I.push(_ + v, _ + g, _ + y); +} +} +} +} +F(0, y, g); +F(4, x, g); +F(1, y, g); +F(5, x, g); +F(3, y, x); +F(2, y, x); +return new r.default(M, B, D, I, P, R, L); +}; +var n = t("../../vmath"), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./vertex-data")); +var s = n.vec3.create(0, 0, 0), o = n.vec3.create(0, 0, 0), a = n.vec3.create(0, 0, 0), c = n.vec3.create(0, 0, 0), l = n.vec3.create(0, 0, 0), h = n.vec3.create(0, 0, 0), u = n.vec3.create(0, 0, 0), _ = n.vec3.create(0, 0, 0), f = n.vec3.create(0, 0, 0), d = n.vec3.create(0, 0, 0), m = n.vec3.create(0, 0, 0), p = n.vec3.create(0, 0, 0); +e.exports = i.default; +}), { +"../../vmath": 317, +"./vertex-data": 42 +} ], +32: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .5, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : .5, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 2, a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, c = i - t - e, l = a.sides || 32, h = a.heightSegments || 32, u = e / i, _ = c / i, f = t / i, d = Math.floor(h * u), m = Math.floor(h * f), p = Math.floor(h * _), v = c + e - i / 2, y = e - i / 2, g = e - i / 2, x = a.arc || 2 * Math.PI, C = [], b = [], A = [], S = [], w = Math.max(t, e), T = n.vec3.create(-w, -i / 2, -w), E = n.vec3.create(w, i / 2, w), M = i / 2, B = 0, D = []; +(function() { +for (var t = 0; t <= d; ++t) for (var i = t * Math.PI / d / 2, n = Math.sin(i), r = -Math.cos(i), s = 0; s <= l; ++s) { +var o = 2 * s * Math.PI / l - Math.PI / 2, a = Math.sin(o), c = Math.cos(o), u = a * n, _ = r, f = c * n, m = s / l, p = t / h; +C.push(u * e, _ * e + g, f * e); +b.push(u, _, f); +A.push(m, p); +if (t < d && s < l) { +var v = l + 1, y = v * t + s, x = v * (t + 1) + s, w = v * (t + 1) + s + 1, T = v * t + s + 1; +S.push(y, T, x); +S.push(T, w, x); +} +++B; +} +})(); +(function() { +for (var i = (t - e) / c, r = 0; r <= p; r++) { +for (var a = [], h = r / p, f = h * (t - e) + e, d = 0; d <= l; ++d) { +var m = d / l, v = h * _ + u, g = m * x - x / 4, w = Math.sin(g), T = Math.cos(g); +C.push(f * w); +C.push(h * c + y); +C.push(f * T); +n.vec3.normalize(s, n.vec3.set(o, w, -i, T)); +b.push(s.x); +b.push(s.y); +b.push(s.z); +A.push(m, v); +a.push(B); +++B; +} +D.push(a); +} +for (var E = 0; E < p; ++E) for (var M = 0; M < l; ++M) { +var I = D[E][M], P = D[E + 1][M], R = D[E + 1][M + 1], L = D[E][M + 1]; +S.push(I); +S.push(L); +S.push(P); +S.push(L); +S.push(R); +S.push(P); +} +})(); +(function() { +for (var e = 0; e <= m; ++e) for (var i = e * Math.PI / m / 2 + Math.PI / 2, n = Math.sin(i), r = -Math.cos(i), s = 0; s <= l; ++s) { +var o = 2 * s * Math.PI / l - Math.PI / 2, a = Math.sin(o), c = Math.cos(o), u = a * n, _ = r, d = c * n, y = s / l, g = e / h + (1 - f); +C.push(u * t, _ * t + v, d * t); +b.push(u, _, d); +A.push(y, g); +if (e < m && s < l) { +var x = l + 1, w = x * e + s + D[p][l] + 1, T = x * (e + 1) + s + D[p][l] + 1, E = x * (e + 1) + s + 1 + D[p][l] + 1, M = x * e + s + 1 + D[p][l] + 1; +S.push(w, M, T); +S.push(M, E, T); +} +} +})(); +return new r.default(C, b, A, S, T, E, M); +}; +var n = t("../../vmath"), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./vertex-data")); +var s = n.vec3.create(0, 0, 0), o = n.vec3.create(0, 0, 0); +e.exports = i.default; +}), { +"../../vmath": 317, +"./vertex-data": 42 +} ], +33: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .5, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; +return (0, n.default)(0, t, e, i); +}; +var n = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./cylinder")); +e.exports = i.default; +}), { +"./cylinder": 34 +} ], +34: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .5, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : .5, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 2, a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, c = .5 * i, l = a.radialSegments || 32, h = a.heightSegments || 1, u = void 0 === a.capped || a.capped, _ = a.arc || 2 * Math.PI, f = 0; +if (!u) { +t > 0 && f++; +e > 0 && f++; +} +var d = (l + 1) * (h + 1); +u && (d += (l + 1) * f + l * f); +var m = l * h * 2 * 3; +u && (m += l * f * 3); +var p = new Array(m), v = new Array(3 * d), y = new Array(3 * d), g = new Array(2 * d), x = Math.max(t, e), C = n.vec3.create(-x, -c, -x), b = n.vec3.create(x, c, x), A = Math.sqrt(x * x + c * c), S = 0, w = 0; +(function() { +for (var r = [], a = t - e, u = a * a / i * Math.sign(a), f = 0; f <= h; f++) { +for (var d = [], m = f / h, x = m * a + e, C = 0; C <= l; ++C) { +var b = C / l, A = b * _, T = Math.sin(A), E = Math.cos(A); +v[3 * S] = x * T; +v[3 * S + 1] = m * i - c; +v[3 * S + 2] = x * E; +n.vec3.normalize(s, n.vec3.set(o, T, -u, E)); +y[3 * S] = s.x; +y[3 * S + 1] = s.y; +y[3 * S + 2] = s.z; +g[2 * S] = 2 * (1 - b) % 1; +g[2 * S + 1] = m; +d.push(S); +++S; +} +r.push(d); +} +for (var M = 0; M < h; ++M) for (var B = 0; B < l; ++B) { +var D = r[M][B], I = r[M + 1][B], P = r[M + 1][B + 1], R = r[M][B + 1]; +p[w] = D; +p[++w] = R; +p[++w] = I; +p[++w] = R; +p[++w] = P; +p[++w] = I; +++w; +} +})(); +if (u) { +e > 0 && T(!1); +t > 0 && T(!0); +} +return new r.default(v, y, g, p, C, b, A); +function T(i) { +var n, r, s = i ? t : e, o = i ? 1 : -1; +n = S; +for (var a = 1; a <= l; ++a) { +v[3 * S] = 0; +v[3 * S + 1] = c * o; +v[3 * S + 2] = 0; +y[3 * S] = 0; +y[3 * S + 1] = o; +y[3 * S + 2] = 0; +g[2 * S] = .5; +g[2 * S + 1] = .5; +++S; +} +r = S; +for (var h = 0; h <= l; ++h) { +var u = h / l * _, f = Math.cos(u), d = Math.sin(u); +v[3 * S] = s * d; +v[3 * S + 1] = c * o; +v[3 * S + 2] = s * f; +y[3 * S] = 0; +y[3 * S + 1] = o; +y[3 * S + 2] = 0; +g[2 * S] = .5 - .5 * d * o; +g[2 * S + 1] = .5 + .5 * f; +++S; +} +for (var m = 0; m < l; ++m) { +var x = n + m, C = r + m; +if (i) { +p[w] = C + 1; +p[++w] = x; +p[++w] = C; +++w; +} else { +p[w] = x; +p[++w] = C + 1; +p[++w] = C; +++w; +} +} +} +}; +var n = t("../../vmath"), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./vertex-data")); +var s = n.vec3.create(0, 0, 0), o = n.vec3.create(0, 0, 0); +e.exports = i.default; +}), { +"../../vmath": 317, +"./vertex-data": 42 +} ], +35: [ (function(t, e, i) { +"use strict"; +var n = d(t("./utils")), r = d(t("./box")), s = d(t("./cone")), o = d(t("./cylinder")), a = d(t("./plane")), c = d(t("./quad")), l = d(t("./sphere")), h = d(t("./torus")), u = d(t("./capsule")), _ = t("./polyhedron"), f = d(t("./vertex-data")); +function d(t) { +return t && t.__esModule ? t : { +default: t +}; +} +cc.primitive = Object.assign({ +box: r.default, +cone: s.default, +cylinder: o.default, +plane: a.default, +quad: c.default, +sphere: l.default, +torus: h.default, +capsule: u.default, +polyhedron: _.polyhedron, +PolyhedronType: _.PolyhedronType, +VertexData: f.default +}, n.default); +}), { +"./box": 31, +"./capsule": 32, +"./cone": 33, +"./cylinder": 34, +"./plane": 36, +"./polyhedron": 37, +"./quad": 38, +"./sphere": 39, +"./torus": 40, +"./utils": 41, +"./vertex-data": 42 +} ], +36: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 10, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 10, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, _ = void 0 !== i.widthSegments ? i.widthSegments : 10, f = void 0 !== i.lengthSegments ? i.lengthSegments : 10, d = .5 * t, m = .5 * e, p = [], v = [], y = [], g = [], x = n.vec3.create(-d, 0, -m), C = n.vec3.create(d, 0, m), b = Math.sqrt(t * t + e * e); +n.vec3.set(l, -d, 0, m); +n.vec3.set(h, d, 0, m); +n.vec3.set(u, -d, 0, -m); +for (var A = 0; A <= f; A++) for (var S = 0; S <= _; S++) { +var w = S / _, T = A / f; +n.vec3.lerp(s, l, h, w); +n.vec3.lerp(o, l, u, T); +n.vec3.sub(a, o, l); +n.vec3.add(c, s, a); +p.push(c.x, c.y, c.z); +v.push(0, 1, 0); +y.push(w, T); +if (S < _ && A < f) { +var E = _ + 1, M = S + A * E, B = S + (A + 1) * E, D = S + 1 + (A + 1) * E, I = S + 1 + A * E; +g.push(M, I, B); +g.push(I, D, B); +} +} +return new r.default(p, v, y, g, x, C, b); +}; +var n = t("../../vmath"), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./vertex-data")); +var s = n.vec3.create(0, 0, 0), o = n.vec3.create(0, 0, 0), a = n.vec3.create(0, 0, 0), c = n.vec3.create(0, 0, 0), l = n.vec3.create(0, 0, 0), h = n.vec3.create(0, 0, 0), u = n.vec3.create(0, 0, 0); +e.exports = i.default; +}), { +"../../vmath": 317, +"./vertex-data": 42 +} ], +37: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.polyhedron = i.PolyhedronType = void 0; +var n = t("./utils"), r = t("../../vmath"), s = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./vertex-data")); +i.PolyhedronType = cc.Enum({ +Tetrahedron: 0, +Octahedron: 1, +Dodecahedron: 2, +Icosahedron: 3, +Rhombicuboctahedron: 4, +TriangularPrism: 5, +PentagonalPrism: 6, +HexagonalPrism: 7, +SquarePyramid: 8, +PentagonalPyramid: 9, +TriangularDipyramid: 10, +PentagonalDipyramid: 11, +ElongatedSquareDipyramid: 12, +ElongatedPentagonalDipyramid: 13, +ElongatedPentagonalCupola: 14 +}); +var o = []; +o[0] = { +vertex: [ [ 0, 0, 1.732051 ], [ 1.632993, 0, -.5773503 ], [ -.8164966, 1.414214, -.5773503 ], [ -.8164966, -1.414214, -.5773503 ] ], +face: [ [ 0, 1, 2 ], [ 0, 2, 3 ], [ 0, 3, 1 ], [ 1, 3, 2 ] ] +}; +o[1] = { +vertex: [ [ 0, 0, 1.414214 ], [ 1.414214, 0, 0 ], [ 0, 1.414214, 0 ], [ -1.414214, 0, 0 ], [ 0, -1.414214, 0 ], [ 0, 0, -1.414214 ] ], +face: [ [ 0, 1, 2 ], [ 0, 2, 3 ], [ 0, 3, 4 ], [ 0, 4, 1 ], [ 1, 4, 5 ], [ 1, 5, 2 ], [ 2, 5, 3 ], [ 3, 5, 4 ] ] +}; +o[2] = { +vertex: [ [ 0, 0, 1.070466 ], [ .7136442, 0, .7978784 ], [ -.3568221, .618034, .7978784 ], [ -.3568221, -.618034, .7978784 ], [ .7978784, .618034, .3568221 ], [ .7978784, -.618034, .3568221 ], [ -.9341724, .381966, .3568221 ], [ .1362939, 1, .3568221 ], [ .1362939, -1, .3568221 ], [ -.9341724, -.381966, .3568221 ], [ .9341724, .381966, -.3568221 ], [ .9341724, -.381966, -.3568221 ], [ -.7978784, .618034, -.3568221 ], [ -.1362939, 1, -.3568221 ], [ -.1362939, -1, -.3568221 ], [ -.7978784, -.618034, -.3568221 ], [ .3568221, .618034, -.7978784 ], [ .3568221, -.618034, -.7978784 ], [ -.7136442, 0, -.7978784 ], [ 0, 0, -1.070466 ] ], +face: [ [ 0, 1, 4, 7, 2 ], [ 0, 2, 6, 9, 3 ], [ 0, 3, 8, 5, 1 ], [ 1, 5, 11, 10, 4 ], [ 2, 7, 13, 12, 6 ], [ 3, 9, 15, 14, 8 ], [ 4, 10, 16, 13, 7 ], [ 5, 8, 14, 17, 11 ], [ 6, 12, 18, 15, 9 ], [ 10, 11, 17, 19, 16 ], [ 12, 13, 16, 19, 18 ], [ 14, 15, 18, 19, 17 ] ] +}; +o[3] = { +vertex: [ [ 0, 0, 1.175571 ], [ 1.051462, 0, .5257311 ], [ .3249197, 1, .5257311 ], [ -.8506508, .618034, .5257311 ], [ -.8506508, -.618034, .5257311 ], [ .3249197, -1, .5257311 ], [ .8506508, .618034, -.5257311 ], [ .8506508, -.618034, -.5257311 ], [ -.3249197, 1, -.5257311 ], [ -1.051462, 0, -.5257311 ], [ -.3249197, -1, -.5257311 ], [ 0, 0, -1.175571 ] ], +face: [ [ 0, 1, 2 ], [ 0, 2, 3 ], [ 0, 3, 4 ], [ 0, 4, 5 ], [ 0, 5, 1 ], [ 1, 5, 7 ], [ 1, 7, 6 ], [ 1, 6, 2 ], [ 2, 6, 8 ], [ 2, 8, 3 ], [ 3, 8, 9 ], [ 3, 9, 4 ], [ 4, 9, 10 ], [ 4, 10, 5 ], [ 5, 10, 7 ], [ 6, 7, 11 ], [ 6, 11, 8 ], [ 7, 10, 11 ], [ 8, 11, 9 ], [ 9, 11, 10 ] ] +}; +o[4] = { +vertex: [ [ 0, 0, 1.070722 ], [ .7148135, 0, .7971752 ], [ -.104682, .7071068, .7971752 ], [ -.6841528, .2071068, .7971752 ], [ -.104682, -.7071068, .7971752 ], [ .6101315, .7071068, .5236279 ], [ 1.04156, .2071068, .1367736 ], [ .6101315, -.7071068, .5236279 ], [ -.3574067, 1, .1367736 ], [ -.7888348, -.5, .5236279 ], [ -.9368776, .5, .1367736 ], [ -.3574067, -1, .1367736 ], [ .3574067, 1, -.1367736 ], [ .9368776, -.5, -.1367736 ], [ .7888348, .5, -.5236279 ], [ .3574067, -1, -.1367736 ], [ -.6101315, .7071068, -.5236279 ], [ -1.04156, -.2071068, -.1367736 ], [ -.6101315, -.7071068, -.5236279 ], [ .104682, .7071068, -.7971752 ], [ .6841528, -.2071068, -.7971752 ], [ .104682, -.7071068, -.7971752 ], [ -.7148135, 0, -.7971752 ], [ 0, 0, -1.070722 ] ], +face: [ [ 0, 2, 3 ], [ 1, 6, 5 ], [ 4, 9, 11 ], [ 7, 15, 13 ], [ 8, 16, 10 ], [ 12, 14, 19 ], [ 17, 22, 18 ], [ 20, 21, 23 ], [ 0, 1, 5, 2 ], [ 0, 3, 9, 4 ], [ 0, 4, 7, 1 ], [ 1, 7, 13, 6 ], [ 2, 5, 12, 8 ], [ 2, 8, 10, 3 ], [ 3, 10, 17, 9 ], [ 4, 11, 15, 7 ], [ 5, 6, 14, 12 ], [ 6, 13, 20, 14 ], [ 8, 12, 19, 16 ], [ 9, 17, 18, 11 ], [ 10, 16, 22, 17 ], [ 11, 18, 21, 15 ], [ 13, 15, 21, 20 ], [ 14, 20, 23, 19 ], [ 16, 19, 23, 22 ], [ 18, 22, 23, 21 ] ] +}; +o[5] = { +vertex: [ [ 0, 0, 1.322876 ], [ 1.309307, 0, .1889822 ], [ -.9819805, .8660254, .1889822 ], [ .1636634, -1.299038, .1889822 ], [ .3273268, .8660254, -.9449112 ], [ -.8183171, -.4330127, -.9449112 ] ], +face: [ [ 0, 3, 1 ], [ 2, 4, 5 ], [ 0, 1, 4, 2 ], [ 0, 2, 5, 3 ], [ 1, 3, 5, 4 ] ] +}; +o[6] = { +vertex: [ [ 0, 0, 1.159953 ], [ 1.013464, 0, .5642542 ], [ -.3501431, .9510565, .5642542 ], [ -.7715208, -.6571639, .5642542 ], [ .6633206, .9510565, -.03144481 ], [ .8682979, -.6571639, -.3996071 ], [ -1.121664, .2938926, -.03144481 ], [ -.2348831, -1.063314, -.3996071 ], [ .5181548, .2938926, -.9953061 ], [ -.5850262, -.112257, -.9953061 ] ], +face: [ [ 0, 1, 4, 2 ], [ 0, 2, 6, 3 ], [ 1, 5, 8, 4 ], [ 3, 6, 9, 7 ], [ 5, 7, 9, 8 ], [ 0, 3, 7, 5, 1 ], [ 2, 4, 8, 9, 6 ] ] +}; +o[7] = { +vertex: [ [ 0, 0, 1.118034 ], [ .8944272, 0, .6708204 ], [ -.2236068, .8660254, .6708204 ], [ -.7826238, -.4330127, .6708204 ], [ .6708204, .8660254, .2236068 ], [ 1.006231, -.4330127, -.2236068 ], [ -1.006231, .4330127, .2236068 ], [ -.6708204, -.8660254, -.2236068 ], [ .7826238, .4330127, -.6708204 ], [ .2236068, -.8660254, -.6708204 ], [ -.8944272, 0, -.6708204 ], [ 0, 0, -1.118034 ] ], +face: [ [ 0, 1, 4, 2 ], [ 0, 2, 6, 3 ], [ 1, 5, 8, 4 ], [ 3, 6, 10, 7 ], [ 5, 9, 11, 8 ], [ 7, 10, 11, 9 ], [ 0, 3, 7, 9, 5, 1 ], [ 2, 4, 8, 11, 10, 6 ] ] +}; +o[8] = { +vertex: [ [ -.729665, .670121, .319155 ], [ -.655235, -.29213, -.754096 ], [ -.093922, -.607123, .537818 ], [ .702196, .595691, .485187 ], [ .776626, -.36656, -.588064 ] ], +face: [ [ 1, 4, 2 ], [ 0, 1, 2 ], [ 3, 0, 2 ], [ 4, 3, 2 ], [ 4, 1, 0, 3 ] ] +}; +o[9] = { +vertex: [ [ -.868849, -.100041, .61257 ], [ -.329458, .976099, .28078 ], [ -.26629, -.013796, -.477654 ], [ -.13392, -1.034115, .229829 ], [ .738834, .707117, -.307018 ], [ .859683, -.535264, -.338508 ] ], +face: [ [ 3, 0, 2 ], [ 5, 3, 2 ], [ 4, 5, 2 ], [ 1, 4, 2 ], [ 0, 1, 2 ], [ 0, 3, 5, 4, 1 ] ] +}; +o[10] = { +vertex: [ [ -.610389, .243975, .531213 ], [ -.187812, -.48795, -.664016 ], [ -.187812, .9759, -.664016 ], [ .187812, -.9759, .664016 ], [ .798201, .243975, .132803 ] ], +face: [ [ 1, 3, 0 ], [ 3, 4, 0 ], [ 3, 1, 4 ], [ 0, 2, 1 ], [ 0, 4, 2 ], [ 2, 4, 1 ] ] +}; +o[11] = { +vertex: [ [ -1.028778, .392027, -.048786 ], [ -.640503, -.646161, .621837 ], [ -.125162, -.395663, -.540059 ], [ .004683, .888447, -.651988 ], [ .125161, .395663, .540059 ], [ .632925, -.791376, .433102 ], [ 1.031672, .157063, -.354165 ] ], +face: [ [ 3, 2, 0 ], [ 2, 1, 0 ], [ 2, 5, 1 ], [ 0, 4, 3 ], [ 0, 1, 4 ], [ 4, 1, 5 ], [ 2, 3, 6 ], [ 3, 4, 6 ], [ 5, 2, 6 ], [ 4, 5, 6 ] ] +}; +o[12] = { +vertex: [ [ -.669867, .334933, -.529576 ], [ -.669867, .334933, .529577 ], [ -.4043, 1.212901, 0 ], [ -.334933, -.669867, -.529576 ], [ -.334933, -.669867, .529577 ], [ .334933, .669867, -.529576 ], [ .334933, .669867, .529577 ], [ .4043, -1.212901, 0 ], [ .669867, -.334933, -.529576 ], [ .669867, -.334933, .529577 ] ], +face: [ [ 8, 9, 7 ], [ 6, 5, 2 ], [ 3, 8, 7 ], [ 5, 0, 2 ], [ 4, 3, 7 ], [ 0, 1, 2 ], [ 9, 4, 7 ], [ 1, 6, 2 ], [ 9, 8, 5, 6 ], [ 8, 3, 0, 5 ], [ 3, 4, 1, 0 ], [ 4, 9, 6, 1 ] ] +}; +o[13] = { +vertex: [ [ -.931836, .219976, -.264632 ], [ -.636706, .318353, .692816 ], [ -.613483, -.735083, -.264632 ], [ -.326545, .979634, 0 ], [ -.318353, -.636706, .692816 ], [ -.159176, .477529, -.856368 ], [ .159176, -.477529, -.856368 ], [ .318353, .636706, .692816 ], [ .326545, -.979634, 0 ], [ .613482, .735082, -.264632 ], [ .636706, -.318353, .692816 ], [ .931835, -.219977, -.264632 ] ], +face: [ [ 11, 10, 8 ], [ 7, 9, 3 ], [ 6, 11, 8 ], [ 9, 5, 3 ], [ 2, 6, 8 ], [ 5, 0, 3 ], [ 4, 2, 8 ], [ 0, 1, 3 ], [ 10, 4, 8 ], [ 1, 7, 3 ], [ 10, 11, 9, 7 ], [ 11, 6, 5, 9 ], [ 6, 2, 0, 5 ], [ 2, 4, 1, 0 ], [ 4, 10, 7, 1 ] ] +}; +o[14] = { +vertex: [ [ -.93465, .300459, -.271185 ], [ -.838689, -.260219, -.516017 ], [ -.711319, .717591, .128359 ], [ -.710334, -.156922, .080946 ], [ -.599799, .556003, -.725148 ], [ -.503838, -.004675, -.969981 ], [ -.487004, .26021, .48049 ], [ -.460089, -.750282, -.512622 ], [ -.376468, .973135, -.325605 ], [ -.331735, -.646985, .084342 ], [ -.254001, .831847, .530001 ], [ -.125239, -.494738, -.966586 ], [ .029622, .027949, .730817 ], [ .056536, -.982543, -.262295 ], [ .08085, 1.087391, .076037 ], [ .125583, -.532729, .485984 ], [ .262625, .599586, .780328 ], [ .391387, -.726999, -.716259 ], [ .513854, -.868287, .139347 ], [ .597475, .85513, .326364 ], [ .641224, .109523, .783723 ], [ .737185, -.451155, .538891 ], [ .848705, -.612742, -.314616 ], [ .976075, .365067, .32976 ], [ 1.072036, -.19561, .084927 ] ], +face: [ [ 15, 18, 21 ], [ 12, 20, 16 ], [ 6, 10, 2 ], [ 3, 0, 1 ], [ 9, 7, 13 ], [ 2, 8, 4, 0 ], [ 0, 4, 5, 1 ], [ 1, 5, 11, 7 ], [ 7, 11, 17, 13 ], [ 13, 17, 22, 18 ], [ 18, 22, 24, 21 ], [ 21, 24, 23, 20 ], [ 20, 23, 19, 16 ], [ 16, 19, 14, 10 ], [ 10, 14, 8, 2 ], [ 15, 9, 13, 18 ], [ 12, 15, 21, 20 ], [ 6, 12, 16, 10 ], [ 3, 6, 2, 0 ], [ 9, 3, 1, 7 ], [ 9, 15, 12, 6, 3 ], [ 22, 17, 11, 5, 4, 8, 14, 19, 23, 24 ] ] +}; +i.polyhedron = function(t) { +var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; +t = t && (t < 0 || t >= o.length) ? 0 : t || 0; +for (var a = i.sizeX || e, c = i.sizeY || e, l = i.sizeZ || e, h = o[t], u = h.face.length, _ = [], f = [], d = [], m = [], p = r.vec3.create(Infinity, Infinity, Infinity), v = r.vec3.create(-Infinity, -Infinity, -Infinity), y = 0; y < h.vertex.length; y++) { +var g = h.vertex[y][0] * a, x = h.vertex[y][1] * c, C = h.vertex[y][2] * l; +p.x = Math.min(p.x, g); +p.y = Math.min(p.y, x); +p.z = Math.min(p.z, C); +v.x = Math.max(v.x, g); +v.y = Math.max(v.y, x); +v.z = Math.max(v.z, C); +_.push(g, x, C); +m.push(0, 0); +} +for (var b = 0; b < u; b++) for (var A = 0; A < h.face[b].length - 2; A++) f.push(h.face[b][0], h.face[b][A + 2], h.face[b][A + 1]); +(0, n.calcNormals)(_, f, d); +var S = Math.sqrt(Math.pow(v.x - p.x, 2), Math.pow(v.y - p.y, 2), Math.pow(v.z - p.z, 2)); +return new s.default(_, d, m, f, p, v, S); +}; +}), { +"../../vmath": 317, +"./utils": 41, +"./vertex-data": 42 +} ], +38: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = function() { +return new r.default(s, c, o, a, l, h, u); +}; +var n = t("../../vmath"), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./vertex-data")); +var s = [ -.5, -.5, 0, -.5, .5, 0, .5, .5, 0, .5, -.5, 0 ], o = [ 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1 ], a = [ 0, 0, 0, 1, 1, 1, 1, 0 ], c = [ 0, 3, 1, 3, 2, 1 ], l = n.vec3.create(-.5, -.5, 0), h = n.vec3.create(.5, .5, 0), u = Math.sqrt(.5); +e.exports = i.default; +}), { +"../../vmath": 317, +"./vertex-data": 42 +} ], +39: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = function() { +for (var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .5, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, i = void 0 !== e.segments ? e.segments : 32, s = [], o = [], a = [], c = [], l = n.vec3.create(-t, -t, -t), h = n.vec3.create(t, t, t), u = t, _ = 0; _ <= i; ++_) for (var f = _ * Math.PI / i, d = Math.sin(f), m = -Math.cos(f), p = 0; p <= i; ++p) { +var v = 2 * p * Math.PI / i - Math.PI / 2, y = Math.sin(v) * d, g = m, x = Math.cos(v) * d, C = p / i, b = _ / i; +s.push(y * t, g * t, x * t); +o.push(y, g, x); +a.push(C, b); +if (_ < i && p < i) { +var A = i + 1, S = A * _ + p, w = A * (_ + 1) + p, T = A * (_ + 1) + p + 1, E = A * _ + p + 1; +c.push(S, E, w); +c.push(E, T, w); +} +} +return new r.default(s, c, o, a, l, h, u); +}; +var n = t("../../vmath"), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./vertex-data")); +e.exports = i.default; +}), { +"../../vmath": 317, +"./vertex-data": 42 +} ], +40: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = function() { +for (var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .4, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : .1, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, s = i.radialSegments || 32, o = i.tubularSegments || 32, a = i.arc || 2 * Math.PI, c = [], l = [], h = [], u = [], _ = n.vec3.create(-t - e, -e, -t - e), f = n.vec3.create(t + e, e, t + e), d = t + e, m = 0; m <= s; m++) for (var p = 0; p <= o; p++) { +var v = p / o, y = m / s, g = v * a, x = y * Math.PI * 2, C = (t + e * Math.cos(x)) * Math.sin(g), b = e * Math.sin(x), A = (t + e * Math.cos(x)) * Math.cos(g), S = Math.sin(g) * Math.cos(x), w = Math.sin(x), T = Math.cos(g) * Math.cos(x); +c.push(C, b, A); +l.push(S, w, T); +h.push(v, y); +if (p < o && m < s) { +var E = o + 1, M = E * m + p, B = E * (m + 1) + p, D = E * (m + 1) + p + 1, I = E * m + p + 1; +u.push(M, I, B); +u.push(I, D, B); +} +} +return new r.default(c, l, h, u, _, f, d); +}; +var n = t("../../vmath"), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./vertex-data")); +e.exports = i.default; +}), { +"../../vmath": 317, +"./vertex-data": 42 +} ], +41: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.wireframe = function(t) { +for (var e = [ [ 0, 1 ], [ 1, 2 ], [ 2, 0 ] ], i = [], n = {}, r = 0; r < t.length; r += 3) for (var s = 0; s < 3; ++s) { +var o = t[r + e[s][0]], a = t[r + e[s][1]], c = o > a ? a << 16 | o : o << 16 | a; +if (void 0 === n[c]) { +n[c] = 0; +i.push(o, a); +} +} +return i; +}; +i.invWinding = function(t) { +for (var e = [], i = 0; i < t.length; i += 3) e.push(t[i], t[i + 2], t[i + 1]); +return e; +}; +i.toWavefrontOBJ = function(t) { +for (var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, i = t.positions, n = t.uvs, r = t.normals, s = t.indices, o = function(t) { +return s[t] + 1 + "/" + (s[t] + 1) + "/" + (s[t] + 1); +}, a = "", c = 0; c < i.length; c += 3) a += "v " + i[c] * e + " " + i[c + 1] * e + " " + i[c + 2] * e + "\n"; +for (var l = 0; l < n.length; l += 2) a += "vt " + n[l] + " " + n[l + 1] + "\n"; +for (var h = 0; h < r.length; h += 3) a += "vn " + r[h] + " " + r[h + 1] + " " + r[h + 2] + "\n"; +for (var u = 0; u < s.length; u += 3) a += "f " + o(u) + " " + o(u + 1) + " " + o(u + 2) + "\n"; +return a; +}; +i.normals = function(t, e) { +for (var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, n = new Array(2 * t.length), r = 0; r < t.length / 3; ++r) { +var s = 3 * r, o = 6 * r; +n[o + 0] = t[s + 0]; +n[o + 1] = t[s + 1]; +n[o + 2] = t[s + 2]; +n[o + 3] = t[s + 0] + e[s + 0] * i; +n[o + 4] = t[s + 1] + e[s + 1] * i; +n[o + 5] = t[s + 2] + e[s + 2] * i; +} +return n; +}; +i.calcNormals = function(t, e, i) { +for (var s = 0, o = (i = i || new Array(t.length)).length; s < o; s++) i[s] = 0; +for (var a = void 0, c = void 0, l = void 0, h = cc.v3(), u = cc.v3(), _ = cc.v3(), f = cc.v3(), d = cc.v3(), m = 0, p = e.length; m < p; m += 3) { +a = 3 * e[m + 0]; +c = 3 * e[m + 1]; +l = 3 * e[m + 2]; +r(h, t, a); +r(u, t, c); +r(_, t, l); +n.vec3.sub(f, _, u); +n.vec3.sub(d, h, u); +n.vec3.cross(f, f, d); +i[a] += f.x; +i[a + 1] += f.y; +i[a + 2] += f.z; +i[c] += f.x; +i[c + 1] += f.y; +i[c + 2] += f.z; +i[l] += f.x; +i[l + 1] += f.y; +i[l + 2] += f.z; +} +for (var v = cc.v3(), y = 0, g = i.length; y < g; y += 3) { +v.x = i[y]; +v.y = i[y + 1]; +v.z = i[y + 2]; +v.normalizeSelf(); +i[y] = v.x; +i[y + 1] = v.y; +i[y + 2] = v.z; +} +return i; +}; +var n = t("../../vmath"); +function r(t, e, i) { +t.x = e[i]; +t.y = e[i + 1]; +t.z = e[i + 2]; +} +}), { +"../../vmath": 317 +} ], +42: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = function(t, e, i, n, r, s, o) { +this.positions = t; +this.normals = e; +this.uvs = i; +this.indices = n; +this.minPos = r; +this.maxPos = s; +this.boundingRadius = o; +}; +e.exports = i.default; +}), {} ], +43: [ (function(t, e, i) { +"use strict"; +var n = t("../../../animation/animation-curves"), r = n.DynamicAnimCurve, s = n.quickFindIndex, o = cc.Class({ +name: "cc.JointMatrixCurve", +extends: r, +_findFrameIndex: s, +sample: function(t, e) { +var i = this.ratios, n = this._findFrameIndex(i, e); +n < -1 && (n = ~n - 1); +for (var r = this.pairs, s = 0; s < r.length; s++) { +var o = r[s]; +o.target._jointMatrix = o.values[n]; +} +} +}); +e.exports = o; +}), { +"../../../animation/animation-curves": 11 +} ], +44: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.Skeleton", +extends: cc.Asset, +ctor: function() { +this._bindposes = []; +this._uniqueBindPoses = []; +this._jointPaths = []; +}, +properties: { +_model: cc.Model, +_jointIndices: [], +_skinIndex: -1, +jointPaths: { +get: function() { +return this._jointPaths; +} +}, +bindposes: { +get: function() { +return this._bindposes; +} +}, +uniqueBindPoses: { +get: function() { +return this._uniqueBindPoses; +} +}, +model: { +get: function() { +return this._model; +} +} +}, +onLoad: function() { +for (var t = this._model.nodes, e = this._jointIndices, i = this._jointPaths, n = this._bindposes, r = this._uniqueBindPoses, s = 0; s < e.length; s++) { +var o = t[e[s]]; +i[s] = o.path; +o.uniqueBindPose ? n[s] = r[s] = o.uniqueBindPose : n[s] = o.bindpose[this._skinIndex]; +} +} +}); +cc.Skeleton = e.exports = n; +}), {} ], +45: [ (function(t, e, i) { +"use strict"; +var n = t("../../components/CCAnimation"), r = t("../CCModel"), s = t("./CCSkeletonAnimationClip"), o = cc.Class({ +name: "cc.SkeletonAnimation", +extends: n, +editor: !1, +properties: { +_model: { +default: null, +type: r +}, +_defaultClip: { +override: !0, +default: null, +type: s +}, +_clips: { +override: !0, +default: [], +type: [ s ], +visible: !0 +}, +defaultClip: { +override: !0, +get: function() { +return this._defaultClip; +}, +set: function(t) { +this._defaultClip = t; +}, +type: s +}, +model: { +get: function() { +return this._model; +}, +set: function(t) { +this._model = t; +this._updateClipModel(); +}, +type: r +} +}, +__preload: function() { +this._updateClipModel(); +}, +_updateClipModel: function() { +this._defaultClip && (this._defaultClip._model = this._model); +for (var t = this._clips, e = 0; e < t.length; e++) t[e]._model = this._model; +}, +addClip: function(t, e) { +t._model = this._model; +return n.prototype.addClip.call(this, t, e); +}, +searchClips: !1 +}); +cc.SkeletonAnimation = e.exports = o; +}), { +"../../components/CCAnimation": 90, +"../CCModel": 27, +"./CCSkeletonAnimationClip": 46, +"fire-path": void 0 +} ], +46: [ (function(t, e, i) { +"use strict"; +var n = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../../vmath/mat4")); +var r = t("../../../animation/animation-clip"), s = t("./CCJointMatrixCurve"); +function o(t) { +var e = new Float32Array(16); +e[0] = t.m00; +e[1] = t.m01; +e[2] = t.m02; +e[3] = t.m03; +e[4] = t.m04; +e[5] = t.m05; +e[6] = t.m06; +e[7] = t.m07; +e[8] = t.m08; +e[9] = t.m09; +e[10] = t.m10; +e[11] = t.m11; +e[12] = t.m12; +e[13] = t.m13; +e[14] = t.m14; +e[15] = t.m15; +return e; +} +var a = cc.Class({ +name: "cc.SkeletonAnimationClip", +extends: r, +properties: { +_nativeAsset: { +override: !0, +get: function() { +return this._buffer; +}, +set: function(t) { +var e = ArrayBuffer.isView(t) ? t.buffer : t; +this._buffer = new Float32Array(e || t, 0, e.byteLength / 4); +} +}, +description: { +default: null, +type: Object +}, +curveData: { +visible: !1, +override: !0, +get: function() { +return this._curveData || {}; +}, +set: function() {} +} +}, +_init: function() { +if (this._curveData) return this._curveData; +this._curveData = {}; +this._generateCommonCurve(); +this._model.precomputeJointMatrix && this._generateJointMatrixCurve(); +return this._curveData; +}, +_generateCommonCurve: function() { +var t = this._buffer, e = this.description, i = 0; +function n() { +return t[i++]; +} +this._curveData.paths || (this._curveData.paths = {}); +var r = this._curveData.paths; +for (var s in e) { +var o = e[s], a = {}; +r[s] = { +props: a +}; +for (var c in o) { +var l = [], h = o[c].frameCount; +i = o[c].offset; +for (var u = 0; u < h; u++) { +var _ = n(), f = void 0; +"position" === c || "scale" === c ? f = cc.v3(n(), n(), n()) : "quat" === c && (f = cc.quat(n(), n(), n(), n())); +l.push({ +frame: _, +value: f +}); +} +a[c] = l; +} +} +}, +_generateJointMatrixCurve: function() { +var t = this._model.rootNode, e = this._curveData.paths, i = { +ratios: [], +jointMatrixMap: {} +}, r = i.jointMatrixMap; +function s(i, a, c) { +var l = void 0, h = e[i.path]; +if (i !== t && h) { +var u = h.props; +for (var _ in u) for (var f = u[_], d = 0; d < f.length; d++) { +var m = f[d]; +if (Math.abs(m.frame - a) < 1e-4) { +i[_].set(m.value); +break; +} +if (m.frame > a) { +var p = f[d - 1], v = (a - p.frame) / (m.frame - p.frame); +p.value.lerp(m.value, v, i[_]); +break; +} +} +l = n.default.create(); +n.default.fromRTS(l, i.quat, i.position, i.scale); +c && n.default.mul(l, c, l); +u._jointMatrix || (u._jointMatrix = []); +var y = void 0; +if (i.uniqueBindPose) { +y = n.default.create(); +n.default.mul(y, l, i.uniqueBindPose); +} +r[i.path] || (r[i.path] = []); +y ? r[i.path].push(o(y)) : r[i.path].push(l); +} +var g = i.children; +for (var x in g) { +s(g[x], a, l); +} +} +for (var a = 0, c = this.duration, l = 1 / this.sample; a < c; ) { +i.ratios.push(a / c); +s(t, a); +a += l; +} +this._curveData = i; +}, +_createJointMatrixCurve: function(t, e) { +var i = new s(); +i.ratios = this.curveData.ratios; +i.pairs = []; +var n = this.curveData.jointMatrixMap; +for (var r in n) { +var o = cc.find(r, e); +o && i.pairs.push({ +target: o, +values: n[r] +}); +} +return [ i ]; +}, +createCurves: function(t, e) { +if (!this._model) { +cc.warn("Skeleton Animation Clip [" + this.name + "] Can not find model"); +return []; +} +this._init(); +return this._model.precomputeJointMatrix ? this._createJointMatrixCurve(t, e) : r.prototype.createCurves.call(this, t, e); +} +}); +cc.SkeletonAnimationClip = e.exports = a; +}), { +"../../../animation/animation-clip": 10, +"../../vmath/mat4": 321, +"./CCJointMatrixCurve": 43 +} ], +47: [ (function(t, e, i) { +"use strict"; +var n = t("./CCSkeleton"), r = t("../../mesh/CCMeshRenderer"), s = t("../../renderer/render-flow"), o = cc.vmath.mat4, a = o.create(), c = o.create(), l = new cc.Node(), h = cc.Class({ +name: "cc.SkinnedMeshRenderer", +extends: r, +editor: !1, +ctor: function() { +this._jointsData = this._jointsFloat32Data = null; +this._jointsTexture = null; +this._joints = []; +this._usingRGBA8Texture = !1; +}, +properties: { +_skeleton: n, +_rootBone: cc.Node, +skeleton: { +get: function() { +return this._skeleton; +}, +set: function(t) { +this._skeleton = t; +this._init(); +this._activateMaterial(!0); +}, +type: n +}, +rootBone: { +get: function() { +return this._rootBone; +}, +set: function(t) { +this._rootBone = t; +this._init(); +}, +type: cc.Node +} +}, +_activateMaterial: function(t) { +this._jointsData ? this._super(t) : this.disableRender(); +}, +__preload: function() { +this._init(); +}, +_init: function() { +this._model = this._skeleton && this._skeleton.model; +this._initJoints(); +this._initJointsTexture(); +}, +_calcWorldMatrixToRoot: function(t) { +var e = t._worldMatrixToRoot; +if (!e) { +t._worldMatrixToRoot = e = cc.mat4(); +t.getLocalMatrix(e); +var i = t.parent; +if (i !== this.rootBone) { +i._worldMatrixToRoot || this._calcWorldMatrixToRoot(i); +o.mul(e, i._worldMatrixToRoot, e); +} +} +}, +_initJoints: function() { +var t = this._joints; +t.length = 0; +if (this.skeleton && this.rootBone) { +for (var e = this._useJointMatrix(), i = this.skeleton.jointPaths, n = this.rootBone, r = 0; r < i.length; r++) { +var c = cc.find(i[r], n); +c || cc.warn("Can not find joint in root bone [%s] with path [%s]", n.name, i[r]); +if (e) { +c._renderFlag &= ~s.FLAG_CHILDREN; +this._calcWorldMatrixToRoot(c); +} +t.push(c); +} +if (e) for (var l = this.skeleton.uniqueBindPoses, h = 0; h < i.length; h++) { +var u = t[h]; +if (l[h]) { +o.mul(a, u._worldMatrixToRoot, l[h]); +u._jointMatrix = o.array([], a); +} else u._jointMatrix = u._worldMatrixToRoot; +} +} +}, +_initJointsTexture: function() { +if (this._skeleton) { +var t = this._joints.length, e = this._customProperties, i = !1; +if (t <= cc.sys.getMaxJointMatrixSize()) { +i = !0; +this._jointsData = this._jointsFloat32Data = new Float32Array(16 * t); +e.setProperty("_jointMatrices", this._jointsFloat32Data); +e.define("_USE_JOINTS_TEXTRUE", !1); +} +if (!i) { +var n = !!cc.sys.glExtension("OES_texture_float"), r = void 0; +r = t > 256 ? 64 : t > 64 ? 32 : t > 16 ? 16 : 8; +this._jointsData = this._jointsFloat32Data = new Float32Array(r * r * 4); +var s = cc.Texture2D.PixelFormat.RGBA32F, o = r, a = r; +if (!n) { +this._jointsData = new Uint8Array(this._jointsFloat32Data.buffer); +s = cc.Texture2D.PixelFormat.RGBA8888; +o *= 4; +this._usingRGBA8Texture = !0; +cc.warn("SkinnedMeshRenderer [" + this.node.name + "] has too many joints [" + t + "] and device do not support float32 texture, fallback to use RGBA8888 texture, which is much slower."); +} +var c = this._jointsTexture || new cc.Texture2D(), l = cc.Texture2D.Filter.NEAREST; +c.setFilters(l, l); +c.initWithData(this._jointsData, s, o, a); +this._jointsTexture = c; +e.setProperty("_jointsTexture", c.getImpl()); +e.setProperty("_jointsTextureSize", new Float32Array([ o, a ])); +e.define("_JOINTS_TEXTURE_FLOAT32", n); +e.define("_USE_JOINTS_TEXTRUE", !0); +} +e.define("_USE_SKINNING", !0); +} +}, +_setJointsDataWithArray: function(t, e) { +this._jointsFloat32Data.set(e, 16 * t); +}, +_setJointsDataWithMatrix: function(t, e) { +var i = this._jointsFloat32Data; +i[16 * t + 0] = e.m00; +i[16 * t + 1] = e.m01; +i[16 * t + 2] = e.m02; +i[16 * t + 3] = e.m03; +i[16 * t + 4] = e.m04; +i[16 * t + 5] = e.m05; +i[16 * t + 6] = e.m06; +i[16 * t + 7] = e.m07; +i[16 * t + 8] = e.m08; +i[16 * t + 9] = e.m09; +i[16 * t + 10] = e.m10; +i[16 * t + 11] = e.m11; +i[16 * t + 12] = e.m12; +i[16 * t + 13] = e.m13; +i[16 * t + 14] = e.m14; +i[16 * t + 15] = e.m15; +}, +_commitJointsData: function() { +this._jointsTexture && this._jointsTexture.update({ +image: this._jointsData +}); +}, +_useJointMatrix: function() { +return this._model && this._model.precomputeJointMatrix; +}, +getRenderNode: function() { +return this._useJointMatrix() || this._usingRGBA8Texture ? this.rootBone : l; +}, +calcJointMatrix: function() { +if (this.skeleton && this.rootBone) { +var t = this._joints, e = this.skeleton.bindposes, i = this.skeleton.uniqueBindPoses; +if (this._useJointMatrix()) for (var n = 0; n < t.length; ++n) { +var r = t[n]._jointMatrix; +if (i[n]) this._setJointsDataWithArray(n, r); else { +o.multiply(a, r, e[n]); +this._setJointsDataWithMatrix(n, a); +} +} else if (this._usingRGBA8Texture) { +this.rootBone._updateWorldMatrix(); +for (var s = this.rootBone._worldMatrix, l = o.invert(c, s), h = 0; h < t.length; ++h) { +var u = t[h]; +u._updateWorldMatrix(); +o.multiply(a, l, u._worldMatrix); +o.multiply(a, a, e[h]); +this._setJointsDataWithMatrix(h, a); +} +} else for (var _ = 0; _ < t.length; ++_) { +var f = t[_]; +f._updateWorldMatrix(); +o.multiply(a, f._worldMatrix, e[_]); +this._setJointsDataWithMatrix(_, a); +} +this._commitJointsData(); +} +} +}); +cc.SkinnedMeshRenderer = e.exports = h; +}), { +"../../mesh/CCMeshRenderer": 168, +"../../renderer/render-flow": 245, +"./CCSkeleton": 44 +} ], +48: [ (function(t, e, i) { +"use strict"; +var n = t("./CCSkinnedMeshRenderer"), r = t("../../mesh/mesh-renderer"), s = cc.js.addon({ +fillBuffers: function(t, e) { +t.calcJointMatrix(); +r.fillBuffers(t, e); +} +}, r); +e.exports = n._assembler = s; +}), { +"../../mesh/mesh-renderer": 171, +"./CCSkinnedMeshRenderer": 47 +} ], +49: [ (function(t, e, i) { +"use strict"; +t("../../DebugInfos"); +var n = "https://github.com/cocos-creator/engine/blob/master/EngineErrorMap.md", r = void 0; +cc.log = cc.warn = cc.error = cc.assert = console.log.bind ? console.log.bind(console) : console.log; +cc._throw = function(t) { +var e = t.stack; +e ? cc.error(t + "\n" + e) : cc.error(t); +}; +function s(t) { +return function() { +var e = arguments[0], i = t + " " + e + ", please go to " + n + "#" + e + " to see details."; +if (1 === arguments.length) return i; +if (2 === arguments.length) return i + " Arguments: " + arguments[1]; +var r = cc.js.shiftArguments.apply(null, arguments); +return i + " Arguments: " + r.join(", "); +}; +} +var o = s("Log"); +cc.logID = function() { +cc.log(o.apply(null, arguments)); +}; +var a = s("Warning"); +cc.warnID = function() { +cc.warn(a.apply(null, arguments)); +}; +var c = s("Error"); +cc.errorID = function() { +cc.error(c.apply(null, arguments)); +}; +var l = s("Assert"); +cc.assertID = function(t) { +t || cc.assert(!1, l.apply(null, cc.js.shiftArguments.apply(null, arguments))); +}; +var h = cc.Enum({ +NONE: 0, +INFO: 1, +WARN: 2, +ERROR: 3, +INFO_FOR_WEB_PAGE: 4, +WARN_FOR_WEB_PAGE: 5, +ERROR_FOR_WEB_PAGE: 6 +}); +e.exports = cc.debug = { +DebugMode: h, +_resetDebugSetting: function(t) { +cc.log = cc.warn = cc.error = cc.assert = function() {}; +if (t !== h.NONE) { +if (t > h.ERROR) { +var e = function(t) { +if (cc.game.canvas) { +if (!r) { +var e = document.createElement("Div"); +e.setAttribute("id", "logInfoDiv"); +e.setAttribute("width", "200"); +e.setAttribute("height", cc.game.canvas.height); +var i = e.style; +i.zIndex = "99999"; +i.position = "absolute"; +i.top = i.left = "0"; +(r = document.createElement("textarea")).setAttribute("rows", "20"); +r.setAttribute("cols", "30"); +r.setAttribute("disabled", "true"); +var n = r.style; +n.backgroundColor = "transparent"; +n.borderBottom = "1px solid #cccccc"; +n.borderTopWidth = n.borderLeftWidth = n.borderRightWidth = "0px"; +n.borderTopStyle = n.borderLeftStyle = n.borderRightStyle = "none"; +n.padding = "0px"; +n.margin = 0; +e.appendChild(r); +cc.game.canvas.parentNode.appendChild(e); +} +r.value = r.value + t + "\r\n"; +r.scrollTop = r.scrollHeight; +} +}; +cc.error = function() { +e("ERROR : " + cc.js.formatStr.apply(null, arguments)); +}; +cc.assert = function(t, i) { +if (!t && i) { +i = cc.js.formatStr.apply(null, cc.js.shiftArguments.apply(null, arguments)); +e("ASSERT: " + i); +} +}; +t !== h.ERROR_FOR_WEB_PAGE && (cc.warn = function() { +e("WARN : " + cc.js.formatStr.apply(null, arguments)); +}); +t === h.INFO_FOR_WEB_PAGE && (cc.log = function() { +e(cc.js.formatStr.apply(null, arguments)); +}); +} else if (console && console.log.apply) { +console.error || (console.error = console.log); +console.warn || (console.warn = console.log); +console.error.bind ? cc.error = console.error.bind(console) : cc.error = console.error; +cc.assert = function(t, e) { +if (!t) { +e && (e = cc.js.formatStr.apply(null, cc.js.shiftArguments.apply(null, arguments))); +throw new Error(e); +} +}; +} +t !== h.ERROR && (console.warn.bind ? cc.warn = console.warn.bind(console) : cc.warn = console.warn); +t === h.INFO && ("JavaScriptCore" === scriptEngineType ? cc.log = function() { +return console.log.apply(console, arguments); +} : cc.log = console.log); +} +}, +getError: s("ERROR"), +isDisplayStats: function() { +return !!cc.profiler && cc.profiler.isShowingStats(); +}, +setDisplayStats: function(t) { +if (cc.profiler) { +t ? cc.profiler.showStats() : cc.profiler.hideStats(); +cc.game.config.showFPS = !!t; +} +} +}; +}), { +"../../DebugInfos": void 0 +} ], +50: [ (function(i, n, r) { +"use strict"; +var s = i("./event/event-target"), o = i("./load-pipeline/auto-release-utils"), a = i("./component-scheduler"), c = i("./node-activator"), l = i("./platform/CCObject"), h = i("./CCGame"), u = i("./renderer"), _ = i("./event-manager"), f = i("./CCScheduler"); +cc.Director = function() { +s.call(this); +this._paused = !1; +this._purgeDirectorInNextLoop = !1; +this._winSizeInPoints = null; +this._loadingScene = ""; +this._scene = null; +this._totalFrames = 0; +this._lastUpdate = 0; +this._deltaTime = 0; +this._scheduler = null; +this._compScheduler = null; +this._nodeActivator = null; +this._actionManager = null; +var t = this; +h.on(h.EVENT_SHOW, (function() { +t._lastUpdate = performance.now(); +})); +h.once(h.EVENT_ENGINE_INITED, this.init, this); +}; +cc.Director.prototype = { +constructor: cc.Director, +init: function() { +this._totalFrames = 0; +this._lastUpdate = performance.now(); +this._paused = !1; +this._purgeDirectorInNextLoop = !1; +this._winSizeInPoints = cc.size(0, 0); +this._scheduler = new f(); +if (cc.ActionManager) { +this._actionManager = new cc.ActionManager(); +this._scheduler.scheduleUpdate(this._actionManager, f.PRIORITY_SYSTEM, !1); +} else this._actionManager = null; +this.sharedInit(); +return !0; +}, +sharedInit: function() { +this._compScheduler = new a(); +this._nodeActivator = new c(); +_ && _.setEnabled(!0); +if (cc.AnimationManager) { +this._animationManager = new cc.AnimationManager(); +this._scheduler.scheduleUpdate(this._animationManager, f.PRIORITY_SYSTEM, !1); +} else this._animationManager = null; +if (cc.CollisionManager) { +this._collisionManager = new cc.CollisionManager(); +this._scheduler.scheduleUpdate(this._collisionManager, f.PRIORITY_SYSTEM, !1); +} else this._collisionManager = null; +if (cc.PhysicsManager) { +this._physicsManager = new cc.PhysicsManager(); +this._scheduler.scheduleUpdate(this._physicsManager, f.PRIORITY_SYSTEM, !1); +} else this._physicsManager = null; +cc._widgetManager && cc._widgetManager.init(this); +cc.loader.init(this); +}, +calculateDeltaTime: function(t) { +t || (t = performance.now()); +this._deltaTime = (t - this._lastUpdate) / 1e3; +0; +this._lastUpdate = t; +}, +convertToGL: function(t) { +var e = h.container, i = cc.view, n = e.getBoundingClientRect(), r = n.left + window.pageXOffset - e.clientLeft, s = n.top + window.pageYOffset - e.clientTop, o = i._devicePixelRatio * (t.x - r), a = i._devicePixelRatio * (s + n.height - t.y); +return i._isRotated ? cc.v2(i._viewportRect.width - a, o) : cc.v2(o, a); +}, +convertToUI: function(t) { +var e = h.container, i = cc.view, n = e.getBoundingClientRect(), r = n.left + window.pageXOffset - e.clientLeft, s = n.top + window.pageYOffset - e.clientTop, o = cc.v2(0, 0); +if (i._isRotated) { +o.x = r + t.y / i._devicePixelRatio; +o.y = s + n.height - (i._viewportRect.width - t.x) / i._devicePixelRatio; +} else { +o.x = r + t.x * i._devicePixelRatio; +o.y = s + n.height - t.y * i._devicePixelRatio; +} +return o; +}, +end: function() { +this._purgeDirectorInNextLoop = !0; +}, +getWinSize: function() { +return cc.size(cc.winSize); +}, +getWinSizeInPixels: function() { +return cc.size(cc.winSize); +}, +pause: function() { +this._paused || (this._paused = !0); +}, +purgeCachedData: function() { +cc.loader.releaseAll(); +}, +purgeDirector: function() { +this._scheduler.unscheduleAll(); +this._compScheduler.unscheduleAll(); +this._nodeActivator.reset(); +_ && _.setEnabled(!1); +cc.isValid(this._scene) && this._scene.destroy(); +this._scene = null; +cc.renderer.clear(); +cc.AssetLibrary.resetBuiltins(); +cc.game.pause(); +cc.loader.releaseAll(); +}, +reset: function() { +this.purgeDirector(); +_ && _.setEnabled(!0); +this._actionManager && this._scheduler.scheduleUpdate(this._actionManager, cc.Scheduler.PRIORITY_SYSTEM, !1); +this._animationManager && this._scheduler.scheduleUpdate(this._animationManager, cc.Scheduler.PRIORITY_SYSTEM, !1); +this._collisionManager && this._scheduler.scheduleUpdate(this._collisionManager, cc.Scheduler.PRIORITY_SYSTEM, !1); +this._physicsManager && this._scheduler.scheduleUpdate(this._physicsManager, cc.Scheduler.PRIORITY_SYSTEM, !1); +cc.game.resume(); +}, +runSceneImmediate: function(t, e, i) { +cc.assertID(t instanceof cc.Scene, 1216); +t._load(); +for (var n = Object.keys(h._persistRootNodes).map((function(t) { +return h._persistRootNodes[t]; +})), r = 0; r < n.length; r++) { +var s = n[r], a = t.getChildByUuid(s.uuid); +if (a) { +var c = a.getSiblingIndex(); +a._destroyImmediate(); +t.insertChild(s, c); +} else s.parent = t; +} +var u = this._scene, _ = u && u.autoReleaseAssets && u.dependAssets; +o.autoRelease(_, t.dependAssets, n); +cc.isValid(u) && u.destroy(); +this._scene = null; +l._deferredDestroy(); +e && e(); +this.emit(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, t); +this._scene = t; +t._activate(); +cc.game.resume(); +i && i(null, t); +this.emit(cc.Director.EVENT_AFTER_SCENE_LAUNCH, t); +}, +runScene: function(t, e, i) { +cc.assertID(t, 1205); +cc.assertID(t instanceof cc.Scene, 1216); +t._load(); +this.once(cc.Director.EVENT_AFTER_UPDATE, (function() { +this.runSceneImmediate(t, e, i); +}), this); +}, +_getSceneUuid: function(i) { +var n = h._sceneInfos; +if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { +i.endsWith(".fire") || (i += ".fire"); +"/" === i[0] || i.startsWith("db://") || (i = "/" + i); +for (var r = 0; r < n.length; r++) { +var s = n[r]; +if (s.url.endsWith(i)) return s; +} +} else if ("number" === ("object" === (e = typeof i) ? t(i) : e)) { +if (0 <= i && i < n.length) return n[i]; +cc.errorID(1206, i); +} else cc.errorID(1207, i); +return null; +}, +loadScene: function(t, e, i) { +if (this._loadingScene) { +cc.errorID(1208, t, this._loadingScene); +return !1; +} +var n = this._getSceneUuid(t); +if (n) { +var r = n.uuid; +this.emit(cc.Director.EVENT_BEFORE_SCENE_LOADING, t); +this._loadingScene = t; +this._loadSceneByUuid(r, e, i); +return !0; +} +cc.errorID(1209, t); +return !1; +}, +preloadScene: function(t, e, i) { +if (void 0 === i) { +i = e; +e = null; +} +var n = this._getSceneUuid(t); +if (n) { +this.emit(cc.Director.EVENT_BEFORE_SCENE_LOADING, t); +cc.loader.load({ +uuid: n.uuid, +type: "uuid" +}, e, (function(e, n) { +if (e) { +cc.errorID(1210, t, e.message); +i && i(new Error(e)); +} +i && i(e, n); +})); +} else { +var r = 'Can not preload the scene "' + t + '" because it is not in the build settings.'; +i(new Error(r)); +cc.error("preloadScene: " + r); +} +}, +_loadSceneByUuid: function(t, e, i, n) { +0; +console.time("LoadScene " + t); +cc.AssetLibrary.loadAsset(t, (function(n, r) { +console.timeEnd("LoadScene " + t); +var s = cc.director; +s._loadingScene = ""; +if (n) { +n = "Failed to load scene: " + n; +cc.error(n); +} else { +if (r instanceof cc.SceneAsset) { +var o = r.scene; +o._id = r._uuid; +o._name = r._name; +s.runSceneImmediate(o, i, e); +return; +} +n = "The asset " + t + " is not a scene"; +cc.error(n); +} +e && e(n); +})); +}, +resume: function() { +if (this._paused) { +this._lastUpdate = performance.now(); +this._lastUpdate || cc.logID(1200); +this._paused = !1; +this._deltaTime = 0; +} +}, +setDepthTest: function(t) { +cc.Camera.main && (cc.Camera.main.depth = !!t); +}, +setClearColor: function(t) { +cc.Camera.main && (cc.Camera.main.backgroundColor = t); +}, +getRunningScene: function() { +return this._scene; +}, +getScene: function() { +return this._scene; +}, +getAnimationInterval: function() { +return 1e3 / h.getFrameRate(); +}, +setAnimationInterval: function(t) { +h.setFrameRate(Math.round(1e3 / t)); +}, +getDeltaTime: function() { +return this._deltaTime; +}, +getTotalFrames: function() { +return this._totalFrames; +}, +isPaused: function() { +return this._paused; +}, +getScheduler: function() { +return this._scheduler; +}, +setScheduler: function(t) { +this._scheduler !== t && (this._scheduler = t); +}, +getActionManager: function() { +return this._actionManager; +}, +setActionManager: function(t) { +if (this._actionManager !== t) { +this._actionManager && this._scheduler.unscheduleUpdate(this._actionManager); +this._actionManager = t; +this._scheduler.scheduleUpdate(this._actionManager, cc.Scheduler.PRIORITY_SYSTEM, !1); +} +}, +getAnimationManager: function() { +return this._animationManager; +}, +getCollisionManager: function() { +return this._collisionManager; +}, +getPhysicsManager: function() { +return this._physicsManager; +}, +startAnimation: function() { +cc.game.resume(); +}, +stopAnimation: function() { +cc.game.pause(); +}, +_resetDeltaTime: function() { +this._lastUpdate = performance.now(); +this._deltaTime = 0; +}, +mainLoop: function(t) { +if (this._purgeDirectorInNextLoop) { +this._purgeDirectorInNextLoop = !1; +this.purgeDirector(); +} else { +this.calculateDeltaTime(t); +if (!this._paused) { +this.emit(cc.Director.EVENT_BEFORE_UPDATE); +this._compScheduler.startPhase(); +this._compScheduler.updatePhase(this._deltaTime); +this._scheduler.update(this._deltaTime); +this._compScheduler.lateUpdatePhase(this._deltaTime); +this.emit(cc.Director.EVENT_AFTER_UPDATE); +l._deferredDestroy(); +} +this.emit(cc.Director.EVENT_BEFORE_DRAW); +u.render(this._scene); +this.emit(cc.Director.EVENT_AFTER_DRAW); +_.frameUpdateListeners(); +this._totalFrames++; +} +}, +__fastOn: function(t, e, i) { +this.add(t, e, i); +}, +__fastOff: function(t, e, i) { +this.remove(t, e, i); +} +}; +cc.js.addon(cc.Director.prototype, s.prototype); +cc.Director.EVENT_PROJECTION_CHANGED = "director_projection_changed"; +cc.Director.EVENT_BEFORE_SCENE_LOADING = "director_before_scene_loading"; +cc.Director.EVENT_BEFORE_SCENE_LAUNCH = "director_before_scene_launch"; +cc.Director.EVENT_AFTER_SCENE_LAUNCH = "director_after_scene_launch"; +cc.Director.EVENT_BEFORE_UPDATE = "director_before_update"; +cc.Director.EVENT_AFTER_UPDATE = "director_after_update"; +cc.Director.EVENT_BEFORE_VISIT = "director_before_draw"; +cc.Director.EVENT_AFTER_VISIT = "director_before_draw"; +cc.Director.EVENT_BEFORE_DRAW = "director_before_draw"; +cc.Director.EVENT_AFTER_DRAW = "director_after_draw"; +cc.Director.PROJECTION_2D = 0; +cc.Director.PROJECTION_3D = 1; +cc.Director.PROJECTION_CUSTOM = 3; +cc.Director.PROJECTION_DEFAULT = cc.Director.PROJECTION_2D; +cc.director = new cc.Director(); +n.exports = cc.director; +}), { +"./CCGame": 51, +"./CCScheduler": 55, +"./component-scheduler": 89, +"./event-manager": 131, +"./event/event-target": 133, +"./load-pipeline/auto-release-utils": 151, +"./node-activator": 172, +"./platform/CCObject": 207, +"./renderer": 244 +} ], +51: [ (function(i, n, r) { +"use strict"; +var s = i("./event/event-target"); +i("../audio/CCAudioEngine"); +var o = i("./CCDebug"), a = i("./renderer/index.js"), c = i("./platform/CCInputManager"), l = i("../core/renderer/utils/dynamic-atlas/manager"), h = { +EVENT_HIDE: "game_on_hide", +EVENT_SHOW: "game_on_show", +EVENT_RESTART: "game_on_restart", +EVENT_GAME_INITED: "game_inited", +EVENT_ENGINE_INITED: "engine_inited", +EVENT_RENDERER_INITED: "engine_inited", +RENDER_TYPE_CANVAS: 0, +RENDER_TYPE_WEBGL: 1, +RENDER_TYPE_OPENGL: 2, +_persistRootNodes: {}, +_paused: !0, +_configLoaded: !1, +_isCloning: !1, +_prepared: !1, +_rendererInitialized: !1, +_renderContext: null, +_intervalId: null, +_lastTime: null, +_frameTime: null, +_sceneInfos: [], +frame: null, +container: null, +canvas: null, +renderType: -1, +config: null, +onStart: null, +setFrameRate: function(t) { +this.config.frameRate = t; +this._intervalId && window.cancelAnimFrame(this._intervalId); +this._intervalId = 0; +this._paused = !0; +this._setAnimFrame(); +this._runMainLoop(); +}, +getFrameRate: function() { +return this.config.frameRate; +}, +step: function() { +cc.director.mainLoop(); +}, +pause: function() { +if (!this._paused) { +this._paused = !0; +this._intervalId && window.cancelAnimFrame(this._intervalId); +this._intervalId = 0; +} +}, +resume: function() { +if (this._paused) { +this._paused = !1; +cc.audioEngine && cc.audioEngine._restore(); +cc.director._resetDeltaTime(); +this._runMainLoop(); +} +}, +isPaused: function() { +return this._paused; +}, +restart: function() { +cc.director.once(cc.Director.EVENT_AFTER_DRAW, (function() { +for (var t in h._persistRootNodes) h.removePersistRootNode(h._persistRootNodes[t]); +cc.director.getScene().destroy(); +cc.Object._deferredDestroy(); +cc.audioEngine && cc.audioEngine.uncacheAll(); +cc.director.reset(); +h.pause(); +cc.AssetLibrary._loadBuiltins((function() { +h.onStart(); +h.emit(h.EVENT_RESTART); +})); +})); +}, +end: function() { +close(); +}, +_initEngine: function() { +if (!this._rendererInitialized) { +this._initRenderer(); +this._initEvents(); +this.emit(this.EVENT_ENGINE_INITED); +} +}, +_prepareFinished: function(t) { +var e = this; +0; +this._initEngine(); +this._setAnimFrame(); +cc.AssetLibrary._loadBuiltins((function() { +console.log("Cocos Creator v" + cc.ENGINE_VERSION); +e._prepared = !0; +e._runMainLoop(); +e.emit(e.EVENT_GAME_INITED); +t && t(); +})); +}, +eventTargetOn: s.prototype.on, +eventTargetOnce: s.prototype.once, +on: function(t, e, i) { +this._prepared && t === this.EVENT_ENGINE_INITED || !this._paused && t === this.EVENT_GAME_INITED ? e.call(i) : this.eventTargetOn(t, e, i); +}, +once: function(t, e, i) { +this._prepared && t === this.EVENT_ENGINE_INITED || !this._paused && t === this.EVENT_GAME_INITED ? e.call(i) : this.eventTargetOnce(t, e, i); +}, +prepare: function(t) { +if (this._prepared) t && t(); else { +var e = this.config.jsList; +if (e && e.length > 0) { +var i = this; +cc.loader.load(e, (function(e) { +if (e) throw new Error(JSON.stringify(e)); +i._prepareFinished(t); +})); +} else this._prepareFinished(t); +} +}, +run: function(t, e) { +this._initConfig(t); +this.onStart = e; +this.prepare(h.onStart && h.onStart.bind(h)); +}, +addPersistRootNode: function(t) { +if (cc.Node.isNode(t) && t.uuid) { +var e = t.uuid; +if (!this._persistRootNodes[e]) { +var i = cc.director._scene; +if (cc.isValid(i)) if (t.parent) { +if (!(t.parent instanceof cc.Scene)) { +cc.warnID(3801); +return; +} +if (t.parent !== i) { +cc.warnID(3802); +return; +} +} else t.parent = i; +this._persistRootNodes[e] = t; +t._persistNode = !0; +} +} else cc.warnID(3800); +}, +removePersistRootNode: function(t) { +var e = t.uuid || ""; +if (t === this._persistRootNodes[e]) { +delete this._persistRootNodes[e]; +t._persistNode = !1; +} +}, +isPersistRootNode: function(t) { +return t._persistNode; +}, +_setAnimFrame: function() { +this._lastTime = performance.now(); +var t = h.config.frameRate; +this._frameTime = 1e3 / t; +jsb.setPreferredFramesPerSecond(t); +window.requestAnimFrame = window.requestAnimationFrame; +window.cancelAnimFrame = window.cancelAnimationFrame; +}, +_stTime: function(t) { +var e = performance.now(), i = Math.max(0, h._frameTime - (e - h._lastTime)), n = window.setTimeout((function() { +t(); +}), i); +h._lastTime = e + i; +return n; +}, +_ctTime: function(t) { +window.clearTimeout(t); +}, +_runMainLoop: function() { +0; +if (this._prepared) { +var t, e = this, i = e.config, n = cc.director; +i.frameRate; +o.setDisplayStats(i.showFPS); +t = function(i) { +if (!e._paused) { +e._intervalId = window.requestAnimFrame(t); +0; +n.mainLoop(i); +} +}; +e._intervalId = window.requestAnimFrame(t); +e._paused = !1; +} +}, +_initConfig: function(i) { +"number" !== ("object" === (e = typeof i.debugMode) ? t(i.debugMode) : e) && (i.debugMode = 0); +i.exposeClassName = !!i.exposeClassName; +"number" !== ("object" === (e = typeof i.frameRate) ? t(i.frameRate) : e) && (i.frameRate = 60); +var n = i.renderMode; +("number" !== ("object" === (e = typeof n) ? t(n) : e) || n > 2 || n < 0) && (i.renderMode = 0); +"boolean" !== ("object" === (e = typeof i.registerSystemEvent) ? t(i.registerSystemEvent) : e) && (i.registerSystemEvent = !0); +i.showFPS = !!i.showFPS; +this._sceneInfos = i.scenes || []; +this.collisionMatrix = i.collisionMatrix || []; +this.groupList = i.groupList || []; +o._resetDebugSetting(i.debugMode); +this.config = i; +this._configLoaded = !0; +}, +_determineRenderType: function() { +var t = this.config, e = parseInt(t.renderMode) || 0; +this.renderType = this.RENDER_TYPE_CANVAS; +var i = !1; +if (0 === e) { +if (cc.sys.capabilities.opengl) { +this.renderType = this.RENDER_TYPE_WEBGL; +i = !0; +} else if (cc.sys.capabilities.canvas) { +this.renderType = this.RENDER_TYPE_CANVAS; +i = !0; +} +} else if (1 === e && cc.sys.capabilities.canvas) { +this.renderType = this.RENDER_TYPE_CANVAS; +i = !0; +} else if (2 === e && cc.sys.capabilities.opengl) { +this.renderType = this.RENDER_TYPE_WEBGL; +i = !0; +} +if (!i) throw new Error(o.getError(3820, e)); +}, +_initRenderer: function() { +if (!this._rendererInitialized) { +this.config.id; +var t = void 0, e = void 0; +this.container = e = document.createElement("DIV"); +this.frame = e.parentNode === document.body ? document.documentElement : e.parentNode; +if (cc.sys.browserType === cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB) t = window.sharedCanvas || wx.getSharedCanvas(); else { +t = window.__canvas; +} +this.canvas = t; +this._determineRenderType(); +if (this.renderType === this.RENDER_TYPE_WEBGL) { +var i = { +stencil: !0, +antialias: cc.macro.ENABLE_WEBGL_ANTIALIAS, +alpha: cc.macro.ENABLE_TRANSPARENT_CANVAS +}; +0; +a.initWebGL(t, i); +this._renderContext = a.device._gl; +!cc.macro.CLEANUP_IMAGE_CACHE && l && (l.enabled = !0); +} +if (!this._renderContext) { +this.renderType = this.RENDER_TYPE_CANVAS; +a.initCanvas(t); +this._renderContext = a.device._ctx; +} +this.canvas.oncontextmenu = function() { +if (!cc._isContextMenuEnable) return !1; +}; +this._rendererInitialized = !0; +} +}, +_initEvents: function() { +var i, n = window; +this.config.registerSystemEvent && c.registerSystemEvent(this.canvas); +"undefined" !== ("object" === (e = typeof document.hidden) ? t(document.hidden) : e) ? i = "hidden" : "undefined" !== ("object" === (e = typeof document.mozHidden) ? t(document.mozHidden) : e) ? i = "mozHidden" : "undefined" !== ("object" === (e = typeof document.msHidden) ? t(document.msHidden) : e) ? i = "msHidden" : "undefined" !== ("object" === (e = typeof document.webkitHidden) ? t(document.webkitHidden) : e) && (i = "webkitHidden"); +var r = !1; +function s() { +if (!r) { +r = !0; +h.emit(h.EVENT_HIDE); +} +} +function o(t, e, i, n, s) { +if (r) { +r = !1; +h.emit(h.EVENT_SHOW, t, e, i, n, s); +} +} +if (i) for (var a = [ "visibilitychange", "mozvisibilitychange", "msvisibilitychange", "webkitvisibilitychange", "qbrowserVisibilityChange" ], l = 0; l < a.length; l++) document.addEventListener(a[l], (function(t) { +var e = document[i]; +(e = e || t.hidden) ? s() : o(); +})); else { +n.addEventListener("blur", s); +n.addEventListener("focus", o); +} +navigator.userAgent.indexOf("MicroMessenger") > -1 && (n.onfocus = o); +0; +if ("onpageshow" in window && "onpagehide" in window) { +n.addEventListener("pagehide", s); +n.addEventListener("pageshow", o); +document.addEventListener("pagehide", s); +document.addEventListener("pageshow", o); +} +this.on(h.EVENT_HIDE, (function() { +cc.audioEngine.pauseMusic(); +cc.audioEngine.pauseAllEffects(); +cc.audioEngine.setEffectsVolume(0); +cc.audioEngine.setMusicVolume(0); +})); +this.on(h.EVENT_SHOW, (function() { +h.resume(); +cc.audioEngine.resumeAllEffects(); +cc.audioEngine.resumeMusic(); +cc.audioEngine.setEffectsVolume(1); +cc.audioEngine.setMusicVolume(1); +})); +} +}; +s.call(h); +cc.js.addon(h, s.prototype); +cc.game = n.exports = h; +}), { +"../audio/CCAudioEngine": 21, +"../core/renderer/utils/dynamic-atlas/manager": 247, +"./CCDebug": 49, +"./event/event-target": 133, +"./platform/BKInputManager": 199, +"./platform/CCInputManager": 205, +"./renderer/index.js": 244 +} ], +52: [ (function(i, n, r) { +"use strict"; +var s = i("./vmath"), o = i("./utils/base-node"), a = i("./utils/prefab-helper"), c = i("./utils/math-pools"), l = i("./utils/affine-transform"), h = i("./event-manager"), u = i("./platform/CCMacro"), _ = i("./platform/js"), f = (i("./event/event"), +i("./event/event-target")), d = i("./renderer/render-flow"), m = cc.Object.Flags.Destroying, p = Math.PI / 180, v = !!cc.ActionManager, y = function() {}, g = cc.v2(), x = cc.v2(), C = s.mat4.create(), b = s.vec3.create(), A = s.quat.create(), S = new Array(16); +S.length = 0; +var w = cc.Enum({ +DEBUG: 31 +}), T = cc.Enum({ +POSITION: 1, +SCALE: 2, +ROTATION: 4, +SKEW: 8, +RT: 7, +ALL: 65535 +}), E = cc.Enum({ +TOUCH_START: "touchstart", +TOUCH_MOVE: "touchmove", +TOUCH_END: "touchend", +TOUCH_CANCEL: "touchcancel", +MOUSE_DOWN: "mousedown", +MOUSE_MOVE: "mousemove", +MOUSE_ENTER: "mouseenter", +MOUSE_LEAVE: "mouseleave", +MOUSE_UP: "mouseup", +MOUSE_WHEEL: "mousewheel", +POSITION_CHANGED: "position-changed", +ROTATION_CHANGED: "rotation-changed", +SCALE_CHANGED: "scale-changed", +SIZE_CHANGED: "size-changed", +ANCHOR_CHANGED: "anchor-changed", +COLOR_CHANGED: "color-changed", +CHILD_ADDED: "child-added", +CHILD_REMOVED: "child-removed", +CHILD_REORDER: "child-reorder", +GROUP_CHANGED: "group-changed" +}), M = [ E.TOUCH_START, E.TOUCH_MOVE, E.TOUCH_END, E.TOUCH_CANCEL ], B = [ E.MOUSE_DOWN, E.MOUSE_ENTER, E.MOUSE_MOVE, E.MOUSE_LEAVE, E.MOUSE_UP, E.MOUSE_WHEEL ], D = null, I = function(t, e) { +var i = t.getLocation(), n = this.owner; +if (n._hitTest(i, this)) { +e.type = E.TOUCH_START; +e.touch = t; +e.bubbles = !0; +n.dispatchEvent(e); +return !0; +} +return !1; +}, P = function(t, e) { +var i = this.owner; +e.type = E.TOUCH_MOVE; +e.touch = t; +e.bubbles = !0; +i.dispatchEvent(e); +}, R = function(t, e) { +var i = t.getLocation(), n = this.owner; +n._hitTest(i, this) ? e.type = E.TOUCH_END : e.type = E.TOUCH_CANCEL; +e.touch = t; +e.bubbles = !0; +n.dispatchEvent(e); +}, L = function(t, e) { +t.getLocation(); +var i = this.owner; +e.type = E.TOUCH_CANCEL; +e.touch = t; +e.bubbles = !0; +i.dispatchEvent(e); +}, F = function(t) { +var e = t.getLocation(), i = this.owner; +if (i._hitTest(e, this)) { +t.type = E.MOUSE_DOWN; +t.bubbles = !0; +i.dispatchEvent(t); +} +}, O = function(t) { +var e = t.getLocation(), i = this.owner; +if (i._hitTest(e, this)) { +if (!this._previousIn) { +if (D && D._mouseListener) { +t.type = E.MOUSE_LEAVE; +D.dispatchEvent(t); +D._mouseListener._previousIn = !1; +} +D = this.owner; +t.type = E.MOUSE_ENTER; +i.dispatchEvent(t); +this._previousIn = !0; +} +t.type = E.MOUSE_MOVE; +t.bubbles = !0; +i.dispatchEvent(t); +} else { +if (!this._previousIn) return; +t.type = E.MOUSE_LEAVE; +i.dispatchEvent(t); +this._previousIn = !1; +D = null; +} +t.stopPropagation(); +}, V = function(t) { +var e = t.getLocation(), i = this.owner; +if (i._hitTest(e, this)) { +t.type = E.MOUSE_UP; +t.bubbles = !0; +i.dispatchEvent(t); +t.stopPropagation(); +} +}, N = function(t) { +var e = t.getLocation(), i = this.owner; +if (i._hitTest(e, this)) { +t.type = E.MOUSE_WHEEL; +t.bubbles = !0; +i.dispatchEvent(t); +t.stopPropagation(); +} +}; +function k(t) { +var e = cc.Mask; +if (e) for (var i = 0, n = t; n && cc.Node.isNode(n); n = n._parent, ++i) if (n.getComponent(e)) return { +index: i, +node: n +}; +return null; +} +function z(t, e) { +if (!(t._objFlags & m)) { +var i = 0; +if (t._bubblingListeners) for (;i < e.length; ++i) if (t._bubblingListeners.hasEventListener(e[i])) return !0; +if (t._capturingListeners) for (;i < e.length; ++i) if (t._capturingListeners.hasEventListener(e[i])) return !0; +return !1; +} +return !0; +} +function G(t, e) { +var i, n; +e.target = t; +S.length = 0; +t._getCapturingTargets(e.type, S); +e.eventPhase = 1; +for (n = S.length - 1; n >= 0; --n) if ((i = S[n])._capturingListeners) { +e.currentTarget = i; +i._capturingListeners.emit(e.type, e, S); +if (e._propagationStopped) { +S.length = 0; +return; +} +} +S.length = 0; +e.eventPhase = 2; +e.currentTarget = t; +t._capturingListeners && t._capturingListeners.emit(e.type, e); +!e._propagationImmediateStopped && t._bubblingListeners && t._bubblingListeners.emit(e.type, e); +if (!e._propagationStopped && e.bubbles) { +t._getBubblingTargets(e.type, S); +e.eventPhase = 3; +for (n = 0; n < S.length; ++n) if ((i = S[n])._bubblingListeners) { +e.currentTarget = i; +i._bubblingListeners.emit(e.type, e); +if (e._propagationStopped) { +S.length = 0; +return; +} +} +} +S.length = 0; +} +function U(t) { +var e = t.groupIndex; +0 === e && t.parent && (e = U(t.parent)); +return e; +} +function j(t) { +var e = U(t); +t._cullingMask = 1 << e; +for (var i = 0; i < t._children.length; i++) j(t._children[i]); +} +var W = { +name: "cc.Node", +extends: o, +properties: { +_opacity: 255, +_color: cc.Color.WHITE, +_contentSize: cc.Size, +_anchorPoint: cc.v2(.5, .5), +_position: cc.Vec3, +_scale: cc.Vec3.ONE, +_eulerAngles: cc.Vec3, +_skewX: 0, +_skewY: 0, +_zIndex: { +default: void 0, +type: cc.Integer +}, +_localZOrder: { +default: 0, +serializable: !1 +}, +_is3DNode: !1, +groupIndex: { +default: 0, +type: cc.Integer +}, +group: { +get: function() { +return cc.game.groupList[this.groupIndex] || ""; +}, +set: function(t) { +this.groupIndex = cc.game.groupList.indexOf(t); +j(this); +this.emit(E.GROUP_CHANGED, this); +} +}, +x: { +get: function() { +return this._position.x; +}, +set: function(t) { +var e = this._position; +if (t !== e.x) { +e.x = t; +this.setLocalDirty(T.POSITION); +this._renderFlag |= d.FLAG_WORLD_TRANSFORM; +1 & this._eventMask && this.emit(E.POSITION_CHANGED); +} +} +}, +y: { +get: function() { +return this._position.y; +}, +set: function(t) { +var e = this._position; +if (t !== e.y) { +e.y = t; +this.setLocalDirty(T.POSITION); +this._renderFlag |= d.FLAG_WORLD_TRANSFORM; +1 & this._eventMask && this.emit(E.POSITION_CHANGED); +} +} +}, +rotation: { +get: function() { +0; +return -this.angle; +}, +set: function(t) { +0; +this.angle = -t; +} +}, +angle: { +get: function() { +return this._eulerAngles.z; +}, +set: function(t) { +s.vec3.set(this._eulerAngles, 0, 0, t); +s.quat.fromAngleZ(this._quat, t); +this.setLocalDirty(T.ROTATION); +this._renderFlag |= d.FLAG_TRANSFORM; +4 & this._eventMask && this.emit(E.ROTATION_CHANGED); +} +}, +rotationX: { +get: function() { +0; +return this._eulerAngles.x; +}, +set: function(t) { +0; +if (this._eulerAngles.x !== t) { +this._eulerAngles.x = t; +this._eulerAngles.x === this._eulerAngles.y ? s.quat.fromAngleZ(this._quat, -t) : s.quat.fromEuler(this._quat, t, this._eulerAngles.y, 0); +this.setLocalDirty(T.ROTATION); +this._renderFlag |= d.FLAG_TRANSFORM; +4 & this._eventMask && this.emit(E.ROTATION_CHANGED); +} +} +}, +rotationY: { +get: function() { +0; +return this._eulerAngles.y; +}, +set: function(t) { +0; +if (this._eulerAngles.y !== t) { +this._eulerAngles.y = t; +this._eulerAngles.x === this._eulerAngles.y ? s.quat.fromAngleZ(this._quat, -t) : s.quat.fromEuler(this._quat, this._eulerAngles.x, t, 0); +this.setLocalDirty(T.ROTATION); +this._renderFlag |= d.FLAG_TRANSFORM; +4 & this._eventMask && this.emit(E.ROTATION_CHANGED); +} +} +}, +scale: { +get: function() { +return this._scale.x; +}, +set: function(t) { +this.setScale(t); +} +}, +scaleX: { +get: function() { +return this._scale.x; +}, +set: function(t) { +if (this._scale.x !== t) { +this._scale.x = t; +this.setLocalDirty(T.SCALE); +this._renderFlag |= d.FLAG_TRANSFORM; +2 & this._eventMask && this.emit(E.SCALE_CHANGED); +} +} +}, +scaleY: { +get: function() { +return this._scale.y; +}, +set: function(t) { +if (this._scale.y !== t) { +this._scale.y = t; +this.setLocalDirty(T.SCALE); +this._renderFlag |= d.FLAG_TRANSFORM; +2 & this._eventMask && this.emit(E.SCALE_CHANGED); +} +} +}, +skewX: { +get: function() { +return this._skewX; +}, +set: function(t) { +this._skewX = t; +this.setLocalDirty(T.SKEW); +this._renderFlag |= d.FLAG_TRANSFORM; +} +}, +skewY: { +get: function() { +return this._skewY; +}, +set: function(t) { +this._skewY = t; +this.setLocalDirty(T.SKEW); +this._renderFlag |= d.FLAG_TRANSFORM; +} +}, +opacity: { +get: function() { +return this._opacity; +}, +set: function(t) { +t = cc.misc.clampf(t, 0, 255); +if (this._opacity !== t) { +this._opacity = t; +this._renderFlag |= d.FLAG_OPACITY; +} +}, +range: [ 0, 255 ] +}, +color: { +get: function() { +return this._color.clone(); +}, +set: function(t) { +if (!this._color.equals(t)) { +this._color.set(t); +0; +32 & this._eventMask && this.emit(E.COLOR_CHANGED, t); +} +} +}, +anchorX: { +get: function() { +return this._anchorPoint.x; +}, +set: function(t) { +var e = this._anchorPoint; +if (e.x !== t) { +e.x = t; +16 & this._eventMask && this.emit(E.ANCHOR_CHANGED); +} +} +}, +anchorY: { +get: function() { +return this._anchorPoint.y; +}, +set: function(t) { +var e = this._anchorPoint; +if (e.y !== t) { +e.y = t; +16 & this._eventMask && this.emit(E.ANCHOR_CHANGED); +} +} +}, +width: { +get: function() { +return this._contentSize.width; +}, +set: function(t) { +if (t !== this._contentSize.width) { +this._contentSize.width = t; +8 & this._eventMask && this.emit(E.SIZE_CHANGED); +} +} +}, +height: { +get: function() { +return this._contentSize.height; +}, +set: function(t) { +if (t !== this._contentSize.height) { +this._contentSize.height = t; +8 & this._eventMask && this.emit(E.SIZE_CHANGED); +} +} +}, +zIndex: { +get: function() { +return this._localZOrder >> 16; +}, +set: function(t) { +if (t > u.MAX_ZINDEX) { +cc.warnID(1636); +t = u.MAX_ZINDEX; +} else if (t < u.MIN_ZINDEX) { +cc.warnID(1637); +t = u.MIN_ZINDEX; +} +if (this.zIndex !== t) { +this._localZOrder = 65535 & this._localZOrder | t << 16; +this._parent && this._onSiblingIndexChanged(); +} +} +} +}, +ctor: function() { +this._reorderChildDirty = !1; +this._widget = null; +this._renderComponent = null; +this._capturingListeners = null; +this._bubblingListeners = null; +this._touchListener = null; +this._mouseListener = null; +this._matrix = c.mat4.get(); +this._worldMatrix = c.mat4.get(); +this._localMatDirty = T.ALL; +this._worldMatDirty = !0; +this._eventMask = 0; +this._cullingMask = 1; +this._childArrivalOrder = 1; +this._quat = cc.quat(); +}, +statics: { +EventType: E, +_LocalDirtyFlag: T, +isNode: function(t) { +return t instanceof H && (t.constructor === H || !(t instanceof cc.Scene)); +}, +BuiltinGroupIndex: w +}, +_onSiblingIndexChanged: function() { +for (var t = this._parent, e = t._children, i = 0, n = e.length; i < n; i++) e[i]._updateOrderOfArrival(); +t._delaySort(); +}, +_onPreDestroy: function() { +this._onPreDestroyBase(); +v && cc.director.getActionManager().removeAllActionsFromTarget(this); +D === this && (D = null); +if (this._touchListener || this._mouseListener) { +h.removeListeners(this); +if (this._touchListener) { +this._touchListener.owner = null; +this._touchListener.mask = null; +this._touchListener = null; +} +if (this._mouseListener) { +this._mouseListener.owner = null; +this._mouseListener.mask = null; +this._mouseListener = null; +} +} +c.mat4.put(this._matrix); +c.mat4.put(this._worldMatrix); +this._matrix = this._worldMatrix = null; +this._reorderChildDirty && cc.director.__fastOff(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this); +}, +_onPostActivated: function(t) { +var e = v ? cc.director.getActionManager() : null; +if (t) { +this._renderFlag |= d.FLAG_WORLD_TRANSFORM; +e && e.resumeTarget(this); +h.resumeTarget(this); +if (this._touchListener) { +var i = this._touchListener.mask = k(this); +this._mouseListener && (this._mouseListener.mask = i); +} else this._mouseListener && (this._mouseListener.mask = k(this)); +} else { +e && e.pauseTarget(this); +h.pauseTarget(this); +} +}, +_onHierarchyChanged: function(t) { +this._updateOrderOfArrival(); +j(this); +this._parent && this._parent._delaySort(); +this._renderFlag |= d.FLAG_WORLD_TRANSFORM; +this._onHierarchyChangedBase(t); +cc._widgetManager && (cc._widgetManager._nodesOrderDirty = !0); +}, +_toEuler: function() { +if (this.is3DNode) this._quat.toEuler(this._eulerAngles); else { +var t = Math.asin(this._quat.z) / p * 2; +s.vec3.set(this._eulerAngles, 0, 0, t); +} +}, +_fromEuler: function() { +this.is3DNode ? this._quat.fromEuler(this._eulerAngles) : s.quat.fromAngleZ(this._quat, this._eulerAngles.z); +}, +_upgrade_1x_to_2x: function() { +if (void 0 !== this._scaleX) { +this._scale.x = this._scaleX; +this._scaleX = void 0; +} +if (void 0 !== this._scaleY) { +this._scale.y = this._scaleY; +this._scaleY = void 0; +} +if (void 0 !== this._zIndex) { +this._localZOrder = this._zIndex << 16; +this._zIndex = void 0; +} +this._fromEuler(); +if (this._color.a < 255 && 255 === this._opacity) { +this._opacity = this._color.a; +this._color.a = 255; +} +}, +_onBatchCreated: function() { +var t = this._prefab; +if (t && t.sync && t.root === this) { +0; +a.syncWithPrefab(this); +} +this._upgrade_1x_to_2x(); +this._updateOrderOfArrival(); +this._cullingMask = 1 << U(this); +if (!this._activeInHierarchy) { +v && cc.director.getActionManager().pauseTarget(this); +h.pauseTarget(this); +} +for (var e = this._children, i = 0, n = e.length; i < n; i++) e[i]._onBatchCreated(); +e.length > 0 && (this._renderFlag |= d.FLAG_CHILDREN); +}, +_onBatchRestored: function() { +this._upgrade_1x_to_2x(); +this._cullingMask = 1 << U(this); +if (!this._activeInHierarchy) { +var t = cc.director.getActionManager(); +t && t.pauseTarget(this); +h.pauseTarget(this); +} +for (var e = this._children, i = 0, n = e.length; i < n; i++) e[i]._onBatchRestored(); +e.length > 0 && (this._renderFlag |= d.FLAG_CHILDREN); +}, +_checknSetupSysEvent: function(t) { +var e = !1, i = !1; +if (-1 !== M.indexOf(t)) { +if (!this._touchListener) { +this._touchListener = cc.EventListener.create({ +event: cc.EventListener.TOUCH_ONE_BY_ONE, +swallowTouches: !0, +owner: this, +mask: k(this), +onTouchBegan: I, +onTouchMoved: P, +onTouchEnded: R, +onTouchCancelled: L +}); +h.addListener(this._touchListener, this); +e = !0; +} +i = !0; +} else if (-1 !== B.indexOf(t)) { +if (!this._mouseListener) { +this._mouseListener = cc.EventListener.create({ +event: cc.EventListener.MOUSE, +_previousIn: !1, +owner: this, +mask: k(this), +onMouseDown: F, +onMouseMove: O, +onMouseUp: V, +onMouseScroll: N +}); +h.addListener(this._mouseListener, this); +e = !0; +} +i = !0; +} +e && !this._activeInHierarchy && cc.director.getScheduler().schedule((function() { +this._activeInHierarchy || h.pauseTarget(this); +}), this, 0, 0, 0, !1); +return i; +}, +on: function(t, e, i, n) { +if (this._checknSetupSysEvent(t)) return this._onDispatch(t, e, i, n); +switch (t) { +case E.POSITION_CHANGED: +this._eventMask |= 1; +break; + +case E.SCALE_CHANGED: +this._eventMask |= 2; +break; + +case E.ROTATION_CHANGED: +this._eventMask |= 4; +break; + +case E.SIZE_CHANGED: +this._eventMask |= 8; +break; + +case E.ANCHOR_CHANGED: +this._eventMask |= 16; +break; + +case E.COLOR_CHANGED: +this._eventMask |= 32; +} +this._bubblingListeners || (this._bubblingListeners = new f()); +return this._bubblingListeners.on(t, e, i); +}, +once: function(t, e, i, n) { +var r = this._checknSetupSysEvent(t), s = "__ONCE_FLAG:" + t, o = null; +if (!(o = r && n ? this._capturingListeners = this._capturingListeners || new f() : this._bubblingListeners = this._bubblingListeners || new f()).hasEventListener(s, e, i)) { +var a = this; +this.on(t, (function n(r, c, l, h, u) { +a.off(t, n, i); +o.remove(s, e, i); +e.call(this, r, c, l, h, u); +}), i); +o.add(s, e, i); +} +}, +_onDispatch: function(i, n, r, s) { +if ("boolean" === ("object" === (e = typeof r) ? t(r) : e)) { +s = r; +r = void 0; +} else s = !!s; +if (n) { +var o = null; +if (!(o = s ? this._capturingListeners = this._capturingListeners || new f() : this._bubblingListeners = this._bubblingListeners || new f()).hasEventListener(i, n, r)) { +o.add(i, n, r); +r && r.__eventTargets && r.__eventTargets.push(this); +} +return n; +} +cc.errorID(6800); +}, +off: function(t, e, i, n) { +var r = -1 !== M.indexOf(t), s = !r && -1 !== B.indexOf(t); +if (r || s) { +this._offDispatch(t, e, i, n); +if (r) { +if (this._touchListener && !z(this, M)) { +h.removeListener(this._touchListener); +this._touchListener = null; +} +} else if (s && this._mouseListener && !z(this, B)) { +h.removeListener(this._mouseListener); +this._mouseListener = null; +} +} else if (this._bubblingListeners) { +this._bubblingListeners.off(t, e, i); +if (!this._bubblingListeners.hasEventListener(t)) switch (t) { +case E.POSITION_CHANGED: +this._eventMask &= -2; +break; + +case E.SCALE_CHANGED: +this._eventMask &= -3; +break; + +case E.ROTATION_CHANGED: +this._eventMask &= -5; +break; + +case E.SIZE_CHANGED: +this._eventMask &= -9; +break; + +case E.ANCHOR_CHANGED: +this._eventMask &= -17; +break; + +case E.COLOR_CHANGED: +this._eventMask &= -33; +} +} +}, +_offDispatch: function(i, n, r, s) { +if ("boolean" === ("object" === (e = typeof r) ? t(r) : e)) { +s = r; +r = void 0; +} else s = !!s; +if (n) { +var o = s ? this._capturingListeners : this._bubblingListeners; +if (o) { +o.remove(i, n, r); +r && r.__eventTargets && _.array.fastRemove(r.__eventTargets, this); +} +} else { +this._capturingListeners && this._capturingListeners.removeAll(i); +this._bubblingListeners && this._bubblingListeners.removeAll(i); +} +}, +targetOff: function(t) { +var e = this._bubblingListeners; +if (e) { +e.targetOff(t); +1 & this._eventMask && !e.hasEventListener(E.POSITION_CHANGED) && (this._eventMask &= -2); +2 & this._eventMask && !e.hasEventListener(E.SCALE_CHANGED) && (this._eventMask &= -3); +4 & this._eventMask && !e.hasEventListener(E.ROTATION_CHANGED) && (this._eventMask &= -5); +8 & this._eventMask && !e.hasEventListener(E.SIZE_CHANGED) && (this._eventMask &= -9); +16 & this._eventMask && !e.hasEventListener(E.ANCHOR_CHANGED) && (this._eventMask &= -17); +32 & this._eventMask && !e.hasEventListener(E.COLOR_CHANGED) && (this._eventMask &= -33); +} +this._capturingListeners && this._capturingListeners.targetOff(t); +t && t.__eventTargets && _.array.fastRemove(t.__eventTargets, this); +if (this._touchListener && !z(this, M)) { +h.removeListener(this._touchListener); +this._touchListener = null; +} +if (this._mouseListener && !z(this, B)) { +h.removeListener(this._mouseListener); +this._mouseListener = null; +} +}, +hasEventListener: function(t) { +var e = !1; +this._bubblingListeners && (e = this._bubblingListeners.hasEventListener(t)); +!e && this._capturingListeners && (e = this._capturingListeners.hasEventListener(t)); +return e; +}, +emit: function(t, e, i, n, r, s) { +this._bubblingListeners && this._bubblingListeners.emit(t, e, i, n, r, s); +}, +dispatchEvent: function(t) { +G(this, t); +S.length = 0; +}, +pauseSystemEvents: function(t) { +h.pauseTarget(this, t); +}, +resumeSystemEvents: function(t) { +h.resumeTarget(this, t); +}, +_hitTest: function(t, e) { +var i = this._contentSize.width, n = this._contentSize.height, r = g, o = x, a = cc.Camera.findCamera(this); +a ? a.getScreenToWorldPoint(t, r) : r.set(t); +this._updateWorldMatrix(); +if (!s.mat4.invert(C, this._worldMatrix)) return !1; +s.vec2.transformMat4(o, r, C); +o.x += this._anchorPoint.x * i; +o.y += this._anchorPoint.y * n; +if (o.x >= 0 && o.y >= 0 && o.x <= i && o.y <= n) { +if (e && e.mask) { +for (var c = e.mask, l = this, h = 0; l && h < c.index; ++h, l = l.parent) ; +if (l === c.node) { +var u = l.getComponent(cc.Mask); +return !u || !u.enabledInHierarchy || u._hitTest(r); +} +e.mask = null; +return !0; +} +return !0; +} +return !1; +}, +_getCapturingTargets: function(t, e) { +for (var i = this.parent; i; ) { +i._capturingListeners && i._capturingListeners.hasEventListener(t) && e.push(i); +i = i.parent; +} +}, +_getBubblingTargets: function(t, e) { +for (var i = this.parent; i; ) { +i._bubblingListeners && i._bubblingListeners.hasEventListener(t) && e.push(i); +i = i.parent; +} +}, +runAction: v ? function(t) { +if (this.active) { +cc.assertID(t, 1618); +cc.director.getActionManager().addAction(t, this, !1); +return t; +} +} : y, +pauseAllActions: v ? function() { +cc.director.getActionManager().pauseTarget(this); +} : y, +resumeAllActions: v ? function() { +cc.director.getActionManager().resumeTarget(this); +} : y, +stopAllActions: v ? function() { +cc.director.getActionManager().removeAllActionsFromTarget(this); +} : y, +stopAction: v ? function(t) { +cc.director.getActionManager().removeAction(t); +} : y, +stopActionByTag: v ? function(t) { +t !== cc.Action.TAG_INVALID ? cc.director.getActionManager().removeActionByTag(t, this) : cc.logID(1612); +} : y, +getActionByTag: v ? function(t) { +if (t === cc.Action.TAG_INVALID) { +cc.logID(1613); +return null; +} +return cc.director.getActionManager().getActionByTag(t, this); +} : function() { +return null; +}, +getNumberOfRunningActions: v ? function() { +return cc.director.getActionManager().getNumberOfRunningActionsInTarget(this); +} : function() { +return 0; +}, +getPosition: function(t) { +return (t = t || cc.v3()).set(this._position); +}, +setPosition: function(t, e) { +var i; +if (void 0 === e) { +i = t.x; +e = t.y; +} else i = t; +var n = this._position; +if (n.x !== i || n.y !== e) { +n.x = i; +n.y = e; +this.setLocalDirty(T.POSITION); +this._renderFlag |= d.FLAG_WORLD_TRANSFORM; +1 & this._eventMask && this.emit(E.POSITION_CHANGED); +} +}, +getScale: function(t) { +if (t) return t.set(this._scale); +0; +return this._scale.x; +}, +setScale: function(i, n) { +if (i && "number" !== ("object" === (e = typeof i) ? t(i) : e)) { +n = i.y; +i = i.x; +} else void 0 === n && (n = i); +if (this._scale.x !== i || this._scale.y !== n) { +this._scale.x = i; +this._scale.y = n; +this.setLocalDirty(T.SCALE); +this._renderFlag |= d.FLAG_TRANSFORM; +2 & this._eventMask && this.emit(E.SCALE_CHANGED); +} +}, +getRotation: function(t) { +if (t instanceof cc.Quat) return t.set(this._quat); +0; +return -this.angle; +}, +setRotation: function(i, n, r, s) { +if ("number" === ("object" === (e = typeof i) ? t(i) : e) && void 0 === n) { +0; +this.angle = -i; +} else { +var o = i; +if (void 0 === n) { +o = i.x; +n = i.y; +r = i.z; +s = i.w; +} +var a = this._quat; +if (a.x !== o || a.y !== n || a.z !== r || a.w !== s) { +a.x = o; +a.y = n; +a.z = r; +a.w = s; +this.setLocalDirty(T.ROTATION); +this._renderFlag |= d.FLAG_TRANSFORM; +4 & this._eventMask && this.emit(E.ROTATION_CHANGED); +0; +} +} +}, +getContentSize: function() { +return cc.size(this._contentSize.width, this._contentSize.height); +}, +setContentSize: function(t, e) { +var i = this._contentSize; +if (void 0 === e) { +if (t.width === i.width && t.height === i.height) return; +0; +i.width = t.width; +i.height = t.height; +} else { +if (t === i.width && e === i.height) return; +0; +i.width = t; +i.height = e; +} +8 & this._eventMask && this.emit(E.SIZE_CHANGED); +}, +getAnchorPoint: function() { +return cc.v2(this._anchorPoint); +}, +setAnchorPoint: function(t, e) { +var i = this._anchorPoint; +if (void 0 === e) { +if (t.x === i.x && t.y === i.y) return; +i.x = t.x; +i.y = t.y; +} else { +if (t === i.x && e === i.y) return; +i.x = t; +i.y = e; +} +this.setLocalDirty(T.POSITION); +16 & this._eventMask && this.emit(E.ANCHOR_CHANGED); +}, +_invTransformPoint: function(t, e) { +this._parent ? this._parent._invTransformPoint(t, e) : s.vec3.copy(t, e); +s.vec3.sub(t, t, this._position); +s.quat.conjugate(A, this._quat); +s.vec3.transformQuat(t, t, A); +s.vec3.inverseSafe(b, this._scale); +s.vec3.mul(t, t, b); +return t; +}, +getWorldPosition: function(t) { +s.vec3.copy(t, this._position); +for (var e = this._parent; e; ) { +s.vec3.mul(t, t, e._scale); +s.vec3.transformQuat(t, t, e._quat); +s.vec3.add(t, t, e._position); +e = e._parent; +} +return t; +}, +setWorldPosition: function(t) { +this._parent ? this._parent._invTransformPoint(this._position, t) : s.vec3.copy(this._position, t); +this.setLocalDirty(T.POSITION); +1 & this._eventMask && this.emit(E.POSITION_CHANGED); +}, +getWorldRotation: function(t) { +s.quat.copy(t, this._quat); +for (var e = this._parent; e; ) { +s.quat.mul(t, e._quat, t); +e = e._parent; +} +return t; +}, +setWorldRotation: function(t) { +if (this._parent) { +this._parent.getWorldRotation(this._quat); +s.quat.conjugate(this._quat, this._quat); +s.quat.mul(this._quat, this._quat, t); +} else s.quat.copy(this._quat, s.quat); +this._toEuler(); +this.setLocalDirty(T.ROTATION); +}, +getWorldScale: function(t) { +s.vec3.copy(t, this._scale); +for (var e = this._parent; e; ) { +s.vec3.mul(t, t, e._scale); +e = e._parent; +} +return t; +}, +setWorldScale: function(t) { +if (this._parent) { +this._parent.getWorldScale(this._scale); +s.vec3.div(this._scale, t, this._scale); +} else s.vec3.copy(this._scale, t); +this.setLocalDirty(T.SCALE); +}, +getWorldRT: function(t) { +var e = b, i = A; +s.vec3.copy(e, this._position); +s.quat.copy(i, this._quat); +for (var n = this._parent; n; ) { +s.vec3.mul(e, e, n._scale); +s.vec3.transformQuat(e, e, n._quat); +s.vec3.add(e, e, n._position); +s.quat.mul(i, n._quat, i); +n = n._parent; +} +s.mat4.fromRT(t, i, e); +return t; +}, +lookAt: function(t, e) { +this.getWorldPosition(b); +s.vec3.sub(b, b, t); +s.vec3.normalize(b, b); +s.quat.fromViewUp(A, b, e); +this.setWorldRotation(A); +}, +_updateLocalMatrix: function() { +var t = this._localMatDirty; +if (t) { +var e = this._matrix; +if (t & (T.RT | T.SKEW)) { +var i = -this._eulerAngles.z, n = this._skewX || this._skewY, r = this._scale.x, s = this._scale.y; +if (i || n) { +var o = 1, a = 0, c = 0, l = 1; +if (i) { +var h = i * p; +c = Math.sin(h); +o = l = Math.cos(h); +a = -c; +} +e.m00 = o *= r; +e.m01 = a *= r; +e.m04 = c *= s; +e.m05 = l *= s; +if (n) { +var u = e.m00, _ = e.m01, f = e.m04, d = e.m05, m = Math.tan(this._skewX * p), v = Math.tan(this._skewY * p); +Infinity === m && (m = 99999999); +Infinity === v && (v = 99999999); +e.m00 = u + f * v; +e.m01 = _ + d * v; +e.m04 = f + u * m; +e.m05 = d + _ * m; +} +} else { +e.m00 = r; +e.m01 = 0; +e.m04 = 0; +e.m05 = s; +} +} +e.m12 = this._position.x; +e.m13 = this._position.y; +this._localMatDirty = 0; +this._worldMatDirty = !0; +} +}, +_calculWorldMatrix: function() { +this._localMatDirty && this._updateLocalMatrix(); +var t = this._parent; +t ? this._mulMat(this._worldMatrix, t._worldMatrix, this._matrix) : s.mat4.copy(this._worldMatrix, this._matrix); +this._worldMatDirty = !1; +}, +_mulMat: function(t, e, i) { +var n = e.m00, r = e.m01, s = e.m04, o = e.m05, a = e.m12, c = e.m13, l = i.m00, h = i.m01, u = i.m04, _ = i.m05, f = i.m12, d = i.m13; +if (0 !== r || 0 !== s) { +t.m00 = l * n + h * s; +t.m01 = l * r + h * o; +t.m04 = u * n + _ * s; +t.m05 = u * r + _ * o; +t.m12 = n * f + s * d + a; +t.m13 = r * f + o * d + c; +} else { +t.m00 = l * n; +t.m01 = h * o; +t.m04 = u * n; +t.m05 = _ * o; +t.m12 = n * f + a; +t.m13 = o * d + c; +} +}, +_updateWorldMatrix: function() { +this._parent && this._parent._updateWorldMatrix(); +if (this._worldMatDirty) { +this._calculWorldMatrix(); +for (var t = this._children, e = 0, i = t.length; e < i; e++) t[e]._worldMatDirty = !0; +} +}, +setLocalDirty: function(t) { +this._localMatDirty = this._localMatDirty | t; +this._worldMatDirty = !0; +}, +setWorldDirty: function() { +this._worldMatDirty = !0; +}, +getLocalMatrix: function(t) { +this._updateLocalMatrix(); +return s.mat4.copy(t, this._matrix); +}, +getWorldMatrix: function(t) { +this._updateWorldMatrix(); +return s.mat4.copy(t, this._worldMatrix); +}, +convertToNodeSpaceAR: function(t, e) { +this._updateWorldMatrix(); +s.mat4.invert(C, this._worldMatrix); +if (t instanceof cc.Vec2) { +e = e || new cc.Vec2(); +return s.vec2.transformMat4(e, t, C); +} +e = e || new cc.Vec3(); +return s.vec3.transformMat4(e, t, C); +}, +convertToWorldSpaceAR: function(t, e) { +this._updateWorldMatrix(); +if (t instanceof cc.Vec2) { +e = e || new cc.Vec2(); +return s.vec2.transformMat4(e, t, this._worldMatrix); +} +e = e || new cc.Vec3(); +return s.vec3.transformMat4(e, t, this._worldMatrix); +}, +convertToNodeSpace: function(t) { +this._updateWorldMatrix(); +s.mat4.invert(C, this._worldMatrix); +var e = new cc.Vec2(); +s.vec2.transformMat4(e, t, C); +e.x += this._anchorPoint.x * this._contentSize.width; +e.y += this._anchorPoint.y * this._contentSize.height; +return e; +}, +convertToWorldSpace: function(t) { +this._updateWorldMatrix(); +var e = new cc.Vec2(t.x - this._anchorPoint.x * this._contentSize.width, t.y - this._anchorPoint.y * this._contentSize.height); +return s.vec2.transformMat4(e, e, this._worldMatrix); +}, +getNodeToParentTransform: function(t) { +t || (t = l.identity()); +this._updateLocalMatrix(); +var e = this._contentSize; +b.x = -this._anchorPoint.x * e.width; +b.y = -this._anchorPoint.y * e.height; +s.mat4.copy(C, this._matrix); +s.mat4.translate(C, C, b); +return l.fromMat4(t, C); +}, +getNodeToParentTransformAR: function(t) { +t || (t = l.identity()); +this._updateLocalMatrix(); +return l.fromMat4(t, this._matrix); +}, +getNodeToWorldTransform: function(t) { +t || (t = l.identity()); +this._updateWorldMatrix(); +var e = this._contentSize; +b.x = -this._anchorPoint.x * e.width; +b.y = -this._anchorPoint.y * e.height; +s.mat4.copy(C, this._worldMatrix); +s.mat4.translate(C, C, b); +return l.fromMat4(t, C); +}, +getNodeToWorldTransformAR: function(t) { +t || (t = l.identity()); +this._updateWorldMatrix(); +return l.fromMat4(t, this._worldMatrix); +}, +getParentToNodeTransform: function(t) { +t || (t = l.identity()); +this._updateLocalMatrix(); +s.mat4.invert(C, this._matrix); +return l.fromMat4(t, C); +}, +getWorldToNodeTransform: function(t) { +t || (t = l.identity()); +this._updateWorldMatrix(); +s.mat4.invert(C, this._worldMatrix); +return l.fromMat4(t, C); +}, +convertTouchToNodeSpace: function(t) { +return this.convertToNodeSpace(t.getLocation()); +}, +convertTouchToNodeSpaceAR: function(t) { +return this.convertToNodeSpaceAR(t.getLocation()); +}, +getBoundingBox: function() { +this._updateLocalMatrix(); +var t = this._contentSize.width, e = this._contentSize.height, i = cc.rect(-this._anchorPoint.x * t, -this._anchorPoint.y * e, t, e); +return i.transformMat4(i, this._matrix); +}, +getBoundingBoxToWorld: function() { +if (this._parent) { +this._parent._updateWorldMatrix(); +return this._getBoundingBoxTo(this._parent._worldMatrix); +} +return this.getBoundingBox(); +}, +_getBoundingBoxTo: function(t) { +this._updateLocalMatrix(); +var e = this._contentSize.width, i = this._contentSize.height, n = cc.rect(-this._anchorPoint.x * e, -this._anchorPoint.y * i, e, i); +t = s.mat4.mul(this._worldMatrix, t, this._matrix); +n.transformMat4(n, t); +if (!this._children) return n; +for (var r = this._children, o = 0; o < r.length; o++) { +var a = r[o]; +if (a && a.active) { +var c = a._getBoundingBoxTo(t); +c && n.union(n, c); +} +} +return n; +}, +_updateOrderOfArrival: function() { +var t = this._parent ? ++this._parent._childArrivalOrder : 0; +this._localZOrder = 4294901760 & this._localZOrder | t; +if (65535 === t) { +var e = this._parent._children; +e.forEach((function(t, e) { +t._localZOrder = 4294901760 & t._localZOrder | e + 1; +})); +this._parent._childArrivalOrder = e.length; +} +}, +addChild: function(t, e, i) { +0; +cc.assertID(t, 1606); +cc.assertID(null === t._parent, 1605); +t.parent = this; +void 0 !== e && (t.zIndex = e); +void 0 !== i && (t.name = i); +}, +cleanup: function() { +v && cc.director.getActionManager().removeAllActionsFromTarget(this); +h.removeListeners(this); +var t, e, i = this._children.length; +for (t = 0; t < i; ++t) (e = this._children[t]) && e.cleanup(); +}, +sortAllChildren: function() { +if (this._reorderChildDirty) { +h._setDirtyForNode(this); +this._reorderChildDirty = !1; +var t = this._children; +if (t.length > 1) { +var e, i, n, r = t.length; +for (e = 1; e < r; e++) { +n = t[e]; +i = e - 1; +for (;i >= 0 && n._localZOrder < t[i]._localZOrder; ) { +t[i + 1] = t[i]; +i--; +} +t[i + 1] = n; +} +this.emit(E.CHILD_REORDER, this); +} +cc.director.__fastOff(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this); +} +}, +_delaySort: function() { +if (!this._reorderChildDirty) { +this._reorderChildDirty = !0; +cc.director.__fastOn(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this); +} +}, +_restoreProperties: !1, +onRestore: !1 +}; +0; +var H = cc.Class(W), q = H.prototype; +_.getset(q, "position", q.getPosition, q.setPosition, !1, !0); +cc.Node = n.exports = H; +}), { +"./event-manager": 131, +"./event/event": 134, +"./event/event-target": 133, +"./platform/CCMacro": 206, +"./platform/js": 221, +"./renderer/render-flow": 245, +"./utils/affine-transform": 286, +"./utils/base-node": 287, +"./utils/math-pools": 295, +"./utils/prefab-helper": 299, +"./vmath": 317 +} ], +53: [ (function(t, e, i) { +"use strict"; +var n = t("./CCNode"), r = t("./renderer/render-flow"), s = (cc.Object.Flags.HideInHierarchy, +n._LocalDirtyFlag), o = cc.Class({ +name: "cc.PrivateNode", +extends: n, +properties: { +x: { +get: function() { +return this._originPos.x; +}, +set: function(t) { +var e = this._originPos; +if (t !== e.x) { +e.x = t; +this._posDirty(!0); +} +}, +override: !0 +}, +y: { +get: function() { +return this._originPos.y; +}, +set: function(t) { +var e = this._originPos; +if (t !== e.y) { +e.y = t; +this._posDirty(!0); +} +}, +override: !0 +}, +zIndex: { +get: function() { +return cc.macro.MIN_ZINDEX; +}, +set: function() { +cc.warnID(1638); +}, +override: !0 +}, +showInEditor: { +default: !1, +editorOnly: !0, +override: !0 +} +}, +ctor: function(t) { +this._localZOrder = cc.macro.MIN_ZINDEX << 16; +this._originPos = cc.v2(); +0; +}, +_posDirty: function(t) { +this.setLocalDirty(s.POSITION); +this._renderFlag |= r.FLAG_TRANSFORM; +!0 === t && 1 & this._eventMask && this.emit(n.EventType.POSITION_CHANGED); +}, +_updateLocalMatrix: function() { +if (this._localMatDirty) { +var t = this.parent; +if (t) { +this._position.x = this._originPos.x - (t._anchorPoint.x - .5) * t._contentSize.width; +this._position.y = this._originPos.y - (t._anchorPoint.y - .5) * t._contentSize.height; +} +this._super(); +} +}, +getPosition: function() { +return new cc.Vec2(this._originPos); +}, +setPosition: function(t, e) { +void 0 === e && (e = (t = t.x).y); +var i = this._originPos; +if (i.x !== t || i.y !== e) { +i.x = t; +i.y = e; +this._posDirty(!0); +} +}, +setParent: function(t) { +var e = this._parent; +this._super(t); +if (e !== t) { +e && e.off(n.EventType.ANCHOR_CHANGED, this._posDirty, this); +t && t.on(n.EventType.ANCHOR_CHANGED, this._posDirty, this); +} +}, +_updateOrderOfArrival: function() {} +}); +cc.js.getset(o.prototype, "parent", o.prototype.getParent, o.prototype.setParent); +cc.js.getset(o.prototype, "position", o.prototype.getPosition, o.prototype.setPosition); +cc.PrivateNode = e.exports = o; +}), { +"./CCNode": 52, +"./renderer/render-flow": 245 +} ], +54: [ (function(t, e, i) { +"use strict"; +cc.Scene = cc.Class({ +name: "cc.Scene", +extends: t("./CCNode"), +properties: { +_is3DNode: { +default: !0, +override: !0 +}, +autoReleaseAssets: { +default: void 0, +type: cc.Boolean +} +}, +ctor: function() { +this._anchorPoint.x = 0; +this._anchorPoint.y = 0; +this._activeInHierarchy = !1; +this._inited = !cc.game._isCloning; +0; +this.dependAssets = null; +}, +destroy: function() { +if (cc.Object.prototype.destroy.call(this)) for (var t = this._children, e = 0; e < t.length; ++e) t[e].active = !1; +this._active = !1; +this._activeInHierarchy = !1; +}, +_onHierarchyChanged: function() {}, +_instantiate: null, +_load: function() { +if (!this._inited) { +0; +this._onBatchCreated(); +this._inited = !0; +} +}, +_activate: function(t) { +t = !1 !== t; +0; +cc.director._nodeActivator.activateNode(this, t); +} +}); +e.exports = cc.Scene; +}), { +"./CCNode": 52 +} ], +55: [ (function(i, n, r) { +"use strict"; +var s = i("./platform/js"), o = new (i("./platform/id-generater"))("Scheduler"), a = function(t, e, i, n) { +this.target = t; +this.priority = e; +this.paused = i; +this.markedForDeletion = n; +}, c = []; +a.get = function(t, e, i, n) { +var r = c.pop(); +if (r) { +r.target = t; +r.priority = e; +r.paused = i; +r.markedForDeletion = n; +} else r = new a(t, e, i, n); +return r; +}; +a.put = function(t) { +if (c.length < 20) { +t.target = null; +c.push(t); +} +}; +var l = function(t, e, i, n) { +this.list = t; +this.entry = e; +this.target = i; +this.callback = n; +}, h = []; +l.get = function(t, e, i, n) { +var r = h.pop(); +if (r) { +r.list = t; +r.entry = e; +r.target = i; +r.callback = n; +} else r = new l(t, e, i, n); +return r; +}; +l.put = function(t) { +if (h.length < 20) { +t.list = t.entry = t.target = t.callback = null; +h.push(t); +} +}; +var u = function(t, e, i, n, r, s) { +var o = this; +o.timers = t; +o.target = e; +o.timerIndex = i; +o.currentTimer = n; +o.currentTimerSalvaged = r; +o.paused = s; +}, _ = []; +u.get = function(t, e, i, n, r, s) { +var o = _.pop(); +if (o) { +o.timers = t; +o.target = e; +o.timerIndex = i; +o.currentTimer = n; +o.currentTimerSalvaged = r; +o.paused = s; +} else o = new u(t, e, i, n, r, s); +return o; +}; +u.put = function(t) { +if (_.length < 20) { +t.timers = t.target = t.currentTimer = null; +_.push(t); +} +}; +function f() { +this._lock = !1; +this._scheduler = null; +this._elapsed = -1; +this._runForever = !1; +this._useDelay = !1; +this._timesExecuted = 0; +this._repeat = 0; +this._delay = 0; +this._interval = 0; +this._target = null; +this._callback = null; +} +var d = f.prototype; +d.initWithCallback = function(t, e, i, n, r, s) { +this._lock = !1; +this._scheduler = t; +this._target = i; +this._callback = e; +this._elapsed = -1; +this._interval = n; +this._delay = s; +this._useDelay = this._delay > 0; +this._repeat = r; +this._runForever = this._repeat === cc.macro.REPEAT_FOREVER; +return !0; +}; +d.getInterval = function() { +return this._interval; +}; +d.setInterval = function(t) { +this._interval = t; +}; +d.update = function(t) { +if (-1 === this._elapsed) { +this._elapsed = 0; +this._timesExecuted = 0; +} else { +this._elapsed += t; +if (this._runForever && !this._useDelay) { +if (this._elapsed >= this._interval) { +this.trigger(); +this._elapsed = 0; +} +} else { +if (this._useDelay) { +if (this._elapsed >= this._delay) { +this.trigger(); +this._elapsed -= this._delay; +this._timesExecuted += 1; +this._useDelay = !1; +} +} else if (this._elapsed >= this._interval) { +this.trigger(); +this._elapsed = 0; +this._timesExecuted += 1; +} +this._callback && !this._runForever && this._timesExecuted > this._repeat && this.cancel(); +} +} +}; +d.getCallback = function() { +return this._callback; +}; +d.trigger = function() { +if (this._target && this._callback) { +this._lock = !0; +this._callback.call(this._target, this._elapsed); +this._lock = !1; +} +}; +d.cancel = function() { +this._scheduler.unschedule(this._callback, this._target); +}; +var m = []; +f.get = function() { +return m.pop() || new f(); +}; +f.put = function(t) { +if (m.length < 20 && !t._lock) { +t._scheduler = t._target = t._callback = null; +m.push(t); +} +}; +cc.Scheduler = function() { +this._timeScale = 1; +this._updatesNegList = []; +this._updates0List = []; +this._updatesPosList = []; +this._hashForUpdates = s.createMap(!0); +this._hashForTimers = s.createMap(!0); +this._currentTarget = null; +this._currentTargetSalvaged = !1; +this._updateHashLocked = !1; +this._arrayForTimers = []; +}; +cc.Scheduler.prototype = { +constructor: cc.Scheduler, +_removeHashElement: function(t) { +delete this._hashForTimers[t.target._id]; +for (var e = this._arrayForTimers, i = 0, n = e.length; i < n; i++) if (e[i] === t) { +e.splice(i, 1); +break; +} +u.put(t); +}, +_removeUpdateFromHash: function(t) { +var e = t.target._id, i = this._hashForUpdates[e]; +if (i) { +for (var n = i.list, r = i.entry, s = 0, o = n.length; s < o; s++) if (n[s] === r) { +n.splice(s, 1); +break; +} +delete this._hashForUpdates[e]; +a.put(r); +l.put(i); +} +}, +_priorityIn: function(t, e, i) { +for (var n = 0; n < t.length; n++) if (i < t[n].priority) { +t.splice(n, 0, e); +return; +} +t.push(e); +}, +_appendIn: function(t, e) { +t.push(e); +}, +enableForTarget: function(t) { +t._id || (t.__instanceId ? cc.warnID(1513) : t._id = o.getNewId()); +}, +setTimeScale: function(t) { +this._timeScale = t; +}, +getTimeScale: function() { +return this._timeScale; +}, +update: function(t) { +this._updateHashLocked = !0; +1 !== this._timeScale && (t *= this._timeScale); +var e, i, n, r; +for (e = 0, n = (i = this._updatesNegList).length; e < n; e++) (r = i[e]).paused || r.markedForDeletion || r.target.update(t); +for (e = 0, n = (i = this._updates0List).length; e < n; e++) (r = i[e]).paused || r.markedForDeletion || r.target.update(t); +for (e = 0, n = (i = this._updatesPosList).length; e < n; e++) (r = i[e]).paused || r.markedForDeletion || r.target.update(t); +var s, o = this._arrayForTimers; +for (e = 0; e < o.length; e++) { +s = o[e]; +this._currentTarget = s; +this._currentTargetSalvaged = !1; +if (!s.paused) for (s.timerIndex = 0; s.timerIndex < s.timers.length; ++s.timerIndex) { +s.currentTimer = s.timers[s.timerIndex]; +s.currentTimerSalvaged = !1; +s.currentTimer.update(t); +s.currentTimer = null; +} +if (this._currentTargetSalvaged && 0 === this._currentTarget.timers.length) { +this._removeHashElement(this._currentTarget); +--e; +} +} +for (e = 0, i = this._updatesNegList; e < i.length; ) (r = i[e]).markedForDeletion ? this._removeUpdateFromHash(r) : e++; +for (e = 0, i = this._updates0List; e < i.length; ) (r = i[e]).markedForDeletion ? this._removeUpdateFromHash(r) : e++; +for (e = 0, i = this._updatesPosList; e < i.length; ) (r = i[e]).markedForDeletion ? this._removeUpdateFromHash(r) : e++; +this._updateHashLocked = !1; +this._currentTarget = null; +}, +schedule: function(i, n, r, s, o, a) { +if ("function" !== ("object" === (e = typeof i) ? t(i) : e)) { +var c = i; +i = n; +n = c; +} +if (4 === arguments.length || 5 === arguments.length) { +a = !!s; +s = cc.macro.REPEAT_FOREVER; +o = 0; +} +cc.assertID(n, 1502); +var l = n._id; +if (!l) if (n.__instanceId) { +cc.warnID(1513); +l = n._id = n.__instanceId; +} else cc.errorID(1510); +var h, _, d = this._hashForTimers[l]; +if (d) d.paused !== a && cc.warnID(1511); else { +d = u.get(null, n, 0, null, null, a); +this._arrayForTimers.push(d); +this._hashForTimers[l] = d; +} +if (null == d.timers) d.timers = []; else for (_ = 0; _ < d.timers.length; ++_) if ((h = d.timers[_]) && i === h._callback) { +cc.logID(1507, h.getInterval(), r); +h._interval = r; +return; +} +(h = f.get()).initWithCallback(this, i, n, r, s, o); +d.timers.push(h); +this._currentTarget === d && this._currentTargetSalvaged && (this._currentTargetSalvaged = !1); +}, +scheduleUpdate: function(t, e, i) { +var n = t._id; +if (!n) if (t.__instanceId) { +cc.warnID(1513); +n = t._id = t.__instanceId; +} else cc.errorID(1510); +var r = this._hashForUpdates[n]; +if (r && r.entry) { +if (r.entry.priority === e) { +r.entry.markedForDeletion = !1; +r.entry.paused = i; +return; +} +if (this._updateHashLocked) { +cc.logID(1506); +r.entry.markedForDeletion = !1; +r.entry.paused = i; +return; +} +this.unscheduleUpdate(t); +} +var s, o = a.get(t, e, i, !1); +if (0 === e) { +s = this._updates0List; +this._appendIn(s, o); +} else { +s = e < 0 ? this._updatesNegList : this._updatesPosList; +this._priorityIn(s, o, e); +} +this._hashForUpdates[n] = l.get(s, o, t, null); +}, +unschedule: function(t, e) { +if (e && t) { +var i = e._id; +if (!i) if (e.__instanceId) { +cc.warnID(1513); +i = e._id = e.__instanceId; +} else cc.errorID(1510); +var n = this._hashForTimers[i]; +if (n) for (var r = n.timers, s = 0, o = r.length; s < o; s++) { +var a = r[s]; +if (t === a._callback) { +a !== n.currentTimer || n.currentTimerSalvaged || (n.currentTimerSalvaged = !0); +r.splice(s, 1); +f.put(a); +n.timerIndex >= s && n.timerIndex--; +0 === r.length && (this._currentTarget === n ? this._currentTargetSalvaged = !0 : this._removeHashElement(n)); +return; +} +} +} +}, +unscheduleUpdate: function(t) { +if (t) { +var e = t._id; +if (!e) if (t.__instanceId) { +cc.warnID(1513); +e = t._id = t.__instanceId; +} else cc.errorID(1510); +var i = this._hashForUpdates[e]; +i && (this._updateHashLocked ? i.entry.markedForDeletion = !0 : this._removeUpdateFromHash(i.entry)); +} +}, +unscheduleAllForTarget: function(t) { +if (t) { +var e = t._id; +if (!e) if (t.__instanceId) { +cc.warnID(1513); +e = t._id = t.__instanceId; +} else cc.errorID(1510); +var i = this._hashForTimers[e]; +if (i) { +var n = i.timers; +n.indexOf(i.currentTimer) > -1 && !i.currentTimerSalvaged && (i.currentTimerSalvaged = !0); +for (var r = 0, s = n.length; r < s; r++) f.put(n[r]); +n.length = 0; +this._currentTarget === i ? this._currentTargetSalvaged = !0 : this._removeHashElement(i); +} +this.unscheduleUpdate(t); +} +}, +unscheduleAll: function() { +this.unscheduleAllWithMinPriority(cc.Scheduler.PRIORITY_SYSTEM); +}, +unscheduleAllWithMinPriority: function(t) { +var e, i, n, r = this._arrayForTimers; +for (e = r.length - 1; e >= 0; e--) { +i = r[e]; +this.unscheduleAllForTarget(i.target); +} +var s = 0; +if (t < 0) for (e = 0; e < this._updatesNegList.length; ) { +s = this._updatesNegList.length; +(n = this._updatesNegList[e]) && n.priority >= t && this.unscheduleUpdate(n.target); +s == this._updatesNegList.length && e++; +} +if (t <= 0) for (e = 0; e < this._updates0List.length; ) { +s = this._updates0List.length; +(n = this._updates0List[e]) && this.unscheduleUpdate(n.target); +s == this._updates0List.length && e++; +} +for (e = 0; e < this._updatesPosList.length; ) { +s = this._updatesPosList.length; +(n = this._updatesPosList[e]) && n.priority >= t && this.unscheduleUpdate(n.target); +s == this._updatesPosList.length && e++; +} +}, +isScheduled: function(t, e) { +cc.assertID(t, 1508); +cc.assertID(e, 1509); +var i = e._id; +if (!i) if (e.__instanceId) { +cc.warnID(1513); +i = e._id = e.__instanceId; +} else cc.errorID(1510); +var n = this._hashForTimers[i]; +if (!n) return !1; +if (null == n.timers) return !1; +for (var r = n.timers, s = 0; s < r.length; ++s) { +if (t === r[s]._callback) return !0; +} +return !1; +}, +pauseAllTargets: function() { +return this.pauseAllTargetsWithMinPriority(cc.Scheduler.PRIORITY_SYSTEM); +}, +pauseAllTargetsWithMinPriority: function(t) { +var e, i, n, r, s = [], o = this._arrayForTimers; +for (i = 0, n = o.length; i < n; i++) if (e = o[i]) { +e.paused = !0; +s.push(e.target); +} +if (t < 0) for (i = 0; i < this._updatesNegList.length; i++) if ((r = this._updatesNegList[i]) && r.priority >= t) { +r.paused = !0; +s.push(r.target); +} +if (t <= 0) for (i = 0; i < this._updates0List.length; i++) if (r = this._updates0List[i]) { +r.paused = !0; +s.push(r.target); +} +for (i = 0; i < this._updatesPosList.length; i++) if ((r = this._updatesPosList[i]) && r.priority >= t) { +r.paused = !0; +s.push(r.target); +} +return s; +}, +resumeTargets: function(t) { +if (t) for (var e = 0; e < t.length; e++) this.resumeTarget(t[e]); +}, +pauseTarget: function(t) { +cc.assertID(t, 1503); +var e = t._id; +if (!e) if (t.__instanceId) { +cc.warnID(1513); +e = t._id = t.__instanceId; +} else cc.errorID(1510); +var i = this._hashForTimers[e]; +i && (i.paused = !0); +var n = this._hashForUpdates[e]; +n && (n.entry.paused = !0); +}, +resumeTarget: function(t) { +cc.assertID(t, 1504); +var e = t._id; +if (!e) if (t.__instanceId) { +cc.warnID(1513); +e = t._id = t.__instanceId; +} else cc.errorID(1510); +var i = this._hashForTimers[e]; +i && (i.paused = !1); +var n = this._hashForUpdates[e]; +n && (n.entry.paused = !1); +}, +isTargetPaused: function(t) { +cc.assertID(t, 1505); +var e = t._id; +if (!e) if (t.__instanceId) { +cc.warnID(1513); +e = t._id = t.__instanceId; +} else cc.errorID(1510); +var i = this._hashForTimers[e]; +if (i) return i.paused; +var n = this._hashForUpdates[e]; +return !!n && n.entry.paused; +} +}; +cc.Scheduler.PRIORITY_SYSTEM = 1 << 31; +cc.Scheduler.PRIORITY_NON_SYSTEM = cc.Scheduler.PRIORITY_SYSTEM + 1; +n.exports = cc.Scheduler; +}), { +"./platform/id-generater": 217, +"./platform/js": 221 +} ], +56: [ (function(t, e, i) { +"use strict"; +var n = t("./CCRawAsset"); +cc.Asset = cc.Class({ +name: "cc.Asset", +extends: n, +ctor: function() { +this.loaded = !0; +this.url = ""; +}, +properties: { +nativeUrl: { +get: function() { +if (this._native) { +var t = this._native; +if (47 === t.charCodeAt(0)) return t.slice(1); +if (cc.AssetLibrary) { +var e = cc.AssetLibrary.getLibUrlNoExt(this._uuid, !0); +return 46 === t.charCodeAt(0) ? e + t : e + "/" + t; +} +cc.errorID(6400); +} +return ""; +}, +visible: !1 +}, +_native: "", +_nativeAsset: { +get: function() { +return this._$nativeAsset; +}, +set: function(t) { +this._$nativeAsset = t; +} +} +}, +statics: { +deserialize: !1, +preventDeferredLoadDependents: !1, +preventPreloadNativeObject: !1 +}, +toString: function() { +return this.nativeUrl; +}, +serialize: !1, +createNode: null, +_setRawAsset: function(t, e) { +this._native = !1 !== e ? t || void 0 : "/" + t; +} +}); +e.exports = cc.Asset; +}), { +"./CCRawAsset": 65 +} ], +57: [ (function(t, e, i) { +"use strict"; +var n = t("./CCAsset"), r = t("../event/event-target"), s = cc.Enum({ +WEB_AUDIO: 0, +DOM_AUDIO: 1 +}), o = cc.Class({ +name: "cc.AudioClip", +extends: n, +mixins: [ r ], +ctor: function() { +this.loaded = !1; +this._audio = null; +}, +properties: { +loadMode: { +default: s.WEB_AUDIO, +type: s +}, +_nativeAsset: { +get: function() { +return this._audio; +}, +set: function(t) { +t instanceof cc.AudioClip ? this._audio = t._nativeAsset : this._audio = t; +if (this._audio) { +this.loaded = !0; +this.emit("load"); +} +}, +override: !0 +} +}, +statics: { +LoadMode: s, +_loadByUrl: function(t, e) { +var i = cc.loader.getItem(t) || cc.loader.getItem(t + "?useDom=1"); +i && i.complete ? i._owner instanceof o ? e(null, i._owner) : e(null, i.content) : cc.loader.load(t, (function(n, r) { +if (n) return e(n); +i = cc.loader.getItem(t) || cc.loader.getItem(t + "?useDom=1"); +e(null, i.content); +})); +} +}, +destroy: function() { +cc.audioEngine.uncache(this); +this._super(); +} +}); +cc.AudioClip = o; +e.exports = o; +}), { +"../event/event-target": 133, +"./CCAsset": 56 +} ], +58: [ (function(t, e, i) { +"use strict"; +var n = function() { +this.u = 0; +this.v = 0; +this.w = 0; +this.h = 0; +this.offsetX = 0; +this.offsetY = 0; +this.textureID = 0; +this.valid = !1; +this.xAdvance = 0; +}, r = function(t) { +this._letterDefinitions = {}; +this._texture = t; +}; +r.prototype = { +constructor: r, +addLetterDefinitions: function(t, e) { +this._letterDefinitions[t] = e; +}, +cloneLetterDefinition: function() { +var t = {}; +for (var e in this._letterDefinitions) { +var i = new n(); +cc.js.mixin(i, this._letterDefinitions[e]); +t[e] = i; +} +return t; +}, +getTexture: function() { +return this._texture; +}, +getLetter: function(t) { +return this._letterDefinitions[t]; +}, +getLetterDefinitionForChar: function(t) { +var e = t.charCodeAt(0); +return this._letterDefinitions.hasOwnProperty(e) ? this._letterDefinitions[e] : null; +}, +clear: function() { +this._letterDefinitions = {}; +} +}; +var s = cc.Class({ +name: "cc.BitmapFont", +extends: cc.Font, +properties: { +fntDataStr: { +default: "" +}, +spriteFrame: { +default: null, +type: cc.SpriteFrame +}, +fontSize: { +default: -1 +}, +_fntConfig: null, +_fontDefDictionary: null +}, +onLoad: function() { +var t = this.spriteFrame; +!this._fontDefDictionary && t && (this._fontDefDictionary = new r(t._texture)); +var e = this._fntConfig; +if (e) { +var i = e.fontDefDictionary; +for (var s in i) { +var o = new n(), a = i[s].rect; +o.offsetX = i[s].xOffset; +o.offsetY = i[s].yOffset; +o.w = a.width; +o.h = a.height; +o.u = a.x; +o.v = a.y; +o.textureID = 0; +o.valid = !0; +o.xAdvance = i[s].xAdvance; +this._fontDefDictionary.addLetterDefinitions(s, o); +} +} +}, +clearVerticalKeningDict: function() { +var t = this._fntConfig; +t ? t.kerningVDict = null : cc.warnID(0, "The fnt config is not exists!"); +}, +setVerticalKerningDict: function(t) { +var e = this._fntConfig; +if (e) { +if (!e.kerningVDict && t) { +var i = {}; +t.forEach((function(t) { +i[t.first << 16 | 65535 & t.second] = t.amount; +})); +e.kerningVDict = i; +} +} else cc.warnID(0, "The fnt config is not exists!"); +} +}); +cc.BitmapFont = s; +cc.BitmapFont.FontLetterDefinition = n; +cc.BitmapFont.FontAtlas = r; +e.exports = s; +}), {} ], +59: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.BufferAsset", +extends: cc.Asset, +ctor: function() { +this._buffer = null; +}, +properties: { +_nativeAsset: { +get: function() { +return this._buffer; +}, +set: function(t) { +this._buffer = t.buffer || t; +}, +override: !0 +}, +buffer: function() { +return this._buffer; +} +} +}); +cc.BufferAsset = e.exports = n; +}), {} ], +60: [ (function(t, e, i) { +"use strict"; +var n = t("./CCAsset"), r = cc.Class({ +name: "cc.EffectAsset", +extends: n, +properties: { +properties: Object, +techniques: [], +shaders: [] +}, +onLoad: function() { +if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) for (var t = cc.renderer._forward._programLib, e = 0; e < this.shaders.length; e++) t.define(this.shaders[e]); +} +}); +e.exports = cc.EffectAsset = r; +}), { +"./CCAsset": 56 +} ], +61: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.Font", +extends: cc.Asset +}); +cc.Font = e.exports = n; +}), {} ], +62: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.JsonAsset", +extends: cc.Asset, +properties: { +json: null +} +}); +e.exports = cc.JsonAsset = n; +}), {} ], +63: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.LabelAtlas", +extends: cc.BitmapFont, +onLoad: function() { +this.spriteFrame ? this._fntConfig ? this._super() : cc.warnID(9101, this.name) : cc.warnID(9100, this.name); +} +}); +cc.LabelAtlas = n; +e.exports = n; +}), {} ], +64: [ (function(t, e, i) { +"use strict"; +var n = cc.Enum({ +AUTO: 0, +SINGLE_INSTANCE: 1, +MULTI_INSTANCE: 2 +}), r = cc.Class({ +name: "cc.Prefab", +extends: cc.Asset, +ctor: function() { +this._createFunction = null; +this._instantiatedTimes = 0; +}, +properties: { +data: null, +optimizationPolicy: n.AUTO, +asyncLoadAssets: !1, +readonly: { +default: !1, +editorOnly: !0 +} +}, +statics: { +OptimizationPolicy: n, +OptimizationPolicyThreshold: 3 +}, +createNode: !1, +compileCreateFunction: function() { +var e = t("../platform/instantiate-jit"); +this._createFunction = e.compile(this.data); +}, +_doInstantiate: function(t) { +this.data._prefab ? this.data._prefab._synced = !0 : cc.warnID(3700); +this._createFunction || this.compileCreateFunction(); +return this._createFunction(t); +}, +_instantiate: function() { +var t; +if (this.optimizationPolicy !== n.SINGLE_INSTANCE && (this.optimizationPolicy === n.MULTI_INSTANCE || this._instantiatedTimes + 1 >= r.OptimizationPolicyThreshold)) { +t = this._doInstantiate(); +this.data._instantiate(t); +} else { +this.data._prefab._synced = !0; +t = this.data._instantiate(); +} +++this._instantiatedTimes; +return t; +} +}); +cc.Prefab = e.exports = r; +cc.js.obsolete(cc, "cc._Prefab", "Prefab"); +}), { +"../platform/instantiate-jit": 219 +} ], +65: [ (function(t, e, i) { +"use strict"; +var n = t("../platform/CCObject"), r = t("../platform/js"); +cc.RawAsset = cc.Class({ +name: "cc.RawAsset", +extends: n, +ctor: function() { +Object.defineProperty(this, "_uuid", { +value: "", +writable: !0 +}); +} +}); +r.value(cc.RawAsset, "isRawAssetType", (function(t) { +return r.isChildClassOf(t, cc.RawAsset) && !r.isChildClassOf(t, cc.Asset); +})); +r.value(cc.RawAsset, "wasRawAssetType", (function(t) { +return t === cc.Texture2D || t === cc.AudioClip || t === cc.ParticleAsset || t === cc.Asset; +})); +e.exports = cc.RawAsset; +}), { +"../platform/CCObject": 207, +"../platform/js": 221 +} ], +66: [ (function(t, e, i) { +"use strict"; +var n = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../../renderer/gfx")); +var r = t("../renderer"), s = t("./CCTexture2D"), o = cc.Class({ +name: "cc.RenderTexture", +extends: s, +ctor: function() { +this._framebuffer = null; +}, +initWithSize: function(t, e, i) { +this.width = Math.floor(t || cc.visibleRect.width); +this.height = Math.floor(e || cc.visibleRect.height); +this._resetUnderlyingMipmaps(); +var s = { +colors: [ this._texture ] +}; +this._depthStencilBuffer && this._depthStencilBuffer.destroy(); +var o = void 0; +if (i) { +o = new n.default.RenderBuffer(r.device, i, t, e); +i === n.default.RB_FMT_D24S8 ? s.depthStencil = o : i === n.default.RB_FMT_S8 ? s.stencil = o : i === n.default.RB_FMT_D16 && (s.depth = o); +} +this._depthStencilBuffer = o; +this._framebuffer && this._framebuffer.destroy(); +this._framebuffer = new n.default.FrameBuffer(r.device, t, e, s); +this._packable = !1; +this.loaded = !0; +this.emit("load"); +}, +updateSize: function(t, e) { +this.width = Math.floor(t || cc.visibleRect.width); +this.height = Math.floor(e || cc.visibleRect.height); +this._resetUnderlyingMipmaps(); +var i = this._depthStencilBuffer; +i && i.update(this.width, this.height); +this._framebuffer._width = t; +this._framebuffer._height = e; +}, +drawTextureAt: function(t, e, i) { +t._image && this._texture.updateSubImage({ +x: e, +y: i, +image: t._image, +width: t.width, +height: t.height, +level: 0, +flipY: !1, +premultiplyAlpha: t._premultiplyAlpha +}); +}, +readPixels: function(t, e, i, n, s) { +if (!this._framebuffer || !this._texture) return t; +e = e || 0; +i = i || 0; +var o = n || this.width, a = s || this.height; +t = t || new Uint8Array(o * a * 4); +var c = r._forward._device._gl, l = c.getParameter(c.FRAMEBUFFER_BINDING); +c.bindFramebuffer(c.FRAMEBUFFER, this._framebuffer._glID); +c.readPixels(e, i, o, a, c.RGBA, c.UNSIGNED_BYTE, t); +c.bindFramebuffer(c.FRAMEBUFFER, l); +return t; +}, +destroy: function() { +this._super(); +this._framebuffer && this._framebuffer.destroy(); +} +}); +cc.RenderTexture = e.exports = o; +}), { +"../../renderer/gfx": 349, +"../renderer": 244, +"./CCTexture2D": 73 +} ], +67: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.SceneAsset", +extends: cc.Asset, +properties: { +scene: null, +asyncLoadAssets: void 0 +} +}); +cc.SceneAsset = n; +e.exports = n; +}), {} ], +68: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.Script", +extends: cc.Asset +}); +cc._Script = n; +var r = cc.Class({ +name: "cc.JavaScript", +extends: n +}); +cc._JavaScript = r; +var s = cc.Class({ +name: "cc.CoffeeScript", +extends: n +}); +cc._CoffeeScript = s; +var o = cc.Class({ +name: "cc.TypeScript", +extends: n +}); +cc._TypeScript = o; +}), {} ], +69: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.SpriteAtlas", +extends: cc.Asset, +properties: { +_spriteFrames: { +default: {} +} +}, +getTexture: function() { +var t = Object.keys(this._spriteFrames); +if (t.length > 0) { +var e = this._spriteFrames[t[0]]; +return e ? e.getTexture() : null; +} +return null; +}, +getSpriteFrame: function(t) { +var e = this._spriteFrames[t]; +if (!e) return null; +e.name || (e.name = t); +return e; +}, +getSpriteFrames: function() { +var t = [], e = this._spriteFrames; +for (var i in e) t.push(this.getSpriteFrame(i)); +return t; +} +}); +cc.SpriteAtlas = n; +e.exports = n; +}), {} ], +70: [ (function(i, n, r) { +"use strict"; +var s = i("../event/event-target"), o = i("../utils/texture-util"), a = [ { +u: 0, +v: 0 +}, { +u: 0, +v: 0 +}, { +u: 0, +v: 0 +}, { +u: 0, +v: 0 +} ], c = cc.Class({ +name: "cc.SpriteFrame", +extends: i("../assets/CCAsset"), +mixins: [ s ], +properties: { +_textureSetter: { +set: function(t) { +if (t) { +0; +this._texture !== t && this._refreshTexture(t); +this._textureFilename = t.url; +} +} +}, +insetTop: { +get: function() { +return this._capInsets[1]; +}, +set: function(t) { +this._capInsets[1] = t; +this._texture && this._calculateSlicedUV(); +} +}, +insetBottom: { +get: function() { +return this._capInsets[3]; +}, +set: function(t) { +this._capInsets[3] = t; +this._texture && this._calculateSlicedUV(); +} +}, +insetLeft: { +get: function() { +return this._capInsets[0]; +}, +set: function(t) { +this._capInsets[0] = t; +this._texture && this._calculateSlicedUV(); +} +}, +insetRight: { +get: function() { +return this._capInsets[2]; +}, +set: function(t) { +this._capInsets[2] = t; +this._texture && this._calculateSlicedUV(); +} +} +}, +ctor: function() { +s.call(this); +var t = arguments[0], e = arguments[1], i = arguments[2], n = arguments[3], r = arguments[4]; +this._rect = null; +this.uv = []; +this._texture = null; +this._original = null; +this._offset = null; +this._originalSize = null; +this._rotated = !1; +this.vertices = null; +this._capInsets = [ 0, 0, 0, 0 ]; +this.uvSliced = []; +this._textureFilename = ""; +0; +void 0 !== t && this.setTexture(t, e, i, n, r); +}, +textureLoaded: function() { +return this._texture && this._texture.loaded; +}, +isRotated: function() { +return this._rotated; +}, +setRotated: function(t) { +this._rotated = t; +this._texture && this._calculateUV(); +}, +getRect: function() { +return cc.rect(this._rect); +}, +setRect: function(t) { +this._rect = t; +this._texture && this._calculateUV(); +}, +getOriginalSize: function() { +return cc.size(this._originalSize); +}, +setOriginalSize: function(t) { +if (this._originalSize) { +this._originalSize.width = t.width; +this._originalSize.height = t.height; +} else this._originalSize = cc.size(t); +}, +getTexture: function() { +return this._texture; +}, +_textureLoadedCallback: function() { +var t = this._texture; +if (t) { +var e = t.width, i = t.height; +this._rect ? this._checkRect(this._texture) : this._rect = cc.rect(0, 0, e, i); +this._originalSize || this.setOriginalSize(cc.size(e, i)); +this._offset || this.setOffset(cc.v2(0, 0)); +this._calculateUV(); +this.emit("load"); +} +}, +_refreshTexture: function(t) { +this._texture = t; +t.loaded ? this._textureLoadedCallback() : t.once("load", this._textureLoadedCallback, this); +}, +getOffset: function() { +return cc.v2(this._offset); +}, +setOffset: function(t) { +this._offset = cc.v2(t); +}, +clone: function() { +return new c(this._texture || this._textureFilename, this._rect, this._rotated, this._offset, this._originalSize); +}, +setTexture: function(i, n, r, s, o) { +this._rect = n || null; +s ? this.setOffset(s) : this._offset = null; +o ? this.setOriginalSize(o) : this._originalSize = null; +this._rotated = r || !1; +var a = i; +if ("string" === ("object" === (e = typeof a) ? t(a) : e) && a) { +this._textureFilename = a; +this._loadTexture(); +} +a instanceof cc.Texture2D && this._texture !== a && this._refreshTexture(a); +return !0; +}, +_loadTexture: function() { +if (this._textureFilename) { +var t = o.loadImage(this._textureFilename); +this._refreshTexture(t); +} +}, +ensureLoadTexture: function() { +if (this._texture) { +if (!this._texture.loaded) { +this._refreshTexture(this._texture); +o.postLoadTexture(this._texture); +} +} else this._textureFilename && this._loadTexture(); +}, +clearTexture: function() { +this._texture = null; +}, +_checkRect: function(t) { +var e = this._rect, i = e.x, n = e.y; +if (this._rotated) { +i += e.height; +n += e.width; +} else { +i += e.width; +n += e.height; +} +i > t.width && cc.errorID(3300, t.url + "/" + this.name, i, t.width); +n > t.height && cc.errorID(3400, t.url + "/" + this.name, n, t.height); +}, +_calculateSlicedUV: function() { +var t = this._rect, e = this._texture.width, i = this._texture.height, n = this._capInsets[0], r = this._capInsets[2], s = t.width - n - r, o = this._capInsets[1], c = this._capInsets[3], l = t.height - o - c, h = this.uvSliced; +h.length = 0; +if (this._rotated) { +a[0].u = t.x / e; +a[1].u = (t.x + c) / e; +a[2].u = (t.x + c + l) / e; +a[3].u = (t.x + t.height) / e; +a[3].v = t.y / i; +a[2].v = (t.y + n) / i; +a[1].v = (t.y + n + s) / i; +a[0].v = (t.y + t.width) / i; +for (var u = 0; u < 4; ++u) for (var _ = a[u], f = 0; f < 4; ++f) { +var d = a[3 - f]; +h.push({ +u: _.u, +v: d.v +}); +} +} else { +a[0].u = t.x / e; +a[1].u = (t.x + n) / e; +a[2].u = (t.x + n + s) / e; +a[3].u = (t.x + t.width) / e; +a[3].v = t.y / i; +a[2].v = (t.y + o) / i; +a[1].v = (t.y + o + l) / i; +a[0].v = (t.y + t.height) / i; +for (var m = 0; m < 4; ++m) for (var p = a[m], v = 0; v < 4; ++v) { +var y = a[v]; +h.push({ +u: y.u, +v: p.v +}); +} +} +}, +_setDynamicAtlasFrame: function(t) { +if (t) { +this._original = { +_texture: this._texture, +_x: this._rect.x, +_y: this._rect.y +}; +this._texture = t.texture; +this._rect.x = t.x; +this._rect.y = t.y; +this._calculateUV(); +} +}, +_resetDynamicAtlasFrame: function() { +if (this._original) { +this._rect.x = this._original._x; +this._rect.y = this._original._y; +this._texture = this._original._texture; +this._original = null; +this._calculateUV(); +} +}, +_calculateUV: function() { +var t = this._rect, e = this._texture, i = this.uv, n = e.width, r = e.height; +if (this._rotated) { +var s = 0 === n ? 0 : t.x / n, o = 0 === n ? 0 : (t.x + t.height) / n, a = 0 === r ? 0 : (t.y + t.width) / r, c = 0 === r ? 0 : t.y / r; +i[0] = s; +i[1] = c; +i[2] = s; +i[3] = a; +i[4] = o; +i[5] = c; +i[6] = o; +i[7] = a; +} else { +var l = 0 === n ? 0 : t.x / n, h = 0 === n ? 0 : (t.x + t.width) / n, u = 0 === r ? 0 : (t.y + t.height) / r, _ = 0 === r ? 0 : t.y / r; +i[0] = l; +i[1] = u; +i[2] = h; +i[3] = u; +i[4] = l; +i[5] = _; +i[6] = h; +i[7] = _; +} +var f = this.vertices; +if (f) { +f.nu.length = 0; +f.nv.length = 0; +for (var d = 0; d < f.u.length; d++) { +f.nu[d] = f.u[d] / n; +f.nv[d] = f.v[d] / r; +} +} +this._calculateSlicedUV(); +}, +_serialize: !1, +_deserialize: function(t, e) { +var i = t.rect; +i && (this._rect = new cc.Rect(i[0], i[1], i[2], i[3])); +t.offset && this.setOffset(new cc.Vec2(t.offset[0], t.offset[1])); +t.originalSize && this.setOriginalSize(new cc.Size(t.originalSize[0], t.originalSize[1])); +this._rotated = 1 === t.rotated; +this._name = t.name; +var n = t.capInsets; +if (n) { +this._capInsets[0] = n[0]; +this._capInsets[1] = n[1]; +this._capInsets[2] = n[2]; +this._capInsets[3] = n[3]; +} +0; +this.vertices = t.vertices; +if (this.vertices) { +this.vertices.nu = []; +this.vertices.nv = []; +} +var r = t.texture; +r && e.result.push(this, "_textureSetter", r); +} +}), l = c.prototype; +l.copyWithZone = l.clone; +l.copy = l.clone; +l.initWithTexture = l.setTexture; +cc.SpriteFrame = c; +n.exports = c; +}), { +"../assets/CCAsset": 56, +"../event/event-target": 133, +"../utils/texture-util": 304 +} ], +71: [ (function(t, e, i) { +"use strict"; +var n = t("./CCFont"), r = cc.Class({ +name: "cc.TTFFont", +extends: n, +properties: { +_fontFamily: null, +_nativeAsset: { +type: cc.String, +get: function() { +return this._fontFamily; +}, +set: function(t) { +this._fontFamily = t || "Arial"; +}, +override: !0 +} +} +}); +cc.TTFFont = e.exports = r; +}), { +"./CCFont": 61 +} ], +72: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.TextAsset", +extends: cc.Asset, +properties: { +text: "" +}, +toString: function() { +return this.text; +} +}); +e.exports = cc.TextAsset = n; +}), {} ], +73: [ (function(t, e, i) { +"use strict"; +var n = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../../renderer/gfx")); +var r = t("../event/event-target"), s = t("../renderer"); +t("../platform/CCClass"); +var o = new (t("../platform/id-generater"))("Tex"), a = cc.Enum({ +RGB565: n.default.TEXTURE_FMT_R5_G6_B5, +RGB5A1: n.default.TEXTURE_FMT_R5_G5_B5_A1, +RGBA4444: n.default.TEXTURE_FMT_R4_G4_B4_A4, +RGB888: n.default.TEXTURE_FMT_RGB8, +RGBA8888: n.default.TEXTURE_FMT_RGBA8, +RGBA32F: n.default.TEXTURE_FMT_RGBA32F, +A8: n.default.TEXTURE_FMT_A8, +I8: n.default.TEXTURE_FMT_L8, +AI8: n.default.TEXTURE_FMT_L8_A8, +RGB_PVRTC_2BPPV1: n.default.TEXTURE_FMT_RGB_PVRTC_2BPPV1, +RGBA_PVRTC_2BPPV1: n.default.TEXTURE_FMT_RGBA_PVRTC_2BPPV1, +RGB_PVRTC_4BPPV1: n.default.TEXTURE_FMT_RGB_PVRTC_4BPPV1, +RGBA_PVRTC_4BPPV1: n.default.TEXTURE_FMT_RGBA_PVRTC_4BPPV1, +RGB_ETC1: n.default.TEXTURE_FMT_RGB_ETC1, +RGBA_ETC1: 1024, +RGB_ETC2: n.default.TEXTURE_FMT_RGB_ETC2, +RGBA_ETC2: n.default.TEXTURE_FMT_RGBA_ETC2 +}), c = cc.Enum({ +REPEAT: 10497, +CLAMP_TO_EDGE: 33071, +MIRRORED_REPEAT: 33648 +}), l = cc.Enum({ +LINEAR: 9729, +NEAREST: 9728 +}), h = { +9728: 0, +9729: 1 +}, u = [], _ = { +width: void 0, +height: void 0, +minFilter: void 0, +magFilter: void 0, +wrapS: void 0, +wrapT: void 0, +format: void 0, +genMipmaps: void 0, +images: void 0, +image: void 0, +flipY: void 0, +premultiplyAlpha: void 0 +}; +function f() { +for (var t in _) _[t] = void 0; +u.length = 0; +_.images = u; +_.flipY = !1; +return _; +} +var d = cc.Class({ +name: "cc.Texture2D", +extends: t("../assets/CCAsset"), +mixins: [ r ], +properties: { +_nativeAsset: { +get: function() { +return this._image; +}, +set: function(t) { +t._compressed && t._data ? this.initWithData(t._data, this._format, t.width, t.height) : this.initWithElement(t); +}, +override: !0 +}, +_format: a.RGBA8888, +_premultiplyAlpha: !1, +_flipY: !1, +_minFilter: l.LINEAR, +_magFilter: l.LINEAR, +_mipFilter: l.LINEAR, +_wrapS: c.CLAMP_TO_EDGE, +_wrapT: c.CLAMP_TO_EDGE, +_genMipmaps: !1, +genMipmaps: { +get: function() { +return this._genMipmaps; +}, +set: function(t) { +if (this._genMipmaps !== t) { +var e = f(); +e.genMipmaps = t; +this.update(e); +} +} +}, +_packable: !0, +packable: { +get: function() { +return this._packable; +}, +set: function(t) { +this._packable = t; +} +} +}, +statics: { +PixelFormat: a, +WrapMode: c, +Filter: l, +_FilterIndex: h, +extnames: [ ".png", ".jpg", ".jpeg", ".bmp", ".webp", ".pvr", ".pkm" ] +}, +ctor: function() { +this._id = o.getNewId(); +this.loaded = !1; +this.width = 0; +this.height = 0; +this._hashDirty = !0; +this._hash = 0; +this._texture = null; +0; +}, +getImpl: function() { +return this._texture; +}, +getId: function() { +return this._id; +}, +toString: function() { +return this.url || ""; +}, +update: function(t) { +if (t) { +var e = !1; +void 0 !== t.width && (this.width = t.width); +void 0 !== t.height && (this.height = t.height); +if (void 0 !== t.minFilter) { +this._minFilter = t.minFilter; +t.minFilter = h[t.minFilter]; +} +if (void 0 !== t.magFilter) { +this._magFilter = t.magFilter; +t.magFilter = h[t.magFilter]; +} +if (void 0 !== t.mipFilter) { +this._mipFilter = t.mipFilter; +t.mipFilter = h[t.mipFilter]; +} +void 0 !== t.wrapS && (this._wrapS = t.wrapS); +void 0 !== t.wrapT && (this._wrapT = t.wrapT); +void 0 !== t.format && (this._format = t.format); +if (void 0 !== t.flipY) { +this._flipY = t.flipY; +e = !0; +} +if (void 0 !== t.premultiplyAlpha) { +this._premultiplyAlpha = t.premultiplyAlpha; +e = !0; +} +void 0 !== t.genMipmaps && (this._genMipmaps = t.genMipmaps); +e && this._image && (t.image = this._image); +if (t.images && t.images.length > 0) this._image = t.images[0]; else if (void 0 !== t.image) { +this._image = t.image; +if (!t.images) { +u.length = 0; +t.images = u; +} +t.images.push(t.image); +} +t.images && t.images.length > 0 && this._texture.update(t); +this._hashDirty = !0; +} +}, +initWithElement: function(t) { +if (t) { +this._image = t; +if (t.complete || t instanceof HTMLCanvasElement) this.handleLoadedTexture(); else { +var e = this; +t.addEventListener("load", (function() { +e.handleLoadedTexture(); +})); +t.addEventListener("error", (function(t) { +cc.warnID(3119, t.message); +})); +} +} +}, +initWithData: function(t, e, i, n) { +var r = f(); +r.image = t; +r.images = [ r.image ]; +r.genMipmaps = this._genMipmaps; +r.premultiplyAlpha = this._premultiplyAlpha; +r.flipY = this._flipY; +r.minFilter = h[this._minFilter]; +r.magFilter = h[this._magFilter]; +r.wrapS = this._wrapS; +r.wrapT = this._wrapT; +r.format = e; +e === a.RGBA_ETC1 && (r.format = a.RGB_ETC1); +r.width = i; +r.height = n; +this._texture ? this._texture.update(r) : this._texture = new s.Texture2D(s.device, r); +this.width = i; +this.height = n; +this._checkPackable(); +this.loaded = !0; +this.emit("load"); +return !0; +}, +getHtmlElementObj: function() { +return this._image; +}, +destroy: function() { +this._image = null; +this._texture && this._texture.destroy(); +this._super(); +}, +getPixelFormat: function() { +return this._format; +}, +hasPremultipliedAlpha: function() { +return this._premultiplyAlpha || !1; +}, +handleLoadedTexture: function() { +if (this._image && this._image.width && this._image.height) { +this.width = this._image.width; +this.height = this._image.height; +var t = f(); +t.image = this._image; +t.images = [ t.image ]; +t.width = this.width; +t.height = this.height; +t.genMipmaps = this._genMipmaps; +t.format = this._format; +this._format === a.RGBA_ETC1 && (t.format = a.RGB_ETC1); +t.premultiplyAlpha = this._premultiplyAlpha; +t.flipY = this._flipY; +t.minFilter = h[this._minFilter]; +t.magFilter = h[this._magFilter]; +t.wrapS = this._wrapS; +t.wrapT = this._wrapT; +this._texture ? this._texture.update(t) : this._texture = new s.Texture2D(s.device, t); +this._checkPackable(); +this.loaded = !0; +this.emit("load"); +cc.macro.CLEANUP_IMAGE_CACHE && this._image instanceof HTMLImageElement && this._clearImage(); +} +}, +description: function() { +return ""; +}, +releaseTexture: function() { +this._image = null; +this._texture && this._texture.destroy(); +}, +setWrapMode: function(t, e) { +if (this._wrapS !== t || this._wrapT !== e) { +var i = f(); +i.wrapS = t; +i.wrapT = e; +this.update(i); +} +}, +setFilters: function(t, e) { +if (this._minFilter !== t || this._magFilter !== e) { +var i = f(); +i.minFilter = t; +i.magFilter = e; +this.update(i); +} +}, +setFlipY: function(t) { +if (this._flipY !== t) { +var e = f(); +e.flipY = t; +this.update(e); +} +}, +setPremultiplyAlpha: function(t) { +if (this._premultiplyAlpha !== t) { +var e = f(); +e.premultiplyAlpha = t; +this.update(e); +} +}, +_checkPackable: function() { +var t = cc.dynamicAtlasManager; +if (t) if (this._isCompressed()) this._packable = !1; else { +var e = this.width, i = this.height; +!this._image || e > t.maxFrameSize || i > t.maxFrameSize || e <= t.minFrameSize || i <= t.minFrameSize || this._getHash() !== t.Atlas.DEFAULT_HASH ? this._packable = !1 : this._image && this._image instanceof HTMLCanvasElement && (this._packable = !0); +} +}, +_getOpts: function() { +var t = f(); +t.width = this.width; +t.height = this.height; +t.genMipmaps = this._genMipmaps; +t.format = this._format; +t.premultiplyAlpha = this._premultiplyAlpha; +t.anisotropy = this._anisotropy; +t.flipY = this._flipY; +t.minFilter = h[this._minFilter]; +t.magFilter = h[this._magFilter]; +t.mipFilter = h[this._mipFilter]; +t.wrapS = this._wrapS; +t.wrapT = this._wrapT; +return t; +}, +_resetUnderlyingMipmaps: function(t) { +var e = this._getOpts(); +e.images = t || [ null ]; +this._texture ? this._texture.update(e) : this._texture = new s.Texture2D(s.device, e); +}, +_serialize: !1, +_deserialize: function(t, e) { +var i = cc.renderer.device, n = t.split(","), r = n[0]; +if (r) { +for (var s = r.split("_"), o = "", c = "", l = 999, h = this._format, u = cc.macro.SUPPORT_TEXTURE_FORMATS, _ = 0; _ < s.length; _++) { +var f = s[_].split("@"), m = f[0]; +m = d.extnames[m.charCodeAt(0) - 48] || m; +var p = u.indexOf(m); +if (-1 !== p && p < l) { +var v = f[1] ? parseInt(f[1]) : this._format; +if (".pvr" === m && !i.ext("WEBGL_compressed_texture_pvrtc")) continue; +if (!(v !== a.RGB_ETC1 && v !== a.RGBA_ETC1 || i.ext("WEBGL_compressed_texture_etc1"))) continue; +if ((v === a.RGB_ETC2 || v === a.RGBA_ETC2) && !i.ext("WEBGL_compressed_texture_etc")) continue; +l = p; +c = m; +h = v; +} else o || (o = m); +} +if (c) { +this._setRawAsset(c); +this._format = h; +} else { +this._setRawAsset(o); +cc.warnID(3120, e.customEnv.url, o, o); +} +} +if (8 === n.length) { +this._minFilter = parseInt(n[1]); +this._magFilter = parseInt(n[2]); +this._wrapS = parseInt(n[3]); +this._wrapT = parseInt(n[4]); +this._premultiplyAlpha = 49 === n[5].charCodeAt(0); +this._genMipmaps = 49 === n[6].charCodeAt(0); +this._packable = 49 === n[7].charCodeAt(0); +} +}, +_getHash: function() { +if (!this._hashDirty) return this._hash; +var t = this._genMipmaps ? 1 : 0, e = this._premultiplyAlpha ? 1 : 0, i = this._flipY ? 1 : 0, n = this._minFilter === l.LINEAR ? 1 : 2, r = this._magFilter === l.LINEAR ? 1 : 2, s = this._wrapS === c.REPEAT ? 1 : this._wrapS === c.CLAMP_TO_EDGE ? 2 : 3, o = this._wrapT === c.REPEAT ? 1 : this._wrapT === c.CLAMP_TO_EDGE ? 2 : 3, a = this._format, h = this._image; +if (h) { +6408 !== h._glFormat && (a = 0); +e = h._premultiplyAlpha; +} +this._hash = Number("" + n + r + a + s + o + t + e + i); +this._hashDirty = !1; +return this._hash; +}, +_isCompressed: function() { +return this._texture && this._texture._compressed; +}, +_clearImage: function() { +cc.loader.removeItem(this._image.id || this._image.src); +this._image.src = ""; +} +}); +cc.Texture2D = e.exports = d; +}), { +"../../renderer/gfx": 349, +"../assets/CCAsset": 56, +"../event/event-target": 133, +"../platform/CCClass": 201, +"../platform/id-generater": 217, +"../renderer": 244 +} ], +74: [ (function(t, e, i) { +"use strict"; +t("./CCRawAsset"); +t("./CCAsset"); +t("./CCFont"); +t("./CCPrefab"); +t("./CCAudioClip"); +t("./CCScripts"); +t("./CCSceneAsset"); +t("./CCSpriteFrame"); +t("./CCTexture2D"); +t("./CCRenderTexture"); +t("./CCTTFFont"); +t("./CCSpriteAtlas"); +t("./CCBitmapFont"); +t("./CCLabelAtlas"); +t("./CCTextAsset"); +t("./CCJsonAsset"); +t("./CCBufferAsset"); +t("./CCEffectAsset"); +t("./material/CCMaterial"); +}), { +"./CCAsset": 56, +"./CCAudioClip": 57, +"./CCBitmapFont": 58, +"./CCBufferAsset": 59, +"./CCEffectAsset": 60, +"./CCFont": 61, +"./CCJsonAsset": 62, +"./CCLabelAtlas": 63, +"./CCPrefab": 64, +"./CCRawAsset": 65, +"./CCRenderTexture": 66, +"./CCSceneAsset": 67, +"./CCScripts": 68, +"./CCSpriteAtlas": 69, +"./CCSpriteFrame": 70, +"./CCTTFFont": 71, +"./CCTextAsset": 72, +"./CCTexture2D": 73, +"./material/CCMaterial": 75 +} ], +75: [ (function(t, e, i) { +"use strict"; +var n = o(t("../../../renderer/core/effect")), r = o(t("./murmurhash2_gc")), s = o(t("./utils")); +function o(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var a = t("../CCAsset"), c = t("../CCTexture2D"), l = c.PixelFormat, h = t("../CCEffectAsset"), u = cc.Class({ +name: "cc.Material", +extends: a, +ctor: function() { +this._dirty = !0; +this._effect = null; +this._owner = null; +}, +properties: { +_effectAsset: { +type: h, +default: null +}, +_defines: { +default: {}, +type: Object +}, +_props: { +default: {}, +type: Object +}, +effectName: void 0, +effectAsset: { +get: function() { +return this._effectAsset; +}, +set: function(t) { +if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { +this._effectAsset = t; +t ? this._effect = n.default.parseEffect(t) : cc.error("Can not set an empty effect asset."); +} +} +}, +effect: { +get: function() { +return this._effect; +} +}, +owner: { +get: function() { +return this._owner; +} +} +}, +statics: { +getBuiltinMaterial: function(t) { +return cc.AssetLibrary.getBuiltin("material", "builtin-" + t); +}, +getInstantiatedBuiltinMaterial: function(t, e) { +var i = this.getBuiltinMaterial(t); +return u.getInstantiatedMaterial(i, e); +}, +getInstantiatedMaterial: function(t, e) { +if (t._owner === e) return t; +var i = new u(); +i.copy(t); +i._name = t._name + " (Instance)"; +i._uuid = t._uuid; +i._owner = e; +return i; +} +}, +copy: function(t) { +this.effectAsset = t.effectAsset; +for (var e in t._defines) this.define(e, t._defines[e]); +for (var i in t._props) this.setProperty(i, t._props[i]); +}, +setProperty: function(t, e, i) { +if (this._props[t] !== e || i) { +this._props[t] = e; +this._dirty = !0; +if (this._effect) if (e instanceof c) { +this._effect.setProperty(t, e.getImpl()); +e.getPixelFormat() === l.RGBA_ETC1 && this.define("_USE_ETC1_" + t.toUpperCase(), !0); +} else this._effect.setProperty(t, e); +} +}, +getProperty: function(t) { +return this._props[t]; +}, +define: function(t, e, i) { +if (this._defines[t] !== e || i) { +this._defines[t] = e; +this._dirty = !0; +this._effect && this._effect.define(t, e); +} +}, +getDefine: function(t) { +return this._defines[t]; +}, +setDirty: function(t) { +this._dirty = t; +}, +updateHash: function(t) { +this._dirty = !1; +this._hash = t; +}, +getHash: function() { +if (!this._dirty) return this._hash; +this._dirty = !1; +var t = this._effect, e = ""; +if (t) { +e += s.default.serializeDefines(t._defines); +e += s.default.serializeTechniques(t._techniques); +e += s.default.serializeUniforms(t._properties); +} +return this._hash = (0, r.default)(e, 666); +}, +onLoad: function() { +this.effectAsset = this._effectAsset; +if (this._effect) { +for (var t in this._defines) this.define(t, this._defines[t], !0); +for (var e in this._props) this.setProperty(e, this._props[e], !0); +} +} +}); +e.exports = cc.Material = u; +}), { +"../../../renderer/core/effect": 338, +"../CCAsset": 56, +"../CCEffectAsset": 60, +"../CCTexture2D": 73, +"./murmurhash2_gc": 77, +"./utils": 78 +} ], +76: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = t("../../../renderer/types"), r = o(t("./murmurhash2_gc")), s = o(t("./utils")); +function o(t) { +return t && t.__esModule ? t : { +default: t +}; +} +function a(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var c = (function() { +function t() { +a(this, t); +this._properties = {}; +this._defines = {}; +this._dirty = !1; +} +t.prototype.setProperty = function(t, e) { +var i = this._properties[t]; +if (i) { +if (i.value === e) return; +} else { +(i = Object.create(null)).name = t; +i.type = n.ctor2enums[e.constructor]; +this._properties[t] = i; +} +this._dirty = !0; +i.value = e; +}; +t.prototype.getProperty = function(t) { +var e = this._properties[t]; +return e ? e.value : null; +}; +t.prototype.define = function(t, e) { +if (this._defines[t] !== e) { +this._dirty = !0; +this._defines[t] = e; +} +}; +t.prototype.getDefine = function(t) { +return this._defines[t]; +}; +t.prototype.extractProperties = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; +Object.assign(t, this._properties); +return t; +}; +t.prototype.extractDefines = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; +Object.assign(t, this._defines); +return t; +}; +t.prototype.getHash = function() { +if (!this._dirty) return this._hash; +this._dirty = !1; +var t = ""; +t += s.default.serializeDefines(this._defines); +t += s.default.serializeUniforms(this._properties); +return this._hash = (0, r.default)(t, 666); +}; +return t; +})(); +i.default = c; +e.exports = i.default; +}), { +"../../../renderer/types": 375, +"./murmurhash2_gc": 77, +"./utils": 78 +} ], +77: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = function(t, e) { +var i, n = t.length, r = e ^ n, s = 0; +for (;n >= 4; ) { +i = 1540483477 * (65535 & (i = 255 & t.charCodeAt(s) | (255 & t.charCodeAt(++s)) << 8 | (255 & t.charCodeAt(++s)) << 16 | (255 & t.charCodeAt(++s)) << 24)) + ((1540483477 * (i >>> 16) & 65535) << 16); +r = 1540483477 * (65535 & r) + ((1540483477 * (r >>> 16) & 65535) << 16) ^ (i = 1540483477 * (65535 & (i ^= i >>> 24)) + ((1540483477 * (i >>> 16) & 65535) << 16)); +n -= 4; +++s; +} +switch (n) { +case 3: +r ^= (255 & t.charCodeAt(s + 2)) << 16; + +case 2: +r ^= (255 & t.charCodeAt(s + 1)) << 8; + +case 1: +r = 1540483477 * (65535 & (r ^= 255 & t.charCodeAt(s))) + ((1540483477 * (r >>> 16) & 65535) << 16); +} +r = 1540483477 * (65535 & (r ^= r >>> 13)) + ((1540483477 * (r >>> 16) & 65535) << 16); +return (r ^= r >>> 15) >>> 0; +}; +e.exports = i.default; +}), {} ], +78: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../../../renderer/enums")); +function r(t) { +var e = t._programName + t._cullMode; +t._blend && (e += t._blendEq + t._blendAlphaEq + t._blendSrc + t._blendDst + t._blendSrcAlpha + t._blendDstAlpha + t._blendColor); +t._depthTest && (e += t._depthWrite + t._depthFunc); +t._stencilTest && (e += t._stencilFuncFront + t._stencilRefFront + t._stencilMaskFront + t._stencilFailOpFront + t._stencilZFailOpFront + t._stencilZPassOpFront + t._stencilWriteMaskFront + t._stencilFuncBack + t._stencilRefBack + t._stencilMaskBack + t._stencilFailOpBack + t._stencilZFailOpBack + t._stencilZPassOpBack + t._stencilWriteMaskBack); +return e; +} +i.default = { +serializeDefines: function(t) { +var e = ""; +for (var i in t) e += i + t[i]; +return e; +}, +serializeTechniques: function(t) { +for (var e = "", i = 0; i < t.length; i++) { +var n = t[i]; +e += n.stageIDs; +for (var s = 0; s < n.passes.length; s++) e += r(n.passes[s]); +} +return e; +}, +serializeUniforms: function(t) { +var e = ""; +for (var i in t) { +var r = t[i], s = r.value; +if (s) switch (r.type) { +case n.default.PARAM_INT: +case n.default.PARAM_FLOAT: +e += s + ";"; +break; + +case n.default.PARAM_INT2: +case n.default.PARAM_FLOAT2: +e += s.x + "," + s.y + ";"; +break; + +case n.default.PARAM_INT4: +case n.default.PARAM_FLOAT4: +e += s.x + "," + s.y + "," + s.z + "," + s.w + ";"; +break; + +case n.default.PARAM_COLOR4: +e += s.r + "," + s.g + "," + s.b + "," + s.a + ";"; +break; + +case n.default.PARAM_MAT2: +e += s.m00 + "," + s.m01 + "," + s.m02 + "," + s.m03 + ";"; +break; + +case n.default.PARAM_TEXTURE_2D: +case n.default.PARAM_TEXTURE_CUBE: +e += s._id + ";"; +break; + +case n.default.PARAM_INT3: +case n.default.PARAM_FLOAT3: +case n.default.PARAM_COLOR3: +case n.default.PARAM_MAT3: +case n.default.PARAM_MAT4: +e += JSON.stringify(s) + ";"; +} +} +return e; +} +}; +e.exports = i.default; +}), { +"../../../renderer/enums": 344 +} ], +79: [ (function(t, e, i) { +"use strict"; +t("../CCNode").EventType; +var n = 56, r = 7, s = cc.Enum({ +ONCE: 0, +ON_WINDOW_RESIZE: 1, +ALWAYS: 2 +}); +function o(t) { +return t instanceof cc.Scene ? cc.visibleRect : t._contentSize; +} +function a(t, e, i, n) { +for (var r = t._parent._scale.x, s = t._parent._scale.y, o = 0, a = 0, c = t._parent; ;) { +var l = c._position; +o += l.x; +a += l.y; +if (!(c = c._parent)) { +i.x = i.y = 0; +n.x = n.y = 1; +return; +} +if (c === e) break; +var h = c._scale.x, u = c._scale.y; +o *= h; +a *= u; +r *= h; +s *= u; +} +n.x = 0 !== r ? 1 / r : 1; +n.y = 0 !== s ? 1 / s : 1; +i.x = -o; +i.y = -a; +} +var c = cc.Vec2.ZERO, l = cc.Vec2.ONE; +function h(t, e) { +var i, s, h, u = e._target; +u ? a(t, i = u, s = c, h = l) : i = t._parent; +var _ = o(i), f = i._anchorPoint, d = i instanceof cc.Scene, m = t._position.x, p = t._position.y, v = t._anchorPoint; +if (e._alignFlags & n) { +var y, g, x = _.width; +if (d) { +y = cc.visibleRect.left.x; +g = cc.visibleRect.right.x; +} else g = (y = -f.x * x) + x; +y += e._isAbsLeft ? e._left : e._left * x; +g -= e._isAbsRight ? e._right : e._right * x; +if (u) { +y += s.x; +y *= h.x; +g += s.x; +g *= h.x; +} +var C, b = v.x, A = t._scale.x; +if (A < 0) { +b = 1 - b; +A = -A; +} +if (e.isStretchWidth) { +C = g - y; +0 !== A && (t.width = C / A); +m = y + b * C; +} else { +C = t.width * A; +if (e.isAlignHorizontalCenter) { +var S = e._isAbsHorizontalCenter ? e._horizontalCenter : e._horizontalCenter * x, w = (.5 - f.x) * _.width; +if (u) { +S *= h.x; +w += s.x; +w *= h.x; +} +m = w + (b - .5) * C + S; +} else m = e.isAlignLeft ? y + b * C : g + (b - 1) * C; +} +} +if (e._alignFlags & r) { +var T, E, M = _.height; +if (d) { +E = cc.visibleRect.bottom.y; +T = cc.visibleRect.top.y; +} else T = (E = -f.y * M) + M; +E += e._isAbsBottom ? e._bottom : e._bottom * M; +T -= e._isAbsTop ? e._top : e._top * M; +if (u) { +E += s.y; +E *= h.y; +T += s.y; +T *= h.y; +} +var B, D = v.y, I = t._scale.y; +if (I < 0) { +D = 1 - D; +I = -I; +} +if (e.isStretchHeight) { +B = T - E; +0 !== I && (t.height = B / I); +p = E + D * B; +} else { +B = t.height * I; +if (e.isAlignVerticalCenter) { +var P = e._isAbsVerticalCenter ? e._verticalCenter : e._verticalCenter * M, R = (.5 - f.y) * _.height; +if (u) { +P *= h.y; +R += s.y; +R *= h.y; +} +p = R + (D - .5) * B + P; +} else p = e.isAlignBottom ? E + D * B : T + (D - 1) * B; +} +} +t.setPosition(m, p); +} +function u(t) { +var e = t._widget; +if (e) { +0; +h(t, e); +e.alignMode !== s.ALWAYS ? e.enabled = !1 : f.push(e); +} +for (var i = t._children, n = 0; n < i.length; n++) { +var r = i[n]; +r._active && u(r); +} +} +function _() { +var t = cc.director.getScene(); +if (t) { +d.isAligning = !0; +if (d._nodesOrderDirty) { +f.length = 0; +u(t); +d._nodesOrderDirty = !1; +} else { +var e, i = d._activeWidgetsIterator; +for (i.i = 0; i.i < f.length; ++i.i) h((e = f[i.i]).node, e); +} +d.isAligning = !1; +} +0; +} +var f = []; +var d = cc._widgetManager = e.exports = { +_AlignFlags: { +TOP: 1, +MID: 2, +BOT: 4, +LEFT: 8, +CENTER: 16, +RIGHT: 32 +}, +isAligning: !1, +_nodesOrderDirty: !1, +_activeWidgetsIterator: new cc.js.array.MutableForwardIterator(f), +init: function(t) { +t.on(cc.Director.EVENT_AFTER_UPDATE, _); +cc.sys.isMobile ? window.addEventListener("resize", this.onResized.bind(this)) : cc.view.on("canvas-resize", this.onResized, this); +}, +add: function(t) { +t.node._widget = t; +this._nodesOrderDirty = !0; +0; +}, +remove: function(t) { +t.node._widget = null; +this._activeWidgetsIterator.remove(t); +0; +}, +onResized: function() { +var t = cc.director.getScene(); +t && this.refreshWidgetOnResized(t); +}, +refreshWidgetOnResized: function(t) { +var e = cc.Node.isNode(t) && t.getComponent(cc.Widget); +e && e.alignMode === s.ON_WINDOW_RESIZE && (e.enabled = !0); +for (var i = t._children, n = 0; n < i.length; n++) { +var r = i[n]; +this.refreshWidgetOnResized(r); +} +}, +updateAlignment: function t(e) { +var i = e._parent; +cc.Node.isNode(i) && t(i); +var n = e._widget || e.getComponent(cc.Widget); +n && i && h(e, n); +}, +AlignMode: s +}; +0; +}), { +"../CCNode": 52 +} ], +80: [ (function(t, e, i) { +"use strict"; +var n = s(t("../geom-utils")), r = s(t("../../renderer/scene/camera")); +s(t("../../renderer/core/view")); +function s(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var o = t("../utils/affine-transform"), a = t("../renderer/index"), c = t("../renderer/render-flow"), l = t("../CCGame"), h = cc.vmath.mat4, u = cc.vmath.vec2, _ = cc.vmath.vec3, f = h.create(), d = h.create(), m = _.create(), p = _.create(), v = _.create(), y = [], g = null; +function x() { +if (g) { +var t = g.getNode(), e = cc.game.canvas; +t.z = e.height / 1.1566; +t.x = e.width / 2; +t.y = e.height / 2; +} +} +var C = cc.Enum({ +COLOR: 1, +DEPTH: 2, +STENCIL: 4 +}), b = cc.Enum({ +OPAQUE: 1, +TRANSPARENT: 2 +}), A = cc.Class({ +name: "cc.Camera", +extends: cc.Component, +ctor: function() { +if (l.renderType !== l.RENDER_TYPE_CANVAS) { +var t = new r.default(); +t.setStages([ "opaque" ]); +t.dirty = !0; +this._inited = !1; +this._camera = t; +} else this._inited = !0; +}, +editor: !1, +properties: { +_cullingMask: 4294967295, +_clearFlags: C.DEPTH | C.STENCIL, +_backgroundColor: cc.color(0, 0, 0, 255), +_depth: 0, +_zoomRatio: 1, +_targetTexture: null, +_fov: 60, +_orthoSize: 10, +_nearClip: 1, +_farClip: 4096, +_ortho: !0, +_rect: cc.rect(0, 0, 1, 1), +_renderStages: 1, +zoomRatio: { +get: function() { +return this._zoomRatio; +}, +set: function(t) { +this._zoomRatio = t; +}, +tooltip: !1 +}, +fov: { +get: function() { +return this._fov; +}, +set: function(t) { +this._fov = t; +}, +tooltip: !1 +}, +orthoSize: { +get: function() { +return this._orthoSize; +}, +set: function(t) { +this._orthoSize = t; +}, +tooltip: !1 +}, +nearClip: { +get: function() { +return this._nearClip; +}, +set: function(t) { +this._nearClip = t; +this._updateClippingpPlanes(); +}, +tooltip: !1 +}, +farClip: { +get: function() { +return this._farClip; +}, +set: function(t) { +this._farClip = t; +this._updateClippingpPlanes(); +}, +tooltip: !1 +}, +ortho: { +get: function() { +return this._ortho; +}, +set: function(t) { +this._ortho = t; +this._updateProjection(); +}, +tooltip: !1 +}, +rect: { +get: function() { +return this._rect; +}, +set: function(t) { +this._rect = t; +this._updateRect(); +}, +tooltip: !1 +}, +cullingMask: { +get: function() { +return this._cullingMask; +}, +set: function(t) { +this._cullingMask = t; +this._updateCameraMask(); +}, +tooltip: !1 +}, +clearFlags: { +get: function() { +return this._clearFlags; +}, +set: function(t) { +this._clearFlags = t; +this._camera && this._camera.setClearFlags(t); +}, +tooltip: !1 +}, +backgroundColor: { +get: function() { +return this._backgroundColor; +}, +set: function(t) { +this._backgroundColor = t; +this._updateBackgroundColor(); +}, +tooltip: !1 +}, +depth: { +get: function() { +return this._depth; +}, +set: function(t) { +this._depth = t; +this._camera && (this._camera._priority = t); +}, +tooltip: !1 +}, +targetTexture: { +get: function() { +return this._targetTexture; +}, +set: function(t) { +this._targetTexture = t; +this._updateTargetTexture(); +}, +tooltip: !1 +}, +renderStages: { +get: function() { +return this._renderStages; +}, +set: function(t) { +this._renderStages = t; +this._updateStages(); +}, +tooltip: !1 +}, +_is3D: { +get: function() { +return this.node && this.node._is3DNode; +} +} +}, +statics: { +main: null, +cameras: y, +ClearFlags: C, +findCamera: function(t) { +for (var e = 0, i = y.length; e < i; e++) { +var n = y[e]; +if (n.containsNode(t)) return n; +} +return null; +}, +_findRendererCamera: function(t) { +for (var e = a.scene._cameras, i = 0; i < e._count; i++) if (e._data[i]._cullingMask & t._cullingMask) return e._data[i]; +return null; +}, +_setupDebugCamera: function() { +if (!g && l.renderType !== l.RENDER_TYPE_CANVAS) { +var t = new r.default(); +g = t; +t.setStages([ "opaque" ]); +t.setFov(60 * Math.PI / 180); +t.setNear(.1); +t.setFar(4096); +t.dirty = !0; +t._cullingMask = 1 << cc.Node.BuiltinGroupIndex.DEBUG; +t._priority = cc.macro.MAX_ZINDEX; +t.setClearFlags(0); +t.setColor(0, 0, 0, 0); +var e = new cc.Node(); +t.setNode(e); +x(); +cc.view.on("design-resolution-changed", x); +a.scene.addCamera(t); +} +} +}, +_updateCameraMask: function() { +if (this._camera) { +var t = this._cullingMask & ~(1 << cc.Node.BuiltinGroupIndex.DEBUG); +this._camera._cullingMask = t; +} +}, +_updateBackgroundColor: function() { +if (this._camera) { +var t = this._backgroundColor; +this._camera.setColor(t.r / 255, t.g / 255, t.b / 255, t.a / 255); +} +}, +_updateTargetTexture: function() { +if (this._camera) { +var t = this._targetTexture; +this._camera._framebuffer = t ? t._framebuffer : null; +} +}, +_updateClippingpPlanes: function() { +if (this._camera) { +this._camera.setNear(this._nearClip); +this._camera.setFar(this._farClip); +} +}, +_updateProjection: function() { +if (this._camera) { +var t = this._ortho ? 1 : 0; +this._camera.setType(t); +} +}, +_updateRect: function() { +if (this._camera) { +var t = this._rect; +this._camera.setRect(t.x, t.y, t.width, t.height); +} +}, +_updateStages: function() { +var t = this._renderStages, e = this._camera._stages; +e.length = 0; +t & b.OPAQUE && e.push("opaque"); +t & b.TRANSPARENT && e.push("transparent"); +}, +_init: function() { +if (!this._inited) { +this._inited = !0; +var t = this._camera; +if (t) { +t.setNode(this.node); +t.setClearFlags(this._clearFlags); +t._priority = this._depth; +this._updateBackgroundColor(); +this._updateCameraMask(); +this._updateTargetTexture(); +this._updateClippingpPlanes(); +this._updateProjection(); +this._updateStages(); +this._updateRect(); +this.beforeDraw(); +} +} +}, +onLoad: function() { +this._init(); +}, +onEnable: function() { +if (l.renderType !== l.RENDER_TYPE_CANVAS) { +cc.director.on(cc.Director.EVENT_BEFORE_DRAW, this.beforeDraw, this); +a.scene.addCamera(this._camera); +} +y.push(this); +}, +onDisable: function() { +if (l.renderType !== l.RENDER_TYPE_CANVAS) { +cc.director.off(cc.Director.EVENT_BEFORE_DRAW, this.beforeDraw, this); +a.scene.removeCamera(this._camera); +} +cc.js.array.remove(y, this); +}, +getScreenToWorldMatrix2D: function(t) { +this.getWorldToScreenMatrix2D(t); +h.invert(t, t); +return t; +}, +getWorldToScreenMatrix2D: function(t) { +this.node.getWorldRT(f); +var e = this.zoomRatio; +f.m00 *= e; +f.m01 *= e; +f.m04 *= e; +f.m05 *= e; +var i = f.m12, n = f.m13, r = cc.visibleRect.center; +f.m12 = r.x - (f.m00 * i + f.m04 * n); +f.m13 = r.y - (f.m01 * i + f.m05 * n); +t !== f && h.copy(t, f); +return t; +}, +getScreenToWorldPoint: function(t, e) { +if (this.node.is3DNode) { +e = e || new cc.Vec3(); +this._camera.screenToWorld(e, t, cc.visibleRect.width, cc.visibleRect.height); +} else { +e = e || new cc.Vec2(); +this.getScreenToWorldMatrix2D(f); +u.transformMat4(e, t, f); +} +return e; +}, +getWorldToScreenPoint: function(t, e) { +if (this.node.is3DNode) { +e = e || new cc.Vec3(); +this._camera.worldToScreen(e, t, cc.visibleRect.width, cc.visibleRect.height); +} else { +e = e || new cc.Vec2(); +this.getWorldToScreenMatrix2D(f); +u.transformMat4(e, t, f); +} +return e; +}, +getRay: function(t) { +if (!n.default) return t; +_.set(v, t.x, t.y, 1); +this._camera.screenToWorld(p, v, cc.visibleRect.width, cc.visibleRect.height); +if (this.ortho) { +_.set(v, t.x, t.y, -1); +this._camera.screenToWorld(m, v, cc.visibleRect.width, cc.visibleRect.height); +} else this.node.getWorldPosition(m); +return n.default.Ray.fromPoints(n.default.Ray.create(), m, p); +}, +containsNode: function(t) { +return t._cullingMask & this.cullingMask; +}, +render: function(t) { +if (!(t = t || cc.director.getScene())) return null; +this.node.getWorldMatrix(f); +this.beforeDraw(); +c.visit(t); +a._forward.renderCamera(this._camera, a.scene); +}, +_layout2D: function() { +var t = cc.game.canvas.height / cc.view._scaleY, e = this._targetTexture; +e && (t = e.height); +var i = this._fov * cc.macro.RAD; +this.node.z = t / (2 * Math.tan(i / 2)); +i = 2 * Math.atan(Math.tan(i / 2) / this.zoomRatio); +this._camera.setFov(i); +this._camera.setOrthoHeight(t / 2 / this.zoomRatio); +}, +beforeDraw: function() { +if (this._camera) { +if (this.node._is3DNode) { +this._camera.setFov(this._fov * cc.macro.RAD); +this._camera.setOrthoHeight(this._orthoSize); +} else this._layout2D(); +this._camera.dirty = !0; +} +} +}); +cc.js.mixin(A.prototype, { +getNodeToCameraTransform: function(t) { +var e = o.identity(); +t.getWorldMatrix(d); +if (this.containsNode(t)) { +this.getWorldToCameraMatrix(f); +h.mul(d, d, f); +} +o.fromMat4(e, d); +return e; +}, +getCameraToWorldPoint: function(t, e) { +return this.getScreenToWorldPoint(t, e); +}, +getWorldToCameraPoint: function(t, e) { +return this.getWorldToScreenPoint(t, e); +}, +getCameraToWorldMatrix: function(t) { +return this.getScreenToWorldMatrix2D(t); +}, +getWorldToCameraMatrix: function(t) { +return this.getWorldToScreenMatrix2D(t); +} +}); +e.exports = cc.Camera = A; +}), { +"../../renderer/core/view": 343, +"../../renderer/scene/camera": 371, +"../CCGame": 51, +"../geom-utils": 138, +"../renderer/index": 244, +"../renderer/render-flow": 245, +"../utils/affine-transform": 286 +} ], +81: [ (function(t, e, i) { +"use strict"; +cc.Collider.Box = cc.Class({ +properties: { +_offset: cc.v2(0, 0), +_size: cc.size(100, 100), +offset: { +tooltip: !1, +get: function() { +return this._offset; +}, +set: function(t) { +this._offset = t; +}, +type: cc.Vec2 +}, +size: { +tooltip: !1, +get: function() { +return this._size; +}, +set: function(t) { +this._size.width = t.width < 0 ? 0 : t.width; +this._size.height = t.height < 0 ? 0 : t.height; +}, +type: cc.Size +} +}, +resetInEditor: !1 +}); +var n = cc.Class({ +name: "cc.BoxCollider", +extends: cc.Collider, +mixins: [ cc.Collider.Box ], +editor: !1 +}); +cc.BoxCollider = e.exports = n; +}), {} ], +82: [ (function(t, e, i) { +"use strict"; +cc.Collider.Circle = cc.Class({ +properties: { +_offset: cc.v2(0, 0), +_radius: 50, +offset: { +get: function() { +return this._offset; +}, +set: function(t) { +this._offset = t; +}, +type: cc.Vec2 +}, +radius: { +tooltip: !1, +get: function() { +return this._radius; +}, +set: function(t) { +this._radius = t < 0 ? 0 : t; +} +} +}, +resetInEditor: !1 +}); +var n = cc.Class({ +name: "cc.CircleCollider", +extends: cc.Collider, +mixins: [ cc.Collider.Circle ], +editor: !1 +}); +cc.CircleCollider = e.exports = n; +}), {} ], +83: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.Collider", +extends: cc.Component, +properties: { +editing: { +default: !1, +serializable: !1, +tooltip: !1 +}, +tag: { +tooltip: !1, +default: 0, +range: [ 0, 1e7 ], +type: cc.Integer +} +}, +onDisable: function() { +cc.director.getCollisionManager().removeCollider(this); +}, +onEnable: function() { +cc.director.getCollisionManager().addCollider(this); +} +}); +cc.Collider = e.exports = n; +}), {} ], +84: [ (function(t, e, i) { +"use strict"; +var n = t("./CCContact"), r = n.CollisionType, s = t("../CCNode").EventType, o = cc.vmath, a = cc.v2(); +function c(t, e, i, n, r, s) { +var o = t.x, a = t.y, c = t.width, l = t.height, h = e.m00, u = e.m01, _ = e.m04, f = e.m05, d = h * o + _ * a + e.m12, m = u * o + f * a + e.m13, p = h * c, v = u * c, y = _ * l, g = f * l; +n.x = d; +n.y = m; +r.x = p + d; +r.y = v + m; +i.x = y + d; +i.y = g + m; +s.x = p + y + d; +s.y = v + g + m; +} +var l = cc.Class({ +mixins: [ cc.EventTarget ], +properties: { +enabled: !1, +enabledDrawBoundingBox: !1 +}, +ctor: function() { +this._contacts = []; +this._colliders = []; +this._debugDrawer = null; +this._enabledDebugDraw = !1; +cc.director._scheduler && cc.director._scheduler.enableForTarget(this); +}, +update: function(t) { +if (this.enabled) { +var e = void 0, i = void 0, n = this._colliders; +for (e = 0, i = n.length; e < i; e++) this.updateCollider(n[e]); +var s = this._contacts, o = []; +for (e = 0, i = s.length; e < i; e++) { +var a = s[e].updateState(); +a !== r.None && o.push([ a, s[e] ]); +} +for (e = 0, i = o.length; e < i; e++) { +var c = o[e]; +this._doCollide(c[0], c[1]); +} +this.drawColliders(); +} +}, +_doCollide: function(t, e) { +var i = void 0; +switch (t) { +case r.CollisionEnter: +i = "onCollisionEnter"; +break; + +case r.CollisionStay: +i = "onCollisionStay"; +break; + +case r.CollisionExit: +i = "onCollisionExit"; +} +var n = e.collider1, s = e.collider2, o = n.node._components, a = s.node._components, c = void 0, l = void 0, h = void 0; +for (c = 0, l = o.length; c < l; c++) (h = o[c])[i] && h[i](s, n); +for (c = 0, l = a.length; c < l; c++) (h = a[c])[i] && h[i](n, s); +}, +shouldCollide: function(t, e) { +var i = t.node, n = e.node, r = cc.game.collisionMatrix; +return i !== n && r[i.groupIndex][n.groupIndex]; +}, +initCollider: function(t) { +if (!t.world) { +var e = t.world = {}; +e.aabb = cc.rect(); +e.preAabb = cc.rect(); +e.matrix = o.mat4.create(); +e.radius = 0; +if (t instanceof cc.BoxCollider) { +e.position = null; +e.points = [ cc.v2(), cc.v2(), cc.v2(), cc.v2() ]; +} else if (t instanceof cc.PolygonCollider) { +e.position = null; +e.points = t.points.map((function(t) { +return cc.v2(t.x, t.y); +})); +} else if (t instanceof cc.CircleCollider) { +e.position = cc.v2(); +e.points = null; +} +} +}, +updateCollider: function(t) { +var e = t.offset, i = t.world, n = i.aabb, r = i.matrix; +t.node.getWorldMatrix(r); +var s = i.preAabb; +s.x = n.x; +s.y = n.y; +s.width = n.width; +s.height = n.height; +if (t instanceof cc.BoxCollider) { +var l = t.size; +n.x = e.x - l.width / 2; +n.y = e.y - l.height / 2; +n.width = l.width; +n.height = l.height; +var h = i.points, u = h[0], _ = h[1], f = h[2], d = h[3]; +c(n, r, u, _, f, d); +var m = Math.min(u.x, _.x, f.x, d.x), p = Math.min(u.y, _.y, f.y, d.y), v = Math.max(u.x, _.x, f.x, d.x), y = Math.max(u.y, _.y, f.y, d.y); +n.x = m; +n.y = p; +n.width = v - m; +n.height = y - p; +} else if (t instanceof cc.CircleCollider) { +o.vec2.transformMat4(a, t.offset, r); +i.position.x = a.x; +i.position.y = a.y; +var g = r.m12, x = r.m13; +r.m12 = r.m13 = 0; +a.x = t.radius; +a.y = 0; +o.vec2.transformMat4(a, a, r); +var C = Math.sqrt(a.x * a.x + a.y * a.y); +i.radius = C; +n.x = i.position.x - C; +n.y = i.position.y - C; +n.width = 2 * C; +n.height = 2 * C; +r.m12 = g; +r.m13 = x; +} else if (t instanceof cc.PolygonCollider) { +var b = t.points, A = i.points; +A.length = b.length; +for (var S = 1e6, w = 1e6, T = -1e6, E = -1e6, M = 0, B = b.length; M < B; M++) { +A[M] || (A[M] = cc.v2()); +a.x = b[M].x + e.x; +a.y = b[M].y + e.y; +o.vec2.transformMat4(a, a, r); +var D = a.x, I = a.y; +A[M].x = D; +A[M].y = I; +D > T && (T = D); +D < S && (S = D); +I > E && (E = I); +I < w && (w = I); +} +n.x = S; +n.y = w; +n.width = T - S; +n.height = E - w; +} +}, +addCollider: function(t) { +var e = this._colliders; +if (-1 === e.indexOf(t)) { +for (var i = 0, r = e.length; i < r; i++) { +var o = e[i]; +if (this.shouldCollide(t, o)) { +var a = new n(t, o); +this._contacts.push(a); +} +} +e.push(t); +this.initCollider(t); +} +t.node.on(s.GROUP_CHANGED, this.onNodeGroupChanged, this); +}, +removeCollider: function(t) { +var e = this._colliders, i = e.indexOf(t); +if (i >= 0) { +e.splice(i, 1); +for (var n = this._contacts, o = n.length - 1; o >= 0; o--) { +var a = n[o]; +if (a.collider1 === t || a.collider2 === t) { +a.touching && this._doCollide(r.CollisionExit, a); +n.splice(o, 1); +} +} +t.node.off(s.GROUP_CHANGED, this.onNodeGroupChanged, this); +} else cc.errorID(6600); +}, +onNodeGroupChanged: function(t) { +for (var e = t.getComponents(cc.Collider), i = 0, n = e.length; i < n; i++) { +var r = e[i]; +if (!(r instanceof cc.PhysicsCollider)) { +this.removeCollider(r); +this.addCollider(r); +} +} +}, +drawColliders: function() { +if (this._enabledDebugDraw) { +this._checkDebugDrawValid(); +var t = this._debugDrawer; +t.clear(); +for (var e = this._colliders, i = 0, n = e.length; i < n; i++) { +var r = e[i]; +t.strokeColor = cc.Color.WHITE; +if (r instanceof cc.BoxCollider || r instanceof cc.PolygonCollider) { +var s = r.world.points; +if (s.length > 0) { +t.moveTo(s[0].x, s[0].y); +for (var o = 1; o < s.length; o++) t.lineTo(s[o].x, s[o].y); +t.close(); +t.stroke(); +} +} else if (r instanceof cc.CircleCollider) { +t.circle(r.world.position.x, r.world.position.y, r.world.radius); +t.stroke(); +} +if (this.enabledDrawBoundingBox) { +var a = r.world.aabb; +t.strokeColor = cc.Color.BLUE; +t.moveTo(a.xMin, a.yMin); +t.lineTo(a.xMin, a.yMax); +t.lineTo(a.xMax, a.yMax); +t.lineTo(a.xMax, a.yMin); +t.close(); +t.stroke(); +} +} +} +}, +_checkDebugDrawValid: function() { +if (!this._debugDrawer || !this._debugDrawer.isValid) { +var t = new cc.Node("COLLISION_MANAGER_DEBUG_DRAW"); +t.zIndex = cc.macro.MAX_ZINDEX; +cc.game.addPersistRootNode(t); +this._debugDrawer = t.addComponent(cc.Graphics); +} +} +}); +cc.js.getset(l.prototype, "enabledDebugDraw", (function() { +return this._enabledDebugDraw; +}), (function(t) { +if (t && !this._enabledDebugDraw) { +this._checkDebugDrawValid(); +this._debugDrawer.node.active = !0; +} else if (!t && this._enabledDebugDraw) { +this._debugDrawer.clear(!0); +this._debugDrawer.node.active = !1; +} +this._enabledDebugDraw = t; +})); +cc.CollisionManager = e.exports = l; +}), { +"../CCNode": 52, +"./CCContact": 85 +} ], +85: [ (function(t, e, i) { +"use strict"; +var n = t("./CCIntersection"), r = cc.Enum({ +None: 0, +CollisionEnter: 1, +CollisionStay: 2, +CollisionExit: 3 +}); +function s(t, e) { +this.collider1 = t; +this.collider2 = e; +this.touching = !1; +var i = t instanceof cc.BoxCollider || t instanceof cc.PolygonCollider, r = e instanceof cc.BoxCollider || e instanceof cc.PolygonCollider, s = t instanceof cc.CircleCollider, o = e instanceof cc.CircleCollider; +if (i && r) this.testFunc = n.polygonPolygon; else if (s && o) this.testFunc = n.circleCircle; else if (i && o) this.testFunc = n.polygonCircle; else if (s && r) { +this.testFunc = n.polygonCircle; +this.collider1 = e; +this.collider2 = t; +} else cc.errorID(6601, cc.js.getClassName(t), cc.js.getClassName(e)); +} +s.prototype.test = function() { +var t = this.collider1.world, e = this.collider2.world; +return !!t.aabb.intersects(e.aabb) && (this.testFunc === n.polygonPolygon ? this.testFunc(t.points, e.points) : this.testFunc === n.circleCircle ? this.testFunc(t, e) : this.testFunc === n.polygonCircle && this.testFunc(t.points, e)); +}; +s.prototype.updateState = function() { +var t = this.test(), e = r.None; +if (t && !this.touching) { +this.touching = !0; +e = r.CollisionEnter; +} else if (t && this.touching) e = r.CollisionStay; else if (!t && this.touching) { +this.touching = !1; +e = r.CollisionExit; +} +return e; +}; +s.CollisionType = r; +e.exports = s; +}), { +"./CCIntersection": 86 +} ], +86: [ (function(t, e, i) { +"use strict"; +var n = {}; +function r(t, e, i, n) { +var r = (n.x - i.x) * (t.y - i.y) - (n.y - i.y) * (t.x - i.x), s = (e.x - t.x) * (t.y - i.y) - (e.y - t.y) * (t.x - i.x), o = (n.y - i.y) * (e.x - t.x) - (n.x - i.x) * (e.y - t.y); +if (0 !== o) { +var a = r / o, c = s / o; +if (0 <= a && a <= 1 && 0 <= c && c <= 1) return !0; +} +return !1; +} +n.lineLine = r; +n.lineRect = function(t, e, i) { +var n = new cc.Vec2(i.x, i.y), s = new cc.Vec2(i.x, i.yMax), o = new cc.Vec2(i.xMax, i.yMax), a = new cc.Vec2(i.xMax, i.y); +return !!(r(t, e, n, s) || r(t, e, s, o) || r(t, e, o, a) || r(t, e, a, n)); +}; +function s(t, e, i) { +for (var n = i.length, s = 0; s < n; ++s) { +if (r(t, e, i[s], i[(s + 1) % n])) return !0; +} +return !1; +} +n.linePolygon = s; +n.rectRect = function(t, e) { +var i = t.x, n = t.y, r = t.x + t.width, s = t.y + t.height, o = e.x, a = e.y, c = e.x + e.width, l = e.y + e.height; +return i <= c && r >= o && n <= l && s >= a; +}; +n.rectPolygon = function(t, e) { +var i, n, r = new cc.Vec2(t.x, t.y), a = new cc.Vec2(t.x, t.yMax), c = new cc.Vec2(t.xMax, t.yMax), l = new cc.Vec2(t.xMax, t.y); +if (s(r, a, e)) return !0; +if (s(a, c, e)) return !0; +if (s(c, l, e)) return !0; +if (s(l, r, e)) return !0; +for (i = 0, n = e.length; i < n; ++i) if (o(e[i], t)) return !0; +return !!(o(r, e) || o(a, e) || o(c, e) || o(l, e)); +}; +n.polygonPolygon = function(t, e) { +var i, n; +for (i = 0, n = t.length; i < n; ++i) if (s(t[i], t[(i + 1) % n], e)) return !0; +for (i = 0, n = e.length; i < n; ++i) if (o(e[i], t)) return !0; +for (i = 0, n = t.length; i < n; ++i) if (o(t[i], e)) return !0; +return !1; +}; +n.circleCircle = function(t, e) { +return t.position.sub(e.position).mag() < t.radius + e.radius; +}; +n.polygonCircle = function(t, e) { +var i = e.position; +if (o(i, t)) return !0; +for (var n = 0, r = t.length; n < r; n++) if (a(i, 0 === n ? t[t.length - 1] : t[n - 1], t[n], !0) < e.radius) return !0; +return !1; +}; +function o(t, e) { +for (var i = !1, n = t.x, r = t.y, s = e.length, o = 0, a = s - 1; o < s; a = o++) { +var c = e[o].x, l = e[o].y, h = e[a].x, u = e[a].y; +l > r != u > r && n < (h - c) * (r - l) / (u - l) + c && (i = !i); +} +return i; +} +n.pointInPolygon = o; +function a(t, e, i, n) { +var r, s = i.x - e.x, o = i.y - e.y, a = s * s + o * o, c = ((t.x - e.x) * s + (t.y - e.y) * o) / a; +r = n ? a ? c < 0 ? e : c > 1 ? i : cc.v2(e.x + c * s, e.y + c * o) : e : cc.v2(e.x + c * s, e.y + c * o); +s = t.x - r.x; +o = t.y - r.y; +return Math.sqrt(s * s + o * o); +} +n.pointLineDistance = a; +cc.Intersection = e.exports = n; +}), {} ], +87: [ (function(t, e, i) { +"use strict"; +cc.Collider.Polygon = cc.Class({ +properties: { +threshold: { +default: 1, +serializable: !1, +visible: !1 +}, +_offset: cc.v2(0, 0), +offset: { +get: function() { +return this._offset; +}, +set: function(t) { +this._offset = t; +}, +type: cc.Vec2 +}, +points: { +tooltip: !1, +default: function() { +return [ cc.v2(-50, -50), cc.v2(50, -50), cc.v2(50, 50), cc.v2(-50, 50) ]; +}, +type: [ cc.Vec2 ] +} +}, +resetPointsByContour: !1 +}); +var n = cc.Class({ +name: "cc.PolygonCollider", +extends: cc.Collider, +mixins: [ cc.Collider.Polygon ], +editor: !1 +}); +cc.PolygonCollider = e.exports = n; +}), {} ], +88: [ (function(t, e, i) { +"use strict"; +t("./CCCollisionManager"); +t("./CCCollider"); +t("./CCBoxCollider"); +t("./CCCircleCollider"); +t("./CCPolygonCollider"); +}), { +"./CCBoxCollider": 81, +"./CCCircleCollider": 82, +"./CCCollider": 83, +"./CCCollisionManager": 84, +"./CCPolygonCollider": 87 +} ], +89: [ (function(t, e, i) { +"use strict"; +t("./platform/CCClass"); +var n = t("./platform/CCObject").Flags, r = t("./platform/js").array, s = n.IsStartCalled, o = n.IsOnEnableCalled; +n.IsEditorOnEnableCalled; +function a(t, e) { +for (var i = e.constructor._executionOrder, n = e._id, r = 0, s = t.length - 1, o = s >>> 1; r <= s; o = r + s >>> 1) { +var a = t[o], c = a.constructor._executionOrder; +if (c > i) s = o - 1; else if (c < i) r = o + 1; else { +var l = a._id; +if (l > n) s = o - 1; else { +if (!(l < n)) return o; +r = o + 1; +} +} +} +return ~r; +} +function c(t, e) { +for (var i = t.array, n = t.i + 1; n < i.length; ) { +var r = i[n]; +if (r._enabled && r.node._activeInHierarchy) ++n; else { +t.removeAt(n); +e && (r._objFlags &= ~e); +} +} +} +var l = cc.Class({ +__ctor__: function(t) { +var e = r.MutableForwardIterator; +this._zero = new e([]); +this._neg = new e([]); +this._pos = new e([]); +0; +this._invoke = t; +}, +statics: { +stableRemoveInactive: c +}, +add: null, +remove: null, +invoke: null +}); +function h(t, e) { +return t.constructor._executionOrder - e.constructor._executionOrder; +} +var u = cc.Class({ +extends: l, +add: function(t) { +var e = t.constructor._executionOrder; +(0 === e ? this._zero : e < 0 ? this._neg : this._pos).array.push(t); +}, +remove: function(t) { +var e = t.constructor._executionOrder; +(0 === e ? this._zero : e < 0 ? this._neg : this._pos).fastRemove(t); +}, +cancelInactive: function(t) { +c(this._zero, t); +c(this._neg, t); +c(this._pos, t); +}, +invoke: function() { +var t = this._neg; +if (t.array.length > 0) { +t.array.sort(h); +this._invoke(t); +t.array.length = 0; +} +this._invoke(this._zero); +this._zero.array.length = 0; +var e = this._pos; +if (e.array.length > 0) { +e.array.sort(h); +this._invoke(e); +e.array.length = 0; +} +} +}), _ = cc.Class({ +extends: l, +add: function(t) { +var e = t.constructor._executionOrder; +if (0 === e) this._zero.array.push(t); else { +var i = e < 0 ? this._neg.array : this._pos.array, n = a(i, t); +n < 0 && i.splice(~n, 0, t); +} +}, +remove: function(t) { +var e = t.constructor._executionOrder; +if (0 === e) this._zero.fastRemove(t); else { +var i = e < 0 ? this._neg : this._pos, n = a(i.array, t); +n >= 0 && i.removeAt(n); +} +}, +invoke: function(t) { +this._neg.array.length > 0 && this._invoke(this._neg, t); +this._invoke(this._zero, t); +this._pos.array.length > 0 && this._invoke(this._pos, t); +} +}); +function f(t, e, i, n) { +var r = "var a=it.array;for(it.i=0;it.i= 0) r.fastRemoveAt(this.scheduleInNextFrame, e); else { +!t.start || t._objFlags & s || this.startInvoker.remove(t); +t.update && this.updateInvoker.remove(t); +t.lateUpdate && this.lateUpdateInvoker.remove(t); +} +}, +enableComp: function(t, e) { +if (!(t._objFlags & o)) { +if (t.onEnable) { +if (e) { +e.add(t); +return; +} +t.onEnable(); +if (!t.node._activeInHierarchy) return; +} +this._onEnabled(t); +} +}, +disableComp: function(t) { +if (t._objFlags & o) { +t.onDisable && t.onDisable(); +this._onDisabled(t); +} +}, +_scheduleImmediate: function(t) { +!t.start || t._objFlags & s || this.startInvoker.add(t); +t.update && this.updateInvoker.add(t); +t.lateUpdate && this.lateUpdateInvoker.add(t); +}, +_deferredSchedule: function() { +for (var t = this.scheduleInNextFrame, e = 0, i = t.length; e < i; e++) { +var n = t[e]; +this._scheduleImmediate(n); +} +t.length = 0; +}, +startPhase: function() { +this._updating = !0; +this.scheduleInNextFrame.length > 0 && this._deferredSchedule(); +this.startInvoker.invoke(); +}, +updatePhase: function(t) { +this.updateInvoker.invoke(t); +}, +lateUpdatePhase: function(t) { +this.lateUpdateInvoker.invoke(t); +this._updating = !1; +} +}); +e.exports = y; +}), { +"./platform/CCClass": 201, +"./platform/CCObject": 207, +"./platform/js": 221, +"./utils/misc": 297 +} ], +90: [ (function(t, e, i) { +"use strict"; +var n = t("../../animation/animation-animator"), r = t("../../animation/animation-clip"), s = t("../event/event-target"), o = t("../platform/js"); +function a(t, e) { +return t === e || t && e && (t.name === e.name || t._uuid === e._uuid); +} +var c = cc.Enum({ +PLAY: "play", +STOP: "stop", +PAUSE: "pause", +RESUME: "resume", +LASTFRAME: "lastframe", +FINISHED: "finished" +}), l = cc.Class({ +name: "cc.Animation", +extends: t("./CCComponent"), +mixins: [ s ], +editor: !1, +statics: { +EventType: c +}, +ctor: function() { +cc.EventTarget.call(this); +this._animator = null; +this._nameToState = o.createMap(!0); +this._didInit = !1; +this._currentClip = null; +}, +properties: { +_defaultClip: { +default: null, +type: r +}, +defaultClip: { +type: r, +get: function() { +return this._defaultClip; +}, +set: function(t) {}, +tooltip: !1 +}, +currentClip: { +get: function() { +return this._currentClip; +}, +set: function(t) { +this._currentClip = t; +}, +type: r, +visible: !1 +}, +_writableClips: { +get: function() { +return this._clips; +}, +set: function(t) { +this._didInit = !1; +this._clips = t; +this._init(); +}, +type: [ r ] +}, +_clips: { +default: [], +type: [ r ], +tooltip: !1, +visible: !0 +}, +playOnLoad: { +default: !1, +tooltip: !1 +} +}, +start: function() { +if (this.playOnLoad && this._defaultClip) { +if (!(this._animator && this._animator.isPlaying)) { +var t = this.getAnimationState(this._defaultClip.name); +this._animator.playState(t); +} +} +}, +onEnable: function() { +this._animator && this._animator.resume(); +}, +onDisable: function() { +this._animator && this._animator.pause(); +}, +onDestroy: function() { +this.stop(); +}, +getClips: function() { +return this._clips; +}, +play: function(t, e) { +var i = this.playAdditive(t, e); +this._animator.stopStatesExcept(i); +return i; +}, +playAdditive: function(t, e) { +this._init(); +var i = this.getAnimationState(t || this._defaultClip && this._defaultClip.name); +if (i) { +this.enabled = !0; +var n = this._animator; +if (n.isPlaying && i.isPlaying) if (i.isPaused) n.resumeState(i); else { +n.stopState(i); +n.playState(i, e); +} else n.playState(i, e); +this.enabledInHierarchy || n.pause(); +this.currentClip = i.clip; +} +return i; +}, +stop: function(t) { +if (this._didInit) if (t) { +var e = this._nameToState[t]; +e && this._animator.stopState(e); +} else this._animator.stop(); +}, +pause: function(t) { +if (this._didInit) if (t) { +var e = this._nameToState[t]; +e && this._animator.pauseState(e); +} else this.enabled = !1; +}, +resume: function(t) { +if (this._didInit) if (t) { +var e = this._nameToState[t]; +e && this._animator.resumeState(e); +} else this.enabled = !0; +}, +setCurrentTime: function(t, e) { +this._init(); +if (e) { +var i = this._nameToState[e]; +i && this._animator.setStateTime(i, t); +} else this._animator.setStateTime(t); +}, +getAnimationState: function(t) { +this._init(); +var e = this._nameToState[t]; +0; +e && !e.curveLoaded && this._animator._reloadClip(e); +return e || null; +}, +addClip: function(t, e) { +if (t) { +this._init(); +cc.js.array.contains(this._clips, t) || this._clips.push(t); +e = e || t.name; +var i = this._nameToState[e]; +if (i) { +if (i.clip === t) return i; +var n = this._clips.indexOf(i.clip); +-1 !== n && this._clips.splice(n, 1); +} +var r = new cc.AnimationState(t, e); +this._nameToState[e] = r; +return r; +} +cc.warnID(3900); +}, +removeClip: function(t, e) { +if (t) { +this._init(); +var i = void 0; +for (var n in this._nameToState) { +if ((i = this._nameToState[n]).clip === t) break; +} +if (t === this._defaultClip) { +if (!e) { +cc.warnID(3902); +return; +} +this._defaultClip = null; +} +if (i && i.isPlaying) { +if (!e) { +cc.warnID(3903); +return; +} +this.stop(i.name); +} +this._clips = this._clips.filter((function(e) { +return e !== t; +})); +i && delete this._nameToState[i.name]; +} else cc.warnID(3901); +}, +sample: function(t) { +this._init(); +if (t) { +var e = this._nameToState[t]; +e && e.sample(); +} else this._animator.sample(); +}, +on: function(t, e, i, n) { +this._init(); +var r = this._EventTargetOn(t, e, i, n); +if ("lastframe" === t) { +var s = this._nameToState; +for (var o in s) s[o]._lastframeEventOn = !0; +} +return r; +}, +off: function(t, e, i, n) { +this._init(); +if ("lastframe" === t) { +var r = this._nameToState; +for (var s in r) r[s]._lastframeEventOn = !1; +} +this._EventTargetOff(t, e, i, n); +}, +_init: function() { +if (!this._didInit) { +this._didInit = !0; +this._animator = new n(this.node, this); +this._createStates(); +} +}, +_createStates: function() { +this._nameToState = o.createMap(!0); +for (var t = null, e = !1, i = 0; i < this._clips.length; ++i) { +var n = this._clips[i]; +if (n) { +t = new cc.AnimationState(n); +0; +this._nameToState[t.name] = t; +a(this._defaultClip, n) && (e = t); +} +} +if (this._defaultClip && !e) { +t = new cc.AnimationState(this._defaultClip); +0; +this._nameToState[t.name] = t; +} +} +}); +l.prototype._EventTargetOn = s.prototype.on; +l.prototype._EventTargetOff = s.prototype.off; +cc.Animation = e.exports = l; +}), { +"../../animation/animation-animator": 9, +"../../animation/animation-clip": 10, +"../event/event-target": 133, +"../platform/js": 221, +"./CCComponent": 95 +} ], +91: [ (function(i, n, r) { +"use strict"; +var s = i("../utils/misc"), o = i("./CCComponent"), a = i("../assets/CCAudioClip"), c = cc.Class({ +name: "cc.AudioSource", +extends: o, +editor: !1, +ctor: function() { +this.audio = new cc.Audio(); +}, +properties: { +_clip: { +default: null, +type: a +}, +_volume: 1, +_mute: !1, +_loop: !1, +_pausedFlag: { +default: !1, +serializable: !1 +}, +isPlaying: { +get: function() { +return this.audio.getState() === cc.Audio.State.PLAYING; +}, +visible: !1 +}, +clip: { +get: function() { +return this._clip; +}, +set: function(i) { +if ("string" !== ("object" === (e = typeof i) ? t(i) : e)) { +if (i !== this._clip) { +this._clip = i; +this.audio.stop(); +this.preload && (this.audio.src = this._clip); +} +} else { +cc.warnID(8401, "cc.AudioSource", "cc.AudioClip", "AudioClip", "cc.AudioClip", "audio"); +var n = this; +a._loadByUrl(i, (function(t, e) { +e && (n.clip = e); +})); +} +}, +type: a, +tooltip: !1, +animatable: !1 +}, +volume: { +get: function() { +return this._volume; +}, +set: function(t) { +t = s.clamp01(t); +this._volume = t; +this._mute || this.audio.setVolume(t); +return t; +}, +tooltip: !1 +}, +mute: { +get: function() { +return this._mute; +}, +set: function(t) { +this._mute = t; +this.audio.setVolume(t ? 0 : this._volume); +return t; +}, +animatable: !1, +tooltip: !1 +}, +loop: { +get: function() { +return this._loop; +}, +set: function(t) { +this._loop = t; +this.audio.setLoop(t); +return t; +}, +animatable: !1, +tooltip: !1 +}, +playOnLoad: { +default: !1, +tooltip: !1, +animatable: !1 +}, +preload: { +default: !1, +animatable: !1 +} +}, +_ensureDataLoaded: function() { +this.audio.src !== this._clip && (this.audio.src = this._clip); +}, +_pausedCallback: function() { +if (this.audio.getState() === cc.Audio.State.PLAYING) { +this.audio.pause(); +this._pausedFlag = !0; +} +}, +_restoreCallback: function() { +this._pausedFlag && this.audio.resume(); +this._pausedFlag = !1; +}, +onLoad: function() { +this.audio.setVolume(this._mute ? 0 : this._volume); +this.audio.setLoop(this._loop); +}, +onEnable: function() { +this.preload && (this.audio.src = this._clip); +this.playOnLoad && this.play(); +cc.game.on(cc.game.EVENT_HIDE, this._pausedCallback, this); +cc.game.on(cc.game.EVENT_SHOW, this._restoreCallback, this); +}, +onDisable: function() { +this.stop(); +cc.game.off(cc.game.EVENT_HIDE, this._pausedCallback, this); +cc.game.off(cc.game.EVENT_SHOW, this._restoreCallback, this); +}, +onDestroy: function() { +this.stop(); +this.audio.destroy(); +cc.audioEngine.uncache(this._clip); +}, +play: function() { +if (this._clip) { +var t = this.audio; +this._clip.loaded && t.stop(); +this._ensureDataLoaded(); +t.setCurrentTime(0); +t.play(); +} +}, +stop: function() { +this.audio.stop(); +}, +pause: function() { +this.audio.pause(); +}, +resume: function() { +this._ensureDataLoaded(); +this.audio.resume(); +}, +rewind: function() { +this.audio.setCurrentTime(0); +}, +getCurrentTime: function() { +return this.audio.getCurrentTime(); +}, +setCurrentTime: function(t) { +this.audio.setCurrentTime(t); +return t; +}, +getDuration: function() { +return this.audio.getDuration(); +} +}); +cc.AudioSource = n.exports = c; +}), { +"../assets/CCAudioClip": 57, +"../utils/misc": 297, +"./CCComponent": 95 +} ], +92: [ (function(t, e, i) { +"use strict"; +var n = [ "touchstart", "touchmove", "touchend", "mousedown", "mousemove", "mouseup", "mouseenter", "mouseleave", "mousewheel" ]; +function r(t) { +t.stopPropagation(); +} +var s = cc.Class({ +name: "cc.BlockInputEvents", +extends: t("./CCComponent"), +editor: { +menu: "i18n:MAIN_MENU.component.ui/Block Input Events", +inspector: "packages://inspector/inspectors/comps/block-input-events.js", +help: "i18n:COMPONENT.help_url.block_input_events" +}, +onEnable: function() { +for (var t = 0; t < n.length; t++) this.node.on(n[t], r, this); +}, +onDisable: function() { +for (var t = 0; t < n.length; t++) this.node.off(n[t], r, this); +} +}); +cc.BlockInputEvents = e.exports = s; +}), { +"./CCComponent": 95 +} ], +93: [ (function(t, e, i) { +"use strict"; +var n = t("./CCComponent"), r = t("../utils/gray-sprite-state"), s = cc.Enum({ +NONE: 0, +COLOR: 1, +SPRITE: 2, +SCALE: 3 +}), o = cc.Enum({ +NORMAL: 0, +HOVER: 1, +PRESSED: 2, +DISABLED: 3 +}), a = cc.Class({ +name: "cc.Button", +extends: n, +mixins: [ r ], +ctor: function() { +this._pressed = !1; +this._hovered = !1; +this._fromColor = null; +this._toColor = null; +this._time = 0; +this._transitionFinished = !0; +this._fromScale = cc.Vec2.ZERO; +this._toScale = cc.Vec2.ZERO; +this._originalScale = null; +this._graySpriteMaterial = null; +this._spriteMaterial = null; +this._sprite = null; +}, +editor: !1, +properties: { +interactable: { +default: !0, +tooltip: !1, +notify: function() { +this._updateState(); +this.interactable || this._resetState(); +}, +animatable: !1 +}, +_resizeToTarget: { +animatable: !1, +set: function(t) { +t && this._resizeNodeToTargetNode(); +} +}, +enableAutoGrayEffect: { +default: !1, +tooltip: !1, +notify: function() { +this._updateDisabledState(); +} +}, +transition: { +default: s.NONE, +tooltip: !1, +type: s, +animatable: !1, +notify: function(t) { +this._updateTransition(t); +}, +formerlySerializedAs: "transition" +}, +normalColor: { +default: cc.Color.WHITE, +displayName: "Normal", +tooltip: !1, +notify: function() { +this.transition === s.Color && this._getButtonState() === o.NORMAL && (this._getTarget().opacity = this.normalColor.a); +this._updateState(); +} +}, +pressedColor: { +default: cc.color(211, 211, 211), +displayName: "Pressed", +tooltip: !1, +notify: function() { +this.transition === s.Color && this._getButtonState() === o.PRESSED && (this._getTarget().opacity = this.pressedColor.a); +this._updateState(); +}, +formerlySerializedAs: "pressedColor" +}, +hoverColor: { +default: cc.Color.WHITE, +displayName: "Hover", +tooltip: !1, +notify: function() { +this.transition === s.Color && this._getButtonState() === o.HOVER && (this._getTarget().opacity = this.hoverColor.a); +this._updateState(); +}, +formerlySerializedAs: "hoverColor" +}, +disabledColor: { +default: cc.color(124, 124, 124), +displayName: "Disabled", +tooltip: !1, +notify: function() { +this.transition === s.Color && this._getButtonState() === o.DISABLED && (this._getTarget().opacity = this.disabledColor.a); +this._updateState(); +} +}, +duration: { +default: .1, +range: [ 0, 10 ], +tooltip: !1 +}, +zoomScale: { +default: 1.2, +tooltip: !1 +}, +normalSprite: { +default: null, +type: cc.SpriteFrame, +displayName: "Normal", +tooltip: !1, +notify: function() { +this._updateState(); +} +}, +pressedSprite: { +default: null, +type: cc.SpriteFrame, +displayName: "Pressed", +tooltip: !1, +formerlySerializedAs: "pressedSprite", +notify: function() { +this._updateState(); +} +}, +hoverSprite: { +default: null, +type: cc.SpriteFrame, +displayName: "Hover", +tooltip: !1, +formerlySerializedAs: "hoverSprite", +notify: function() { +this._updateState(); +} +}, +disabledSprite: { +default: null, +type: cc.SpriteFrame, +displayName: "Disabled", +tooltip: !1, +notify: function() { +this._updateState(); +} +}, +target: { +default: null, +type: cc.Node, +tooltip: !1, +notify: function(t) { +this._applyTarget(); +t && this.target !== t && this._unregisterTargetEvent(t); +} +}, +clickEvents: { +default: [], +type: cc.Component.EventHandler, +tooltip: !1 +} +}, +statics: { +Transition: s +}, +__preload: function() { +this._applyTarget(); +this._updateState(); +}, +_resetState: function() { +this._pressed = !1; +this._hovered = !1; +var t = this._getTarget(), e = this.transition, i = this._originalScale; +e === s.COLOR && this.interactable ? this._setTargetColor(this.normalColor) : e === s.SCALE && i && t.setScale(i.x, i.y); +this._transitionFinished = !0; +}, +onEnable: function() { +this.normalSprite && this.normalSprite.ensureLoadTexture(); +this.hoverSprite && this.hoverSprite.ensureLoadTexture(); +this.pressedSprite && this.pressedSprite.ensureLoadTexture(); +this.disabledSprite && this.disabledSprite.ensureLoadTexture(); +this._registerNodeEvent(); +}, +onDisable: function() { +this._resetState(); +this._unregisterNodeEvent(); +}, +_getTarget: function() { +return this.target ? this.target : this.node; +}, +_onTargetSpriteFrameChanged: function(t) { +this.transition === s.SPRITE && this._setCurrentStateSprite(t.spriteFrame); +}, +_onTargetColorChanged: function(t) { +this.transition === s.COLOR && this._setCurrentStateColor(t); +}, +_onTargetScaleChanged: function() { +var t = this._getTarget(); +if (this._originalScale && (this.transition !== s.SCALE || this._transitionFinished)) { +this._originalScale.x = t.scaleX; +this._originalScale.y = t.scaleY; +} +}, +_setTargetColor: function(t) { +var e = this._getTarget(); +e.color = t; +e.opacity = t.a; +}, +_getStateColor: function(t) { +switch (t) { +case o.NORMAL: +return this.normalColor; + +case o.HOVER: +return this.hoverColor; + +case o.PRESSED: +return this.pressedColor; + +case o.DISABLED: +return this.disabledColor; +} +}, +_getStateSprite: function(t) { +switch (t) { +case o.NORMAL: +return this.normalSprite; + +case o.HOVER: +return this.hoverSprite; + +case o.PRESSED: +return this.pressedSprite; + +case o.DISABLED: +return this.disabledSprite; +} +}, +_setCurrentStateColor: function(t) { +switch (this._getButtonState()) { +case o.NORMAL: +this.normalColor = t; +break; + +case o.HOVER: +this.hoverColor = t; +break; + +case o.PRESSED: +this.pressedColor = t; +break; + +case o.DISABLED: +this.disabledColor = t; +} +}, +_setCurrentStateSprite: function(t) { +switch (this._getButtonState()) { +case o.NORMAL: +this.normalSprite = t; +break; + +case o.HOVER: +this.hoverSprite = t; +break; + +case o.PRESSED: +this.pressedSprite = t; +break; + +case o.DISABLED: +this.disabledSprite = t; +} +}, +update: function(t) { +var e = this._getTarget(); +if (!this._transitionFinished && (this.transition === s.COLOR || this.transition === s.SCALE)) { +this.time += t; +var i = 1; +this.duration > 0 && (i = this.time / this.duration); +i >= 1 && (i = 1); +if (this.transition === s.COLOR) { +var n = this._fromColor.lerp(this._toColor, i); +this._setTargetColor(n); +} else this.transition === s.SCALE && this._originalScale && (e.scale = this._fromScale.lerp(this._toScale, i)); +1 === i && (this._transitionFinished = !0); +} +}, +_registerNodeEvent: function() { +this.node.on(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this); +this.node.on(cc.Node.EventType.TOUCH_MOVE, this._onTouchMove, this); +this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); +this.node.on(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancel, this); +this.node.on(cc.Node.EventType.MOUSE_ENTER, this._onMouseMoveIn, this); +this.node.on(cc.Node.EventType.MOUSE_LEAVE, this._onMouseMoveOut, this); +}, +_unregisterNodeEvent: function() { +this.node.off(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this); +this.node.off(cc.Node.EventType.TOUCH_MOVE, this._onTouchMove, this); +this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); +this.node.off(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancel, this); +this.node.off(cc.Node.EventType.MOUSE_ENTER, this._onMouseMoveIn, this); +this.node.off(cc.Node.EventType.MOUSE_LEAVE, this._onMouseMoveOut, this); +}, +_registerTargetEvent: function(t) { +0; +t.on(cc.Node.EventType.SCALE_CHANGED, this._onTargetScaleChanged, this); +}, +_unregisterTargetEvent: function(t) { +0; +t.off(cc.Node.EventType.SCALE_CHANGED, this._onTargetScaleChanged, this); +}, +_getTargetSprite: function(t) { +var e = null; +t && (e = t.getComponent(cc.Sprite)); +return e; +}, +_applyTarget: function() { +var t = this._getTarget(); +this._sprite = this._getTargetSprite(t); +this._originalScale || (this._originalScale = cc.Vec2.ZERO); +this._originalScale.x = t.scaleX; +this._originalScale.y = t.scaleY; +this._registerTargetEvent(t); +}, +_onTouchBegan: function(t) { +if (this.interactable && this.enabledInHierarchy) { +this._pressed = !0; +this._updateState(); +t.stopPropagation(); +} +}, +_onTouchMove: function(t) { +if (this.interactable && this.enabledInHierarchy && this._pressed) { +var e = t.touch, i = this.node._hitTest(e.getLocation()), n = this._getTarget(), r = this._originalScale; +if (this.transition === s.SCALE && r) if (i) { +this._fromScale.x = r.x; +this._fromScale.y = r.y; +this._toScale.x = r.x * this.zoomScale; +this._toScale.y = r.y * this.zoomScale; +this._transitionFinished = !1; +} else { +this.time = 0; +this._transitionFinished = !0; +n.setScale(r.x, r.y); +} else { +var a = void 0; +a = i ? o.PRESSED : o.NORMAL; +this._applyTransition(a); +} +t.stopPropagation(); +} +}, +_onTouchEnded: function(t) { +if (this.interactable && this.enabledInHierarchy) { +if (this._pressed) { +cc.Component.EventHandler.emitEvents(this.clickEvents, t); +this.node.emit("click", this); +} +this._pressed = !1; +this._updateState(); +t.stopPropagation(); +} +}, +_onTouchCancel: function() { +if (this.interactable && this.enabledInHierarchy) { +this._pressed = !1; +this._updateState(); +} +}, +_onMouseMoveIn: function() { +if (!this._pressed && this.interactable && this.enabledInHierarchy && (this.transition !== s.SPRITE || this.hoverSprite) && !this._hovered) { +this._hovered = !0; +this._updateState(); +} +}, +_onMouseMoveOut: function() { +if (this._hovered) { +this._hovered = !1; +this._updateState(); +} +}, +_updateState: function() { +var t = this._getButtonState(); +this._applyTransition(t); +this._updateDisabledState(); +}, +_getButtonState: function() { +return this.interactable ? this._pressed ? o.PRESSED : this._hovered ? o.HOVER : o.NORMAL : o.DISABLED; +}, +_updateColorTransitionImmediately: function(t) { +var e = this._getStateColor(t); +this._setTargetColor(e); +}, +_updateColorTransition: function(t) { +if (t === o.DISABLED) this._updateColorTransitionImmediately(t); else { +var e = this._getTarget(), i = this._getStateColor(t); +this._fromColor = e.color.clone(); +this._toColor = i; +this.time = 0; +this._transitionFinished = !1; +} +}, +_updateSpriteTransition: function(t) { +var e = this._getStateSprite(t); +this._sprite && e && (this._sprite.spriteFrame = e); +}, +_updateScaleTransition: function(t) { +t === o.PRESSED ? this._zoomUp() : this._zoomBack(); +}, +_zoomUp: function() { +if (this._originalScale) { +this._fromScale.x = this._originalScale.x; +this._fromScale.y = this._originalScale.y; +this._toScale.x = this._originalScale.x * this.zoomScale; +this._toScale.y = this._originalScale.y * this.zoomScale; +this.time = 0; +this._transitionFinished = !1; +} +}, +_zoomBack: function() { +if (this._originalScale) { +var t = this._getTarget(); +this._fromScale.x = t.scaleX; +this._fromScale.y = t.scaleY; +this._toScale.x = this._originalScale.x; +this._toScale.y = this._originalScale.y; +this.time = 0; +this._transitionFinished = !1; +} +}, +_updateTransition: function(t) { +t === s.COLOR ? this._updateColorTransitionImmediately(o.NORMAL) : t === s.SPRITE && this._updateSpriteTransition(o.NORMAL); +this._updateState(); +}, +_applyTransition: function(t) { +var e = this.transition; +e === s.COLOR ? this._updateColorTransition(t) : e === s.SPRITE ? this._updateSpriteTransition(t) : e === s.SCALE && this._updateScaleTransition(t); +}, +_resizeNodeToTargetNode: !1, +_updateDisabledState: function() { +if (this._sprite) { +var t = !1; +this.enableAutoGrayEffect && (this.transition === s.SPRITE && this.disabledSprite || this.interactable || (t = !0)); +this._switchGrayMaterial(t, this._sprite); +} +} +}); +cc.Button = e.exports = a; +}), { +"../utils/gray-sprite-state": 292, +"./CCComponent": 95 +} ], +94: [ (function(t, e, i) { +"use strict"; +var n = t("../camera/CCCamera"), r = t("./CCComponent"), s = cc.Class({ +name: "cc.Canvas", +extends: r, +editor: !1, +resetInEditor: !1, +statics: { +instance: null +}, +properties: { +_designResolution: cc.size(960, 640), +designResolution: { +get: function() { +return cc.size(this._designResolution); +}, +set: function(t) { +this._designResolution.width = t.width; +this._designResolution.height = t.height; +this.applySettings(); +this.alignWithScreen(); +}, +tooltip: !1 +}, +_fitWidth: !1, +_fitHeight: !0, +fitHeight: { +get: function() { +return this._fitHeight; +}, +set: function(t) { +if (this._fitHeight !== t) { +this._fitHeight = t; +this.applySettings(); +this.alignWithScreen(); +} +}, +tooltip: !1 +}, +fitWidth: { +get: function() { +return this._fitWidth; +}, +set: function(t) { +if (this._fitWidth !== t) { +this._fitWidth = t; +this.applySettings(); +this.alignWithScreen(); +} +}, +tooltip: !1 +} +}, +ctor: function() { +this._thisOnResized = this.alignWithScreen.bind(this); +}, +__preload: function() { +if (s.instance) return cc.errorID(6700, this.node.name, s.instance.node.name); +s.instance = this; +cc.sys.isMobile ? window.addEventListener("resize", this._thisOnResized) : cc.view.on("canvas-resize", this._thisOnResized); +this.applySettings(); +this.alignWithScreen(); +var t = cc.find("Main Camera", this.node); +if (!t) { +(t = new cc.Node("Main Camera")).parent = this.node; +t.setSiblingIndex(0); +} +var e = t.getComponent(n); +if (!e) { +e = t.addComponent(n); +var i = n.ClearFlags; +e.clearFlags = i.COLOR | i.DEPTH | i.STENCIL; +e.depth = -1; +} +n.main = e; +}, +onDestroy: function() { +cc.sys.isMobile ? window.removeEventListener("resize", this._thisOnResized) : cc.view.off("canvas-resize", this._thisOnResized); +s.instance === this && (s.instance = null); +}, +alignWithScreen: function() { +var t, e, i = e = cc.visibleRect; +t = cc.view.getDesignResolutionSize(); +var n = 0, r = 0; +if (!this.fitHeight && !this.fitWidth) { +n = .5 * (t.width - i.width); +r = .5 * (t.height - i.height); +} +this.node.setPosition(.5 * i.width + n, .5 * i.height + r); +this.node.width = e.width; +this.node.height = e.height; +}, +applySettings: function() { +var t, e = cc.ResolutionPolicy; +t = this.fitHeight && this.fitWidth ? e.SHOW_ALL : this.fitHeight || this.fitWidth ? this.fitWidth ? e.FIXED_WIDTH : e.FIXED_HEIGHT : e.NO_BORDER; +var i = this._designResolution; +cc.view.setDesignResolutionSize(i.width, i.height, t); +} +}); +cc.Canvas = e.exports = s; +}), { +"../camera/CCCamera": 80, +"./CCComponent": 95 +} ], +95: [ (function(i, n, r) { +"use strict"; +var s = i("../platform/CCObject"), o = i("../platform/js"), a = new (i("../platform/id-generater"))("Comp"), c = (s.Flags.IsOnEnableCalled, +s.Flags.IsOnLoadCalled), l = cc.Class({ +name: "cc.Component", +extends: s, +ctor: function() { +this._id = a.getNewId(); +this.__eventTargets = []; +}, +properties: { +node: { +default: null, +visible: !1 +}, +name: { +get: function() { +if (this._name) return this._name; +var t = cc.js.getClassName(this), e = t.lastIndexOf("."); +e >= 0 && (t = t.slice(e + 1)); +return this.node.name + "<" + t + ">"; +}, +set: function(t) { +this._name = t; +}, +visible: !1 +}, +uuid: { +get: function() { +return this._id; +}, +visible: !1 +}, +__scriptAsset: !1, +_enabled: !0, +enabled: { +get: function() { +return this._enabled; +}, +set: function(t) { +if (this._enabled !== t) { +this._enabled = t; +if (this.node._activeInHierarchy) { +var e = cc.director._compScheduler; +t ? e.enableComp(this) : e.disableComp(this); +} +} +}, +visible: !1, +animatable: !0 +}, +enabledInHierarchy: { +get: function() { +return this._enabled && this.node._activeInHierarchy; +}, +visible: !1 +}, +_isOnLoadCalled: { +get: function() { +return this._objFlags & c; +} +} +}, +update: null, +lateUpdate: null, +__preload: null, +onLoad: null, +start: null, +onEnable: null, +onDisable: null, +onDestroy: null, +onFocusInEditor: null, +onLostFocusInEditor: null, +resetInEditor: null, +addComponent: function(t) { +return this.node.addComponent(t); +}, +getComponent: function(t) { +return this.node.getComponent(t); +}, +getComponents: function(t) { +return this.node.getComponents(t); +}, +getComponentInChildren: function(t) { +return this.node.getComponentInChildren(t); +}, +getComponentsInChildren: function(t) { +return this.node.getComponentsInChildren(t); +}, +_getLocalBounds: null, +onRestore: null, +destroy: function() { +this._super() && this._enabled && this.node._activeInHierarchy && cc.director._compScheduler.disableComp(this); +}, +_onPreDestroy: function() { +this.unscheduleAllCallbacks(); +for (var t = this.__eventTargets, e = 0, i = t.length; e < i; ++e) { +var n = t[e]; +n && n.targetOff(this); +} +t.length = 0; +0; +cc.director._nodeActivator.destroyComp(this); +this.node._removeComponent(this); +}, +_instantiate: function(t) { +t || (t = cc.instantiate._clone(this, this)); +t.node = null; +return t; +}, +schedule: function(t, e, i, n) { +cc.assertID(t, 1619); +cc.assertID(e >= 0, 1620); +e = e || 0; +i = isNaN(i) ? cc.macro.REPEAT_FOREVER : i; +n = n || 0; +var r = cc.director.getScheduler(), s = r.isTargetPaused(this); +r.schedule(t, this, e, i, n, s); +}, +scheduleOnce: function(t, e) { +this.schedule(t, 0, 0, e); +}, +unschedule: function(t) { +t && cc.director.getScheduler().unschedule(t, this); +}, +unscheduleAllCallbacks: function() { +cc.director.getScheduler().unscheduleAllForTarget(this); +} +}); +l._requireComponent = null; +l._executionOrder = 0; +0; +o.value(l, "_registerEditorProps", (function(i, n) { +var r = n.requireComponent; +r && (i._requireComponent = r); +var s = n.executionOrder; +s && "number" === ("object" === (e = typeof s) ? t(s) : e) && (i._executionOrder = s); +})); +l.prototype.__scriptUuid = ""; +cc.Component = n.exports = l; +}), { +"../platform/CCObject": 207, +"../platform/id-generater": 217, +"../platform/js": 221 +} ], +96: [ (function(i, n, r) { +"use strict"; +cc.Component.EventHandler = cc.Class({ +name: "cc.ClickEvent", +properties: { +target: { +default: null, +type: cc.Node +}, +component: "", +_componentId: "", +_componentName: { +get: function() { +this._genCompIdIfNeeded(); +return this._compId2Name(this._componentId); +}, +set: function(t) { +this._componentId = this._compName2Id(t); +} +}, +handler: { +default: "" +}, +customEventData: { +default: "" +} +}, +statics: { +emitEvents: function(t) { +var e = void 0; +if (arguments.length > 0) for (var i = 0, n = (e = new Array(arguments.length - 1)).length; i < n; i++) e[i] = arguments[i + 1]; +for (var r = 0, s = t.length; r < s; r++) { +var o = t[r]; +o instanceof cc.Component.EventHandler && o.emit(e); +} +} +}, +emit: function(i) { +var n = this.target; +if (cc.isValid(n)) { +this._genCompIdIfNeeded(); +var r = cc.js._getClassById(this._componentId), s = n.getComponent(r); +if (cc.isValid(s)) { +var o = s[this.handler]; +if ("function" === ("object" === (e = typeof o) ? t(o) : e)) { +null != this.customEventData && "" !== this.customEventData && (i = i.slice()).push(this.customEventData); +o.apply(s, i); +} +} +} +}, +_compName2Id: function(t) { +var e = cc.js.getClassByName(t); +return cc.js._getClassId(e); +}, +_compId2Name: function(t) { +var e = cc.js._getClassById(t); +return cc.js.getClassName(e); +}, +_genCompIdIfNeeded: function() { +if (!this._componentId) { +this._componentName = this.component; +this.component = ""; +} +} +}); +}), {} ], +97: [ (function(i, n, r) { +"use strict"; +var s = i("../platform/CCMacro"), o = i("./CCRenderComponent"), a = i("../assets/material/CCMaterial"), c = i("../assets/CCJsonAsset"), l = i("../renderer/utils/label/label-frame"), h = i("../renderer/render-flow"), u = (h.FLAG_COLOR, +h.FLAG_OPACITY, s.TextAlignment), _ = s.VerticalTextAlignment, f = cc.Enum({ +NONE: 0, +CLAMP: 1, +SHRINK: 2, +RESIZE_HEIGHT: 3 +}), d = cc.Enum({ +NONE: 0, +BITMAP: 1, +CHAR: 2 +}), m = cc.Class({ +name: "cc.Label", +extends: o, +ctor: function() { +0; +this._actualFontSize = 0; +this._assemblerData = null; +this._frame = null; +this._ttfTexture = null; +this._letterTexture = null; +}, +editor: !1, +properties: { +_useOriginalSize: !0, +_string: { +default: "", +formerlySerializedAs: "_N$string" +}, +string: { +get: function() { +return this._string; +}, +set: function(t) { +var e = this._string; +this._string = "" + t; +this.string !== e && this._updateRenderData(); +this._checkStringEmpty(); +}, +multiline: !0, +tooltip: !1 +}, +horizontalAlign: { +default: u.LEFT, +type: u, +tooltip: !1, +notify: function(t) { +this.horizontalAlign !== t && this._updateRenderData(); +}, +animatable: !1 +}, +verticalAlign: { +default: _.TOP, +type: _, +tooltip: !1, +notify: function(t) { +this.verticalAlign !== t && this._updateRenderData(); +}, +animatable: !1 +}, +actualFontSize: { +displayName: "Actual Font Size", +animatable: !1, +readonly: !0, +get: function() { +return this._actualFontSize; +}, +tooltip: !1 +}, +_fontSize: 40, +fontSize: { +get: function() { +return this._fontSize; +}, +set: function(t) { +if (this._fontSize !== t) { +this._fontSize = t; +this._updateRenderData(); +} +}, +range: [ 0, 512 ], +tooltip: !1 +}, +fontFamily: { +default: "Arial", +tooltip: !1, +notify: function(t) { +this.fontFamily !== t && this._updateRenderData(); +}, +animatable: !1 +}, +_lineHeight: 40, +lineHeight: { +get: function() { +return this._lineHeight; +}, +set: function(t) { +if (this._lineHeight !== t) { +this._lineHeight = t; +this._updateRenderData(); +} +}, +tooltip: !1 +}, +overflow: { +default: f.NONE, +type: f, +tooltip: !1, +notify: function(t) { +this.overflow !== t && this._updateRenderData(); +}, +animatable: !1 +}, +_enableWrapText: !0, +enableWrapText: { +get: function() { +return this._enableWrapText; +}, +set: function(t) { +if (this._enableWrapText !== t) { +this._enableWrapText = t; +this._updateRenderData(); +} +}, +animatable: !1, +tooltip: !1 +}, +_N$file: null, +font: { +get: function() { +return this._N$file; +}, +set: function(i) { +if (this.font !== i) { +i || (this._isSystemFontUsed = !0); +0; +this._N$file = i; +i && this._isSystemFontUsed && (this._isSystemFontUsed = !1); +"string" === ("object" === (e = typeof i) ? t(i) : e) && cc.warnID(4e3); +if (this._renderData) { +this.destroyRenderData(this._renderData); +this._renderData = null; +} +this._updateAssembler(); +this._applyFontTexture(!0); +this._updateRenderData(); +} +}, +type: cc.Font, +tooltip: !1, +animatable: !1 +}, +_isSystemFontUsed: !0, +useSystemFont: { +get: function() { +return this._isSystemFontUsed; +}, +set: function(t) { +if (this._isSystemFontUsed !== t) { +this.destroyRenderData(this._renderData); +this._renderData = null; +0; +this._isSystemFontUsed = !!t; +if (t) { +this.font = null; +this._updateAssembler(); +this._updateRenderData(); +this._checkStringEmpty(); +} else this._userDefinedFont || this.disableRender(); +} +}, +animatable: !1, +tooltip: !1 +}, +_bmFontOriginalSize: { +displayName: "BMFont Original Size", +get: function() { +return this._N$file instanceof cc.BitmapFont ? this._N$file.fontSize : -1; +}, +visible: !0, +animatable: !1 +}, +_isUseVerticalKerning: !0, +useVerticalKerning: { +get: function() { +return this._isUseVerticalKerning; +}, +set: function(t) { +if (this._isUseVerticalKerning !== t) { +this._isUseVerticalKerning = t; +this.font instanceof cc.BitmapFont && (this._isUseVerticalKerning && this._verticalKerning ? this.font.setVerticalKerningDict(this._verticalKerning.json) : this.font.clearVerticalKeningDict()); +this._updateRenderData(); +} +}, +visible: !0 +}, +_verticalKerning: null, +verticalKerningJson: { +type: c, +get: function() { +return this._verticalKerning; +}, +set: function(t) { +this._verticalKerning = t; +if (this.font instanceof cc.BitmapFont && this._isUseVerticalKerning && this._verticalKerning) { +this.font.clearVerticalKeningDict(); +this.font.setVerticalKerningDict(this._verticalKerning.json); +} +this._updateRenderData(); +}, +visible: !0 +}, +_spacingX: 0, +spacingX: { +get: function() { +return this._spacingX; +}, +set: function(t) { +this._spacingX = t; +this._updateRenderData(); +}, +tooltip: !1 +}, +_batchAsBitmap: !1, +cacheMode: { +default: d.NONE, +type: d, +tooltip: !1, +notify: function(t) { +if (this.cacheMode !== t) { +t !== d.BITMAP || this.font instanceof cc.BitmapFont || this._frame._resetDynamicAtlasFrame(); +t === d.CHAR && (this._ttfTexture = null); +this._updateRenderData(!0); +} +}, +animatable: !1 +}, +_isBold: { +default: !1, +serializable: !1 +}, +_isItalic: { +default: !1, +serializable: !1 +}, +_isUnderline: { +default: !1, +serializable: !1 +} +}, +statics: { +HorizontalAlign: u, +VerticalAlign: _, +Overflow: f, +CacheMode: d +}, +onLoad: function() { +if (this._batchAsBitmap && this.cacheMode === d.NONE) { +this.cacheMode = d.BITMAP; +this._batchAsBitmap = !1; +} +}, +onEnable: function() { +this._super(); +this.font || this._isSystemFontUsed || (this.useSystemFont = !0); +this.useSystemFont && !this.fontFamily && (this.fontFamily = "Arial"); +this.font instanceof cc.BitmapFont && (this._isUseVerticalKerning && this._verticalKerning ? this.font.setVerticalKerningDict(this._verticalKerning.json) : this.font.clearVerticalKeningDict()); +this.node.on(cc.Node.EventType.SIZE_CHANGED, this._updateRenderData, this); +this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this._updateRenderData, this); +this.node.on(cc.Node.EventType.COLOR_CHANGED, this._updateColor, this); +this._updateRenderData(!0); +this._checkStringEmpty(); +}, +onDisable: function() { +this._super(); +this.node.off(cc.Node.EventType.SIZE_CHANGED, this._updateRenderData, this); +this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this._updateRenderData, this); +this.node.off(cc.Node.EventType.COLOR_CHANGED, this._updateColor, this); +}, +onDestroy: function() { +this._assembler && this._assembler._resetAssemblerData && this._assembler._resetAssemblerData(this._assemblerData); +this._assemblerData = null; +this._letterTexture = null; +if (this._ttfTexture) { +this._ttfTexture.destroy(); +this._ttfTexture = null; +} +this._super(); +}, +_canRender: function() { +var t = this._super(), e = this.font; +if (e instanceof cc.BitmapFont) { +var i = e.spriteFrame; +i && i.textureLoaded() || (t = !1); +} +return t; +}, +_checkStringEmpty: function() { +this.markForRender(!!this.string); +}, +_on3DNodeChanged: function() { +this._updateAssembler(); +this._applyFontTexture(!0); +}, +_updateAssembler: function() { +var t = m._assembler.getAssembler(this); +if (this._assembler !== t) { +this._assembler = t; +this._renderData = null; +this._frame = null; +} +if (!this._renderData) { +this._renderData = this._assembler.createData(this); +this.markForUpdateRenderData(!0); +} +}, +_applyFontTexture: function(t) { +var e = this.font; +if (e instanceof cc.BitmapFont) { +var i = e.spriteFrame; +this._frame = i; +var n = this, r = function() { +n._frame._texture = i._texture; +n._activateMaterial(t); +t && n._assembler && n._assembler.updateRenderData(n); +}; +if (i && i.textureLoaded()) r(); else { +this.disableRender(); +if (i) { +i.once("load", r, this); +i.ensureLoadTexture(); +} +} +} else { +this._frame || (this._frame = new l()); +if (this.cacheMode === d.CHAR && cc.sys.browserType !== cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB) { +this._letterTexture = this._assembler._getAssemblerData(); +this._frame._refreshTexture(this._letterTexture); +} else if (!this._ttfTexture) { +this._ttfTexture = new cc.Texture2D(); +this._assemblerData = this._assembler._getAssemblerData(); +this._ttfTexture.initWithElement(this._assemblerData.canvas); +} +if (this.cacheMode !== d.CHAR) { +this._frame._resetDynamicAtlasFrame(); +this._frame._refreshTexture(this._ttfTexture); +} +this._activateMaterial(t); +t && this._assembler && this._assembler.updateRenderData(this); +} +}, +_updateColor: function() { +if (!(this.font instanceof cc.BitmapFont)) { +this._updateRenderData(); +this.node._renderFlag &= ~h.FLAG_COLOR; +} +}, +_activateMaterial: function(t) { +if (t) { +if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) this._frame._texture.url = this.uuid + "_texture"; else { +var e = this.sharedMaterials[0]; +(e = e ? a.getInstantiatedMaterial(e, this) : a.getInstantiatedBuiltinMaterial("2d-sprite", this)).setProperty("texture", this._frame._texture); +this.setMaterial(0, e); +} +this.markForUpdateRenderData(!0); +this.markForRender(!0); +} +}, +_updateRenderData: function(t) { +var e = this._renderData; +if (e) { +e.vertDirty = !0; +e.uvDirty = !0; +this.markForUpdateRenderData(!0); +} +if (!0 === t) { +this._updateAssembler(); +this._applyFontTexture(t); +} +}, +_enableBold: function(t) { +this._isBold = !!t; +}, +_enableItalics: function(t) { +this._isItalic = !!t; +}, +_enableUnderline: function(t) { +this._isUnderline = !!t; +} +}); +cc.Label = n.exports = m; +}), { +"../assets/CCJsonAsset": 62, +"../assets/material/CCMaterial": 75, +"../platform/CCMacro": 206, +"../renderer/render-flow": 245, +"../renderer/utils/label/label-frame": 249, +"./CCRenderComponent": 106 +} ], +98: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.LabelOutline", +extends: t("./CCComponent"), +editor: !1, +properties: { +_color: cc.Color.WHITE, +_width: 1, +color: { +tooltip: !1, +get: function() { +return this._color; +}, +set: function(t) { +this._color = t; +this._updateRenderData(); +} +}, +width: { +tooltip: !1, +get: function() { +return this._width; +}, +set: function(t) { +this._width = t; +this._updateRenderData(); +}, +range: [ 0, 512 ] +} +}, +onEnable: function() { +this._updateRenderData(); +}, +onDisable: function() { +this._updateRenderData(); +}, +_updateRenderData: function() { +var t = this.node.getComponent(cc.Label); +t && t._updateRenderData(); +} +}); +cc.LabelOutline = e.exports = n; +}), { +"./CCComponent": 95 +} ], +99: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.LabelShadow", +extends: t("./CCComponent"), +editor: !1, +properties: { +_color: cc.Color.WHITE, +_offset: cc.v2(2, 2), +_blur: 2, +color: { +tooltip: !1, +get: function() { +return this._color; +}, +set: function(t) { +this._color = t; +this._updateRenderData(); +} +}, +offset: { +tooltip: !1, +get: function() { +return this._offset; +}, +set: function(t) { +this._offset = t; +this._updateRenderData(); +} +}, +blur: { +tooltip: !1, +get: function() { +return this._blur; +}, +set: function(t) { +this._blur = t; +this._updateRenderData(); +}, +range: [ 0, 1024 ] +} +}, +onEnable: function() { +this._updateRenderData(); +}, +onDisable: function() { +this._updateRenderData(); +}, +_updateRenderData: function() { +var t = this.node.getComponent(cc.Label); +t && t._updateRenderData(); +} +}); +cc.LabelShadow = e.exports = n; +}), { +"./CCComponent": 95 +} ], +100: [ (function(t, e, i) { +"use strict"; +var n = t("../CCNode").EventType, r = cc.Enum({ +NONE: 0, +HORIZONTAL: 1, +VERTICAL: 2, +GRID: 3 +}), s = cc.Enum({ +NONE: 0, +CONTAINER: 1, +CHILDREN: 2 +}), o = cc.Enum({ +HORIZONTAL: 0, +VERTICAL: 1 +}), a = cc.Enum({ +BOTTOM_TO_TOP: 0, +TOP_TO_BOTTOM: 1 +}), c = cc.Enum({ +LEFT_TO_RIGHT: 0, +RIGHT_TO_LEFT: 1 +}), l = cc.Class({ +name: "cc.Layout", +extends: t("./CCComponent"), +editor: !1, +properties: { +_layoutSize: cc.size(300, 200), +_layoutDirty: { +default: !0, +serializable: !1 +}, +_resize: s.NONE, +_N$layoutType: r.NONE, +type: { +type: r, +get: function() { +return this._N$layoutType; +}, +set: function(t) { +this._N$layoutType = t; +this._doLayoutDirty(); +}, +tooltip: !1, +animatable: !1 +}, +resizeMode: { +type: s, +tooltip: !1, +animatable: !1, +get: function() { +return this._resize; +}, +set: function(t) { +if (this.type !== r.NONE || t !== s.CHILDREN) { +this._resize = t; +this._doLayoutDirty(); +} +} +}, +cellSize: { +default: cc.size(40, 40), +tooltip: !1, +type: cc.Size, +notify: function() { +this._doLayoutDirty(); +} +}, +startAxis: { +default: o.HORIZONTAL, +tooltip: !1, +type: o, +notify: function() { +this._doLayoutDirty(); +}, +animatable: !1 +}, +_N$padding: { +default: 0 +}, +paddingLeft: { +default: 0, +tooltip: !1, +notify: function() { +this._doLayoutDirty(); +} +}, +paddingRight: { +default: 0, +tooltip: !1, +notify: function() { +this._doLayoutDirty(); +} +}, +paddingTop: { +default: 0, +tooltip: !1, +notify: function() { +this._doLayoutDirty(); +} +}, +paddingBottom: { +default: 0, +tooltip: !1, +notify: function() { +this._doLayoutDirty(); +} +}, +spacingX: { +default: 0, +notify: function() { +this._doLayoutDirty(); +}, +tooltip: !1 +}, +spacingY: { +default: 0, +notify: function() { +this._doLayoutDirty(); +}, +tooltip: !1 +}, +verticalDirection: { +default: a.TOP_TO_BOTTOM, +type: a, +notify: function() { +this._doLayoutDirty(); +}, +tooltip: !1, +animatable: !1 +}, +horizontalDirection: { +default: c.LEFT_TO_RIGHT, +type: c, +notify: function() { +this._doLayoutDirty(); +}, +tooltip: !1, +animatable: !1 +}, +affectedByScale: { +default: !1, +notify: function() { +this._doLayoutDirty(); +}, +animatable: !1, +tooltip: !1 +} +}, +statics: { +Type: r, +VerticalDirection: a, +HorizontalDirection: c, +ResizeMode: s, +AxisDirection: o +}, +_migratePaddingData: function() { +this.paddingLeft = this._N$padding; +this.paddingRight = this._N$padding; +this.paddingTop = this._N$padding; +this.paddingBottom = this._N$padding; +this._N$padding = 0; +}, +onEnable: function() { +this._addEventListeners(); +this.node.getContentSize().equals(cc.size(0, 0)) && this.node.setContentSize(this._layoutSize); +0 !== this._N$padding && this._migratePaddingData(); +this._doLayoutDirty(); +}, +onDisable: function() { +this._removeEventListeners(); +}, +_doLayoutDirty: function() { +this._layoutDirty = !0; +}, +_doScaleDirty: function() { +this._layoutDirty = this._layoutDirty || this.affectedByScale; +}, +_addEventListeners: function() { +cc.director.on(cc.Director.EVENT_AFTER_UPDATE, this.updateLayout, this); +this.node.on(n.SIZE_CHANGED, this._resized, this); +this.node.on(n.ANCHOR_CHANGED, this._doLayoutDirty, this); +this.node.on(n.CHILD_ADDED, this._childAdded, this); +this.node.on(n.CHILD_REMOVED, this._childRemoved, this); +this.node.on(n.CHILD_REORDER, this._doLayoutDirty, this); +this._addChildrenEventListeners(); +}, +_removeEventListeners: function() { +cc.director.off(cc.Director.EVENT_AFTER_UPDATE, this.updateLayout, this); +this.node.off(n.SIZE_CHANGED, this._resized, this); +this.node.off(n.ANCHOR_CHANGED, this._doLayoutDirty, this); +this.node.off(n.CHILD_ADDED, this._childAdded, this); +this.node.off(n.CHILD_REMOVED, this._childRemoved, this); +this.node.off(n.CHILD_REORDER, this._doLayoutDirty, this); +this._removeChildrenEventListeners(); +}, +_addChildrenEventListeners: function() { +for (var t = this.node.children, e = 0; e < t.length; ++e) { +var i = t[e]; +i.on(n.SCALE_CHANGED, this._doScaleDirty, this); +i.on(n.SIZE_CHANGED, this._doLayoutDirty, this); +i.on(n.POSITION_CHANGED, this._doLayoutDirty, this); +i.on(n.ANCHOR_CHANGED, this._doLayoutDirty, this); +i.on("active-in-hierarchy-changed", this._doLayoutDirty, this); +} +}, +_removeChildrenEventListeners: function() { +for (var t = this.node.children, e = 0; e < t.length; ++e) { +var i = t[e]; +i.off(n.SCALE_CHANGED, this._doScaleDirty, this); +i.off(n.SIZE_CHANGED, this._doLayoutDirty, this); +i.off(n.POSITION_CHANGED, this._doLayoutDirty, this); +i.off(n.ANCHOR_CHANGED, this._doLayoutDirty, this); +i.off("active-in-hierarchy-changed", this._doLayoutDirty, this); +} +}, +_childAdded: function(t) { +t.on(n.SCALE_CHANGED, this._doScaleDirty, this); +t.on(n.SIZE_CHANGED, this._doLayoutDirty, this); +t.on(n.POSITION_CHANGED, this._doLayoutDirty, this); +t.on(n.ANCHOR_CHANGED, this._doLayoutDirty, this); +t.on("active-in-hierarchy-changed", this._doLayoutDirty, this); +this._doLayoutDirty(); +}, +_childRemoved: function(t) { +t.off(n.SCALE_CHANGED, this._doScaleDirty, this); +t.off(n.SIZE_CHANGED, this._doLayoutDirty, this); +t.off(n.POSITION_CHANGED, this._doLayoutDirty, this); +t.off(n.ANCHOR_CHANGED, this._doLayoutDirty, this); +t.off("active-in-hierarchy-changed", this._doLayoutDirty, this); +this._doLayoutDirty(); +}, +_resized: function() { +this._layoutSize = this.node.getContentSize(); +this._doLayoutDirty(); +}, +_doLayoutHorizontally: function(t, e, i, n) { +var o = this.node.getAnchorPoint(), l = this.node.children, h = 1, u = this.paddingLeft, _ = -o.x * t; +if (this.horizontalDirection === c.RIGHT_TO_LEFT) { +h = -1; +_ = (1 - o.x) * t; +u = this.paddingRight; +} +for (var f = _ + h * u - h * this.spacingX, d = 0, m = 0, p = 0, v = 0, y = 0, g = 0, x = 0, C = 0; C < l.length; ++C) { +(A = l[C]).activeInHierarchy && x++; +} +var b = this.cellSize.width; +this.type !== r.GRID && this.resizeMode === s.CHILDREN && (b = (t - (this.paddingLeft + this.paddingRight) - (x - 1) * this.spacingX) / x); +for (C = 0; C < l.length; ++C) { +var A = l[C], S = this._getUsedScaleValue(A.scaleX), w = this._getUsedScaleValue(A.scaleY); +if (A.activeInHierarchy) { +if (this._resize === s.CHILDREN) { +A.width = b / S; +this.type === r.GRID && (A.height = this.cellSize.height / w); +} +var T = A.anchorX, E = A.width * S, M = A.height * w; +p > m && (m = p); +if (M >= m) { +p = m; +m = M; +g = A.getAnchorPoint().y; +} +this.horizontalDirection === c.RIGHT_TO_LEFT && (T = 1 - A.anchorX); +f = f + h * T * E + h * this.spacingX; +var B = h * (1 - T) * E; +if (e) { +var D = f + B + h * (h > 0 ? this.paddingRight : this.paddingLeft), I = this.horizontalDirection === c.LEFT_TO_RIGHT && D > (1 - o.x) * t, P = this.horizontalDirection === c.RIGHT_TO_LEFT && D < -o.x * t; +if (I || P) { +if (M >= m) { +0 === p && (p = m); +d += p; +p = m; +} else { +d += m; +p = M; +m = 0; +} +f = _ + h * (u + T * E); +v++; +} +} +var R = i(A, d, v); +t >= E + this.paddingLeft + this.paddingRight && n && A.setPosition(cc.v2(f, R)); +var L, F = 1, O = 0 === m ? M : m; +if (this.verticalDirection === a.TOP_TO_BOTTOM) { +y = y || this.node._contentSize.height; +(L = R + (F = -1) * (O * g + this.paddingBottom)) < y && (y = L); +} else { +y = y || -this.node._contentSize.height; +(L = R + F * (O * g + this.paddingTop)) > y && (y = L); +} +f += B; +} +} +return y; +}, +_getVerticalBaseHeight: function(t) { +var e = 0, i = 0; +if (this.resizeMode === s.CONTAINER) { +for (var n = 0; n < t.length; ++n) { +var r = t[n]; +if (r.activeInHierarchy) { +i++; +e += r.height * this._getUsedScaleValue(r.scaleY); +} +} +e += (i - 1) * this.spacingY + this.paddingBottom + this.paddingTop; +} else e = this.node.getContentSize().height; +return e; +}, +_doLayoutVertically: function(t, e, i, n) { +var o = this.node.getAnchorPoint(), l = this.node.children, h = 1, u = this.paddingBottom, _ = -o.y * t; +if (this.verticalDirection === a.TOP_TO_BOTTOM) { +h = -1; +_ = (1 - o.y) * t; +u = this.paddingTop; +} +for (var f = _ + h * u - h * this.spacingY, d = 0, m = 0, p = 0, v = 0, y = 0, g = 0, x = 0, C = 0; C < l.length; ++C) { +(A = l[C]).activeInHierarchy && x++; +} +var b = this.cellSize.height; +this.type !== r.GRID && this.resizeMode === s.CHILDREN && (b = (t - (this.paddingTop + this.paddingBottom) - (x - 1) * this.spacingY) / x); +for (C = 0; C < l.length; ++C) { +var A = l[C], S = this._getUsedScaleValue(A.scaleX), w = this._getUsedScaleValue(A.scaleY); +if (A.activeInHierarchy) { +if (this.resizeMode === s.CHILDREN) { +A.height = b / w; +this.type === r.GRID && (A.width = this.cellSize.width / S); +} +var T = A.anchorY, E = A.width * S, M = A.height * w; +p > m && (m = p); +if (E >= m) { +p = m; +m = E; +g = A.getAnchorPoint().x; +} +this.verticalDirection === a.TOP_TO_BOTTOM && (T = 1 - A.anchorY); +f = f + h * T * M + h * this.spacingY; +var B = h * (1 - T) * M; +if (e) { +var D = f + B + h * (h > 0 ? this.paddingTop : this.paddingBottom), I = this.verticalDirection === a.BOTTOM_TO_TOP && D > (1 - o.y) * t, P = this.verticalDirection === a.TOP_TO_BOTTOM && D < -o.y * t; +if (I || P) { +if (E >= m) { +0 === p && (p = m); +d += p; +p = m; +} else { +d += m; +p = E; +m = 0; +} +f = _ + h * (u + T * M); +v++; +} +} +var R = i(A, d, v); +t >= M + (this.paddingTop + this.paddingBottom) && n && A.setPosition(cc.v2(R, f)); +var L, F = 1, O = 0 === m ? E : m; +if (this.horizontalDirection === c.RIGHT_TO_LEFT) { +F = -1; +y = y || this.node._contentSize.width; +(L = R + F * (O * g + this.paddingLeft)) < y && (y = L); +} else { +y = y || -this.node._contentSize.width; +(L = R + F * (O * g + this.paddingRight)) > y && (y = L); +} +f += B; +} +} +return y; +}, +_doLayoutBasic: function() { +for (var t = this.node.children, e = null, i = 0; i < t.length; ++i) { +var n = t[i]; +n.activeInHierarchy && (e ? e.union(e, n.getBoundingBoxToWorld()) : e = n.getBoundingBoxToWorld()); +} +if (e) { +var r = this.node.convertToNodeSpaceAR(cc.v2(e.x, e.y)); +r = cc.v2(r.x - this.paddingLeft, r.y - this.paddingBottom); +var s = this.node.convertToNodeSpaceAR(cc.v2(e.xMax, e.yMax)), o = (s = cc.v2(s.x + this.paddingRight, s.y + this.paddingTop)).sub(r); +if (0 !== (o = cc.size(parseFloat(o.x.toFixed(2)), parseFloat(o.y.toFixed(2)))).width) { +var a = -r.x / o.width; +this.node.anchorX = parseFloat(a.toFixed(2)); +} +if (0 !== o.height) { +var c = -r.y / o.height; +this.node.anchorY = parseFloat(c.toFixed(2)); +} +this.node.setContentSize(o); +} +}, +_doLayoutGridAxisHorizontal: function(t, e) { +var i = e.width, n = 1, r = -t.y * e.height, o = this.paddingBottom; +if (this.verticalDirection === a.TOP_TO_BOTTOM) { +n = -1; +r = (1 - t.y) * e.height; +o = this.paddingTop; +} +var c = function(t, e, i) { +return r + n * (e + t.anchorY * t.height * this._getUsedScaleValue(t.scaleY) + o + i * this.spacingY); +}.bind(this), l = 0; +if (this.resizeMode === s.CONTAINER) { +var h = this._doLayoutHorizontally(i, !0, c, !1); +(l = r - h) < 0 && (l *= -1); +r = -t.y * l; +if (this.verticalDirection === a.TOP_TO_BOTTOM) { +n = -1; +r = (1 - t.y) * l; +} +} +this._doLayoutHorizontally(i, !0, c, !0); +this.resizeMode === s.CONTAINER && this.node.setContentSize(i, l); +}, +_doLayoutGridAxisVertical: function(t, e) { +var i = e.height, n = 1, r = -t.x * e.width, o = this.paddingLeft; +if (this.horizontalDirection === c.RIGHT_TO_LEFT) { +n = -1; +r = (1 - t.x) * e.width; +o = this.paddingRight; +} +var a = function(t, e, i) { +return r + n * (e + t.anchorX * t.width * this._getUsedScaleValue(t.scaleX) + o + i * this.spacingX); +}.bind(this), l = 0; +if (this.resizeMode === s.CONTAINER) { +var h = this._doLayoutVertically(i, !0, a, !1); +(l = r - h) < 0 && (l *= -1); +r = -t.x * l; +if (this.horizontalDirection === c.RIGHT_TO_LEFT) { +n = -1; +r = (1 - t.x) * l; +} +} +this._doLayoutVertically(i, !0, a, !0); +this.resizeMode === s.CONTAINER && this.node.setContentSize(l, i); +}, +_doLayoutGrid: function() { +var t = this.node.getAnchorPoint(), e = this.node.getContentSize(); +this.startAxis === o.HORIZONTAL ? this._doLayoutGridAxisHorizontal(t, e) : this.startAxis === o.VERTICAL && this._doLayoutGridAxisVertical(t, e); +}, +_getHorizontalBaseWidth: function(t) { +var e = 0, i = 0; +if (this.resizeMode === s.CONTAINER) { +for (var n = 0; n < t.length; ++n) { +var r = t[n]; +if (r.activeInHierarchy) { +i++; +e += r.width * this._getUsedScaleValue(r.scaleX); +} +} +e += (i - 1) * this.spacingX + this.paddingLeft + this.paddingRight; +} else e = this.node.getContentSize().width; +return e; +}, +_doLayout: function() { +if (this.type === r.HORIZONTAL) { +var t = this._getHorizontalBaseWidth(this.node.children); +this._doLayoutHorizontally(t, !1, (function(t) { +return t.y; +}), !0); +this.node.width = t; +} else if (this.type === r.VERTICAL) { +var e = this._getVerticalBaseHeight(this.node.children); +this._doLayoutVertically(e, !1, (function(t) { +return t.x; +}), !0); +this.node.height = e; +} else this.type === r.NONE ? this.resizeMode === s.CONTAINER && this._doLayoutBasic() : this.type === r.GRID && this._doLayoutGrid(); +}, +_getUsedScaleValue: function(t) { +return this.affectedByScale ? Math.abs(t) : 1; +}, +updateLayout: function() { +if (this._layoutDirty && this.node.children.length > 0) { +this._doLayout(); +this._layoutDirty = !1; +} +} +}); +Object.defineProperty(l.prototype, "padding", { +get: function() { +cc.warnID(4100); +return this.paddingLeft; +}, +set: function(t) { +this._N$padding = t; +this._migratePaddingData(); +this._doLayoutDirty(); +} +}); +cc.Layout = e.exports = l; +}), { +"../CCNode": 52, +"./CCComponent": 95 +} ], +101: [ (function(t, e, i) { +"use strict"; +var n = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../../renderer/gfx")), r = t("../vmath"); +var s = t("../utils/misc"), o = t("../assets/material/CCMaterial"), a = t("./CCRenderComponent"), c = t("../renderer/render-flow"), l = t("../graphics/graphics"), h = (t("../CCNode"), +cc.v2()), u = r.mat4.create(), _ = []; +function f(t, e, i) { +_.length = 0; +for (var n = 2 * Math.PI / i, r = 0; r < i; ++r) _.push(cc.v2(e.x * Math.cos(n * r) + t.x, e.y * Math.sin(n * r) + t.y)); +return _; +} +var d = cc.Enum({ +RECT: 0, +ELLIPSE: 1, +IMAGE_STENCIL: 2 +}), m = cc.Class({ +name: "cc.Mask", +extends: a, +editor: !1, +ctor: function() { +this._graphics = null; +this._enableMaterial = null; +this._exitMaterial = null; +this._clearMaterial = null; +}, +properties: { +_spriteFrame: { +default: null, +type: cc.SpriteFrame +}, +_type: d.RECT, +type: { +get: function() { +return this._type; +}, +set: function(t) { +this._type = t; +if (this._type !== d.IMAGE_STENCIL) { +this.spriteFrame = null; +this.alphaThreshold = 0; +this._updateGraphics(); +} +if (this._renderData) { +this.destroyRenderData(this._renderData); +this._renderData = null; +} +this._activateMaterial(); +}, +type: d, +tooltip: !1 +}, +spriteFrame: { +type: cc.SpriteFrame, +tooltip: !1, +get: function() { +return this._spriteFrame; +}, +set: function(t) { +var e = this._spriteFrame; +if (e !== t) { +this._spriteFrame = t; +this._applySpriteFrame(e); +} +} +}, +alphaThreshold: { +default: 0, +type: cc.Float, +range: [ 0, 1, .1 ], +slide: !0, +tooltip: !1, +notify: function() { +if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { +var t = this.sharedMaterials[0]; +t && t.setProperty("alphaThreshold", this.alphaThreshold); +} else cc.warnID(4201); +} +}, +inverted: { +default: !1, +type: cc.Boolean, +tooltip: !1, +notify: function() { +cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS || cc.warnID(4202); +} +}, +_segments: 64, +segements: { +get: function() { +return this._segments; +}, +set: function(t) { +this._segments = s.clampf(t, 3, 1e4); +this._updateGraphics(); +}, +type: cc.Integer, +tooltip: !1 +}, +_resizeToTarget: { +animatable: !1, +set: function(t) { +t && this._resizeNodeToTargetNode(); +} +} +}, +statics: { +Type: d +}, +onLoad: function() { +this._createGraphics(); +}, +onRestore: function() { +this._createGraphics(); +this._type !== d.IMAGE_STENCIL ? this._updateGraphics() : this._applySpriteFrame(); +}, +onEnable: function() { +this._super(); +if (this._type === d.IMAGE_STENCIL) { +if (!this._spriteFrame || !this._spriteFrame.textureLoaded()) { +this.markForRender(!1); +if (this._spriteFrame) { +this.markForUpdateRenderData(!1); +this._spriteFrame.once("load", this._onTextureLoaded, this); +this._spriteFrame.ensureLoadTexture(); +} +} +} else this._updateGraphics(); +this.node.on(cc.Node.EventType.POSITION_CHANGED, this._updateGraphics, this); +this.node.on(cc.Node.EventType.ROTATION_CHANGED, this._updateGraphics, this); +this.node.on(cc.Node.EventType.SCALE_CHANGED, this._updateGraphics, this); +this.node.on(cc.Node.EventType.SIZE_CHANGED, this._updateGraphics, this); +this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this._updateGraphics, this); +this.node._renderFlag |= c.FLAG_POST_RENDER; +this._activateMaterial(); +}, +onDisable: function() { +this._super(); +this.node.off(cc.Node.EventType.POSITION_CHANGED, this._updateGraphics, this); +this.node.off(cc.Node.EventType.ROTATION_CHANGED, this._updateGraphics, this); +this.node.off(cc.Node.EventType.SCALE_CHANGED, this._updateGraphics, this); +this.node.off(cc.Node.EventType.SIZE_CHANGED, this._updateGraphics, this); +this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this._updateGraphics, this); +this.node._renderFlag &= ~c.FLAG_POST_RENDER; +}, +onDestroy: function() { +this._super(); +this._removeGraphics(); +}, +_resizeNodeToTargetNode: !1, +_onTextureLoaded: function() { +if (this._renderData) { +this._renderData.uvDirty = !0; +this._renderData.vertDirty = !0; +this.markForUpdateRenderData(!0); +} +this.enabledInHierarchy && this._activateMaterial(); +}, +_applySpriteFrame: function(t) { +t && t.off && t.off("load", this._onTextureLoaded, this); +var e = this._spriteFrame; +if (e) if (e.textureLoaded()) this._onTextureLoaded(null); else { +e.once("load", this._onTextureLoaded, this); +e.ensureLoadTexture(); +} else this.disableRender(); +}, +_activateMaterial: function() { +if (this._type !== d.IMAGE_STENCIL || this.spriteFrame && this.spriteFrame.textureLoaded()) { +if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { +var t = this.sharedMaterials[0]; +(t = t ? o.getInstantiatedMaterial(t, this) : o.getInstantiatedBuiltinMaterial("2d-sprite", this)).define("USE_ALPHA_TEST", !0); +if (this._type === d.IMAGE_STENCIL) { +var e = this.spriteFrame.getTexture(); +t.define("_USE_MODEL", !1); +t.define("USE_TEXTURE", !0); +t.setProperty("texture", e); +t.setProperty("alphaThreshold", this.alphaThreshold); +} else { +t.define("_USE_MODEL", !0); +t.define("USE_TEXTURE", !1); +} +this._enableMaterial || (this._enableMaterial = o.getInstantiatedBuiltinMaterial("2d-sprite", this)); +if (!this._exitMaterial) { +this._exitMaterial = o.getInstantiatedBuiltinMaterial("2d-sprite", this); +for (var i = this._exitMaterial.effect.getDefaultTechnique().passes, r = 0; r < i.length; r++) i[r].setStencilEnabled(n.default.STENCIL_DISABLE); +} +this._clearMaterial || (this._clearMaterial = o.getInstantiatedBuiltinMaterial("clear-stencil", this)); +this.setMaterial(0, t); +} +this.markForRender(!0); +} else this.markForRender(!1); +}, +_createGraphics: function() { +if (!this._graphics) { +this._graphics = new l(); +this._graphics.node = this.node; +this._graphics.lineWidth = 0; +this._graphics.strokeColor = cc.color(0, 0, 0, 0); +} +}, +_updateGraphics: function() { +var t = this.node, e = this._graphics; +e.clear(!1); +var i = t._contentSize.width, n = t._contentSize.height, r = -i * t._anchorPoint.x, s = -n * t._anchorPoint.y; +if (this._type === d.RECT) e.rect(r, s, i, n); else if (this._type === d.ELLIPSE) { +for (var o = f(cc.v2(r + i / 2, s + n / 2), { +x: i / 2, +y: n / 2 +}, this._segments), a = 0; a < o.length; ++a) { +var c = o[a]; +0 === a ? e.moveTo(c.x, c.y) : e.lineTo(c.x, c.y); +} +e.close(); +} +cc.game.renderType === cc.game.RENDER_TYPE_CANVAS ? e.stroke() : e.fill(); +}, +_removeGraphics: function() { +if (this._graphics) { +this._graphics.destroy(); +this._graphics = null; +} +if (this._clearGraphics) { +this._clearGraphics.destroy(); +this._clearGraphics = null; +} +}, +_hitTest: function(t) { +var e = this.node, i = e.getContentSize(), n = i.width, s = i.height, o = h; +e._updateWorldMatrix(); +if (!r.mat4.invert(u, e._worldMatrix)) return !1; +r.vec2.transformMat4(o, t, u); +o.x += e._anchorPoint.x * n; +o.y += e._anchorPoint.y * s; +var a = !1; +if (this.type === d.RECT || this.type === d.IMAGE_STENCIL) a = o.x >= 0 && o.y >= 0 && o.x <= n && o.y <= s; else if (this.type === d.ELLIPSE) { +var c = n / 2, l = s / 2, _ = o.x - .5 * n, f = o.y - .5 * s; +a = _ * _ / (c * c) + f * f / (l * l) < 1; +} +this.inverted && (a = !a); +return a; +}, +markForUpdateRenderData: function(t) { +t && this.enabledInHierarchy ? this.node._renderFlag |= c.FLAG_UPDATE_RENDER_DATA : t || (this.node._renderFlag &= ~c.FLAG_UPDATE_RENDER_DATA); +}, +markForRender: function(t) { +t && this.enabledInHierarchy ? this.node._renderFlag |= c.FLAG_RENDER | c.FLAG_UPDATE_RENDER_DATA | c.FLAG_POST_RENDER : t || (this.node._renderFlag &= ~(c.FLAG_RENDER | c.FLAG_POST_RENDER)); +}, +disableRender: function() { +this.node._renderFlag &= ~(c.FLAG_RENDER | c.FLAG_UPDATE_RENDER_DATA | c.FLAG_POST_RENDER); +} +}); +cc.Mask = e.exports = m; +}), { +"../../renderer/gfx": 349, +"../CCNode": 52, +"../assets/material/CCMaterial": 75, +"../graphics/graphics": 142, +"../renderer/render-flow": 245, +"../utils/misc": 297, +"../vmath": 317, +"./CCRenderComponent": 106 +} ], +102: [ (function(t, e, i) { +"use strict"; +var n = t("../components/CCRenderComponent"), r = t("../assets/material/CCMaterial"), s = t("../utils/texture-util"), o = t("../../core/utils/blend-func"), a = cc.Class({ +name: "cc.MotionStreak", +extends: n, +mixins: [ o ], +editor: !1, +ctor: function() { +this._points = []; +}, +properties: { +preview: { +default: !1, +editorOnly: !0, +notify: !1, +animatable: !1 +}, +_fadeTime: 1, +fadeTime: { +get: function() { +return this._fadeTime; +}, +set: function(t) { +this._fadeTime = t; +this.reset(); +}, +animatable: !1, +tooltip: !1 +}, +_minSeg: 1, +minSeg: { +get: function() { +return this._minSeg; +}, +set: function(t) { +this._minSeg = t; +}, +animatable: !1, +tooltip: !1 +}, +_stroke: 64, +stroke: { +get: function() { +return this._stroke; +}, +set: function(t) { +this._stroke = t; +}, +animatable: !1, +tooltip: !1 +}, +_texture: { +default: null, +type: cc.Texture2D +}, +texture: { +get: function() { +return this._texture; +}, +set: function(t) { +if (this._texture !== t) { +this._texture = t; +if (t && t.loaded) this._activateMaterial(); else { +this.disableRender(); +this._ensureLoadTexture(); +} +} +}, +type: cc.Texture2D, +animatable: !1, +tooltip: !1 +}, +_color: cc.Color.WHITE, +color: { +get: function() { +return this._color; +}, +set: function(t) { +this._color = t; +}, +type: cc.Color, +tooltip: !1 +}, +_fastMode: !1, +fastMode: { +get: function() { +return this._fastMode; +}, +set: function(t) { +this._fastMode = t; +}, +animatable: !1, +tooltip: !1 +} +}, +onEnable: function() { +this._super(); +if (this._texture && this._texture.loaded) this._activateMaterial(); else { +this.disableRender(); +this._ensureLoadTexture(); +} +this.reset(); +}, +_ensureLoadTexture: function() { +if (this._texture && !this._texture.loaded) { +var t = this; +s.postLoadTexture(this._texture, (function() { +t._activateMaterial(); +})); +} +}, +_activateMaterial: function() { +if (this._texture && this._texture.loaded) { +var t = this.sharedMaterials[0]; +(t = t ? r.getInstantiatedMaterial(t, this) : r.getInstantiatedBuiltinMaterial("2d-sprite", this)).setProperty("texture", this._texture); +this.setMaterial(0, t); +this.markForRender(!0); +} else this.disableRender(); +}, +onFocusInEditor: !1, +onLostFocusInEditor: !1, +reset: function() { +this._points.length = 0; +var t = this._renderData; +if (t) { +t.dataLength = 0; +t.vertexCount = 0; +t.indiceCount = 0; +} +0; +} +}); +cc.MotionStreak = e.exports = a; +}), { +"../../core/utils/blend-func": 289, +"../assets/material/CCMaterial": 75, +"../components/CCRenderComponent": 106, +"../utils/texture-util": 304 +} ], +103: [ (function(t, e, i) { +"use strict"; +var n = cc.Enum({ +Unified: 0, +Free: 1 +}), r = cc.Enum({ +Horizontal: 0, +Vertical: 1 +}), s = cc.Enum({ +PAGE_TURNING: 0 +}), o = cc.Class({ +name: "cc.PageView", +extends: cc.ScrollView, +editor: !1, +ctor: function() { +this._curPageIdx = 0; +this._lastPageIdx = 0; +this._pages = []; +this._initContentPos = cc.v2(); +this._scrollCenterOffsetX = []; +this._scrollCenterOffsetY = []; +}, +properties: { +sizeMode: { +default: n.Unified, +type: n, +tooltip: !1, +notify: function() { +this._syncSizeMode(); +} +}, +direction: { +default: r.Horizontal, +type: r, +tooltip: !1, +notify: function() { +this._syncScrollDirection(); +} +}, +scrollThreshold: { +default: .5, +type: cc.Float, +slide: !0, +range: [ 0, 1, .01 ], +tooltip: !1 +}, +autoPageTurningThreshold: { +default: 100, +type: cc.Float, +tooltip: !1 +}, +pageTurningEventTiming: { +default: .1, +type: cc.Float, +range: [ 0, 1, .01 ], +tooltip: !1 +}, +indicator: { +default: null, +type: cc.PageViewIndicator, +tooltip: !1, +notify: function() { +this.indicator && this.indicator.setPageView(this); +} +}, +pageTurningSpeed: { +default: .3, +type: cc.Float, +tooltip: !1 +}, +pageEvents: { +default: [], +type: cc.Component.EventHandler, +tooltip: !1 +} +}, +statics: { +SizeMode: n, +Direction: r, +EventType: s +}, +__preload: function() { +this.node.on(cc.Node.EventType.SIZE_CHANGED, this._updateAllPagesSize, this); +}, +onEnable: function() { +this._super(); +this.node.on("scroll-ended-with-threshold", this._dispatchPageTurningEvent, this); +}, +onDisable: function() { +this._super(); +this.node.off("scroll-ended-with-threshold", this._dispatchPageTurningEvent, this); +}, +onLoad: function() { +this._initPages(); +this.indicator && this.indicator.setPageView(this); +}, +onDestroy: function() { +this.node.off(cc.Node.EventType.SIZE_CHANGED, this._updateAllPagesSize, this); +}, +getCurrentPageIndex: function() { +return this._curPageIdx; +}, +setCurrentPageIndex: function(t) { +this.scrollToPage(t, !0); +}, +getPages: function() { +return this._pages; +}, +addPage: function(t) { +if (t && -1 === this._pages.indexOf(t) && this.content) { +this.content.addChild(t); +this._pages.push(t); +this._updatePageView(); +} +}, +insertPage: function(t, e) { +if (!(e < 0) && t && -1 === this._pages.indexOf(t) && this.content) { +if (e >= this._pages.length) this.addPage(t); else { +this._pages.splice(e, 0, t); +this.content.addChild(t); +this._updatePageView(); +} +} +}, +removePage: function(t) { +if (t && this.content) { +var e = this._pages.indexOf(t); +-1 !== e ? this.removePageAtIndex(e) : cc.warnID(4300, t.name); +} +}, +removePageAtIndex: function(t) { +var e = this._pages; +if (!(t < 0 || t >= e.length)) { +var i = e[t]; +if (i) { +this.content.removeChild(i); +e.splice(t, 1); +this._updatePageView(); +} +} +}, +removeAllPages: function() { +if (this.content) { +for (var t = this._pages, e = 0, i = t.length; e < i; e++) this.content.removeChild(t[e]); +this._pages.length = 0; +this._updatePageView(); +} +}, +scrollToPage: function(t, e) { +if (!(t < 0 || t >= this._pages.length)) { +e = void 0 !== e ? e : .3; +this._curPageIdx = t; +this.scrollToOffset(this._moveOffsetValue(t), e, !0); +this.indicator && this.indicator._changedState(); +} +}, +getScrollEndedEventTiming: function() { +return this.pageTurningEventTiming; +}, +_syncScrollDirection: function() { +this.horizontal = this.direction === r.Horizontal; +this.vertical = this.direction === r.Vertical; +}, +_syncSizeMode: function() { +if (this.content) { +var t = this.content.getComponent(cc.Layout); +if (t) { +if (this.sizeMode === n.Free && this._pages.length > 0) { +var e = this._pages[this._pages.length - 1]; +if (this.direction === r.Horizontal) { +t.paddingLeft = (this._view.width - this._pages[0].width) / 2; +t.paddingRight = (this._view.width - e.width) / 2; +} else if (this.direction === r.Vertical) { +t.paddingTop = (this._view.height - this._pages[0].height) / 2; +t.paddingBottom = (this._view.height - e.height) / 2; +} +} +t.updateLayout(); +} +} +}, +_updatePageView: function() { +var t = this.content.getComponent(cc.Layout); +t && t.enabled && t.updateLayout(); +var e = this._pages.length; +if (this._curPageIdx >= e) { +this._curPageIdx = 0 === e ? 0 : e - 1; +this._lastPageIdx = this._curPageIdx; +} +for (var i = this._initContentPos, n = 0; n < e; ++n) { +var s = this._pages[n]; +s.setSiblingIndex(n); +this.direction === r.Horizontal ? this._scrollCenterOffsetX[n] = Math.abs(i.x + s.x) : this._scrollCenterOffsetY[n] = Math.abs(i.y + s.y); +} +this.indicator && this.indicator._refresh(); +}, +_updateAllPagesSize: function() { +if (this.sizeMode === n.Unified) for (var t = this._pages, e = this._view.getContentSize(), i = 0, r = t.length; i < r; i++) t[i].setContentSize(e); +}, +_initPages: function() { +if (this.content) { +this._initContentPos = this.content.position; +for (var t = this.content.children, e = 0; e < t.length; ++e) { +var i = t[e]; +this._pages.indexOf(i) >= 0 || this._pages.push(i); +} +this._syncScrollDirection(); +this._syncSizeMode(); +this._updatePageView(); +} +}, +_dispatchPageTurningEvent: function() { +if (this._lastPageIdx !== this._curPageIdx) { +this._lastPageIdx = this._curPageIdx; +cc.Component.EventHandler.emitEvents(this.pageEvents, this, s.PAGE_TURNING); +this.node.emit("page-turning", this); +} +}, +_isScrollable: function(t, e, i) { +if (this.sizeMode === n.Free) { +var s, o; +if (this.direction === r.Horizontal) { +s = this._scrollCenterOffsetX[e]; +o = this._scrollCenterOffsetX[i]; +return Math.abs(t.x) >= Math.abs(s - o) * this.scrollThreshold; +} +if (this.direction === r.Vertical) { +s = this._scrollCenterOffsetY[e]; +o = this._scrollCenterOffsetY[i]; +return Math.abs(t.y) >= Math.abs(s - o) * this.scrollThreshold; +} +} else { +if (this.direction === r.Horizontal) return Math.abs(t.x) >= this._view.width * this.scrollThreshold; +if (this.direction === r.Vertical) return Math.abs(t.y) >= this._view.height * this.scrollThreshold; +} +}, +_isQuicklyScrollable: function(t) { +if (this.direction === r.Horizontal) { +if (Math.abs(t.x) > this.autoPageTurningThreshold) return !0; +} else if (this.direction === r.Vertical && Math.abs(t.y) > this.autoPageTurningThreshold) return !0; +return !1; +}, +_moveOffsetValue: function(t) { +var e = cc.v2(0, 0); +this.sizeMode === n.Free ? this.direction === r.Horizontal ? e.x = this._scrollCenterOffsetX[t] : this.direction === r.Vertical && (e.y = this._scrollCenterOffsetY[t]) : this.direction === r.Horizontal ? e.x = t * this._view.width : this.direction === r.Vertical && (e.y = t * this._view.height); +return e; +}, +_getDragDirection: function(t) { +return this.direction === r.Horizontal ? 0 === t.x ? 0 : t.x > 0 ? 1 : -1 : this.direction === r.Vertical ? 0 === t.y ? 0 : t.y < 0 ? 1 : -1 : void 0; +}, +_handleReleaseLogic: function(t) { +this._autoScrollToPage(); +if (this._scrolling) { +this._scrolling = !1; +this._autoScrolling || this._dispatchEvent("scroll-ended"); +} +}, +_autoScrollToPage: function() { +var t = this._startBounceBackIfNeeded(), e = this._touchBeganPosition.sub(this._touchEndPosition); +if (t) { +var i = this._getDragDirection(e); +if (0 === i) return; +this._curPageIdx = i > 0 ? this._pages.length - 1 : 0; +this.indicator && this.indicator._changedState(); +} else { +var n = this._curPageIdx, r = n + this._getDragDirection(e), s = this.pageTurningSpeed * Math.abs(n - r); +if (r < this._pages.length) { +if (this._isScrollable(e, n, r)) { +this.scrollToPage(r, s); +return; +} +var o = this._calculateTouchMoveVelocity(); +if (this._isQuicklyScrollable(o)) { +this.scrollToPage(r, s); +return; +} +} +this.scrollToPage(n, s); +} +}, +_onTouchBegan: function(t, e) { +this._touchBeganPosition = t.touch.getLocation(); +this._super(t, e); +}, +_onTouchMoved: function(t, e) { +this._super(t, e); +}, +_onTouchEnded: function(t, e) { +this._touchEndPosition = t.touch.getLocation(); +this._super(t, e); +}, +_onTouchCancelled: function(t, e) { +this._touchEndPosition = t.touch.getLocation(); +this._super(t, e); +}, +_onMouseWheel: function() {} +}); +cc.PageView = e.exports = o; +}), {} ], +104: [ (function(t, e, i) { +"use strict"; +var n = cc.Enum({ +HORIZONTAL: 0, +VERTICAL: 1 +}), r = cc.Class({ +name: "cc.PageViewIndicator", +extends: t("./CCComponent"), +editor: !1, +properties: { +_layout: null, +_pageView: null, +_indicators: [], +spriteFrame: { +default: null, +type: cc.SpriteFrame, +tooltip: !1 +}, +direction: { +default: n.HORIZONTAL, +type: n, +tooltip: !1 +}, +cellSize: { +default: cc.size(20, 20), +tooltip: !1 +}, +spacing: { +default: 0, +tooltip: !1 +} +}, +statics: { +Direction: n +}, +onLoad: function() { +this._updateLayout(); +}, +setPageView: function(t) { +this._pageView = t; +this._refresh(); +}, +_updateLayout: function() { +this._layout = this.getComponent(cc.Layout); +this._layout || (this._layout = this.addComponent(cc.Layout)); +if (this.direction === n.HORIZONTAL) { +this._layout.type = cc.Layout.Type.HORIZONTAL; +this._layout.spacingX = this.spacing; +} else if (this.direction === n.VERTICAL) { +this._layout.type = cc.Layout.Type.VERTICAL; +this._layout.spacingY = this.spacing; +} +this._layout.resizeMode = cc.Layout.ResizeMode.CONTAINER; +}, +_createIndicator: function() { +var t = new cc.Node(); +t.addComponent(cc.Sprite).spriteFrame = this.spriteFrame; +t.parent = this.node; +t.width = this.cellSize.width; +t.height = this.cellSize.height; +return t; +}, +_changedState: function() { +var t = this._indicators; +if (0 !== t.length) { +var e = this._pageView._curPageIdx; +if (!(e >= t.length)) { +for (var i = 0; i < t.length; ++i) { +t[i].opacity = 127.5; +} +t[e].opacity = 255; +} +} +}, +_refresh: function() { +if (this._pageView) { +var t = this._indicators, e = this._pageView.getPages(); +if (e.length !== t.length) { +var i = 0; +if (e.length > t.length) for (i = 0; i < e.length; ++i) t[i] || (t[i] = this._createIndicator()); else { +for (i = t.length - e.length; i > 0; --i) { +var n = t[i - 1]; +this.node.removeChild(n); +t.splice(i - 1, 1); +} +} +this._layout && this._layout.enabledInHierarchy && this._layout.updateLayout(); +this._changedState(); +} +} +} +}); +cc.PageViewIndicator = e.exports = r; +}), { +"./CCComponent": 95 +} ], +105: [ (function(t, e, i) { +"use strict"; +var n = t("../utils/misc"), r = t("./CCComponent"), s = cc.Enum({ +HORIZONTAL: 0, +VERTICAL: 1, +FILLED: 2 +}), o = cc.Class({ +name: "cc.ProgressBar", +extends: r, +editor: !1, +_initBarSprite: function() { +if (this.barSprite) { +var t = this.barSprite.node; +if (!t) return; +var e = this.node.getContentSize(), i = this.node.getAnchorPoint(), n = t.getContentSize(); +t.parent === this.node && this.node.setContentSize(n); +this.barSprite.fillType === cc.Sprite.FillType.RADIAL && (this.mode = s.FILLED); +var r = t.getContentSize(); +this.mode === s.HORIZONTAL ? this.totalLength = r.width : this.mode === s.VERTICAL ? this.totalLength = r.height : this.totalLength = this.barSprite.fillRange; +if (t.parent === this.node) { +var o = -e.width * i.x; +t.setPosition(cc.v2(o, 0)); +} +} +}, +_updateBarStatus: function() { +if (this.barSprite) { +var t = this.barSprite.node; +if (!t) return; +var e, i, r, o = t.getAnchorPoint(), a = t.getContentSize(), c = t.getPosition(), l = cc.v2(0, .5), h = n.clamp01(this.progress), u = this.totalLength * h; +switch (this.mode) { +case s.HORIZONTAL: +this.reverse && (l = cc.v2(1, .5)); +e = cc.size(u, a.height); +i = this.totalLength; +r = a.height; +break; + +case s.VERTICAL: +l = this.reverse ? cc.v2(.5, 1) : cc.v2(.5, 0); +e = cc.size(a.width, u); +i = a.width; +r = this.totalLength; +} +if (this.mode === s.FILLED) if (this.barSprite.type !== cc.Sprite.Type.FILLED) cc.warn("ProgressBar FILLED mode only works when barSprite's Type is FILLED!"); else { +this.reverse && (u *= -1); +this.barSprite.fillRange = u; +} else if (this.barSprite.type !== cc.Sprite.Type.FILLED) { +var _ = l.x - o.x, f = l.y - o.y, d = cc.v2(i * _, r * f); +t.setPosition(c.x + d.x, c.y + d.y); +t.setAnchorPoint(l); +t.setContentSize(e); +} else cc.warn("ProgressBar non-FILLED mode only works when barSprite's Type is non-FILLED!"); +} +}, +properties: { +barSprite: { +default: null, +type: cc.Sprite, +tooltip: !1, +notify: function() { +this._initBarSprite(); +}, +animatable: !1 +}, +mode: { +default: s.HORIZONTAL, +type: s, +tooltip: !1, +notify: function() { +if (this.barSprite) { +var t = this.barSprite.node; +if (!t) return; +var e = t.getContentSize(); +this.mode === s.HORIZONTAL ? this.totalLength = e.width : this.mode === s.VERTICAL ? this.totalLength = e.height : this.mode === s.FILLED && (this.totalLength = this.barSprite.fillRange); +} +}, +animatable: !1 +}, +_N$totalLength: 1, +totalLength: { +range: [ 0, Number.MAX_VALUE ], +tooltip: !1, +get: function() { +return this._N$totalLength; +}, +set: function(t) { +this.mode === s.FILLED && (t = n.clamp01(t)); +this._N$totalLength = t; +this._updateBarStatus(); +} +}, +progress: { +default: 1, +type: "Float", +range: [ 0, 1, .1 ], +slide: !0, +tooltip: !1, +notify: function() { +this._updateBarStatus(); +} +}, +reverse: { +default: !1, +tooltip: !1, +notify: function() { +this.barSprite && (this.barSprite.fillStart = 1 - this.barSprite.fillStart); +this._updateBarStatus(); +}, +animatable: !1 +} +}, +statics: { +Mode: s +} +}); +cc.ProgressBar = e.exports = o; +}), { +"../utils/misc": 297, +"./CCComponent": 95 +} ], +106: [ (function(t, e, i) { +"use strict"; +r(t("../../renderer/gfx")); +var n = r(t("../../renderer/render-data/render-data")); +function r(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var s = t("./CCComponent"), o = t("../renderer/render-flow"), a = (t("../platform/CCMacro").BlendFactor, +t("../assets/material/CCMaterial")), c = cc.Class({ +name: "RenderComponent", +extends: s, +editor: !1, +properties: { +_materials: { +default: [], +type: a +}, +sharedMaterials: { +get: function() { +return this._materials; +}, +set: function(t) { +this._materials = t; +this._activateMaterial(!0); +}, +type: [ a ], +displayName: "Materials", +animatable: !1 +} +}, +ctor: function() { +this._renderData = null; +this.__allocedDatas = []; +this._vertexFormat = null; +this._toPostHandle = !1; +this._assembler = this.constructor._assembler; +this._postAssembler = this.constructor._postAssembler; +}, +onEnable: function() { +this.node._renderComponent && (this.node._renderComponent.enabled = !1); +this.node._renderComponent = this; +this.node._renderFlag |= o.FLAG_RENDER | o.FLAG_UPDATE_RENDER_DATA; +}, +onDisable: function() { +this.node._renderComponent = null; +this.disableRender(); +}, +onDestroy: function() { +for (var t = 0, e = this.__allocedDatas.length; t < e; t++) n.default.free(this.__allocedDatas[t]); +this.__allocedDatas.length = 0; +this._materials.length = 0; +this._renderData = null; +var i = this._uniforms; +for (var r in i) _uniformPool.remove(_uniformPool._data.indexOf(i[r])); +this._uniforms = null; +this._defines = null; +}, +_canRender: function() { +return this._enabled && this.node._activeInHierarchy; +}, +markForUpdateRenderData: function(t) { +t && this._canRender() ? this.node._renderFlag |= o.FLAG_UPDATE_RENDER_DATA : t || (this.node._renderFlag &= ~o.FLAG_UPDATE_RENDER_DATA); +}, +markForRender: function(t) { +t && this._canRender() ? this.node._renderFlag |= o.FLAG_RENDER : t || (this.node._renderFlag &= ~o.FLAG_RENDER); +}, +markForCustomIARender: function(t) { +t && this._canRender() ? this.node._renderFlag |= o.FLAG_CUSTOM_IA_RENDER : t || (this.node._renderFlag &= ~o.FLAG_CUSTOM_IA_RENDER); +}, +disableRender: function() { +this.node._renderFlag &= ~(o.FLAG_RENDER | o.FLAG_CUSTOM_IA_RENDER | o.FLAG_UPDATE_RENDER_DATA); +}, +requestRenderData: function() { +var t = n.default.alloc(); +this.__allocedDatas.push(t); +return t; +}, +destroyRenderData: function(t) { +var e = this.__allocedDatas.indexOf(t); +if (-1 !== e) { +this.__allocedDatas.splice(e, 1); +n.default.free(t); +} +}, +getMaterial: function(t) { +if (t < 0 || t >= this._materials.length) return null; +var e = this._materials[t]; +if (!e) return null; +var i = a.getInstantiatedMaterial(e, this); +i !== e && this.setMaterial(t, i); +return this._materials[t]; +}, +setMaterial: function(t, e) { +this._materials[t] = e; +e && this.markForUpdateRenderData(!0); +}, +_activateMaterial: function(t) {} +}); +c._assembler = null; +c._postAssembler = null; +cc.RenderComponent = e.exports = c; +}), { +"../../renderer/gfx": 349, +"../../renderer/render-data/render-data": 369, +"../assets/material/CCMaterial": 75, +"../platform/CCMacro": 206, +"../renderer/render-flow": 245, +"./CCComponent": 95 +} ], +107: [ (function(i, n, r) { +"use strict"; +var s = i("../platform/js"), o = i("../platform/CCMacro"), a = i("../utils/text-utils"), c = new (i("../utils/html-text-parser"))(), l = o.TextAlignment, h = o.VerticalTextAlignment; +var u = new s.Pool(function(t) { +0; +0; +return !!cc.isValid(t) && !t.getComponent(cc.LabelOutline); +}, 20); +u.get = function(i, n) { +var r = this._get(); +r || (r = new cc.PrivateNode("RICHTEXT_CHILD")); +var s = r.getComponent(cc.Label); +s || (s = r.addComponent(cc.Label)); +r.setPosition(0, 0); +r.setAnchorPoint(.5, .5); +r.setContentSize(128, 128); +r.skewX = 0; +"string" !== ("object" === (e = typeof i) ? t(i) : e) && (i = "" + i); +n.font instanceof cc.Font ? s.font = n.font : s.fontFamily = n.fontFamily; +s.string = i; +s.horizontalAlign = l.LEFT; +s.verticalAlign = h.TOP; +s.fontSize = n.fontSize || 40; +s.overflow = 0; +s.enableWrapText = !0; +s.lineHeight = 40; +s._enableBold(!1); +s._enableItalics(!1); +s._enableUnderline(!1); +return r; +}; +var _ = cc.Class({ +name: "cc.RichText", +extends: cc.Component, +ctor: function() { +this._textArray = null; +this._labelSegments = []; +this._labelSegmentsCache = []; +this._linesWidth = []; +this._updateRichTextStatus = this._updateRichText; +}, +editor: !1, +properties: { +string: { +default: "RichText", +multiline: !0, +tooltip: !1, +notify: function() { +this._updateRichTextStatus(); +} +}, +horizontalAlign: { +default: l.LEFT, +type: l, +tooltip: !1, +animatable: !1, +notify: function(t) { +if (this.horizontalAlign !== t) { +this._layoutDirty = !0; +this._updateRichTextStatus(); +} +} +}, +fontSize: { +default: 40, +tooltip: !1, +notify: function(t) { +if (this.fontSize !== t) { +this._layoutDirty = !0; +this._updateRichTextStatus(); +} +} +}, +_fontFamily: "Arial", +fontFamily: { +tooltip: !1, +get: function() { +return this._fontFamily; +}, +set: function(t) { +if (this._fontFamily !== t) { +this._fontFamily = t; +this._layoutDirty = !0; +this._updateRichTextStatus(); +} +}, +animatable: !1 +}, +font: { +default: null, +type: cc.TTFFont, +tooltip: !1, +notify: function(t) { +if (this.font !== t) { +this._layoutDirty = !0; +if (this.font) { +this.useSystemFont = !1; +this._onTTFLoaded(); +} else this.useSystemFont = !0; +this._updateRichTextStatus(); +} +} +}, +_isSystemFontUsed: !0, +useSystemFont: { +get: function() { +return this._isSystemFontUsed; +}, +set: function(t) { +if ((t || this.font) && this._isSystemFontUsed !== t) { +this._isSystemFontUsed = t; +this._layoutDirty = !0; +this._updateRichTextStatus(); +} +}, +animatable: !1, +tooltip: !1 +}, +maxWidth: { +default: 0, +tooltip: !1, +notify: function(t) { +if (this.maxWidth !== t) { +this._layoutDirty = !0; +this._updateRichTextStatus(); +} +} +}, +lineHeight: { +default: 40, +tooltip: !1, +notify: function(t) { +if (this.lineHeight !== t) { +this._layoutDirty = !0; +this._updateRichTextStatus(); +} +} +}, +imageAtlas: { +default: null, +type: cc.SpriteAtlas, +tooltip: !1, +notify: function(t) { +if (this.imageAtlas !== t) { +this._layoutDirty = !0; +this._updateRichTextStatus(); +} +} +}, +handleTouchEvent: { +default: !0, +tooltip: !1, +notify: function(t) { +this.handleTouchEvent !== t && this.enabledInHierarchy && (this.handleTouchEvent ? this._addEventListeners() : this._removeEventListeners()); +} +} +}, +statics: { +HorizontalAlign: l, +VerticalAlign: h +}, +onEnable: function() { +this.handleTouchEvent && this._addEventListeners(); +this._updateRichText(); +this._activateChildren(!0); +}, +onDisable: function() { +this.handleTouchEvent && this._removeEventListeners(); +this._activateChildren(!1); +}, +start: function() { +this._onTTFLoaded(); +}, +_onColorChanged: function(t) { +this.node.children.forEach((function(e) { +e.color = t; +})); +}, +_addEventListeners: function() { +this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); +this.node.on(cc.Node.EventType.COLOR_CHANGED, this._onColorChanged, this); +}, +_removeEventListeners: function() { +this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); +this.node.off(cc.Node.EventType.COLOR_CHANGED, this._onColorChanged, this); +}, +_updateLabelSegmentTextAttributes: function() { +this._labelSegments.forEach(function(t) { +this._applyTextAttribute(t); +}.bind(this)); +}, +_createFontLabel: function(t) { +return u.get(t, this); +}, +_onTTFLoaded: function() { +if (this.font instanceof cc.TTFFont) if (this.font._nativeAsset) { +this._layoutDirty = !0; +this._updateRichText(); +} else { +var t = this; +cc.loader.load(this.font.nativeUrl, (function(e, i) { +t._layoutDirty = !0; +t._updateRichText(); +})); +} else { +this._layoutDirty = !0; +this._updateRichText(); +} +}, +_measureText: function(t, e) { +var i = this, n = function(e) { +var n = void 0; +if (0 === i._labelSegmentsCache.length) { +n = i._createFontLabel(e); +i._labelSegmentsCache.push(n); +} else (n = i._labelSegmentsCache[0]).getComponent(cc.Label).string = e; +n._styleIndex = t; +i._applyTextAttribute(n); +return n.getContentSize().width; +}; +return e ? n(e) : n; +}, +_onTouchEnded: function(t) { +for (var e = this, i = this.node.getComponents(cc.Component), n = function(n) { +var r = e._labelSegments[n], s = r._clickHandler, o = r._clickParam; +if (s && e._containsTouchLocation(r, t.touch.getLocation())) { +i.forEach((function(e) { +e.enabledInHierarchy && e[s] && e[s](t, o); +})); +t.stopPropagation(); +} +}, r = 0; r < this._labelSegments.length; ++r) n(r); +}, +_containsTouchLocation: function(t, e) { +return t.getBoundingBoxToWorld().contains(e); +}, +_resetState: function() { +for (var t = this.node.children, e = t.length - 1; e >= 0; e--) { +var i = t[e]; +if ("RICHTEXT_CHILD" === i.name || "RICHTEXT_Image_CHILD" === i.name) { +i.parent === this.node ? i.parent = null : t.splice(e, 1); +"RICHTEXT_CHILD" === i.name && u.put(i); +} +} +this._labelSegments.length = 0; +this._labelSegmentsCache.length = 0; +this._linesWidth.length = 0; +this._lineOffsetX = 0; +this._lineCount = 1; +this._labelWidth = 0; +this._labelHeight = 0; +this._layoutDirty = !0; +}, +onRestore: !1, +_activateChildren: function(t) { +for (var e = this.node.children.length - 1; e >= 0; e--) { +var i = this.node.children[e]; +"RICHTEXT_CHILD" !== i.name && "RICHTEXT_Image_CHILD" !== i.name || (i.active = t); +} +}, +_addLabelSegment: function(t, e) { +var i = void 0; +0 === this._labelSegmentsCache.length ? i = this._createFontLabel(t) : (i = this._labelSegmentsCache.pop()).getComponent(cc.Label).string = t; +i._styleIndex = e; +i._lineCount = this._lineCount; +i.active = this.node.active; +i.setAnchorPoint(0, 0); +this._applyTextAttribute(i); +this.node.addChild(i); +this._labelSegments.push(i); +return i; +}, +_updateRichTextWithMaxWidth: function(t, e, i) { +var n = e; +if (this._lineOffsetX > 0 && n + this._lineOffsetX > this.maxWidth) for (var r = 0; this._lineOffsetX <= this.maxWidth; ) { +var s = this._getFirstWordLen(t, r, t.length), o = t.substr(r, s), c = this._measureText(i, o); +if (!(this._lineOffsetX + c <= this.maxWidth)) { +if (r > 0) { +var l = t.substr(0, r); +this._addLabelSegment(l, i); +t = t.substr(r, t.length); +n = this._measureText(i, t); +} +this._updateLineInfo(); +break; +} +this._lineOffsetX += c; +r += s; +} +if (n > this.maxWidth) for (var h = a.fragmentText(t, n, this.maxWidth, this._measureText(i)), u = 0; u < h.length; ++u) { +var _ = h[u], f = this._addLabelSegment(_, i).getContentSize(); +this._lineOffsetX += f.width; +h.length > 1 && u < h.length - 1 && this._updateLineInfo(); +} else { +this._lineOffsetX += n; +this._addLabelSegment(t, i); +} +}, +_isLastComponentCR: function(t) { +return t.length - 1 === t.lastIndexOf("\n"); +}, +_updateLineInfo: function() { +this._linesWidth.push(this._lineOffsetX); +this._lineOffsetX = 0; +this._lineCount++; +}, +_needsUpdateTextLayout: function(t) { +if (this._layoutDirty || !this._textArray || !t) return !0; +if (this._textArray.length !== t.length) return !0; +for (var e = 0; e < this._textArray.length; ++e) { +var i = this._textArray[e], n = t[e]; +if (i.text !== n.text) return !0; +if (i.style) { +if (n.style) { +if (!!n.style.outline != !!i.style.outline) return !0; +if (i.style.size !== n.style.size || i.style.italic !== n.style.italic || i.style.isImage !== n.style.isImage) return !0; +if (i.style.isImage === n.style.isImage && i.style.src !== n.style.src) return !0; +} else if (i.style.size || i.style.italic || i.style.isImage || i.style.outline) return !0; +} else if (n.style && (n.style.size || n.style.italic || n.style.isImage || n.style.outline)) return !0; +} +return !1; +}, +_addRichTextImageElement: function(t) { +var e = t.style.src, i = this.imageAtlas.getSpriteFrame(e); +if (i) { +var n = new cc.PrivateNode("RICHTEXT_Image_CHILD"), r = n.addComponent(cc.Sprite); +n.setAnchorPoint(0, 0); +r.type = cc.Sprite.Type.SLICED; +r.sizeMode = cc.Sprite.SizeMode.CUSTOM; +this.node.addChild(n); +this._labelSegments.push(n); +var s = i.getRect(), o = 1, a = s.width, c = s.height, l = t.style.imageWidth, h = t.style.imageHeight; +if (h > 0 && h < this.lineHeight) { +a *= o = h / c; +c *= o; +} else { +a *= o = this.lineHeight / c; +c *= o; +} +l > 0 && (a = l); +if (this.maxWidth > 0) { +this._lineOffsetX + a > this.maxWidth && this._updateLineInfo(); +this._lineOffsetX += a; +} else { +this._lineOffsetX += a; +this._lineOffsetX > this._labelWidth && (this._labelWidth = this._lineOffsetX); +} +r.spriteFrame = i; +n.setContentSize(a, c); +n._lineCount = this._lineCount; +if (t.style.event) { +t.style.event.click && (n._clickHandler = t.style.event.click); +t.style.event.param ? n._clickParam = t.style.event.param : n._clickParam = ""; +} else n._clickHandler = null; +} else cc.warnID(4400); +}, +_updateRichText: function() { +if (this.enabled) { +var t = c.parse(this.string); +if (this._needsUpdateTextLayout(t)) { +this._textArray = t; +this._resetState(); +for (var e = !1, i = void 0, n = 0; n < this._textArray.length; ++n) { +var r = this._textArray[n], s = r.text; +if ("" === s) { +if (r.style && r.style.newline) { +this._updateLineInfo(); +continue; +} +if (r.style && r.style.isImage && this.imageAtlas) { +this._addRichTextImageElement(r); +continue; +} +} +for (var o = s.split("\n"), l = 0; l < o.length; ++l) { +var h = o[l]; +if ("" !== h) { +e = !1; +if (this.maxWidth > 0) { +var u = this._measureText(n, h); +this._updateRichTextWithMaxWidth(h, u, n); +o.length > 1 && l < o.length - 1 && this._updateLineInfo(); +} else { +i = this._addLabelSegment(h, n).getContentSize(); +this._lineOffsetX += i.width; +this._lineOffsetX > this._labelWidth && (this._labelWidth = this._lineOffsetX); +o.length > 1 && l < o.length - 1 && this._updateLineInfo(); +} +} else { +if (this._isLastComponentCR(s) && l === o.length - 1) continue; +this._updateLineInfo(); +e = !0; +} +} +} +e || this._linesWidth.push(this._lineOffsetX); +this.maxWidth > 0 && (this._labelWidth = this.maxWidth); +this._labelHeight = (this._lineCount + a.BASELINE_RATIO) * this.lineHeight; +this.node.setContentSize(this._labelWidth, this._labelHeight); +this._updateRichTextPosition(); +this._layoutDirty = !1; +} else { +this._textArray = t; +this._updateLabelSegmentTextAttributes(); +} +} +}, +_getFirstWordLen: function(t, e, i) { +var n = t.charAt(e); +if (a.isUnicodeCJK(n) || a.isUnicodeSpace(n)) return 1; +for (var r = 1, s = e + 1; s < i; ++s) { +n = t.charAt(s); +if (a.isUnicodeSpace(n) || a.isUnicodeCJK(n)) break; +r++; +} +return r; +}, +_updateRichTextPosition: function() { +for (var t = 0, e = 1, i = this._lineCount, n = 0; n < this._labelSegments.length; ++n) { +var r = this._labelSegments[n], s = r._lineCount; +if (s > e) { +t = 0; +e = s; +} +var o = 0; +switch (this.horizontalAlign) { +case l.LEFT: +o = -this._labelWidth / 2; +break; + +case l.CENTER: +o = -this._linesWidth[s - 1] / 2; +break; + +case l.RIGHT: +o = this._labelWidth / 2 - this._linesWidth[s - 1]; +} +r.x = t + o; +var a = r.getContentSize(); +r.y = this.lineHeight * (i - s) - this._labelHeight / 2; +s === e && (t += a.width); +} +}, +_convertLiteralColorValue: function(t) { +var e = t.toUpperCase(); +return cc.Color[e] ? cc.Color[e] : cc.color().fromHEX(t); +}, +_applyTextAttribute: function(t) { +var e = t.getComponent(cc.Label); +if (e) { +var i = t._styleIndex; +this._isSystemFontUsed && (e.fontFamily = this._fontFamily); +e.useSystemFont = this._isSystemFontUsed; +e.lineHeight = this.lineHeight; +e.horizontalAlign = l.LEFT; +e.verticalAlign = h.CENTER; +var n = null; +this._textArray[i] && (n = this._textArray[i].style); +n && n.color ? t.color = this._convertLiteralColorValue(n.color) : t.color = this.node.color; +e._enableBold(n && n.bold); +e._enableItalics(n && n.italic); +n && n.italic && (t.skewX = 12); +e._enableUnderline(n && n.underline); +if (n && n.outline) { +var r = t.getComponent(cc.LabelOutline); +r || (r = t.addComponent(cc.LabelOutline)); +r.color = this._convertLiteralColorValue(n.outline.color); +r.width = n.outline.width; +} +n && n.size ? e.fontSize = n.size : e.fontSize = this.fontSize; +e._updateRenderData(!0); +if (n && n.event) { +n.event.click && (t._clickHandler = n.event.click); +n.event.param ? t._clickParam = n.event.param : t._clickParam = ""; +} else t._clickHandler = null; +} +}, +onDestroy: function() { +for (var t = 0; t < this._labelSegments.length; ++t) { +this._labelSegments[t].removeFromParent(); +u.put(this._labelSegments[t]); +} +} +}); +cc.RichText = n.exports = _; +}), { +"../platform/CCMacro": 206, +"../platform/js": 221, +"../utils/html-text-parser": 293, +"../utils/text-utils": 303 +} ], +108: [ (function(t, e, i) { +"use strict"; +var n = t("../utils/misc"), r = (t("./CCComponent"), cc.Enum({ +HORIZONTAL: 0, +VERTICAL: 1 +})), s = cc.Class({ +name: "cc.Scrollbar", +extends: t("./CCComponent"), +editor: !1, +properties: { +_scrollView: null, +_touching: !1, +_autoHideRemainingTime: { +default: 0, +serializable: !1 +}, +_opacity: 255, +handle: { +default: null, +type: cc.Sprite, +tooltip: !1, +notify: function() { +this._onScroll(cc.v2(0, 0)); +}, +animatable: !1 +}, +direction: { +default: r.HORIZONTAL, +type: r, +tooltip: !1, +notify: function() { +this._onScroll(cc.v2(0, 0)); +}, +animatable: !1 +}, +enableAutoHide: { +default: !0, +animatable: !1, +tooltip: !1 +}, +autoHideTime: { +default: 1, +animatable: !1, +tooltip: !1 +} +}, +statics: { +Direction: r +}, +setTargetScrollView: function(t) { +this._scrollView = t; +}, +_convertToScrollViewSpace: function(t) { +var e = this._scrollView.node, i = t.convertToWorldSpaceAR(cc.v2(-t.anchorX * t.width, -t.anchorY * t.height)), n = e.convertToNodeSpaceAR(i); +n.x += e.anchorX * e.width; +n.y += e.anchorY * e.height; +return n; +}, +_setOpacity: function(t) { +if (this.handle) { +this.node.opacity = t; +this.handle.node.opacity = t; +} +}, +_onScroll: function(t) { +if (this._scrollView) { +var e = this._scrollView.content; +if (e) { +var i = e.getContentSize(), n = this._scrollView.node.getContentSize(), s = this.node.getContentSize(); +if (this._conditionalDisableScrollBar(i, n)) return; +if (this.enableAutoHide) { +this._autoHideRemainingTime = this.autoHideTime; +this._setOpacity(this._opacity); +} +var o = 0, a = 0, c = 0, l = 0, h = 0; +if (this.direction === r.HORIZONTAL) { +o = i.width; +a = n.width; +h = s.width; +c = t.x; +l = -this._convertToScrollViewSpace(e).x; +} else if (this.direction === r.VERTICAL) { +o = i.height; +a = n.height; +h = s.height; +c = t.y; +l = -this._convertToScrollViewSpace(e).y; +} +var u = this._calculateLength(o, a, h, c), _ = this._calculatePosition(o, a, h, l, c, u); +this._updateLength(u); +this._updateHanlderPosition(_); +} +} +}, +_updateHanlderPosition: function(t) { +if (this.handle) { +var e = this._fixupHandlerPosition(); +this.handle.node.setPosition(t.x + e.x, t.y + e.y); +} +}, +_fixupHandlerPosition: function() { +var t = this.node.getContentSize(), e = this.node.getAnchorPoint(), i = this.handle.node.getContentSize(), n = this.handle.node.parent, s = this.node.convertToWorldSpaceAR(cc.v2(-t.width * e.x, -t.height * e.y)), o = n.convertToNodeSpaceAR(s); +this.direction === r.HORIZONTAL ? o = cc.v2(o.x, o.y + (t.height - i.height) / 2) : this.direction === r.VERTICAL && (o = cc.v2(o.x + (t.width - i.width) / 2, o.y)); +this.handle.node.setPosition(o); +return o; +}, +_onTouchBegan: function() { +this.enableAutoHide && (this._touching = !0); +}, +_conditionalDisableScrollBar: function(t, e) { +return t.width <= e.width && this.direction === r.HORIZONTAL || t.height <= e.height && this.direction === r.VERTICAL; +}, +_onTouchEnded: function() { +if (this.enableAutoHide) { +this._touching = !1; +if (!(this.autoHideTime <= 0)) { +if (this._scrollView) { +var t = this._scrollView.content; +if (t) { +var e = t.getContentSize(), i = this._scrollView.node.getContentSize(); +if (this._conditionalDisableScrollBar(e, i)) return; +} +} +this._autoHideRemainingTime = this.autoHideTime; +} +} +}, +_calculateLength: function(t, e, i, n) { +var r = t; +n && (r += 20 * (n > 0 ? n : -n)); +return i * (e / r); +}, +_calculatePosition: function(t, e, i, s, o, a) { +var c = t - e; +o && (c += Math.abs(o)); +var l = 0; +if (c) { +l = s / c; +l = n.clamp01(l); +} +var h = (i - a) * l; +return this.direction === r.VERTICAL ? cc.v2(0, h) : cc.v2(h, 0); +}, +_updateLength: function(t) { +if (this.handle) { +var e = this.handle.node, i = e.getContentSize(); +e.setAnchorPoint(cc.v2(0, 0)); +this.direction === r.HORIZONTAL ? e.setContentSize(t, i.height) : e.setContentSize(i.width, t); +} +}, +_processAutoHide: function(t) { +if (this.enableAutoHide && !(this._autoHideRemainingTime <= 0) && !this._touching) { +this._autoHideRemainingTime -= t; +if (this._autoHideRemainingTime <= this.autoHideTime) { +this._autoHideRemainingTime = Math.max(0, this._autoHideRemainingTime); +var e = this._opacity * (this._autoHideRemainingTime / this.autoHideTime); +this._setOpacity(e); +} +} +}, +start: function() { +this.enableAutoHide && this._setOpacity(0); +}, +hide: function() { +this._autoHideRemainingTime = 0; +this._setOpacity(0); +}, +show: function() { +this._autoHideRemainingTime = this.autoHideTime; +this._setOpacity(this._opacity); +}, +update: function(t) { +this._processAutoHide(t); +} +}); +cc.Scrollbar = e.exports = s; +}), { +"../utils/misc": 297, +"./CCComponent": 95 +} ], +109: [ (function(t, e, i) { +"use strict"; +var n = t("../CCNode").EventType, r = function(t) { +return (t -= 1) * t * t * t * t + 1; +}, s = function() { +return new Date().getMilliseconds(); +}, o = cc.Enum({ +SCROLL_TO_TOP: 0, +SCROLL_TO_BOTTOM: 1, +SCROLL_TO_LEFT: 2, +SCROLL_TO_RIGHT: 3, +SCROLLING: 4, +BOUNCE_TOP: 5, +BOUNCE_BOTTOM: 6, +BOUNCE_LEFT: 7, +BOUNCE_RIGHT: 8, +SCROLL_ENDED: 9, +TOUCH_UP: 10, +AUTOSCROLL_ENDED_WITH_THRESHOLD: 11, +SCROLL_BEGAN: 12 +}), a = { +"scroll-to-top": o.SCROLL_TO_TOP, +"scroll-to-bottom": o.SCROLL_TO_BOTTOM, +"scroll-to-left": o.SCROLL_TO_LEFT, +"scroll-to-right": o.SCROLL_TO_RIGHT, +scrolling: o.SCROLLING, +"bounce-bottom": o.BOUNCE_BOTTOM, +"bounce-left": o.BOUNCE_LEFT, +"bounce-right": o.BOUNCE_RIGHT, +"bounce-top": o.BOUNCE_TOP, +"scroll-ended": o.SCROLL_ENDED, +"touch-up": o.TOUCH_UP, +"scroll-ended-with-threshold": o.AUTOSCROLL_ENDED_WITH_THRESHOLD, +"scroll-began": o.SCROLL_BEGAN +}, c = cc.Class({ +name: "cc.ScrollView", +extends: t("./CCViewGroup"), +editor: !1, +ctor: function() { +this._topBoundary = 0; +this._bottomBoundary = 0; +this._leftBoundary = 0; +this._rightBoundary = 0; +this._touchMoveDisplacements = []; +this._touchMoveTimeDeltas = []; +this._touchMovePreviousTimestamp = 0; +this._touchMoved = !1; +this._autoScrolling = !1; +this._autoScrollAttenuate = !1; +this._autoScrollStartPosition = cc.v2(0, 0); +this._autoScrollTargetDelta = cc.v2(0, 0); +this._autoScrollTotalTime = 0; +this._autoScrollAccumulatedTime = 0; +this._autoScrollCurrentlyOutOfBoundary = !1; +this._autoScrollBraking = !1; +this._autoScrollBrakingStartPosition = cc.v2(0, 0); +this._outOfBoundaryAmount = cc.v2(0, 0); +this._outOfBoundaryAmountDirty = !0; +this._stopMouseWheel = !1; +this._mouseWheelEventElapsedTime = 0; +this._isScrollEndedWithThresholdEventFired = !1; +this._scrollEventEmitMask = 0; +this._isBouncing = !1; +this._scrolling = !1; +}, +properties: { +content: { +default: void 0, +type: cc.Node, +tooltip: !1, +formerlySerializedAs: "content", +notify: function(t) { +this._calculateBoundary(); +} +}, +horizontal: { +default: !0, +animatable: !1, +tooltip: !1 +}, +vertical: { +default: !0, +animatable: !1, +tooltip: !1 +}, +inertia: { +default: !0, +tooltip: !1 +}, +brake: { +default: .5, +type: "Float", +range: [ 0, 1, .1 ], +tooltip: !1 +}, +elastic: { +default: !0, +animatable: !1, +tooltip: !1 +}, +bounceDuration: { +default: 1, +range: [ 0, 10 ], +tooltip: !1 +}, +horizontalScrollBar: { +default: void 0, +type: cc.Scrollbar, +tooltip: !1, +notify: function() { +if (this.horizontalScrollBar) { +this.horizontalScrollBar.setTargetScrollView(this); +this._updateScrollBar(0); +} +}, +animatable: !1 +}, +verticalScrollBar: { +default: void 0, +type: cc.Scrollbar, +tooltip: !1, +notify: function() { +if (this.verticalScrollBar) { +this.verticalScrollBar.setTargetScrollView(this); +this._updateScrollBar(0); +} +}, +animatable: !1 +}, +scrollEvents: { +default: [], +type: cc.Component.EventHandler, +tooltip: !1 +}, +cancelInnerEvents: { +default: !0, +animatable: !1, +tooltip: !1 +}, +_view: { +get: function() { +if (this.content) return this.content.parent; +} +} +}, +statics: { +EventType: o +}, +scrollToBottom: function(t, e) { +var i = this._calculateMovePercentDelta({ +anchor: cc.v2(0, 0), +applyToHorizontal: !1, +applyToVertical: !0 +}); +t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i, !0); +}, +scrollToTop: function(t, e) { +var i = this._calculateMovePercentDelta({ +anchor: cc.v2(0, 1), +applyToHorizontal: !1, +applyToVertical: !0 +}); +t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); +}, +scrollToLeft: function(t, e) { +var i = this._calculateMovePercentDelta({ +anchor: cc.v2(0, 0), +applyToHorizontal: !0, +applyToVertical: !1 +}); +t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); +}, +scrollToRight: function(t, e) { +var i = this._calculateMovePercentDelta({ +anchor: cc.v2(1, 0), +applyToHorizontal: !0, +applyToVertical: !1 +}); +t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); +}, +scrollToTopLeft: function(t, e) { +var i = this._calculateMovePercentDelta({ +anchor: cc.v2(0, 1), +applyToHorizontal: !0, +applyToVertical: !0 +}); +t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); +}, +scrollToTopRight: function(t, e) { +var i = this._calculateMovePercentDelta({ +anchor: cc.v2(1, 1), +applyToHorizontal: !0, +applyToVertical: !0 +}); +t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); +}, +scrollToBottomLeft: function(t, e) { +var i = this._calculateMovePercentDelta({ +anchor: cc.v2(0, 0), +applyToHorizontal: !0, +applyToVertical: !0 +}); +t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); +}, +scrollToBottomRight: function(t, e) { +var i = this._calculateMovePercentDelta({ +anchor: cc.v2(1, 0), +applyToHorizontal: !0, +applyToVertical: !0 +}); +t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); +}, +scrollToOffset: function(t, e, i) { +var n = this.getMaxScrollOffset(), r = cc.v2(0, 0); +0 === n.x ? r.x = 0 : r.x = t.x / n.x; +0 === n.y ? r.y = 1 : r.y = (n.y - t.y) / n.y; +this.scrollTo(r, e, i); +}, +getScrollOffset: function() { +var t = this._getContentTopBoundary() - this._topBoundary, e = this._getContentLeftBoundary() - this._leftBoundary; +return cc.v2(e, t); +}, +getMaxScrollOffset: function() { +var t = this._view.getContentSize(), e = this.content.getContentSize(), i = e.width - t.width, n = e.height - t.height; +i = i >= 0 ? i : 0; +n = n >= 0 ? n : 0; +return cc.v2(i, n); +}, +scrollToPercentHorizontal: function(t, e, i) { +var n = this._calculateMovePercentDelta({ +anchor: cc.v2(t, 0), +applyToHorizontal: !0, +applyToVertical: !1 +}); +e ? this._startAutoScroll(n, e, !1 !== i) : this._moveContent(n); +}, +scrollTo: function(t, e, i) { +var n = this._calculateMovePercentDelta({ +anchor: cc.v2(t), +applyToHorizontal: !0, +applyToVertical: !0 +}); +e ? this._startAutoScroll(n, e, !1 !== i) : this._moveContent(n); +}, +scrollToPercentVertical: function(t, e, i) { +var n = this._calculateMovePercentDelta({ +anchor: cc.v2(0, t), +applyToHorizontal: !1, +applyToVertical: !0 +}); +e ? this._startAutoScroll(n, e, !1 !== i) : this._moveContent(n); +}, +stopAutoScroll: function() { +this._autoScrolling = !1; +this._autoScrollAccumulatedTime = this._autoScrollTotalTime; +}, +setContentPosition: function(t) { +if (!t.fuzzyEquals(this.getContentPosition(), 1e-4)) { +this.content.setPosition(t); +this._outOfBoundaryAmountDirty = !0; +} +}, +getContentPosition: function() { +return this.content.getPosition(); +}, +isScrolling: function() { +return this._scrolling; +}, +isAutoScrolling: function() { +return this._autoScrolling; +}, +_registerEvent: function() { +this.node.on(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this, !0); +this.node.on(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this, !0); +this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this, !0); +this.node.on(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancelled, this, !0); +this.node.on(cc.Node.EventType.MOUSE_WHEEL, this._onMouseWheel, this, !0); +}, +_unregisterEvent: function() { +this.node.off(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this, !0); +this.node.off(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this, !0); +this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this, !0); +this.node.off(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancelled, this, !0); +this.node.off(cc.Node.EventType.MOUSE_WHEEL, this._onMouseWheel, this, !0); +}, +_onMouseWheel: function(t, e) { +if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { +var i = cc.v2(0, 0), n = -.1; +n = -7; +this.vertical ? i = cc.v2(0, t.getScrollY() * n) : this.horizontal && (i = cc.v2(t.getScrollY() * n, 0)); +this._mouseWheelEventElapsedTime = 0; +this._processDeltaMove(i); +if (!this._stopMouseWheel) { +this._handlePressLogic(); +this.schedule(this._checkMouseWheel, 1 / 60); +this._stopMouseWheel = !0; +} +this._stopPropagationIfTargetIsMe(t); +} +}, +_checkMouseWheel: function(t) { +if (this._getHowMuchOutOfBoundary().fuzzyEquals(cc.v2(0, 0), 1e-4)) { +this._mouseWheelEventElapsedTime += t; +if (this._mouseWheelEventElapsedTime > .1) { +this._onScrollBarTouchEnded(); +this.unschedule(this._checkMouseWheel); +this._stopMouseWheel = !1; +} +} else { +this._processInertiaScroll(); +this.unschedule(this._checkMouseWheel); +this._stopMouseWheel = !1; +} +}, +_calculateMovePercentDelta: function(t) { +var e = t.anchor, i = t.applyToHorizontal, n = t.applyToVertical; +this._calculateBoundary(); +e = e.clampf(cc.v2(0, 0), cc.v2(1, 1)); +var r = this._view.getContentSize(), s = this.content.getContentSize(), o = this._getContentBottomBoundary() - this._bottomBoundary; +o = -o; +var a = this._getContentLeftBoundary() - this._leftBoundary; +a = -a; +var c = cc.v2(0, 0), l = 0; +if (i) { +l = s.width - r.width; +c.x = a - l * e.x; +} +if (n) { +l = s.height - r.height; +c.y = o - l * e.y; +} +return c; +}, +_moveContentToTopLeft: function(t) { +var e = this.content.getContentSize(), i = this._getContentBottomBoundary() - this._bottomBoundary; +i = -i; +var n = cc.v2(0, 0), r = 0, s = this._getContentLeftBoundary() - this._leftBoundary; +s = -s; +if (e.height < t.height) { +r = e.height - t.height; +n.y = i - r; +} +if (e.width < t.width) { +r = e.width - t.width; +n.x = s; +} +this._updateScrollBarState(); +this._moveContent(n); +this._adjustContentOutOfBoundary(); +}, +_calculateBoundary: function() { +if (this.content) { +var t = this.content.getComponent(cc.Layout); +t && t.enabledInHierarchy && t.updateLayout(); +var e = this._view.getContentSize(), i = e.width * this._view.anchorX, n = e.height * this._view.anchorY; +this._leftBoundary = -i; +this._bottomBoundary = -n; +this._rightBoundary = this._leftBoundary + e.width; +this._topBoundary = this._bottomBoundary + e.height; +this._moveContentToTopLeft(e); +} +}, +_hasNestedViewGroup: function(t, e) { +if (t.eventPhase === cc.Event.CAPTURING_PHASE) { +if (e) for (var i = 0; i < e.length; ++i) { +var n = e[i]; +if (this.node === n) return !!t.target.getComponent(cc.ViewGroup); +if (n.getComponent(cc.ViewGroup)) return !0; +} +return !1; +} +}, +_stopPropagationIfTargetIsMe: function(t) { +t.eventPhase === cc.Event.AT_TARGET && t.target === this.node && t.stopPropagation(); +}, +_onTouchBegan: function(t, e) { +if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { +var i = t.touch; +this.content && this._handlePressLogic(i); +this._touchMoved = !1; +this._stopPropagationIfTargetIsMe(t); +} +}, +_onTouchMoved: function(t, e) { +if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { +var i = t.touch; +this.content && this._handleMoveLogic(i); +if (this.cancelInnerEvents) { +if (i.getLocation().sub(i.getStartLocation()).mag() > 7 && !this._touchMoved && t.target !== this.node) { +var n = new cc.Event.EventTouch(t.getTouches(), t.bubbles); +n.type = cc.Node.EventType.TOUCH_CANCEL; +n.touch = t.touch; +n.simulate = !0; +t.target.dispatchEvent(n); +this._touchMoved = !0; +} +this._stopPropagationIfTargetIsMe(t); +} +} +}, +_onTouchEnded: function(t, e) { +if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { +this._dispatchEvent("touch-up"); +var i = t.touch; +this.content && this._handleReleaseLogic(i); +this._touchMoved ? t.stopPropagation() : this._stopPropagationIfTargetIsMe(t); +} +}, +_onTouchCancelled: function(t, e) { +if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { +if (!t.simulate) { +var i = t.touch; +this.content && this._handleReleaseLogic(i); +} +this._stopPropagationIfTargetIsMe(t); +} +}, +_processDeltaMove: function(t) { +this._scrollChildren(t); +this._gatherTouchMove(t); +}, +_handleMoveLogic: function(t) { +var e = t.getDelta(); +this._processDeltaMove(e); +}, +_scrollChildren: function(t) { +var e = t = this._clampDelta(t), i = void 0; +if (this.elastic) { +i = this._getHowMuchOutOfBoundary(); +e.x *= 0 === i.x ? 1 : .5; +e.y *= 0 === i.y ? 1 : .5; +} +if (!this.elastic) { +i = this._getHowMuchOutOfBoundary(e); +e = e.add(i); +} +var n = -1; +if (e.y > 0) { +this.content.y - this.content.anchorY * this.content.height + e.y > this._bottomBoundary && (n = "scroll-to-bottom"); +} else if (e.y < 0) { +this.content.y - this.content.anchorY * this.content.height + this.content.height + e.y <= this._topBoundary && (n = "scroll-to-top"); +} +if (e.x < 0) { +this.content.x - this.content.anchorX * this.content.width + this.content.width + e.x <= this._rightBoundary && (n = "scroll-to-right"); +} else if (e.x > 0) { +this.content.x - this.content.anchorX * this.content.width + e.x >= this._leftBoundary && (n = "scroll-to-left"); +} +this._moveContent(e, !1); +if (0 !== e.x || 0 !== e.y) { +if (!this._scrolling) { +this._scrolling = !0; +this._dispatchEvent("scroll-began"); +} +this._dispatchEvent("scrolling"); +} +-1 !== n && this._dispatchEvent(n); +}, +_handlePressLogic: function() { +this._autoScrolling && this._dispatchEvent("scroll-ended"); +this._autoScrolling = !1; +this._isBouncing = !1; +this._touchMovePreviousTimestamp = s(); +this._touchMoveDisplacements.length = 0; +this._touchMoveTimeDeltas.length = 0; +this._onScrollBarTouchBegan(); +}, +_clampDelta: function(t) { +var e = this.content.getContentSize(), i = this._view.getContentSize(); +e.width < i.width && (t.x = 0); +e.height < i.height && (t.y = 0); +return t; +}, +_gatherTouchMove: function(t) { +t = this._clampDelta(t); +for (;this._touchMoveDisplacements.length >= 5; ) { +this._touchMoveDisplacements.shift(); +this._touchMoveTimeDeltas.shift(); +} +this._touchMoveDisplacements.push(t); +var e = s(); +this._touchMoveTimeDeltas.push((e - this._touchMovePreviousTimestamp) / 1e3); +this._touchMovePreviousTimestamp = e; +}, +_startBounceBackIfNeeded: function() { +if (!this.elastic) return !1; +var t = this._getHowMuchOutOfBoundary(); +if ((t = this._clampDelta(t)).fuzzyEquals(cc.v2(0, 0), 1e-4)) return !1; +var e = Math.max(this.bounceDuration, 0); +this._startAutoScroll(t, e, !0); +if (!this._isBouncing) { +t.y > 0 && this._dispatchEvent("bounce-top"); +t.y < 0 && this._dispatchEvent("bounce-bottom"); +t.x > 0 && this._dispatchEvent("bounce-right"); +t.x < 0 && this._dispatchEvent("bounce-left"); +this._isBouncing = !0; +} +return !0; +}, +_processInertiaScroll: function() { +if (!this._startBounceBackIfNeeded() && this.inertia) { +var t = this._calculateTouchMoveVelocity(); +!t.fuzzyEquals(cc.v2(0, 0), 1e-4) && this.brake < 1 && this._startInertiaScroll(t); +} +this._onScrollBarTouchEnded(); +}, +_handleReleaseLogic: function(t) { +var e = t.getDelta(); +this._gatherTouchMove(e); +this._processInertiaScroll(); +if (this._scrolling) { +this._scrolling = !1; +this._autoScrolling || this._dispatchEvent("scroll-ended"); +} +}, +_isOutOfBoundary: function() { +return !this._getHowMuchOutOfBoundary().fuzzyEquals(cc.v2(0, 0), 1e-4); +}, +_isNecessaryAutoScrollBrake: function() { +if (this._autoScrollBraking) return !0; +if (this._isOutOfBoundary()) { +if (!this._autoScrollCurrentlyOutOfBoundary) { +this._autoScrollCurrentlyOutOfBoundary = !0; +this._autoScrollBraking = !0; +this._autoScrollBrakingStartPosition = this.getContentPosition(); +return !0; +} +} else this._autoScrollCurrentlyOutOfBoundary = !1; +return !1; +}, +getScrollEndedEventTiming: function() { +return 1e-4; +}, +_processAutoScrolling: function(t) { +var e = this._isNecessaryAutoScrollBrake(), i = e ? .05 : 1; +this._autoScrollAccumulatedTime += t * (1 / i); +var n = Math.min(1, this._autoScrollAccumulatedTime / this._autoScrollTotalTime); +this._autoScrollAttenuate && (n = r(n)); +var s = this._autoScrollStartPosition.add(this._autoScrollTargetDelta.mul(n)), o = Math.abs(n - 1) <= 1e-4; +if (Math.abs(n - 1) <= this.getScrollEndedEventTiming() && !this._isScrollEndedWithThresholdEventFired) { +this._dispatchEvent("scroll-ended-with-threshold"); +this._isScrollEndedWithThresholdEventFired = !0; +} +if (this.elastic && !o) { +var a = s.sub(this._autoScrollBrakingStartPosition); +e && (a = a.mul(i)); +s = this._autoScrollBrakingStartPosition.add(a); +} else { +var c = s.sub(this.getContentPosition()), l = this._getHowMuchOutOfBoundary(c); +if (!l.fuzzyEquals(cc.v2(0, 0), 1e-4)) { +s = s.add(l); +o = !0; +} +} +o && (this._autoScrolling = !1); +var h = s.sub(this.getContentPosition()); +this._moveContent(this._clampDelta(h), o); +this._dispatchEvent("scrolling"); +if (!this._autoScrolling) { +this._isBouncing = !1; +this._scrolling = !1; +this._dispatchEvent("scroll-ended"); +} +}, +_startInertiaScroll: function(t) { +var e = t.mul(.7); +this._startAttenuatingAutoScroll(e, t); +}, +_calculateAttenuatedFactor: function(t) { +return this.brake <= 0 ? 1 - this.brake : (1 - this.brake) * (1 / (1 + 14e-6 * t + t * t * 8e-9)); +}, +_startAttenuatingAutoScroll: function(t, e) { +var i = this._calculateAutoScrollTimeByInitalSpeed(e.mag()), n = t.normalize(), r = this.content.getContentSize(), s = this._view.getContentSize(), o = r.width - s.width, a = r.height - s.height, c = this._calculateAttenuatedFactor(o), l = this._calculateAttenuatedFactor(a); +n = cc.v2(n.x * o * (1 - this.brake) * c, n.y * a * l * (1 - this.brake)); +var h = t.mag(), u = n.mag() / h; +n = n.add(t); +if (this.brake > 0 && u > 7) { +u = Math.sqrt(u); +n = t.mul(u).add(t); +} +this.brake > 0 && u > 3 && (i *= u = 3); +0 === this.brake && u > 1 && (i *= u); +this._startAutoScroll(n, i, !0); +}, +_calculateAutoScrollTimeByInitalSpeed: function(t) { +return Math.sqrt(Math.sqrt(t / 5)); +}, +_startAutoScroll: function(t, e, i) { +var n = this._flattenVectorByDirection(t); +this._autoScrolling = !0; +this._autoScrollTargetDelta = n; +this._autoScrollAttenuate = i; +this._autoScrollStartPosition = this.getContentPosition(); +this._autoScrollTotalTime = e; +this._autoScrollAccumulatedTime = 0; +this._autoScrollBraking = !1; +this._isScrollEndedWithThresholdEventFired = !1; +this._autoScrollBrakingStartPosition = cc.v2(0, 0); +this._getHowMuchOutOfBoundary().fuzzyEquals(cc.v2(0, 0), 1e-4) || (this._autoScrollCurrentlyOutOfBoundary = !0); +}, +_calculateTouchMoveVelocity: function() { +var t = 0; +if ((t = this._touchMoveTimeDeltas.reduce((function(t, e) { +return t + e; +}), t)) <= 0 || t >= .5) return cc.v2(0, 0); +var e = cc.v2(0, 0); +e = this._touchMoveDisplacements.reduce((function(t, e) { +return t.add(e); +}), e); +return cc.v2(e.x * (1 - this.brake) / t, e.y * (1 - this.brake) / t); +}, +_flattenVectorByDirection: function(t) { +var e = t; +e.x = this.horizontal ? e.x : 0; +e.y = this.vertical ? e.y : 0; +return e; +}, +_moveContent: function(t, e) { +var i = this._flattenVectorByDirection(t), n = this.getContentPosition().add(i); +this.setContentPosition(n); +var r = this._getHowMuchOutOfBoundary(); +this._updateScrollBar(r); +this.elastic && e && this._startBounceBackIfNeeded(); +}, +_getContentLeftBoundary: function() { +return this.getContentPosition().x - this.content.getAnchorPoint().x * this.content.getContentSize().width; +}, +_getContentRightBoundary: function() { +var t = this.content.getContentSize(); +return this._getContentLeftBoundary() + t.width; +}, +_getContentTopBoundary: function() { +var t = this.content.getContentSize(); +return this._getContentBottomBoundary() + t.height; +}, +_getContentBottomBoundary: function() { +return this.getContentPosition().y - this.content.getAnchorPoint().y * this.content.getContentSize().height; +}, +_getHowMuchOutOfBoundary: function(t) { +if ((t = t || cc.v2(0, 0)).fuzzyEquals(cc.v2(0, 0), 1e-4) && !this._outOfBoundaryAmountDirty) return this._outOfBoundaryAmount; +var e = cc.v2(0, 0); +this._getContentLeftBoundary() + t.x > this._leftBoundary ? e.x = this._leftBoundary - (this._getContentLeftBoundary() + t.x) : this._getContentRightBoundary() + t.x < this._rightBoundary && (e.x = this._rightBoundary - (this._getContentRightBoundary() + t.x)); +this._getContentTopBoundary() + t.y < this._topBoundary ? e.y = this._topBoundary - (this._getContentTopBoundary() + t.y) : this._getContentBottomBoundary() + t.y > this._bottomBoundary && (e.y = this._bottomBoundary - (this._getContentBottomBoundary() + t.y)); +if (t.fuzzyEquals(cc.v2(0, 0), 1e-4)) { +this._outOfBoundaryAmount = e; +this._outOfBoundaryAmountDirty = !1; +} +return e = this._clampDelta(e); +}, +_updateScrollBarState: function() { +if (this.content) { +var t = this.content.getContentSize(), e = this._view.getContentSize(); +this.verticalScrollBar && (t.height < e.height ? this.verticalScrollBar.hide() : this.verticalScrollBar.show()); +this.horizontalScrollBar && (t.width < e.width ? this.horizontalScrollBar.hide() : this.horizontalScrollBar.show()); +} +}, +_updateScrollBar: function(t) { +this.horizontalScrollBar && this.horizontalScrollBar._onScroll(t); +this.verticalScrollBar && this.verticalScrollBar._onScroll(t); +}, +_onScrollBarTouchBegan: function() { +this.horizontalScrollBar && this.horizontalScrollBar._onTouchBegan(); +this.verticalScrollBar && this.verticalScrollBar._onTouchBegan(); +}, +_onScrollBarTouchEnded: function() { +this.horizontalScrollBar && this.horizontalScrollBar._onTouchEnded(); +this.verticalScrollBar && this.verticalScrollBar._onTouchEnded(); +}, +_dispatchEvent: function(t) { +if ("scroll-ended" === t) this._scrollEventEmitMask = 0; else if ("scroll-to-top" === t || "scroll-to-bottom" === t || "scroll-to-left" === t || "scroll-to-right" === t) { +var e = 1 << a[t]; +if (this._scrollEventEmitMask & e) return; +this._scrollEventEmitMask |= e; +} +cc.Component.EventHandler.emitEvents(this.scrollEvents, this, a[t]); +this.node.emit(t, this); +}, +_adjustContentOutOfBoundary: function() { +this._outOfBoundaryAmountDirty = !0; +if (this._isOutOfBoundary()) { +var t = this._getHowMuchOutOfBoundary(cc.v2(0, 0)), e = this.getContentPosition().add(t); +if (this.content) { +this.content.setPosition(e); +this._updateScrollBar(0); +} +} +}, +start: function() { +this._calculateBoundary(); +this.content && cc.director.once(cc.Director.EVENT_BEFORE_DRAW, this._adjustContentOutOfBoundary, this); +}, +_hideScrollbar: function() { +this.horizontalScrollBar && this.horizontalScrollBar.hide(); +this.verticalScrollBar && this.verticalScrollBar.hide(); +}, +onDisable: function() { +this._unregisterEvent(); +if (this.content) { +this.content.off(n.SIZE_CHANGED, this._calculateBoundary, this); +this.content.off(n.SCALE_CHANGED, this._calculateBoundary, this); +if (this._view) { +this._view.off(n.POSITION_CHANGED, this._calculateBoundary, this); +this._view.off(n.SCALE_CHANGED, this._calculateBoundary, this); +this._view.off(n.SIZE_CHANGED, this._calculateBoundary, this); +} +} +this._hideScrollbar(); +this.stopAutoScroll(); +}, +onEnable: function() { +this._registerEvent(); +if (this.content) { +this.content.on(n.SIZE_CHANGED, this._calculateBoundary, this); +this.content.on(n.SCALE_CHANGED, this._calculateBoundary, this); +if (this._view) { +this._view.on(n.POSITION_CHANGED, this._calculateBoundary, this); +this._view.on(n.SCALE_CHANGED, this._calculateBoundary, this); +this._view.on(n.SIZE_CHANGED, this._calculateBoundary, this); +} +} +this._updateScrollBarState(); +}, +update: function(t) { +this._autoScrolling && this._processAutoScrolling(t); +} +}); +cc.ScrollView = e.exports = c; +}), { +"../CCNode": 52, +"./CCViewGroup": 116 +} ], +110: [ (function(t, e, i) { +"use strict"; +var n = t("../utils/misc"), r = t("./CCComponent"), s = cc.Enum({ +Horizontal: 0, +Vertical: 1 +}), o = cc.Class({ +name: "cc.Slider", +extends: r, +editor: !1, +ctor: function() { +this._offset = cc.v2(); +this._touchHandle = !1; +this._dragging = !1; +}, +properties: { +handle: { +default: null, +type: cc.Button, +tooltip: !1, +notify: function() { +0; +} +}, +direction: { +default: s.Horizontal, +type: s, +tooltip: !1 +}, +progress: { +default: .5, +type: cc.Float, +range: [ 0, 1, .1 ], +slide: !0, +tooltip: !1, +notify: function() { +this._updateHandlePosition(); +} +}, +slideEvents: { +default: [], +type: cc.Component.EventHandler, +tooltip: !1 +} +}, +statics: { +Direction: s +}, +__preload: function() { +this._updateHandlePosition(); +}, +onEnable: function() { +this.node.on(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this); +this.node.on(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this); +this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); +this.node.on(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancelled, this); +if (this.handle && this.handle.isValid) { +this.handle.node.on(cc.Node.EventType.TOUCH_START, this._onHandleDragStart, this); +this.handle.node.on(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this); +this.handle.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); +} +}, +onDisable: function() { +this.node.off(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this); +this.node.off(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this); +this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); +this.node.off(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancelled, this); +if (this.handle && this.handle.isValid) { +this.handle.node.off(cc.Node.EventType.TOUCH_START, this._onHandleDragStart, this); +this.handle.node.off(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this); +this.handle.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); +} +}, +_onHandleDragStart: function(t) { +this._dragging = !0; +this._touchHandle = !0; +this._offset = this.handle.node.convertToNodeSpaceAR(t.touch.getLocation()); +t.stopPropagation(); +}, +_onTouchBegan: function(t) { +if (this.handle) { +this._dragging = !0; +this._touchHandle || this._handleSliderLogic(t.touch); +t.stopPropagation(); +} +}, +_onTouchMoved: function(t) { +if (this._dragging) { +this._handleSliderLogic(t.touch); +t.stopPropagation(); +} +}, +_onTouchEnded: function(t) { +this._dragging = !1; +this._touchHandle = !1; +this._offset = cc.v2(); +t.stopPropagation(); +}, +_onTouchCancelled: function(t) { +this._dragging = !1; +t.stopPropagation(); +}, +_handleSliderLogic: function(t) { +this._updateProgress(t); +this._emitSlideEvent(); +}, +_emitSlideEvent: function() { +cc.Component.EventHandler.emitEvents(this.slideEvents, this); +this.node.emit("slide", this); +}, +_updateProgress: function(t) { +if (this.handle) { +var e = this.node, i = e.convertToNodeSpaceAR(t.getLocation()); +this.direction === s.Horizontal ? this.progress = n.clamp01((i.x - this._offset.x + e.anchorX * e.width) / e.width) : this.progress = n.clamp01((i.y - this._offset.y + e.anchorY * e.height) / e.height); +} +}, +_updateHandlePosition: function() { +if (this.handle) { +var t; +t = this.direction === s.Horizontal ? cc.v2(-this.node.width * this.node.anchorX + this.progress * this.node.width, 0) : cc.v2(0, -this.node.height * this.node.anchorY + this.progress * this.node.height); +var e = this.node.convertToWorldSpaceAR(t); +this.handle.node.position = this.handle.node.parent.convertToNodeSpaceAR(e); +} +} +}); +cc.Slider = e.exports = o; +}), { +"../utils/misc": 297, +"./CCComponent": 95 +} ], +111: [ (function(t, e, i) { +"use strict"; +var n = t("../utils/misc"), r = t("../CCNode").EventType, s = t("./CCRenderComponent"), o = t("../renderer/render-flow"), a = t("../utils/blend-func"), c = t("../assets/material/CCMaterial"), l = cc.Enum({ +SIMPLE: 0, +SLICED: 1, +TILED: 2, +FILLED: 3, +MESH: 4 +}), h = cc.Enum({ +HORIZONTAL: 0, +VERTICAL: 1, +RADIAL: 2 +}), u = cc.Enum({ +CUSTOM: 0, +TRIMMED: 1, +RAW: 2 +}), _ = cc.Enum({ +NORMAL: 0, +GRAY: 1 +}), f = cc.Class({ +name: "cc.Sprite", +extends: s, +mixins: [ a ], +editor: !1, +properties: { +_spriteFrame: { +default: null, +type: cc.SpriteFrame +}, +_type: l.SIMPLE, +_sizeMode: u.TRIMMED, +_fillType: 0, +_fillCenter: cc.v2(0, 0), +_fillStart: 0, +_fillRange: 0, +_isTrimmedMode: !0, +_atlas: { +default: null, +type: cc.SpriteAtlas, +tooltip: !1, +editorOnly: !0, +visible: !0, +animatable: !1 +}, +spriteFrame: { +get: function() { +return this._spriteFrame; +}, +set: function(t, e) { +var i = this._spriteFrame; +if (i !== t) { +this._spriteFrame = t; +this.markForUpdateRenderData(!1); +this._applySpriteFrame(i); +0; +} +}, +type: cc.SpriteFrame +}, +type: { +get: function() { +return this._type; +}, +set: function(t) { +if (this._type !== t) { +this.destroyRenderData(this._renderData); +this._renderData = null; +this._type = t; +this._updateAssembler(); +} +}, +type: l, +animatable: !1, +tooltip: !1 +}, +fillType: { +get: function() { +return this._fillType; +}, +set: function(t) { +if (t !== this._fillType) { +if (t === h.RADIAL || this._fillType === h.RADIAL) { +this.destroyRenderData(this._renderData); +this._renderData = null; +} else this._renderData && this.markForUpdateRenderData(!0); +this._fillType = t; +this._updateAssembler(); +} +}, +type: h, +tooltip: !1 +}, +fillCenter: { +get: function() { +return this._fillCenter; +}, +set: function(t) { +this._fillCenter.x = t.x; +this._fillCenter.y = t.y; +this._type === l.FILLED && this._renderData && this.markForUpdateRenderData(!0); +}, +tooltip: !1 +}, +fillStart: { +get: function() { +return this._fillStart; +}, +set: function(t) { +this._fillStart = n.clampf(t, -1, 1); +this._type === l.FILLED && this._renderData && this.markForUpdateRenderData(!0); +}, +tooltip: !1 +}, +fillRange: { +get: function() { +return this._fillRange; +}, +set: function(t) { +this._fillRange = n.clampf(t, -1, 1); +this._type === l.FILLED && this._renderData && this.markForUpdateRenderData(!0); +}, +tooltip: !1 +}, +trim: { +get: function() { +return this._isTrimmedMode; +}, +set: function(t) { +if (this._isTrimmedMode !== t) { +this._isTrimmedMode = t; +this._type !== l.SIMPLE && this._type !== l.MESH || !this._renderData || this.markForUpdateRenderData(!0); +} +}, +animatable: !1, +tooltip: !1 +}, +sizeMode: { +get: function() { +return this._sizeMode; +}, +set: function(t) { +this._sizeMode = t; +t !== u.CUSTOM && this._applySpriteSize(); +}, +animatable: !1, +type: u, +tooltip: !1 +} +}, +statics: { +FillType: h, +Type: l, +SizeMode: u, +State: _ +}, +setVisible: function(t) { +this.enabled = t; +}, +setState: function() {}, +getState: function() {}, +onEnable: function() { +this._super(); +if (!this._spriteFrame || !this._spriteFrame.textureLoaded()) { +this.disableRender(); +if (this._spriteFrame) { +this._spriteFrame.once("load", this._onTextureLoaded, this); +this._spriteFrame.ensureLoadTexture(); +} +} +this._updateAssembler(); +this._activateMaterial(); +this.node.on(r.SIZE_CHANGED, this._onNodeSizeDirty, this); +this.node.on(r.ANCHOR_CHANGED, this._onNodeSizeDirty, this); +}, +onDisable: function() { +this._super(); +this.node.off(r.SIZE_CHANGED, this._onNodeSizeDirty, this); +this.node.off(r.ANCHOR_CHANGED, this._onNodeSizeDirty, this); +}, +_onNodeSizeDirty: function() { +this._renderData && this.markForUpdateRenderData(!0); +}, +_on3DNodeChanged: function() { +this._updateAssembler(); +}, +_updateAssembler: function() { +var t = f._assembler.getAssembler(this); +if (this._assembler !== t) { +this._assembler = t; +this._renderData = null; +} +if (!this._renderData) { +this._renderData = this._assembler.createData(this); +this.markForUpdateRenderData(!0); +} +}, +_activateMaterial: function() { +if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { +var t = this._spriteFrame; +if (t && t.textureLoaded()) { +var e = this.sharedMaterials[0]; +(e = e ? c.getInstantiatedMaterial(e, this) : c.getInstantiatedBuiltinMaterial("2d-sprite", this)).setProperty("texture", t.getTexture()); +this.setMaterial(0, e); +this.markForRender(!0); +} else this.disableRender(); +} else { +this.markForUpdateRenderData(!0); +this.markForRender(!0); +} +}, +_applyAtlas: !1, +_canRender: function() { +if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) { +if (!this._enabled) return !1; +} else if (!this._enabled || !this.sharedMaterials[0] || !this.node._activeInHierarchy) return !1; +var t = this._spriteFrame; +return !(!t || !t.textureLoaded()); +}, +markForUpdateRenderData: function(t) { +if (t && this._canRender()) { +this.node._renderFlag |= o.FLAG_UPDATE_RENDER_DATA; +var e = this._renderData; +if (e) { +e.uvDirty = !0; +e.vertDirty = !0; +} +} else t || (this.node._renderFlag &= ~o.FLAG_UPDATE_RENDER_DATA); +}, +_applySpriteSize: function() { +if (this._spriteFrame) { +if (u.RAW === this._sizeMode) { +var t = this._spriteFrame.getOriginalSize(); +this.node.setContentSize(t); +} else if (u.TRIMMED === this._sizeMode) { +var e = this._spriteFrame.getRect(); +this.node.setContentSize(e.width, e.height); +} +this._activateMaterial(); +} +}, +_onTextureLoaded: function() { +this.isValid && this._applySpriteSize(); +}, +_applySpriteFrame: function(t) { +t && t.off && t.off("load", this._onTextureLoaded, this); +var e = this._spriteFrame, i = this.sharedMaterials[0]; +e && (i && i._texture) === (e && e._texture) || this.markForRender(!1); +if (e) if (t && e._texture === t._texture) this._applySpriteSize(); else if (e.textureLoaded()) this._onTextureLoaded(null); else { +e.once("load", this._onTextureLoaded, this); +e.ensureLoadTexture(); +} +0; +}, +_resized: !1 +}); +0; +cc.Sprite = e.exports = f; +}), { +"../CCNode": 52, +"../assets/material/CCMaterial": 75, +"../renderer/render-flow": 245, +"../utils/blend-func": 289, +"../utils/misc": 297, +"./CCRenderComponent": 106 +} ], +112: [ (function(t, e, i) { +"use strict"; +var n = cc.Enum({ +NONE: 0, +CHECKBOX: 1, +TEXT_ATLAS: 2, +SLIDER_BAR: 3, +LIST_VIEW: 4, +PAGE_VIEW: 5 +}), r = cc.Enum({ +VERTICAL: 0, +HORIZONTAL: 1 +}), s = cc.Enum({ +TOP: 0, +CENTER: 1, +BOTTOM: 2 +}), o = cc.Enum({ +LEFT: 0, +CENTER: 1, +RIGHT: 2 +}), a = cc.Class({ +name: "cc.StudioComponent", +extends: cc.Component, +editor: !1, +properties: !1, +statics: { +ComponentType: n, +ListDirection: r, +VerticalAlign: s, +HorizontalAlign: o +} +}), c = t("../utils/prefab-helper"); +a.PlaceHolder = cc.Class({ +name: "cc.StudioComponent.PlaceHolder", +extends: cc.Component, +properties: { +_baseUrl: "", +nestedPrefab: cc.Prefab +}, +onLoad: function() { +this.nestedPrefab && this._replaceWithNestedPrefab(); +}, +_replaceWithNestedPrefab: function() { +var t = this.node, e = t._prefab; +e.root = t; +e.asset = this.nestedPrefab; +c.syncWithPrefab(t); +} +}); +cc.StudioComponent = e.exports = a; +var l = cc.Class({ +name: "cc.StudioWidget", +extends: cc.Widget, +editor: !1, +_validateTargetInDEV: function() {} +}); +cc.StudioWidget = e.exports = l; +}), { +"../utils/prefab-helper": 299 +} ], +113: [ (function(t, e, i) { +"use strict"; +var n = t("../utils/gray-sprite-state"), r = cc.Class({ +name: "cc.Toggle", +extends: t("./CCButton"), +mixins: [ n ], +editor: !1, +properties: { +_N$isChecked: !0, +isChecked: { +get: function() { +return this._N$isChecked; +}, +set: function(t) { +if (t !== this._N$isChecked) { +var e = this.toggleGroup || this._toggleContainer; +if (!(e && e.enabled && this._N$isChecked) || e.allowSwitchOff) { +this._N$isChecked = t; +this._updateCheckMark(); +e && e.enabled && e.updateToggles(this); +this._emitToggleEvents(); +} +} +}, +tooltip: !1 +}, +toggleGroup: { +default: null, +tooltip: !1, +type: t("./CCToggleGroup") +}, +checkMark: { +default: null, +type: cc.Sprite, +tooltip: !1 +}, +checkEvents: { +default: [], +type: cc.Component.EventHandler +}, +_resizeToTarget: { +animatable: !1, +set: function(t) { +t && this._resizeNodeToTargetNode(); +} +} +}, +onEnable: function() { +this._super(); +this._registerToggleEvent(); +this.toggleGroup && this.toggleGroup.enabledInHierarchy && this.toggleGroup.addToggle(this); +}, +onDisable: function() { +this._super(); +this._unregisterToggleEvent(); +this.toggleGroup && this.toggleGroup.enabledInHierarchy && this.toggleGroup.removeToggle(this); +}, +_hideCheckMark: function() { +this._N$isChecked = !1; +this._updateCheckMark(); +}, +toggle: function(t) { +this.isChecked = !this.isChecked; +}, +check: function() { +this.isChecked = !0; +}, +uncheck: function() { +this.isChecked = !1; +}, +_updateCheckMark: function() { +this.checkMark && (this.checkMark.node.active = !!this.isChecked); +}, +_updateDisabledState: function() { +this._super(); +if (this.enableAutoGrayEffect && this.checkMark) { +var t = !this.interactable; +this._switchGrayMaterial(t, this.checkMark); +} +}, +_registerToggleEvent: function() { +this.node.on("click", this.toggle, this); +}, +_unregisterToggleEvent: function() { +this.node.off("click", this.toggle, this); +}, +_emitToggleEvents: function() { +this.node.emit("toggle", this); +this.checkEvents && cc.Component.EventHandler.emitEvents(this.checkEvents, this); +} +}); +cc.Toggle = e.exports = r; +t("../platform/js").get(r.prototype, "_toggleContainer", (function() { +var t = this.node.parent; +return cc.Node.isNode(t) ? t.getComponent(cc.ToggleContainer) : null; +})); +}), { +"../platform/js": 221, +"../utils/gray-sprite-state": 292, +"./CCButton": 93, +"./CCToggleGroup": 115 +} ], +114: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.ToggleContainer", +extends: cc.Component, +editor: !1, +properties: { +allowSwitchOff: { +tooltip: !1, +default: !1 +}, +checkEvents: { +default: [], +type: cc.Component.EventHandler +} +}, +updateToggles: function(t) { +if (this.enabledInHierarchy && t.isChecked) { +this.toggleItems.forEach((function(e) { +e !== t && e.isChecked && e.enabled && e._hideCheckMark(); +})); +this.checkEvents && cc.Component.EventHandler.emitEvents(this.checkEvents, t); +} +}, +_allowOnlyOneToggleChecked: function() { +var t = !1; +this.toggleItems.forEach((function(e) { +t ? e._hideCheckMark() : e.isChecked && (t = !0); +})); +return t; +}, +_makeAtLeastOneToggleChecked: function() { +if (!this._allowOnlyOneToggleChecked() && !this.allowSwitchOff) { +var t = this.toggleItems; +t.length > 0 && t[0].check(); +} +}, +onEnable: function() { +this.node.on("child-added", this._allowOnlyOneToggleChecked, this); +this.node.on("child-removed", this._makeAtLeastOneToggleChecked, this); +}, +onDisable: function() { +this.node.off("child-added", this._allowOnlyOneToggleChecked, this); +this.node.off("child-removed", this._makeAtLeastOneToggleChecked, this); +}, +start: function() { +this._makeAtLeastOneToggleChecked(); +} +}); +t("../platform/js").get(n.prototype, "toggleItems", (function() { +return this.node.getComponentsInChildren(cc.Toggle); +})); +cc.ToggleContainer = e.exports = n; +}), { +"../platform/js": 221 +} ], +115: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.ToggleGroup", +extends: cc.Component, +ctor: function() { +this._toggleItems = []; +}, +editor: !1, +properties: { +allowSwitchOff: { +tooltip: !1, +default: !1 +}, +toggleItems: { +get: function() { +return this._toggleItems; +} +} +}, +updateToggles: function(t) { +this.enabledInHierarchy && this._toggleItems.forEach((function(e) { +t.isChecked && e !== t && e.isChecked && e.enabled && e._hideCheckMark(); +})); +}, +addToggle: function(t) { +-1 === this._toggleItems.indexOf(t) && this._toggleItems.push(t); +this._allowOnlyOneToggleChecked(); +}, +removeToggle: function(t) { +var e = this._toggleItems.indexOf(t); +e > -1 && this._toggleItems.splice(e, 1); +this._makeAtLeastOneToggleChecked(); +}, +_allowOnlyOneToggleChecked: function() { +var t = !1; +this._toggleItems.forEach((function(e) { +t && e.enabled && e._hideCheckMark(); +e.isChecked && e.enabled && (t = !0); +})); +return t; +}, +_makeAtLeastOneToggleChecked: function() { +this._allowOnlyOneToggleChecked() || this.allowSwitchOff || this._toggleItems.length > 0 && (this._toggleItems[0].isChecked = !0); +}, +start: function() { +this._makeAtLeastOneToggleChecked(); +} +}), r = !1; +t("../platform/js").get(cc, "ToggleGroup", (function() { +if (!r) { +cc.logID(1405, "cc.ToggleGroup", "cc.ToggleContainer"); +r = !0; +} +return n; +})); +e.exports = n; +}), { +"../platform/js": 221 +} ], +116: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.ViewGroup", +extends: t("./CCComponent") +}); +cc.ViewGroup = e.exports = n; +}), { +"./CCComponent": 95 +} ], +117: [ (function(t, e, i) { +"use strict"; +var n = t("../base-ui/CCWidgetManager"), r = n.AlignMode, s = n._AlignFlags, o = s.TOP, a = s.MID, c = s.BOT, l = s.LEFT, h = s.CENTER, u = s.RIGHT, _ = o | c, f = l | u, d = cc.Class({ +name: "cc.Widget", +extends: t("./CCComponent"), +editor: !1, +properties: { +target: { +get: function() { +return this._target; +}, +set: function(t) { +this._target = t; +0; +}, +type: cc.Node, +tooltip: !1 +}, +isAlignTop: { +get: function() { +return (this._alignFlags & o) > 0; +}, +set: function(t) { +this._setAlign(o, t); +}, +animatable: !1, +tooltip: !1 +}, +isAlignVerticalCenter: { +get: function() { +return (this._alignFlags & a) > 0; +}, +set: function(t) { +if (t) { +this.isAlignTop = !1; +this.isAlignBottom = !1; +this._alignFlags |= a; +} else this._alignFlags &= ~a; +}, +animatable: !1, +tooltip: !1 +}, +isAlignBottom: { +get: function() { +return (this._alignFlags & c) > 0; +}, +set: function(t) { +this._setAlign(c, t); +}, +animatable: !1, +tooltip: !1 +}, +isAlignLeft: { +get: function() { +return (this._alignFlags & l) > 0; +}, +set: function(t) { +this._setAlign(l, t); +}, +animatable: !1, +tooltip: !1 +}, +isAlignHorizontalCenter: { +get: function() { +return (this._alignFlags & h) > 0; +}, +set: function(t) { +if (t) { +this.isAlignLeft = !1; +this.isAlignRight = !1; +this._alignFlags |= h; +} else this._alignFlags &= ~h; +}, +animatable: !1, +tooltip: !1 +}, +isAlignRight: { +get: function() { +return (this._alignFlags & u) > 0; +}, +set: function(t) { +this._setAlign(u, t); +}, +animatable: !1, +tooltip: !1 +}, +isStretchWidth: { +get: function() { +return (this._alignFlags & f) === f; +}, +visible: !1 +}, +isStretchHeight: { +get: function() { +return (this._alignFlags & _) === _; +}, +visible: !1 +}, +top: { +get: function() { +return this._top; +}, +set: function(t) { +this._top = t; +}, +tooltip: !1 +}, +bottom: { +get: function() { +return this._bottom; +}, +set: function(t) { +this._bottom = t; +}, +tooltip: !1 +}, +left: { +get: function() { +return this._left; +}, +set: function(t) { +this._left = t; +}, +tooltip: !1 +}, +right: { +get: function() { +return this._right; +}, +set: function(t) { +this._right = t; +}, +tooltip: !1 +}, +horizontalCenter: { +get: function() { +return this._horizontalCenter; +}, +set: function(t) { +this._horizontalCenter = t; +}, +tooltip: !1 +}, +verticalCenter: { +get: function() { +return this._verticalCenter; +}, +set: function(t) { +this._verticalCenter = t; +}, +tooltip: !1 +}, +isAbsoluteHorizontalCenter: { +get: function() { +return this._isAbsHorizontalCenter; +}, +set: function(t) { +this._isAbsHorizontalCenter = t; +}, +animatable: !1 +}, +isAbsoluteVerticalCenter: { +get: function() { +return this._isAbsVerticalCenter; +}, +set: function(t) { +this._isAbsVerticalCenter = t; +}, +animatable: !1 +}, +isAbsoluteTop: { +get: function() { +return this._isAbsTop; +}, +set: function(t) { +this._isAbsTop = t; +}, +animatable: !1 +}, +isAbsoluteBottom: { +get: function() { +return this._isAbsBottom; +}, +set: function(t) { +this._isAbsBottom = t; +}, +animatable: !1 +}, +isAbsoluteLeft: { +get: function() { +return this._isAbsLeft; +}, +set: function(t) { +this._isAbsLeft = t; +}, +animatable: !1 +}, +isAbsoluteRight: { +get: function() { +return this._isAbsRight; +}, +set: function(t) { +this._isAbsRight = t; +}, +animatable: !1 +}, +alignMode: { +default: r.ON_WINDOW_RESIZE, +type: r, +tooltip: !1 +}, +_wasAlignOnce: { +default: void 0, +formerlySerializedAs: "isAlignOnce" +}, +_target: null, +_alignFlags: 0, +_left: 0, +_right: 0, +_top: 0, +_bottom: 0, +_verticalCenter: 0, +_horizontalCenter: 0, +_isAbsLeft: !0, +_isAbsRight: !0, +_isAbsTop: !0, +_isAbsBottom: !0, +_isAbsHorizontalCenter: !0, +_isAbsVerticalCenter: !0, +_originalWidth: 0, +_originalHeight: 0 +}, +statics: { +AlignMode: r +}, +onLoad: function() { +if (void 0 !== this._wasAlignOnce) { +this.alignMode = this._wasAlignOnce ? r.ONCE : r.ALWAYS; +this._wasAlignOnce = void 0; +} +}, +onEnable: function() { +n.add(this); +}, +onDisable: function() { +n.remove(this); +}, +_validateTargetInDEV: !1, +_setAlign: function(t, e) { +if (e !== (this._alignFlags & t) > 0) { +var i = (t & f) > 0; +if (e) { +this._alignFlags |= t; +if (i) { +this.isAlignHorizontalCenter = !1; +if (this.isStretchWidth) { +this._originalWidth = this.node.width; +0; +} +} else { +this.isAlignVerticalCenter = !1; +if (this.isStretchHeight) { +this._originalHeight = this.node.height; +0; +} +} +0; +} else { +i ? this.isStretchWidth && (this.node.width = this._originalWidth) : this.isStretchHeight && (this.node.height = this._originalHeight); +this._alignFlags &= ~t; +} +} +}, +updateAlignment: function() { +n.updateAlignment(this.node); +} +}); +Object.defineProperty(d.prototype, "isAlignOnce", { +get: function() { +0; +return this.alignMode === r.ONCE; +}, +set: function(t) { +0; +this.alignMode = t ? r.ONCE : r.ALWAYS; +} +}); +cc.Widget = e.exports = d; +}), { +"../base-ui/CCWidgetManager": 79, +"./CCComponent": 95 +} ], +118: [ (function(t, e, i) { +"use strict"; +var n = t("./CCComponent"), r = void 0; +r = cc.sys.platform === cc.sys.BAIDU_GAME ? cc.Class({ +name: "cc.SwanSubContextView", +extends: n, +editor: !1, +properties: { +_fps: 60, +fps: { +get: function() { +return this._fps; +}, +set: function(t) { +if (this._fps !== t) { +this._fps = t; +this._updateInterval = 1 / t; +this._updateSubContextFrameRate(); +} +}, +tooltip: !1 +} +}, +ctor: function() { +this._sprite = null; +this._tex = new cc.Texture2D(); +this._context = null; +this._updatedTime = performance.now(); +this._updateInterval = 0; +}, +onLoad: function() { +if (swan.getOpenDataContext) { +this._updateInterval = 1e3 / this._fps; +this._context = swan.getOpenDataContext(); +var t = this._context.canvas; +if (t) { +t.width = this.node.width; +t.height = this.node.height; +} +this._tex.setPremultiplyAlpha(!0); +this._tex.initWithElement(t); +this._sprite = this.node.getComponent(cc.Sprite); +if (!this._sprite) { +this._sprite = this.node.addComponent(cc.Sprite); +this._sprite.srcBlendFactor = cc.macro.BlendFactor.ONE; +} +this._sprite.spriteFrame = new cc.SpriteFrame(this._tex); +} else this.enabled = !1; +}, +onEnable: function() { +this._runSubContextMainLoop(); +this._registerNodeEvent(); +this._updateSubContextFrameRate(); +this.updateSubContextViewport(); +}, +onDisable: function() { +this._unregisterNodeEvent(); +this._stopSubContextMainLoop(); +}, +update: function(t) { +if (void 0 === t) { +this._context && this._context.postMessage({ +fromEngine: !0, +event: "step" +}); +this._updateSubContextTexture(); +} else { +if (performance.now() - this._updatedTime >= this._updateInterval) { +this._updatedTime += this._updateInterval; +this._updateSubContextTexture(); +} +} +}, +_updateSubContextTexture: function() { +if (this._tex && this._context) { +this._tex.initWithElement(this._context.canvas); +this._sprite._activateMaterial(); +} +}, +updateSubContextViewport: function() { +if (this._context) { +var t = this.node.getBoundingBoxToWorld(), e = cc.view._scaleX, i = cc.view._scaleY; +this._context.postMessage({ +fromEngine: !0, +event: "viewport", +x: t.x * e + cc.view._viewportRect.x, +y: t.y * i + cc.view._viewportRect.y, +width: t.width * e, +height: t.height * i +}); +} +}, +_registerNodeEvent: function() { +this.node.on("position-changed", this.updateSubContextViewport, this); +this.node.on("scale-changed", this.updateSubContextViewport, this); +this.node.on("size-changed", this.updateSubContextViewport, this); +}, +_unregisterNodeEvent: function() { +this.node.off("position-changed", this.updateSubContextViewport, this); +this.node.off("scale-changed", this.updateSubContextViewport, this); +this.node.off("size-changed", this.updateSubContextViewport, this); +}, +_runSubContextMainLoop: function() { +this._context && this._context.postMessage({ +fromEngine: !0, +event: "mainLoop", +value: !0 +}); +}, +_stopSubContextMainLoop: function() { +this._context && this._context.postMessage({ +fromEngine: !0, +event: "mainLoop", +value: !1 +}); +}, +_updateSubContextFrameRate: function() { +this._context && this._context.postMessage({ +fromEngine: !0, +event: "frameRate", +value: this._fps +}); +} +}) : cc.Class({ +name: "cc.SwanSubContextView", +extends: n +}); +cc.SwanSubContextView = e.exports = r; +}), { +"./CCComponent": 95 +} ], +119: [ (function(t, e, i) { +"use strict"; +var n = t("./CCComponent"), r = void 0; +r = cc.Class({ +name: "cc.WXSubContextView", +extends: n +}); +cc.WXSubContextView = e.exports = r; +}), { +"./CCComponent": 95 +} ], +120: [ (function(t, e, i) { +"use strict"; +var n = t("../../platform/CCMacro"), r = t("./EditBoxImplBase"), s = t("../CCLabel"), o = t("./types"), a = o.InputMode, c = o.InputFlag, l = o.KeyboardReturnType; +function h(t) { +return t.replace(/(?:^|\s)\S/g, (function(t) { +return t.toUpperCase(); +})); +} +function u(t) { +return t.charAt(0).toUpperCase() + t.slice(1); +} +var _ = cc.Class({ +name: "cc.EditBox", +extends: cc.Component, +editor: !1, +properties: { +_useOriginalSize: !0, +_string: "", +string: { +tooltip: !1, +get: function() { +return this._string; +}, +set: function(t) { +t = "" + t; +this.maxLength >= 0 && t.length >= this.maxLength && (t = t.slice(0, this.maxLength)); +this._string = t; +this._updateString(t); +} +}, +textLabel: { +tooltip: !1, +default: null, +type: s, +notify: function(t) { +if (this.textLabel && this.textLabel !== t) { +this._updateTextLabel(); +this._updateLabels(); +} +} +}, +placeholderLabel: { +tooltip: !1, +default: null, +type: s, +notify: function(t) { +if (this.placeholderLabel && this.placeholderLabel !== t) { +this._updatePlaceholderLabel(); +this._updateLabels(); +} +} +}, +background: { +tooltip: !1, +default: null, +type: cc.Sprite, +notify: function(t) { +this.background && this.background !== t && this._updateBackgroundSprite(); +} +}, +_N$backgroundImage: { +default: void 0, +type: cc.SpriteFrame +}, +backgroundImage: { +get: function() { +return this.background ? this.background.spriteFrame : null; +}, +set: function(t) { +this.background && (this.background.spriteFrame = t); +} +}, +returnType: { +default: l.DEFAULT, +tooltip: !1, +displayName: "KeyboardReturnType", +type: l +}, +_N$returnType: { +default: void 0, +type: cc.Float +}, +inputFlag: { +tooltip: !1, +default: c.DEFAULT, +type: c, +notify: function() { +this._updateString(this._string); +} +}, +inputMode: { +tooltip: !1, +default: a.ANY, +type: a, +notify: function(t) { +if (this.inputMode !== t) { +this._updateTextLabel(); +this._updatePlaceholderLabel(); +} +} +}, +fontSize: { +get: function() { +return this.textLabel ? this.textLabel.fontSize : null; +}, +set: function(t) { +this.textLabel && (this.textLabel.fontSize = t); +} +}, +_N$fontSize: { +default: void 0, +type: cc.Float +}, +lineHeight: { +get: function() { +return this.textLabel ? this.textLabel.lineHeight : null; +}, +set: function(t) { +this.textLabel && (this.textLabel.lineHeight = t); +} +}, +_N$lineHeight: { +default: void 0, +type: cc.Float +}, +fontColor: { +get: function() { +return this.textLabel ? this.textLabel.node.color : null; +}, +set: function(t) { +if (this.textLabel) { +this.textLabel.node.color = t; +this.textLabel.node.opacity = t.a; +} +} +}, +_N$fontColor: void 0, +placeholder: { +tooltip: !1, +get: function() { +return this.placeholderLabel ? this.placeholderLabel.string : ""; +}, +set: function(t) { +this.placeholderLabel && (this.placeholderLabel.string = t); +} +}, +_N$placeholder: { +default: void 0, +type: cc.String +}, +placeholderFontSize: { +get: function() { +return this.placeholderLabel ? this.placeholderLabel.fontSize : null; +}, +set: function(t) { +this.placeholderLabel && (this.placeholderLabel.fontSize = t); +} +}, +_N$placeholderFontSize: { +default: void 0, +type: cc.Float +}, +placeholderFontColor: { +get: function() { +return this.placeholderLabel ? this.placeholderLabel.node.color : null; +}, +set: function(t) { +if (this.placeholderLabel) { +this.placeholderLabel.node.color = t; +this.placeholderLabel.node.opacity = t.a; +} +} +}, +_N$placeholderFontColor: void 0, +maxLength: { +tooltip: !1, +default: 20 +}, +_N$maxLength: { +default: void 0, +type: cc.Float +}, +stayOnTop: { +default: !1, +notify: function() { +cc.warn("editBox.stayOnTop is removed since v2.1."); +} +}, +_tabIndex: 0, +tabIndex: { +tooltip: !1, +get: function() { +return this._tabIndex; +}, +set: function(t) { +if (this._tabIndex !== t) { +this._tabIndex = t; +this._impl && this._impl.setTabIndex(t); +} +} +}, +editingDidBegan: { +default: [], +type: cc.Component.EventHandler +}, +textChanged: { +default: [], +type: cc.Component.EventHandler +}, +editingDidEnded: { +default: [], +type: cc.Component.EventHandler +}, +editingReturn: { +default: [], +type: cc.Component.EventHandler +} +}, +statics: { +_ImplClass: r, +KeyboardReturnType: l, +InputFlag: c, +InputMode: a +}, +_init: function() { +this._upgradeComp(); +this._isLabelVisible = !0; +this.node.on(cc.Node.EventType.SIZE_CHANGED, this._syncSize, this); +(this._impl = new _._ImplClass()).init(this); +this._updateString(this._string); +this._syncSize(); +}, +_updateBackgroundSprite: function() { +var t = this.background; +if (!t) { +var e = this.node.getChildByName("BACKGROUND_SPRITE"); +e || (e = new cc.Node("BACKGROUND_SPRITE")); +(t = e.getComponent(cc.Sprite)) || (t = e.addComponent(cc.Sprite)); +e.parent = this.node; +this.background = t; +} +t.type = cc.Sprite.Type.SLICED; +if (void 0 !== this._N$backgroundImage) { +t.spriteFrame = this._N$backgroundImage; +this._N$backgroundImage = void 0; +} +}, +_updateTextLabel: function() { +var t = this.textLabel; +if (!t) { +var e = this.node.getChildByName("TEXT_LABEL"); +e || (e = new cc.Node("TEXT_LABEL")); +(t = e.getComponent(s)) || (t = e.addComponent(s)); +e.parent = this.node; +this.textLabel = t; +} +t.node.setAnchorPoint(0, 1); +t.overflow = s.Overflow.CLAMP; +if (this.inputMode === a.ANY) { +t.verticalAlign = n.VerticalTextAlignment.TOP; +t.enableWrapText = !0; +} else { +t.verticalAlign = n.VerticalTextAlignment.CENTER; +t.enableWrapText = !1; +} +t.string = this._updateLabelStringStyle(this._string); +if (void 0 !== this._N$fontColor) { +t.node.color = this._N$fontColor; +t.node.opacity = this._N$fontColor.a; +this._N$fontColor = void 0; +} +if (void 0 !== this._N$fontSize) { +t.fontSize = this._N$fontSize; +this._N$fontSize = void 0; +} +if (void 0 !== this._N$lineHeight) { +t.lineHeight = this._N$lineHeight; +this._N$lineHeight = void 0; +} +}, +_updatePlaceholderLabel: function() { +var t = this.placeholderLabel; +if (!t) { +var e = this.node.getChildByName("PLACEHOLDER_LABEL"); +e || (e = new cc.Node("PLACEHOLDER_LABEL")); +(t = e.getComponent(s)) || (t = e.addComponent(s)); +e.parent = this.node; +this.placeholderLabel = t; +} +t.node.setAnchorPoint(0, 1); +t.overflow = s.Overflow.CLAMP; +if (this.inputMode === a.ANY) { +t.verticalAlign = n.VerticalTextAlignment.TOP; +t.enableWrapText = !0; +} else { +t.verticalAlign = n.VerticalTextAlignment.CENTER; +t.enableWrapText = !1; +} +t.string = this.placeholder; +if (void 0 !== this._N$placeholderFontColor) { +t.node.color = this._N$placeholderFontColor; +t.node.opacity = this._N$placeholderFontColor.a; +this._N$placeholderFontColor = void 0; +} +if (void 0 !== this._N$placeholderFontSize) { +t.fontSize = this._N$placeholderFontSize; +this._N$placeholderFontSize = void 0; +} +}, +_upgradeComp: function() { +if (void 0 !== this._N$returnType) { +this.returnType = this._N$returnType; +this._N$returnType = void 0; +} +if (void 0 !== this._N$maxLength) { +this.maxLength = this._N$maxLength; +this._N$maxLength = void 0; +} +void 0 !== this._N$backgroundImage && this._updateBackgroundSprite(); +void 0 === this._N$fontColor && void 0 === this._N$fontSize && void 0 === this._N$lineHeight || this._updateTextLabel(); +void 0 === this._N$placeholderFontColor && void 0 === this._N$placeholderFontSize || this._updatePlaceholderLabel(); +if (void 0 !== this._N$placeholder) { +this.placeholder = this._N$placeholder; +this._N$placeholder = void 0; +} +}, +_syncSize: function() { +if (this._impl) { +var t = this.node.getContentSize(); +this._impl.setSize(t.width, t.height); +} +}, +_showLabels: function() { +this._isLabelVisible = !0; +this._updateLabels(); +}, +_hideLabels: function() { +this._isLabelVisible = !1; +this.textLabel && (this.textLabel.node.active = !1); +this.placeholderLabel && (this.placeholderLabel.node.active = !1); +}, +_updateLabels: function() { +if (this._isLabelVisible) { +var t = this._string; +this.textLabel && (this.textLabel.node.active = "" !== t); +this.placeholderLabel && (this.placeholderLabel.node.active = "" === t); +} +}, +_updateString: function(t) { +var e = this.textLabel; +if (e) { +var i = t; +i && (i = this._updateLabelStringStyle(i)); +e.string = i; +this._updateLabels(); +} +}, +_updateLabelStringStyle: function(t, e) { +var i = this.inputFlag; +if (e || i !== c.PASSWORD) i === c.INITIAL_CAPS_ALL_CHARACTERS ? t = t.toUpperCase() : i === c.INITIAL_CAPS_WORD ? t = h(t) : i === c.INITIAL_CAPS_SENTENCE && (t = u(t)); else { +for (var n = "", r = t.length, s = 0; s < r; ++s) n += "●"; +t = n; +} +return t; +}, +editBoxEditingDidBegan: function() { +cc.Component.EventHandler.emitEvents(this.editingDidBegan, this); +this.node.emit("editing-did-began", this); +}, +editBoxEditingDidEnded: function() { +cc.Component.EventHandler.emitEvents(this.editingDidEnded, this); +this.node.emit("editing-did-ended", this); +}, +editBoxTextChanged: function(t) { +t = this._updateLabelStringStyle(t, !0); +this.string = t; +cc.Component.EventHandler.emitEvents(this.textChanged, t, this); +this.node.emit("text-changed", this); +}, +editBoxEditingReturn: function() { +cc.Component.EventHandler.emitEvents(this.editingReturn, this); +this.node.emit("editing-return", this); +}, +onEnable: function() { +this._registerEvent(); +this._impl && this._impl.enable(); +}, +onDisable: function() { +this._unregisterEvent(); +this._impl && this._impl.disable(); +}, +onDestroy: function() { +this._impl && this._impl.clear(); +}, +__preload: function() { +this._init(); +}, +_registerEvent: function() { +this.node.on(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this); +this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); +}, +_unregisterEvent: function() { +this.node.off(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this); +this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); +}, +_onTouchBegan: function(t) { +t.stopPropagation(); +}, +_onTouchCancel: function(t) { +t.stopPropagation(); +}, +_onTouchEnded: function(t) { +this._impl && this._impl.beginEditing(); +t.stopPropagation(); +}, +setFocus: function() { +cc.warnID(1400, "setFocus()", "focus()"); +this._impl && this._impl.setFocus(!0); +}, +focus: function() { +this._impl && this._impl.setFocus(!0); +}, +blur: function() { +this._impl && this._impl.setFocus(!1); +}, +isFocused: function() { +return !!this._impl && this._impl.isFocused(); +}, +update: function() { +this._impl && this._impl.update(); +} +}); +cc.EditBox = e.exports = _; +cc.sys.isBrowser && t("./WebEditBoxImpl"); +}), { +"../../platform/CCMacro": 206, +"../CCLabel": 97, +"./EditBoxImplBase": 121, +"./WebEditBoxImpl": 122, +"./types": 124 +} ], +121: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +ctor: function() { +this._delegate = null; +}, +init: function(t) {}, +enable: function() {}, +disable: function() {}, +clear: function() {}, +update: function() {}, +setTabIndex: function(t) {}, +setSize: function(t, e) {}, +setFocus: function(t) {}, +isFocused: function() {}, +beginEditing: function() {}, +endEditing: function() {} +}); +e.exports = n; +}), {} ], +122: [ (function(t, e, i) { +"use strict"; +var n = t("../../platform/utils"), r = t("../../platform/CCMacro"), s = t("./types"), o = t("../CCLabel"), a = t("./tabIndexUtil"), c = cc.EditBox, l = cc.js, h = s.InputMode, u = s.InputFlag, _ = s.KeyboardReturnType, f = cc.vmath, d = { +zoomInvalid: !1 +}; +cc.sys.OS_ANDROID !== cc.sys.os || cc.sys.browserType !== cc.sys.BROWSER_TYPE_SOUGOU && cc.sys.browserType !== cc.sys.BROWSER_TYPE_360 || (d.zoomInvalid = !0); +var m = 0, p = cc.v3(), v = null, y = !1, g = !1; +function x() { +this._domId = "EditBoxId_" + ++m; +this._placeholderStyleSheet = null; +this._elem = null; +this._isTextArea = !1; +this._editing = !1; +this._worldMat = f.mat4.create(); +this._cameraMat = f.mat4.create(); +this._m00 = 0; +this._m01 = 0; +this._m04 = 0; +this._m05 = 0; +this._m12 = 0; +this._m13 = 0; +this._w = 0; +this._h = 0; +this._inputMode = null; +this._inputFlag = null; +this._returnType = null; +this._eventListeners = {}; +this._textLabelFont = null; +this._textLabelFontSize = null; +this._textLabelFontColor = null; +this._textLabelAlign = null; +this._placeholderLabelFont = null; +this._placeholderLabelFontSize = null; +this._placeholderLabelFontColor = null; +this._placeholderLabelAlign = null; +this._placeholderLineHeight = null; +} +l.extend(x, c._ImplClass); +c._ImplClass = x; +Object.assign(x.prototype, { +init: function(t) { +if (t) { +this._delegate = t; +t.inputMode === h.ANY ? this._createTextArea() : this._createInput(); +a.add(this); +this.setTabIndex(t.tabIndex); +this._initStyleSheet(); +this._registerEventListeners(); +this._addDomToGameContainer(); +y = cc.view.isAutoFullScreenEnabled(); +g = cc.view._resizeWithBrowserSize; +} +}, +enable: function() {}, +disable: function() { +this._editing && this._elem.blur(); +}, +clear: function() { +this._removeEventListeners(); +this._removeDomFromGameContainer(); +a.remove(this); +v === this && (v = null); +}, +update: function() { +this._updateMatrix(); +}, +setTabIndex: function(t) { +this._elem.tabIndex = t; +a.resort(); +}, +setSize: function(t, e) { +var i = this._elem; +i.style.width = t + "px"; +i.style.height = e + "px"; +}, +setFocus: function(t) { +t ? this.beginEditing() : this._elem.blur(); +}, +isFocused: function() { +return this._editing; +}, +beginEditing: function() { +v && v !== this && v.setFocus(!1); +this._editing = !0; +v = this; +this._showDom(); +this._elem.focus(); +this._delegate.editBoxEditingDidBegan(); +}, +endEditing: function() {}, +_createInput: function() { +this._isTextArea = !1; +this._elem = document.createElement("input"); +}, +_createTextArea: function() { +this._isTextArea = !0; +this._elem = document.createElement("textarea"); +}, +_addDomToGameContainer: function() { +cc.game.container.appendChild(this._elem); +document.head.appendChild(this._placeholderStyleSheet); +}, +_removeDomFromGameContainer: function() { +n.contains(cc.game.container, this._elem) && cc.game.container.removeChild(this._elem); +n.contains(document.head, this._placeholderStyleSheet) && document.head.removeChild(this._placeholderStyleSheet); +delete this._elem; +delete this._placeholderStyleSheet; +}, +_showDom: function() { +this._updateMaxLength(); +this._updateInputType(); +this._updateStyleSheet(); +this._elem.style.display = ""; +this._delegate._hideLabels(); +cc.sys.isMobile && this._showDomOnMobile(); +}, +_hideDom: function() { +this._elem.style.display = "none"; +this._delegate._showLabels(); +cc.sys.isMobile && this._hideDomOnMobile(); +}, +_showDomOnMobile: function() { +if (cc.sys.os === cc.sys.OS_ANDROID) { +if (y) { +cc.view.enableAutoFullScreen(!1); +cc.screen.exitFullScreen(); +} +g && cc.view.resizeWithBrowserSize(!1); +this._adjustWindowScroll(); +} +}, +_hideDomOnMobile: function() { +cc.sys.os === cc.sys.OS_ANDROID && setTimeout((function() { +if (!v) { +y && cc.view.enableAutoFullScreen(!0); +g && cc.view.resizeWithBrowserSize(!0); +} +}), 800); +this._scrollBackWindow(); +}, +_adjustWindowScroll: function() { +var t = this; +setTimeout((function() { +window.scrollY < 100 && t._elem.scrollIntoView({ +block: "nearest", +inline: "nearest", +behavior: "auto" +}); +}), 800); +}, +_scrollBackWindow: function() { +setTimeout((function() { +var t = cc.sys; +t.browserType !== t.BROWSER_TYPE_WECHAT || t.os !== t.OS_IOS ? t.os !== t.OS_IOS && window.scrollTo(0, 0) : window.top && window.top.scrollTo(0, 0); +}), 800); +}, +_updateMatrix: function() { +var t = this._delegate.node; +t.getWorldMatrix(this._worldMat); +var e = this._worldMat; +if (this.xxforceUpdate || this._m00 !== e.m00 || this._m01 !== e.m01 || this._m04 !== e.m04 || this._m05 !== e.m05 || this._m12 !== e.m12 || this._m13 !== e.m13 || this._w !== t._contentSize.width || this._h !== t._contentSize.height) { +this._m00 = e.m00; +this._m01 = e.m01; +this._m04 = e.m04; +this._m05 = e.m05; +this._m12 = e.m12; +this._m13 = e.m13; +this._w = t._contentSize.width; +this._h = t._contentSize.height; +var i = cc.view._scaleX, n = cc.view._scaleY, r = cc.view._viewportRect, s = cc.view._devicePixelRatio; +p.x = -t._anchorPoint.x * this._w; +p.y = -t._anchorPoint.y * this._h; +f.mat4.translate(e, e, p); +var o = void 0; +cc.Camera.findCamera(t).getWorldToScreenMatrix2D(this._cameraMat); +o = this._cameraMat; +f.mat4.mul(o, o, e); +i /= s; +n /= s; +var a = cc.game.container, c = o.m00 * i, l = o.m01, h = o.m04, u = o.m05 * n, _ = a && a.style.paddingLeft && parseInt(a.style.paddingLeft); +_ += r.x / s + (this.offsetXXX || 0); +var m = a && a.style.paddingBottom && parseInt(a.style.paddingBottom); +m += r.y / s + (this.offsetYYY || 0); +var v = o.m12 * i + _, y = o.m13 * n + m; +if (d.zoomInvalid) { +this.setSize(t.width * c, t.height * u); +c = 1; +u = 1; +} +var g = this._elem, x = "matrix(" + c + "," + -l + "," + -h + "," + u + "," + v + "," + -y + ")"; +g.style.transform = x; +g.style["-webkit-transform"] = x; +g.style["transform-origin"] = "0px 100% 0px"; +g.style["-webkit-transform-origin"] = "0px 100% 0px"; +} +}, +_updateInputType: function() { +var t = this._delegate, e = t.inputMode, i = t.inputFlag, n = t.returnType, r = this._elem; +if (this._inputMode !== e || this._inputFlag !== i || this._returnType !== n) { +this._inputMode = e; +this._inputFlag = i; +this._returnType = n; +if (this._isTextArea) { +var s = "none"; +i === u.INITIAL_CAPS_ALL_CHARACTERS ? s = "uppercase" : i === u.INITIAL_CAPS_WORD && (s = "capitalize"); +r.style.textTransform = s; +} else if (i !== u.PASSWORD) { +var o = r.type; +if (e === h.EMAIL_ADDR) o = "email"; else if (e === h.NUMERIC || e === h.DECIMAL) o = "number"; else if (e === h.PHONE_NUMBER) { +o = "number"; +r.pattern = "[0-9]*"; +} else if (e === h.URL) o = "url"; else { +o = "text"; +n === _.SEARCH && (o = "search"); +} +r.type = o; +var a = "none"; +i === u.INITIAL_CAPS_ALL_CHARACTERS ? a = "uppercase" : i === u.INITIAL_CAPS_WORD && (a = "capitalize"); +r.style.textTransform = a; +} else r.type = "password"; +} +}, +_updateMaxLength: function() { +var t = this._delegate.maxLength; +t < 0 && (t = 65535); +this._elem.maxLength = t; +}, +_initStyleSheet: function() { +var t = this._elem; +t.style.display = "none"; +t.style.border = 0; +t.style.background = "transparent"; +t.style.width = "100%"; +t.style.height = "100%"; +t.style.active = 0; +t.style.outline = "medium"; +t.style.padding = "0"; +t.style.textTransform = "uppercase"; +t.style.position = "absolute"; +t.style.bottom = "0px"; +t.style.left = "2px"; +t.className = "cocosEditBox"; +t.id = this._domId; +if (this._isTextArea) { +t.style.resize = "none"; +t.style.overflow_y = "scroll"; +} else { +t.type = "text"; +t.style["-moz-appearance"] = "textfield"; +} +this._placeholderStyleSheet = document.createElement("style"); +}, +_updateStyleSheet: function() { +var t = this._delegate, e = this._elem; +e.value = t.string; +e.placeholder = ""; +this._updateTextLabel(t.textLabel); +this._updatePlaceholderLabel(t.placeholderLabel); +}, +_updateTextLabel: function(t) { +if (t) { +var e = t.font; +e = !e || e instanceof cc.BitmapFont ? t.fontFamily : e._fontFamily; +var i = t.fontSize * t.node.scaleY; +if (this._textLabelFont !== e || this._textLabelFontSize !== i || this._textLabelFontColor !== t.fontColor || this._textLabelAlign !== t.horizontalAlign) { +this._textLabelFont = e; +this._textLabelFontSize = i; +this._textLabelFontColor = t.fontColor; +this._textLabelAlign = t.horizontalAlign; +var n = this._elem; +n.style.fontSize = i + "px"; +n.style.color = t.node.color.toCSS("rgba"); +n.style.opacity = t.node.opacity.toString(); +cc.sys.OS_ANDROID && cc.sys.isMobile && (t.string = n.value); +n.style.fontFamily = e; +switch (t.horizontalAlign) { +case o.HorizontalAlign.LEFT: +n.style.textAlign = "left"; +break; + +case o.HorizontalAlign.CENTER: +n.style.textAlign = "center"; +break; + +case o.HorizontalAlign.RIGHT: +n.style.textAlign = "right"; +} +"0" == t.node.opacity.toString() && cc.sys.os === cc.sys.OS_IOS && cc.sys.isMobile && (n.style.fontSize = "0px"); +} +} +}, +_updatePlaceholderLabel: function(t) { +if (t) { +var e = t.font; +e = !e || e instanceof cc.BitmapFont ? t.fontFamily : t.font._fontFamily; +var i = t.fontSize * t.node.scaleY; +if (this._placeholderLabelFont !== e || this._placeholderLabelFontSize !== i || this._placeholderLabelFontColor !== t.fontColor || this._placeholderLabelAlign !== t.horizontalAlign || this._placeholderLineHeight !== t.fontSize) { +this._placeholderLabelFont = e; +this._placeholderLabelFontSize = i; +this._placeholderLabelFontColor = t.fontColor; +this._placeholderLabelAlign = t.horizontalAlign; +this._placeholderLineHeight = t.fontSize; +var n = this._placeholderStyleSheet, r = t.node.color.toCSS("rgba"), s = t.fontSize, a = void 0; +switch (t.horizontalAlign) { +case o.HorizontalAlign.LEFT: +a = "left"; +break; + +case o.HorizontalAlign.CENTER: +a = "center"; +break; + +case o.HorizontalAlign.RIGHT: +a = "right"; +} +n.innerHTML = "#" + this._domId + "::-webkit-input-placeholder,#" + this._domId + "::-moz-placeholder,#" + this._domId + ":-ms-input-placeholder{text-transform: initial; font-family: " + e + "; font-size: " + i + "px; color: " + r + "; line-height: " + s + "px; text-align: " + a + ";}"; +cc.sys.browserType === cc.sys.BROWSER_TYPE_EDGE && (n.innerHTML += "#" + this._domId + "::-ms-clear{display: none;}"); +} +} +}, +_registerEventListeners: function() { +var t = this, e = this._elem, i = !1, n = this._eventListeners; +n.compositionStart = function() { +i = !0; +}; +n.compositionEnd = function() { +i = !1; +t._delegate.editBoxTextChanged(e.value); +}; +n.onInput = function() { +i || t._delegate.editBoxTextChanged(e.value); +}; +n.onClick = function(e) { +t._editing && cc.sys.isMobile && t._adjustWindowScroll(); +}; +n.onKeydown = function(i) { +if (i.keyCode === r.KEY.enter) { +i.stopPropagation(); +t._delegate.editBoxEditingReturn(); +t._isTextArea || e.blur(); +} else if (i.keyCode === r.KEY.tab) { +i.stopPropagation(); +i.preventDefault(); +a.next(t); +} +}; +n.onKeyup = function(i) { +t._delegate.editBoxTextChanged(e.value); +}; +n.onBlur = function() { +t._editing = !1; +v = null; +t._hideDom(); +t._delegate.editBoxEditingDidEnded(); +}; +e.addEventListener("compositionstart", n.compositionStart); +e.addEventListener("compositionend", n.compositionEnd); +e.addEventListener("input", n.onInput); +e.addEventListener("keydown", n.onKeydown); +e.addEventListener("keyup", n.onKeyup); +e.addEventListener("blur", n.onBlur); +e.addEventListener("touchstart", n.onClick); +}, +_removeEventListeners: function() { +var t = this._elem, e = this._eventListeners; +t.removeEventListener("compositionstart", e.compositionStart); +t.removeEventListener("compositionend", e.compositionEnd); +t.removeEventListener("input", e.onInput); +t.removeEventListener("keydown", e.onKeydown); +t.removeEventListener("keyup", e.onKeyup); +t.removeEventListener("blur", e.onBlur); +t.removeEventListener("touchstart", e.onClick); +e.compositionStart = null; +e.compositionEnd = null; +e.onInput = null; +e.onKeydown = null; +e.onKeyup = null; +e.onBlur = null; +e.onClick = null; +} +}); +}), { +"../../platform/CCMacro": 206, +"../../platform/utils": 225, +"../CCLabel": 97, +"./tabIndexUtil": 123, +"./types": 124 +} ], +123: [ (function(t, e, i) { +"use strict"; +e.exports = { +_tabIndexList: [], +add: function(t) { +var e = this._tabIndexList; +-1 === e.indexOf(t) && e.push(t); +}, +remove: function(t) { +var e = this._tabIndexList, i = e.indexOf(t); +-1 !== i && e.splice(i, 1); +}, +resort: function() { +this._tabIndexList.sort((function(t, e) { +return t._delegate._tabIndex - e._delegate._tabIndex; +})); +}, +next: function(t) { +var e = this._tabIndexList, i = e.indexOf(t); +t.setFocus(!1); +if (-1 !== i) { +var n = e[i + 1]; +n && n._delegate._tabIndex >= 0 && n.setFocus(!0); +} +} +}; +}), {} ], +124: [ (function(t, e, i) { +"use strict"; +var n = cc.Enum({ +DEFAULT: 0, +DONE: 1, +SEND: 2, +SEARCH: 3, +GO: 4, +NEXT: 5 +}), r = cc.Enum({ +ANY: 0, +EMAIL_ADDR: 1, +NUMERIC: 2, +PHONE_NUMBER: 3, +URL: 4, +DECIMAL: 5, +SINGLE_LINE: 6 +}), s = cc.Enum({ +PASSWORD: 0, +SENSITIVE: 1, +INITIAL_CAPS_WORD: 2, +INITIAL_CAPS_SENTENCE: 3, +INITIAL_CAPS_ALL_CHARACTERS: 4, +DEFAULT: 5 +}); +e.exports = { +KeyboardReturnType: n, +InputMode: r, +InputFlag: s +}; +}), {} ], +125: [ (function(t, e, i) { +"use strict"; +t("./CCComponent"); +t("./CCComponentEventHandler"); +t("./missing-script"); +var n = [ t("./CCSprite"), t("./CCWidget"), t("./CCCanvas"), t("./CCAudioSource"), t("./CCAnimation"), t("./CCButton"), t("./CCLabel"), t("./CCProgressBar"), t("./CCMask"), t("./CCScrollBar"), t("./CCScrollView"), t("./CCPageViewIndicator"), t("./CCPageView"), t("./CCSlider"), t("./CCLayout"), t("./editbox/CCEditBox"), t("./CCLabelOutline"), t("./CCLabelShadow"), t("./CCRichText"), t("./CCToggleContainer"), t("./CCToggleGroup"), t("./CCToggle"), t("./CCBlockInputEvents"), t("./CCMotionStreak"), t("./WXSubContextView"), t("./SwanSubContextView") ]; +e.exports = n; +}), { +"./CCAnimation": 90, +"./CCAudioSource": 91, +"./CCBlockInputEvents": 92, +"./CCButton": 93, +"./CCCanvas": 94, +"./CCComponent": 95, +"./CCComponentEventHandler": 96, +"./CCLabel": 97, +"./CCLabelOutline": 98, +"./CCLabelShadow": 99, +"./CCLayout": 100, +"./CCMask": 101, +"./CCMotionStreak": 102, +"./CCPageView": 103, +"./CCPageViewIndicator": 104, +"./CCProgressBar": 105, +"./CCRichText": 107, +"./CCScrollBar": 108, +"./CCScrollView": 109, +"./CCSlider": 110, +"./CCSprite": 111, +"./CCToggle": 113, +"./CCToggleContainer": 114, +"./CCToggleGroup": 115, +"./CCWidget": 117, +"./SwanSubContextView": 118, +"./WXSubContextView": 119, +"./editbox/CCEditBox": 120, +"./missing-script": 126 +} ], +126: [ (function(t, e, i) { +"use strict"; +var n = cc.js, r = t("../utils/misc").BUILTIN_CLASSID_RE, s = cc.Class({ +name: "cc.MissingClass", +properties: { +_$erialized: { +default: null, +visible: !1, +editorOnly: !0 +} +} +}), o = cc.Class({ +name: "cc.MissingScript", +extends: cc.Component, +editor: { +inspector: "packages://inspector/inspectors/comps/missing-script.js" +}, +properties: { +compiled: { +default: !1, +serializable: !1 +}, +_$erialized: { +default: null, +visible: !1, +editorOnly: !0 +} +}, +ctor: !1, +statics: { +safeFindClass: function(t, e) { +var i = n._getClassById(t); +if (i) return i; +if (t) { +cc.deserialize.reportMissingClass(t); +return o.getMissingWrapper(t, e); +} +return null; +}, +getMissingWrapper: function(t, e) { +return e.node && (/^[0-9a-zA-Z+/]{23}$/.test(t) || r.test(t)) ? o : s; +} +}, +onLoad: function() { +cc.warnID(4600, this.node.name); +} +}); +cc._MissingScript = e.exports = o; +}), { +"../utils/misc": 297 +} ], +127: [ (function(t, e, i) { +"use strict"; +var n = cc.js; +t("../event/event"); +var r = function(t, e) { +cc.Event.call(this, cc.Event.MOUSE, e); +this._eventType = t; +this._button = 0; +this._x = 0; +this._y = 0; +this._prevX = 0; +this._prevY = 0; +this._scrollX = 0; +this._scrollY = 0; +}; +n.extend(r, cc.Event); +var s = r.prototype; +s.setScrollData = function(t, e) { +this._scrollX = t; +this._scrollY = e; +}; +s.getScrollX = function() { +return this._scrollX; +}; +s.getScrollY = function() { +return this._scrollY; +}; +s.setLocation = function(t, e) { +this._x = t; +this._y = e; +}; +s.getLocation = function() { +return cc.v2(this._x, this._y); +}; +s.getLocationInView = function() { +return cc.v2(this._x, cc.view._designResolutionSize.height - this._y); +}; +s._setPrevCursor = function(t, e) { +this._prevX = t; +this._prevY = e; +}; +s.getPreviousLocation = function() { +return cc.v2(this._prevX, this._prevY); +}; +s.getDelta = function() { +return cc.v2(this._x - this._prevX, this._y - this._prevY); +}; +s.getDeltaX = function() { +return this._x - this._prevX; +}; +s.getDeltaY = function() { +return this._y - this._prevY; +}; +s.setButton = function(t) { +this._button = t; +}; +s.getButton = function() { +return this._button; +}; +s.getLocationX = function() { +return this._x; +}; +s.getLocationY = function() { +return this._y; +}; +r.NONE = 0; +r.DOWN = 1; +r.UP = 2; +r.MOVE = 3; +r.SCROLL = 4; +r.BUTTON_LEFT = 0; +r.BUTTON_RIGHT = 2; +r.BUTTON_MIDDLE = 1; +r.BUTTON_4 = 3; +r.BUTTON_5 = 4; +r.BUTTON_6 = 5; +r.BUTTON_7 = 6; +r.BUTTON_8 = 7; +var o = function(t, e) { +cc.Event.call(this, cc.Event.TOUCH, e); +this._eventCode = 0; +this._touches = t || []; +this.touch = null; +this.currentTouch = null; +}; +n.extend(o, cc.Event); +(s = o.prototype).getEventCode = function() { +return this._eventCode; +}; +s.getTouches = function() { +return this._touches; +}; +s._setEventCode = function(t) { +this._eventCode = t; +}; +s._setTouches = function(t) { +this._touches = t; +}; +s.setLocation = function(t, e) { +this.touch && this.touch.setTouchInfo(this.touch.getID(), t, e); +}; +s.getLocation = function() { +return this.touch ? this.touch.getLocation() : cc.v2(); +}; +s.getLocationInView = function() { +return this.touch ? this.touch.getLocationInView() : cc.v2(); +}; +s.getPreviousLocation = function() { +return this.touch ? this.touch.getPreviousLocation() : cc.v2(); +}; +s.getStartLocation = function() { +return this.touch ? this.touch.getStartLocation() : cc.v2(); +}; +s.getID = function() { +return this.touch ? this.touch.getID() : null; +}; +s.getDelta = function() { +return this.touch ? this.touch.getDelta() : cc.v2(); +}; +s.getDeltaX = function() { +return this.touch ? this.touch.getDelta().x : 0; +}; +s.getDeltaY = function() { +return this.touch ? this.touch.getDelta().y : 0; +}; +s.getLocationX = function() { +return this.touch ? this.touch.getLocationX() : 0; +}; +s.getLocationY = function() { +return this.touch ? this.touch.getLocationY() : 0; +}; +o.MAX_TOUCHES = 5; +o.BEGAN = 0; +o.MOVED = 1; +o.ENDED = 2; +o.CANCELED = 3; +var a = function(t, e) { +cc.Event.call(this, cc.Event.ACCELERATION, e); +this.acc = t; +}; +n.extend(a, cc.Event); +var c = function(t, e, i) { +cc.Event.call(this, cc.Event.KEYBOARD, i); +this.keyCode = t; +this.isPressed = e; +}; +n.extend(c, cc.Event); +cc.Event.EventMouse = r; +cc.Event.EventTouch = o; +cc.Event.EventAcceleration = a; +cc.Event.EventKeyboard = c; +e.exports = cc.Event; +}), { +"../event/event": 134 +} ], +128: [ (function(t, e, i) { +"use strict"; +var n = t("../platform/js"); +cc.EventListener = function(t, e, i) { +this._onEvent = i; +this._type = t || 0; +this._listenerID = e || ""; +this._registered = !1; +this._fixedPriority = 0; +this._node = null; +this._target = null; +this._paused = !0; +this._isEnabled = !0; +}; +cc.EventListener.prototype = { +constructor: cc.EventListener, +_setPaused: function(t) { +this._paused = t; +}, +_isPaused: function() { +return this._paused; +}, +_setRegistered: function(t) { +this._registered = t; +}, +_isRegistered: function() { +return this._registered; +}, +_getType: function() { +return this._type; +}, +_getListenerID: function() { +return this._listenerID; +}, +_setFixedPriority: function(t) { +this._fixedPriority = t; +}, +_getFixedPriority: function() { +return this._fixedPriority; +}, +_setSceneGraphPriority: function(t) { +this._target = t; +this._node = t; +}, +_getSceneGraphPriority: function() { +return this._node; +}, +checkAvailable: function() { +return null !== this._onEvent; +}, +clone: function() { +return null; +}, +setEnabled: function(t) { +this._isEnabled = t; +}, +isEnabled: function() { +return this._isEnabled; +}, +retain: function() {}, +release: function() {} +}; +cc.EventListener.UNKNOWN = 0; +cc.EventListener.TOUCH_ONE_BY_ONE = 1; +cc.EventListener.TOUCH_ALL_AT_ONCE = 2; +cc.EventListener.KEYBOARD = 3; +cc.EventListener.MOUSE = 4; +cc.EventListener.ACCELERATION = 6; +cc.EventListener.CUSTOM = 8; +var r = cc.EventListener.ListenerID = { +MOUSE: "__cc_mouse", +TOUCH_ONE_BY_ONE: "__cc_touch_one_by_one", +TOUCH_ALL_AT_ONCE: "__cc_touch_all_at_once", +KEYBOARD: "__cc_keyboard", +ACCELERATION: "__cc_acceleration" +}, s = function(t, e) { +this._onCustomEvent = e; +cc.EventListener.call(this, cc.EventListener.CUSTOM, t, this._callback); +}; +n.extend(s, cc.EventListener); +n.mixin(s.prototype, { +_onCustomEvent: null, +_callback: function(t) { +null !== this._onCustomEvent && this._onCustomEvent(t); +}, +checkAvailable: function() { +return cc.EventListener.prototype.checkAvailable.call(this) && null !== this._onCustomEvent; +}, +clone: function() { +return new s(this._listenerID, this._onCustomEvent); +} +}); +var o = function() { +cc.EventListener.call(this, cc.EventListener.MOUSE, r.MOUSE, this._callback); +}; +n.extend(o, cc.EventListener); +n.mixin(o.prototype, { +onMouseDown: null, +onMouseUp: null, +onMouseMove: null, +onMouseScroll: null, +_callback: function(t) { +var e = cc.Event.EventMouse; +switch (t._eventType) { +case e.DOWN: +this.onMouseDown && this.onMouseDown(t); +break; + +case e.UP: +this.onMouseUp && this.onMouseUp(t); +break; + +case e.MOVE: +this.onMouseMove && this.onMouseMove(t); +break; + +case e.SCROLL: +this.onMouseScroll && this.onMouseScroll(t); +} +}, +clone: function() { +var t = new o(); +t.onMouseDown = this.onMouseDown; +t.onMouseUp = this.onMouseUp; +t.onMouseMove = this.onMouseMove; +t.onMouseScroll = this.onMouseScroll; +return t; +}, +checkAvailable: function() { +return !0; +} +}); +var a = function() { +cc.EventListener.call(this, cc.EventListener.TOUCH_ONE_BY_ONE, r.TOUCH_ONE_BY_ONE, null); +this._claimedTouches = []; +}; +n.extend(a, cc.EventListener); +n.mixin(a.prototype, { +constructor: a, +_claimedTouches: null, +swallowTouches: !1, +onTouchBegan: null, +onTouchMoved: null, +onTouchEnded: null, +onTouchCancelled: null, +setSwallowTouches: function(t) { +this.swallowTouches = t; +}, +isSwallowTouches: function() { +return this.swallowTouches; +}, +clone: function() { +var t = new a(); +t.onTouchBegan = this.onTouchBegan; +t.onTouchMoved = this.onTouchMoved; +t.onTouchEnded = this.onTouchEnded; +t.onTouchCancelled = this.onTouchCancelled; +t.swallowTouches = this.swallowTouches; +return t; +}, +checkAvailable: function() { +if (!this.onTouchBegan) { +cc.logID(1801); +return !1; +} +return !0; +} +}); +var c = function() { +cc.EventListener.call(this, cc.EventListener.TOUCH_ALL_AT_ONCE, r.TOUCH_ALL_AT_ONCE, null); +}; +n.extend(c, cc.EventListener); +n.mixin(c.prototype, { +constructor: c, +onTouchesBegan: null, +onTouchesMoved: null, +onTouchesEnded: null, +onTouchesCancelled: null, +clone: function() { +var t = new c(); +t.onTouchesBegan = this.onTouchesBegan; +t.onTouchesMoved = this.onTouchesMoved; +t.onTouchesEnded = this.onTouchesEnded; +t.onTouchesCancelled = this.onTouchesCancelled; +return t; +}, +checkAvailable: function() { +if (null === this.onTouchesBegan && null === this.onTouchesMoved && null === this.onTouchesEnded && null === this.onTouchesCancelled) { +cc.logID(1802); +return !1; +} +return !0; +} +}); +var l = function(t) { +this._onAccelerationEvent = t; +cc.EventListener.call(this, cc.EventListener.ACCELERATION, r.ACCELERATION, this._callback); +}; +n.extend(l, cc.EventListener); +n.mixin(l.prototype, { +constructor: l, +_onAccelerationEvent: null, +_callback: function(t) { +this._onAccelerationEvent(t.acc, t); +}, +checkAvailable: function() { +cc.assertID(this._onAccelerationEvent, 1803); +return !0; +}, +clone: function() { +return new l(this._onAccelerationEvent); +} +}); +var h = function() { +cc.EventListener.call(this, cc.EventListener.KEYBOARD, r.KEYBOARD, this._callback); +}; +n.extend(h, cc.EventListener); +n.mixin(h.prototype, { +constructor: h, +onKeyPressed: null, +onKeyReleased: null, +_callback: function(t) { +t.isPressed ? this.onKeyPressed && this.onKeyPressed(t.keyCode, t) : this.onKeyReleased && this.onKeyReleased(t.keyCode, t); +}, +clone: function() { +var t = new h(); +t.onKeyPressed = this.onKeyPressed; +t.onKeyReleased = this.onKeyReleased; +return t; +}, +checkAvailable: function() { +if (null === this.onKeyPressed && null === this.onKeyReleased) { +cc.logID(1800); +return !1; +} +return !0; +} +}); +cc.EventListener.create = function(t) { +cc.assertID(t && t.event, 1900); +var e = t.event; +delete t.event; +var i = null; +if (e === cc.EventListener.TOUCH_ONE_BY_ONE) i = new a(); else if (e === cc.EventListener.TOUCH_ALL_AT_ONCE) i = new c(); else if (e === cc.EventListener.MOUSE) i = new o(); else if (e === cc.EventListener.CUSTOM) { +i = new s(t.eventName, t.callback); +delete t.eventName; +delete t.callback; +} else if (e === cc.EventListener.KEYBOARD) i = new h(); else if (e === cc.EventListener.ACCELERATION) { +i = new l(t.callback); +delete t.callback; +} +for (var n in t) i[n] = t[n]; +return i; +}; +e.exports = cc.EventListener; +}), { +"../platform/js": 221 +} ], +129: [ (function(t, e, i) { +"use strict"; +var n = t("../platform/js"); +t("./CCEventListener"); +var r = cc.EventListener.ListenerID, s = function() { +this._fixedListeners = []; +this._sceneGraphListeners = []; +this.gt0Index = 0; +}; +s.prototype = { +constructor: s, +size: function() { +return this._fixedListeners.length + this._sceneGraphListeners.length; +}, +empty: function() { +return 0 === this._fixedListeners.length && 0 === this._sceneGraphListeners.length; +}, +push: function(t) { +0 === t._getFixedPriority() ? this._sceneGraphListeners.push(t) : this._fixedListeners.push(t); +}, +clearSceneGraphListeners: function() { +this._sceneGraphListeners.length = 0; +}, +clearFixedListeners: function() { +this._fixedListeners.length = 0; +}, +clear: function() { +this._sceneGraphListeners.length = 0; +this._fixedListeners.length = 0; +}, +getFixedPriorityListeners: function() { +return this._fixedListeners; +}, +getSceneGraphPriorityListeners: function() { +return this._sceneGraphListeners; +} +}; +var o = function(t) { +var e = cc.Event, i = t.type; +if (i === e.ACCELERATION) return r.ACCELERATION; +if (i === e.KEYBOARD) return r.KEYBOARD; +if (i.startsWith(e.MOUSE)) return r.MOUSE; +i.startsWith(e.TOUCH) && cc.logID(2e3); +return ""; +}, a = { +DIRTY_NONE: 0, +DIRTY_FIXED_PRIORITY: 1, +DIRTY_SCENE_GRAPH_PRIORITY: 2, +DIRTY_ALL: 3, +_listenersMap: {}, +_priorityDirtyFlagMap: {}, +_nodeListenersMap: {}, +_toAddedListeners: [], +_toRemovedListeners: [], +_dirtyListeners: {}, +_inDispatch: 0, +_isEnabled: !1, +_internalCustomListenerIDs: [], +_setDirtyForNode: function(t) { +var e = this._nodeListenersMap[t._id]; +if (void 0 !== e) for (var i = 0, n = e.length; i < n; i++) { +var r = e[i]._getListenerID(); +null == this._dirtyListeners[r] && (this._dirtyListeners[r] = !0); +} +if (t.getChildren) { +var s = t.getChildren(), o = 0; +for (n = s ? s.length : 0; o < n; o++) this._setDirtyForNode(s[o]); +} +}, +pauseTarget: function(t, e) { +if (t instanceof cc._BaseNode) { +var i, n, r = this._nodeListenersMap[t._id]; +if (r) for (i = 0, n = r.length; i < n; i++) r[i]._setPaused(!0); +if (!0 === e) { +var s = t.getChildren(); +for (i = 0, n = s ? s.length : 0; i < n; i++) this.pauseTarget(s[i], !0); +} +} else cc.warnID(3506); +}, +resumeTarget: function(t, e) { +if (t instanceof cc._BaseNode) { +var i, n, r = this._nodeListenersMap[t._id]; +if (r) for (i = 0, n = r.length; i < n; i++) r[i]._setPaused(!1); +this._setDirtyForNode(t); +if (!0 === e && t.getChildren) { +var s = t.getChildren(); +for (i = 0, n = s ? s.length : 0; i < n; i++) this.resumeTarget(s[i], !0); +} +} else cc.warnID(3506); +}, +_addListener: function(t) { +0 === this._inDispatch ? this._forceAddEventListener(t) : this._toAddedListeners.push(t); +}, +_forceAddEventListener: function(t) { +var e = t._getListenerID(), i = this._listenersMap[e]; +if (!i) { +i = new s(); +this._listenersMap[e] = i; +} +i.push(t); +if (0 === t._getFixedPriority()) { +this._setDirty(e, this.DIRTY_SCENE_GRAPH_PRIORITY); +var n = t._getSceneGraphPriority(); +null === n && cc.logID(3507); +this._associateNodeAndEventListener(n, t); +n.activeInHierarchy && this.resumeTarget(n); +} else this._setDirty(e, this.DIRTY_FIXED_PRIORITY); +}, +_getListeners: function(t) { +return this._listenersMap[t]; +}, +_updateDirtyFlagForSceneGraph: function() { +var t = this._dirtyListeners; +for (var e in t) this._setDirty(e, this.DIRTY_SCENE_GRAPH_PRIORITY); +this._dirtyListeners = {}; +}, +_removeAllListenersInVector: function(t) { +if (t) for (var e, i = t.length - 1; i >= 0; i--) { +(e = t[i])._setRegistered(!1); +if (null != e._getSceneGraphPriority()) { +this._dissociateNodeAndEventListener(e._getSceneGraphPriority(), e); +e._setSceneGraphPriority(null); +} +0 === this._inDispatch && cc.js.array.removeAt(t, i); +} +}, +_removeListenersForListenerID: function(t) { +var e, i = this._listenersMap[t]; +if (i) { +var n = i.getFixedPriorityListeners(), r = i.getSceneGraphPriorityListeners(); +this._removeAllListenersInVector(r); +this._removeAllListenersInVector(n); +delete this._priorityDirtyFlagMap[t]; +if (!this._inDispatch) { +i.clear(); +delete this._listenersMap[t]; +} +} +var s, o = this._toAddedListeners; +for (e = o.length - 1; e >= 0; e--) (s = o[e]) && s._getListenerID() === t && cc.js.array.removeAt(o, e); +}, +_sortEventListeners: function(t) { +var e = this.DIRTY_NONE, i = this._priorityDirtyFlagMap; +i[t] && (e = i[t]); +if (e !== this.DIRTY_NONE) { +i[t] = this.DIRTY_NONE; +e & this.DIRTY_FIXED_PRIORITY && this._sortListenersOfFixedPriority(t); +if (e & this.DIRTY_SCENE_GRAPH_PRIORITY) { +cc.director.getScene() && this._sortListenersOfSceneGraphPriority(t); +} +} +}, +_sortListenersOfSceneGraphPriority: function(t) { +var e = this._getListeners(t); +if (e) { +var i = e.getSceneGraphPriorityListeners(); +i && 0 !== i.length && e.getSceneGraphPriorityListeners().sort(this._sortEventListenersOfSceneGraphPriorityDes); +} +}, +_sortEventListenersOfSceneGraphPriorityDes: function(t, e) { +var i = t._getSceneGraphPriority(), n = e._getSceneGraphPriority(); +if (!(e && n && n._activeInHierarchy && null !== n._parent)) return -1; +if (!t || !i || !i._activeInHierarchy || null === i._parent) return 1; +for (var r = i, s = n, o = !1; r._parent._id !== s._parent._id; ) { +r = null === r._parent._parent ? (o = !0) && n : r._parent; +s = null === s._parent._parent ? (o = !0) && i : s._parent; +} +if (r._id === s._id) { +if (r._id === n._id) return -1; +if (r._id === i._id) return 1; +} +return o ? r._localZOrder - s._localZOrder : s._localZOrder - r._localZOrder; +}, +_sortListenersOfFixedPriority: function(t) { +var e = this._listenersMap[t]; +if (e) { +var i = e.getFixedPriorityListeners(); +if (i && 0 !== i.length) { +i.sort(this._sortListenersOfFixedPriorityAsc); +for (var n = 0, r = i.length; n < r && !(i[n]._getFixedPriority() >= 0); ) ++n; +e.gt0Index = n; +} +} +}, +_sortListenersOfFixedPriorityAsc: function(t, e) { +return t._getFixedPriority() - e._getFixedPriority(); +}, +_onUpdateListeners: function(t) { +var e, i, n, r = t.getFixedPriorityListeners(), s = t.getSceneGraphPriorityListeners(), o = this._toRemovedListeners; +if (s) for (e = s.length - 1; e >= 0; e--) if (!(i = s[e])._isRegistered()) { +cc.js.array.removeAt(s, e); +-1 !== (n = o.indexOf(i)) && o.splice(n, 1); +} +if (r) for (e = r.length - 1; e >= 0; e--) if (!(i = r[e])._isRegistered()) { +cc.js.array.removeAt(r, e); +-1 !== (n = o.indexOf(i)) && o.splice(n, 1); +} +s && 0 === s.length && t.clearSceneGraphListeners(); +r && 0 === r.length && t.clearFixedListeners(); +}, +frameUpdateListeners: function() { +var t = this._listenersMap, e = this._priorityDirtyFlagMap; +for (var i in t) if (t[i].empty()) { +delete e[i]; +delete t[i]; +} +var n = this._toAddedListeners; +if (0 !== n.length) { +for (var r = 0, s = n.length; r < s; r++) this._forceAddEventListener(n[r]); +n.length = 0; +} +0 !== this._toRemovedListeners.length && this._cleanToRemovedListeners(); +}, +_updateTouchListeners: function(t) { +var e = this._inDispatch; +cc.assertID(e > 0, 3508); +if (!(e > 1)) { +var i; +(i = this._listenersMap[r.TOUCH_ONE_BY_ONE]) && this._onUpdateListeners(i); +(i = this._listenersMap[r.TOUCH_ALL_AT_ONCE]) && this._onUpdateListeners(i); +cc.assertID(1 === e, 3509); +var n = this._toAddedListeners; +if (0 !== n.length) { +for (var s = 0, o = n.length; s < o; s++) this._forceAddEventListener(n[s]); +this._toAddedListeners.length = 0; +} +0 !== this._toRemovedListeners.length && this._cleanToRemovedListeners(); +} +}, +_cleanToRemovedListeners: function() { +for (var t = this._toRemovedListeners, e = 0; e < t.length; e++) { +var i = t[e], n = this._listenersMap[i._getListenerID()]; +if (n) { +var r, s = n.getFixedPriorityListeners(), o = n.getSceneGraphPriorityListeners(); +o && -1 !== (r = o.indexOf(i)) && o.splice(r, 1); +s && -1 !== (r = s.indexOf(i)) && s.splice(r, 1); +} +} +t.length = 0; +}, +_onTouchEventCallback: function(t, e) { +if (!t._isRegistered()) return !1; +var i = e.event, n = i.currentTouch; +i.currentTarget = t._node; +var r, s = !1, o = i.getEventCode(), c = cc.Event.EventTouch; +if (o === c.BEGAN) t.onTouchBegan && (s = t.onTouchBegan(n, i)) && t._registered && t._claimedTouches.push(n); else if (t._claimedTouches.length > 0 && -1 !== (r = t._claimedTouches.indexOf(n))) { +s = !0; +if (o === c.MOVED && t.onTouchMoved) t.onTouchMoved(n, i); else if (o === c.ENDED) { +t.onTouchEnded && t.onTouchEnded(n, i); +t._registered && t._claimedTouches.splice(r, 1); +} else if (o === c.CANCELLED) { +t.onTouchCancelled && t.onTouchCancelled(n, i); +t._registered && t._claimedTouches.splice(r, 1); +} +} +if (i.isStopped()) { +a._updateTouchListeners(i); +return !0; +} +if (s && t.swallowTouches) { +e.needsMutableSet && e.touches.splice(n, 1); +return !0; +} +return !1; +}, +_dispatchTouchEvent: function(t) { +this._sortEventListeners(r.TOUCH_ONE_BY_ONE); +this._sortEventListeners(r.TOUCH_ALL_AT_ONCE); +var e = this._getListeners(r.TOUCH_ONE_BY_ONE), i = this._getListeners(r.TOUCH_ALL_AT_ONCE); +if (null !== e || null !== i) { +var n = t.getTouches(), s = cc.js.array.copy(n), o = { +event: t, +needsMutableSet: e && i, +touches: s, +selTouch: null +}; +if (e) for (var a = 0; a < n.length; a++) { +t.currentTouch = n[a]; +t._propagationStopped = t._propagationImmediateStopped = !1; +this._dispatchEventToListeners(e, this._onTouchEventCallback, o); +} +if (i && s.length > 0) { +this._dispatchEventToListeners(i, this._onTouchesEventCallback, { +event: t, +touches: s +}); +if (t.isStopped()) return; +} +this._updateTouchListeners(t); +} +}, +_onTouchesEventCallback: function(t, e) { +if (!t._registered) return !1; +var i = cc.Event.EventTouch, n = e.event, r = e.touches, s = n.getEventCode(); +n.currentTarget = t._node; +s === i.BEGAN && t.onTouchesBegan ? t.onTouchesBegan(r, n) : s === i.MOVED && t.onTouchesMoved ? t.onTouchesMoved(r, n) : s === i.ENDED && t.onTouchesEnded ? t.onTouchesEnded(r, n) : s === i.CANCELLED && t.onTouchesCancelled && t.onTouchesCancelled(r, n); +if (n.isStopped()) { +a._updateTouchListeners(n); +return !0; +} +return !1; +}, +_associateNodeAndEventListener: function(t, e) { +var i = this._nodeListenersMap[t._id]; +if (!i) { +i = []; +this._nodeListenersMap[t._id] = i; +} +i.push(e); +}, +_dissociateNodeAndEventListener: function(t, e) { +var i = this._nodeListenersMap[t._id]; +if (i) { +cc.js.array.remove(i, e); +0 === i.length && delete this._nodeListenersMap[t._id]; +} +}, +_dispatchEventToListeners: function(t, e, i) { +var n, r, s = !1, o = t.getFixedPriorityListeners(), a = t.getSceneGraphPriorityListeners(), c = 0; +if (o && 0 !== o.length) for (;c < t.gt0Index; ++c) if ((r = o[c]).isEnabled() && !r._isPaused() && r._isRegistered() && e(r, i)) { +s = !0; +break; +} +if (a && !s) for (n = 0; n < a.length; n++) if ((r = a[n]).isEnabled() && !r._isPaused() && r._isRegistered() && e(r, i)) { +s = !0; +break; +} +if (o && !s) for (;c < o.length; ++c) if ((r = o[c]).isEnabled() && !r._isPaused() && r._isRegistered() && e(r, i)) { +s = !0; +break; +} +}, +_setDirty: function(t, e) { +var i = this._priorityDirtyFlagMap; +null == i[t] ? i[t] = e : i[t] = e | i[t]; +}, +_sortNumberAsc: function(t, e) { +return t - e; +}, +hasEventListener: function(t) { +return !!this._getListeners(t); +}, +addListener: function(t, e) { +cc.assertID(t && e, 3503); +if (cc.js.isNumber(e) || e instanceof cc._BaseNode) { +if (t instanceof cc.EventListener) { +if (t._isRegistered()) { +cc.logID(3505); +return; +} +} else { +cc.assertID(!cc.js.isNumber(e), 3504); +t = cc.EventListener.create(t); +} +if (t.checkAvailable()) { +if (cc.js.isNumber(e)) { +if (0 === e) { +cc.logID(3500); +return; +} +t._setSceneGraphPriority(null); +t._setFixedPriority(e); +t._setRegistered(!0); +t._setPaused(!1); +this._addListener(t); +} else { +t._setSceneGraphPriority(e); +t._setFixedPriority(0); +t._setRegistered(!0); +this._addListener(t); +} +return t; +} +} else cc.warnID(3506); +}, +addCustomListener: function(t, e) { +var i = new cc.EventListener.create({ +event: cc.EventListener.CUSTOM, +eventName: t, +callback: e +}); +this.addListener(i, 1); +return i; +}, +removeListener: function(t) { +if (null != t) { +var e, i = this._listenersMap; +for (var n in i) { +var r = i[n], s = r.getFixedPriorityListeners(), o = r.getSceneGraphPriorityListeners(); +(e = this._removeListenerInVector(o, t)) ? this._setDirty(t._getListenerID(), this.DIRTY_SCENE_GRAPH_PRIORITY) : (e = this._removeListenerInVector(s, t)) && this._setDirty(t._getListenerID(), this.DIRTY_FIXED_PRIORITY); +if (r.empty()) { +delete this._priorityDirtyFlagMap[t._getListenerID()]; +delete i[n]; +} +if (e) break; +} +if (!e) for (var a = this._toAddedListeners, c = a.length - 1; c >= 0; c--) { +var l = a[c]; +if (l === t) { +cc.js.array.removeAt(a, c); +l._setRegistered(!1); +break; +} +} +} +}, +_removeListenerInCallback: function(t, e) { +if (null == t) return !1; +for (var i = t.length - 1; i >= 0; i--) { +var n = t[i]; +if (n._onCustomEvent === e || n._onEvent === e) { +n._setRegistered(!1); +if (null != n._getSceneGraphPriority()) { +this._dissociateNodeAndEventListener(n._getSceneGraphPriority(), n); +n._setSceneGraphPriority(null); +} +0 === this._inDispatch ? cc.js.array.removeAt(t, i) : this._toRemovedListeners.push(n); +return !0; +} +} +return !1; +}, +_removeListenerInVector: function(t, e) { +if (null == t) return !1; +for (var i = t.length - 1; i >= 0; i--) { +var n = t[i]; +if (n === e) { +n._setRegistered(!1); +if (null != n._getSceneGraphPriority()) { +this._dissociateNodeAndEventListener(n._getSceneGraphPriority(), n); +n._setSceneGraphPriority(null); +} +0 === this._inDispatch ? cc.js.array.removeAt(t, i) : this._toRemovedListeners.push(n); +return !0; +} +} +return !1; +}, +removeListeners: function(t, e) { +var i = this; +if (cc.js.isNumber(t) || t instanceof cc._BaseNode) if (void 0 !== t._id) { +var n, s = i._nodeListenersMap[t._id]; +if (s) { +var o = cc.js.array.copy(s); +for (n = 0; n < o.length; n++) i.removeListener(o[n]); +delete i._nodeListenersMap[t._id]; +} +var a = i._toAddedListeners; +for (n = 0; n < a.length; ) { +var c = a[n]; +if (c._getSceneGraphPriority() === t) { +c._setSceneGraphPriority(null); +c._setRegistered(!1); +a.splice(n, 1); +} else ++n; +} +if (!0 === e) { +var l, h = t.getChildren(); +for (n = 0, l = h.length; n < l; n++) i.removeListeners(h[n], !0); +} +} else t === cc.EventListener.TOUCH_ONE_BY_ONE ? i._removeListenersForListenerID(r.TOUCH_ONE_BY_ONE) : t === cc.EventListener.TOUCH_ALL_AT_ONCE ? i._removeListenersForListenerID(r.TOUCH_ALL_AT_ONCE) : t === cc.EventListener.MOUSE ? i._removeListenersForListenerID(r.MOUSE) : t === cc.EventListener.ACCELERATION ? i._removeListenersForListenerID(r.ACCELERATION) : t === cc.EventListener.KEYBOARD ? i._removeListenersForListenerID(r.KEYBOARD) : cc.logID(3501); else cc.warnID(3506); +}, +removeCustomListeners: function(t) { +this._removeListenersForListenerID(t); +}, +removeAllListeners: function() { +var t = this._listenersMap, e = this._internalCustomListenerIDs; +for (var i in t) -1 === e.indexOf(i) && this._removeListenersForListenerID(i); +}, +setPriority: function(t, e) { +if (null != t) { +var i = this._listenersMap; +for (var n in i) { +var r = i[n].getFixedPriorityListeners(); +if (r) { +if (-1 !== r.indexOf(t)) { +null != t._getSceneGraphPriority() && cc.logID(3502); +if (t._getFixedPriority() !== e) { +t._setFixedPriority(e); +this._setDirty(t._getListenerID(), this.DIRTY_FIXED_PRIORITY); +} +return; +} +} +} +} +}, +setEnabled: function(t) { +this._isEnabled = t; +}, +isEnabled: function() { +return this._isEnabled; +}, +dispatchEvent: function(t) { +if (this._isEnabled) { +this._updateDirtyFlagForSceneGraph(); +this._inDispatch++; +if (t && t.getType) if (t.getType().startsWith(cc.Event.TOUCH)) { +this._dispatchTouchEvent(t); +this._inDispatch--; +} else { +var e = o(t); +this._sortEventListeners(e); +var i = this._listenersMap[e]; +if (null != i) { +this._dispatchEventToListeners(i, this._onListenerCallback, t); +this._onUpdateListeners(i); +} +this._inDispatch--; +} else cc.errorID(3511); +} +}, +_onListenerCallback: function(t, e) { +e.currentTarget = t._target; +t._onEvent(e); +return e.isStopped(); +}, +dispatchCustomEvent: function(t, e) { +var i = new cc.Event.EventCustom(t); +i.setUserData(e); +this.dispatchEvent(i); +} +}; +n.get(cc, "eventManager", (function() { +cc.warnID(1405, "cc.eventManager", "cc.EventTarget or cc.systemEvent"); +return a; +})); +e.exports = a; +}), { +"../platform/js": 221, +"./CCEventListener": 128 +} ], +130: [ (function(t, e, i) { +"use strict"; +cc.Touch = function(t, e, i) { +this._lastModified = 0; +this.setTouchInfo(i, t, e); +}; +cc.Touch.prototype = { +constructor: cc.Touch, +getLocation: function() { +return cc.v2(this._point.x, this._point.y); +}, +getLocationX: function() { +return this._point.x; +}, +getLocationY: function() { +return this._point.y; +}, +getPreviousLocation: function() { +return cc.v2(this._prevPoint.x, this._prevPoint.y); +}, +getStartLocation: function() { +return cc.v2(this._startPoint.x, this._startPoint.y); +}, +getDelta: function() { +return this._point.sub(this._prevPoint); +}, +getLocationInView: function() { +return cc.v2(this._point.x, cc.view._designResolutionSize.height - this._point.y); +}, +getPreviousLocationInView: function() { +return cc.v2(this._prevPoint.x, cc.view._designResolutionSize.height - this._prevPoint.y); +}, +getStartLocationInView: function() { +return cc.v2(this._startPoint.x, cc.view._designResolutionSize.height - this._startPoint.y); +}, +getID: function() { +return this._id; +}, +setTouchInfo: function(t, e, i) { +this._prevPoint = this._point; +this._point = cc.v2(e || 0, i || 0); +this._id = t; +if (!this._startPointCaptured) { +this._startPoint = cc.v2(this._point); +cc.view._convertPointWithScale(this._startPoint); +this._startPointCaptured = !0; +} +}, +_setPoint: function(t, e) { +if (void 0 === e) { +this._point.x = t.x; +this._point.y = t.y; +} else { +this._point.x = t; +this._point.y = e; +} +}, +_setPrevPoint: function(t, e) { +this._prevPoint = void 0 === e ? cc.v2(t.x, t.y) : cc.v2(t || 0, e || 0); +} +}; +}), {} ], +131: [ (function(t, e, i) { +"use strict"; +t("./CCEvent"); +t("./CCTouch"); +t("./CCEventListener"); +var n = t("./CCEventManager"); +e.exports = n; +0; +}), { +"./CCEvent": 127, +"./CCEventListener": 128, +"./CCEventManager": 129, +"./CCTouch": 130 +} ], +132: [ (function(t, e, i) { +"use strict"; +var n = cc.js, r = t("../platform/callbacks-invoker").CallbacksHandler; +function s() { +r.call(this); +} +n.extend(s, r); +s.prototype.invoke = function(t, e) { +var i = t.type, n = this._callbackTable[i]; +if (n) { +var r = !n.isInvoking; +n.isInvoking = !0; +for (var s = n.callbacks, o = n.targets, a = 0, c = s.length; a < c; ++a) { +var l = s[a]; +if (l) { +var h = o[a] || t.currentTarget; +l.call(h, t, e); +if (t._propagationImmediateStopped) break; +} +} +if (r) { +n.isInvoking = !1; +n.containCanceled && n.purgeCanceled(); +} +} +}; +e.exports = s; +0; +}), { +"../platform/callbacks-invoker": 214 +} ], +133: [ (function(t, e, i) { +"use strict"; +var n = t("../platform/js"), r = t("../platform/callbacks-invoker"), s = n.array.fastRemove; +function o() { +r.call(this); +} +n.extend(o, r); +var a = o.prototype; +a.on = function(t, e, i) { +if (e) { +if (!this.hasEventListener(t, e, i)) { +this.add(t, e, i); +i && i.__eventTargets && i.__eventTargets.push(this); +} +return e; +} +cc.errorID(6800); +}; +a.off = function(t, e, i) { +if (e) { +this.remove(t, e, i); +i && i.__eventTargets && s(i.__eventTargets, this); +} else { +var n = this._callbackTable[t]; +if (!n) return; +for (var r = n.targets, o = 0; o < r.length; ++o) { +var a = r[o]; +a && a.__eventTargets && s(a.__eventTargets, this); +} +this.removeAll(t); +} +}; +a.targetOff = function(t) { +this.removeAll(t); +t && t.__eventTargets && s(t.__eventTargets, this); +}; +a.once = function(t, e, i) { +var n = "__ONCE_FLAG:" + t; +if (!this.hasEventListener(n, e, i)) { +var r = this; +this.on(t, (function s(o, a, c, l, h) { +r.off(t, s, i); +r.remove(n, e, i); +e.call(this, o, a, c, l, h); +}), i); +this.add(n, e, i); +} +}; +a.emit = r.prototype.invoke; +a.dispatchEvent = function(t) { +this.invoke(t.type, t); +}; +cc.EventTarget = e.exports = o; +}), { +"../platform/callbacks-invoker": 214, +"../platform/js": 221 +} ], +134: [ (function(t, e, i) { +"use strict"; +var n = t("../platform/js"); +cc.Event = function(t, e) { +this.type = t; +this.bubbles = !!e; +this.target = null; +this.currentTarget = null; +this.eventPhase = 0; +this._propagationStopped = !1; +this._propagationImmediateStopped = !1; +}; +cc.Event.prototype = { +constructor: cc.Event, +unuse: function() { +this.type = cc.Event.NO_TYPE; +this.target = null; +this.currentTarget = null; +this.eventPhase = cc.Event.NONE; +this._propagationStopped = !1; +this._propagationImmediateStopped = !1; +}, +reuse: function(t, e) { +this.type = t; +this.bubbles = e || !1; +}, +stopPropagation: function() { +this._propagationStopped = !0; +}, +stopPropagationImmediate: function() { +this._propagationImmediateStopped = !0; +}, +isStopped: function() { +return this._propagationStopped || this._propagationImmediateStopped; +}, +getCurrentTarget: function() { +return this.currentTarget; +}, +getType: function() { +return this.type; +} +}; +cc.Event.NO_TYPE = "no_type"; +cc.Event.TOUCH = "touch"; +cc.Event.MOUSE = "mouse"; +cc.Event.KEYBOARD = "keyboard"; +cc.Event.ACCELERATION = "acceleration"; +cc.Event.NONE = 0; +cc.Event.CAPTURING_PHASE = 1; +cc.Event.AT_TARGET = 2; +cc.Event.BUBBLING_PHASE = 3; +var r = function(t, e) { +cc.Event.call(this, t, e); +this.detail = null; +}; +n.extend(r, cc.Event); +r.prototype.reset = r; +r.prototype.setUserData = function(t) { +this.detail = t; +}; +r.prototype.getUserData = function() { +return this.detail; +}; +r.prototype.getEventName = cc.Event.prototype.getType; +var s = new n.Pool(10); +r.put = function(t) { +s.put(t); +}; +r.get = function(t, e) { +var i = s._get(); +i ? i.reset(t, e) : i = new r(t, e); +return i; +}; +cc.Event.EventCustom = r; +e.exports = cc.Event; +}), { +"../platform/js": 221 +} ], +135: [ (function(t, e, i) { +"use strict"; +t("./event"); +t("./event-listeners"); +t("./event-target"); +t("./system-event"); +}), { +"./event": 134, +"./event-listeners": 132, +"./event-target": 133, +"./system-event": 136 +} ], +136: [ (function(t, e, i) { +"use strict"; +var n = t("../event/event-target"), r = t("../event-manager"), s = t("../platform/CCInputManager"), o = cc.Enum({ +KEY_DOWN: "keydown", +KEY_UP: "keyup", +DEVICEMOTION: "devicemotion" +}), a = null, c = null, l = cc.Class({ +name: "SystemEvent", +extends: n, +statics: { +EventType: o +}, +setAccelerometerEnabled: function(t) { +0; +s.setAccelerometerEnabled(t); +}, +setAccelerometerInterval: function(t) { +0; +s.setAccelerometerInterval(t); +}, +on: function(t, e, i) { +0; +this._super(t, e, i); +if (t === o.KEY_DOWN || t === o.KEY_UP) { +a || (a = cc.EventListener.create({ +event: cc.EventListener.KEYBOARD, +onKeyPressed: function(t, e) { +e.type = o.KEY_DOWN; +cc.systemEvent.dispatchEvent(e); +}, +onKeyReleased: function(t, e) { +e.type = o.KEY_UP; +cc.systemEvent.dispatchEvent(e); +} +})); +r.hasEventListener(cc.EventListener.ListenerID.KEYBOARD) || r.addListener(a, 1); +} +if (t === o.DEVICEMOTION) { +c || (c = cc.EventListener.create({ +event: cc.EventListener.ACCELERATION, +callback: function(t, e) { +e.type = o.DEVICEMOTION; +cc.systemEvent.dispatchEvent(e); +} +})); +r.hasEventListener(cc.EventListener.ListenerID.ACCELERATION) || r.addListener(c, 1); +} +}, +off: function(t, e, i) { +0; +this._super(t, e, i); +if (a && (t === o.KEY_DOWN || t === o.KEY_UP)) { +var n = this.hasEventListener(o.KEY_DOWN), s = this.hasEventListener(o.KEY_UP); +n || s || r.removeListener(a); +} +c && t === o.DEVICEMOTION && r.removeListener(c); +} +}); +cc.SystemEvent = e.exports = l; +cc.systemEvent = new cc.SystemEvent(); +}), { +"../event-manager": 131, +"../event/event-target": 133, +"../platform/CCInputManager": 205 +} ], +137: [ (function(t, e, i) { +"use strict"; +var n = cc.vmath.vec3, r = cc.vmath.mat3, s = n.create(), o = n.create(), a = r.create(), c = function(t, e, i) { +a.m00 = Math.abs(i.m00); +a.m01 = Math.abs(i.m01); +a.m02 = Math.abs(i.m02); +a.m03 = Math.abs(i.m04); +a.m04 = Math.abs(i.m05); +a.m05 = Math.abs(i.m06); +a.m06 = Math.abs(i.m08); +a.m07 = Math.abs(i.m09); +a.m08 = Math.abs(i.m10); +n.transformMat3(t, e, a); +}; +function l(t, e, i, r, s, o) { +this.center = n.create(t, e, i); +this.halfExtents = n.create(r, s, o); +} +var h = l.prototype; +h.getBoundary = function(t, e) { +n.sub(t, this.center, this.halfExtents); +n.add(e, this.center, this.halfExtents); +}; +h.transform = function(t, e, i, r, s) { +s || (s = this); +n.transformMat4(s.center, this.center, t); +c(s.halfExtents, this.halfExtents, t); +}; +l.create = function(t, e, i, n, r, s) { +return new l(t, e, i, n, r, s); +}; +l.clone = function(t) { +return new l(t.center.x, t.center.y, t.center.z, t.halfExtents.x, t.halfExtents.y, t.halfExtents.z); +}; +l.copy = function(t, e) { +n.copy(t.center, e.center); +n.copy(t.halfExtents, e.halfExtents); +return t; +}; +l.fromPoints = function(t, e, i) { +n.scale(t.center, n.add(s, e, i), .5); +n.scale(t.halfExtents, n.sub(o, i, e), .5); +return t; +}; +l.set = function(t, e, i, r, s, o, a) { +n.set(t.center, e, i, r); +n.set(t.halfExtents, s, o, a); +return t; +}; +e.exports = l; +}), {} ], +138: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +cc.geomUtils = { +Triangle: t("./triangle"), +Aabb: t("./aabb"), +Ray: t("./ray"), +intersect: t("./intersect") +}; +i.default = cc.geomUtils; +e.exports = i.default; +}), { +"./aabb": 137, +"./intersect": 139, +"./ray": 140, +"./triangle": 141 +} ], +139: [ (function(t, e, i) { +"use strict"; +var n = s(t("../../renderer/gfx")), r = s(t("../../renderer/memop/recycle-pool")); +function s(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var o = t("./aabb"), a = t("./ray"), c = t("./triangle"), l = cc.vmath.mat4, h = cc.vmath.vec3, u = {}; +u.rayAabb = (function() { +var t = h.create(), e = h.create(); +return function(i, n) { +var r = i.o, s = i.d, o = 1 / s.x, a = 1 / s.y, c = 1 / s.z; +h.sub(t, n.center, n.halfExtents); +h.add(e, n.center, n.halfExtents); +var l = (t.x - r.x) * o, u = (e.x - r.x) * o, _ = (t.y - r.y) * a, f = (e.y - r.y) * a, d = (t.z - r.z) * c, m = (e.z - r.z) * c, p = Math.max(Math.max(Math.min(l, u), Math.min(_, f)), Math.min(d, m)), v = Math.min(Math.min(Math.max(l, u), Math.max(_, f)), Math.max(d, m)); +return v < 0 || p > v ? 0 : p; +}; +})(); +u.rayTriangle = (function() { +var t = h.create(0, 0, 0), e = h.create(0, 0, 0), i = h.create(0, 0, 0), n = h.create(0, 0, 0), r = h.create(0, 0, 0); +return function(s, o) { +h.sub(t, o.b, o.a); +h.sub(e, o.c, o.a); +h.cross(i, s.d, e); +var a = h.dot(t, i); +if (a <= 0) return 0; +h.sub(n, s.o, o.a); +var c = h.dot(n, i); +if (c < 0 || c > a) return 0; +h.cross(r, n, t); +var l = h.dot(s.d, r); +if (l < 0 || c + l > a) return 0; +var u = h.dot(e, r) / a; +return u < 0 ? 0 : u; +}; +})(); +u.rayMesh = (function() { +var t = c.create(), e = Infinity, i = { +5120: "getInt8", +5121: "getUint8", +5122: "getInt16", +5123: "getUint16", +5124: "getInt32", +5125: "getUint32", +5126: "getFloat32" +}, r = (function() { +var t = new ArrayBuffer(2); +new DataView(t).setInt16(0, 256, !0); +return 256 === new Int16Array(t)[0]; +})(); +function s(t, e, i, n, s) { +h.set(t, e[i](s, r), e[i](s += n, r), e[i](s += n, r)); +} +return function(r, o) { +e = Infinity; +for (var a = o._subMeshes, c = 0; c < a.length; c++) if (a[c]._primitiveType === n.default.PT_TRIANGLES) for (var l = o._vbs[c] || o._vbs[0], h = l.data, _ = new DataView(h.buffer, h.byteOffset, h.byteLength), f = o._ibs[c].data, d = l.buffer._format.element(n.default.ATTR_POSITION), m = d.offset, p = d.stride, v = i[d.type], y = 0; y < f.length; y += 3) { +s(t.a, _, v, 4, f[y] * p + m); +s(t.b, _, v, 4, f[y + 1] * p + m); +s(t.c, _, v, 4, f[y + 2] * p + m); +var g = u.rayTriangle(r, t); +g > 0 && g < e && (e = g); +} +return e; +}; +})(); +u.raycast = (function() { +function t(e, i) { +for (var n = e.children, r = n.length - 1; r >= 0; r--) { +t(n[r], i); +} +i(e); +} +function e(t, e) { +return t.distance - e.distance; +} +function i(t, e, i) { +var n = e.x, r = e.y, s = e.z, o = i.m03 * n + i.m07 * r + i.m11 * s; +o = o ? 1 / o : 1; +t.x = (i.m00 * n + i.m04 * r + i.m08 * s) * o; +t.y = (i.m01 * n + i.m05 * r + i.m09 * s) * o; +t.z = (i.m02 * n + i.m06 * r + i.m10 * s) * o; +return t; +} +var n = new r.default(function() { +return { +distance: 0, +node: null +}; +}, 1), s = [], c = o.create(), _ = h.create(), f = h.create(), d = a.create(), m = l.create(), p = l.create(), v = h.create(); +function y(t) { +return t > 0 && t < Infinity; +} +return function(r, a, g, x) { +n.reset(); +s.length = 0; +t(r = r || cc.director.getScene(), (function(t) { +if (!x || x(t)) { +l.invert(p, t.getWorldMatrix(m)); +h.transformMat4(d.o, a.o, p); +h.normalize(d.d, i(d.d, a.d, p)); +var e = Infinity, r = t._renderComponent; +if (r && r._boundingBox) e = u.rayAabb(d, r._boundingBox); else if (t.width && t.height) { +h.set(_, -t.width * t.anchorX, -t.height * t.anchorY, t.z); +h.set(f, t.width * (1 - t.anchorX), t.height * (1 - t.anchorY), t.z); +o.fromPoints(c, _, f); +e = u.rayAabb(d, c); +} +if (y(e)) { +g && (e = g(d, t, e)); +if (y(e)) { +h.scale(v, d.d, e); +i(v, v, m); +var C = n.add(); +C.node = t; +C.distance = cc.vmath.vec3.mag(v); +s.push(C); +} +} +} +})); +s.sort(e); +return s; +}; +})(); +e.exports = u; +}), { +"../../renderer/gfx": 349, +"../../renderer/memop/recycle-pool": 364, +"./aabb": 137, +"./ray": 140, +"./triangle": 141 +} ], +140: [ (function(t, e, i) { +"use strict"; +var n = cc.vmath.vec3; +function r(t, e, i, r, s, o) { +this.o = n.create(t, e, i); +this.d = n.create(r, s, o); +} +r.create = function(t, e, i, n, s, o) { +return new r(t, e, i, n, s, o); +}; +r.clone = function(t) { +return new r(t.o.x, t.o.y, t.o.z, t.d.x, t.d.y, t.d.z); +}; +r.copy = function(t, e) { +t.o.x = e.o.x; +t.o.y = e.o.y; +t.o.z = e.o.z; +t.d.x = e.d.x; +t.d.y = e.d.y; +t.d.z = e.d.z; +return t; +}; +r.set = function(t, e, i, n, r, s, o) { +t.o.x = e; +t.o.y = i; +t.o.z = n; +t.d.x = r; +t.d.y = s; +t.d.z = o; +return t; +}; +r.fromPoints = function(t, e, i) { +n.copy(t.o, e); +n.normalize(t.d, n.sub(t.d, i, e)); +return t; +}; +e.exports = r; +}), {} ], +141: [ (function(t, e, i) { +"use strict"; +var n = cc.vmath.vec3; +function r(t, e, i, r, s, o, a, c, l) { +this.a = n.create(t, e, i); +this.b = n.create(r, s, o); +this.c = n.create(a, c, l); +} +r.create = function(t, e, i, n, s, o, a, c, l) { +return new r(t, e, i, n, s, o, a, c, l); +}; +r.clone = function(t) { +return new r(t.a.x, t.a.y, t.a.z, t.b.x, t.b.y, t.b.z, t.c.x, t.c.y, t.c.z); +}; +r.copy = function(t, e) { +n.copy(t.a, e.a); +n.copy(t.b, e.b); +n.copy(t.c, e.c); +return t; +}; +r.fromPoints = function(t, e, i, r) { +n.copy(t.a, e); +n.copy(t.b, i); +n.copy(t.c, r); +return t; +}; +r.set = function(t, e, i, n, r, s, o, a, c, l) { +t.a.x = e; +t.a.y = i; +t.a.z = n; +t.b.x = r; +t.b.y = s; +t.b.z = o; +t.c.x = a; +t.c.y = c; +t.c.z = l; +return t; +}; +e.exports = r; +}), {} ], +142: [ (function(t, e, i) { +"use strict"; +var n = t("../components/CCRenderComponent"), r = t("../assets/material/CCMaterial"), s = t("./types"), o = s.LineCap, a = s.LineJoin, c = cc.Class({ +name: "cc.Graphics", +extends: n, +editor: !1, +ctor: function() { +this._impl = c._assembler.createImpl(this); +}, +properties: { +_lineWidth: 1, +_strokeColor: cc.Color.BLACK, +_lineJoin: a.MITER, +_lineCap: o.BUTT, +_fillColor: cc.Color.WHITE, +_miterLimit: 10, +lineWidth: { +get: function() { +return this._lineWidth; +}, +set: function(t) { +this._lineWidth = t; +this._impl.lineWidth = t; +} +}, +lineJoin: { +get: function() { +return this._lineJoin; +}, +set: function(t) { +this._lineJoin = t; +this._impl.lineJoin = t; +}, +type: a +}, +lineCap: { +get: function() { +return this._lineCap; +}, +set: function(t) { +this._lineCap = t; +this._impl.lineCap = t; +}, +type: o +}, +strokeColor: { +get: function() { +return this._strokeColor; +}, +set: function(t) { +this._impl.strokeColor = this._strokeColor = cc.color(t); +} +}, +fillColor: { +get: function() { +return this._fillColor; +}, +set: function(t) { +this._impl.fillColor = this._fillColor = cc.color(t); +} +}, +miterLimit: { +get: function() { +return this._miterLimit; +}, +set: function(t) { +this._miterLimit = t; +this._impl.miterLimit = t; +} +} +}, +statics: { +LineJoin: a, +LineCap: o +}, +onRestore: function() { +this._impl || (this._impl = c._assembler.createImpl()); +}, +onEnable: function() { +this._super(); +this._activateMaterial(); +}, +onDestroy: function() { +this._super(); +this._impl.clear(this, !0); +this._impl = null; +}, +_activateMaterial: function() { +if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { +this.node._renderFlag &= ~cc.RenderFlow.FLAG_RENDER; +this.node._renderFlag |= cc.RenderFlow.FLAG_CUSTOM_IA_RENDER; +var t = this.sharedMaterials[0]; +(t = t ? r.getInstantiatedMaterial(t, this) : r.getInstantiatedBuiltinMaterial("2d-base", this)).define("_USE_MODEL", !0); +this.setMaterial(0, t); +} else this.disableRender(); +}, +moveTo: function(t, e) { +0; +this._impl.moveTo(t, e); +}, +lineTo: function(t, e) { +0; +this._impl.lineTo(t, e); +}, +bezierCurveTo: function(t, e, i, n, r, s) { +this._impl.bezierCurveTo(t, e, i, n, r, s); +}, +quadraticCurveTo: function(t, e, i, n) { +this._impl.quadraticCurveTo(t, e, i, n); +}, +arc: function(t, e, i, n, r, s) { +this._impl.arc(t, e, i, n, r, s); +}, +ellipse: function(t, e, i, n) { +this._impl.ellipse(t, e, i, n); +}, +circle: function(t, e, i) { +this._impl.circle(t, e, i); +}, +rect: function(t, e, i, n) { +this._impl.rect(t, e, i, n); +}, +roundRect: function(t, e, i, n, r) { +this._impl.roundRect(t, e, i, n, r); +}, +fillRect: function(t, e, i, n) { +this.rect(t, e, i, n); +this.fill(); +}, +clear: function(t) { +this._impl.clear(this, t); +}, +close: function() { +this._impl.close(); +}, +stroke: function() { +c._assembler.stroke(this); +}, +fill: function() { +c._assembler.fill(this); +} +}); +cc.Graphics = e.exports = c; +}), { +"../assets/material/CCMaterial": 75, +"../components/CCRenderComponent": 106, +"./types": 145 +} ], +143: [ (function(t, e, i) { +"use strict"; +var n = t("./types").PointFlags, r = Math.PI, s = Math.min, o = Math.max, a = Math.cos, c = Math.sin, l = Math.abs, h = Math.sign, u = .5522847493; +e.exports = { +arc: function(t, e, i, n, h, u, _) { +var f, d, m, p = 0, v = 0, y = 0, g = 0, x = 0, C = 0, b = 0, A = 0, S = 0, w = 0, T = 0, E = 0, M = 0; +v = u - h; +if (_ = _ || !1) if (l(v) >= 2 * r) v = 2 * r; else for (;v < 0; ) v += 2 * r; else if (l(v) >= 2 * r) v = 2 * -r; else for (;v > 0; ) v -= 2 * r; +m = 0 | o(1, s(l(v) / (.5 * r) + .5, 5)); +y = l(4 / 3 * (1 - a(f = v / m / 2)) / c(f)); +_ || (y = -y); +for (d = 0; d <= m; d++) { +g = a(p = h + v * (d / m)); +x = c(p); +C = e + g * n; +b = i + x * n; +A = -x * n * y; +S = g * n * y; +0 === d ? t.moveTo(C, b) : t.bezierCurveTo(w + E, T + M, C - A, b - S, C, b); +w = C; +T = b; +E = A; +M = S; +} +}, +ellipse: function(t, e, i, n, r) { +t.moveTo(e - n, i); +t.bezierCurveTo(e - n, i + r * u, e - n * u, i + r, e, i + r); +t.bezierCurveTo(e + n * u, i + r, e + n, i + r * u, e + n, i); +t.bezierCurveTo(e + n, i - r * u, e + n * u, i - r, e, i - r); +t.bezierCurveTo(e - n * u, i - r, e - n, i - r * u, e - n, i); +t.close(); +}, +roundRect: function(t, e, i, n, r, o) { +if (o < .1) t.rect(e, i, n, r); else { +var a = s(o, .5 * l(n)) * h(n), c = s(o, .5 * l(r)) * h(r); +t.moveTo(e, i + c); +t.lineTo(e, i + r - c); +t.bezierCurveTo(e, i + r - c * (1 - u), e + a * (1 - u), i + r, e + a, i + r); +t.lineTo(e + n - a, i + r); +t.bezierCurveTo(e + n - a * (1 - u), i + r, e + n, i + r - c * (1 - u), e + n, i + r - c); +t.lineTo(e + n, i + c); +t.bezierCurveTo(e + n, i + c * (1 - u), e + n - a * (1 - u), i, e + n - a, i); +t.lineTo(e + a, i); +t.bezierCurveTo(e + a * (1 - u), i, e, i + c * (1 - u), e, i + c); +t.close(); +} +}, +tesselateBezier: function t(e, i, r, s, o, a, c, h, u, _, f) { +var d, m, p, v, y, g, x, C, b, A, S, w, T, E, M, B; +if (!(_ > 10)) { +y = .5 * (a + h); +g = .5 * (c + u); +x = .5 * ((d = .5 * (i + s)) + (p = .5 * (s + a))); +C = .5 * ((m = .5 * (r + o)) + (v = .5 * (o + c))); +if (((M = l((s - h) * (E = u - r) - (o - u) * (T = h - i))) + (B = l((a - h) * E - (c - u) * T))) * (M + B) < e._tessTol * (T * T + E * E)) e._addPoint(h, u, 0 === f ? f | n.PT_BEVEL : f); else { +t(e, i, r, d, m, x, C, S = .5 * (x + (b = .5 * (p + y))), w = .5 * (C + (A = .5 * (v + g))), _ + 1, 0); +t(e, S, w, b, A, y, g, h, u, _ + 1, f); +} +} +} +}; +}), { +"./types": 145 +} ], +144: [ (function(t, e, i) { +"use strict"; +t("./graphics"); +}), { +"./graphics": 142 +} ], +145: [ (function(t, e, i) { +"use strict"; +var n = cc.Enum({ +BUTT: 0, +ROUND: 1, +SQUARE: 2 +}), r = cc.Enum({ +BEVEL: 0, +ROUND: 1, +MITER: 2 +}), s = cc.Enum({ +PT_CORNER: 1, +PT_LEFT: 2, +PT_BEVEL: 4, +PT_INNERBEVEL: 8 +}); +e.exports = { +LineCap: n, +LineJoin: r, +PointFlags: s +}; +}), {} ], +146: [ (function(t, e, i) { +"use strict"; +t("./platform"); +t("./assets"); +t("./CCNode"); +t("./CCPrivateNode"); +t("./CCScene"); +t("./components"); +t("./graphics"); +t("./collider"); +t("./collider/CCIntersection"); +t("./physics"); +t("./camera/CCCamera"); +t("./geom-utils"); +t("./mesh"); +t("./3d"); +t("./3d/polyfill-3d"); +t("./base-ui/CCWidgetManager"); +}), { +"./3d": 29, +"./3d/polyfill-3d": 30, +"./CCNode": 52, +"./CCPrivateNode": 53, +"./CCScene": 54, +"./assets": 74, +"./base-ui/CCWidgetManager": 79, +"./camera/CCCamera": 80, +"./collider": 88, +"./collider/CCIntersection": 86, +"./components": 125, +"./geom-utils": 138, +"./graphics": 144, +"./mesh": 169, +"./physics": 184, +"./platform": 218 +} ], +147: [ (function(i, n, r) { +"use strict"; +var s = i("../platform/js"), o = i("./pipeline"), a = i("./loading-items"), c = i("./asset-loader"), l = i("./downloader"), h = i("./loader"), u = i("./asset-table"), _ = i("../platform/utils").callInNextTick, f = i("./auto-release-utils"), d = Object.create(null); +d.assets = new u(); +d.internal = new u(); +var m = { +url: null, +raw: !1 +}; +function p(i) { +var n, r, s; +if ("object" === ("object" === (e = typeof i) ? t(i) : e)) { +r = i; +if (i.url) return r; +n = i.uuid; +} else { +r = {}; +n = i; +} +s = r.type ? "uuid" === r.type : cc.AssetLibrary._uuidInSettings(n); +cc.AssetLibrary._getAssetInfoInRuntime(n, m); +r.url = s ? m.url : n; +if (m.url && "uuid" === r.type && m.raw) { +r.type = null; +r.isRawAsset = !0; +} else s || (r.isRawAsset = !0); +return r; +} +var v = [], y = []; +function g() { +var t = new c(), e = new l(), i = new h(); +o.call(this, [ t, e, i ]); +this.assetLoader = t; +this.md5Pipe = null; +this.downloader = e; +this.loader = i; +this.onProgress = null; +this._autoReleaseSetting = s.createMap(!0); +0; +} +s.extend(g, o); +var x = g.prototype; +x.init = function(t) {}; +x.getXMLHttpRequest = function() { +return window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP"); +}; +x.addDownloadHandlers = function(t) { +this.downloader.addHandlers(t); +}; +x.addLoadHandlers = function(t) { +this.loader.addHandlers(t); +}; +x.load = function(t, e, i) { +0; +if (void 0 === i) { +i = e; +e = this.onProgress || null; +} +var n, r = this, s = !1; +if (!(t instanceof Array)) if (t) { +s = !0; +t = [ t ]; +} else t = []; +v.length = 0; +for (var o = 0; o < t.length; ++o) { +var c = t[o]; +if (c && c.id) { +cc.warnID(4920, c.id); +c.uuid || c.url || (c.url = c.id); +} +if ((n = p(c)).url || n.uuid) { +var l = this._cache[n.url]; +v.push(l || n); +} +} +var h = a.create(this, e, (function(t, e) { +_((function() { +if (i) { +if (s) { +var o = n.url; +i.call(r, t, e.getContent(o)); +} else i.call(r, t, e); +i = null; +} +e.destroy(); +})); +})); +a.initQueueDeps(h); +h.append(v); +v.length = 0; +}; +x.flowInDeps = function(t, e, i) { +y.length = 0; +for (var n = 0; n < e.length; ++n) { +var r = p(e[n]); +if (r.url || r.uuid) { +var s = this._cache[r.url]; +s ? y.push(s) : y.push(r); +} +} +var o = a.create(this, t ? function(t, e, i) { +this._ownerQueue && this._ownerQueue.onProgress && this._ownerQueue._childOnProgress(i); +} : null, (function(e, n) { +i(e, n); +t && t.deps && (t.deps.length = 0); +n.destroy(); +})); +if (t) { +var c = a.getQueue(t); +o._ownerQueue = c._ownerQueue || c; +} +var l = o.append(y, t); +y.length = 0; +return l; +}; +x._assetTables = d; +x._getResUuid = function(t, e, i, n) { +var r = d[i = i || "assets"]; +if (!t || !r) return null; +var s = t.indexOf("?"); +-1 !== s && (t = t.substr(0, s)); +var o = r.getUuid(t, e); +if (!o) { +var a = cc.path.extname(t); +if (a) { +t = t.slice(0, -a.length); +(o = r.getUuid(t, e)) && !n && cc.warnID(4901, t, a); +} +} +return o; +}; +x._getReferenceKey = function(i) { +var n; +"object" === ("object" === (e = typeof i) ? t(i) : e) ? n = i._uuid || null : "string" === ("object" === (e = typeof i) ? t(i) : e) && (n = this._getResUuid(i, null, null, !0) || i); +if (!n) { +cc.warnID(4800, i); +return n; +} +cc.AssetLibrary._getAssetInfoInRuntime(n, m); +return this._cache[m.url] ? m.url : n; +}; +x._urlNotFound = function(t, e, i) { +_((function() { +t = cc.url.normalize(t); +var n = (e ? s.getClassName(e) : "Asset") + ' in "resources/' + t + '" does not exist.'; +i && i(new Error(n), []); +})); +}; +x._parseLoadResArgs = function(t, e, i) { +if (void 0 === i) { +var n = t instanceof Array || s.isChildClassOf(t, cc.RawAsset); +if (e) { +i = e; +n && (e = this.onProgress || null); +} else if (void 0 === e && !n) { +i = t; +e = this.onProgress || null; +t = null; +} +if (void 0 !== e && !n) { +e = t; +t = null; +} +} +return { +type: t, +onProgress: e, +onComplete: i +}; +}; +x.loadRes = function(t, e, i, n, r) { +if (5 !== arguments.length) { +r = n; +n = i; +i = "assets"; +} +var s = this._parseLoadResArgs(e, n, r); +e = s.type; +n = s.onProgress; +r = s.onComplete; +var o = this, a = o._getResUuid(t, e, i); +a ? this.load({ +type: "uuid", +uuid: a +}, n, (function(t, e) { +e && o.setAutoReleaseRecursively(a, !1); +r && r(t, e); +})) : o._urlNotFound(t, e, r); +}; +x._loadResUuids = function(t, e, i, n) { +if (t.length > 0) { +var r = this, s = t.map((function(t) { +return { +type: "uuid", +uuid: t +}; +})); +this.load(s, e, (function(t, e) { +if (i) { +for (var o = [], a = n && [], c = 0; c < s.length; ++c) { +var l = s[c].uuid, h = this._getReferenceKey(l), u = e.getContent(h); +if (u) { +r.setAutoReleaseRecursively(l, !1); +o.push(u); +a && a.push(n[c]); +} +} +n ? i(t, o, a) : i(t, o); +} +})); +} else i && _((function() { +n ? i(null, [], []) : i(null, []); +})); +}; +x.loadResArray = function(t, e, i, n, r) { +if (5 !== arguments.length) { +r = n; +n = i; +i = "assets"; +} +var s = this._parseLoadResArgs(e, n, r); +e = s.type; +n = s.onProgress; +r = s.onComplete; +for (var o = [], a = e instanceof Array, c = 0; c < t.length; c++) { +var l = t[c], h = a ? e[c] : e, u = this._getResUuid(l, h, i); +if (!u) { +this._urlNotFound(l, h, r); +return; +} +o.push(u); +} +this._loadResUuids(o, n, r); +}; +x.loadResDir = function(t, e, i, n, r) { +if (5 !== arguments.length) { +r = n; +n = i; +i = "assets"; +} +if (d[i]) { +var s = this._parseLoadResArgs(e, n, r); +e = s.type; +n = s.onProgress; +r = s.onComplete; +var o = [], a = d[i].getUuidArray(t, e, o); +this._loadResUuids(a, n, r, o); +} +}; +x.getRes = function(t, e) { +var i = this._cache[t]; +if (!i) { +var n = this._getResUuid(t, e, null, !0); +if (!n) return null; +var r = this._getReferenceKey(n); +i = this._cache[r]; +} +i && i.alias && (i = i.alias); +return i && i.complete ? i.content : null; +}; +x.getResCount = function() { +return Object.keys(this._cache).length; +}; +x.getDependsRecursively = function(t) { +if (t) { +var e = this._getReferenceKey(t), i = f.getDependsRecursively(e); +i.push(e); +return i; +} +return []; +}; +x.release = function(t) { +if (Array.isArray(t)) for (var e = 0; e < t.length; e++) { +var i = t[e]; +this.release(i); +} else if (t) { +var n = this._getReferenceKey(t); +if (n && n in cc.AssetLibrary.getBuiltinDeps()) return; +var r = this.getItem(n); +if (r) { +this.removeItem(n); +t = r.content; +0; +} +if (t instanceof cc.Asset) { +var s = t.nativeUrl; +s && this.release(s); +t.destroy(); +} +} +}; +x.releaseAsset = function(t) { +var e = t._uuid; +e && this.release(e); +}; +x.releaseRes = function(t, e, i) { +var n = this._getResUuid(t, e, i); +n ? this.release(n) : cc.errorID(4914, t); +}; +x.releaseResDir = function(t, e, i) { +if (d[i = i || "assets"]) for (var n = d[i].getUuidArray(t, e), r = 0; r < n.length; r++) { +var s = n[r]; +this.release(s); +} +}; +x.releaseAll = function() { +for (var t in this._cache) this.release(t); +}; +x.removeItem = function(t) { +var e = o.prototype.removeItem.call(this, t); +delete this._autoReleaseSetting[t]; +return e; +}; +x.setAutoRelease = function(t, e) { +var i = this._getReferenceKey(t); +i && (this._autoReleaseSetting[i] = !!e); +}; +x.setAutoReleaseRecursively = function(t, e) { +e = !!e; +var i = this._getReferenceKey(t); +if (i) { +this._autoReleaseSetting[i] = e; +for (var n = f.getDependsRecursively(i), r = 0; r < n.length; r++) { +var s = n[r]; +this._autoReleaseSetting[s] = e; +} +} else 0; +}; +x.isAutoRelease = function(t) { +var e = this._getReferenceKey(t); +return !!e && !!this._autoReleaseSetting[e]; +}; +cc.loader = new g(); +0; +n.exports = cc.loader; +}), { +"../platform/js": 221, +"../platform/utils": 225, +"./asset-loader": 148, +"./asset-table": 149, +"./auto-release-utils": 151, +"./downloader": 153, +"./loader": 156, +"./loading-items": 157, +"./pipeline": 160, +"./released-asset-checker": 161 +} ], +148: [ (function(t, e, i) { +"use strict"; +t("../utils/CCPath"); +var n = t("../CCDebug"), r = t("./pipeline"), s = t("./loading-items"), o = "AssetLoader", a = function(t) { +this.id = o; +this.async = !0; +this.pipeline = null; +}; +a.ID = o; +var c = []; +a.prototype.handle = function(t, e) { +var i = t.uuid; +if (!i) return t.content || null; +cc.AssetLibrary.queryAssetInfo(i, (function(r, o, a) { +if (r) e(r); else { +t.url = t.rawUrl = o; +t.isRawAsset = a; +if (a) { +var l = cc.path.extname(o).toLowerCase(); +if (!l) { +e(new Error(n.getError(4931, i, o))); +return; +} +l = l.substr(1); +var h = s.getQueue(t); +c[0] = { +queueId: t.queueId, +id: o, +url: o, +type: l, +error: null, +alias: t, +complete: !0 +}; +0; +h.append(c); +t.type = l; +e(null, t.content); +} else { +t.type = "uuid"; +e(null, t.content); +} +} +})); +}; +r.AssetLoader = e.exports = a; +}), { +"../CCDebug": 49, +"../utils/CCPath": 285, +"./loading-items": 157, +"./pipeline": 160 +} ], +149: [ (function(t, e, i) { +"use strict"; +var n = t("../utils/misc").pushToMap, r = t("../platform/js"); +function s(t, e) { +this.uuid = t; +this.type = e; +} +function o() { +this._pathToUuid = r.createMap(!0); +} +function a(t, e) { +if (t.length > e.length) { +var i = t.charCodeAt(e.length); +return 46 === i || 47 === i; +} +return !0; +} +var c = o.prototype; +c.getUuid = function(t, e) { +t = cc.url.normalize(t); +var i = this._pathToUuid[t]; +if (i) if (Array.isArray(i)) { +if (!e) return i[0].uuid; +for (var n = 0; n < i.length; n++) { +var s = i[n]; +if (r.isChildClassOf(s.type, e)) return s.uuid; +} +} else { +if (!e || r.isChildClassOf(i.type, e)) return i.uuid; +0; +} +return ""; +}; +c.getUuidArray = function(t, e, i) { +"/" === (t = cc.url.normalize(t))[t.length - 1] && (t = t.slice(0, -1)); +var n = this._pathToUuid, s = [], o = r.isChildClassOf; +for (var c in n) if (c.startsWith(t) && a(c, t) || !t) { +var l = n[c]; +if (Array.isArray(l)) for (var h = 0; h < l.length; h++) { +var u = l[h]; +if (!e || o(u.type, e)) { +s.push(u.uuid); +i && i.push(c); +} else 0; +} else if (!e || o(l.type, e)) { +s.push(l.uuid); +i && i.push(c); +} else 0; +} +0; +return s; +}; +c.add = function(t, e, i, r) { +t = t.substring(0, t.length - cc.path.extname(t).length); +var o = new s(e, i); +n(this._pathToUuid, t, o, r); +}; +c._getInfo_DEBUG = !1; +c.reset = function() { +this._pathToUuid = r.createMap(!0); +}; +e.exports = o; +}), { +"../platform/js": 221, +"../utils/misc": 297 +} ], +150: [ (function(t, e, i) { +"use strict"; +var n = t("../platform/CCSys"), r = t("../CCDebug"), s = n.__audioSupport, o = s.format, a = s.context; +function c(t, e) { +var i = document.createElement("audio"); +i.src = t.url; +var n = cc.sys.platform === cc.sys.XIAOMI_GAME, r = cc.sys.platform === cc.sys.BAIDU_GAME, o = cc.sys.platform === cc.sys.ALIPAY_GAME; +if (r || n || o) e(null, i); else { +var a = function() { +clearTimeout(c); +i.removeEventListener("canplaythrough", l, !1); +i.removeEventListener("error", h, !1); +s.USE_LOADER_EVENT && i.removeEventListener(s.USE_LOADER_EVENT, l, !1); +}, c = setTimeout((function() { +0 === i.readyState ? h() : l(); +}), 8e3), l = function() { +a(); +e(null, i); +}, h = function() { +a(); +var i = "load audio failure - " + t.url; +cc.log(i); +e(i); +}; +i.addEventListener("canplaythrough", l, !1); +i.addEventListener("error", h, !1); +s.USE_LOADER_EVENT && i.addEventListener(s.USE_LOADER_EVENT, l, !1); +} +} +function l(t, e) { +a || e(new Error(r.getError(4926))); +var i = cc.loader.getXMLHttpRequest(); +i.open("GET", t.url, !0); +i.responseType = "arraybuffer"; +i.onload = function() { +a.decodeAudioData(i.response, (function(t) { +e(null, t); +}), (function() { +e("decode error - " + t.id, null); +})); +}; +i.onerror = function() { +e("request error - " + t.id, null); +}; +i.send(); +} +e.exports = function(t, e) { +if (0 === o.length) return new Error(r.getError(4927)); +var i; +i = s.WEB_AUDIO ? t._owner instanceof cc.AudioClip ? t._owner.loadMode === cc.AudioClip.LoadMode.WEB_AUDIO ? l : c : t.urlParam && t.urlParam.useDom ? c : l : c; +i(t, e); +}; +}), { +"../CCDebug": 49, +"../platform/CCSys": 210 +} ], +151: [ (function(i, n, r) { +"use strict"; +var s = i("../platform/js"); +function o(t, e) { +var i = cc.loader.getItem(t); +if (i) { +var n = i.dependKeys; +if (n) for (var r = 0; r < n.length; r++) { +var s = n[r]; +if (!e[s]) { +e[s] = !0; +o(s, e); +} +} +} +} +function a(t, e) { +if (t._uuid) { +var i = cc.loader._getReferenceKey(t); +if (!e[i]) { +e[i] = !0; +o(i, e); +} +} +} +function c(i, n) { +for (var r = Object.getOwnPropertyNames(i), s = 0; s < r.length; s++) { +var o = i[r[s]]; +if ("object" === ("object" === (e = typeof o) ? t(o) : e) && o) if (Array.isArray(o)) for (var c = 0; c < o.length; c++) { +var l = o[c]; +l instanceof cc.RawAsset && a(l, n); +} else if (o.constructor && o.constructor !== Object) o instanceof cc.RawAsset && a(o, n); else for (var h = Object.getOwnPropertyNames(o), u = 0; u < h.length; u++) { +var _ = o[h[u]]; +_ instanceof cc.RawAsset && a(_, n); +} +} +} +function l(t, e) { +for (var i = 0; i < t._components.length; i++) c(t._components[i], e); +for (var n = 0; n < t._children.length; n++) l(t._children[n], e); +} +n.exports = { +autoRelease: function(t, e, i) { +var n = cc.loader._autoReleaseSetting, r = s.createMap(); +if (e) for (var o = 0; o < e.length; o++) r[e[o]] = !0; +for (var a = 0; a < i.length; a++) l(i[a], r); +if (t) for (var c = 0; c < t.length; c++) { +var h = t[c]; +!1 === n[h] || r[h] || cc.loader.release(h); +} +for (var u = Object.keys(n), _ = 0; _ < u.length; _++) { +var f = u[_]; +!0 !== n[f] || r[f] || cc.loader.release(f); +} +}, +getDependsRecursively: function(t) { +var e = {}; +o(t, e); +return Object.keys(e); +} +}; +}), { +"../platform/js": 221 +} ], +152: [ (function(t, e, i) { +"use strict"; +e.exports = function(t, e) { +var i = t.url, n = cc.loader.getXMLHttpRequest(), r = "Load binary data failed: " + i; +n.open("GET", i, !0); +n.responseType = "arraybuffer"; +n.onload = function() { +var t = n.response; +if (t) { +var i = new Uint8Array(t); +e(null, i); +} else e({ +status: n.status, +errorMessage: r + "(no response)" +}); +}; +n.onerror = function() { +e({ +status: n.status, +errorMessage: r + "(error)" +}); +}; +n.ontimeout = function() { +e({ +status: n.status, +errorMessage: r + "(time out)" +}); +}; +n.send(null); +}; +}), {} ], +153: [ (function(t, e, i) { +"use strict"; +var n = t("../platform/js"), r = t("../CCDebug"); +t("../utils/CCPath"); +var s, o = t("./pipeline"), a = t("./pack-downloader"), c = t("./binary-downloader"), l = t("./text-downloader"), h = t("./utils").urlAppendTimestamp; +function u() { +return null; +} +function _(t, e, i) { +var n = t.url, s = document, o = document.createElement("script"); +"file:" !== window.location.protocol && (o.crossOrigin = "anonymous"); +o.async = i; +o.src = h(n); +function a() { +o.parentNode.removeChild(o); +o.removeEventListener("load", a, !1); +o.removeEventListener("error", c, !1); +e(null, n); +} +function c() { +o.parentNode.removeChild(o); +o.removeEventListener("load", a, !1); +o.removeEventListener("error", c, !1); +e(new Error(r.getError(4928, n))); +} +o.addEventListener("load", a, !1); +o.addEventListener("error", c, !1); +s.body.appendChild(o); +} +function f(t, e, i, n) { +void 0 === i && (i = !0); +var s = h(t.url); +n = n || new Image(); +i && "file:" !== window.location.protocol ? n.crossOrigin = "anonymous" : n.crossOrigin = null; +if (n.complete && n.naturalWidth > 0 && n.src === s) return n; +var o = function i() { +n.removeEventListener("load", i); +n.removeEventListener("error", a); +n.id = t.id; +e(null, n); +}, a = function i() { +n.removeEventListener("load", o); +n.removeEventListener("error", i); +"https:" !== window.location.protocol && n.crossOrigin && "anonymous" === n.crossOrigin.toLowerCase() ? f(t, e, !1, n) : e(new Error(r.getError(4930, s))); +}; +n.addEventListener("load", o); +n.addEventListener("error", a); +n.src = s; +} +var d = { +js: _, +png: f, +jpg: f, +bmp: f, +jpeg: f, +gif: f, +ico: f, +tiff: f, +webp: function(t, e, i, n) { +return cc.sys.capabilities.webp ? f(t, e, i, n) : new Error(r.getError(4929, t.url)); +}, +image: f, +pvr: c, +pkm: c, +mp3: s = t("./audio-downloader"), +ogg: s, +wav: s, +m4a: s, +txt: l, +xml: l, +vsh: l, +fsh: l, +atlas: l, +tmx: l, +tsx: l, +json: l, +ExportJson: l, +plist: l, +fnt: l, +font: u, +eot: u, +ttf: u, +woff: u, +svg: u, +ttc: u, +uuid: function(t, e) { +var i = a.load(t, e); +return void 0 === i ? this.extMap.json(t, e) : i || void 0; +}, +binary: c, +bin: c, +dbbin: c, +default: l +}, m = "Downloader", p = function(t) { +this.id = m; +this.async = !0; +this.pipeline = null; +this._curConcurrent = 0; +this._loadQueue = []; +this._subpackages = {}; +this.extMap = n.mixin(t, d); +}; +p.ID = m; +p.PackDownloader = a; +p.prototype.addHandlers = function(t) { +n.mixin(this.extMap, t); +}; +p.prototype._handleLoadQueue = function() { +for (;this._curConcurrent < cc.macro.DOWNLOAD_MAX_CONCURRENT; ) { +var t = this._loadQueue.shift(); +if (!t) break; +var e = this.handle(t.item, t.callback); +void 0 !== e && (e instanceof Error ? t.callback(e) : t.callback(null, e)); +} +}; +p.prototype.handle = function(t, e) { +var i = this, n = this.extMap[t.type] || this.extMap.default, r = void 0; +if (this._curConcurrent < cc.macro.DOWNLOAD_MAX_CONCURRENT) { +this._curConcurrent++; +if (void 0 !== (r = n.call(this, t, (function(t, n) { +i._curConcurrent = Math.max(0, i._curConcurrent - 1); +i._handleLoadQueue(); +e && e(t, n); +})))) { +this._curConcurrent = Math.max(0, this._curConcurrent - 1); +this._handleLoadQueue(); +return r; +} +} else if (t.ignoreMaxConcurrency) { +if (void 0 !== (r = n.call(this, t, e))) return r; +} else this._loadQueue.push({ +item: t, +callback: e +}); +}; +p.prototype.loadSubpackage = function(t, e) { +var i = this._subpackages[t]; +i ? i.loaded ? e && e() : _({ +url: i.path + "index.js" +}, (function(t) { +t || (i.loaded = !0); +e && e(t); +})) : e && e(new Error("Can't find subpackage " + t)); +}; +o.Downloader = e.exports = p; +}), { +"../CCDebug": 49, +"../platform/js": 221, +"../utils/CCPath": 285, +"./audio-downloader": 150, +"./binary-downloader": 152, +"./pack-downloader": 159, +"./pipeline": 160, +"./text-downloader": 163, +"./utils": 165 +} ], +154: [ (function(t, e, i) { +"use strict"; +var n = t("../utils/text-utils"), r = null, s = "BES bswy:->@123丁ぁᄁ", o = {}, a = -1, c = [], l = 3e3, h = (function() { +var t = void 0; +return function() { +if (void 0 === t) if (window.FontFace) { +var e = /Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent), i = /OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent) && /Apple/.exec(window.navigator.vendor); +t = e ? parseInt(e[1], 10) > 42 : !i; +} else t = !1; +return t; +}; +})(); +function u() { +for (var t = !0, e = Date.now(), i = c.length - 1; i >= 0; i--) { +var o = c[i], h = o.fontFamilyName; +if (e - o.startTime > l) { +cc.warnID(4933, h); +o.callback(null, h); +c.splice(i, 1); +} else { +var u = o.refWidth; +r.font = "40px " + h; +if (u !== n.safeMeasureText(r, s)) { +c.splice(i, 1); +o.callback(null, h); +} else t = !1; +} +} +if (t) { +clearInterval(a); +a = -1; +} +} +function _(t, e, i) { +var n = new Promise(function(i, n) { +(function r() { +Date.now() - t >= l ? n() : document.fonts.load("40px " + e).then((function(t) { +t.length >= 1 ? i() : setTimeout(r, 100); +}), (function() { +n(); +})); +})(); +}), r = null, s = new Promise(function(t, e) { +r = setTimeout(e, l); +}); +Promise.race([ s, n ]).then((function() { +if (r) { +clearTimeout(r); +r = null; +} +i(null, e); +}), (function() { +cc.warnID(4933, e); +i(null, e); +})); +} +var f = { +loadFont: function(t, e) { +var i = t.url, l = f._getFontFamily(i); +if (o[l]) return l; +if (!r) { +var d = document.createElement("canvas"); +d.width = 100; +d.height = 100; +r = d.getContext("2d"); +} +var m = "40px " + l; +r.font = m; +var p = n.safeMeasureText(r, s), v = document.createElement("style"); +v.type = "text/css"; +var y = ""; +isNaN(l - 0) ? y += "@font-face { font-family:" + l + "; src:" : y += "@font-face { font-family:'" + l + "'; src:"; +y += "url('" + i + "');"; +v.textContent = y + "}"; +document.body.appendChild(v); +var g = document.createElement("div"), x = g.style; +x.fontFamily = l; +g.innerHTML = "."; +x.position = "absolute"; +x.left = "-100px"; +x.top = "-100px"; +document.body.appendChild(g); +if (h()) _(Date.now(), l, e); else { +var C = { +fontFamilyName: l, +refWidth: p, +callback: e, +startTime: Date.now() +}; +c.push(C); +-1 === a && (a = setInterval(u, 100)); +} +o[l] = v; +}, +_getFontFamily: function(t) { +var e = t.lastIndexOf(".ttf"); +if (-1 === e) return t; +var i, n = t.lastIndexOf("/"); +-1 !== (i = -1 === n ? t.substring(0, e) + "_LABEL" : t.substring(n + 1, e) + "_LABEL").indexOf(" ") && (i = '"' + i + '"'); +return i; +} +}; +e.exports = f; +}), { +"../utils/text-utils": 303 +} ], +155: [ (function(t, e, i) { +"use strict"; +t("./downloader"); +t("./loader"); +t("./loading-items"); +t("./pipeline"); +t("./CCLoader"); +}), { +"./CCLoader": 147, +"./downloader": 153, +"./loader": 156, +"./loading-items": 157, +"./pipeline": 160 +} ], +156: [ (function(i, n, r) { +"use strict"; +var s = i("../platform/js"), o = i("../platform/CCSAXParser").plistParser, a = i("./pipeline"), c = i("../assets/CCTexture2D"), l = i("./uuid-loader"), h = i("./font-loader"); +function u(i) { +if ("string" !== ("object" === (e = typeof i.content) ? t(i.content) : e)) return new Error("JSON Loader: Input item doesn't contain string content"); +try { +return JSON.parse(i.content); +} catch (t) { +return new Error("JSON Loader: Parse json [" + i.id + "] failed : " + t); +} +} +function _(t) { +if (t._owner instanceof cc.Asset) return null; +var e = t.content; +if (cc.sys.platform !== cc.sys.FB_PLAYABLE_ADS && !(e instanceof Image)) return new Error("Image Loader: Input item doesn't contain Image content"); +var i = t.texture || new c(); +i._uuid = t.uuid; +i.url = t.url; +i._setRawAsset(t.rawUrl, !1); +i._nativeAsset = e; +return i; +} +function f(t, e) { +if (t._owner instanceof cc.Asset) return null; +var i = new cc.AudioClip(); +i._setRawAsset(t.rawUrl, !1); +i._nativeAsset = t.content; +i.url = t.url; +return i; +} +function d(t) { +return t.load ? t.load(t.content) : null; +} +var m = 13, p = 55727696, v = 0, y = 6, g = 7, x = 12; +var C = 16, b = 6, A = 8, S = 10, w = 12, T = 14, E = 0, M = 1, B = 3; +function D(t, e) { +return t[e] << 8 | t[e + 1]; +} +var I = { +png: _, +jpg: _, +bmp: _, +jpeg: _, +gif: _, +ico: _, +tiff: _, +webp: _, +image: _, +pvr: function(t) { +var e = t.content instanceof ArrayBuffer ? t.content : t.content.buffer, i = new Int32Array(e, 0, m); +if (i[v] != p) return new Error("Invalid magic number in PVR header"); +var n = i[g], r = i[y], s = i[x] + 52; +return { +_data: new Uint8Array(e, s), +_compressed: !0, +width: n, +height: r +}; +}, +pkm: function(t) { +var e = t.content instanceof ArrayBuffer ? t.content : t.content.buffer, i = new Uint8Array(e), n = D(i, b); +if (n !== E && n !== M && n !== B) return new Error("Invalid magic number in ETC header"); +var r = D(i, w), s = D(i, T); +D(i, A), D(i, S); +return { +_data: new Uint8Array(e, C), +_compressed: !0, +width: r, +height: s +}; +}, +mp3: f, +ogg: f, +wav: f, +m4a: f, +json: u, +ExportJson: u, +plist: function(i) { +if ("string" !== ("object" == (e = typeof i.content) ? t(i.content) : e)) return new Error("Plist Loader: Input item doesn't contain string content"); +var n = o.parse(i.content); +return n || new Error("Plist Loader: Parse [" + i.id + "] failed"); +}, +uuid: l, +prefab: l, +fire: l, +scene: l, +binary: d, +dbbin: d, +bin: d, +font: h.loadFont, +eot: h.loadFont, +ttf: h.loadFont, +woff: h.loadFont, +svg: h.loadFont, +ttc: h.loadFont, +default: function() { +return null; +} +}, P = function(t) { +this.id = "Loader"; +this.async = !0; +this.pipeline = null; +this.extMap = s.mixin(t, I); +}; +P.ID = "Loader"; +P.prototype.addHandlers = function(t) { +this.extMap = s.mixin(this.extMap, t); +}; +P.prototype.handle = function(t, e) { +return (this.extMap[t.type] || this.extMap.default).call(this, t, e); +}; +a.Loader = n.exports = P; +}), { +"../assets/CCTexture2D": 73, +"../platform/CCSAXParser": 208, +"../platform/js": 221, +"./font-loader": 154, +"./pipeline": 160, +"./uuid-loader": 166 +} ], +157: [ (function(i, n, r) { +"use strict"; +var s = i("../platform/callbacks-invoker"); +i("../utils/CCPath"); +var o = i("../platform/js"), a = 0 | 998 * Math.random(), c = o.createMap(!0), l = [], h = { +WORKING: 1, +COMPLETE: 2, +ERROR: 3 +}, u = o.createMap(!0); +function _(i) { +var n = i.url || i; +return "string" === ("object" === (e = typeof n) ? t(n) : e); +} +function f(t) { +if (t) { +var e = t.split("?"); +if (e && e[0] && e[1]) { +var i = {}; +e[1].split("&").forEach((function(t) { +var e = t.split("="); +i[e[0]] = e[1]; +})); +return i; +} +} +} +function d(i, n) { +var r = "object" === ("object" === (e = typeof i) ? t(i) : e) ? i.url : i, s = { +queueId: n, +id: r, +url: r, +rawUrl: void 0, +urlParam: f(r), +type: "", +error: null, +content: null, +complete: !1, +states: {}, +deps: null +}; +if ("object" === ("object" === (e = typeof i) ? t(i) : e)) { +o.mixin(s, i); +if (i.skips) for (var a = 0; a < i.skips.length; a++) { +var c = i.skips[a]; +s.states[c] = h.COMPLETE; +} +} +s.rawUrl = s.url; +r && !s.type && (s.type = cc.path.extname(r).toLowerCase().substr(1)); +return s; +} +var m = []; +function p(t, e, i) { +if (!t || !e) return !1; +var n = !1; +m.push(e.id); +if (e.deps) { +var r, s, o = e.deps; +for (r = 0; r < o.length; r++) { +if ((s = o[r]).id === t.id) { +n = !0; +break; +} +if (!(m.indexOf(s.id) >= 0) && (s.deps && p(t, s, !0))) { +n = !0; +break; +} +} +} +i || (m.length = 0); +return n; +} +var v = function(t, e, i, n) { +s.call(this); +this._id = ++a; +c[this._id] = this; +this._pipeline = t; +this._errorUrls = o.createMap(!0); +this._appending = !1; +this._ownerQueue = null; +this.onProgress = i; +this.onComplete = n; +this.map = o.createMap(!0); +this.completed = {}; +this.totalCount = 0; +this.completedCount = 0; +this._pipeline ? this.active = !0 : this.active = !1; +e && (e.length > 0 ? this.append(e) : this.allComplete()); +}; +v.ItemState = new cc.Enum(h); +v.create = function(i, n, r, s) { +if (void 0 === r) { +if ("function" === ("object" === (e = typeof n) ? t(n) : e)) { +s = n; +n = r = null; +} +} else if (void 0 === s) if ("function" === ("object" === (e = typeof n) ? t(n) : e)) { +s = r; +r = n; +n = null; +} else { +s = r; +r = null; +} +var o = l.pop(); +if (o) { +o._pipeline = i; +o.onProgress = r; +o.onComplete = s; +c[o._id] = o; +o._pipeline && (o.active = !0); +n && o.append(n); +} else o = new v(i, n, r, s); +return o; +}; +v.getQueue = function(t) { +return t.queueId ? c[t.queueId] : null; +}; +v.itemComplete = function(t) { +var e = c[t.queueId]; +e && e.itemComplete(t.id); +}; +v.initQueueDeps = function(t) { +var e = u[t._id]; +if (e) { +e.completed.length = 0; +e.deps.length = 0; +} else e = u[t._id] = { +completed: [], +deps: [] +}; +}; +v.registerQueueDep = function(t, e) { +var i = t.queueId || t; +if (!i) return !1; +var n = u[i]; +if (n) -1 === n.deps.indexOf(e) && n.deps.push(e); else if (t.id) for (var r in u) { +var s = u[r]; +-1 !== s.deps.indexOf(t.id) && -1 === s.deps.indexOf(e) && s.deps.push(e); +} +}; +v.finishDep = function(t) { +for (var e in u) { +var i = u[e]; +-1 !== i.deps.indexOf(t) && -1 === i.completed.indexOf(t) && i.completed.push(t); +} +}; +var y = v.prototype; +o.mixin(y, s.prototype); +y.append = function(t, e) { +if (!this.active) return []; +e && !e.deps && (e.deps = []); +this._appending = !0; +var i, n, r, s = []; +for (i = 0; i < t.length; ++i) if (!(n = t[i]).queueId || this.map[n.id]) { +if (_(n)) { +var o = (r = d(n, this._id)).id; +if (!this.map[o]) { +this.map[o] = r; +this.totalCount++; +e && e.deps.push(r); +v.registerQueueDep(e || this._id, o); +s.push(r); +} +} +} else { +this.map[n.id] = n; +e && e.deps.push(n); +if (n.complete || p(e, n)) { +this.totalCount++; +this.itemComplete(n.id); +continue; +} +var a = this, l = c[n.queueId]; +if (l) { +this.totalCount++; +v.registerQueueDep(e || this._id, n.id); +l.addListener(n.id, (function(t) { +a.itemComplete(t.id); +})); +} +} +this._appending = !1; +this.completedCount === this.totalCount ? this.allComplete() : this._pipeline.flowIn(s); +return s; +}; +y._childOnProgress = function(t) { +if (this.onProgress) { +var e = u[this._id]; +this.onProgress(e ? e.completed.length : this.completedCount, e ? e.deps.length : this.totalCount, t); +} +}; +y.allComplete = function() { +var t = o.isEmptyObject(this._errorUrls) ? null : this._errorUrls; +this.onComplete && this.onComplete(t, this); +}; +y.isCompleted = function() { +return this.completedCount >= this.totalCount; +}; +y.isItemCompleted = function(t) { +return !!this.completed[t]; +}; +y.exists = function(t) { +return !!this.map[t]; +}; +y.getContent = function(t) { +var e = this.map[t], i = null; +e && (e.content ? i = e.content : e.alias && (i = e.alias.content)); +return i; +}; +y.getError = function(t) { +var e = this.map[t], i = null; +e && (e.error ? i = e.error : e.alias && (i = e.alias.error)); +return i; +}; +y.addListener = s.prototype.add; +y.hasListener = s.prototype.has; +y.removeListener = s.prototype.remove; +y.removeAllListeners = s.prototype.removeAll; +y.removeItem = function(t) { +var e = this.map[t]; +if (e && this.completed[e.alias || t]) { +delete this.completed[t]; +delete this.map[t]; +if (e.alias) { +delete this.completed[e.alias.id]; +delete this.map[e.alias.id]; +} +this.completedCount--; +this.totalCount--; +} +}; +y.itemComplete = function(t) { +var e = this.map[t]; +if (e) { +var i = t in this._errorUrls; +e.error instanceof Error || o.isString(e.error) ? this._errorUrls[t] = e.error : e.error ? o.mixin(this._errorUrls, e.error) : !e.error && i && delete this._errorUrls[t]; +this.completed[t] = e; +this.completedCount++; +v.finishDep(e.id); +if (this.onProgress) { +var n = u[this._id]; +this.onProgress(n ? n.completed.length : this.completedCount, n ? n.deps.length : this.totalCount, e); +} +this.invoke(t, e); +this.removeAll(t); +!this._appending && this.completedCount >= this.totalCount && this.allComplete(); +} +}; +y.destroy = function() { +this.active = !1; +this._appending = !1; +this._pipeline = null; +this._ownerQueue = null; +o.clear(this._errorUrls); +this.onProgress = null; +this.onComplete = null; +this.map = o.createMap(!0); +this.completed = {}; +this.totalCount = 0; +this.completedCount = 0; +s.call(this); +if (u[this._id]) { +u[this._id].completed.length = 0; +u[this._id].deps.length = 0; +} +delete c[this._id]; +delete u[this._id]; +-1 === l.indexOf(this) && l.length < 10 && l.push(this); +}; +cc.LoadingItems = n.exports = v; +}), { +"../platform/callbacks-invoker": 214, +"../platform/js": 221, +"../utils/CCPath": 285 +} ], +158: [ (function(t, e, i) { +"use strict"; +var n = t("./pipeline"), r = "MD5Pipe", s = /.*[/\\][0-9a-fA-F]{2}[/\\]([0-9a-fA-F-]{8,})/, o = function(t, e, i) { +this.id = r; +this.async = !1; +this.pipeline = null; +this.md5AssetsMap = t; +this.md5NativeAssetsMap = e; +this.libraryBase = i; +}; +o.ID = r; +o.prototype.handle = function(t) { +t.url = this.transformURL(t.url); +return null; +}; +o.prototype.transformURL = function(t) { +var e = !t.startsWith(this.libraryBase) ? this.md5NativeAssetsMap : this.md5AssetsMap; +return t = t.replace(s, (function(t, i) { +var n = e[i]; +return n ? t + "." + n : t; +})); +}; +n.MD5Pipe = e.exports = o; +}), { +"./pipeline": 160 +} ], +159: [ (function(i, n, r) { +"use strict"; +var s = i("./unpackers"), o = i("../utils/misc").pushToMap, a = { +Invalid: 0, +Removed: 1, +Downloading: 2, +Loaded: 3 +}; +function c() { +this.unpacker = null; +this.state = a.Invalid; +} +var l = {}, h = {}, u = {}; +function _(t, e) { +return new Error("Can not retrieve " + t + " from packer " + e); +} +n.exports = { +initPacks: function(t) { +h = t; +l = {}; +for (var e in t) for (var i = t[e], n = 0; n < i.length; n++) { +var r = i[n], s = 1 === i.length; +o(l, r, e, s); +} +}, +_loadNewPack: function(t, e, i) { +var n = this, r = cc.AssetLibrary.getLibUrlNoExt(e) + ".json"; +cc.loader.load({ +url: r, +ignoreMaxConcurrency: !0 +}, (function(r, s) { +if (r) { +cc.errorID(4916, t); +return i(r); +} +var o = n._doLoadNewPack(t, e, s); +o ? i(null, o) : i(_(t, e)); +})); +}, +_doPreload: function(t, e) { +var i = u[t]; +i || ((i = u[t] = new c()).state = a.Downloading); +if (i.state !== a.Loaded) { +i.unpacker = new s.JsonUnpacker(); +i.unpacker.load(h[t], e); +i.state = a.Loaded; +} +}, +_doLoadNewPack: function(i, n, r) { +var o = u[n]; +if (o.state !== a.Loaded) { +"string" === ("object" === (e = typeof r) ? t(r) : e) && (r = JSON.parse(r)); +Array.isArray(r) ? o.unpacker = new s.JsonUnpacker() : r.type === s.TextureUnpacker.ID && (o.unpacker = new s.TextureUnpacker()); +o.unpacker.load(h[n], r); +o.state = a.Loaded; +} +return o.unpacker.retrieve(i); +}, +_selectLoadedPack: function(t) { +for (var e = a.Invalid, i = "", n = 0; n < t.length; n++) { +var r = t[n], s = u[r]; +if (s) { +var o = s.state; +if (o === a.Loaded) return r; +if (o > e) { +e = o; +i = r; +} +} +} +return e !== a.Invalid ? i : t[0]; +}, +load: function(t, e) { +var i = t.uuid, n = l[i]; +if (n) { +Array.isArray(n) && (n = this._selectLoadedPack(n)); +var r = u[n]; +if (r && r.state === a.Loaded) { +var s = r.unpacker.retrieve(i); +return s || _(i, n); +} +if (!r) { +console.log("Create unpacker %s for %s", n, i); +(r = u[n] = new c()).state = a.Downloading; +} +this._loadNewPack(i, n, e); +return null; +} +} +}; +0; +}), { +"../utils/misc": 297, +"./unpackers": 164 +} ], +160: [ (function(t, e, i) { +"use strict"; +var n = t("../platform/js"), r = t("./loading-items"), s = r.ItemState; +function o(t, e) { +var i = t.id, n = e.states[i], r = t.next, a = t.pipeline; +if (!e.error && n !== s.WORKING && n !== s.ERROR) if (n === s.COMPLETE) r ? o(r, e) : a.flowOut(e); else { +e.states[i] = s.WORKING; +var c = t.handle(e, (function(t, n) { +if (t) { +e.error = t; +e.states[i] = s.ERROR; +a.flowOut(e); +} else { +n && (e.content = n); +e.states[i] = s.COMPLETE; +r ? o(r, e) : a.flowOut(e); +} +})); +if (c instanceof Error) { +e.error = c; +e.states[i] = s.ERROR; +a.flowOut(e); +} else if (void 0 !== c) { +null !== c && (e.content = c); +e.states[i] = s.COMPLETE; +r ? o(r, e) : a.flowOut(e); +} +} +} +var a = function(t) { +this._pipes = t; +this._cache = n.createMap(!0); +for (var e = 0; e < t.length; ++e) { +var i = t[e]; +if (i.handle && i.id) { +i.pipeline = this; +i.next = e < t.length - 1 ? t[e + 1] : null; +} +} +}; +a.ItemState = s; +var c = a.prototype; +c.insertPipe = function(t, e) { +if (!t.handle || !t.id || e > this._pipes.length) cc.warnID(4921); else if (this._pipes.indexOf(t) > 0) cc.warnID(4922); else { +t.pipeline = this; +var i = null; +e < this._pipes.length && (i = this._pipes[e]); +var n = null; +e > 0 && (n = this._pipes[e - 1]); +n && (n.next = t); +t.next = i; +this._pipes.splice(e, 0, t); +} +}; +c.insertPipeAfter = function(t, e) { +var i = this._pipes.indexOf(t); +i < 0 || this.insertPipe(e, i + 1); +}; +c.appendPipe = function(t) { +if (t.handle && t.id) { +t.pipeline = this; +t.next = null; +this._pipes.length > 0 && (this._pipes[this._pipes.length - 1].next = t); +this._pipes.push(t); +} +}; +c.flowIn = function(t) { +var e, i, n = this._pipes[0]; +if (n) { +for (e = 0; e < t.length; e++) { +i = t[e]; +this._cache[i.id] = i; +} +for (e = 0; e < t.length; e++) o(n, i = t[e]); +} else for (e = 0; e < t.length; e++) this.flowOut(t[e]); +}; +c.flowInDeps = function(t, e, i) { +return r.create(this, (function(t, e) { +i(t, e); +e.destroy(); +})).append(e, t); +}; +c.flowOut = function(t) { +t.error ? delete this._cache[t.id] : this._cache[t.id] || (this._cache[t.id] = t); +t.complete = !0; +r.itemComplete(t); +}; +c.copyItemStates = function(t, e) { +if (e instanceof Array) for (var i = 0; i < e.length; ++i) e[i].states = t.states; else e.states = t.states; +}; +c.getItem = function(t) { +var e = this._cache[t]; +if (!e) return e; +e.alias && (e = e.alias); +return e; +}; +c.removeItem = function(t) { +var e = this._cache[t]; +e && e.complete && delete this._cache[t]; +return e; +}; +c.clear = function() { +for (var t in this._cache) { +var e = this._cache[t]; +delete this._cache[t]; +if (!e.complete) { +e.error = new Error("Canceled manually"); +this.flowOut(e); +} +} +}; +cc.Pipeline = e.exports = a; +}), { +"../platform/js": 221, +"./loading-items": 157 +} ], +161: [ (function(t, e, i) { +"use strict"; +}), { +"../platform/js": 221 +} ], +162: [ (function(t, e, i) { +"use strict"; +var n = t("./pipeline"), r = "SubPackPipe", s = /.*[/\\][0-9a-fA-F]{2}[/\\]([0-9a-fA-F-]{8,})/; +function o(t) { +var e = t.match(s); +return e ? e[1] : ""; +} +var a = Object.create(null), c = function(t) { +this.id = r; +this.async = !1; +this.pipeline = null; +for (var e in t) { +var i = t[e]; +i.uuids && i.uuids.forEach((function(t) { +a[t] = i.path; +})); +} +}; +c.ID = r; +c.prototype.handle = function(t) { +t.url = this.transformURL(t.url); +return null; +}; +c.prototype.transformURL = function(t) { +var e = o(t); +if (e) { +var i = a[e]; +if (i) return t.replace("res/raw-assets/", i + "raw-assets/"); +} +return t; +}; +n.SubPackPipe = e.exports = c; +}), { +"./pipeline": 160 +} ], +163: [ (function(t, e, i) { +"use strict"; +var n = t("./utils").urlAppendTimestamp; +e.exports = function(t, e) { +var i = t.url; +i = n(i); +var r = cc.loader.getXMLHttpRequest(), s = "Load text file failed: " + i; +r.open("GET", i, !0); +r.overrideMimeType && r.overrideMimeType("text/plain; charset=utf-8"); +r.onload = function() { +4 === r.readyState ? 200 === r.status || 0 === r.status ? e(null, r.responseText) : e({ +status: r.status, +errorMessage: s + "(wrong status)" +}) : e({ +status: r.status, +errorMessage: s + "(wrong readyState)" +}); +}; +r.onerror = function() { +e({ +status: r.status, +errorMessage: s + "(error)" +}); +}; +r.ontimeout = function() { +e({ +status: r.status, +errorMessage: s + "(time out)" +}); +}; +r.send(null); +}; +}), { +"./utils": 165 +} ], +164: [ (function(t, e, i) { +"use strict"; +var n = t("../assets/CCTexture2D"), r = t("../platform/js"); +function s() { +this.jsons = {}; +} +s.prototype.load = function(t, e) { +e.length !== t.length && cc.errorID(4915); +for (var i = 0; i < t.length; i++) { +var n = t[i], r = e[i]; +this.jsons[n] = r; +} +}; +s.prototype.retrieve = function(t) { +return this.jsons[t] || null; +}; +function o() { +this.contents = {}; +} +o.ID = r._getClassId(n); +o.prototype.load = function(t, e) { +var i = e.data.split("|"); +i.length !== t.length && cc.errorID(4915); +for (var n = 0; n < t.length; n++) this.contents[t[n]] = i[n]; +}; +o.prototype.retrieve = function(t) { +var e = this.contents[t]; +return e ? { +__type__: o.ID, +content: e +} : null; +}; +0; +e.exports = { +JsonUnpacker: s, +TextureUnpacker: o +}; +}), { +"../assets/CCTexture2D": 73, +"../platform/js": 221 +} ], +165: [ (function(i, n, r) { +"use strict"; +var s = /\?/; +n.exports = { +urlAppendTimestamp: function(i) { +cc.game.config.noCache && "string" === ("object" === (e = typeof i) ? t(i) : e) && (s.test(i) ? i += "&_t=" + (new Date() - 0) : i += "?_t=" + (new Date() - 0)); +return i; +} +}; +}), {} ], +166: [ (function(i, n, r) { +"use strict"; +var s = i("../platform/js"), o = i("../CCDebug"); +i("../platform/deserialize"); +var a = i("./loading-items"); +function c(t) { +return t && (t[0] && "cc.Scene" === t[0].__type__ || t[1] && "cc.Scene" === t[1].__type__ || t[0] && "cc.Prefab" === t[0].__type__); +} +function l(t, e, i, n) { +var r, s, o, a = i.uuidList, c = i.uuidObjList, l = i.uuidPropList, h = i._stillUseUrl, u = t.dependKeys = []; +if (n) { +r = []; +for (s = 0; s < a.length; s++) { +o = a[s]; +var _ = c[s], f = l[s], d = cc.AssetLibrary._getAssetInfoInRuntime(o); +if (d.raw) { +var m = d.url; +_[f] = m; +u.push(m); +} else r.push({ +type: "uuid", +uuid: o, +deferredLoadRaw: !0, +_owner: _, +_ownerProp: f, +_stillUseUrl: h[s] +}); +} +} else { +r = new Array(a.length); +for (s = 0; s < a.length; s++) { +o = a[s]; +r[s] = { +type: "uuid", +uuid: o, +_owner: c[s], +_ownerProp: l[s], +_stillUseUrl: h[s] +}; +} +e._native && !e.constructor.preventPreloadNativeObject && r.push({ +url: e.nativeUrl, +_owner: e, +_ownerProp: "_nativeAsset" +}); +} +return r; +} +function h(t, e, i, n, r) { +e.content = i; +var s = e.dependKeys; +t.flowInDeps(e, n, (function(t, e) { +var o, c = e.map; +for (var l in c) (o = c[l]).uuid && o.content && (o.content._uuid = o.uuid); +for (var h = 0; h < n.length; h++) { +var u = function(t) { +var e = t.content; +this._stillUseUrl && (e = e && cc.RawAsset.wasRawAssetType(e.constructor) ? e.nativeUrl : t.rawUrl); +"_nativeAsset" === this._ownerProp && (this._owner.url = t.url); +this._owner[this._ownerProp] = e; +t.uuid !== i._uuid && s.indexOf(t.id) < 0 && s.push(t.id); +}, _ = n[h], f = _.uuid, d = _.url; +_._owner, _._ownerProp; +if (o = c[d]) { +var m = _; +if (o.complete || o.content) if (o.error) { +cc._throw(o.error.message || o.error.errorMessage || o.error); +} else u.call(m, o); else { +var p = a.getQueue(o), v = p._callbackTable[f]; +v ? v.unshift(u, m) : p.addListener(f, u, m); +} +} +} +if (!t && i.onLoad) try { +i.onLoad(); +} catch (t) { +cc._throw(t); +} +r(t, i); +})); +} +function u(t, e, i) { +0; +var n = e.deferredLoadRaw; +n ? t instanceof cc.Asset && t.constructor.preventDeferredLoadDependents && (n = !1) : i && (t instanceof cc.SceneAsset || t instanceof cc.Prefab) && (n = t.asyncLoadAssets); +return n; +} +function _(i, n) { +0; +var r, a; +if ("string" === ("object" === (e = typeof i.content) ? t(i.content) : e)) try { +r = JSON.parse(i.content); +} catch (t) { +return new Error(o.getError(4923, i.id, t.stack)); +} else { +if ("object" !== ("object" === (e = typeof i.content) ? t(i.content) : e)) return new Error(o.getError(4924)); +r = i.content; +} +var _ = c(r); +a = _ ? cc._MissingScript.safeFindClass : function(t) { +var e = s._getClassById(t); +if (e) return e; +cc.warnID(4903, t); +return Object; +}; +var f, d = cc.deserialize.Details.pool.get(); +try { +f = cc.deserialize(r, d, { +classFinder: a, +target: i.existingAsset, +customEnv: i +}); +} catch (t) { +cc.deserialize.Details.pool.put(d); +var m = t + "\n" + t.stack; +return new Error(o.getError(4925, i.id, m)); +} +f._uuid = i.uuid; +f.url = f.nativeUrl; +0; +var p = l(i, f, d, u(f, i, _)); +cc.deserialize.Details.pool.put(d); +if (0 === p.length) { +f.onLoad && f.onLoad(); +return n(null, f); +} +h(this.pipeline, i, f, p, n); +} +n.exports = _; +_.isSceneObj = c; +}), { +"../CCDebug": 49, +"../platform/deserialize": 216, +"../platform/js": 221, +"./loading-items": 157 +} ], +167: [ (function(i, n, r) { +"use strict"; +var s = c(i("../../renderer/core/input-assembler")), o = c(i("../../renderer/gfx")), a = i("./mesh-data"); +function c(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var l = i("../renderer"), h = i("../event/event-target"); +function u(t, e, i) { +t[e] = i._val; +} +function _(t, e, i) { +t[e] = i.x; +t[e + 1] = i.y; +} +function f(t, e, i) { +t[e] = i.x; +t[e + 1] = i.y; +t[e + 2] = i.z; +} +var d = cc.Class({ +name: "cc.Mesh", +extends: cc.Asset, +mixins: [ h ], +properties: { +_nativeAsset: { +override: !0, +get: function() { +return this._buffer; +}, +set: function(t) { +this._buffer = ArrayBuffer.isView(t) ? t.buffer : t; +this.initWithBuffer(); +} +}, +_vertexBundles: { +default: null, +type: a.VertexBundle +}, +_primitives: { +default: null, +Primitive: a.Primitive +}, +_minPos: cc.v3(), +_maxPos: cc.v3(), +subMeshes: { +get: function() { +return this._subMeshes; +}, +set: function(t) { +this._subMeshes = t; +} +} +}, +ctor: function() { +this._subMeshes = []; +this.loaded = !1; +this._ibs = []; +this._vbs = []; +}, +initWithBuffer: function() { +this._subMeshes.length = 0; +for (var t = this._primitives, e = 0; e < t.length; e++) { +var i = t[e], n = i.data, r = new Uint16Array(this._buffer, n.offset, n.length / 2), a = new o.default.IndexBuffer(l.device, i.indexUnit, o.default.USAGE_STATIC, r, r.length), c = this._vertexBundles[i.vertexBundleIndices[0]], h = c.data, u = new o.default.VertexFormat(c.formats), _ = new Uint8Array(this._buffer, h.offset, h.length), f = new o.default.VertexBuffer(l.device, u, o.default.USAGE_STATIC, _, c.verticesCount); +this._subMeshes.push(new s.default(f, a)); +this._ibs.push({ +buffer: a, +data: r +}); +this._vbs.push({ +buffer: f, +data: _ +}); +} +this.loaded = !0; +this.emit("load"); +}, +init: function(t, e, i) { +this.clear(); +var n = new Uint8Array(t._bytes * e), r = new o.default.VertexBuffer(l.device, t, i ? o.default.USAGE_DYNAMIC : o.default.USAGE_STATIC, n, e); +this._vbs[0] = { +buffer: r, +data: n, +dirty: !0 +}; +this.loaded = !0; +this.emit("load"); +this.emit("init-format"); +}, +setVertices: function(i, n, r) { +r = r || 0; +var s = this._vbs[r], a = s.buffer._format._attr2el[i]; +if (!a) return cc.warn("Cannot find " + i + " attribute in vertex defines."); +var c = "number" === ("object" === (e = typeof n[0]) ? t(n[0]) : e), l = a.num, h = Float32Array, d = 4; +if (i === o.default.ATTR_COLOR) if (c) { +h = Uint8Array; +d = 1; +} else h = Uint32Array; +var m = s[h.name]; +if (!m) { +var p = s.data; +m = s[h.name] = new h(p.buffer, p.byteOffset, p.byteLength / d); +} +var v = a.stride / d, y = a.offset / d; +if (c) for (var g = 0, x = n.length / l; g < x; g++) for (var C = g * l, b = g * v + y, A = 0; A < l; A++) m[b + A] = n[C + A]; else { +var S = void 0; +S = i === o.default.ATTR_COLOR ? u : 2 === l ? _ : f; +for (var w = 0, T = n.length; w < T; w++) { +S(m, w * v + y, n[w]); +} +} +s.dirty = !0; +}, +setIndices: function(t, e, i) { +e = e || 0; +var n = new Uint16Array(t), r = i ? o.default.USAGE_DYNAMIC : o.default.USAGE_STATIC, a = this._ibs[e]; +if (a) { +a.buffer._usage = r; +a.data = n; +a.dirty = !0; +} else { +var c = new o.default.IndexBuffer(l.device, o.default.INDEX_FMT_UINT16, r, n, n.length); +this._ibs[e] = { +buffer: c, +data: n, +dirty: !1 +}; +var h = this._vbs[0]; +this._subMeshes[e] = new s.default(h.buffer, c); +} +}, +setPrimitiveType: function(t, e) { +e = e || 0; +this._subMeshes[e] ? this._subMeshes[e]._primitiveType = t : cc.warn("Do not have sub mesh at index " + e); +}, +clear: function() { +this._subMeshes.length = 0; +for (var t = this._ibs, e = 0; e < t.length; e++) t[e].buffer.destroy(); +t.length = 0; +for (var i = this._vbs, n = 0; n < i.length; n++) i[n].buffer.destroy(); +i.length = 0; +}, +setBoundingBox: function(t, e) { +this._minPos = t; +this._maxPos = e; +}, +destroy: function() { +this.clear(); +}, +_uploadData: function() { +for (var t = this._vbs, e = 0; e < t.length; e++) { +var i = t[e]; +if (i.dirty) { +var n = i.buffer, r = i.data; +n._numVertices = r.byteLength / n._format._bytes; +n._bytes = r.byteLength; +n.update(0, r); +i.dirty = !1; +} +} +for (var s = this._ibs, o = 0; o < s.length; o++) { +var a = s[o]; +if (a.dirty) { +var c = a.buffer, l = a.data; +c._numIndices = l.length; +c._bytes = l.byteLength; +c.update(0, l); +a.dirty = !1; +} +} +} +}); +cc.Mesh = n.exports = d; +}), { +"../../renderer/core/input-assembler": 339, +"../../renderer/gfx": 349, +"../event/event-target": 133, +"../renderer": 244, +"./mesh-data": 170 +} ], +168: [ (function(t, e, i) { +"use strict"; +var n = a(t("../geom-utils")), r = a(t("../../renderer/gfx")), s = a(t("../assets/material/custom-properties")), o = t("../utils/mesh-util"); +function a(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var c = t("../components/CCRenderComponent"), l = t("./CCMesh"), h = t("../renderer/render-flow"), u = t("../assets/material/CCMaterial"), _ = cc.Enum({ +OFF: 0, +ON: 1 +}), f = cc.Class({ +name: "cc.MeshRenderer", +extends: c, +editor: !1, +properties: { +_mesh: { +default: null, +type: l +}, +_receiveShadows: !1, +_shadowCastingMode: _.OFF, +mesh: { +get: function() { +return this._mesh; +}, +set: function(t) { +if (this._mesh !== t) { +this._setMesh(t); +if (t) { +this.markForRender(!0); +this._activateMaterial(!0); +this.markForUpdateRenderData(!0); +this.node._renderFlag |= h.FLAG_TRANSFORM; +} else this.markForRender(!1); +} +}, +type: l, +animatable: !1 +}, +textures: { +default: [], +type: cc.Texture2D, +visible: !1 +}, +receiveShadows: { +get: function() { +return this._receiveShadows; +}, +set: function(t) { +this._receiveShadows = t; +this._updateReceiveShadow(); +}, +animatable: !1 +}, +shadowCastingMode: { +get: function() { +return this._shadowCastingMode; +}, +set: function(t) { +this._shadowCastingMode = t; +this._updateCastShadow(); +}, +type: _, +animatable: !1 +} +}, +statics: { +ShadowCastingMode: _ +}, +ctor: function() { +this._renderDatas = []; +this._boundingBox = null; +this._customProperties = new s.default(); +}, +onEnable: function() { +this._super(); +if (this._mesh && !this._mesh.loaded) { +this.disableRender(); +var t = this; +this._mesh.once("load", (function() { +t._setMesh(t._mesh); +t._activateMaterial(); +})); +(0, o.postLoadMesh)(this._mesh); +} else { +this._setMesh(this._mesh); +this._activateMaterial(); +} +}, +onDestroy: function() { +this._setMesh(null); +}, +getRenderNode: function() { +return this.node; +}, +_setMesh: function(t) { +this._mesh && this._mesh.off("init-format", this._updateMeshAttribute, this); +t && t.on("init-format", this._updateMeshAttribute, this); +this._mesh = t; +}, +_getDefaultMaterial: function() { +return u.getBuiltinMaterial("unlit"); +}, +_activateMaterial: function(t) { +var e = this._mesh; +if (e && 0 !== e.subMeshes.length) { +n.default && (this._boundingBox = n.default.Aabb.fromPoints(n.default.Aabb.create(), e._minPos, e._maxPos)); +var i = this.textures; +if (i && i.length > 0) for (var r = 0; r < i.length; r++) { +var s = this.sharedMaterials[r]; +if (!s) { +(s = cc.Material.getInstantiatedMaterial(this._getDefaultMaterial(), this)).setProperty("diffuseTexture", i[r]); +this.setMaterial(r, s); +} +} +var o = this.sharedMaterials; +if (!o[0]) { +var a = this._getDefaultMaterial(); +o[0] = a; +} +this._updateMeshAttribute(); +this._updateReceiveShadow(); +this._updateCastShadow(); +this.markForUpdateRenderData(!0); +this.markForRender(!0); +} else this.disableRender(); +}, +_updateReceiveShadow: function() { +this._customProperties.define("_USE_SHADOW_MAP", this._receiveShadows); +}, +_updateCastShadow: function() { +this._customProperties.define("_SHADOW_CASTING", this._shadowCastingMode === _.ON); +}, +_updateMeshAttribute: function() { +var t = this._mesh && this._mesh.subMeshes; +if (t) { +var e = t[0]._vertexBuffer._format._attr2el; +this._customProperties.define("_USE_ATTRIBUTE_COLOR", !!e[r.default.ATTR_COLOR]); +this._customProperties.define("_USE_ATTRIBUTE_UV0", !!e[r.default.ATTR_UV0]); +this._customProperties.define("_USE_ATTRIBUTE_NORMAL", !!e[r.default.ATTR_NORMAL]); +} +} +}); +cc.MeshRenderer = e.exports = f; +}), { +"../../renderer/gfx": 349, +"../assets/material/CCMaterial": 75, +"../assets/material/custom-properties": 76, +"../components/CCRenderComponent": 106, +"../geom-utils": 138, +"../renderer/render-flow": 245, +"../utils/mesh-util": 296, +"./CCMesh": 167 +} ], +169: [ (function(t, e, i) { +"use strict"; +t("./CCMesh"); +t("./CCMeshRenderer"); +t("./mesh-renderer"); +}), { +"./CCMesh": 167, +"./CCMeshRenderer": 168, +"./mesh-renderer": 171 +} ], +170: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.Primitive = i.VertexBundle = i.VertexFormat = i.BufferRange = void 0; +var n = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../../renderer/gfx")); +var r = i.BufferRange = cc.Class({ +name: "cc.BufferRange", +properties: { +offset: 0, +length: 0 +} +}), s = i.VertexFormat = cc.Class({ +name: "cc.mesh.VertexFormat", +properties: { +name: "", +type: -1, +num: -1, +normalize: !1 +} +}); +i.VertexBundle = cc.Class({ +name: "cc.mesh.VertexBundle", +properties: { +data: { +default: null, +type: r +}, +formats: { +default: [], +type: s +}, +verticesCount: 0 +} +}), i.Primitive = cc.Class({ +name: "cc.mesh.Primitive", +properties: { +vertexBundleIndices: { +default: [], +type: Number +}, +data: { +default: null, +type: r +}, +indexUnit: n.default.INDEX_FMT_UINT16, +topology: n.default.PT_TRIANGLES +} +}); +}), { +"../../renderer/gfx": 349 +} ], +171: [ (function(t, e, i) { +"use strict"; +var n = o(t("../../renderer/gfx")), r = o(t("../../renderer/core/input-assembler")), s = o(t("../../renderer/render-data/ia-render-data")); +function o(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var a = t("../assets/material/CCMaterial"), c = t("./CCMeshRenderer"), l = cc.Color.BLACK, h = { +updateRenderData: function(t) { +var e = t._renderDatas; +e.length = 0; +if (t.mesh) for (var i = t.mesh._subMeshes, n = 0; n < i.length; n++) { +var r = new s.default(); +r.material = t.sharedMaterials[n] || t.sharedMaterials[0]; +r.ia = i[n]; +e.push(r); +} +}, +createWireFrameData: function(t, e, i, o) { +var c = new s.default(), h = new a(); +h.copy(a.getBuiltinMaterial("unlit")); +h.setProperty("diffuseColor", l); +h.define("USE_DIFFUSE_TEXTURE", !1); +c.material = h; +for (var u = [], _ = 0; _ < e.length; _ += 3) { +var f = e[_ + 0], d = e[_ + 1], m = e[_ + 2]; +u.push(f, d, d, m, m, f); +} +var p = new Uint16Array(u), v = new n.default.IndexBuffer(o._device, n.default.INDEX_FMT_UINT16, n.default.USAGE_STATIC, p, p.length); +c.ia = new r.default(t._vertexBuffer, v, n.default.PT_LINES); +return c; +}, +fillBuffers: function(t, e) { +e._flush(); +var i = t._renderDatas, n = t.mesh._subMeshes; +if (cc.macro.SHOW_MESH_WIREFRAME) { +if (i.length === n.length) for (var r = t.mesh._ibs, s = 0; s < n.length; s++) { +var o = i[s]; +i.push(this.createWireFrameData(o.ia, r[s].data, o.material, e)); +} +} else i.length = n.length; +var a = e.material, c = e.node; +e.node = t.getRenderNode(); +e.customProperties = t._customProperties; +var l = e.customProperties; +t.mesh._uploadData(); +for (var h = 0; h < i.length; h++) { +var u = i[h], _ = u.material; +e.material = _; +e._flushIA(u); +} +e.customProperties = l; +e.node = c; +e.material = a; +} +}; +e.exports = c._assembler = h; +}), { +"../../renderer/core/input-assembler": 339, +"../../renderer/gfx": 349, +"../../renderer/render-data/ia-render-data": 368, +"../assets/material/CCMaterial": 75, +"./CCMeshRenderer": 168 +} ], +172: [ (function(t, e, i) { +"use strict"; +var n = t("./component-scheduler"), r = t("./platform/CCObject").Flags, s = t("./platform/js"), o = r.IsPreloadStarted, a = r.IsOnLoadStarted, c = r.IsOnLoadCalled, l = r.Deactivating, h = cc.Class({ +extends: n.LifeCycleInvoker, +add: function(t) { +this._zero.array.push(t); +}, +remove: function(t) { +this._zero.fastRemove(t); +}, +cancelInactive: function(t) { +n.LifeCycleInvoker.stableRemoveInactive(this._zero, t); +}, +invoke: function() { +this._invoke(this._zero); +this._zero.array.length = 0; +} +}), u = n.createInvokeImpl("c.__preload();"), _ = n.createInvokeImpl("c.onLoad();c._objFlags|=" + c, !1, c), f = new s.Pool(4); +f.get = function() { +var t = this._get() || { +preload: new h(u), +onLoad: new n.OneOffInvoker(_), +onEnable: new n.OneOffInvoker(n.invokeOnEnable) +}; +t.preload._zero.i = -1; +var e = t.onLoad; +e._zero.i = -1; +e._neg.i = -1; +e._pos.i = -1; +(e = t.onEnable)._zero.i = -1; +e._neg.i = -1; +e._pos.i = -1; +return t; +}; +function d(t, e, i) { +0; +e ? t._removeComponent(e) : s.array.removeAt(t._components, i); +} +function m() { +this._activatingStack = []; +} +var p = cc.Class({ +ctor: m, +reset: m, +_activateNodeRecursively: function(t, e, i, n) { +if (t._objFlags & l) cc.errorID(3816, t.name); else { +t._activeInHierarchy = !0; +for (var r = t._components.length, s = 0; s < r; ++s) { +var o = t._components[s]; +if (o instanceof cc.Component) this.activateComp(o, e, i, n); else { +d(t, o, s); +--s; +--r; +} +} +t._childArrivalOrder = t._children.length; +for (var a = 0, c = t._children.length; a < c; ++a) { +var h = t._children[a]; +h._localZOrder = 4294901760 & h._localZOrder | a + 1; +h._active && this._activateNodeRecursively(h, e, i, n); +} +t._onPostActivated(!0); +} +}, +_deactivateNodeRecursively: function(t) { +0; +t._objFlags |= l; +t._activeInHierarchy = !1; +for (var e = t._components.length, i = 0; i < e; ++i) { +var n = t._components[i]; +if (n._enabled) { +cc.director._compScheduler.disableComp(n); +if (t._activeInHierarchy) { +t._objFlags &= ~l; +return; +} +} +} +for (var r = 0, s = t._children.length; r < s; ++r) { +var o = t._children[r]; +if (o._activeInHierarchy) { +this._deactivateNodeRecursively(o); +if (t._activeInHierarchy) { +t._objFlags &= ~l; +return; +} +} +} +t._onPostActivated(!1); +t._objFlags &= ~l; +}, +activateNode: function(t, e) { +if (e) { +var i = f.get(); +this._activatingStack.push(i); +this._activateNodeRecursively(t, i.preload, i.onLoad, i.onEnable); +i.preload.invoke(); +i.onLoad.invoke(); +i.onEnable.invoke(); +this._activatingStack.pop(); +f.put(i); +} else { +this._deactivateNodeRecursively(t); +for (var n = this._activatingStack, r = 0; r < n.length; r++) { +var s = n[r]; +s.preload.cancelInactive(o); +s.onLoad.cancelInactive(a); +s.onEnable.cancelInactive(); +} +} +t.emit("active-in-hierarchy-changed", t); +}, +activateComp: function(t, e, i, n) { +if (cc.isValid(t, !0)) { +if (!(t._objFlags & o)) { +t._objFlags |= o; +t.__preload && (e ? e.add(t) : t.__preload()); +} +if (!(t._objFlags & a)) { +t._objFlags |= a; +if (t.onLoad) if (i) i.add(t); else { +t.onLoad(); +t._objFlags |= c; +} else t._objFlags |= c; +} +if (t._enabled) { +if (!t.node._activeInHierarchy) return; +cc.director._compScheduler.enableComp(t, n); +} +} +}, +destroyComp: function(t) { +cc.director._compScheduler.disableComp(t); +t.onDestroy && t._objFlags & c && t.onDestroy(); +}, +resetComp: !1 +}); +e.exports = p; +}), { +"./component-scheduler": 89, +"./platform/CCObject": 207, +"./platform/js": 221, +"./utils/misc": 297 +} ], +173: [ (function(t, e, i) { +"use strict"; +var n = t("./CCPhysicsTypes").PTM_RATIO, r = t("./CCPhysicsTypes").ContactType, s = [], o = [ cc.v2(), cc.v2() ], a = new b2.WorldManifold(), c = { +points: [], +separations: [], +normal: cc.v2() +}; +function l() { +this.localPoint = cc.v2(); +this.normalImpulse = 0; +this.tangentImpulse = 0; +} +var h = [ new l(), new l() ], u = (new b2.Manifold(), { +type: 0, +localPoint: cc.v2(), +localNormal: cc.v2(), +points: [] +}), _ = { +normalImpulses: [], +tangentImpulses: [] +}; +function f() {} +f.prototype.init = function(t) { +this.colliderA = t.GetFixtureA().collider; +this.colliderB = t.GetFixtureB().collider; +this.disabled = !1; +this.disabledOnce = !1; +this._impulse = null; +this._inverted = !1; +this._b2contact = t; +t._contact = this; +}; +f.prototype.reset = function() { +this.setTangentSpeed(0); +this.resetFriction(); +this.resetRestitution(); +this.colliderA = null; +this.colliderB = null; +this.disabled = !1; +this._impulse = null; +this._b2contact._contact = null; +this._b2contact = null; +}; +f.prototype.getWorldManifold = function() { +var t = c.points, e = c.separations, i = c.normal; +this._b2contact.GetWorldManifold(a); +var r = a.points, s = a.separations, l = this._b2contact.GetManifold().pointCount; +t.length = e.length = l; +for (var h = 0; h < l; h++) { +var u = o[h]; +u.x = r[h].x * n; +u.y = r[h].y * n; +t[h] = u; +e[h] = s[h] * n; +} +i.x = a.normal.x; +i.y = a.normal.y; +if (this._inverted) { +i.x *= -1; +i.y *= -1; +} +return c; +}; +f.prototype.getManifold = function() { +for (var t = u.points, e = u.localNormal, i = u.localPoint, r = this._b2contact.GetManifold(), s = r.points, o = t.length = r.pointCount, a = 0; a < o; a++) { +var c = h[a], l = s[a]; +c.localPoint.x = l.localPoint.x * n; +c.localPoint.Y = l.localPoint.Y * n; +c.normalImpulse = l.normalImpulse * n; +c.tangentImpulse = l.tangentImpulse; +t[a] = c; +} +i.x = r.localPoint.x * n; +i.y = r.localPoint.y * n; +e.x = r.localNormal.x; +e.y = r.localNormal.y; +u.type = r.type; +if (this._inverted) { +e.x *= -1; +e.y *= -1; +} +return u; +}; +f.prototype.getImpulse = function() { +var t = this._impulse; +if (!t) return null; +for (var e = _.normalImpulses, i = _.tangentImpulses, r = t.count, s = 0; s < r; s++) { +e[s] = t.normalImpulses[s] * n; +i[s] = t.tangentImpulses[s]; +} +i.length = e.length = r; +return _; +}; +f.prototype.emit = function(t) { +var e; +switch (t) { +case r.BEGIN_CONTACT: +e = "onBeginContact"; +break; + +case r.END_CONTACT: +e = "onEndContact"; +break; + +case r.PRE_SOLVE: +e = "onPreSolve"; +break; + +case r.POST_SOLVE: +e = "onPostSolve"; +} +var i, n, s, o, a = this.colliderA, c = this.colliderB, l = a.body, h = c.body; +if (l.enabledContactListener) { +i = l.node._components; +this._inverted = !1; +for (n = 0, s = i.length; n < s; n++) (o = i[n])[e] && o[e](this, a, c); +} +if (h.enabledContactListener) { +i = h.node._components; +this._inverted = !0; +for (n = 0, s = i.length; n < s; n++) (o = i[n])[e] && o[e](this, c, a); +} +if (this.disabled || this.disabledOnce) { +this.setEnabled(!1); +this.disabledOnce = !1; +} +}; +f.get = function(t) { +var e; +(e = 0 === s.length ? new cc.PhysicsContact() : s.pop()).init(t); +return e; +}; +f.put = function(t) { +var e = t._contact; +if (e) { +s.push(e); +e.reset(); +} +}; +var d = f.prototype; +d.setEnabled = function(t) { +this._b2contact.SetEnabled(t); +}; +d.isTouching = function() { +return this._b2contact.IsTouching(); +}; +d.setTangentSpeed = function(t) { +this._b2contact.SetTangentSpeed(t / n); +}; +d.getTangentSpeed = function() { +return this._b2contact.GetTangentSpeed() * n; +}; +d.setFriction = function(t) { +this._b2contact.SetFriction(t); +}; +d.getFriction = function() { +return this._b2contact.GetFriction(); +}; +d.resetFriction = function() { +return this._b2contact.ResetFriction(); +}; +d.setRestitution = function(t) { +this._b2contact.SetRestitution(t); +}; +d.getRestitution = function() { +return this._b2contact.GetRestitution(); +}; +d.resetRestitution = function() { +return this._b2contact.ResetRestitution(); +}; +f.ContactType = r; +cc.PhysicsContact = e.exports = f; +}), { +"./CCPhysicsTypes": 175 +} ], +174: [ (function(t, e, i) { +"use strict"; +var n = t("./CCPhysicsTypes"), r = n.ContactType, s = n.BodyType, o = n.RayCastType, a = n.DrawBits, c = n.PTM_RATIO, l = (n.ANGLE_TO_PHYSICS_ANGLE, +n.PHYSICS_ANGLE_TO_ANGLE), h = t("./utils").convertToNodeRotation, u = t("./platform/CCPhysicsDebugDraw"), _ = new b2.AABB(), f = new b2.Vec2(), d = new b2.Vec2(), m = cc.v2(), p = cc.Class({ +mixins: [ cc.EventTarget ], +statics: { +DrawBits: a, +PTM_RATIO: c, +VELOCITY_ITERATIONS: 10, +POSITION_ITERATIONS: 10, +FIXED_TIME_STEP: 1 / 60, +MAX_ACCUMULATOR: .2 +}, +ctor: function() { +this._debugDrawFlags = 0; +this._debugDrawer = null; +this._world = null; +this._bodies = []; +this._joints = []; +this._contactMap = {}; +this._contactID = 0; +this._delayEvents = []; +this._accumulator = 0; +cc.director._scheduler && cc.director._scheduler.enableForTarget(this); +this.enabledAccumulator = !1; +}, +pushDelayEvent: function(t, e, i) { +this._steping ? this._delayEvents.push({ +target: t, +func: e, +args: i +}) : t[e].apply(t, i); +}, +update: function(t) { +var e = this._world; +if (e && this.enabled) { +this.emit("before-step"); +this._steping = !0; +var i = p.VELOCITY_ITERATIONS, n = p.POSITION_ITERATIONS; +if (this.enabledAccumulator) { +this._accumulator += t; +var r = p.FIXED_TIME_STEP, s = p.MAX_ACCUMULATOR; +this._accumulator > s && (this._accumulator = s); +for (;this._accumulator > r; ) { +e.Step(r, i, n); +this._accumulator -= r; +} +} else { +var o = 1 / cc.game.config.frameRate; +e.Step(o, i, n); +} +if (this.debugDrawFlags) { +this._checkDebugDrawValid(); +this._debugDrawer.clear(); +e.DrawDebugData(); +} +this._steping = !1; +for (var a = this._delayEvents, c = 0, l = a.length; c < l; c++) { +var h = a[c]; +h.target[h.func].apply(h.target, h.args); +} +a.length = 0; +this._syncNode(); +} +}, +testPoint: function(t) { +var e = f.x = t.x / c, i = f.y = t.y / c, n = .2 / c; +_.lowerBound.x = e - n; +_.lowerBound.y = i - n; +_.upperBound.x = e + n; +_.upperBound.y = i + n; +var r = this._aabbQueryCallback; +r.init(f); +this._world.QueryAABB(r, _); +var s = r.getFixture(); +return s ? s.collider : null; +}, +testAABB: function(t) { +_.lowerBound.x = t.xMin / c; +_.lowerBound.y = t.yMin / c; +_.upperBound.x = t.xMax / c; +_.upperBound.y = t.yMax / c; +var e = this._aabbQueryCallback; +e.init(); +this._world.QueryAABB(e, _); +return e.getFixtures().map((function(t) { +return t.collider; +})); +}, +rayCast: function(t, e, i) { +if (t.equals(e)) return []; +i = i || o.Closest; +f.x = t.x / c; +f.y = t.y / c; +d.x = e.x / c; +d.y = e.y / c; +var n = this._raycastQueryCallback; +n.init(i); +this._world.RayCast(n, f, d); +var r = n.getFixtures(); +if (r.length > 0) { +for (var s = n.getPoints(), a = n.getNormals(), l = n.getFractions(), h = [], u = 0, _ = r.length; u < _; u++) { +var m = r[u], p = m.collider; +if (i === o.AllClosest) { +var v = h.find((function(t) { +return t.collider === p; +})); +if (v) { +if (l[u] < v.fraction) { +v.fixtureIndex = p._getFixtureIndex(m); +v.point.x = s[u].x * c; +v.point.y = s[u].y * c; +v.normal.x = a[u].x; +v.normal.y = a[u].y; +v.fraction = l[u]; +} +continue; +} +} +h.push({ +collider: p, +fixtureIndex: p._getFixtureIndex(m), +point: cc.v2(s[u].x * c, s[u].y * c), +normal: cc.v2(a[u]), +fraction: l[u] +}); +} +return h; +} +return []; +}, +syncPosition: function() { +for (var t = this._bodies, e = 0; e < t.length; e++) t[e].syncPosition(); +}, +syncRotation: function() { +for (var t = this._bodies, e = 0; e < t.length; e++) t[e].syncRotation(); +}, +_registerContactFixture: function(t) { +this._contactListener.registerContactFixture(t); +}, +_unregisterContactFixture: function(t) { +this._contactListener.unregisterContactFixture(t); +}, +_addBody: function(t, e) { +var i = this._world, n = t.node; +if (i && n) { +t._b2Body = i.CreateBody(e); +t._b2Body.body = t; +this._bodies.push(t); +} +}, +_removeBody: function(t) { +var e = this._world; +if (e) { +t._b2Body.body = null; +e.DestroyBody(t._b2Body); +t._b2Body = null; +cc.js.array.remove(this._bodies, t); +} +}, +_addJoint: function(t, e) { +var i = this._world.CreateJoint(e); +if (i) { +i._joint = t; +t._joint = i; +this._joints.push(t); +} +}, +_removeJoint: function(t) { +t._isValid() && this._world.DestroyJoint(t._joint); +t._joint && (t._joint._joint = null); +cc.js.array.remove(this._joints, t); +}, +_initCallback: function() { +if (this._world) { +if (!this._contactListener) { +var t = new cc.PhysicsContactListener(); +t.setBeginContact(this._onBeginContact); +t.setEndContact(this._onEndContact); +t.setPreSolve(this._onPreSolve); +t.setPostSolve(this._onPostSolve); +this._world.SetContactListener(t); +this._contactListener = t; +this._aabbQueryCallback = new cc.PhysicsAABBQueryCallback(); +this._raycastQueryCallback = new cc.PhysicsRayCastCallback(); +} +} else cc.warn("Please init PhysicsManager first"); +}, +_init: function() { +this.enabled = !0; +this.debugDrawFlags = a.e_shapeBit; +}, +_getWorld: function() { +return this._world; +}, +_syncNode: function() { +for (var t = this._bodies, e = 0, i = t.length; e < i; e++) { +var n = t[e], r = n.node, o = n._b2Body, a = o.GetPosition(); +m.x = a.x * c; +m.y = a.y * c; +var u = o.GetAngle() * l; +if (null !== r.parent.parent) { +m = r.parent.convertToNodeSpaceAR(m); +u = h(r.parent, u); +} +var _ = r._eventMask; +r._eventMask = 0; +r.position = m; +r.angle = -u; +r._eventMask = _; +n.type === s.Animated && n.resetVelocity(); +} +}, +_onBeginContact: function(t) { +cc.PhysicsContact.get(t).emit(r.BEGIN_CONTACT); +}, +_onEndContact: function(t) { +var e = t._contact; +if (e) { +e.emit(r.END_CONTACT); +cc.PhysicsContact.put(t); +} +}, +_onPreSolve: function(t) { +var e = t._contact; +e && e.emit(r.PRE_SOLVE); +}, +_onPostSolve: function(t, e) { +var i = t._contact; +if (i) { +i._impulse = e; +i.emit(r.POST_SOLVE); +i._impulse = null; +} +}, +_checkDebugDrawValid: function() { +if (!this._debugDrawer || !this._debugDrawer.isValid) { +var t = new cc.Node("PHYSICS_MANAGER_DEBUG_DRAW"); +t.zIndex = cc.macro.MAX_ZINDEX; +cc.game.addPersistRootNode(t); +this._debugDrawer = t.addComponent(cc.Graphics); +var e = new u(this._debugDrawer); +e.SetFlags(this.debugDrawFlags); +this._world.SetDebugDraw(e); +} +} +}); +cc.js.getset(p.prototype, "enabled", (function() { +return this._enabled; +}), (function(t) { +0; +if (t && !this._world) { +var e = new b2.World(new b2.Vec2(0, -10)); +e.SetAllowSleeping(!0); +this._world = e; +this._initCallback(); +} +this._enabled = t; +})); +cc.js.getset(p.prototype, "debugDrawFlags", (function() { +return this._debugDrawFlags; +}), (function(t) { +0; +t && !this._debugDrawFlags ? this._debugDrawer && this._debugDrawer.node && (this._debugDrawer.node.active = !0) : !t && this._debugDrawFlags && this._debugDrawer && this._debugDrawer.node && (this._debugDrawer.node.active = !1); +if (t) { +this._checkDebugDrawValid(); +this._world.m_debugDraw.SetFlags(t); +} +this._debugDrawFlags = t; +if (t) { +this._checkDebugDrawValid(); +this._world.m_debugDraw.SetFlags(t); +} +})); +cc.js.getset(p.prototype, "gravity", (function() { +if (this._world) { +var t = this._world.GetGravity(); +return cc.v2(t.x * c, t.y * c); +} +return cc.v2(); +}), (function(t) { +this._world && this._world.SetGravity(new b2.Vec2(t.x / c, t.y / c)); +})); +cc.PhysicsManager = e.exports = p; +}), { +"./CCPhysicsTypes": 175, +"./platform/CCPhysicsDebugDraw": 196, +"./utils": 198 +} ], +175: [ (function(t, e, i) { +"use strict"; +var n = cc.Enum({ +Static: 0, +Kinematic: 1, +Dynamic: 2, +Animated: 3 +}); +cc.RigidBodyType = n; +var r = cc.Enum({ +Closest: 0, +Any: 1, +AllClosest: 2, +All: 3 +}); +cc.RayCastType = r; +e.exports = { +BodyType: n, +ContactType: { +BEGIN_CONTACT: "begin-contact", +END_CONTACT: "end-contact", +PRE_SOLVE: "pre-solve", +POST_SOLVE: "post-solve" +}, +RayCastType: r, +DrawBits: b2.DrawFlags, +PTM_RATIO: 32, +ANGLE_TO_PHYSICS_ANGLE: -Math.PI / 180, +PHYSICS_ANGLE_TO_ANGLE: -180 / Math.PI +}; +}), {} ], +176: [ (function(i, n, r) { +"use strict"; +function s(t, e) { +var i = e.length; +return e[t < 0 ? i - -t % i : t % i]; +} +function o(t, e, i) { +for (var n = []; e < t; ) e += i.length; +for (;t <= e; ++t) n.push(s(t, i)); +return n; +} +function a(t, e, i) { +if (c(t, i)) { +if (u(s(t, i), s(t - 1, i), s(e, i)) && _(s(t, i), s(t + 1, i), s(e, i))) return !1; +} else if (_(s(t, i), s(t + 1, i), s(e, i)) || u(s(t, i), s(t - 1, i), s(e, i))) return !1; +if (c(e, i)) { +if (u(s(e, i), s(e - 1, i), s(t, i)) && _(s(e, i), s(e + 1, i), s(t, i))) return !1; +} else if (_(s(e, i), s(e + 1, i), s(t, i)) || u(s(e, i), s(e - 1, i), s(t, i))) return !1; +for (var n = 0; n < i.length; ++n) if ((n + 1) % i.length != t && n != t && (n + 1) % i.length != e && n != e) { +var r = cc.v2(); +if (y(s(t, i), s(e, i), s(n, i), s(n + 1, i), r)) return !1; +} +return !0; +} +function c(t, e) { +return l(t, e); +} +function l(i, n, r) { +if ("undefined" === ("object" === (e = typeof r) ? t(r) : e)) { +var o = i, a = n; +i = s(o - 1, a); +n = s(o, a); +r = s(o + 1, a); +} +return x(i, n, r) < 0; +} +function h(t, e, i) { +return x(t, e, i) > 0; +} +function u(t, e, i) { +return x(t, e, i) >= 0; +} +function _(t, e, i) { +return x(t, e, i) <= 0; +} +function f(t, e) { +var i = e.x - t.x, n = e.y - t.y; +return i * i + n * n; +} +function d(t) { +m(t) || t.reverse(); +} +function m(t) { +return t.length < 3 || p(t) > 0; +} +function p(t) { +var e, i = 0; +for (e = 0; e < t.length; e++) { +var n = (e + 1) % t.length; +i += t[e].x * t[n].y; +i -= t[e].y * t[n].x; +} +return i /= 2; +} +function v(t, e, i, n) { +var r = cc.v2(), s = e.y - t.y, o = t.x - e.x, a = s * t.x + o * t.y, c = n.y - i.y, l = i.x - n.x, h = c * i.x + l * i.y, u = s * l - c * o; +if (!g(u, 0)) { +r.x = (l * a - o * h) / u; +r.y = (s * h - c * a) / u; +} +return r; +} +function y(t, e, i, n, r) { +if (t == i || t == n || e == i || e == n) return !1; +var s = t.x, o = t.y, a = e.x, c = e.y, l = i.x, h = i.y, u = n.x, _ = n.y; +if (Math.max(s, a) < Math.min(l, u) || Math.max(l, u) < Math.min(s, a)) return !1; +if (Math.max(o, c) < Math.min(h, _) || Math.max(h, _) < Math.min(o, c)) return !1; +var f = (u - l) * (o - h) - (_ - h) * (s - l), d = (a - s) * (o - h) - (c - o) * (s - l), m = (_ - h) * (a - s) - (u - l) * (c - o); +if (Math.abs(m) < 1e-6) return !1; +d /= m; +if (0 < (f /= m) && f < 1 && 0 < d && d < 1) { +r.x = s + f * (a - s); +r.y = o + f * (c - o); +return !0; +} +return !1; +} +function g(t, e) { +return Math.abs(t - e) <= 1e-6; +} +function x(t, e, i) { +return t.x * (e.y - i.y) + e.x * (i.y - t.y) + i.x * (t.y - e.y); +} +n.exports = { +ConvexPartition: function t(e) { +d(e); +for (var i, n, r, m, p, y, g = [], x = cc.v2(), C = cc.v2(), b = 0, A = 0, S = 0; S < e.length; ++S) if (c(S, e)) { +n = r = 1e8; +for (var w = 0; w < e.length; ++w) { +if (h(s(S - 1, e), s(S, e), s(w, e)) && _(s(S - 1, e), s(S, e), s(w - 1, e))) { +m = v(s(S - 1, e), s(S, e), s(w, e), s(w - 1, e)); +if (l(s(S + 1, e), s(S, e), m) && (i = f(s(S, e), m)) < n) { +n = i; +x = m; +b = w; +} +} +if (h(s(S + 1, e), s(S, e), s(w + 1, e)) && _(s(S + 1, e), s(S, e), s(w, e))) { +m = v(s(S + 1, e), s(S, e), s(w, e), s(w + 1, e)); +if (h(s(S - 1, e), s(S, e), m) && (i = f(s(S, e), m)) < r) { +r = i; +A = w; +C = m; +} +} +} +if (b == (A + 1) % e.length) { +var T = x.add(C).div(2); +(p = o(S, A, e)).push(T); +(y = o(b, S, e)).push(T); +} else { +for (var E = 0, M = b; A < b; ) A += e.length; +for (w = b; w <= A; ++w) if (a(S, w, e)) { +var B = 1 / (f(s(S, e), s(w, e)) + 1); +c(w, e) ? _(s(w - 1, e), s(w, e), s(S, e)) && u(s(w + 1, e), s(w, e), s(S, e)) ? B += 3 : B += 2 : B += 1; +if (B > E) { +M = w; +E = B; +} +} +p = o(S, M, e); +y = o(M, S, e); +} +return g = (g = g.concat(t(p))).concat(t(y)); +} +g.push(e); +for (S = g.length - 1; S >= 0; S--) 0 == g[S].length && g.splice(S, 0); +return g; +}, +ForceCounterClockWise: d, +IsCounterClockWise: m +}; +}), {} ], +177: [ (function(t, e, i) { +"use strict"; +var n = t("../CCNode").EventType, r = t("./CCPhysicsTypes").PTM_RATIO, s = t("./CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE, o = t("./CCPhysicsTypes").PHYSICS_ANGLE_TO_ANGLE, a = t("./utils").getWorldRotation, c = t("./CCPhysicsTypes").BodyType, l = new b2.Vec2(), h = new b2.Vec2(), u = cc.Vec2.ZERO, _ = cc.Class({ +name: "cc.RigidBody", +extends: cc.Component, +editor: !1, +properties: { +_type: c.Dynamic, +_allowSleep: !0, +_gravityScale: 1, +_linearDamping: 0, +_angularDamping: 0, +_linearVelocity: cc.v2(0, 0), +_angularVelocity: 0, +_fixedRotation: !1, +enabled: { +get: function() { +return this._enabled; +}, +set: function() { +cc.warnID(8200); +}, +visible: !1, +override: !0 +}, +enabledContactListener: { +default: !1, +tooltip: !1 +}, +bullet: { +default: !1, +tooltip: !1 +}, +type: { +type: c, +tooltip: !1, +get: function() { +return this._type; +}, +set: function(t) { +this._type = t; +this._b2Body && (t === c.Animated ? this._b2Body.SetType(c.Kinematic) : this._b2Body.SetType(t)); +} +}, +allowSleep: { +tooltip: !1, +get: function() { +return this._b2Body ? this._b2Body.IsSleepingAllowed() : this._allowSleep; +}, +set: function(t) { +this._allowSleep = t; +this._b2Body && this._b2Body.SetSleepingAllowed(t); +} +}, +gravityScale: { +tooltip: !1, +get: function() { +return this._gravityScale; +}, +set: function(t) { +this._gravityScale = t; +this._b2Body && this._b2Body.SetGravityScale(t); +} +}, +linearDamping: { +tooltip: !1, +get: function() { +return this._linearDamping; +}, +set: function(t) { +this._linearDamping = t; +this._b2Body && this._b2Body.SetLinearDamping(this._linearDamping); +} +}, +angularDamping: { +tooltip: !1, +get: function() { +return this._angularDamping; +}, +set: function(t) { +this._angularDamping = t; +this._b2Body && this._b2Body.SetAngularDamping(t); +} +}, +linearVelocity: { +tooltip: !1, +type: cc.Vec2, +get: function() { +var t = this._linearVelocity; +if (this._b2Body) { +var e = this._b2Body.GetLinearVelocity(); +t.x = e.x * r; +t.y = e.y * r; +} +return t; +}, +set: function(t) { +this._linearVelocity = t; +var e = this._b2Body; +if (e) { +var i = e.m_linearVelocity; +i.Set(t.x / r, t.y / r); +e.SetLinearVelocity(i); +} +} +}, +angularVelocity: { +tooltip: !1, +get: function() { +return this._b2Body ? this._b2Body.GetAngularVelocity() * o : this._angularVelocity; +}, +set: function(t) { +this._angularVelocity = t; +this._b2Body && this._b2Body.SetAngularVelocity(t * s); +} +}, +fixedRotation: { +tooltip: !1, +get: function() { +return this._fixedRotation; +}, +set: function(t) { +this._fixedRotation = t; +this._b2Body && this._b2Body.SetFixedRotation(t); +} +}, +awake: { +visible: !1, +tooltip: !1, +get: function() { +return !!this._b2Body && this._b2Body.IsAwake(); +}, +set: function(t) { +this._b2Body && this._b2Body.SetAwake(t); +} +}, +awakeOnLoad: { +default: !0, +tooltip: !1, +animatable: !1 +}, +active: { +visible: !1, +get: function() { +return !!this._b2Body && this._b2Body.IsActive(); +}, +set: function(t) { +this._b2Body && this._b2Body.SetActive(t); +} +} +}, +getLocalPoint: function(t, e) { +e = e || cc.v2(); +if (this._b2Body) { +l.Set(t.x / r, t.y / r); +var i = this._b2Body.GetLocalPoint(l, e); +e.x = i.x * r; +e.y = i.y * r; +} +return e; +}, +getWorldPoint: function(t, e) { +e = e || cc.v2(); +if (this._b2Body) { +l.Set(t.x / r, t.y / r); +var i = this._b2Body.GetWorldPoint(l, e); +e.x = i.x * r; +e.y = i.y * r; +} +return e; +}, +getWorldVector: function(t, e) { +e = e || cc.v2(); +if (this._b2Body) { +l.Set(t.x / r, t.y / r); +var i = this._b2Body.GetWorldVector(l, e); +e.x = i.x * r; +e.y = i.y * r; +} +return e; +}, +getLocalVector: function(t, e) { +e = e || cc.v2(); +if (this._b2Body) { +l.Set(t.x / r, t.y / r); +var i = this._b2Body.GetLocalVector(l, e); +e.x = i.x * r; +e.y = i.y * r; +} +return e; +}, +getWorldPosition: function(t) { +t = t || cc.v2(); +if (this._b2Body) { +var e = this._b2Body.GetPosition(); +t.x = e.x * r; +t.y = e.y * r; +} +return t; +}, +getWorldRotation: function() { +return this._b2Body ? this._b2Body.GetAngle() * o : 0; +}, +getLocalCenter: function(t) { +t = t || cc.v2(); +if (this._b2Body) { +var e = this._b2Body.GetLocalCenter(); +t.x = e.x * r; +t.y = e.y * r; +} +return t; +}, +getWorldCenter: function(t) { +t = t || cc.v2(); +if (this._b2Body) { +var e = this._b2Body.GetWorldCenter(); +t.x = e.x * r; +t.y = e.y * r; +} +return t; +}, +getLinearVelocityFromWorldPoint: function(t, e) { +e = e || cc.v2(); +if (this._b2Body) { +l.Set(t.x / r, t.y / r); +var i = this._b2Body.GetLinearVelocityFromWorldPoint(l, e); +e.x = i.x * r; +e.y = i.y * r; +} +return e; +}, +getMass: function() { +return this._b2Body ? this._b2Body.GetMass() : 0; +}, +getInertia: function() { +return this._b2Body ? this._b2Body.GetInertia() * r * r : 0; +}, +getJointList: function() { +if (!this._b2Body) return []; +var t = [], e = this._b2Body.GetJointList(); +if (!e) return []; +t.push(e.joint._joint); +for (var i = e.prev; i; ) { +t.push(i.joint._joint); +i = i.prev; +} +for (var n = e.next; n; ) { +t.push(n.joint._joint); +n = n.next; +} +return t; +}, +applyForce: function(t, e, i) { +if (this._b2Body) { +l.Set(t.x / r, t.y / r); +h.Set(e.x / r, e.y / r); +this._b2Body.ApplyForce(l, h, i); +} +}, +applyForceToCenter: function(t, e) { +if (this._b2Body) { +l.Set(t.x / r, t.y / r); +this._b2Body.ApplyForceToCenter(l, e); +} +}, +applyTorque: function(t, e) { +this._b2Body && this._b2Body.ApplyTorque(t / r, e); +}, +applyLinearImpulse: function(t, e, i) { +if (this._b2Body) { +l.Set(t.x / r, t.y / r); +h.Set(e.x / r, e.y / r); +this._b2Body.ApplyLinearImpulse(l, h, i); +} +}, +applyAngularImpulse: function(t, e) { +this._b2Body && this._b2Body.ApplyAngularImpulse(t / r / r, e); +}, +syncPosition: function(t) { +var e = this._b2Body; +if (e) { +var i, n = this.node.convertToWorldSpaceAR(u); +(i = this.type === c.Animated ? e.GetLinearVelocity() : e.GetPosition()).x = n.x / r; +i.y = n.y / r; +if (this.type === c.Animated && t) { +var s = e.GetPosition(), o = cc.game.config.frameRate; +i.x = (i.x - s.x) * o; +i.y = (i.y - s.y) * o; +e.SetAwake(!0); +e.SetLinearVelocity(i); +} else e.SetTransformVec(i, e.GetAngle()); +} +}, +syncRotation: function(t) { +var e = this._b2Body; +if (e) { +var i = s * a(this.node); +if (this.type === c.Animated && t) { +var n = e.GetAngle(), r = cc.game.config.frameRate; +e.SetAwake(!0); +e.SetAngularVelocity((i - n) * r); +} else e.SetTransformVec(e.GetPosition(), i); +} +}, +resetVelocity: function() { +var t = this._b2Body; +if (t) { +var e = t.m_linearVelocity; +e.Set(0, 0); +t.SetLinearVelocity(e); +t.SetAngularVelocity(0); +} +}, +onEnable: function() { +this._init(); +}, +onDisable: function() { +this._destroy(); +}, +_registerNodeEvents: function() { +var t = this.node; +t.on(n.POSITION_CHANGED, this._onNodePositionChanged, this); +t.on(n.ROTATION_CHANGED, this._onNodeRotationChanged, this); +t.on(n.SCALE_CHANGED, this._onNodeScaleChanged, this); +}, +_unregisterNodeEvents: function() { +var t = this.node; +t.off(n.POSITION_CHANGED, this._onNodePositionChanged, this); +t.off(n.ROTATION_CHANGED, this._onNodeRotationChanged, this); +t.off(n.SCALE_CHANGED, this._onNodeScaleChanged, this); +}, +_onNodePositionChanged: function() { +this.syncPosition(!0); +}, +_onNodeRotationChanged: function(t) { +this.syncRotation(!0); +}, +_onNodeScaleChanged: function(t) { +if (this._b2Body) for (var e = this.getComponents(cc.PhysicsCollider), i = 0; i < e.length; i++) e[i].apply(); +}, +_init: function() { +cc.director.getPhysicsManager().pushDelayEvent(this, "__init", []); +}, +_destroy: function() { +cc.director.getPhysicsManager().pushDelayEvent(this, "__destroy", []); +}, +__init: function() { +if (!this._inited) { +this._registerNodeEvents(); +var t = new b2.BodyDef(); +this.type === c.Animated ? t.type = c.Kinematic : t.type = this.type; +t.allowSleep = this.allowSleep; +t.gravityScale = this.gravityScale; +t.linearDamping = this.linearDamping; +t.angularDamping = this.angularDamping; +var e = this.linearVelocity; +t.linearVelocity = new b2.Vec2(e.x / r, e.y / r); +t.angularVelocity = this.angularVelocity * s; +t.fixedRotation = this.fixedRotation; +t.bullet = this.bullet; +var i = this.node, n = i.convertToWorldSpaceAR(u); +t.position = new b2.Vec2(n.x / r, n.y / r); +t.angle = -Math.PI / 180 * a(i); +t.awake = this.awakeOnLoad; +cc.director.getPhysicsManager()._addBody(this, t); +this._inited = !0; +} +}, +__destroy: function() { +if (this._inited) { +cc.director.getPhysicsManager()._removeBody(this); +this._unregisterNodeEvents(); +this._inited = !1; +} +}, +_getBody: function() { +return this._b2Body; +} +}); +cc.RigidBody = e.exports = _; +}), { +"../CCNode": 52, +"./CCPhysicsTypes": 175, +"./utils": 198 +} ], +178: [ (function(t, e, i) { +"use strict"; +var n = t("../../../external/box2d/box2d"); +window.b2 = {}; +0; +for (var r in n) if (-1 === r.indexOf("b2_")) { +var s = r.replace("b2", ""); +b2[s] = n[r]; +} +b2.maxPolygonVertices = 8; +}), { +"../../../external/box2d/box2d": 401 +} ], +179: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.Class({ +name: "cc.PhysicsBoxCollider", +extends: cc.PhysicsCollider, +mixins: [ cc.Collider.Box ], +editor: { +menu: !1, +requireComponent: cc.RigidBody +}, +_createShape: function(t) { +var e = Math.abs(t.x), i = Math.abs(t.y), r = this.size.width / 2 / n * e, s = this.size.height / 2 / n * i, o = this.offset.x / n * e, a = this.offset.y / n * i, c = new b2.PolygonShape(); +c.SetAsBox(r, s, new b2.Vec2(o, a), 0); +return c; +} +}); +cc.PhysicsBoxCollider = e.exports = r; +}), { +"../CCPhysicsTypes": 175 +} ], +180: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.Class({ +name: "cc.PhysicsChainCollider", +extends: cc.PhysicsCollider, +editor: { +menu: !1, +inspector: !1, +requireComponent: cc.RigidBody +}, +properties: { +loop: !1, +points: { +default: function() { +return [ cc.v2(-50, 0), cc.v2(50, 0) ]; +}, +type: [ cc.Vec2 ] +}, +threshold: { +default: 1, +serializable: !1, +visible: !1 +} +}, +_createShape: function(t) { +for (var e = new b2.ChainShape(), i = this.points, r = [], s = 0; s < i.length; s++) { +var o = i[s]; +r.push(new b2.Vec2(o.x / n * t.x, o.y / n * t.y)); +} +this.loop ? e.CreateLoop(r, r.length) : e.CreateChain(r, r.length); +return e; +}, +resetInEditor: !1, +resetPointsByContour: !1 +}); +cc.PhysicsChainCollider = e.exports = r; +}), { +"../CCPhysicsTypes": 175 +} ], +181: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.Class({ +name: "cc.PhysicsCircleCollider", +extends: cc.PhysicsCollider, +mixins: [ cc.Collider.Circle ], +editor: { +menu: !1, +requireComponent: cc.RigidBody +}, +_createShape: function(t) { +var e = Math.abs(t.x), i = Math.abs(t.y), r = this.offset.x / n * e, s = this.offset.y / n * i, o = new b2.CircleShape(); +o.m_radius = this.radius / n * e; +o.m_p = new b2.Vec2(r, s); +return o; +} +}); +cc.PhysicsCircleCollider = e.exports = r; +}), { +"../CCPhysicsTypes": 175 +} ], +182: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../utils").getWorldScale, s = cc.Class({ +name: "cc.PhysicsCollider", +extends: cc.Collider, +ctor: function() { +this._fixtures = []; +this._shapes = []; +this._inited = !1; +this._rect = cc.rect(); +}, +properties: { +_density: 1, +_sensor: !1, +_friction: .2, +_restitution: 0, +density: { +tooltip: !1, +get: function() { +return this._density; +}, +set: function(t) { +this._density = t; +} +}, +sensor: { +tooltip: !1, +get: function() { +return this._sensor; +}, +set: function(t) { +this._sensor = t; +} +}, +friction: { +tooltip: !1, +get: function() { +return this._friction; +}, +set: function(t) { +this._friction = t; +} +}, +restitution: { +tooltip: !1, +get: function() { +return this._restitution; +}, +set: function(t) { +this._restitution = t; +} +}, +body: { +default: null, +type: cc.RigidBody, +visible: !1 +} +}, +onDisable: function() { +this._destroy(); +}, +onEnable: function() { +this._init(); +}, +start: function() { +this._init(); +}, +_getFixtureIndex: function(t) { +return this._fixtures.indexOf(t); +}, +_init: function() { +cc.director.getPhysicsManager().pushDelayEvent(this, "__init", []); +}, +_destroy: function() { +cc.director.getPhysicsManager().pushDelayEvent(this, "__destroy", []); +}, +__init: function() { +if (!this._inited) { +var t = this.body || this.getComponent(cc.RigidBody); +if (t) { +var e = t._getBody(); +if (e) { +var i = t.node, n = r(i); +this._scale = n; +var s = 0 === n.x && 0 === n.y ? [] : this._createShape(n); +s instanceof Array || (s = [ s ]); +for (var o = 1 << i.groupIndex, a = 0, c = cc.game.collisionMatrix[i.groupIndex], l = 0; l < c.length; l++) c[l] && (a |= 1 << l); +for (var h = { +categoryBits: o, +maskBits: a, +groupIndex: 0 +}, u = cc.director.getPhysicsManager(), _ = 0; _ < s.length; _++) { +var f = s[_], d = new b2.FixtureDef(); +d.density = this.density; +d.isSensor = this.sensor; +d.friction = this.friction; +d.restitution = this.restitution; +d.shape = f; +d.filter = h; +var m = e.CreateFixture(d); +m.collider = this; +t.enabledContactListener && u._registerContactFixture(m); +this._shapes.push(f); +this._fixtures.push(m); +} +this.body = t; +this._inited = !0; +} +} +} +}, +__destroy: function() { +if (this._inited) { +for (var t = this._fixtures, e = this.body._getBody(), i = cc.director.getPhysicsManager(), n = t.length - 1; n >= 0; n--) { +var r = t[n]; +r.collider = null; +i._unregisterContactFixture(r); +e && e.DestroyFixture(r); +} +this.body = null; +this._fixtures.length = 0; +this._shapes.length = 0; +this._inited = !1; +} +}, +_createShape: function() {}, +apply: function() { +this._destroy(); +this._init(); +}, +getAABB: function() { +for (var t = 1e7, e = 1e7, i = -1e7, r = -1e7, s = this._fixtures, o = 0; o < s.length; o++) for (var a = s[o], c = a.GetShape().GetChildCount(), l = 0; l < c; l++) { +var h = a.GetAABB(l); +h.lowerBound.x < t && (t = h.lowerBound.x); +h.lowerBound.y < e && (e = h.lowerBound.y); +h.upperBound.x > i && (i = h.upperBound.x); +h.upperBound.y > r && (r = h.upperBound.y); +} +t *= n; +e *= n; +i *= n; +r *= n; +var u = this._rect; +u.x = t; +u.y = e; +u.width = i - t; +u.height = r - e; +return u; +} +}); +cc.PhysicsCollider = e.exports = s; +}), { +"../CCPhysicsTypes": 175, +"../utils": 198 +} ], +183: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../CCPolygonSeparator"), s = cc.Class({ +name: "cc.PhysicsPolygonCollider", +extends: cc.PhysicsCollider, +mixins: [ cc.Collider.Polygon ], +editor: { +menu: !1, +inspector: !1, +requireComponent: cc.RigidBody +}, +_createShape: function(t) { +var e = [], i = this.points; +i.length > 0 && i[0].equals(i[i.length - 1]) && (i.length -= 1); +for (var s = r.ConvexPartition(i), o = this.offset, a = 0; a < s.length; a++) { +for (var c = s[a], l = null, h = [], u = null, _ = 0, f = c.length; _ < f; _++) { +l || (l = new b2.PolygonShape()); +var d = c[_], m = (d.x + o.x) / n * t.x, p = (d.y + o.y) / n * t.y, v = new b2.Vec2(m, p); +h.push(v); +u || (u = v); +if (h.length === b2.maxPolygonVertices) { +l.Set(h, h.length); +e.push(l); +l = null; +_ < f - 1 && (h = [ u, h[h.length - 1] ]); +} +} +if (l) { +l.Set(h, h.length); +e.push(l); +} +} +return e; +} +}); +cc.PhysicsPolygonCollider = e.exports = s; +}), { +"../CCPhysicsTypes": 175, +"../CCPolygonSeparator": 176 +} ], +184: [ (function(t, e, i) { +"use strict"; +t("./box2d-adapter"); +t("./CCPhysicsManager"); +t("./CCRigidBody"); +t("./CCPhysicsContact"); +t("./collider/CCPhysicsCollider"); +t("./collider/CCPhysicsChainCollider"); +t("./collider/CCPhysicsCircleCollider"); +t("./collider/CCPhysicsBoxCollider"); +t("./collider/CCPhysicsPolygonCollider"); +t("./joint/CCJoint"); +t("./joint/CCDistanceJoint"); +t("./joint/CCRevoluteJoint"); +t("./joint/CCMouseJoint"); +t("./joint/CCMotorJoint"); +t("./joint/CCPrismaticJoint"); +t("./joint/CCWeldJoint"); +t("./joint/CCWheelJoint"); +t("./joint/CCRopeJoint"); +t("./platform/CCPhysicsContactListner"); +t("./platform/CCPhysicsAABBQueryCallback"); +t("./platform/CCPhysicsRayCastCallback"); +}), { +"./CCPhysicsContact": 173, +"./CCPhysicsManager": 174, +"./CCRigidBody": 177, +"./box2d-adapter": 178, +"./collider/CCPhysicsBoxCollider": 179, +"./collider/CCPhysicsChainCollider": 180, +"./collider/CCPhysicsCircleCollider": 181, +"./collider/CCPhysicsCollider": 182, +"./collider/CCPhysicsPolygonCollider": 183, +"./joint/CCDistanceJoint": 185, +"./joint/CCJoint": 186, +"./joint/CCMotorJoint": 187, +"./joint/CCMouseJoint": 188, +"./joint/CCPrismaticJoint": 189, +"./joint/CCRevoluteJoint": 190, +"./joint/CCRopeJoint": 191, +"./joint/CCWeldJoint": 192, +"./joint/CCWheelJoint": 193, +"./platform/CCPhysicsAABBQueryCallback": 194, +"./platform/CCPhysicsContactListner": 195, +"./platform/CCPhysicsRayCastCallback": 197 +} ], +185: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.Class({ +name: "cc.DistanceJoint", +extends: cc.Joint, +editor: !1, +properties: { +_distance: 1, +_frequency: 0, +_dampingRatio: 0, +distance: { +tooltip: !1, +get: function() { +return this._distance; +}, +set: function(t) { +this._distance = t; +this._joint && this._joint.SetLength(t); +} +}, +frequency: { +tooltip: !1, +get: function() { +return this._frequency; +}, +set: function(t) { +this._frequency = t; +this._joint && this._joint.SetFrequency(t); +} +}, +dampingRatio: { +tooltip: !1, +get: function() { +return this._dampingRatio; +}, +set: function(t) { +this._dampingRatio = t; +this._joint && this._joint.SetDampingRatio(t); +} +} +}, +_createJointDef: function() { +var t = new b2.DistanceJointDef(); +t.localAnchorA = new b2.Vec2(this.anchor.x / n, this.anchor.y / n); +t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / n, this.connectedAnchor.y / n); +t.length = this.distance / n; +t.dampingRatio = this.dampingRatio; +t.frequencyHz = this.frequency; +return t; +} +}); +cc.DistanceJoint = e.exports = r; +}), { +"../CCPhysicsTypes": 175 +} ], +186: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.Class({ +name: "cc.Joint", +extends: cc.Component, +editor: { +requireComponent: cc.RigidBody +}, +properties: { +anchor: { +default: cc.v2(0, 0), +tooltip: !1 +}, +connectedAnchor: { +default: cc.v2(0, 0), +tooltip: !1 +}, +connectedBody: { +default: null, +type: cc.RigidBody, +tooltip: !1 +}, +collideConnected: { +default: !1, +tooltip: !1 +} +}, +onDisable: function() { +this._destroy(); +}, +onEnable: function() { +this._init(); +}, +start: function() { +this._init(); +}, +apply: function() { +this._destroy(); +this._init(); +}, +getWorldAnchor: function() { +if (this._joint) { +var t = this._joint.GetAnchorA(); +return cc.v2(t.x * n, t.y * n); +} +return cc.Vec2.ZERO; +}, +getWorldConnectedAnchor: function() { +if (this._joint) { +var t = this._joint.GetAnchorB(); +return cc.v2(t.x * n, t.y * n); +} +return cc.Vec2.ZERO; +}, +getReactionForce: function(t) { +var e = cc.v2(); +return this._joint ? this._joint.GetReactionForce(t, e) : e; +}, +getReactionTorque: function(t) { +return this._joint ? this._joint.GetReactionTorque(t) : 0; +}, +_init: function() { +cc.director.getPhysicsManager().pushDelayEvent(this, "__init", []); +}, +_destroy: function() { +cc.director.getPhysicsManager().pushDelayEvent(this, "__destroy", []); +}, +__init: function() { +if (!this._inited) { +this.body = this.getComponent(cc.RigidBody); +if (this._isValid()) { +var t = this._createJointDef(); +if (!t) return; +t.bodyA = this.body._getBody(); +t.bodyB = this.connectedBody._getBody(); +t.collideConnected = this.collideConnected; +cc.director.getPhysicsManager()._addJoint(this, t); +this._inited = !0; +} +} +}, +__destroy: function() { +if (this._inited) { +cc.director.getPhysicsManager()._removeJoint(this); +this._joint = null; +this._inited = !1; +} +}, +_createJointDef: function() { +return null; +}, +_isValid: function() { +return this.body && this.body._getBody() && this.connectedBody && this.connectedBody._getBody(); +} +}); +cc.Joint = e.exports = r; +}), { +"../CCPhysicsTypes": 175 +} ], +187: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE, s = cc.Class({ +name: "cc.MotorJoint", +extends: cc.Joint, +editor: !1, +properties: { +_linearOffset: cc.v2(0, 0), +_angularOffset: 0, +_maxForce: 1, +_maxTorque: 1, +_correctionFactor: .3, +anchor: { +tooltip: !1, +default: cc.v2(0, 0), +override: !0, +visible: !1 +}, +connectedAnchor: { +tooltip: !1, +default: cc.v2(0, 0), +override: !0, +visible: !1 +}, +linearOffset: { +tooltip: !1, +get: function() { +return this._linearOffset; +}, +set: function(t) { +this._linearOffset = t; +this._joint && this._joint.SetLinearOffset(new b2.Vec2(t.x / n, t.y / n)); +} +}, +angularOffset: { +tooltip: !1, +get: function() { +return this._angularOffset; +}, +set: function(t) { +this._angularOffset = t; +this._joint && this._joint.SetAngularOffset(t); +} +}, +maxForce: { +tooltip: !1, +get: function() { +return this._maxForce; +}, +set: function(t) { +this._maxForce = t; +this._joint && this._joint.SetMaxForce(t); +} +}, +maxTorque: { +tooltip: !1, +get: function() { +return this._maxTorque; +}, +set: function(t) { +this._maxTorque = t; +this._joint && this._joint.SetMaxTorque(t); +} +}, +correctionFactor: { +tooltip: !1, +get: function() { +return this._correctionFactor; +}, +set: function(t) { +this._correctionFactor = t; +this._joint && this._joint.SetCorrectionFactor(t); +} +} +}, +_createJointDef: function() { +var t = new b2.MotorJointDef(); +t.linearOffset = new b2.Vec2(this.linearOffset.x / n, this.linearOffset.y / n); +t.angularOffset = this.angularOffset * r; +t.maxForce = this.maxForce; +t.maxTorque = this.maxTorque; +t.correctionFactor = this.correctionFactor; +return t; +} +}); +cc.MotorJoint = e.exports = s; +}), { +"../CCPhysicsTypes": 175 +} ], +188: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = new b2.Vec2(), s = cc.Class({ +name: "cc.MouseJoint", +extends: cc.Joint, +editor: !1, +properties: { +_target: 1, +_frequency: 5, +_dampingRatio: .7, +_maxForce: 0, +connectedBody: { +default: null, +type: cc.RigidBody, +visible: !1, +override: !0 +}, +collideConnected: { +default: !0, +visible: !1, +override: !0 +}, +anchor: { +tooltip: !1, +default: cc.v2(0, 0), +override: !0, +visible: !1 +}, +connectedAnchor: { +tooltip: !1, +default: cc.v2(0, 0), +override: !0, +visible: !1 +}, +mouseRegion: { +tooltip: !1, +default: null, +type: cc.Node +}, +target: { +tooltip: !1, +visible: !1, +get: function() { +return this._target; +}, +set: function(t) { +this._target = t; +if (this._joint) { +r.x = t.x / n; +r.y = t.y / n; +this._joint.SetTarget(r); +} +} +}, +frequency: { +tooltip: !1, +get: function() { +return this._frequency; +}, +set: function(t) { +this._frequency = t; +this._joint && this._joint.SetFrequency(t); +} +}, +dampingRatio: { +tooltip: !1, +get: function() { +return this._dampingRatio; +}, +set: function(t) { +this._dampingRatio = t; +this._joint && this._joint.SetDampingRatio(t); +} +}, +maxForce: { +tooltip: !1, +visible: !1, +get: function() { +return this._maxForce; +}, +set: function(t) { +this._maxForce = t; +this._joint && this._joint.SetMaxForce(t); +} +} +}, +onLoad: function() { +var t = this.mouseRegion || this.node; +t.on(cc.Node.EventType.TOUCH_START, this.onTouchBegan, this); +t.on(cc.Node.EventType.TOUCH_MOVE, this.onTouchMove, this); +t.on(cc.Node.EventType.TOUCH_END, this.onTouchEnd, this); +t.on(cc.Node.EventType.TOUCH_CANCEL, this.onTouchEnd, this); +}, +onEnable: function() {}, +start: function() {}, +onTouchBegan: function(t) { +var e = cc.director.getPhysicsManager(), i = this._pressPoint = t.touch.getLocation(); +cc.Camera && cc.Camera.main && (i = cc.Camera.main.getScreenToWorldPoint(i)); +var n = e.testPoint(i); +if (n) { +(this.connectedBody = n.body).awake = !0; +this.maxForce = 1e3 * this.connectedBody.getMass(); +this.target = i; +this._init(); +} +}, +onTouchMove: function(t) { +this._pressPoint = t.touch.getLocation(); +}, +onTouchEnd: function(t) { +this._destroy(); +this._pressPoint = null; +}, +_createJointDef: function() { +var t = new b2.MouseJointDef(); +r.x = this.target.x / n; +r.y = this.target.y / n; +t.target = r; +t.maxForce = this.maxForce; +t.dampingRatio = this.dampingRatio; +t.frequencyHz = this.frequency; +return t; +}, +update: function() { +if (this._pressPoint && this._isValid()) { +var t = cc.Camera.findCamera(this.node); +this.target = t ? t.getScreenToWorldPoint(this._pressPoint) : this._pressPoint; +} +} +}); +cc.MouseJoint = e.exports = s; +}), { +"../CCPhysicsTypes": 175 +} ], +189: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE, s = cc.Class({ +name: "cc.PrismaticJoint", +extends: cc.Joint, +editor: !1, +properties: { +localAxisA: { +default: cc.v2(1, 0), +tooltip: !1 +}, +referenceAngle: { +default: 0, +tooltip: !1 +}, +enableLimit: { +default: !1, +tooltip: !1 +}, +enableMotor: { +default: !1, +tooltip: !1 +}, +lowerLimit: { +default: 0, +tooltip: !1 +}, +upperLimit: { +default: 0, +tooltip: !1 +}, +_maxMotorForce: 0, +_motorSpeed: 0, +maxMotorForce: { +tooltip: !1, +get: function() { +return this._maxMotorForce; +}, +set: function(t) { +this._maxMotorForce = t; +this._joint && this._joint.SetMaxMotorForce(t); +} +}, +motorSpeed: { +tooltip: !1, +get: function() { +return this._motorSpeed; +}, +set: function(t) { +this._motorSpeed = t; +this._joint && this._joint.SetMotorSpeed(t); +} +} +}, +_createJointDef: function() { +var t = new b2.PrismaticJointDef(); +t.localAnchorA = new b2.Vec2(this.anchor.x / n, this.anchor.y / n); +t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / n, this.connectedAnchor.y / n); +t.localAxisA = new b2.Vec2(this.localAxisA.x, this.localAxisA.y); +t.referenceAngle = this.referenceAngle * r; +t.enableLimit = this.enableLimit; +t.lowerTranslation = this.lowerLimit / n; +t.upperTranslation = this.upperLimit / n; +t.enableMotor = this.enableMotor; +t.maxMotorForce = this.maxMotorForce; +t.motorSpeed = this.motorSpeed; +return t; +} +}); +cc.PrismaticJoint = e.exports = s; +}), { +"../CCPhysicsTypes": 175 +} ], +190: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE, s = t("../CCPhysicsTypes").PHYSICS_ANGLE_TO_ANGLE, o = cc.Class({ +name: "cc.RevoluteJoint", +extends: cc.Joint, +editor: !1, +properties: { +_maxMotorTorque: 0, +_motorSpeed: 0, +_enableLimit: !1, +_enableMotor: !1, +referenceAngle: { +default: 0, +tooltip: !1 +}, +lowerAngle: { +default: 0, +tooltip: !1 +}, +upperAngle: { +default: 0, +tooltip: !1 +}, +maxMotorTorque: { +tooltip: !1, +get: function() { +return this._maxMotorTorque; +}, +set: function(t) { +this._maxMotorTorque = t; +this._joint && this._joint.SetMaxMotorTorque(t); +} +}, +motorSpeed: { +tooltip: !1, +get: function() { +return this._motorSpeed; +}, +set: function(t) { +this._motorSpeed = t; +this._joint && this._joint.SetMotorSpeed(t * r); +} +}, +enableLimit: { +tooltip: !1, +get: function() { +return this._enableLimit; +}, +set: function(t) { +this._enableLimit = t; +this._joint && this._joint.EnableLimit(t); +} +}, +enableMotor: { +tooltip: !1, +get: function() { +return this._enableMotor; +}, +set: function(t) { +this._enableMotor = t; +this._joint && this._joint.EnableMotor(t); +} +} +}, +getJointAngle: function() { +return this._joint ? this._joint.GetJointAngle() * s : 0; +}, +setLimits: function(t, e) { +if (this._joint) return this._joint.SetLimits(t * r, e * r); +}, +_createJointDef: function() { +var t = new b2.RevoluteJointDef(); +t.localAnchorA = new b2.Vec2(this.anchor.x / n, this.anchor.y / n); +t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / n, this.connectedAnchor.y / n); +t.lowerAngle = this.upperAngle * r; +t.upperAngle = this.lowerAngle * r; +t.maxMotorTorque = this.maxMotorTorque; +t.motorSpeed = this.motorSpeed * r; +t.enableLimit = this.enableLimit; +t.enableMotor = this.enableMotor; +t.referenceAngle = this.referenceAngle * r; +return t; +} +}); +cc.RevoluteJoint = e.exports = o; +}), { +"../CCPhysicsTypes": 175 +} ], +191: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.Class({ +name: "cc.RopeJoint", +extends: cc.Joint, +editor: !1, +properties: { +_maxLength: 1, +maxLength: { +tooltip: !1, +get: function() { +return this._maxLength; +}, +set: function(t) { +this._maxLength = t; +this._joint && this._joint.SetMaxLength(t); +} +} +}, +_createJointDef: function() { +var t = new b2.RopeJointDef(); +t.localAnchorA = new b2.Vec2(this.anchor.x / n, this.anchor.y / n); +t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / n, this.connectedAnchor.y / n); +t.maxLength = this.maxLength / n; +return t; +} +}); +cc.RopeJoint = e.exports = r; +}), { +"../CCPhysicsTypes": 175 +} ], +192: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE, s = cc.Class({ +name: "cc.WeldJoint", +extends: cc.Joint, +editor: !1, +properties: { +referenceAngle: { +default: 0, +tooltip: !1 +}, +_frequency: 0, +_dampingRatio: 0, +frequency: { +tooltip: !1, +get: function() { +return this._frequency; +}, +set: function(t) { +this._frequency = t; +this._joint && this._joint.SetFrequency(t); +} +}, +dampingRatio: { +tooltip: !1, +get: function() { +return this._dampingRatio; +}, +set: function(t) { +this._dampingRatio = t; +this._joint && this._joint.SetDampingRatio(t); +} +} +}, +_createJointDef: function() { +var t = new b2.WeldJointDef(); +t.localAnchorA = new b2.Vec2(this.anchor.x / n, this.anchor.y / n); +t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / n, this.connectedAnchor.y / n); +t.referenceAngle = this.referenceAngle * r; +t.frequencyHz = this.frequency; +t.dampingRatio = this.dampingRatio; +return t; +} +}); +cc.WeldJoint = e.exports = s; +}), { +"../CCPhysicsTypes": 175 +} ], +193: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE, s = cc.Class({ +name: "cc.WheelJoint", +extends: cc.Joint, +editor: !1, +properties: { +_maxMotorTorque: 0, +_motorSpeed: 0, +_enableMotor: !1, +_frequency: 2, +_dampingRatio: .7, +localAxisA: { +default: cc.v2(1, 0), +tooltip: !1 +}, +maxMotorTorque: { +tooltip: !1, +get: function() { +return this._maxMotorTorque; +}, +set: function(t) { +this._maxMotorTorque = t; +this._joint && this._joint.SetMaxMotorTorque(t); +} +}, +motorSpeed: { +tooltip: !1, +get: function() { +return this._motorSpeed; +}, +set: function(t) { +this._motorSpeed = t; +this._joint && this._joint.SetMotorSpeed(t * r); +} +}, +enableMotor: { +tooltip: !1, +get: function() { +return this._enableMotor; +}, +set: function(t) { +this._enableMotor = t; +this._joint && this._joint.EnableMotor(t); +} +}, +frequency: { +tooltip: !1, +get: function() { +return this._frequency; +}, +set: function(t) { +this._frequency = t; +this._joint && this._joint.SetFrequency(t); +} +}, +dampingRatio: { +tooltip: !1, +get: function() { +return this._dampingRatio; +}, +set: function(t) { +this._dampingRatio = t; +this._joint && this._joint.SetDampingRatio(t); +} +} +}, +_createJointDef: function() { +var t = new b2.WheelJointDef(); +t.localAnchorA = new b2.Vec2(this.anchor.x / n, this.anchor.y / n); +t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / n, this.connectedAnchor.y / n); +t.localAxisA = new b2.Vec2(this.localAxisA.x, this.localAxisA.y); +t.maxMotorTorque = this.maxMotorTorque; +t.motorSpeed = this.motorSpeed * r; +t.enableMotor = this.enableMotor; +t.dampingRatio = this.dampingRatio; +t.frequencyHz = this.frequency; +return t; +} +}); +cc.WheelJoint = e.exports = s; +}), { +"../CCPhysicsTypes": 175 +} ], +194: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").BodyType; +function r() { +this._point = new b2.Vec2(); +this._isPoint = !1; +this._fixtures = []; +} +r.prototype.init = function(t) { +if (t) { +this._isPoint = !0; +this._point.x = t.x; +this._point.y = t.y; +} else this._isPoint = !1; +this._fixtures.length = 0; +}; +r.prototype.ReportFixture = function(t) { +if (t.GetBody().GetType() === n.Dynamic) if (this._isPoint) { +if (t.TestPoint(this._point)) { +this._fixtures.push(t); +return !1; +} +} else this._fixtures.push(t); +return !0; +}; +r.prototype.getFixture = function() { +return this._fixtures[0]; +}; +r.prototype.getFixtures = function() { +return this._fixtures; +}; +cc.PhysicsAABBQueryCallback = e.exports = r; +}), { +"../CCPhysicsTypes": 175 +} ], +195: [ (function(t, e, i) { +"use strict"; +function n() { +this._contactFixtures = []; +} +n.prototype.setBeginContact = function(t) { +this._BeginContact = t; +}; +n.prototype.setEndContact = function(t) { +this._EndContact = t; +}; +n.prototype.setPreSolve = function(t) { +this._PreSolve = t; +}; +n.prototype.setPostSolve = function(t) { +this._PostSolve = t; +}; +n.prototype.BeginContact = function(t) { +if (this._BeginContact) { +var e = t.GetFixtureA(), i = t.GetFixtureB(), n = this._contactFixtures; +t._shouldReport = !1; +if (-1 !== n.indexOf(e) || -1 !== n.indexOf(i)) { +t._shouldReport = !0; +this._BeginContact(t); +} +} +}; +n.prototype.EndContact = function(t) { +if (this._EndContact && t._shouldReport) { +t._shouldReport = !1; +this._EndContact(t); +} +}; +n.prototype.PreSolve = function(t, e) { +this._PreSolve && t._shouldReport && this._PreSolve(t, e); +}; +n.prototype.PostSolve = function(t, e) { +this._PostSolve && t._shouldReport && this._PostSolve(t, e); +}; +n.prototype.registerContactFixture = function(t) { +this._contactFixtures.push(t); +}; +n.prototype.unregisterContactFixture = function(t) { +cc.js.array.remove(this._contactFixtures, t); +}; +cc.PhysicsContactListener = e.exports = n; +}), {} ], +196: [ (function(t, e, i) { +"use strict"; +var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.v2(), s = cc.Color.GREEN, o = cc.Color.RED; +function a(t) { +b2.Draw.call(this); +this._drawer = t; +this._xf = this._dxf = new b2.Transform(); +} +cc.js.extend(a, b2.Draw); +cc.js.mixin(a.prototype, { +_DrawPolygon: function(t, e) { +for (var i = this._drawer, s = 0; s < e; s++) { +b2.Transform.MulXV(this._xf, t[s], r); +var o = r.x * n, a = r.y * n; +0 === s ? i.moveTo(o, a) : i.lineTo(o, a); +} +i.close(); +}, +DrawPolygon: function(t, e, i) { +this._applyStrokeColor(i); +this._DrawPolygon(t, e); +this._drawer.stroke(); +}, +DrawSolidPolygon: function(t, e, i) { +this._applyFillColor(i); +this._DrawPolygon(t, e); +this._drawer.fill(); +this._drawer.stroke(); +}, +_DrawCircle: function(t, e) { +var i = this._xf.p; +this._drawer.circle((t.x + i.x) * n, (t.y + i.y) * n, e * n); +}, +DrawCircle: function(t, e, i) { +this._applyStrokeColor(i); +this._DrawCircle(t, e); +this._drawer.stroke(); +}, +DrawSolidCircle: function(t, e, i, n) { +this._applyFillColor(n); +this._DrawCircle(t, e); +this._drawer.fill(); +}, +DrawSegment: function(t, e, i) { +var s = this._drawer; +if (t.x !== e.x || t.y !== e.y) { +this._applyStrokeColor(i); +b2.Transform.MulXV(this._xf, t, r); +s.moveTo(r.x * n, r.y * n); +b2.Transform.MulXV(this._xf, e, r); +s.lineTo(r.x * n, r.y * n); +s.stroke(); +} else { +this._applyFillColor(i); +this._DrawCircle(t, 2 / n); +s.fill(); +} +}, +DrawTransform: function(t) { +var e = this._drawer; +e.strokeColor = o; +r.x = r.y = 0; +b2.Transform.MulXV(t, r, r); +e.moveTo(r.x * n, r.y * n); +r.x = 1; +r.y = 0; +b2.Transform.MulXV(t, r, r); +e.lineTo(r.x * n, r.y * n); +e.stroke(); +e.strokeColor = s; +r.x = r.y = 0; +b2.Transform.MulXV(t, r, r); +e.moveTo(r.x * n, r.y * n); +r.x = 0; +r.y = 1; +b2.Transform.MulXV(t, r, r); +e.lineTo(r.x * n, r.y * n); +e.stroke(); +}, +DrawPoint: function(t, e, i) {}, +_applyStrokeColor: function(t) { +var e = this._drawer.strokeColor; +e.r = 255 * t.r; +e.g = 255 * t.g; +e.b = 255 * t.b; +e.a = 150; +this._drawer.strokeColor = e; +}, +_applyFillColor: function(t) { +var e = this._drawer.fillColor; +e.r = 255 * t.r; +e.g = 255 * t.g; +e.b = 255 * t.b; +e.a = 150; +this._drawer.fillColor = e; +}, +PushTransform: function(t) { +this._xf = t; +}, +PopTransform: function() { +this._xf = this._dxf; +} +}); +e.exports = a; +}), { +"../CCPhysicsTypes": 175 +} ], +197: [ (function(t, e, i) { +"use strict"; +function n() { +this._type = 0; +this._fixtures = []; +this._points = []; +this._normals = []; +this._fractions = []; +} +n.prototype.init = function(t) { +this._type = t; +this._fixtures.length = 0; +this._points.length = 0; +this._normals.length = 0; +this._fractions.length = 0; +}; +n.prototype.ReportFixture = function(t, e, i, n) { +if (0 === this._type) { +this._fixtures[0] = t; +this._points[0] = e; +this._normals[0] = i; +this._fractions[0] = n; +return n; +} +this._fixtures.push(t); +this._points.push(cc.v2(e)); +this._normals.push(cc.v2(i)); +this._fractions.push(n); +return 1 === this._type ? 0 : this._type >= 2 ? 1 : n; +}; +n.prototype.getFixtures = function() { +return this._fixtures; +}; +n.prototype.getPoints = function() { +return this._points; +}; +n.prototype.getNormals = function() { +return this._normals; +}; +n.prototype.getFractions = function() { +return this._fractions; +}; +cc.PhysicsRayCastCallback = e.exports = n; +}), {} ], +198: [ (function(t, e, i) { +"use strict"; +e.exports = { +getWorldRotation: function(t) { +for (var e = t.angle, i = t.parent; i.parent; ) { +e += i.angle; +i = i.parent; +} +return -e; +}, +getWorldScale: function(t) { +for (var e = t.scaleX, i = t.scaleY, n = t.parent; n.parent; ) { +e *= n.scaleX; +i *= n.scaleY; +n = n.parent; +} +return cc.v2(e, i); +}, +convertToNodeRotation: function(t, e) { +e -= -t.angle; +for (var i = t.parent; i.parent; ) { +e -= -i.angle; +i = i.parent; +} +return e; +} +}; +}), {} ], +199: [ (function(t, e, i) { +"use strict"; +}), { +"../event-manager": 131, +"../platform/js": 221, +"./CCMacro": 206, +"./CCSys": 210 +} ], +200: [ (function(i, n, r) { +"use strict"; +i("../assets/CCAsset"); +var s = i("./utils").callInNextTick, o = i("../load-pipeline/CCLoader"), a = i("../load-pipeline/asset-table"), c = i("../load-pipeline/pack-downloader"), l = i("../load-pipeline/auto-release-utils"), h = i("../utils/decode-uuid"), u = i("../load-pipeline/md5-pipe"), _ = i("../load-pipeline/subpackage-pipe"), f = i("./js"), d = "", m = "", p = f.createMap(!0); +function v(t) { +return t && (t.constructor === cc.SceneAsset || t instanceof cc.Scene); +} +function y(t, e) { +this.url = t; +this.type = e; +} +var g = { +loadAsset: function(i, n, r) { +if ("string" !== ("object" === (e = typeof i) ? t(i) : e)) return s(n, new Error("[AssetLibrary] uuid must be string"), null); +var a = { +uuid: i, +type: "uuid" +}; +r && r.existingAsset && (a.existingAsset = r.existingAsset); +o.load(a, (function(t, e) { +if (t || !e) t = new Error("[AssetLibrary] loading JSON or dependencies failed: " + (t ? t.message : "Unknown error")); else { +if (e.constructor === cc.SceneAsset) { +var r = cc.loader._getReferenceKey(i); +e.scene.dependAssets = l.getDependsRecursively(r); +} +if (v(e)) { +var s = cc.loader._getReferenceKey(i); +o.removeItem(s); +} +} +n && n(t, e); +})); +}, +getLibUrlNoExt: function(t, e) { +t = h(t); +return (e ? m + "assets/" : d) + t.slice(0, 2) + "/" + t; +}, +_queryAssetInfoInEditor: function(t, e) { +0; +}, +_getAssetInfoInRuntime: function(t, e) { +e = e || { +url: null, +raw: !1 +}; +var i = p[t]; +if (i && !f.isChildClassOf(i.type, cc.Asset)) { +e.url = m + i.url; +e.raw = !0; +} else { +e.url = this.getLibUrlNoExt(t) + ".json"; +e.raw = !1; +} +return e; +}, +_uuidInSettings: function(t) { +return t in p; +}, +queryAssetInfo: function(t, e) { +var i = this._getAssetInfoInRuntime(t); +e(null, i.url, i.raw); +}, +parseUuidInEditor: function(t) {}, +loadJson: function(t, e) { +var i = "" + (new Date().getTime() + Math.random()), n = { +uuid: i, +type: "uuid", +content: t, +skips: [ o.assetLoader.id, o.downloader.id ] +}; +o.load(n, (function(t, n) { +if (t) t = new Error("[AssetLibrary] loading JSON or dependencies failed: " + t.message); else { +if (n.constructor === cc.SceneAsset) { +var r = cc.loader._getReferenceKey(i); +n.scene.dependAssets = l.getDependsRecursively(r); +} +if (v(n)) { +var s = cc.loader._getReferenceKey(i); +o.removeItem(s); +} +} +n._uuid = ""; +e && e(t, n); +})); +}, +getAssetByUuid: function(t) { +return g._uuidToAsset[t] || null; +}, +init: function(t) { +0; +var e = t.libraryPath; +e = e.replace(/\\/g, "/"); +d = cc.path.stripSep(e) + "/"; +m = t.rawAssetsBase; +if (t.subpackages) { +var i = new _(t.subpackages); +cc.loader.insertPipeAfter(cc.loader.assetLoader, i); +cc.loader.subPackPipe = i; +} +var n = t.md5AssetsMap; +if (n && n.import) { +var r = 0, s = 0, l = f.createMap(!0), v = n.import; +for (r = 0; r < v.length; r += 2) l[s = h(v[r])] = v[r + 1]; +var g = f.createMap(!0); +v = n["raw-assets"]; +for (r = 0; r < v.length; r += 2) g[s = h(v[r])] = v[r + 1]; +var x = new u(l, g, d); +cc.loader.insertPipeAfter(cc.loader.assetLoader, x); +cc.loader.md5Pipe = x; +} +var C = o._assetTables; +for (var b in C) C[b].reset(); +var A = t.rawAssets; +if (A) for (var S in A) { +var w = A[S]; +for (var s in w) { +var T = w[s], E = T[0], M = T[1], B = cc.js._getClassById(M); +if (B) { +p[s] = new y(S + "/" + E, B); +var D = cc.path.extname(E); +D && (E = E.slice(0, -D.length)); +var I = 1 === T[2]; +C[S] || (C[S] = new a()); +C[S].add(E, s, B, !I); +} else cc.error("Cannot get", M); +} +} +t.packedAssets && c.initPacks(t.packedAssets); +cc.url._init(t.mountPaths && t.mountPaths.assets || m + "assets"); +}, +_uuidToAsset: {} +}, x = { +effect: {}, +material: {} +}, C = {}; +function b(t, e, i) { +var n = t + "s", r = x[t] = {}, s = "internal"; +0; +cc.loader.loadResDir(n, e, s, (function() {}), (function(t, e) { +if (t) cc.error(t); else for (var n = 0; n < e.length; n++) { +var s = e[n]; +cc.loader.getDependsRecursively(s).forEach((function(t) { +return C[t] = !0; +})); +r["" + s.name] = s; +} +i(); +})); +} +g._loadBuiltins = function(t) { +if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) return t && t(); +b("effect", cc.EffectAsset, (function() { +b("material", cc.Material, t); +})); +}; +g.getBuiltin = function(t, e) { +return x[t][e]; +}; +g.getBuiltins = function(t) { +return t ? x[t] : x; +}; +g.resetBuiltins = function() { +x = { +effect: {}, +material: {} +}; +C = {}; +}; +g.getBuiltinDeps = function() { +return C; +}; +n.exports = cc.AssetLibrary = g; +}), { +"../assets/CCAsset": 56, +"../load-pipeline/CCLoader": 147, +"../load-pipeline/asset-table": 149, +"../load-pipeline/auto-release-utils": 151, +"../load-pipeline/md5-pipe": 158, +"../load-pipeline/pack-downloader": 159, +"../load-pipeline/subpackage-pipe": 162, +"../utils/decode-uuid": 290, +"./js": 221, +"./utils": 225 +} ], +201: [ (function(i, n, r) { +"use strict"; +var s = i("./js"), o = i("./CCEnum"), a = i("./utils"), c = (a.isPlainEmptyObj_DEV, +a.cloneable_DEV, i("./attribute")), l = c.DELIMETER, h = (c.getTypeChecker, i("./preprocess-class")); +i("./requiring-frame"); +var u = [ "name", "extends", "mixins", "ctor", "__ctor__", "properties", "statics", "editor", "__ES6__" ]; +function _(t, e) { +t.indexOf(e) < 0 && t.push(e); +} +var f = { +datas: null, +push: function(t) { +if (this.datas) this.datas.push(t); else { +this.datas = [ t ]; +var e = this; +setTimeout((function() { +e.init(); +}), 0); +} +}, +init: function() { +var i = this.datas; +if (i) { +for (var n = 0; n < i.length; ++n) { +var r = i[n], o = r.cls, a = r.props; +"function" === ("object" === (e = typeof a) ? t(a) : e) && (a = a()); +var c = s.getClassName(o); +a ? D(o, c, a, o.$super, r.mixins) : cc.errorID(3633, c); +} +this.datas = null; +} +} +}; +function d(t, e) { +0; +_(t.__props__, e); +} +function m(t, e, i, n, r) { +var s = n.default; +0; +c.setClassAttr(t, i, "default", s); +d(t, i); +R(t, n, e, i, !1); +} +function p(t, e, i, n, r) { +var o = n.get, a = n.set, l = t.prototype, h = Object.getOwnPropertyDescriptor(l, i), u = !h; +if (o) { +0; +R(t, n, e, i, !0); +0; +c.setClassAttr(t, i, "serializable", !1); +0; +r || s.get(l, i, o, u, u); +0; +} +if (a) { +if (!r) { +0; +s.set(l, i, a, u, u); +} +0; +} +} +function v(i) { +return "function" === ("object" === (e = typeof i) ? t(i) : e) ? i() : i; +} +function y(t, e, i) { +for (var n in e) t.hasOwnProperty(n) || i && !i(n) || Object.defineProperty(t, n, s.getPropertyDescriptor(e, n)); +} +function g(t, e, i, n) { +var r, o, a = n.__ctor__, l = n.ctor, h = n.__ES6__; +if (h) { +r = [ l ]; +o = l; +} else { +r = a ? [ a ] : E(e, i, n); +o = T(r, e, t, n); +s.value(o, "extend", (function(t) { +t.extends = this; +return I(t); +}), !0); +} +s.value(o, "__ctors__", r.length > 0 ? r : null, !0); +var u = o.prototype; +if (e) { +if (!h) { +s.extend(o, e); +u = o.prototype; +} +o.$super = e; +0; +} +if (i) { +for (var _ = i.length - 1; _ >= 0; _--) { +var f = i[_]; +y(u, f.prototype); +y(o, f, (function(t) { +return f.hasOwnProperty(t) && !0; +})); +I._isCCClass(f) && y(c.getClassAttrs(o), c.getClassAttrs(f)); +} +u.constructor = o; +} +h || (u.__initProps__ = w); +s.setClassName(t, o); +return o; +} +function x(t, e, i, n) { +var r = cc.Component, o = cc._RF.peek(); +if (o && s.isChildClassOf(e, r)) { +if (s.isChildClassOf(o.cls, r)) { +cc.errorID(3615); +return null; +} +0; +t = t || o.script; +} +var a = g(t, e, i, n); +if (o) if (s.isChildClassOf(e, r)) { +var c = o.uuid; +if (c) { +s._setClassId(c, a); +0; +} +o.cls = a; +} else s.isChildClassOf(o.cls, r) || (o.cls = a); +return a; +} +function C(t) { +for (var e = s.getClassName(t), i = t.constructor, n = "new " + e + "(", r = 0; r < i.__props__.length; r++) { +var o = t[i.__props__[r]]; +0; +n += o; +r < i.__props__.length - 1 && (n += ","); +} +return n + ")"; +} +function b(t) { +return JSON.stringify(t).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029"); +} +function A(i, n) { +for (var r = [], s = "", o = 0; o < n.length; o++) { +var a = n[o], c = a + l + "default"; +if (c in i) { +var h, u; +h = S.test(a) ? "this." + a + "=" : "this[" + b(a) + "]="; +var _ = i[c]; +if ("object" === ("object" === (e = typeof _) ? t(_) : e) && _) u = _ instanceof cc.ValueType ? C(_) : Array.isArray(_) ? "[]" : "{}"; else if ("function" === ("object" === (e = typeof _) ? t(_) : e)) { +var f = r.length; +r.push(_); +u = "F[" + f + "]()"; +0; +} else u = "string" === ("object" === (e = typeof _) ? t(_) : e) ? b(_) : _; +s += h = h + u + ";\n"; +} +} +return 0 === r.length ? Function(s) : Function("F", "return (function(){\n" + s + "})")(r); +} +var S = /^[A-Za-z_$][0-9A-Za-z_$]*$/; +function w(t) { +var e = c.getClassAttrs(t), i = t.__props__; +if (null === i) { +f.init(); +i = t.__props__; +} +var n = A(e, i); +t.prototype.__initProps__ = n; +n.call(this); +} +var T = function(t, e, i, n) { +var r = "return function CCClass(){\n"; +e && B(e, n, i) && (r += "this._super=null;\n"); +r += "this.__initProps__(CCClass);\n"; +var s = t.length; +if (s > 0) { +0; +var o = "].apply(this,arguments);\n"; +if (1 === s) r += "CCClass.__ctors__[0" + o; else { +r += "var cs=CCClass.__ctors__;\n"; +for (var a = 0; a < s; a++) r += "cs[" + a + o; +} +0; +} +r += "}"; +return Function(r)(); +}; +function E(t, e, i) { +function n(t) { +return I._isCCClass(t) ? t.__ctors__ || [] : [ t ]; +} +for (var r = [], s = [ t ].concat(e), o = 0; o < s.length; o++) { +var a = s[o]; +if (a) for (var c = n(a), l = 0; l < c.length; l++) _(r, c[l]); +} +var h = i.ctor; +h && r.push(h); +return r; +} +var M = /xyz/.test((function() { +xyz; +})) ? /\b\._super\b/ : /.*/; +/xyz/.test((function() { +xyz; +})); +function B(i, n, r) { +var o = !1; +for (var a in n) if (!(u.indexOf(a) >= 0)) { +var c = n[a]; +if ("function" === ("object" === (e = typeof c) ? t(c) : e)) { +var l = s.getPropertyDescriptor(i.prototype, a); +if (l) { +var h = l.value; +if ("function" === ("object" === (e = typeof h) ? t(h) : e)) { +if (M.test(c)) { +o = !0; +n[a] = (function(t, e) { +return function() { +var i = this._super; +this._super = t; +var n = e.apply(this, arguments); +this._super = i; +return n; +}; +})(h, c); +} +continue; +} +} +0; +} +} +return o; +} +function D(t, e, i, n, r, s) { +t.__props__ = []; +n && n.__props__ && (t.__props__ = n.__props__.slice()); +if (r) for (var o = 0; o < r.length; ++o) { +var a = r[o]; +a.__props__ && (t.__props__ = t.__props__.concat(a.__props__.filter((function(e) { +return t.__props__.indexOf(e) < 0; +})))); +} +if (i) { +h.preprocessAttrs(i, e, t, s); +for (var u in i) { +var _ = i[u]; +"default" in _ ? m(t, e, u, _) : p(t, e, u, _, s); +} +} +var f = c.getClassAttrs(t); +t.__values__ = t.__props__.filter((function(t) { +return !1 !== f[t + l + "serializable"]; +})); +} +function I(i) { +var n = (i = i || {}).name, r = i.extends, o = i.mixins, a = x(n, r, o, i); +n || (n = cc.js.getClassName(a)); +a._sealed = !0; +r && (r._sealed = !1); +var c = i.properties; +if ("function" === ("object" === (e = typeof c) ? t(c) : e) || r && null === r.__props__ || o && o.some((function(t) { +return null === t.__props__; +}))) { +f.push({ +cls: a, +props: c, +mixins: o +}); +a.__props__ = a.__values__ = null; +} else D(a, n, c, r, i.mixins, i.__ES6__); +var l = i.statics; +if (l) { +var _; +0; +for (_ in l) a[_] = l[_]; +} +for (var d in i) if (!(u.indexOf(d) >= 0)) { +var m = i[d]; +h.validateMethodWithProps(m, d, n, a, r) && s.value(a.prototype, d, m, !0, !0); +} +var p = i.editor; +p && s.isChildClassOf(r, cc.Component) && cc.Component._registerEditorProps(a, p); +return a; +} +I._isCCClass = function(t) { +return t && t.hasOwnProperty("__ctors__"); +}; +I._fastDefine = function(t, e, i) { +s.setClassName(t, e); +for (var n = e.__props__ = e.__values__ = Object.keys(i), r = c.getClassAttrs(e), o = 0; o < n.length; o++) { +var a = n[o]; +r[a + l + "visible"] = !1; +r[a + l + "default"] = i[a]; +} +}; +I.Attr = c; +I.attr = c.attr; +I.getInheritanceChain = function(t) { +for (var e = []; t = s.getSuper(t); ) t !== Object && e.push(t); +return e; +}; +var P = { +Integer: "Number", +Float: "Number", +Boolean: "Boolean", +String: "String" +}; +function R(i, n, r, s, a) { +var h = null, u = ""; +function _() { +u = s + l; +return h = c.getClassAttrs(i); +} +0; +var f = n.type; +if (f) { +var d = P[f]; +if (d) { +(h || _())[u + "type"] = f; +0; +} else if ("Object" === f) 0; else if (f === c.ScriptUuid) { +(h || _())[u + "type"] = "Script"; +h[u + "ctor"] = cc.ScriptAsset; +0; +} else if ("object" === ("object" === (e = typeof f) ? t(f) : e)) if (o.isEnum(f)) { +(h || _())[u + "type"] = "Enum"; +h[u + "enumList"] = o.getList(f); +} else 0; else if ("function" === ("object" === (e = typeof f) ? t(f) : e)) if (n.url) { +(h || _())[u + "type"] = "Object"; +h[u + "ctor"] = f; +0; +} else { +(h || _())[u + "type"] = "Object"; +h[u + "ctor"] = f; +0; +} else 0; +} +function m(i, r) { +if (i in n) { +var s = n[i]; +("object" === (e = typeof s) ? t(s) : e) === r && ((h || _())[u + i] = s); +} +} +n.editorOnly && ((h || _())[u + "editorOnly"] = !0); +0; +n.url && ((h || _())[u + "saveUrlAsAsset"] = !0); +!1 === n.serializable && ((h || _())[u + "serializable"] = !1); +m("formerlySerializedAs", "string"); +0; +var p = n.range; +if (p) if (Array.isArray(p)) if (p.length >= 2) { +(h || _())[u + "min"] = p[0]; +h[u + "max"] = p[1]; +p.length > 2 && (h[u + "step"] = p[2]); +} else 0; else 0; +m("min", "number"); +m("max", "number"); +m("step", "number"); +} +cc.Class = I; +n.exports = { +isArray: function(t) { +t = v(t); +return Array.isArray(t); +}, +fastDefine: I._fastDefine, +getNewValueTypeCode: C, +IDENTIFIER_RE: S, +escapeForJS: b, +getDefault: v +}; +0; +}), { +"./CCEnum": 203, +"./attribute": 213, +"./js": 221, +"./preprocess-class": 222, +"./requiring-frame": 223, +"./utils": 225 +} ], +202: [ (function(i, n, r) { +"use strict"; +i("./CCClass"); +var s = i("./preprocess-class"), o = i("./js"), a = "__ccclassCache__"; +function c(t) { +return t; +} +function l(t, e) { +return t[e] || (t[e] = {}); +} +function h(i) { +return function(n) { +return "function" === ("object" === (e = typeof n) ? t(n) : e) ? i(n) : function(t) { +return i(t, n); +}; +}; +} +function u(t, e, i) { +return function(t) { +0; +return function(i) { +return e(i, t); +}; +}; +} +var _ = u.bind(null, !1); +function f(t) { +return u.bind(null, !1); +} +var d = f(), m = f(); +function p(t, e) { +0; +return l(t, a); +} +function v(i) { +var n; +try { +n = i(); +} catch (t) { +return i; +} +return "object" !== ("object" === (e = typeof n) ? t(n) : e) || null === n ? n : i; +} +function y(t) { +var e; +try { +e = new t(); +} catch (t) { +0; +return {}; +} +return e; +} +function g(t, e, i, n, r, a) { +var c; +n && (c = (c = s.getFullFormOfProperty(n)) || n); +var l = e[i], h = o.mixin(l || {}, c || {}); +if (r && (r.get || r.set)) { +r.get && (h.get = r.get); +r.set && (h.set = r.set); +} else { +0; +var u = void 0; +if (r) { +if (r.initializer) { +u = v(r.initializer); +!0; +} +} else { +var _ = a.default || (a.default = y(t)); +if (_.hasOwnProperty(i)) { +u = _[i]; +!0; +} +} +0; +h.default = u; +} +e[i] = h; +} +var x = h((function(t, e) { +var i = o.getSuper(t); +i === Object && (i = null); +var n = { +name: e, +extends: i, +ctor: t, +__ES6__: !0 +}, r = t[a]; +if (r) { +var s = r.proto; +s && o.mixin(n, s); +t[a] = void 0; +} +return cc.Class(n); +})); +function C(t, e, i) { +return t((function(t, n) { +var r = p(t); +if (r) { +var s = void 0 !== i ? i : n; +l(l(r, "proto"), "editor")[e] = s; +} +}), e); +} +function b(t) { +return t(c); +} +var A = b(h), S = C(_, "requireComponent"), w = b(d), T = C(m, "executionOrder"), E = b(h), M = b(h), B = b(d), D = b(d), I = b(d); +cc._decorator = n.exports = { +ccclass: x, +property: function(i, n, r) { +var s = null; +function o(t, e, i) { +var n = p(t.constructor); +if (n) { +var r = l(l(n, "proto"), "properties"); +g(t.constructor, r, e, s, i, n); +} +} +if ("undefined" === ("object" == (e = typeof n) ? t(n) : e)) { +s = i; +return o; +} +o(i, n, r); +}, +executeInEditMode: A, +requireComponent: S, +menu: w, +executionOrder: T, +disallowMultiple: E, +playOnFocus: M, +inspector: B, +icon: D, +help: I, +mixins: function() { +for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; +return function(e) { +var i = p(e); +i && (l(i, "proto").mixins = t); +}; +} +}; +}), { +"./CCClass": 201, +"./js": 221, +"./preprocess-class": 222, +"./utils": 225 +} ], +203: [ (function(i, n, r) { +"use strict"; +var s = i("./js"); +function o(i) { +if ("__enums__" in i) return i; +s.value(i, "__enums__", null, !0); +for (var n = -1, r = Object.keys(i), o = 0; o < r.length; o++) { +var a = r[o], c = i[a]; +if (-1 === c) { +c = ++n; +i[a] = c; +} else if ("number" === ("object" === (e = typeof c) ? t(c) : e)) n = c; else if ("string" === ("object" === (e = typeof c) ? t(c) : e) && Number.isInteger(parseFloat(a))) continue; +var l = "" + c; +if (a !== l) { +0; +s.value(i, l, a); +} +} +return i; +} +o.isEnum = function(t) { +return t && t.hasOwnProperty("__enums__"); +}; +o.getList = function(t) { +if (t.__enums__) return t.__enums__; +var e = t.__enums__ = []; +for (var i in t) { +var n = t[i]; +Number.isInteger(n) && e.push({ +name: i, +value: n +}); +} +e.sort((function(t, e) { +return t.value - e.value; +})); +return e; +}; +n.exports = cc.Enum = o; +}), { +"./js": 221 +} ], +204: [ (function(t, e, i) { +"use strict"; +var n = t("../event-manager"), r = t("./CCInputManager"), s = void 0; +cc.Acceleration = function(t, e, i, n) { +this.x = t || 0; +this.y = e || 0; +this.z = i || 0; +this.timestamp = n || 0; +}; +r.setAccelerometerEnabled = function(t) { +var e = this; +if (e._accelEnabled !== t) { +e._accelEnabled = t; +var i = cc.director.getScheduler(); +i.enableForTarget(e); +if (e._accelEnabled) { +e._registerAccelerometerEvent(); +e._accelCurTime = 0; +i.scheduleUpdate(e); +} else { +e._unregisterAccelerometerEvent(); +e._accelCurTime = 0; +i.unscheduleUpdate(e); +} +jsb.device.setMotionEnabled(t); +} +}; +r.setAccelerometerInterval = function(t) { +if (this._accelInterval !== t) { +this._accelInterval = t; +jsb.device.setMotionInterval(t); +} +}; +r._registerKeyboardEvent = function() { +cc.game.canvas.addEventListener("keydown", (function(t) { +n.dispatchEvent(new cc.Event.EventKeyboard(t.keyCode, !0)); +t.stopPropagation(); +t.preventDefault(); +}), !1); +cc.game.canvas.addEventListener("keyup", (function(t) { +n.dispatchEvent(new cc.Event.EventKeyboard(t.keyCode, !1)); +t.stopPropagation(); +t.preventDefault(); +}), !1); +}; +r._registerAccelerometerEvent = function() { +var t = window, e = this; +e._acceleration = new cc.Acceleration(); +e._accelDeviceEvent = t.DeviceMotionEvent || t.DeviceOrientationEvent; +cc.sys.browserType === cc.sys.BROWSER_TYPE_MOBILE_QQ && (e._accelDeviceEvent = window.DeviceOrientationEvent); +var i = e._accelDeviceEvent === t.DeviceMotionEvent ? "devicemotion" : "deviceorientation", n = navigator.userAgent; +(/Android/.test(n) || /Adr/.test(n) && cc.sys.browserType === cc.BROWSER_TYPE_UC) && (e._minus = -1); +s = e.didAccelerate.bind(e); +t.addEventListener(i, s, !1); +}; +r._unregisterAccelerometerEvent = function() { +var t = window, e = this._accelDeviceEvent === t.DeviceMotionEvent ? "devicemotion" : "deviceorientation"; +s && t.removeEventListener(e, s, !1); +}; +r.didAccelerate = function(t) { +var e = this, i = window; +if (e._accelEnabled) { +var n = e._acceleration, r = void 0, s = void 0, o = void 0; +if (e._accelDeviceEvent === window.DeviceMotionEvent) { +var a = t.accelerationIncludingGravity; +r = e._accelMinus * a.x * .1; +s = e._accelMinus * a.y * .1; +o = .1 * a.z; +} else { +r = t.gamma / 90 * .981; +s = -t.beta / 90 * .981; +o = t.alpha / 90 * .981; +} +if (cc.view._isRotated) { +var c = r; +r = -s; +s = c; +} +n.x = r; +n.y = s; +n.z = o; +n.timestamp = t.timeStamp || Date.now(); +var l = n.x; +if (90 === i.orientation) { +n.x = -n.y; +n.y = l; +} else if (-90 === i.orientation) { +n.x = n.y; +n.y = -l; +} else if (180 === i.orientation) { +n.x = -n.x; +n.y = -n.y; +} +if (cc.sys.os === cc.sys.OS_ANDROID && cc.sys.browserType !== cc.sys.BROWSER_TYPE_MOBILE_QQ) { +n.x = -n.x; +n.y = -n.y; +} +} +}; +}), { +"../event-manager": 131, +"./CCInputManager": 205 +} ], +205: [ (function(t, e, i) { +"use strict"; +var n = t("./CCMacro"), r = t("./CCSys"), s = t("../event-manager"), o = n.TOUCH_TIMEOUT, a = cc.v2(), c = { +_mousePressed: !1, +_isRegisterEvent: !1, +_preTouchPoint: cc.v2(0, 0), +_prevMousePoint: cc.v2(0, 0), +_preTouchPool: [], +_preTouchPoolPointer: 0, +_touches: [], +_touchesIntegerDict: {}, +_indexBitsUsed: 0, +_maxTouches: 8, +_accelEnabled: !1, +_accelInterval: .2, +_accelMinus: 1, +_accelCurTime: 0, +_acceleration: null, +_accelDeviceEvent: null, +_getUnUsedIndex: function() { +for (var t = this._indexBitsUsed, e = cc.sys.now(), i = 0; i < this._maxTouches; i++) { +if (!(1 & t)) { +this._indexBitsUsed |= 1 << i; +return i; +} +var n = this._touches[i]; +if (e - n._lastModified > o) { +this._removeUsedIndexBit(i); +delete this._touchesIntegerDict[n.getID()]; +return i; +} +t >>= 1; +} +return -1; +}, +_removeUsedIndexBit: function(t) { +if (!(t < 0 || t >= this._maxTouches)) { +var e = 1 << t; +e = ~e; +this._indexBitsUsed &= e; +} +}, +_glView: null, +handleTouchesBegin: function(t) { +for (var e = void 0, i = void 0, n = void 0, o = [], a = this._touchesIntegerDict, c = r.now(), l = 0, h = t.length; l < h; l++) if (null == a[n = (e = t[l]).getID()]) { +var u = this._getUnUsedIndex(); +if (-1 === u) { +cc.logID(2300, u); +continue; +} +(i = this._touches[u] = new cc.Touch(e._point.x, e._point.y, e.getID()))._lastModified = c; +i._setPrevPoint(e._prevPoint); +a[n] = u; +o.push(i); +} +if (o.length > 0) { +this._glView._convertTouchesWithScale(o); +var _ = new cc.Event.EventTouch(o); +_._eventCode = cc.Event.EventTouch.BEGAN; +s.dispatchEvent(_); +} +}, +handleTouchesMove: function(t) { +for (var e = void 0, i = void 0, n = void 0, o = [], a = this._touches, c = r.now(), l = 0, h = t.length; l < h; l++) { +n = (e = t[l]).getID(); +if (null != (i = this._touchesIntegerDict[n]) && a[i]) { +a[i]._setPoint(e._point); +a[i]._setPrevPoint(e._prevPoint); +a[i]._lastModified = c; +o.push(a[i]); +} +} +if (o.length > 0) { +this._glView._convertTouchesWithScale(o); +var u = new cc.Event.EventTouch(o); +u._eventCode = cc.Event.EventTouch.MOVED; +s.dispatchEvent(u); +} +}, +handleTouchesEnd: function(t) { +var e = this.getSetOfTouchesEndOrCancel(t); +if (e.length > 0) { +this._glView._convertTouchesWithScale(e); +var i = new cc.Event.EventTouch(e); +i._eventCode = cc.Event.EventTouch.ENDED; +s.dispatchEvent(i); +} +this._preTouchPool.length = 0; +}, +handleTouchesCancel: function(t) { +var e = this.getSetOfTouchesEndOrCancel(t); +if (e.length > 0) { +this._glView._convertTouchesWithScale(e); +var i = new cc.Event.EventTouch(e); +i._eventCode = cc.Event.EventTouch.CANCELLED; +s.dispatchEvent(i); +} +this._preTouchPool.length = 0; +}, +getSetOfTouchesEndOrCancel: function(t) { +for (var e = void 0, i = void 0, n = void 0, r = [], s = this._touches, o = this._touchesIntegerDict, a = 0, c = t.length; a < c; a++) if (null != (i = o[n = (e = t[a]).getID()]) && s[i]) { +s[i]._setPoint(e._point); +s[i]._setPrevPoint(e._prevPoint); +r.push(s[i]); +this._removeUsedIndexBit(i); +delete o[n]; +} +return r; +}, +getHTMLElementPosition: function(t) { +0; +var e = document.documentElement, i = window.pageXOffset - e.clientLeft, n = window.pageYOffset - e.clientTop; +if (t.getBoundingClientRect) { +var r = t.getBoundingClientRect(); +return { +left: r.left + i, +top: r.top + n, +width: r.width, +height: r.height +}; +} +return t instanceof HTMLCanvasElement ? { +left: i, +top: n, +width: t.width, +height: t.height +} : { +left: i, +top: n, +width: parseInt(t.style.width), +height: parseInt(t.style.height) +}; +}, +getPreTouch: function(t) { +for (var e = null, i = this._preTouchPool, n = t.getID(), r = i.length - 1; r >= 0; r--) if (i[r].getID() === n) { +e = i[r]; +break; +} +e || (e = t); +return e; +}, +setPreTouch: function(t) { +for (var e = !1, i = this._preTouchPool, n = t.getID(), r = i.length - 1; r >= 0; r--) if (i[r].getID() === n) { +i[r] = t; +e = !0; +break; +} +if (!e) if (i.length <= 50) i.push(t); else { +i[this._preTouchPoolPointer] = t; +this._preTouchPoolPointer = (this._preTouchPoolPointer + 1) % 50; +} +}, +getTouchByXY: function(t, e, i) { +var n = this._preTouchPoint, r = this._glView.convertToLocationInView(t, e, i), s = new cc.Touch(r.x, r.y, 0); +s._setPrevPoint(n.x, n.y); +n.x = r.x; +n.y = r.y; +return s; +}, +getMouseEvent: function(t, e, i) { +var n = this._prevMousePoint, r = new cc.Event.EventMouse(i); +r._setPrevCursor(n.x, n.y); +n.x = t.x; +n.y = t.y; +this._glView._convertMouseToLocationInView(n, e); +r.setLocation(n.x, n.y); +return r; +}, +getPointByEvent: function(t, e) { +if (null != t.pageX) return { +x: t.pageX, +y: t.pageY +}; +e.left -= document.body.scrollLeft; +e.top -= document.body.scrollTop; +return { +x: t.clientX, +y: t.clientY +}; +}, +getTouchesByEvent: function(t, e) { +for (var i = [], n = this._glView, s = void 0, o = void 0, c = void 0, l = this._preTouchPoint, h = t.changedTouches.length, u = 0; u < h; u++) if (s = t.changedTouches[u]) { +var _ = void 0; +_ = r.BROWSER_TYPE_FIREFOX === r.browserType ? n.convertToLocationInView(s.pageX, s.pageY, e, a) : n.convertToLocationInView(s.clientX, s.clientY, e, a); +if (null != s.identifier) { +o = new cc.Touch(_.x, _.y, s.identifier); +c = this.getPreTouch(o).getLocation(); +o._setPrevPoint(c.x, c.y); +this.setPreTouch(o); +} else (o = new cc.Touch(_.x, _.y))._setPrevPoint(l.x, l.y); +l.x = _.x; +l.y = _.y; +i.push(o); +} +return i; +}, +registerSystemEvent: function(t) { +if (!this._isRegisterEvent) { +this._glView = cc.view; +var e = this, i = r.isMobile, n = "mouse" in r.capabilities, o = "touches" in r.capabilities; +0; +if (n) { +if (!i) { +window.addEventListener("mousedown", (function() { +e._mousePressed = !0; +}), !1); +window.addEventListener("mouseup", (function(i) { +if (e._mousePressed) { +e._mousePressed = !1; +var n = e.getHTMLElementPosition(t), r = e.getPointByEvent(i, n); +if (!cc.rect(n.left, n.top, n.width, n.height).contains(r)) { +e.handleTouchesEnd([ e.getTouchByXY(r.x, r.y, n) ]); +var o = e.getMouseEvent(r, n, cc.Event.EventMouse.UP); +o.setButton(i.button); +s.dispatchEvent(o); +} +} +}), !1); +} +for (var a = cc.Event.EventMouse, c = [ !i && [ "mousedown", a.DOWN, function(i, n, r, s) { +e._mousePressed = !0; +e.handleTouchesBegin([ e.getTouchByXY(r.x, r.y, s) ]); +t.focus(); +} ], !i && [ "mouseup", a.UP, function(t, i, n, r) { +e._mousePressed = !1; +e.handleTouchesEnd([ e.getTouchByXY(n.x, n.y, r) ]); +} ], !i && [ "mousemove", a.MOVE, function(t, i, n, r) { +e.handleTouchesMove([ e.getTouchByXY(n.x, n.y, r) ]); +e._mousePressed || i.setButton(null); +} ], [ "mousewheel", a.SCROLL, function(t, e) { +e.setScrollData(0, t.wheelDelta); +} ], [ "DOMMouseScroll", a.SCROLL, function(t, e) { +e.setScrollData(0, -120 * t.detail); +} ] ], l = 0; l < c.length; ++l) { +var h = c[l]; +h && (function() { +var i = h[0], n = h[1], r = h[2]; +t.addEventListener(i, (function(i) { +var o = e.getHTMLElementPosition(t), a = e.getPointByEvent(i, o), c = e.getMouseEvent(a, o, n); +c.setButton(i.button); +r(i, c, a, o); +s.dispatchEvent(c); +i.stopPropagation(); +i.preventDefault(); +}), !1); +})(); +} +} +if (window.navigator.msPointerEnabled) { +var u = { +MSPointerDown: e.handleTouchesBegin, +MSPointerMove: e.handleTouchesMove, +MSPointerUp: e.handleTouchesEnd, +MSPointerCancel: e.handleTouchesCancel +}, _ = function(i) { +var n = u[i]; +t.addEventListener(i, (function(i) { +var r = e.getHTMLElementPosition(t); +r.left -= document.documentElement.scrollLeft; +r.top -= document.documentElement.scrollTop; +n.call(e, [ e.getTouchByXY(i.clientX, i.clientY, r) ]); +i.stopPropagation(); +}), !1); +}; +for (var f in u) _(f); +} +if (o) { +var d = { +touchstart: function(i) { +e.handleTouchesBegin(i); +t.focus(); +}, +touchmove: function(t) { +e.handleTouchesMove(t); +}, +touchend: function(t) { +e.handleTouchesEnd(t); +}, +touchcancel: function(t) { +e.handleTouchesCancel(t); +} +}, m = void 0; +if (cc.sys.browserType === cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB) { +d = { +onTouchStart: d.touchstart, +onTouchMove: d.touchmove, +onTouchEnd: d.touchend, +onTouchCancel: d.touchcancel +}; +m = function(i) { +var n = d[i]; +wx[i]((function(i) { +if (i.changedTouches) { +var r = e.getHTMLElementPosition(t), s = document.body; +r.left -= s.scrollLeft || 0; +r.top -= s.scrollTop || 0; +n(e.getTouchesByEvent(i, r)); +} +})); +}; +} else m = function(i) { +var n = d[i]; +t.addEventListener(i, (function(i) { +if (i.changedTouches) { +var r = e.getHTMLElementPosition(t), s = document.body; +r.left -= s.scrollLeft || 0; +r.top -= s.scrollTop || 0; +n(e.getTouchesByEvent(i, r)); +i.stopPropagation(); +i.preventDefault(); +} +}), !1); +}; +for (var f in d) m(f); +} +cc.sys.browserType !== cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB && this._registerKeyboardEvent(); +this._isRegisterEvent = !0; +} +}, +_registerKeyboardEvent: function() {}, +_registerAccelerometerEvent: function() {}, +update: function(t) { +if (this._accelCurTime > this._accelInterval) { +this._accelCurTime -= this._accelInterval; +s.dispatchEvent(new cc.Event.EventAcceleration(this._acceleration)); +} +this._accelCurTime += t; +} +}; +e.exports = _cc.inputManager = c; +}), { +"../event-manager": 131, +"./CCMacro": 206, +"./CCSys": 210 +} ], +206: [ (function(t, e, i) { +"use strict"; +t("./js"); +cc.macro = { +RAD: Math.PI / 180, +DEG: 180 / Math.PI, +REPEAT_FOREVER: Number.MAX_VALUE - 1, +FLT_EPSILON: 1.192092896e-7, +MIN_ZINDEX: -Math.pow(2, 15), +MAX_ZINDEX: Math.pow(2, 15) - 1, +ONE: 1, +ZERO: 0, +SRC_ALPHA: 770, +SRC_ALPHA_SATURATE: 776, +SRC_COLOR: 768, +DST_ALPHA: 772, +DST_COLOR: 774, +ONE_MINUS_SRC_ALPHA: 771, +ONE_MINUS_SRC_COLOR: 769, +ONE_MINUS_DST_ALPHA: 773, +ONE_MINUS_DST_COLOR: 775, +ONE_MINUS_CONSTANT_ALPHA: 32772, +ONE_MINUS_CONSTANT_COLOR: 32770, +ORIENTATION_PORTRAIT: 1, +ORIENTATION_LANDSCAPE: 2, +ORIENTATION_AUTO: 3, +DENSITYDPI_DEVICE: "device-dpi", +DENSITYDPI_HIGH: "high-dpi", +DENSITYDPI_MEDIUM: "medium-dpi", +DENSITYDPI_LOW: "low-dpi", +FIX_ARTIFACTS_BY_STRECHING_TEXEL_TMX: !0, +DIRECTOR_STATS_POSITION: cc.v2(0, 0), +ENABLE_STACKABLE_ACTIONS: !0, +TOUCH_TIMEOUT: 5e3, +BATCH_VERTEX_COUNT: 2e4, +ENABLE_TILEDMAP_CULLING: !0, +DOWNLOAD_MAX_CONCURRENT: 64, +ENABLE_TRANSPARENT_CANVAS: !1, +ENABLE_WEBGL_ANTIALIAS: !1, +ENABLE_CULLING: !1, +CLEANUP_IMAGE_CACHE: !1, +SHOW_MESH_WIREFRAME: !1, +ROTATE_ACTION_CCW: !1 +}; +cc.macro.SUPPORT_TEXTURE_FORMATS = [ ".pkm", ".pvr", ".webp", ".jpg", ".jpeg", ".bmp", ".png" ]; +cc.macro.KEY = { +none: 0, +back: 6, +menu: 18, +backspace: 8, +tab: 9, +enter: 13, +shift: 16, +ctrl: 17, +alt: 18, +pause: 19, +capslock: 20, +escape: 27, +space: 32, +pageup: 33, +pagedown: 34, +end: 35, +home: 36, +left: 37, +up: 38, +right: 39, +down: 40, +select: 41, +insert: 45, +Delete: 46, +0: 48, +1: 49, +2: 50, +3: 51, +4: 52, +5: 53, +6: 54, +7: 55, +8: 56, +9: 57, +a: 65, +b: 66, +c: 67, +d: 68, +e: 69, +f: 70, +g: 71, +h: 72, +i: 73, +j: 74, +k: 75, +l: 76, +m: 77, +n: 78, +o: 79, +p: 80, +q: 81, +r: 82, +s: 83, +t: 84, +u: 85, +v: 86, +w: 87, +x: 88, +y: 89, +z: 90, +num0: 96, +num1: 97, +num2: 98, +num3: 99, +num4: 100, +num5: 101, +num6: 102, +num7: 103, +num8: 104, +num9: 105, +"*": 106, +"+": 107, +"-": 109, +numdel: 110, +"/": 111, +f1: 112, +f2: 113, +f3: 114, +f4: 115, +f5: 116, +f6: 117, +f7: 118, +f8: 119, +f9: 120, +f10: 121, +f11: 122, +f12: 123, +numlock: 144, +scrolllock: 145, +";": 186, +semicolon: 186, +equal: 187, +"=": 187, +",": 188, +comma: 188, +dash: 189, +".": 190, +period: 190, +forwardslash: 191, +grave: 192, +"[": 219, +openbracket: 219, +backslash: 220, +"]": 221, +closebracket: 221, +quote: 222, +dpadLeft: 1e3, +dpadRight: 1001, +dpadUp: 1003, +dpadDown: 1004, +dpadCenter: 1005 +}; +cc.macro.ImageFormat = cc.Enum({ +JPG: 0, +PNG: 1, +TIFF: 2, +WEBP: 3, +PVR: 4, +ETC: 5, +S3TC: 6, +ATITC: 7, +TGA: 8, +RAWDATA: 9, +UNKNOWN: 10 +}); +cc.macro.BlendFactor = cc.Enum({ +ONE: 1, +ZERO: 0, +SRC_ALPHA: 770, +SRC_COLOR: 768, +DST_ALPHA: 772, +DST_COLOR: 774, +ONE_MINUS_SRC_ALPHA: 771, +ONE_MINUS_SRC_COLOR: 769, +ONE_MINUS_DST_ALPHA: 773, +ONE_MINUS_DST_COLOR: 775 +}); +cc.macro.TextAlignment = cc.Enum({ +LEFT: 0, +CENTER: 1, +RIGHT: 2 +}); +cc.macro.VerticalTextAlignment = cc.Enum({ +TOP: 0, +CENTER: 1, +BOTTOM: 2 +}); +e.exports = cc.macro; +}), { +"./js": 221 +} ], +207: [ (function(i, n, r) { +"use strict"; +var s = i("./js"), o = i("./CCClass"), a = 1; +function c() { +this._name = ""; +this._objFlags = 0; +} +o.fastDefine("cc.Object", c, { +_name: "", +_objFlags: 0 +}); +s.value(c, "Flags", { +Destroyed: a, +DontSave: 8, +EditorOnly: 16, +Dirty: 32, +DontDestroy: 64, +PersistentMask: -4192741, +Destroying: 128, +Deactivating: 256, +LockedInEditor: 512, +HideInHierarchy: 1024, +IsPreloadStarted: 8192, +IsOnLoadStarted: 32768, +IsOnLoadCalled: 16384, +IsOnEnableCalled: 2048, +IsStartCalled: 65536, +IsEditorOnEnableCalled: 4096, +IsPositionLocked: 1 << 21, +IsRotationLocked: 1 << 17, +IsScaleLocked: 1 << 18, +IsAnchorLocked: 1 << 19, +IsSizeLocked: 1 << 20 +}); +var l = []; +function h() { +for (var t = l.length, e = 0; e < t; ++e) { +var i = l[e]; +i._objFlags & a || i._destroyImmediate(); +} +t === l.length ? l.length = 0 : l.splice(0, t); +0; +} +s.value(c, "_deferredDestroy", h); +0; +var u = c.prototype; +s.getset(u, "name", (function() { +return this._name; +}), (function(t) { +this._name = t; +}), !0); +s.get(u, "isValid", (function() { +return !(this._objFlags & a); +}), !0); +0; +u.destroy = function() { +if (this._objFlags & a) { +cc.warnID(5e3); +return !1; +} +if (4 & this._objFlags) return !1; +this._objFlags |= 4; +l.push(this); +0; +return !0; +}; +0; +function _(i, n) { +var r, s = i instanceof cc._BaseNode || i instanceof cc.Component, a = s ? "_id" : null, c = {}; +for (r in i) if (i.hasOwnProperty(r)) { +if (r === a) continue; +switch ("object" === (e = typeof i[r]) ? t(i[r]) : e) { +case "string": +c[r] = ""; +break; + +case "object": +case "function": +c[r] = null; +} +} +if (cc.Class._isCCClass(n)) for (var l = cc.Class.Attr.getClassAttrs(n), h = n.__props__, u = 0; u < h.length; u++) { +var _ = (r = h[u]) + cc.Class.Attr.DELIMETER + "default"; +if (_ in l) { +if (s && "_id" === r) continue; +switch ("object" === (e = typeof l[_]) ? t(l[_]) : e) { +case "string": +c[r] = ""; +break; + +case "object": +case "function": +c[r] = null; +break; + +case "undefined": +c[r] = void 0; +} +} +} +var f = ""; +for (r in c) { +var d; +d = o.IDENTIFIER_RE.test(r) ? "o." + r + "=" : "o[" + o.escapeForJS(r) + "]="; +var m = c[r]; +"" === m && (m = '""'); +f += d + m + ";\n"; +} +return Function("o", f); +} +u._destruct = function() { +var t = this.constructor, e = t.__destruct__; +if (!e) { +e = _(this, t); +s.value(t, "__destruct__", e, !0); +} +e(this); +}; +u._onPreDestroy = null; +u._destroyImmediate = function() { +if (this._objFlags & a) cc.errorID(5e3); else { +this._onPreDestroy && this._onPreDestroy(); +this._destruct(); +this._objFlags |= a; +} +}; +0; +u._deserialize = null; +cc.isValid = function(i, n) { +return "object" === ("object" === (e = typeof i) ? t(i) : e) ? !(!i || i._objFlags & (n ? 4 | a : a)) : "undefined" !== ("object" === (e = typeof i) ? t(i) : e); +}; +0; +cc.Object = n.exports = c; +}), { +"./CCClass": 201, +"./js": 221 +} ], +208: [ (function(t, e, i) { +"use strict"; +var n = t("../platform/js"); +cc.SAXParser = function() { +if (window.DOMParser) { +this._isSupportDOMParser = !0; +this._parser = new DOMParser(); +} else { +this._isSupportDOMParser = !1; +this._parser = null; +} +}; +cc.SAXParser.prototype = { +constructor: cc.SAXParser, +parse: function(t) { +return this._parseXML(t); +}, +_parseXML: function(t) { +var e; +if (this._isSupportDOMParser) e = this._parser.parseFromString(t, "text/xml"); else { +(e = new ActiveXObject("Microsoft.XMLDOM")).async = "false"; +e.loadXML(t); +} +return e; +} +}; +cc.PlistParser = function() { +cc.SAXParser.call(this); +}; +n.extend(cc.PlistParser, cc.SAXParser); +n.mixin(cc.PlistParser.prototype, { +parse: function(t) { +var e = this._parseXML(t), i = e.documentElement; +if ("plist" !== i.tagName) { +cc.warnID(5100); +return {}; +} +for (var n = null, r = 0, s = i.childNodes.length; r < s && 1 !== (n = i.childNodes[r]).nodeType; r++) ; +e = null; +return this._parseNode(n); +}, +_parseNode: function(t) { +var e = null, i = t.tagName; +if ("dict" === i) e = this._parseDict(t); else if ("array" === i) e = this._parseArray(t); else if ("string" === i) if (1 === t.childNodes.length) e = t.firstChild.nodeValue; else { +e = ""; +for (var n = 0; n < t.childNodes.length; n++) e += t.childNodes[n].nodeValue; +} else "false" === i ? e = !1 : "true" === i ? e = !0 : "real" === i ? e = parseFloat(t.firstChild.nodeValue) : "integer" === i && (e = parseInt(t.firstChild.nodeValue, 10)); +return e; +}, +_parseArray: function(t) { +for (var e = [], i = 0, n = t.childNodes.length; i < n; i++) { +var r = t.childNodes[i]; +1 === r.nodeType && e.push(this._parseNode(r)); +} +return e; +}, +_parseDict: function(t) { +for (var e = {}, i = null, n = 0, r = t.childNodes.length; n < r; n++) { +var s = t.childNodes[n]; +1 === s.nodeType && ("key" === s.tagName ? i = s.firstChild.nodeValue : e[i] = this._parseNode(s)); +} +return e; +} +}); +cc.saxParser = new cc.SAXParser(); +cc.plistParser = new cc.PlistParser(); +e.exports = { +saxParser: cc.saxParser, +plistParser: cc.plistParser +}; +}), { +"../platform/js": 221 +} ], +209: [ (function(i, n, r) { +"use strict"; +cc.screen = { +_supportsFullScreen: !1, +_preOnFullScreenChange: null, +_preOnFullScreenError: null, +_preOnTouch: null, +_touchEvent: "", +_fn: null, +_fnMap: [ [ "requestFullscreen", "exitFullscreen", "fullscreenchange", "fullscreenEnabled", "fullscreenElement", "fullscreenerror" ], [ "requestFullScreen", "exitFullScreen", "fullScreenchange", "fullScreenEnabled", "fullScreenElement", "fullscreenerror" ], [ "webkitRequestFullScreen", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitIsFullScreen", "webkitCurrentFullScreenElement", "webkitfullscreenerror" ], [ "mozRequestFullScreen", "mozCancelFullScreen", "mozfullscreenchange", "mozFullScreen", "mozFullScreenElement", "mozfullscreenerror" ], [ "msRequestFullscreen", "msExitFullscreen", "MSFullscreenChange", "msFullscreenEnabled", "msFullscreenElement", "msfullscreenerror" ] ], +init: function() { +this._fn = {}; +var i, n, r, s, o = this._fnMap; +for (i = 0, n = o.length; i < n; i++) if ((r = o[i]) && "undefined" !== ("object" === (e = typeof document[r[1]]) ? t(document[r[1]]) : e)) { +for (i = 0, s = r.length; i < s; i++) this._fn[o[0][i]] = r[i]; +break; +} +this._supportsFullScreen = void 0 !== this._fn.requestFullscreen; +this._touchEvent = "ontouchend" in window ? "touchend" : "mousedown"; +}, +fullScreen: function() { +return !!this._supportsFullScreen && !!(document[this._fn.fullscreenElement] || document[this._fn.webkitFullscreenElement] || document[this._fn.mozFullScreenElement]); +}, +requestFullScreen: function(t, e) { +if (t && "video" === t.tagName.toLowerCase()) { +if (cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser && t.readyState > 0) { +t.webkitEnterFullscreen && t.webkitEnterFullscreen(); +return; +} +t.setAttribute("x5-video-player-fullscreen", "true"); +} +if (this._supportsFullScreen) { +t = t || document.documentElement; +if (e) { +var i = this._fn.fullscreenchange; +this._preOnFullScreenChange && document.removeEventListener(i, this._preOnFullScreenChange); +this._preOnFullScreenChange = e; +document.addEventListener(i, e, !1); +} +t[this._fn.requestFullscreen](); +} +}, +exitFullScreen: function(t) { +if (t && "video" === t.tagName.toLowerCase()) { +if (cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser) { +t.webkitExitFullscreen && t.webkitExitFullscreen(); +return; +} +t.setAttribute("x5-video-player-fullscreen", "false"); +} +return !this._supportsFullScreen || document[this._fn.exitFullscreen](); +}, +autoFullScreen: function(t, e) { +t = t || document.body; +this._ensureFullScreen(t, e); +this.requestFullScreen(t, e); +}, +disableAutoFullScreen: function(t) { +var e = cc.game.canvas || t, i = this._touchEvent; +if (this._preOnTouch) { +e.removeEventListener(i, this._preOnTouch); +this._preOnTouch = null; +} +}, +_ensureFullScreen: function(t, e) { +var i = this, n = cc.game.canvas || t, r = this._fn.fullscreenerror, s = this._touchEvent; +function o() { +i._preOnFullScreenError = null; +i._preOnTouch && n.removeEventListener(s, i._preOnTouch); +i._preOnTouch = function() { +i._preOnTouch = null; +i.requestFullScreen(t, e); +}; +n.addEventListener(s, i._preOnTouch, { +once: !0 +}); +} +this._preOnFullScreenError && t.removeEventListener(r, this._preOnFullScreenError); +this._preOnFullScreenError = o; +t.addEventListener(r, o, { +once: !0 +}); +} +}; +cc.screen.init(); +}), {} ], +210: [ (function(i, n, r) { +"use strict"; +var s = void 0, o = "baidugame" === (s = window._CCSettings ? _CCSettings.platform : void 0) || "baidugame-subcontext" === s, a = "qgame" === s, c = "quickgame" === s, l = "huawei" === s, h = "jkw-game" === s, u = "undefined" === ("object" === (e = typeof window) ? t(window) : e) ? global : window; +var _ = cc && cc.sys ? cc.sys : (function() { +cc.sys = {}; +var i = cc.sys; +i.LANGUAGE_ENGLISH = "en"; +i.LANGUAGE_CHINESE = "zh"; +i.LANGUAGE_FRENCH = "fr"; +i.LANGUAGE_ITALIAN = "it"; +i.LANGUAGE_GERMAN = "de"; +i.LANGUAGE_SPANISH = "es"; +i.LANGUAGE_DUTCH = "du"; +i.LANGUAGE_RUSSIAN = "ru"; +i.LANGUAGE_KOREAN = "ko"; +i.LANGUAGE_JAPANESE = "ja"; +i.LANGUAGE_HUNGARIAN = "hu"; +i.LANGUAGE_PORTUGUESE = "pt"; +i.LANGUAGE_ARABIC = "ar"; +i.LANGUAGE_NORWEGIAN = "no"; +i.LANGUAGE_POLISH = "pl"; +i.LANGUAGE_TURKISH = "tr"; +i.LANGUAGE_UKRAINIAN = "uk"; +i.LANGUAGE_ROMANIAN = "ro"; +i.LANGUAGE_BULGARIAN = "bg"; +i.LANGUAGE_UNKNOWN = "unknown"; +i.OS_IOS = "iOS"; +i.OS_ANDROID = "Android"; +i.OS_WINDOWS = "Windows"; +i.OS_MARMALADE = "Marmalade"; +i.OS_LINUX = "Linux"; +i.OS_BADA = "Bada"; +i.OS_BLACKBERRY = "Blackberry"; +i.OS_OSX = "OS X"; +i.OS_WP8 = "WP8"; +i.OS_WINRT = "WINRT"; +i.OS_UNKNOWN = "Unknown"; +i.UNKNOWN = -1; +i.WIN32 = 0; +i.LINUX = 1; +i.MACOS = 2; +i.ANDROID = 3; +i.IPHONE = 4; +i.IPAD = 5; +i.BLACKBERRY = 6; +i.NACL = 7; +i.EMSCRIPTEN = 8; +i.TIZEN = 9; +i.WINRT = 10; +i.WP8 = 11; +i.MOBILE_BROWSER = 100; +i.DESKTOP_BROWSER = 101; +i.EDITOR_PAGE = 102; +i.EDITOR_CORE = 103; +i.WECHAT_GAME = 104; +i.QQ_PLAY = 105; +i.FB_PLAYABLE_ADS = 106; +i.BAIDU_GAME = 107; +i.VIVO_GAME = 108; +i.OPPO_GAME = 109; +i.HUAWEI_GAME = 110; +i.XIAOMI_GAME = 111; +i.JKW_GAME = 112; +i.ALIPAY_GAME = 113; +i.BROWSER_TYPE_WECHAT = "wechat"; +i.BROWSER_TYPE_WECHAT_GAME = "wechatgame"; +i.BROWSER_TYPE_WECHAT_GAME_SUB = "wechatgamesub"; +i.BROWSER_TYPE_BAIDU_GAME = "baidugame"; +i.BROWSER_TYPE_BAIDU_GAME_SUB = "baidugamesub"; +i.BROWSER_TYPE_XIAOMI_GAME = "xiaomigame"; +i.BROWSER_TYPE_ALIPAY_GAME = "alipaygame"; +i.BROWSER_TYPE_QQ_PLAY = "qqplay"; +i.BROWSER_TYPE_ANDROID = "androidbrowser"; +i.BROWSER_TYPE_IE = "ie"; +i.BROWSER_TYPE_EDGE = "edge"; +i.BROWSER_TYPE_QQ = "qqbrowser"; +i.BROWSER_TYPE_MOBILE_QQ = "mqqbrowser"; +i.BROWSER_TYPE_UC = "ucbrowser"; +i.BROWSER_TYPE_UCBS = "ucbs"; +i.BROWSER_TYPE_360 = "360browser"; +i.BROWSER_TYPE_BAIDU_APP = "baiduboxapp"; +i.BROWSER_TYPE_BAIDU = "baidubrowser"; +i.BROWSER_TYPE_MAXTHON = "maxthon"; +i.BROWSER_TYPE_OPERA = "opera"; +i.BROWSER_TYPE_OUPENG = "oupeng"; +i.BROWSER_TYPE_MIUI = "miuibrowser"; +i.BROWSER_TYPE_FIREFOX = "firefox"; +i.BROWSER_TYPE_SAFARI = "safari"; +i.BROWSER_TYPE_CHROME = "chrome"; +i.BROWSER_TYPE_LIEBAO = "liebao"; +i.BROWSER_TYPE_QZONE = "qzone"; +i.BROWSER_TYPE_SOUGOU = "sogou"; +i.BROWSER_TYPE_UNKNOWN = "unknown"; +i.isNative = !0; +i.isBrowser = "object" === ("object" == (e = typeof window) ? t(window) : e) && "object" === ("object" == (e = typeof document) ? t(document) : e) && !1; +i.glExtension = function(t) { +return !(o && "OES_texture_float" === t || !cc.renderer.device.ext(t)); +}; +i.getMaxJointMatrixSize = function() { +if (!i._maxJointMatrixSize) { +var t = cc.game._renderContext, e = Math.floor(t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS) / 4) - 10; +i._maxJointMatrixSize = e < 50 ? 0 : 50; +} +return i._maxJointMatrixSize; +}; +if (u.__platform && u.__platform.getSystemInfo) { +var n = u.__platform.getSystemInfo(); +i.isNative = n.isNative; +i.isBrowser = n.isBrowser; +i.platform = n.platform; +i.browserType = n.browserType; +i.isMobile = n.isMobile; +i.language = n.language; +i.languageCode = n.language.toLowerCase(); +i.os = n.os; +i.osVersion = n.osVersion; +i.osMainVersion = n.osMainVersion; +i.browserVersion = n.browserVersion; +i.windowPixelResolution = n.windowPixelResolution; +i.localStorage = n.localStorage; +i.capabilities = n.capabilities; +i.__audioSupport = n.audioSupport; +u.__platform = void 0; +} else { +var r, s = void 0; +s = a ? i.VIVO_GAME : c ? i.OPPO_GAME : l ? i.HUAWEI_GAME : h ? i.JKW_GAME : __getPlatform(); +i.platform = s; +i.isMobile = s === i.ANDROID || s === i.IPAD || s === i.IPHONE || s === i.WP8 || s === i.TIZEN || s === i.BLACKBERRY || s === i.XIAOMI_GAME || a || c || l || h; +i.os = __getOS(); +i.language = __getCurrentLanguage(); +r = __getCurrentLanguageCode(); +i.languageCode = r ? r.toLowerCase() : void 0; +i.osVersion = __getOSVersion(); +i.osMainVersion = parseInt(i.osVersion); +i.browserType = null; +i.browserVersion = null; +var _, f = window.innerWidth, d = window.innerHeight, m = window.devicePixelRatio || 1; +i.windowPixelResolution = { +width: m * f, +height: m * d +}; +i.localStorage = window.localStorage; +_ = i.capabilities = { +canvas: !1, +opengl: !0, +webp: !0 +}; +if (i.isMobile) { +_.accelerometer = !0; +_.touches = !0; +} else { +_.keyboard = !0; +_.mouse = !0; +_.touches = !1; +} +i.__audioSupport = { +ONLY_ONE: !1, +WEB_AUDIO: !1, +DELAY_CREATE_CTX: !1, +format: [ ".mp3" ] +}; +} +i.NetworkType = { +NONE: 0, +LAN: 1, +WWAN: 2 +}; +i.getNetworkType = function() { +return i.NetworkType.LAN; +}; +i.getBatteryLevel = function() { +return 1; +}; +i.garbageCollect = function() {}; +i.restartVM = function() {}; +i.getSafeAreaRect = function() { +var t = cc.view.getVisibleSize(); +return cc.rect(0, 0, t.width, t.height); +}; +i.isObjectValid = function(t) { +return !!t; +}; +i.dump = function() { +var t = ""; +t += "isMobile : " + this.isMobile + "\r\n"; +t += "language : " + this.language + "\r\n"; +t += "browserType : " + this.browserType + "\r\n"; +t += "browserVersion : " + this.browserVersion + "\r\n"; +t += "capabilities : " + JSON.stringify(this.capabilities) + "\r\n"; +t += "os : " + this.os + "\r\n"; +t += "osVersion : " + this.osVersion + "\r\n"; +t += "platform : " + this.platform + "\r\n"; +t += "Using " + (cc.game.renderType === cc.game.RENDER_TYPE_WEBGL ? "WEBGL" : "CANVAS") + " renderer.\r\n"; +cc.log(t); +}; +i.openURL = function(t) { +jsb.openURL(t); +}; +i.now = function() { +return Date.now ? Date.now() : +new Date(); +}; +return i; +})(); +n.exports = _; +}), {} ], +211: [ (function(i, n, r) { +"use strict"; +var s = i("../event/event-target"), o = i("../platform/js"), a = i("../renderer"); +i("../platform/CCClass"); +var c = cc.sys.platform === cc.sys.XIAOMI_GAME, l = cc.sys.platform === cc.sys.BAIDU_GAME, h = cc.sys.platform === cc.sys.ALIPAY_GAME, u = { +init: function() { +l || c || h || (this.html = document.getElementsByTagName("html")[0]); +}, +availWidth: function(t) { +return t && t !== this.html ? t.clientWidth : window.innerWidth; +}, +availHeight: function(t) { +return t && t !== this.html ? t.clientHeight : window.innerHeight; +}, +meta: { +width: "device-width" +}, +adaptationType: cc.sys.browserType +}; +cc.sys.os === cc.sys.OS_IOS && (u.adaptationType = cc.sys.BROWSER_TYPE_SAFARI); +l && (cc.sys.browserType === cc.sys.BROWSER_TYPE_BAIDU_GAME_SUB ? u.adaptationType = cc.sys.BROWSER_TYPE_BAIDU_GAME_SUB : u.adaptationType = cc.sys.BROWSER_TYPE_BAIDU_GAME); +c && (u.adaptationType = cc.sys.BROWSER_TYPE_XIAOMI_GAME); +h && (u.adaptationType = cc.sys.BROWSER_TYPE_ALIPAY_GAME); +0; +0; +switch (u.adaptationType) { +case cc.sys.BROWSER_TYPE_SAFARI: +u.meta["minimal-ui"] = "true"; + +case cc.sys.BROWSER_TYPE_SOUGOU: +case cc.sys.BROWSER_TYPE_UC: +u.availWidth = function(t) { +return t.clientWidth; +}; +u.availHeight = function(t) { +return cc.sys.isMobile && cc.sys.isBrowser ? window.innerHeight : t.clientHeight; +}; +break; + +case cc.sys.BROWSER_TYPE_WECHAT_GAME: +u.availWidth = function() { +return window.innerWidth; +}; +u.availHeight = function() { +return window.innerHeight; +}; +break; + +case cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB: +var _ = window.sharedCanvas || wx.getSharedCanvas(); +u.availWidth = function() { +return _.width; +}; +u.availHeight = function() { +return _.height; +}; +} +var f = null, d = function() { +s.call(this); +var t = this, e = cc.ContainerStrategy, i = cc.ContentStrategy; +u.init(this); +t._frameSize = cc.size(0, 0); +t._designResolutionSize = cc.size(0, 0); +t._originalDesignResolutionSize = cc.size(0, 0); +t._scaleX = 1; +t._scaleY = 1; +t._viewportRect = cc.rect(0, 0, 0, 0); +t._visibleRect = cc.rect(0, 0, 0, 0); +t._autoFullScreen = !1; +t._devicePixelRatio = 1; +t._maxPixelRatio = 2; +t._retinaEnabled = !1; +t._resizeCallback = null; +t._resizing = !1; +t._resizeWithBrowserSize = !1; +t._orientationChanging = !0; +t._isRotated = !1; +t._orientation = cc.macro.ORIENTATION_AUTO; +t._isAdjustViewport = !0; +t._antiAliasEnabled = !1; +t._resolutionPolicy = null; +t._rpExactFit = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME, i.EXACT_FIT); +t._rpShowAll = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME, i.SHOW_ALL); +t._rpNoBorder = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME, i.NO_BORDER); +t._rpFixedHeight = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME, i.FIXED_HEIGHT); +t._rpFixedWidth = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME, i.FIXED_WIDTH); +cc.game.once(cc.game.EVENT_ENGINE_INITED, this.init, this); +}; +cc.js.extend(d, s); +cc.js.mixin(d.prototype, { +init: function() { +this._initFrameSize(); +this.enableAntiAlias(!0); +var t = cc.game.canvas.width, e = cc.game.canvas.height; +this._designResolutionSize.width = t; +this._designResolutionSize.height = e; +this._originalDesignResolutionSize.width = t; +this._originalDesignResolutionSize.height = e; +this._viewportRect.width = t; +this._viewportRect.height = e; +this._visibleRect.width = t; +this._visibleRect.height = e; +cc.winSize.width = this._visibleRect.width; +cc.winSize.height = this._visibleRect.height; +cc.visibleRect && cc.visibleRect.init(this._visibleRect); +}, +_resizeEvent: function(t) { +var e, i = (e = this.setDesignResolutionSize ? this : cc.view)._frameSize.width, n = e._frameSize.height, r = e._isRotated; +if (cc.sys.isMobile) { +var s = cc.game.container.style, o = s.margin; +s.margin = "0"; +s.display = "none"; +e._initFrameSize(); +s.margin = o; +s.display = "block"; +} else e._initFrameSize(); +if (!0 === t || e._isRotated !== r || e._frameSize.width !== i || e._frameSize.height !== n) { +var a = e._originalDesignResolutionSize.width, c = e._originalDesignResolutionSize.height; +e._resizing = !0; +a > 0 && e.setDesignResolutionSize(a, c, e._resolutionPolicy); +e._resizing = !1; +e.emit("canvas-resize"); +e._resizeCallback && e._resizeCallback.call(); +} +}, +_orientationChange: function() { +cc.view._orientationChanging = !0; +cc.view._resizeEvent(); +}, +resizeWithBrowserSize: function(t) { +if (t) { +if (!this._resizeWithBrowserSize) { +this._resizeWithBrowserSize = !0; +window.addEventListener("resize", this._resizeEvent); +window.addEventListener("orientationchange", this._orientationChange); +} +} else if (this._resizeWithBrowserSize) { +this._resizeWithBrowserSize = !1; +window.removeEventListener("resize", this._resizeEvent); +window.removeEventListener("orientationchange", this._orientationChange); +} +}, +setResizeCallback: function(i) { +0; +"function" !== ("object" === (e = typeof i) ? t(i) : e) && null != i || (this._resizeCallback = i); +}, +setOrientation: function(t) { +if ((t &= cc.macro.ORIENTATION_AUTO) && this._orientation !== t) { +this._orientation = t; +var e = this._originalDesignResolutionSize.width, i = this._originalDesignResolutionSize.height; +this.setDesignResolutionSize(e, i, this._resolutionPolicy); +} +}, +_initFrameSize: function() { +var t = this._frameSize, e = u.availWidth(cc.game.frame), i = u.availHeight(cc.game.frame), n = e >= i; +if (!cc.sys.isMobile || n && this._orientation & cc.macro.ORIENTATION_LANDSCAPE || !n && this._orientation & cc.macro.ORIENTATION_PORTRAIT) { +t.width = e; +t.height = i; +cc.game.container.style["-webkit-transform"] = "rotate(0deg)"; +cc.game.container.style.transform = "rotate(0deg)"; +this._isRotated = !1; +} else { +t.width = i; +t.height = e; +cc.game.container.style["-webkit-transform"] = "rotate(90deg)"; +cc.game.container.style.transform = "rotate(90deg)"; +cc.game.container.style["-webkit-transform-origin"] = "0px 0px 0px"; +cc.game.container.style.transformOrigin = "0px 0px 0px"; +this._isRotated = !0; +} +this._orientationChanging && setTimeout((function() { +cc.view._orientationChanging = !1; +}), 1e3); +}, +_adjustSizeKeepCanvasSize: function() { +var t = this._originalDesignResolutionSize.width, e = this._originalDesignResolutionSize.height; +t > 0 && this.setDesignResolutionSize(t, e, this._resolutionPolicy); +}, +_setViewportMeta: function(t, e) { +var i = document.getElementById("cocosMetaElement"); +i && e && document.head.removeChild(i); +var n, r, s, o = document.getElementsByName("viewport"), a = o ? o[0] : null; +n = a ? a.content : ""; +(i = i || document.createElement("meta")).id = "cocosMetaElement"; +i.name = "viewport"; +i.content = ""; +for (r in t) if (-1 == n.indexOf(r)) n += "," + r + "=" + t[r]; else if (e) { +s = new RegExp(r + "s*=s*[^,]+"); +n.replace(s, r + "=" + t[r]); +} +/^,/.test(n) && (n = n.substr(1)); +i.content = n; +a && (a.content = n); +document.head.appendChild(i); +}, +_adjustViewportMeta: function() { +if ((this._isAdjustViewport, 0) && !l && !c && !h) { +this._setViewportMeta(u.meta, !1); +this._isAdjustViewport = !1; +} +}, +adjustViewportMeta: function(t) { +this._isAdjustViewport = t; +}, +enableRetina: function(t) { +this._retinaEnabled = !!t; +}, +isRetinaEnabled: function() { +return this._retinaEnabled; +}, +enableAntiAlias: function(t) { +if (this._antiAliasEnabled !== t) { +this._antiAliasEnabled = t; +if (cc.game.renderType === cc.game.RENDER_TYPE_WEBGL) { +var e = cc.loader._cache; +for (var i in e) { +var n = e[i], r = n && n.content instanceof cc.Texture2D ? n.content : null; +if (r) { +var s = cc.Texture2D.Filter; +t ? r.setFilters(s.LINEAR, s.LINEAR) : r.setFilters(s.NEAREST, s.NEAREST); +} +} +} else if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) { +var o = cc.game.canvas.getContext("2d"); +o.imageSmoothingEnabled = t; +o.mozImageSmoothingEnabled = t; +} +} +}, +isAntiAliasEnabled: function() { +return this._antiAliasEnabled; +}, +enableAutoFullScreen: function(t) { +if (t && t !== this._autoFullScreen && cc.sys.isMobile && cc.sys.browserType !== cc.sys.BROWSER_TYPE_WECHAT) { +this._autoFullScreen = !0; +cc.screen.autoFullScreen(cc.game.frame); +} else { +this._autoFullScreen = !1; +cc.screen.disableAutoFullScreen(cc.game.frame); +} +}, +isAutoFullScreenEnabled: function() { +return this._autoFullScreen; +}, +setCanvasSize: function(t, e) { +var i = cc.game.canvas, n = cc.game.container; +i.width = t * this._devicePixelRatio; +i.height = e * this._devicePixelRatio; +i.style.width = t + "px"; +i.style.height = e + "px"; +n.style.width = t + "px"; +n.style.height = e + "px"; +this._resizeEvent(); +}, +getCanvasSize: function() { +return cc.size(cc.game.canvas.width, cc.game.canvas.height); +}, +getFrameSize: function() { +return cc.size(this._frameSize.width, this._frameSize.height); +}, +setFrameSize: function(t, e) { +this._frameSize.width = t; +this._frameSize.height = e; +cc.game.frame.style.width = t + "px"; +cc.game.frame.style.height = e + "px"; +this._resizeEvent(!0); +}, +getVisibleSize: function() { +return cc.size(this._visibleRect.width, this._visibleRect.height); +}, +getVisibleSizeInPixel: function() { +return cc.size(this._visibleRect.width * this._scaleX, this._visibleRect.height * this._scaleY); +}, +getVisibleOrigin: function() { +return cc.v2(this._visibleRect.x, this._visibleRect.y); +}, +getVisibleOriginInPixel: function() { +return cc.v2(this._visibleRect.x * this._scaleX, this._visibleRect.y * this._scaleY); +}, +getResolutionPolicy: function() { +return this._resolutionPolicy; +}, +setResolutionPolicy: function(t) { +var e = this; +if (t instanceof cc.ResolutionPolicy) e._resolutionPolicy = t; else { +var i = cc.ResolutionPolicy; +t === i.EXACT_FIT && (e._resolutionPolicy = e._rpExactFit); +t === i.SHOW_ALL && (e._resolutionPolicy = e._rpShowAll); +t === i.NO_BORDER && (e._resolutionPolicy = e._rpNoBorder); +t === i.FIXED_HEIGHT && (e._resolutionPolicy = e._rpFixedHeight); +t === i.FIXED_WIDTH && (e._resolutionPolicy = e._rpFixedWidth); +} +}, +setDesignResolutionSize: function(t, e, i) { +if (t > 0 || e > 0) { +this.setResolutionPolicy(i); +var n = this._resolutionPolicy; +n && n.preApply(this); +cc.sys.isMobile && this._adjustViewportMeta(); +this._orientationChanging = !0; +this._resizing || this._initFrameSize(); +if (n) { +this._originalDesignResolutionSize.width = this._designResolutionSize.width = t; +this._originalDesignResolutionSize.height = this._designResolutionSize.height = e; +var r = n.apply(this, this._designResolutionSize); +if (r.scale && 2 === r.scale.length) { +this._scaleX = r.scale[0]; +this._scaleY = r.scale[1]; +} +if (r.viewport) { +var s = this._viewportRect, o = this._visibleRect, c = r.viewport; +s.x = c.x; +s.y = c.y; +s.width = c.width; +s.height = c.height; +o.x = 0; +o.y = 0; +o.width = c.width / this._scaleX; +o.height = c.height / this._scaleY; +} +n.postApply(this); +cc.winSize.width = this._visibleRect.width; +cc.winSize.height = this._visibleRect.height; +cc.visibleRect && cc.visibleRect.init(this._visibleRect); +a.updateCameraViewport(); +this.emit("design-resolution-changed"); +} else cc.logID(2201); +} else cc.logID(2200); +}, +getDesignResolutionSize: function() { +return cc.size(this._designResolutionSize.width, this._designResolutionSize.height); +}, +setRealPixelResolution: function(t, e, i) { +0; +this.setDesignResolutionSize(t, e, i); +}, +setViewportInPoints: function(t, e, i, n) { +var r = this._scaleX, s = this._scaleY; +cc.game._renderContext.viewport(t * r + this._viewportRect.x, e * s + this._viewportRect.y, i * r, n * s); +}, +setScissorInPoints: function(t, e, i, n) { +var r = this._scaleX, s = this._scaleY, o = Math.ceil(t * r + this._viewportRect.x), a = Math.ceil(e * s + this._viewportRect.y), c = Math.ceil(i * r), l = Math.ceil(n * s), h = cc.game._renderContext; +if (!f) { +var u = h.getParameter(h.SCISSOR_BOX); +f = cc.rect(u[0], u[1], u[2], u[3]); +} +if (f.x !== o || f.y !== a || f.width !== c || f.height !== l) { +f.x = o; +f.y = a; +f.width = c; +f.height = l; +h.scissor(o, a, c, l); +} +}, +isScissorEnabled: function() { +return cc.game._renderContext.isEnabled(gl.SCISSOR_TEST); +}, +getScissorRect: function() { +if (!f) { +var t = gl.getParameter(gl.SCISSOR_BOX); +f = cc.rect(t[0], t[1], t[2], t[3]); +} +var e = 1 / this._scaleX, i = 1 / this._scaleY; +return cc.rect((f.x - this._viewportRect.x) * e, (f.y - this._viewportRect.y) * i, f.width * e, f.height * i); +}, +getViewportRect: function() { +return this._viewportRect; +}, +getScaleX: function() { +return this._scaleX; +}, +getScaleY: function() { +return this._scaleY; +}, +getDevicePixelRatio: function() { +return this._devicePixelRatio; +}, +convertToLocationInView: function(t, e, i, n) { +var r = n || cc.v2(), s = this._devicePixelRatio * (t - i.left), o = this._devicePixelRatio * (i.top + i.height - e); +if (this._isRotated) { +r.x = cc.game.canvas.width - o; +r.y = s; +} else { +r.x = s; +r.y = o; +} +return r; +}, +_convertMouseToLocationInView: function(t, e) { +var i = this._viewportRect; +t.x = (this._devicePixelRatio * (t.x - e.left) - i.x) / this._scaleX; +t.y = (this._devicePixelRatio * (e.top + e.height - t.y) - i.y) / this._scaleY; +}, +_convertPointWithScale: function(t) { +var e = this._viewportRect; +t.x = (t.x - e.x) / this._scaleX; +t.y = (t.y - e.y) / this._scaleY; +}, +_convertTouchesWithScale: function(t) { +for (var e, i, n, r = this._viewportRect, s = this._scaleX, o = this._scaleY, a = this._isRotated, c = 0; c < t.length; c++) { +n = (e = t[c])._prevPoint; +i = e._point; +if (cc.sys.isNative && a) { +var l = (r.width - (i.x - r.x)) / s; +i.x = (i.y - r.y) / o; +i.y = l; +var h = (r.width - (n.x - r.x)) / s; +n.x = (n.y - r.y) / o; +n.y = h; +} else { +i.x = (i.x - r.x) / s; +i.y = (i.y - r.y) / o; +n.x = (n.x - r.x) / s; +n.y = (n.y - r.y) / o; +} +} +} +}); +cc.ContainerStrategy = cc.Class({ +name: "ContainerStrategy", +preApply: function(t) {}, +apply: function(t, e) {}, +postApply: function(t) {}, +_setupContainer: function(t, e, i) { +var n = cc.game.canvas, r = cc.game.container; +if (!l && !c && !h) { +if (cc.sys.os === cc.sys.OS_ANDROID) { +document.body.style.width = (t._isRotated ? i : e) + "px"; +document.body.style.height = (t._isRotated ? e : i) + "px"; +} +r.style.width = n.style.width = e + "px"; +r.style.height = n.style.height = i + "px"; +} +var s = t._devicePixelRatio = 1; +t.isRetinaEnabled() && (s = t._devicePixelRatio = Math.min(t._maxPixelRatio, window.devicePixelRatio || 1)); +n.width = e * s; +n.height = i * s; +}, +_fixContainer: function() { +document.body.insertBefore(cc.game.container, document.body.firstChild); +var t = document.body.style; +t.width = window.innerWidth + "px"; +t.height = window.innerHeight + "px"; +t.overflow = "hidden"; +var e = cc.game.container.style; +e.position = "fixed"; +e.left = e.top = "0px"; +document.body.scrollTop = 0; +} +}); +cc.ContentStrategy = cc.Class({ +name: "ContentStrategy", +ctor: function() { +this._result = { +scale: [ 1, 1 ], +viewport: null +}; +}, +_buildResult: function(t, e, i, n, r, s) { +Math.abs(t - i) < 2 && (i = t); +Math.abs(e - n) < 2 && (n = e); +var o = cc.rect((t - i) / 2, (e - n) / 2, i, n); +cc.game.renderType, cc.game.RENDER_TYPE_CANVAS; +this._result.scale = [ r, s ]; +this._result.viewport = o; +return this._result; +}, +preApply: function(t) {}, +apply: function(t, e) { +return { +scale: [ 1, 1 ] +}; +}, +postApply: function(t) {} +}); +(function() { +var t = cc.Class({ +name: "EqualToFrame", +extends: cc.ContainerStrategy, +apply: function(t) { +var e = t._frameSize.height, i = cc.game.container.style; +this._setupContainer(t, t._frameSize.width, t._frameSize.height); +t._isRotated ? i.margin = "0 0 0 " + e + "px" : i.margin = "0px"; +i.padding = "0px"; +} +}), e = cc.Class({ +name: "ProportionalToFrame", +extends: cc.ContainerStrategy, +apply: function(t, e) { +var i, n, r = t._frameSize.width, s = t._frameSize.height, o = cc.game.container.style, a = e.width, c = e.height, l = r / a, h = s / c; +l < h ? (i = r, n = c * l) : (i = a * h, n = s); +var u = Math.round((r - i) / 2), _ = Math.round((s - n) / 2); +i = r - 2 * u; +n = s - 2 * _; +this._setupContainer(t, i, n); +t._isRotated ? o.margin = "0 0 0 " + s + "px" : o.margin = "0px"; +o.paddingLeft = u + "px"; +o.paddingRight = u + "px"; +o.paddingTop = _ + "px"; +o.paddingBottom = _ + "px"; +} +}), i = (cc.Class({ +name: "EqualToWindow", +extends: t, +preApply: function(t) { +this._super(t); +cc.game.frame = document.documentElement; +}, +apply: function(t) { +this._super(t); +this._fixContainer(); +} +}), cc.Class({ +name: "ProportionalToWindow", +extends: e, +preApply: function(t) { +this._super(t); +cc.game.frame = document.documentElement; +}, +apply: function(t, e) { +this._super(t, e); +this._fixContainer(); +} +}), cc.Class({ +name: "OriginalContainer", +extends: cc.ContainerStrategy, +apply: function(t) { +this._setupContainer(t, cc.game.canvas.width, cc.game.canvas.height); +} +})); +cc.ContainerStrategy.EQUAL_TO_FRAME = new t(); +cc.ContainerStrategy.PROPORTION_TO_FRAME = new e(); +cc.ContainerStrategy.ORIGINAL_CONTAINER = new i(); +var n = cc.Class({ +name: "ExactFit", +extends: cc.ContentStrategy, +apply: function(t, e) { +var i = cc.game.canvas.width, n = cc.game.canvas.height, r = i / e.width, s = n / e.height; +return this._buildResult(i, n, i, n, r, s); +} +}), r = cc.Class({ +name: "ShowAll", +extends: cc.ContentStrategy, +apply: function(t, e) { +var i, n, r = cc.game.canvas.width, s = cc.game.canvas.height, o = e.width, a = e.height, c = r / o, l = s / a, h = 0; +c < l ? (i = r, n = a * (h = c)) : (i = o * (h = l), n = s); +return this._buildResult(r, s, i, n, h, h); +} +}), s = cc.Class({ +name: "NoBorder", +extends: cc.ContentStrategy, +apply: function(t, e) { +var i, n, r, s = cc.game.canvas.width, o = cc.game.canvas.height, a = e.width, c = e.height, l = s / a, h = o / c; +l < h ? (n = a * (i = h), r = o) : (n = s, r = c * (i = l)); +return this._buildResult(s, o, n, r, i, i); +} +}), o = cc.Class({ +name: "FixedHeight", +extends: cc.ContentStrategy, +apply: function(t, e) { +var i = cc.game.canvas.width, n = cc.game.canvas.height, r = n / e.height, s = i, o = n; +return this._buildResult(i, n, s, o, r, r); +} +}), a = cc.Class({ +name: "FixedWidth", +extends: cc.ContentStrategy, +apply: function(t, e) { +var i = cc.game.canvas.width, n = cc.game.canvas.height, r = i / e.width, s = i, o = n; +return this._buildResult(i, n, s, o, r, r); +} +}); +cc.ContentStrategy.EXACT_FIT = new n(); +cc.ContentStrategy.SHOW_ALL = new r(); +cc.ContentStrategy.NO_BORDER = new s(); +cc.ContentStrategy.FIXED_HEIGHT = new o(); +cc.ContentStrategy.FIXED_WIDTH = new a(); +})(); +cc.ResolutionPolicy = cc.Class({ +name: "cc.ResolutionPolicy", +ctor: function(t, e) { +this._containerStrategy = null; +this._contentStrategy = null; +this.setContainerStrategy(t); +this.setContentStrategy(e); +}, +preApply: function(t) { +this._containerStrategy.preApply(t); +this._contentStrategy.preApply(t); +}, +apply: function(t, e) { +this._containerStrategy.apply(t, e); +return this._contentStrategy.apply(t, e); +}, +postApply: function(t) { +this._containerStrategy.postApply(t); +this._contentStrategy.postApply(t); +}, +setContainerStrategy: function(t) { +t instanceof cc.ContainerStrategy && (this._containerStrategy = t); +}, +setContentStrategy: function(t) { +t instanceof cc.ContentStrategy && (this._contentStrategy = t); +} +}); +o.get(cc.ResolutionPolicy.prototype, "canvasSize", (function() { +return cc.v2(cc.game.canvas.width, cc.game.canvas.height); +})); +cc.ResolutionPolicy.EXACT_FIT = 0; +cc.ResolutionPolicy.NO_BORDER = 1; +cc.ResolutionPolicy.SHOW_ALL = 2; +cc.ResolutionPolicy.FIXED_HEIGHT = 3; +cc.ResolutionPolicy.FIXED_WIDTH = 4; +cc.ResolutionPolicy.UNKNOWN = 5; +cc.view = new d(); +cc.winSize = cc.v2(); +n.exports = cc.view; +}), { +"../event/event-target": 133, +"../platform/CCClass": 201, +"../platform/js": 221, +"../renderer": 244 +} ], +212: [ (function(t, e, i) { +"use strict"; +cc.visibleRect = { +topLeft: cc.v2(0, 0), +topRight: cc.v2(0, 0), +top: cc.v2(0, 0), +bottomLeft: cc.v2(0, 0), +bottomRight: cc.v2(0, 0), +bottom: cc.v2(0, 0), +center: cc.v2(0, 0), +left: cc.v2(0, 0), +right: cc.v2(0, 0), +width: 0, +height: 0, +init: function(t) { +var e = this.width = t.width, i = this.height = t.height, n = t.x, r = t.y, s = r + i, o = n + e; +this.topLeft.x = n; +this.topLeft.y = s; +this.topRight.x = o; +this.topRight.y = s; +this.top.x = n + e / 2; +this.top.y = s; +this.bottomLeft.x = n; +this.bottomLeft.y = r; +this.bottomRight.x = o; +this.bottomRight.y = r; +this.bottom.x = n + e / 2; +this.bottom.y = r; +this.center.x = n + e / 2; +this.center.y = r + i / 2; +this.left.x = n; +this.left.y = r + i / 2; +this.right.x = o; +this.right.y = r + i / 2; +} +}; +}), {} ], +213: [ (function(i, n, r) { +"use strict"; +var s = i("./js"), o = (i("./utils").isPlainEmptyObj_DEV, "$_$"); +function a(t, e) { +var i = e ? Object.create(e) : {}; +s.value(t, "__attrs__", i); +return i; +} +function c(i) { +if ("function" !== ("object" === (e = typeof i) ? t(i) : e)) { +return a(i, h(i.constructor)); +} +for (var n, r = cc.Class.getInheritanceChain(i), s = r.length - 1; s >= 0; s--) { +var o = r[s]; +o.hasOwnProperty("__attrs__") && o.__attrs__ || a(o, (n = r[s + 1]) && n.__attrs__); +} +a(i, (n = r[0]) && n.__attrs__); +return i.__attrs__; +} +function l(t, e, i) { +var n = h(t), r = e + o, s = {}; +for (var a in n) a.startsWith(r) && (s[a.slice(r.length)] = n[a]); +return s; +} +function h(t) { +return t.hasOwnProperty("__attrs__") && t.__attrs__ || c(t); +} +cc.Integer = "Integer"; +cc.Float = "Float"; +0; +cc.Boolean = "Boolean"; +cc.String = "String"; +n.exports = { +attr: l, +getClassAttrs: h, +setClassAttr: function(t, e, i, n) { +h(t)[e + o + i] = n; +}, +DELIMETER: o, +getTypeChecker: !1, +getObjTypeChecker: !1, +ScriptUuid: {} +}; +}), { +"./CCClass": 201, +"./js": 221, +"./utils": 225 +} ], +214: [ (function(i, n, r) { +"use strict"; +var s = i("./js"), o = s.array.fastRemoveAt; +function a() { +this.callbacks = []; +this.targets = []; +this.isInvoking = !1; +this.containCanceled = !1; +} +var c = a.prototype; +c.removeBy = function(t, e) { +for (var i = this.callbacks, n = this.targets, r = 0; r < t.length; ++r) if (t[r] === e) { +o(i, r); +o(n, r); +--r; +} +}; +c.cancel = function(t) { +this.callbacks[t] = this.targets[t] = null; +this.containCanceled = !0; +}; +c.cancelAll = function() { +for (var t = this.callbacks, e = this.targets, i = 0; i < t.length; i++) t[i] = e[i] = null; +this.containCanceled = !0; +}; +c.purgeCanceled = function() { +this.removeBy(this.callbacks, null); +this.containCanceled = !1; +}; +var l = new s.Pool(function(t) { +t.callbacks.length = 0; +t.targets.length = 0; +t.isInvoking = !1; +t.containCanceled = !1; +}, 16); +l.get = function() { +return this._get() || new a(); +}; +function h() { +this._callbackTable = s.createMap(!0); +} +(c = h.prototype).add = function(t, e, i) { +var n = this._callbackTable[t]; +n || (n = this._callbackTable[t] = l.get()); +n.callbacks.push(e); +n.targets.push(i || null); +}; +c.hasEventListener = function(t, e, i) { +var n = this._callbackTable[t]; +if (!n) return !1; +var r = n.callbacks; +if (!e) { +if (n.isInvoking) { +for (var s = 0; s < r.length; s++) if (r[s]) return !0; +return !1; +} +return r.length > 0; +} +i = i || null; +for (var o = n.targets, a = 0; a < r.length; ++a) if (r[a] === e && o[a] === i) return !0; +return !1; +}; +c.removeAll = function(i) { +if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { +var n = this._callbackTable[i]; +if (n) if (n.isInvoking) n.cancelAll(); else { +l.put(n); +delete this._callbackTable[i]; +} +} else if (i) for (var r in this._callbackTable) { +var s = this._callbackTable[r]; +if (s.isInvoking) for (var o = s.targets, a = 0; a < o.length; ++a) o[a] === i && s.cancel(a); else s.removeBy(s.targets, i); +} +}; +c.remove = function(t, e, i) { +var n = this._callbackTable[t]; +if (n) { +i = i || null; +for (var r = n.callbacks, s = n.targets, a = 0; a < r.length; ++a) if (r[a] === e && s[a] === i) { +if (n.isInvoking) n.cancel(a); else { +o(r, a); +o(s, a); +} +break; +} +} +}; +var u = function() { +h.call(this); +}; +s.extend(u, h); +0; +u.prototype.invoke = function(t, e, i, n, r, s) { +var o = this._callbackTable[t]; +if (o) { +var a = !o.isInvoking; +o.isInvoking = !0; +for (var c = o.callbacks, l = o.targets, h = 0, u = c.length; h < u; ++h) { +var _ = c[h]; +if (_) { +var f = l[h]; +f ? _.call(f, e, i, n, r, s) : _(e, i, n, r, s); +} +} +if (a) { +o.isInvoking = !1; +o.containCanceled && o.purgeCanceled(); +} +} +}; +u.CallbacksHandler = h; +n.exports = u; +}), { +"./js": 221 +} ], +215: [ (function(t, e, i) { +"use strict"; +function n(t, e) { +for (var i = 0; i < e.length; i++) { +var r = e[i]; +Array.isArray(r) ? n(t, r) : t.push(r); +} +} +e.exports = { +flattenCodeArray: function(t) { +var e = []; +n(e, t); +return e.join(""); +} +}; +}), {} ], +216: [ (function(i, n, r) { +"use strict"; +var s = i("./js"), o = i("./attribute"), a = i("./CCClass"), c = i("../utils/misc"), l = function() { +this.uuidList = []; +this.uuidObjList = []; +this.uuidPropList = []; +this._stillUseUrl = s.createMap(!0); +}; +l.prototype.reset = function() { +this.uuidList.length = 0; +this.uuidObjList.length = 0; +this.uuidPropList.length = 0; +s.clear(this._stillUseUrl); +}; +0; +l.prototype.push = function(t, e, i, n) { +n && (this._stillUseUrl[this.uuidList.length] = !0); +this.uuidList.push(i); +this.uuidObjList.push(t); +this.uuidPropList.push(e); +}; +(l.pool = new s.Pool(function(t) { +t.reset(); +}, 10)).get = function() { +return this._get() || new l(); +}; +var h = (function() { +function i(t, e, i, n, r) { +this.result = t; +this.customEnv = n; +this.deserializedList = []; +this.deserializedData = null; +this._classFinder = i; +0; +this._idList = []; +this._idObjList = []; +this._idPropList = []; +} +function n(t) { +var e, i, n, r = t.deserializedList, s = t._idPropList, o = t._idList, a = t._idObjList; +t._classFinder && t._classFinder.onDereferenced; +for (e = 0; e < o.length; e++) { +i = s[e]; +n = o[e]; +a[e][i] = r[n]; +} +} +var r = i.prototype; +r.deserialize = function(t) { +if (Array.isArray(t)) { +var e = t, i = e.length; +this.deserializedList.length = i; +for (var r = 0; r < i; r++) if (e[r]) { +this.deserializedList[r] = this._deserializeObject(e[r], !1); +} +this.deserializedData = i > 0 ? this.deserializedList[0] : []; +} else { +this.deserializedList.length = 1; +this.deserializedData = t ? this._deserializeObject(t, !1) : null; +this.deserializedList[0] = this.deserializedData; +} +n(this); +return this.deserializedData; +}; +r._deserializeObject = function(i, n, r, o, a) { +var c, l = null, h = null, _ = i.__type__; +if (_) { +if (!(h = this._classFinder(_, i, o, a))) { +this._classFinder === s._getClassById && cc.deserialize.reportMissingClass(_); +return null; +} +if ((l = new h())._deserialize) { +l._deserialize(i.content, this); +return l; +} +cc.Class._isCCClass(h) ? u(this, l, i, h, r) : this._deserializeTypedObject(l, i, h); +} else if (Array.isArray(i)) { +l = new Array(i.length); +for (var f = 0; f < i.length; f++) { +c = i[f]; +"object" === ("object" === (e = typeof c) ? t(c) : e) && c ? this._deserializeObjField(l, c, "" + f, null, n) : l[f] = c; +} +} else { +l = {}; +this._deserializePrimitiveObject(l, i); +} +return l; +}; +r._deserializeObjField = function(t, e, i, n, r) { +var s = e.__id__; +if (void 0 === s) { +var o = e.__uuid__; +o ? this.result.push(t, i, o, r) : t[i] = this._deserializeObject(e, r); +} else { +var a = this.deserializedList[s]; +if (a) t[i] = a; else { +this._idList.push(s); +this._idObjList.push(t); +this._idPropList.push(i); +} +} +}; +r._deserializePrimitiveObject = function(i, n) { +for (var r in n) if (n.hasOwnProperty(r)) { +var s = n[r]; +"object" !== ("object" === (e = typeof s) ? t(s) : e) ? "__type__" !== r && (i[r] = s) : s ? this._deserializeObjField(i, s, r) : i[r] = null; +} +}; +r._deserializeTypedObject = function(i, n, r) { +if (r !== cc.Vec2) if (r !== cc.Vec3) if (r !== cc.Color) if (r !== cc.Size) for (var s = o.DELIMETER + "default", c = o.getClassAttrs(r), l = r.__props__ || Object.keys(i), h = 0; h < l.length; h++) { +var u = l[h], _ = n[u]; +void 0 !== _ && n.hasOwnProperty(u) || (_ = a.getDefault(c[u + s])); +"object" !== ("object" === (e = typeof _) ? t(_) : e) ? i[u] = _ : _ ? this._deserializeObjField(i, _, u) : i[u] = null; +} else { +i.width = n.width || 0; +i.height = n.height || 0; +} else { +i.r = n.r || 0; +i.g = n.g || 0; +i.b = n.b || 0; +var f = n.a; +i.a = void 0 === f ? 255 : f; +} else { +i.x = n.x || 0; +i.y = n.y || 0; +i.z = n.z || 0; +} else { +i.x = n.x || 0; +i.y = n.y || 0; +} +}; +function l(t, e, i, n, r, o) { +if (e instanceof cc.ValueType) { +r || t.push("if(prop){"); +var a = s.getClassName(e); +t.push("s._deserializeTypedObject(o" + i + ",prop," + a + ");"); +r || t.push("}else o" + i + "=null;"); +} else { +t.push("if(prop){"); +t.push("s._deserializeObjField(o,prop," + n + ",null," + !!o + ");"); +t.push("}else o" + i + "=null;"); +} +} +var h = function(i, n) { +for (var r = o.DELIMETER + "type", h = (o.DELIMETER, o.DELIMETER + "default"), u = o.DELIMETER + "saveUrlAsAsset", _ = o.DELIMETER + "formerlySerializedAs", f = o.getClassAttrs(n), d = n.__values__, m = [ "var prop;" ], p = c.BUILTIN_CLASSID_RE.test(s._getClassId(n)), v = 0; v < d.length; v++) { +var y, g, x = d[v]; +0; +if (a.IDENTIFIER_RE.test(x)) { +g = '"' + x + '"'; +y = "." + x; +} else y = "[" + (g = a.escapeForJS(x)) + "]"; +var C = y; +if (f[x + _]) { +var b = f[x + _]; +C = a.IDENTIFIER_RE.test(b) ? "." + b : "[" + a.escapeForJS(b) + "]"; +} +m.push("prop=d" + C + ";"); +m.push('if(typeof (prop)!=="undefined"){'); +var A = f[x + u], S = a.getDefault(f[x + h]); +if (p) { +var w, T = f[x + r]; +if (void 0 === S && T) w = T === cc.String || T === cc.Integer || T === cc.Float || T === cc.Boolean; else { +var E = "object" === (e = typeof S) ? t(S) : e; +w = "string" === E && !A || "number" === E || "boolean" === E; +} +w ? m.push("o" + y + "=prop;") : l(m, S, y, g, !0, A); +} else { +m.push('if(typeof (prop)!=="object"){o' + y + "=prop;}else{"); +l(m, S, y, g, !1, A); +m.push("}"); +} +m.push("}"); +} +if (cc.js.isChildClassOf(n, cc._BaseNode) || cc.js.isChildClassOf(n, cc.Component)) { +m.push("d._id&&(o._id=d._id);"); +} +if ("_$erialized" === d[d.length - 1]) { +m.push("o._$erialized=JSON.parse(JSON.stringify(d));"); +m.push("s._deserializePrimitiveObject(o._$erialized,d);"); +} +return Function("s", "o", "d", "k", "t", m.join("")); +}; +function u(t, e, i, n, r) { +var o; +if (n.hasOwnProperty("__deserialize__")) o = n.__deserialize__; else { +o = h(t, n); +s.value(n, "__deserialize__", o, !0); +} +o(t, e, i, n, r); +0; +} +i.pool = new s.Pool(function(t) { +t.result = null; +t.customEnv = null; +t.deserializedList.length = 0; +t.deserializedData = null; +t._classFinder = null; +0; +t._idList.length = 0; +t._idObjList.length = 0; +t._idPropList.length = 0; +}, 1); +i.pool.get = function(t, e, n, r, s) { +var o = this._get(); +if (o) { +o.result = t; +o.customEnv = r; +o._classFinder = n; +0; +return o; +} +return new i(t, e, n, r, s); +}; +return i; +})(); +cc.deserialize = function(i, n, r) { +var o = (r = r || {}).classFinder || s._getClassById, a = r.createAssetRefs || cc.sys.platform === cc.sys.EDITOR_CORE, c = r.customEnv, u = r.ignoreEditorOnly; +0; +"string" === ("object" === (e = typeof i) ? t(i) : e) && (i = JSON.parse(i)); +var _ = !n; +n = n || l.pool.get(); +var f = h.pool.get(n, !1, o, c, u); +cc.game._isCloning = !0; +var d = f.deserialize(i); +cc.game._isCloning = !1; +h.pool.put(f); +a && n.assignAssetsBy(Editor.serialize.asAsset); +_ && l.pool.put(n); +return d; +}; +cc.deserialize.Details = l; +cc.deserialize.reportMissingClass = function(t) { +cc.warnID(5302, t); +}; +}), { +"../utils/misc": 297, +"./CCClass": 201, +"./attribute": 213, +"./js": 221 +} ], +217: [ (function(t, e, i) { +"use strict"; +var n = "."; +function r(t) { +this.id = 0 | 998 * Math.random(); +this.prefix = t ? t + n : ""; +} +r.prototype.getNewId = function() { +return this.prefix + ++this.id; +}; +r.global = new r("global"); +e.exports = r; +}), {} ], +218: [ (function(t, e, i) { +"use strict"; +t("./js"); +t("./CCClass"); +t("./CCClassDecorator"); +t("./CCEnum"); +t("./CCObject"); +t("./callbacks-invoker"); +t("./url"); +t("./deserialize"); +t("./instantiate"); +t("./instantiate-jit"); +t("./requiring-frame"); +t("./CCSys"); +t("./CCMacro"); +t("./CCAssetLibrary"); +t("./CCVisibleRect"); +}), { +"./CCAssetLibrary": 200, +"./CCClass": 201, +"./CCClassDecorator": 202, +"./CCEnum": 203, +"./CCMacro": 206, +"./CCObject": 207, +"./CCSys": 210, +"./CCVisibleRect": 212, +"./callbacks-invoker": 214, +"./deserialize": 216, +"./instantiate": 220, +"./instantiate-jit": 219, +"./js": 221, +"./requiring-frame": 223, +"./url": 224 +} ], +219: [ (function(i, n, r) { +"use strict"; +var s = i("./CCObject"), o = s.Flags.Destroyed, a = s.Flags.PersistentMask, c = i("./attribute"), l = i("./js"), h = i("./CCClass"), u = i("./compiler"), _ = c.DELIMETER + "default", f = h.IDENTIFIER_RE, d = h.escapeForJS, m = "var ", p = "o", v = "t", y = { +"cc.Node": "cc.Node", +"cc.Sprite": "cc.Sprite", +"cc.Label": "cc.Label", +"cc.Button": "cc.Button", +"cc.Widget": "cc.Widget", +"cc.Animation": "cc.Animation", +"cc.ClickEvent": !1, +"cc.PrefabInfo": !1 +}; +function g(t, e) { +this.varName = t; +this.expression = e; +} +g.prototype.toString = function() { +return m + this.varName + "=" + this.expression + ";"; +}; +function x(t, e) { +return e instanceof g ? new g(e.varName, t + e.expression) : t + e; +} +function C(t, e, i) { +if (Array.isArray(i)) { +i[0] = x(e, i[0]); +t.push(i); +} else t.push(x(e, i) + ";"); +} +function b(t) { +this._exps = []; +this._targetExp = t; +} +b.prototype.append = function(t, e) { +this._exps.push([ t, e ]); +}; +b.prototype.writeCode = function(t) { +var e; +if (this._exps.length > 1) { +t.push(v + "=" + this._targetExp + ";"); +e = v; +} else { +if (1 !== this._exps.length) return; +e = this._targetExp; +} +for (var i = 0; i < this._exps.length; i++) { +var n = this._exps[i]; +C(t, e + S(n[0]) + "=", n[1]); +} +}; +b.pool = new l.Pool(function(t) { +t._exps.length = 0; +t._targetExp = null; +}, 1); +b.pool.get = function(t) { +var e = this._get() || new b(); +e._targetExp = t; +return e; +}; +function A(i, n) { +if ("function" === ("object" === (e = typeof i) ? t(i) : e)) try { +i = i(); +} catch (t) { +return !1; +} +if (i === n) return !0; +if (i && n) { +if (i instanceof cc.ValueType && i.equals(n)) return !0; +if (Array.isArray(i) && Array.isArray(n) || i.constructor === Object && n.constructor === Object) try { +return Array.isArray(i) && Array.isArray(n) && 0 === i.length && 0 === n.length; +} catch (t) {} +} +return !1; +} +function S(t) { +return f.test(t) ? "." + t : "[" + d(t) + "]"; +} +function w(t, e) { +this.parent = e; +this.objsToClear_iN$t = []; +this.codeArray = []; +this.objs = []; +this.funcs = []; +this.funcModuleCache = l.createMap(); +l.mixin(this.funcModuleCache, y); +this.globalVariables = []; +this.globalVariableId = 0; +this.localVariableId = 0; +this.codeArray.push(m + p + "," + v + ";", "if(R){", p + "=R;", "}else{", p + "=R=new " + this.getFuncModule(t.constructor, !0) + "();", "}"); +l.value(t, "_iN$t", { +globalVar: "R" +}, !0); +this.objsToClear_iN$t.push(t); +this.enumerateObject(this.codeArray, t); +var i; +this.globalVariables.length > 0 && (i = m + this.globalVariables.join(",") + ";"); +var n = u.flattenCodeArray([ "return (function(R){", i || [], this.codeArray, "return o;", "})" ]); +this.result = Function("O", "F", n)(this.objs, this.funcs); +for (var r = 0, s = this.objsToClear_iN$t.length; r < s; ++r) this.objsToClear_iN$t[r]._iN$t = null; +this.objsToClear_iN$t.length = 0; +} +var T = w.prototype; +T.getFuncModule = function(t, e) { +var i = l.getClassName(t); +if (i) { +var n = this.funcModuleCache[i]; +if (n) return n; +if (void 0 === n) { +var r = -1 !== i.indexOf("."); +if (r) try { +if (r = t === Function("return " + i)()) { +this.funcModuleCache[i] = i; +return i; +} +} catch (t) {} +} +} +var s = this.funcs.indexOf(t); +if (s < 0) { +s = this.funcs.length; +this.funcs.push(t); +} +var o = "F[" + s + "]"; +e && (o = "(" + o + ")"); +this.funcModuleCache[i] = o; +return o; +}; +T.getObjRef = function(t) { +var e = this.objs.indexOf(t); +if (e < 0) { +e = this.objs.length; +this.objs.push(t); +} +return "O[" + e + "]"; +}; +T.setValueType = function(t, e, i, n) { +var r = b.pool.get(n), s = e.constructor.__props__; +s || (s = Object.keys(e)); +for (var o = 0; o < s.length; o++) { +var a = s[o], c = i[a]; +if (e[a] !== c) { +var l = this.enumerateField(i, a, c); +r.append(a, l); +} +} +r.writeCode(t); +b.pool.put(r); +}; +T.enumerateCCClass = function(i, n, r) { +for (var s = r.__values__, o = c.getClassAttrs(r), a = 0; a < s.length; a++) { +var l = s[a], u = n[l], f = o[l + _]; +if (!A(f, u)) if ("object" === ("object" === (e = typeof u) ? t(u) : e) && u instanceof cc.ValueType && (f = h.getDefault(f)) && f.constructor === u.constructor) { +var d = p + S(l); +this.setValueType(i, f, u, d); +} else this.setObjProp(i, n, l, u); +} +}; +T.instantiateArray = function(t) { +if (0 === t.length) return "[]"; +var e = "a" + ++this.localVariableId, i = [ new g(e, "new Array(" + t.length + ")") ]; +l.value(t, "_iN$t", { +globalVar: "", +source: i +}, !0); +this.objsToClear_iN$t.push(t); +for (var n = 0; n < t.length; ++n) { +C(i, e + "[" + n + "]=", this.enumerateField(t, n, t[n])); +} +return i; +}; +T.enumerateField = function(i, n, r) { +if ("object" === ("object" === (e = typeof r) ? t(r) : e) && r) { +var o = r._iN$t; +if (o) { +var c = o.globalVar; +if (!c) { +c = o.globalVar = "v" + ++this.globalVariableId; +this.globalVariables.push(c); +var l = o.source[0]; +o.source[0] = x(c + "=", l); +} +return c; +} +return Array.isArray(r) ? this.instantiateArray(r) : this.instantiateObj(r); +} +if ("function" === ("object" === (e = typeof r) ? t(r) : e)) return this.getFuncModule(r); +if ("string" === ("object" === (e = typeof r) ? t(r) : e)) return d(r); +"_objFlags" === n && i instanceof s && (r &= a); +return r; +}; +T.setObjProp = function(t, e, i, n) { +C(t, p + S(i) + "=", this.enumerateField(e, i, n)); +}; +T.enumerateObject = function(i, n) { +var r = n.constructor; +if (cc.Class._isCCClass(r)) this.enumerateCCClass(i, n, r); else for (var s in n) if (n.hasOwnProperty(s) && (95 !== s.charCodeAt(0) || 95 !== s.charCodeAt(1) || "__type__" === s)) { +var o = n[s]; +"object" === ("object" === (e = typeof o) ? t(o) : e) && o && o === n._iN$t || this.setObjProp(i, n, s, o); +} +}; +T.instantiateObj = function(t) { +if (t instanceof cc.ValueType) return h.getNewValueTypeCode(t); +if (t instanceof cc.Asset) return this.getObjRef(t); +if (t._objFlags & o) return null; +var e, i = t.constructor; +if (cc.Class._isCCClass(i)) { +if (this.parent) if (this.parent instanceof cc.Component) { +if (t instanceof cc._BaseNode || t instanceof cc.Component) return this.getObjRef(t); +} else if (this.parent instanceof cc._BaseNode) if (t instanceof cc._BaseNode) { +if (!t.isChildOf(this.parent)) return this.getObjRef(t); +} else if (t instanceof cc.Component && !t.node.isChildOf(this.parent)) return this.getObjRef(t); +e = new g(p, "new " + this.getFuncModule(i, !0) + "()"); +} else if (i === Object) e = new g(p, "{}"); else { +if (i) return this.getObjRef(t); +e = new g(p, "Object.create(null)"); +} +var n = [ e ]; +l.value(t, "_iN$t", { +globalVar: "", +source: n +}, !0); +this.objsToClear_iN$t.push(t); +this.enumerateObject(n, t); +return [ "(function(){", n, "return o;})();" ]; +}; +n.exports = { +compile: function(t) { +return new w(t, t instanceof cc._BaseNode && t).result; +}, +equalsToDefault: A +}; +0; +}), { +"./CCClass": 201, +"./CCObject": 207, +"./attribute": 213, +"./compiler": 215, +"./js": 221 +} ], +220: [ (function(i, n, r) { +"use strict"; +var s = i("./CCObject"), o = i("../value-types/value-type"), a = s.Flags.Destroyed, c = s.Flags.PersistentMask, l = i("./utils").isDomNode, h = i("./js"); +function u(i, n) { +if (!n) { +if ("object" !== ("object" === (e = typeof i) ? t(i) : e) || Array.isArray(i)) { +0; +return null; +} +if (!i) { +0; +return null; +} +if (!cc.isValid(i)) { +0; +return null; +} +0; +} +var r; +if (i instanceof s) { +if (i._instantiate) { +cc.game._isCloning = !0; +r = i._instantiate(); +cc.game._isCloning = !1; +return r; +} +if (i instanceof cc.Asset) { +0; +return null; +} +} +cc.game._isCloning = !0; +r = f(i); +cc.game._isCloning = !1; +return r; +} +var _ = []; +function f(t, e) { +if (Array.isArray(t)) { +0; +return null; +} +if (l && l(t)) { +0; +return null; +} +var i; +if (t._iN$t) i = t._iN$t; else if (t.constructor) { +i = new (0, t.constructor)(); +} else i = Object.create(null); +m(t, i, e); +for (var n = 0, r = _.length; n < r; ++n) _[n]._iN$t = null; +_.length = 0; +return i; +} +function d(i, n, r, s) { +for (var a = i.__values__, c = 0; c < a.length; c++) { +var l = a[c], h = n[l]; +if ("object" === ("object" === (e = typeof h) ? t(h) : e) && h) { +var u = r[l]; +u instanceof o && u.constructor === h.constructor ? u.set(h) : r[l] = h._iN$t || p(h, s); +} else r[l] = h; +} +} +function m(i, n, r) { +h.value(i, "_iN$t", n, !0); +_.push(i); +var o = i.constructor; +if (cc.Class._isCCClass(o)) d(o, i, n, r); else for (var a in i) if (i.hasOwnProperty(a) && (95 !== a.charCodeAt(0) || 95 !== a.charCodeAt(1) || "__type__" === a)) { +var l = i[a]; +if ("object" === ("object" === (e = typeof l) ? t(l) : e) && l) { +if (l === n) continue; +n[a] = l._iN$t || p(l, r); +} else n[a] = l; +} +i instanceof s && (n._objFlags &= c); +} +function p(i, n) { +if (i instanceof o) return i.clone(); +if (i instanceof cc.Asset) return i; +var r; +if (Array.isArray(i)) { +var s = i.length; +r = new Array(s); +h.value(i, "_iN$t", r, !0); +for (var c = 0; c < s; ++c) { +var l = i[c]; +"object" === ("object" === (e = typeof l) ? t(l) : e) && l ? r[c] = l._iN$t || p(l, n) : r[c] = l; +} +_.push(i); +return r; +} +if (i._objFlags & a) return null; +var u = i.constructor; +if (cc.Class._isCCClass(u)) { +if (n) if (n instanceof cc.Component) { +if (i instanceof cc._BaseNode || i instanceof cc.Component) return i; +} else if (n instanceof cc._BaseNode) if (i instanceof cc._BaseNode) { +if (!i.isChildOf(n)) return i; +} else if (i instanceof cc.Component && !i.node.isChildOf(n)) return i; +r = new u(); +} else if (u === Object) r = {}; else { +if (u) return i; +r = Object.create(null); +} +m(i, r, n); +return r; +} +u._clone = f; +cc.instantiate = u; +n.exports = u; +}), { +"../value-types/value-type": 311, +"./CCObject": 207, +"./js": 221, +"./utils": 225 +} ], +221: [ (function(i, n, r) { +"use strict"; +var s = new (i("./id-generater"))("TmpCId."); +function o(t, e) { +for (;t; ) { +var i = Object.getOwnPropertyDescriptor(t, e); +if (i) return i; +t = Object.getPrototypeOf(t); +} +return null; +} +function a(t, e, i) { +var n = o(e, t); +Object.defineProperty(i, t, n); +} +var c = { +isNumber: function(i) { +return "number" === ("object" === (e = typeof i) ? t(i) : e) || i instanceof Number; +}, +isString: function(i) { +return "string" === ("object" === (e = typeof i) ? t(i) : e) || i instanceof String; +}, +addon: function(i) { +i = i || {}; +for (var n = 1, r = arguments.length; n < r; n++) { +var s = arguments[n]; +if (s) { +if ("object" !== ("object" === (e = typeof s) ? t(s) : e)) { +cc.errorID(5402, s); +continue; +} +for (var o in s) o in i || a(o, s, i); +} +} +return i; +}, +mixin: function(i) { +i = i || {}; +for (var n = 1, r = arguments.length; n < r; n++) { +var s = arguments[n]; +if (s) { +if ("object" !== ("object" === (e = typeof s) ? t(s) : e)) { +cc.errorID(5403, s); +continue; +} +for (var o in s) a(o, s, i); +} +} +return i; +}, +extend: function(t, e) { +0; +for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); +t.prototype = Object.create(e.prototype, { +constructor: { +value: t, +writable: !0, +configurable: !0 +} +}); +return t; +}, +getSuper: function(t) { +var e = t.prototype, i = e && Object.getPrototypeOf(e); +return i && i.constructor; +}, +isChildClassOf: function(i, n) { +if (i && n) { +if ("function" !== ("object" === (e = typeof i) ? t(i) : e)) return !1; +if ("function" !== ("object" === (e = typeof n) ? t(n) : e)) { +0; +return !1; +} +if (i === n) return !0; +for (;;) { +if (!(i = c.getSuper(i))) return !1; +if (i === n) return !0; +} +} +return !1; +}, +clear: function(t) { +for (var e = Object.keys(t), i = 0; i < e.length; i++) delete t[e[i]]; +}, +isEmptyObject: function(t) { +for (var e in t) return !1; +return !0; +}, +getPropertyDescriptor: o +}, l = { +value: void 0, +enumerable: !1, +writable: !1, +configurable: !0 +}; +c.value = function(t, e, i, n, r) { +l.value = i; +l.writable = n; +l.enumerable = r; +Object.defineProperty(t, e, l); +l.value = void 0; +}; +var h = { +get: null, +set: null, +enumerable: !1 +}; +c.getset = function(i, n, r, s, o, a) { +if ("function" !== ("object" === (e = typeof s) ? t(s) : e)) { +o = s; +s = void 0; +} +h.get = r; +h.set = s; +h.enumerable = o; +h.configurable = a; +Object.defineProperty(i, n, h); +h.get = null; +h.set = null; +}; +var u = { +get: null, +enumerable: !1, +configurable: !1 +}; +c.get = function(t, e, i, n, r) { +u.get = i; +u.enumerable = n; +u.configurable = r; +Object.defineProperty(t, e, u); +u.get = null; +}; +var _ = { +set: null, +enumerable: !1, +configurable: !1 +}; +c.set = function(t, e, i, n, r) { +_.set = i; +_.enumerable = n; +_.configurable = r; +Object.defineProperty(t, e, _); +_.set = null; +}; +c.getClassName = function(i) { +if ("function" === ("object" === (e = typeof i) ? t(i) : e)) { +var n = i.prototype; +if (n && n.hasOwnProperty("__classname__") && n.__classname__) return n.__classname__; +var r = ""; +i.name && (r = i.name); +if (i.toString) { +var s, o = i.toString(); +(s = "[" === o.charAt(0) ? o.match(/\[\w+\s*(\w+)\]/) : o.match(/function\s*(\w+)/)) && 2 === s.length && (r = s[1]); +} +return "Object" !== r ? r : ""; +} +return i && i.constructor ? c.getClassName(i.constructor) : ""; +}; +(function() { +var i = {}, n = {}; +function r(t, e, i) { +c.getset(c, e, (function() { +return Object.assign({}, i); +}), (function(t) { +c.clear(i); +Object.assign(i, t); +})); +return function(e, n) { +n.prototype.hasOwnProperty(t) && delete i[n.prototype[t]]; +c.value(n.prototype, t, e); +if (e) { +var r = i[e]; +if (r && r !== n) { +var s = "A Class already exists with the same " + t + ' : "' + e + '".'; +0; +cc.error(s); +} else i[e] = n; +} +}; +} +c._setClassId = r("__cid__", "_registeredClassIds", i); +var o = r("__classname__", "_registeredClassNames", n); +c.setClassName = function(t, e) { +o(t, e); +if (!e.prototype.hasOwnProperty("__cid__")) { +var i = t || s.getNewId(); +i && c._setClassId(i, e); +} +}; +c.unregisterClass = function() { +for (var t = 0; t < arguments.length; t++) { +var e = arguments[t].prototype, r = e.__cid__; +r && delete i[r]; +var s = e.__classname__; +s && delete n[s]; +} +}; +c._getClassById = function(t) { +return i[t]; +}; +c.getClassByName = function(t) { +return n[t]; +}; +c._getClassId = function(i, n) { +n = "undefined" === ("object" === (e = typeof n) ? t(n) : e) || n; +if ("function" === ("object" === (e = typeof i) ? t(i) : e) && i.prototype.hasOwnProperty("__cid__")) { +0; +return i.prototype.__cid__; +} +if (i && i.constructor) { +var r = i.constructor.prototype; +if (r && r.hasOwnProperty("__cid__")) { +0; +return i.__cid__; +} +} +return ""; +}; +})(); +c.obsolete = function(t, e, i, n) { +var r = /([^.]+)$/, s = r.exec(e)[0], o = r.exec(i)[0]; +function a() { +0; +return this[o]; +} +n ? c.getset(t, s, a, (function(t) { +0; +this[o] = t; +})) : c.get(t, s, a); +}; +c.obsoletes = function(t, e, i, n) { +for (var r in i) { +var s = i[r]; +c.obsolete(t, e + "." + r, s, n); +} +}; +var f = /(%d)|(%s)/, d = /%s/; +c.formatStr = function() { +var i = arguments.length; +if (0 === i) return ""; +var n = arguments[0]; +if (1 === i) return "" + n; +if ("string" === ("object" === (e = typeof n) ? t(n) : e) && f.test(n)) for (var r = 1; r < i; ++r) { +var s = arguments[r], o = "number" === ("object" === (e = typeof s) ? t(s) : e) ? f : d; +o.test(n) ? n = n.replace(o, s) : n += " " + s; +} else for (var a = 1; a < i; ++a) n += " " + arguments[a]; +return n; +}; +c.shiftArguments = function() { +for (var t = arguments.length - 1, e = new Array(t), i = 0; i < t; ++i) e[i] = arguments[i + 1]; +return e; +}; +c.createMap = function(t) { +var e = Object.create(null); +if (t) { +e["."] = !0; +e["/"] = !0; +delete e["."]; +delete e["/"]; +} +return e; +}; +function m(t, e) { +t.splice(e, 1); +} +function p(t, e) { +var i = t.indexOf(e); +if (i >= 0) { +m(t, i); +return !0; +} +return !1; +} +var v = Array.prototype.indexOf; +c.array = { +remove: p, +fastRemove: function(t, e) { +var i = t.indexOf(e); +if (i >= 0) { +t[i] = t[t.length - 1]; +--t.length; +} +}, +removeAt: m, +fastRemoveAt: function(t, e) { +var i = t.length; +if (!(e < 0 || e >= i)) { +t[e] = t[i - 1]; +t.length = i - 1; +} +}, +contains: function(t, e) { +return t.indexOf(e) >= 0; +}, +verifyType: function(t, e) { +if (t && t.length > 0) for (var i = 0; i < t.length; i++) if (!(t[i] instanceof e)) { +cc.logID(1300); +return !1; +} +return !0; +}, +removeArray: function(t, e) { +for (var i = 0, n = e.length; i < n; i++) p(t, e[i]); +}, +appendObjectsAt: function(t, e, i) { +t.splice.apply(t, [ i, 0 ].concat(e)); +return t; +}, +copy: function(t) { +var e, i = t.length, n = new Array(i); +for (e = 0; e < i; e += 1) n[e] = t[e]; +return n; +}, +indexOf: v, +MutableForwardIterator: i("../utils/mutable-forward-iterator") +}; +function y(t, e) { +if (void 0 === e) { +e = t; +t = null; +} +this.get = null; +this.count = 0; +this._pool = new Array(e); +this._cleanup = t; +} +y.prototype._get = function() { +if (this.count > 0) { +--this.count; +var t = this._pool[this.count]; +this._pool[this.count] = null; +return t; +} +return null; +}; +y.prototype.put = function(t) { +var e = this._pool; +if (this.count < e.length) { +if (this._cleanup && !1 === this._cleanup(t)) return; +e[this.count] = t; +++this.count; +} +}; +y.prototype.resize = function(t) { +if (t >= 0) { +this._pool.length = t; +this.count > t && (this.count = t); +} +}; +c.Pool = y; +cc.js = c; +n.exports = c; +}), { +"../utils/mutable-forward-iterator": 298, +"./id-generater": 217 +} ], +222: [ (function(i, n, r) { +"use strict"; +var s = i("./js"), o = { +url: { +canUsedInGet: !0 +}, +default: {}, +serializable: {}, +editorOnly: {}, +formerlySerializedAs: {} +}; +function a(t, e, i, n) { +if (t.get || t.set) 0; else if (t.hasOwnProperty("default")) { +var r = "_N$" + e; +t.get = function() { +return this[r]; +}; +t.set = function(t) { +var e = this[r]; +this[r] = t; +i.call(this, e); +}; +0; +var s = {}; +n[r] = s; +for (var a in o) { +var c = o[a]; +if (t.hasOwnProperty(a)) { +s[a] = t[a]; +c.canUsedInGet || delete t[a]; +} +} +} else 0; +} +function c(t, e, i, n) { +Array.isArray(n) && n.length > 0 && (n = n[0]); +0; +t.type = n; +} +function l(t, e, i, n) { +if (Array.isArray(e)) { +if (!(e.length > 0)) return cc.errorID(5508, i, n); +if (cc.RawAsset.isRawAssetType(e[0])) { +t.url = e[0]; +delete t.type; +return; +} +t.type = e = e[0]; +} +0; +} +r.getFullFormOfProperty = function(i, n, r) { +if (!(i && i.constructor === Object)) { +if (Array.isArray(i) && i.length > 0) { +var o = i[0]; +0; +return { +default: [], +type: i, +_short: !0 +}; +} +if ("function" === ("object" === (e = typeof i) ? t(i) : e)) { +o = i; +if (!cc.RawAsset.isRawAssetType(o)) { +if (!cc.RawAsset.wasRawAssetType(o)) return { +default: s.isChildClassOf(o, cc.ValueType) ? new o() : null, +type: o, +_short: !0 +}; +0; +} +return { +default: "", +url: o, +_short: !0 +}; +} +return { +default: i, +_short: !0 +}; +} +return null; +}; +r.preprocessAttrs = function(t, e, i, n) { +for (var s in t) { +var o = t[s], h = r.getFullFormOfProperty(o, s, e); +h && (o = t[s] = h); +if (o) { +var u = o.notify; +u && a(o, s, u, t); +"type" in o && l(o, o.type, e, s); +"url" in o && c(o, 0, 0, o.url); +"type" in o && o.type; +} +} +}; +r.validateMethodWithProps = function(i, n, r, s, o) { +0; +if ("function" !== ("object" === (e = typeof i) ? t(i) : e) && null !== i) { +return !1; +} +0; +return !0; +}; +}), { +"./CCClass": 201, +"./js": 221 +} ], +223: [ (function(t, e, i) { +"use strict"; +var n = []; +cc._RF = { +push: function(t, e, i) { +if (void 0 === i) { +i = e; +e = ""; +} +n.push({ +uuid: e, +script: i, +module: t, +exports: t.exports, +beh: null +}); +}, +pop: function() { +var t = n.pop(), e = t.module, i = e.exports; +if (i === t.exports) { +for (var r in i) return; +e.exports = i = t.cls; +} +}, +peek: function() { +return n[n.length - 1]; +} +}; +0; +}), {} ], +224: [ (function(t, e, i) { +"use strict"; +cc.url = { +_rawAssets: "", +normalize: function(t) { +t && (46 === t.charCodeAt(0) && 47 === t.charCodeAt(1) ? t = t.slice(2) : 47 === t.charCodeAt(0) && (t = t.slice(1))); +return t; +}, +raw: function(t) { +0; +if ((t = this.normalize(t)).startsWith("resources/")) { +var e = cc.loader._getResUuid(t.slice(10), cc.Asset, null, !0); +if (e) return cc.AssetLibrary.getLibUrlNoExt(e, !0) + cc.path.extname(t); +} else cc.errorID(7002, t); +return this._rawAssets + t; +}, +_init: function(t) { +this._rawAssets = cc.path.stripSep(t) + "/"; +} +}; +e.exports = cc.url; +}), {} ], +225: [ (function(i, n, r) { +"use strict"; +i("./js"); +n.exports = { +contains: function(i, n) { +if ("function" == ("object" === (e = typeof i.contains) ? t(i.contains) : e)) return i.contains(n); +if ("function" == ("object" === (e = typeof i.compareDocumentPosition) ? t(i.compareDocumentPosition) : e)) return !!(16 & i.compareDocumentPosition(n)); +var r = n.parentNode; +if (r) do { +if (r === i) return !0; +r = r.parentNode; +} while (null !== r); +return !1; +}, +isDomNode: "object" === (e = typeof window, "object" === e ? t(window) : e) && ("function" === (e = typeof Node, +"object" === e ? t(Node) : e) ? function(t) { +return t instanceof Node; +} : function(i) { +return i && "object" === ("object" === (e = typeof i) ? t(i) : e) && "number" === ("object" === (e = typeof i.nodeType) ? t(i.nodeType) : e) && "string" === ("object" === (e = typeof i.nodeName) ? t(i.nodeName) : e); +}), +callInNextTick: function(t, e, i) { +t && setTimeout((function() { +t(e, i); +}), 0); +} +}; +0; +0; +}), { +"./js": 221 +} ], +226: [ (function(t, e, i) { +"use strict"; +t("./platform/js"); +t("./value-types"); +t("./utils"); +t("./platform/CCInputManager"); +t("./platform/CCInputExtension"); +t("./event"); +t("./platform/CCSys"); +t("./platform/CCMacro"); +t("./load-pipeline"); +t("./CCDirector"); +t("./renderer"); +t("./platform/CCView"); +t("./platform/CCScreen"); +t("./CCScheduler"); +t("./event-manager"); +}), { +"./CCDirector": 50, +"./CCScheduler": 55, +"./event": 135, +"./event-manager": 131, +"./load-pipeline": 155, +"./platform/CCInputExtension": 204, +"./platform/CCInputManager": 205, +"./platform/CCMacro": 206, +"./platform/CCScreen": 209, +"./platform/CCSys": 210, +"./platform/CCView": 211, +"./platform/js": 221, +"./renderer": 244, +"./utils": 294, +"./value-types": 306 +} ], +227: [ (function(t, e, i) { +"use strict"; +var n = function(t) { +var e; +try { +e = t.getContext("2d"); +} catch (t) { +console.error(t); +return; +} +this._canvas = t; +this._ctx = e; +this._caps = {}; +this._stats = { +drawcalls: 0 +}; +this._vx = this._vy = this._vw = this._vh = 0; +this._sx = this._sy = this._sw = this._sh = 0; +}; +n.prototype._restoreTexture = function(t) {}; +n.prototype.setViewport = function(t, e, i, n) { +if (this._vx !== t || this._vy !== e || this._vw !== i || this._vh !== n) { +this._vx = t; +this._vy = e; +this._vw = i; +this._vh = n; +} +}; +n.prototype.setScissor = function(t, e, i, n) { +if (this._sx !== t || this._sy !== e || this._sw !== i || this._sh !== n) { +this._sx = t; +this._sy = e; +this._sw = i; +this._sh = n; +} +}; +n.prototype.clear = function(t) { +var e = this._ctx; +e.clearRect(this._vx, this._vy, this._vw, this._vh); +if (t && (0 !== t[0] || 0 !== t[1] || 0 !== t[2])) { +e.fillStyle = "rgb(" + t[0] + "," + t[1] + "," + t[2] + ")"; +e.globalAlpha = t[3]; +e.fillRect(this._vx, this._vy, this._vw, this._vh); +} +}; +e.exports = n; +}), {} ], +228: [ (function(t, e, i) { +"use strict"; +var n = function(t, e) { +this._device = t; +this._width = 4; +this._height = 4; +this._image = null; +if (e) { +void 0 !== e.width && (this._width = e.width); +void 0 !== e.height && (this._height = e.height); +this.updateImage(e); +} +}; +n.prototype.update = function(t) { +this.updateImage(t); +}; +n.prototype.updateImage = function(t) { +if (t.images && t.images[0]) { +var e = t.images[0]; +e && e !== this._image && (this._image = e); +} +}; +n.prototype.destroy = function() { +this._image = null; +}; +e.exports = n; +}), {} ], +229: [ (function(t, e, i) { +"use strict"; +var n = function() {}; +n.prototype = { +constructor: n, +clear: function() {}, +render: function() {} +}; +e.exports = n; +}), {} ], +230: [ (function(t, e, i) { +"use strict"; +e.exports = { +ForwardRenderer: t("./forward-renderer"), +RenderComponentHandle: t("./render-component-handle"), +_renderers: t("./renderers") +}; +}), { +"./forward-renderer": 229, +"./render-component-handle": 231, +"./renderers": 234 +} ], +231: [ (function(t, e, i) { +"use strict"; +t("./renderers"); +var n = t("./renderers/utils"), r = function(t, e) { +this._device = t; +this._camera = e; +this.parentOpacity = 1; +this.parentOpacityDirty = 0; +this.worldMatDirty = 0; +this.walking = !1; +}; +r.prototype = { +constructor: r, +reset: function() { +var t = this._device._ctx, e = this._device._canvas, i = cc.Camera.main ? cc.Camera.main.backgroundColor : cc.color(), r = "rgba(" + i.r + ", " + i.g + ", " + i.b + ", " + i.a / 255 + ")"; +t.fillStyle = r; +t.setTransform(1, 0, 0, 1, 0, 0); +t.clearRect(0, 0, e.width, e.height); +t.fillRect(0, 0, e.width, e.height); +this._device._stats.drawcalls = 0; +n.context.reset(); +}, +terminate: function() {}, +_commitComp: function(t, e) { +var i = this._device._ctx, n = this._camera; +i.setTransform(n.a, n.b, n.c, n.d, n.tx, n.ty); +i.scale(1, -1); +e.draw(i, t); +} +}; +e.exports = r; +}), { +"./renderers": 234, +"./renderers/utils": 243 +} ], +232: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../graphics/helper"), r = t("../../../../graphics/types"), s = t("../../../../platform/js"), o = (r.PointFlags, +r.LineJoin), a = r.LineCap; +function c() { +this.cmds = []; +this.style = { +strokeStyle: "black", +fillStyle: "white", +lineCap: "butt", +lineJoin: "miter", +miterLimit: 10 +}; +} +var l = c.prototype; +s.mixin(l, { +moveTo: function(t, e) { +this.cmds.push([ "moveTo", [ t, e ] ]); +}, +lineTo: function(t, e) { +this.cmds.push([ "lineTo", [ t, e ] ]); +}, +bezierCurveTo: function(t, e, i, n, r, s) { +this.cmds.push([ "bezierCurveTo", [ t, e, i, n, r, s ] ]); +}, +quadraticCurveTo: function(t, e, i, n) { +this.cmds.push([ "quadraticCurveTo", [ t, e, i, n ] ]); +}, +arc: function(t, e, i, r, s, o) { +n.arc(this, t, e, i, r, s, o); +}, +ellipse: function(t, e, i, r) { +n.ellipse(this, t, e, i, r); +}, +circle: function(t, e, i) { +n.ellipse(this, t, e, i, i); +}, +rect: function(t, e, i, n) { +this.moveTo(t, e); +this.lineTo(t, e + n); +this.lineTo(t + i, e + n); +this.lineTo(t + i, e); +this.close(); +}, +roundRect: function(t, e, i, r, s) { +n.roundRect(this, t, e, i, r, s); +}, +clear: function(t, e) { +this.cmds.length = 0; +}, +close: function() { +this.cmds.push([ "closePath", [] ]); +}, +stroke: function() { +this.cmds.push([ "stroke", [] ]); +}, +fill: function() { +this.cmds.push([ "fill", [] ]); +} +}); +s.set(l, "strokeColor", (function(t) { +var e = "rgba(" + (0 | t.r) + "," + (0 | t.g) + "," + (0 | t.b) + "," + t.a / 255 + ")"; +this.cmds.push([ "strokeStyle", e ]); +this.style.strokeStyle = e; +})); +s.set(l, "fillColor", (function(t) { +var e = "rgba(" + (0 | t.r) + "," + (0 | t.g) + "," + (0 | t.b) + "," + t.a / 255 + ")"; +this.cmds.push([ "fillStyle", e ]); +this.style.fillStyle = e; +})); +s.set(l, "lineWidth", (function(t) { +this.cmds.push([ "lineWidth", t ]); +this.style.lineWidth = t; +})); +s.set(l, "lineCap", (function(t) { +var e = "butt"; +t === a.BUTT ? e = "butt" : t === a.ROUND ? e = "round" : t === a.SQUARE && (e = "square"); +this.cmds.push([ "lineCap", e ]); +this.style.lineCap = e; +})); +s.set(l, "lineJoin", (function(t) { +var e = "bevel"; +t === o.BEVEL ? e = "bevel" : t === o.ROUND ? e = "round" : t === o.MITER && (e = "miter"); +this.cmds.push([ "lineJoin", e ]); +this.style.lineJoin = e; +})); +s.set(l, "miterLimit", (function(t) { +this.cmds.push([ "miterLimit", t ]); +this.style.miterLimit = t; +})); +e.exports = c; +}), { +"../../../../graphics/helper": 143, +"../../../../graphics/types": 145, +"../../../../platform/js": 221 +} ], +233: [ (function(i, n, r) { +"use strict"; +var s = i("./impl"); +n.exports = { +createImpl: function() { +return new s(); +}, +draw: function(i, n) { +var r = n.node, s = r._worldMatrix, o = s.m00, a = s.m01, c = s.m04, l = s.m05, h = s.m12, u = s.m13; +i.transform(o, a, c, l, h, u); +i.save(); +i.globalAlpha = r.opacity / 255; +var _ = n._impl.style; +i.strokeStyle = _.strokeStyle; +i.fillStyle = _.fillStyle; +i.lineWidth = _.lineWidth; +i.lineJoin = _.lineJoin; +i.miterLimit = _.miterLimit; +for (var f = !0, d = n._impl.cmds, m = 0, p = d.length; m < p; m++) { +var v = d[m], y = v[0], g = v[1]; +if ("moveTo" === y && f) { +i.beginPath(); +f = !1; +} else "fill" !== y && "stroke" !== y && "fillRect" !== y || (f = !0); +"function" === ("object" === (e = typeof i[y]) ? t(i[y]) : e) ? i[y].apply(i, g) : i[y] = g; +} +i.restore(); +return 1; +}, +stroke: function(t) { +t._impl.stroke(); +}, +fill: function(t) { +t._impl.fill(); +} +}; +}), { +"./impl": 232 +} ], +234: [ (function(t, e, i) { +"use strict"; +var n = t("../../../platform/js"), r = t("../../../components/CCSprite"), s = t("../../../components/CCLabel"), o = t("../../../components/CCMask"), a = t("../../../graphics/graphics"), c = t("./sprite"), l = t("./label"), h = t("./graphics"), u = t("./mask"), _ = {}, f = {}; +function d(t, e, i) { +var r = n.getClassName(t); +_[r] = e; +i && (f[r] = i); +t._assembler = e; +t._postAssembler = i; +} +d(r, c); +d(s, l); +o && d(o, u.beforeHandler, u.afterHandler); +a && d(a, h); +e.exports = { +map: _, +postMap: f, +addRenderer: d +}; +}), { +"../../../components/CCLabel": 97, +"../../../components/CCMask": 101, +"../../../components/CCSprite": 111, +"../../../graphics/graphics": 142, +"../../../platform/js": 221, +"./graphics": 233, +"./label": 236, +"./mask": 238, +"./sprite": 239 +} ], +235: [ (function(t, e, i) { +"use strict"; +var n = t("../../../utils/label/bmfont"), r = t("../../../../platform/js"), s = t("../utils"); +e.exports = r.addon({ +createData: function(t) { +return t.requestRenderData(); +}, +appendQuad: function(t, e, i, n, r, s, o) { +var a = t.dataLength; +t.dataLength += 2; +var c = t._data, l = (e.width, e.height, i.width), h = i.height, u = void 0, _ = void 0, f = void 0, d = void 0; +if (n) { +u = i.x; +f = i.x + h; +_ = i.y; +d = i.y + l; +c[a].u = u; +c[a].v = d; +c[a + 1].u = u; +c[a + 1].v = _; +} else { +u = i.x; +f = i.x + l; +_ = i.y; +d = i.y + h; +c[a].u = u; +c[a].v = _; +c[a + 1].u = f; +c[a + 1].v = d; +} +c[a].x = r; +c[a].y = s - h * o; +c[a + 1].x = r + l * o; +c[a + 1].y = s; +}, +draw: function(t, e) { +var i = e.node, n = i._worldMatrix, r = n.m00, o = n.m01, a = n.m04, c = n.m05, l = n.m12, h = n.m13; +t.transform(r, o, a, c, l, h); +t.scale(1, -1); +s.context.setGlobalAlpha(t, i.opacity / 255); +for (var u = e._frame._texture, _ = e._renderData._data, f = s.getColorizedImage(u, i._color), d = 0, m = _.length; d < m; d += 2) { +var p = _[d].x, v = _[d].y, y = _[d + 1].x - p, g = _[d + 1].y - v; +v = -v - g; +var x = _[d].u, C = _[d].v, b = _[d + 1].u - x, A = _[d + 1].v - C; +t.drawImage(f, x, C, b, A, p, v, y, g); +} +return 1; +} +}, n); +}), { +"../../../../platform/js": 221, +"../../../utils/label/bmfont": 248, +"../utils": 243 +} ], +236: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../components/CCLabel"), r = t("./ttf"), s = t("./bmfont"), o = { +pool: [], +get: function() { +var t = this.pool.pop(); +if (!t) { +var e = document.createElement("canvas"); +t = { +canvas: e, +context: e.getContext("2d") +}; +} +return t; +}, +put: function(t) { +this.pool.length >= 32 || this.pool.push(t); +} +}; +n._canvasPool = o; +e.exports = { +getAssembler: function(t) { +var e = r; +t.font instanceof cc.BitmapFont && (e = s); +return e; +}, +createData: function(t) { +return t._assembler.createData(t); +}, +draw: function(t, e) { +if (!e._texture) return 0; +var i = e._assembler; +if (!i) return 0; +i.updateRenderData(e); +return i.draw(t, e); +} +}; +}), { +"../../../../components/CCLabel": 97, +"./bmfont": 235, +"./ttf": 237 +} ], +237: [ (function(t, e, i) { +"use strict"; +var n = t("../../../utils/label/ttf"), r = t("../../../../platform/js"), s = t("../utils"); +e.exports = r.addon({ +createData: function(t) { +var e = t.requestRenderData(); +e.dataLength = 2; +return e; +}, +_updateVerts: function(t) { +var e = t._renderData, i = t.node, n = i.width, r = i.height, s = i.anchorX * n, o = i.anchorY * r, a = e._data; +a[0].x = -s; +a[0].y = -o; +a[1].x = n - s; +a[1].y = r - o; +}, +_updateTexture: function(t) { +n._updateTexture(t); +var e = t._frame._texture; +s.dropColorizedImage(e, t.node.color); +}, +draw: function(t, e) { +var i = e.node, n = i._worldMatrix, r = n.m00, o = n.m01, a = n.m04, c = n.m05, l = n.m12, h = n.m13; +t.transform(r, o, a, c, l, h); +t.scale(1, -1); +s.context.setGlobalAlpha(t, i.opacity / 255); +var u = e._frame._texture, _ = e._renderData._data, f = u.getHtmlElementObj(), d = _[0].x, m = _[0].y, p = _[1].x - d, v = _[1].y - m; +m = -m - v; +t.drawImage(f, d, m, p, v); +return 1; +} +}, n); +}), { +"../../../../platform/js": 221, +"../../../utils/label/ttf": 251, +"../utils": 243 +} ], +238: [ (function(t, e, i) { +"use strict"; +t("../../../components/CCMask"); +var n = t("./graphics"), r = { +updateRenderData: function(t) {}, +draw: function(t, e) { +t.save(); +n.draw(t, e._graphics); +t.clip(); +} +}; +e.exports = { +beforeHandler: r, +afterHandler: { +updateRenderData: function(t) {}, +draw: function(t, e) { +t.restore(); +} +} +}; +}), { +"../../../components/CCMask": 101, +"./graphics": 233 +} ], +239: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../components/CCSprite"), r = n.Type, s = n.FillType, o = t("./simple"), a = t("./sliced"), c = t("./tiled"); +0; +e.exports = { +getAssembler: function(t) { +switch (t.type) { +case r.SIMPLE: +return o; + +case r.SLICED: +return a; + +case r.TILED: +return c; + +case r.FILLED: +return t._fillType, s.RADIAL, null; +} +}, +createData: function(t) { +return t._assembler.createData(t); +} +}; +}), { +"../../../../components/CCSprite": 111, +"../../../webgl/assemblers/sprite/index.js": 278, +"./simple": 240, +"./sliced": 241, +"./tiled": 242 +} ], +240: [ (function(t, e, i) { +"use strict"; +var n = t("../utils"), r = { +createData: function(t) { +var e = t.requestRenderData(); +e.dataLength = 2; +return e; +}, +updateRenderData: function(t) { +t._material || t._activateMaterial(); +var e = t._renderData; +e.uvDirty && this.updateUVs(t); +e.vertDirty && this.updateVerts(t); +}, +updateUVs: function(t) { +var e = t.spriteFrame, i = t._renderData, n = i._data, r = e._rect; +e._texture; +if (e._rotated) { +var s = r.x, o = r.width, a = r.y, c = r.height; +n[0].u = s; +n[0].v = a; +n[1].u = c; +n[1].v = o; +} else { +var l = r.x, h = r.width, u = r.y, _ = r.height; +n[0].u = l; +n[0].v = u; +n[1].u = h; +n[1].v = _; +} +i.uvDirty = !1; +}, +updateVerts: function(t) { +var e = t._renderData, i = t.node, n = t.spriteFrame, r = e._data, s = i.width, o = i.height, a = i.anchorX * s, c = i.anchorY * o, l = void 0, h = void 0, u = void 0, _ = void 0; +if (t.trim) { +l = -a; +h = -c; +u = s; +_ = o; +} else { +var f = n._originalSize.width, d = n._originalSize.height, m = n._rect.width, p = n._rect.height, v = n._offset, y = s / f, g = o / d, x = v.x + (f - m) / 2, C = (v.x, +v.y + (d - p) / 2); +v.y; +l = x * y - a; +h = C * g - c; +u = s; +_ = o; +} +if (n._rotated) { +r[0].y = l; +r[0].x = h; +r[1].y = u; +r[1].x = _; +} else { +r[0].x = l; +r[0].y = h; +r[1].x = u; +r[1].y = _; +} +e.vertDirty = !1; +}, +draw: function(t, e) { +var i = e.node, r = e._spriteFrame, s = i._worldMatrix, o = s.m00, a = s.m01, c = s.m04, l = s.m05, h = s.m12, u = s.m13; +t.transform(o, a, c, l, h, u); +t.scale(1, -1); +r._rotated && t.rotate(-Math.PI / 2); +n.context.setGlobalAlpha(t, i.opacity / 255); +var _ = r._texture, f = e._renderData._data, d = n.getColorizedImage(_, i._color), m = f[0].x, p = f[0].y, v = f[1].x, y = f[1].y; +p = -p - y; +var g = f[0].u, x = f[0].v, C = f[1].u, b = f[1].v; +t.drawImage(d, g, x, C, b, m, p, v, y); +return 1; +} +}; +e.exports = r; +}), { +"../utils": 243 +} ], +241: [ (function(t, e, i) { +"use strict"; +var n = t("../utils"), r = { +createData: function(t) { +var e = t.requestRenderData(); +e.dataLength = 4; +return e; +}, +updateRenderData: t("./simple").updateRenderData, +updateUVs: function(t) { +var e = t.spriteFrame, i = t._renderData, n = e._rect, r = (e._texture, e.insetLeft), s = e.insetRight, o = n.width - r - s, a = e.insetTop, c = e.insetBottom, l = n.height - a - c, h = i._data; +if (e._rotated) { +h[0].u = n.x; +h[1].u = c + n.x; +h[2].u = c + l + n.x; +h[3].u = n.x + n.height; +h[3].v = n.y; +h[2].v = r + n.y; +h[1].v = r + o + n.y; +h[0].v = n.y + n.width; +} else { +h[0].u = n.x; +h[1].u = r + n.x; +h[2].u = r + o + n.x; +h[3].u = n.x + n.width; +h[3].v = n.y; +h[2].v = a + n.y; +h[1].v = a + l + n.y; +h[0].v = n.y + n.height; +} +i.uvDirty = !1; +}, +updateVerts: function(t) { +var e = t._renderData, i = e._data, n = t.node, r = n.width, s = n.height, o = n.anchorX * r, a = n.anchorY * s, c = t.spriteFrame, l = (c._rect, +c.insetLeft), h = c.insetRight, u = c.insetTop, _ = c.insetBottom, f = r - l - h, d = s - u - _, m = r / (l + h), p = s / (u + _); +m = isNaN(m) || m > 1 ? 1 : m; +p = isNaN(p) || p > 1 ? 1 : p; +f = f < 0 ? 0 : f; +d = d < 0 ? 0 : d; +if (c._rotated) { +i[0].y = -o; +i[0].x = -a; +i[1].y = h * m - o; +i[1].x = _ * p - a; +i[2].y = i[1].y + f; +i[2].x = i[1].x + d; +i[3].y = r - o; +i[3].x = s - a; +} else { +i[0].x = -o; +i[0].y = -a; +i[1].x = l * m - o; +i[1].y = _ * p - a; +i[2].x = i[1].x + f; +i[2].y = i[1].y + d; +i[3].x = r - o; +i[3].y = s - a; +} +e.vertDirty = !1; +}, +draw: function(t, e) { +var i = e.node, r = e._spriteFrame, s = i._worldMatrix, o = s.m00, a = s.m01, c = s.m04, l = s.m05, h = s.m12, u = s.m13; +t.transform(o, a, c, l, h, u); +t.scale(1, -1); +r._rotated && t.rotate(-Math.PI / 2); +n.context.setGlobalAlpha(t, i.opacity / 255); +for (var _ = r._texture, f = e._renderData._data, d = n.getColorizedImage(_, i._color), m = 0, p = void 0, v = void 0, y = void 0, g = void 0, x = void 0, C = void 0, b = void 0, A = void 0, S = void 0, w = void 0, T = void 0, E = void 0, M = 0; M < 3; ++M) { +g = f[M]; +y = f[M + 1]; +for (var B = 0; B < 3; ++B) { +p = f[B]; +v = f[B + 1]; +x = p.x; +C = g.y; +b = v.x - x; +C = -C - (A = y.y - C); +S = p.u; +w = y.v; +T = v.u - S; +E = g.v - w; +if (T > 0 && E > 0 && b > 0 && A > 0) { +t.drawImage(d, S, w, T, E, x, C, b, A); +m++; +} +} +} +return m; +} +}; +e.exports = r; +}), { +"../utils": 243, +"./simple": 240 +} ], +242: [ (function(t, e, i) { +"use strict"; +var n = t("../utils"), r = { +createData: function(t) { +return t.requestRenderData(); +}, +updateRenderData: function(t) { +t._material || t._activateMaterial(); +}, +draw: function(t, e) { +var i = e.node, r = i._worldMatrix, s = r.m00, o = r.m01, a = r.m04, c = r.m05, l = r.m12, h = r.m13; +t.transform(s, o, a, c, l, h); +t.scale(1, -1); +n.context.setGlobalAlpha(t, i.opacity / 255); +var u = e.spriteFrame, _ = u._rect, f = u._texture, d = _.x, m = _.y, p = u._rotated ? _.height : _.width, v = u._rotated ? _.width : _.height, y = n.getFrameCache(f, i._color, d, m, p, v), g = i.width, x = i.height, C = -i.anchorX * g, b = -i.anchorY * x; +b = -b - x; +t.translate(C, b); +t.fillStyle = t.createPattern(y, "repeat"); +t.fillRect(0, 0, g, x); +return 1; +} +}; +e.exports = r; +}), { +"../utils": 243 +} ], +243: [ (function(t, e, i) { +"use strict"; +function n(t, e, i, n, r, s, o) { +var a = e._image, c = t.getContext("2d"); +t.width = s; +t.height = o; +c.globalCompositeOperation = "source-over"; +c.fillStyle = "rgb(" + i.r + "," + i.g + "," + i.b + ")"; +c.fillRect(0, 0, s, o); +c.globalCompositeOperation = "multiply"; +c.drawImage(a, n, r, s, o, 0, 0, s, o); +c.globalCompositeOperation = "destination-atop"; +c.drawImage(a, n, r, s, o, 0, 0, s, o); +return t; +} +var r = { +canvasMap: {}, +canvasUsed: {}, +canvasPool: [], +checking: !1, +check: function() { +var t = !1; +for (var e in this.canvasUsed) { +t = !0; +if (this.canvasUsed[e]) this.canvasUsed[e] = !1; else { +var i = this.canvasMap[e]; +i.width = 0; +i.height = 0; +this.canvasPool.length < 32 && this.canvasPool.push(i); +delete this.canvasMap[e]; +delete this.canvasUsed[e]; +} +} +if (!t) { +cc.director.off(cc.Director.EVENT_AFTER_DRAW, this.check, this); +this.checking = !1; +} +}, +startCheck: function() { +cc.director.on(cc.Director.EVENT_AFTER_DRAW, this.check, this); +this.checking = !0; +}, +getCanvas: function(t) { +this.canvasUsed[t] = !0; +return this.canvasMap[t]; +}, +cacheCanvas: function(t, e) { +this.canvasMap[e] = t; +this.canvasUsed[e] = !0; +this.checking || this.startCheck(); +}, +dropImage: function(t) { +this.canvasMap[t] && delete this.canvasMap[t]; +} +}; +e.exports = { +getColorizedImage: function(t, e) { +if (!t) return null; +if (0 === t.width || 0 === t.height) return t._image; +var i = 16777215 & e._val; +if (16777215 === i) return t._image; +var s = t.url + i, o = r.getCanvas(s); +if (!o) { +n(o = r.canvasPool.pop() || document.createElement("canvas"), t, e, 0, 0, t.width, t.height); +r.cacheCanvas(o, s); +} +return o; +}, +getFrameCache: function(t, e, i, s, o, a) { +if (!t || !t.url || i < 0 || s < 0 || o <= 0 || a <= 0) return null; +var c = t.url, l = !1, h = 16777215 & e._val; +if (16777215 !== h) { +c += h; +l = !0; +} +if (0 !== i || 0 !== s && o !== t.width && a !== t.height) { +c += "_" + i + "_" + s + "_" + o + "_" + a; +l = !0; +} +if (!l) return t._image; +var u = r.getCanvas(c); +if (!u) { +n(u = r.canvasPool.pop() || document.createElement("canvas"), t, e, i, s, o, a); +r.cacheCanvas(u, c); +} +return u; +}, +dropColorizedImage: function(t, e) { +var i = t.url + (16777215 & e._val); +r.dropImage(i); +} +}; +var s = -1, o = { +setGlobalAlpha: function(t, e) { +if (s !== e) { +s = e; +t.globalAlpha = s; +} +}, +reset: function() { +s = -1; +} +}; +e.exports.context = o; +}), {} ], +244: [ (function(t, e, i) { +"use strict"; +var n = h(t("../../renderer/renderers/forward-renderer")), r = h(t("../../renderer/config")), s = h(t("../../renderer/gfx")), o = h(t("../../renderer/scene/scene")), a = h(t("../../renderer/core/input-assembler")), c = h(t("../../renderer/render-data/ia-render-data")), l = h(t("../../renderer/core/pass")); +function h(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var u = t("./render-flow"); +function _(t) { +return { +defaultTexture: new s.default.Texture2D(t, { +images: [], +width: 128, +height: 128, +wrapS: s.default.WRAP_REPEAT, +wrapT: s.default.WRAP_REPEAT, +format: s.default.TEXTURE_FMT_RGB8, +mipmap: !1 +}) +}; +} +cc.renderer = e.exports = { +Texture2D: null, +InputAssembler: a.default, +IARenderData: c.default, +Pass: l.default, +renderEngine: null, +canvas: null, +device: null, +scene: null, +drawCalls: 0, +_handle: null, +_cameraNode: null, +_camera: null, +_forward: null, +initWebGL: function(e, i) { +t("./webgl/assemblers"); +var a = t("./webgl/model-batcher"); +this.Texture2D = s.default.Texture2D; +this.canvas = e; +this.device = new s.default.Device(e, i); +this.scene = new o.default(); +this._handle = new a(this.device, this.scene); +u.init(this._handle); +var c = _(this.device); +this._forward = new n.default(this.device, c); +r.default.addStage("shadowcast"); +r.default.addStage("opaque"); +r.default.addStage("transparent"); +}, +initCanvas: function(e) { +var i = t("./canvas"), n = t("./canvas/Texture2D"), r = t("./canvas/Device"); +this.Device = r; +this.Texture2D = n; +this.canvas = e; +this.device = new r(e); +this._camera = { +a: 1, +b: 0, +c: 0, +d: 1, +tx: 0, +ty: 0 +}; +this._handle = new i.RenderComponentHandle(this.device, this._camera); +u.init(this._handle); +this._forward = new i.ForwardRenderer(); +}, +updateCameraViewport: function() { +if (cc.director) { +var t = cc.director.getScene(); +t && t.setScale(1, 1, 1); +} +if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) { +var e = cc.view.getViewportRect(); +this.device.setViewport(e.x, e.y, e.width, e.height); +this._camera.a = cc.view.getScaleX(); +this._camera.d = cc.view.getScaleY(); +this._camera.tx = e.x; +this._camera.ty = e.y + e.height; +} +}, +render: function(t) { +this.device._stats.drawcalls = 0; +if (t) { +u.visit(t); +this._forward.render(this.scene); +this.drawCalls = this.device._stats.drawcalls; +} +}, +clear: function() { +this._handle.reset(); +this._forward.clear(); +} +}; +}), { +"../../renderer/config": 336, +"../../renderer/core/input-assembler": 339, +"../../renderer/core/pass": 340, +"../../renderer/gfx": 349, +"../../renderer/render-data/ia-render-data": 368, +"../../renderer/renderers/forward-renderer": 370, +"../../renderer/scene/scene": 374, +"./canvas": 230, +"./canvas/Device": 227, +"./canvas/Texture2D": 228, +"./render-flow": 245, +"./webgl/assemblers": 256, +"./webgl/model-batcher": 281 +} ], +245: [ (function(t, e, i) { +"use strict"; +var n = 0, r = 1, s = 2, o = r | s, a = 4, c = 8, l = 16, h = 32, u = 64, _ = 128, f = 256, d = 512, m = void 0; +function p() { +this._func = b; +this._next = null; +} +var v = p.prototype; +v._doNothing = function() {}; +v._localTransform = function(t) { +t._updateLocalMatrix(); +t._renderFlag &= ~r; +this._next._func(t); +}; +v._worldTransform = function(t) { +m.worldMatDirty++; +var e = t._matrix, i = t._position; +e.m12 = i.x; +e.m13 = i.y; +e.m14 = i.z; +t._mulMat(t._worldMatrix, t._parent._worldMatrix, e); +t._renderFlag &= ~s; +this._next._func(t); +m.worldMatDirty--; +}; +v._opacity = function(t) { +m.parentOpacityDirty++; +var e = t._renderComponent; +e && e._updateColor && e._updateColor(); +t._renderFlag &= ~c; +this._next._func(t); +m.parentOpacityDirty--; +}; +v._updateRenderData = function(t) { +var e = t._renderComponent; +e._assembler.updateRenderData(e); +t._renderFlag &= ~a; +this._next._func(t); +}; +v._render = function(t) { +var e = t._renderComponent; +m._commitComp(e, e._assembler, t._cullingMask); +this._next._func(t); +}; +v._customIARender = function(t) { +var e = t._renderComponent; +m._commitIA(e, e._assembler, t._cullingMask); +this._next._func(t); +}; +v._children = function(t) { +for (var e = m, i = e.parentOpacity, n = e.parentOpacity *= t._opacity / 255, r = (e.worldMatDirty ? s : 0) | (e.parentOpacityDirty ? c : 0), o = t._children, a = 0, l = o.length; a < l; a++) { +var h = o[a]; +h._renderFlag |= r; +if (h._activeInHierarchy && 0 !== h._opacity) { +var u = h._color._val; +h._color._fastSetA(h._opacity * n); +g[h._renderFlag]._func(h); +h._color._val = u; +} +} +e.parentOpacity = i; +this._next._func(t); +}; +v._postUpdateRenderData = function(t) { +var e = t._renderComponent; +e._postAssembler && e._postAssembler.updateRenderData(e); +t._renderFlag &= ~_; +this._next._func(t); +}; +v._postRender = function(t) { +var e = t._renderComponent; +m._commitComp(e, e._postAssembler, t._cullingMask); +this._next._func(t); +}; +var y = new p(); +y._func = y._doNothing; +y._next = y; +var g = {}; +function x(t, e) { +var i = new p(); +i._next = e || y; +switch (t) { +case n: +i._func = i._doNothing; +break; + +case r: +i._func = i._localTransform; +break; + +case s: +i._func = i._worldTransform; +break; + +case c: +i._func = i._opacity; +break; + +case a: +i._func = i._updateRenderData; +break; + +case l: +i._func = i._render; +break; + +case h: +i._func = i._customIARender; +break; + +case u: +i._func = i._children; +break; + +case _: +i._func = i._postUpdateRenderData; +break; + +case f: +i._func = i._postRender; +} +return i; +} +function C(t) { +for (var e = null, i = d; i > 0; ) { +i & t && (e = x(i, e)); +i >>= 1; +} +return e; +} +function b(t) { +var e = t._renderFlag; +(g[e] = C(e))._func(t); +} +p.flows = g; +p.createFlow = x; +p.visit = function(t) { +m.reset(); +m.walking = !0; +1 << t.groupIndex; +if (t._renderFlag & s) { +m.worldMatDirty++; +t._calculWorldMatrix(); +t._renderFlag &= ~s; +g[t._renderFlag]._func(t); +m.worldMatDirty--; +} else g[t._renderFlag]._func(t); +m.terminate(); +m.walking = !1; +}; +p.init = function(t) { +m = t; +g[0] = y; +for (var e = 1; e < d; e++) g[e] = new p(); +}; +p.FLAG_DONOTHING = n; +p.FLAG_LOCAL_TRANSFORM = r; +p.FLAG_WORLD_TRANSFORM = s; +p.FLAG_TRANSFORM = o; +p.FLAG_OPACITY = c; +p.FLAG_UPDATE_RENDER_DATA = a; +p.FLAG_RENDER = l; +p.FLAG_CUSTOM_IA_RENDER = h; +p.FLAG_CHILDREN = u; +p.FLAG_POST_UPDATE_RENDER_DATA = _; +p.FLAG_POST_RENDER = f; +p.FLAG_FINAL = d; +e.exports = cc.RenderFlow = p; +}), {} ], +246: [ (function(t, e, i) { +"use strict"; +var n = t("../../../assets/CCRenderTexture"), r = 2; +function s(t, e) { +var i = new n(); +i.initWithSize(t, e); +i.update(); +this._texture = i; +this._x = r; +this._y = r; +this._nexty = r; +this._width = t; +this._height = e; +this._innerTextureInfos = {}; +this._innerSpriteFrames = []; +} +s.DEFAULT_HASH = new n()._getHash(); +cc.js.mixin(s.prototype, { +insertSpriteFrame: function(t) { +var e = t._rect, i = t._texture, n = this._innerTextureInfos[i._id], s = e.x, o = e.y; +if (n) { +s += n.x; +o += n.y; +} else { +var a = i.width, c = i.height; +if (this._x + a + r > this._width) { +this._x = r; +this._y = this._nexty; +} +this._y + c + r > this._nexty && (this._nexty = this._y + c + r); +if (this._nexty > this._height) return null; +this._texture.drawTextureAt(i, this._x - 1, this._y); +this._texture.drawTextureAt(i, this._x + 1, this._y); +this._texture.drawTextureAt(i, this._x, this._y - 1); +this._texture.drawTextureAt(i, this._x, this._y + 1); +this._texture.drawTextureAt(i, this._x, this._y); +this._innerTextureInfos[i._id] = { +x: this._x, +y: this._y, +texture: i +}; +s += this._x; +o += this._y; +this._x += a + r; +this._dirty = !0; +} +var l = { +x: s, +y: o, +texture: this._texture +}; +this._innerSpriteFrames.push(t); +return l; +}, +update: function() { +if (this._dirty) { +this._texture.update(); +this._dirty = !1; +} +}, +deleteInnerTexture: function(t) { +t && delete this._innerTextureInfos[t._id]; +}, +reset: function() { +this._x = r; +this._y = r; +this._nexty = r; +for (var t = this._innerSpriteFrames, e = 0, i = t.length; e < i; e++) { +var n = t[e]; +n.isValid && n._resetDynamicAtlasFrame(); +} +this._innerSpriteFrames.length = 0; +this._innerTextureInfos = {}; +}, +destroy: function() { +this.reset(); +this._texture.destroy(); +} +}); +e.exports = s; +}), { +"../../../assets/CCRenderTexture": 66 +} ], +247: [ (function(t, e, i) { +"use strict"; +var n = t("./atlas"), r = [], s = -1, o = 5, a = 2048, c = 8, l = 512; +function h() { +var t = r[++s]; +if (!t) { +t = new n(a, a); +r.push(t); +} +return t; +} +function u() { +f.reset(); +} +var _ = !1, f = { +Atlas: n, +get enabled() { +return _; +}, +set enabled(t) { +if (_ !== t) { +if (t) { +this.reset(); +cc.director.on(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, u); +} else cc.director.off(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, u); +_ = t; +} +}, +get maxAtlasCount() { +return o; +}, +set maxAtlasCount(t) { +o = t; +}, +get textureSize() { +return a; +}, +set textureSize(t) { +a = t; +}, +get maxFrameSize() { +return l; +}, +set maxFrameSize(t) { +l = t; +}, +get minFrameSize() { +return c; +}, +set minFrameSize(t) { +c = t; +}, +insertSpriteFrame: function(t) { +0; +if (!_ || s === o || !t || t._original) return null; +if (!t._texture.packable) return null; +var e = r[s]; +e || (e = h()); +var i = e.insertSpriteFrame(t); +return i || s === o ? i : (e = h()).insertSpriteFrame(t); +}, +reset: function() { +for (var t = 0, e = r.length; t < e; t++) r[t].destroy(); +r.length = 0; +s = -1; +}, +deleteAtlasTexture: function(t) { +if (t._original) { +var e = t._original._texture; +if (e) for (var i = 0, n = r.length; i < n; i++) r[i].deleteInnerTexture(e); +} +}, +showDebug: !1, +update: function() { +if (this.enabled) for (var t = 0; t <= s; t++) r[t].update(); +} +}; +e.exports = cc.dynamicAtlasManager = f; +}), { +"./atlas": 246 +} ], +248: [ (function(t, e, i) { +"use strict"; +var n, r = t("../../../platform/CCMacro"), s = t("../../../components/CCLabel").Overflow, o = t("../../../utils/text-utils"), a = t("../utils").shareLabelInfo, c = function() { +this.char = ""; +this.valid = !0; +this.x = 0; +this.y = 0; +this.line = 0; +this.hash = ""; +}, l = cc.rect(), h = null, u = [], _ = [], f = [], d = [], m = [], p = [], v = null, y = 0, g = 0, x = 0, C = 0, b = 0, A = 1, S = null, w = cc.size(), T = "", E = 0, M = 0, B = 0, D = 0, I = 0, P = 0, R = 0, L = !1, F = 0, O = 0, V = 0; +e.exports = ((n = { +updateRenderData: function(t) { +if (t._renderData.vertDirty && h !== t) { +h = t; +this._updateFontFamily(t); +this._updateProperties(t); +this._updateLabelInfo(t); +this._updateContent(); +h._actualFontSize = E; +h.node.setContentSize(w); +h._renderData.vertDirty = h._renderData.uvDirty = !1; +h = null; +this._resetProperties(); +} +}, +_updateFontScale: function() { +A = E / M; +}, +_updateFontFamily: function(t) { +var e = t.font; +S = e.spriteFrame; +v = e._fntConfig; +a.fontAtlas = e._fontDefDictionary; +}, +_updateLabelInfo: function() { +a.hash = ""; +a.margin = 0; +}, +_updateProperties: function(t) { +T = t.string.toString(); +E = t.fontSize; +M = v ? v.fontSize : t.fontSize; +B = t.horizontalAlign; +D = t.verticalAlign; +I = t.spacingX; +R = t.overflow; +P = t._lineHeight; +w.width = h.node.width; +w.height = h.node.height; +if (R === s.NONE) { +L = !1; +w.width += 2 * a.margin; +w.height += 2 * a.margin; +} else if (R === s.RESIZE_HEIGHT) { +L = !0; +w.height += 2 * a.margin; +} else L = t.enableWrapText; +a.lineHeight = P; +a.fontSize = E; +this._setupBMFontOverflowMetrics(); +}, +_resetProperties: function() { +v = null; +S = null; +a.hash = ""; +a.margin = 0; +}, +_updateContent: function() { +this._updateFontScale(); +this._computeHorizontalKerningForText(); +this._computeVerticalKerningForText(); +this._alignText(); +}, +_computeHorizontalKerningForText: function() { +for (var t = T, e = t.length, i = v.kerningDict, n = u, r = -1, s = 0; s < e; ++s) { +var o = t.charCodeAt(s), a = i[r << 16 | 65535 & o] || 0; +n[s] = s < e - 1 ? a : 0; +r = o; +} +}, +_computeVerticalKerningForText: function() { +var t = T, e = t.length; +if (v && v.kerningVDict) for (var i = v.kerningVDict, n = _, r = f, s = -1, o = 0; o < e; ++o) { +var a = t.charCodeAt(o), c = i[s << 16 | 65535 & a] || 0, l = i[a << 16 | 65535 & s] || 0; +if (o < e - 1) { +n[o] = c; +r[o] = l; +} else { +n[o] = 0; +r[o] = 0; +} +s = a; +} +}, +_multilineTextWrap: function(t) { +for (var e = T.length, i = 0, n = 0, r = 0, s = 0, c = 0, l = 0, h = 0, d = null, p = cc.v2(0, 0), x = 0; x < e; ) { +var S = T.charAt(x); +if ("\n" !== S) { +for (var E = t(T, x, e), M = l, B = h, D = c, R = n, N = !1, k = 0; k < E; ++k) { +var z = x + k; +if ("\r" !== (S = T.charAt(z))) if (d = a.fontAtlas.getLetterDefinitionForChar(S, a)) { +var G = R + d.offsetX * A - a.margin; +if (L && V > 0 && n > 0 && G + d.w * A > V && !o.isUnicodeSpace(S)) { +m.push(c); +c = 0; +i++; +n = 0; +r -= P * A + 0; +N = !0; +break; +} +p.x = G; +var U = 0, j = 0; +if (v && v.kerningVDict) { +z < _.length && z < e && (U = _[z] * A); +z + 1 < f.length && z < e - 1 && (j = f[z + 1] * A); +} +p.y = r - d.offsetY * A + a.margin + U + j; +this._recordLetterInfo(p, S, z, i); +z + 1 < u.length && z < e - 1 && (R += u[z + 1]); +R += d.xAdvance * A + I - 2 * a.margin; +D = p.x + d.w * A - a.margin; +M < p.y && (M = p.y); +B > p.y - d.h * A && (B = p.y - d.h * A); +} else { +this._recordPlaceholderInfo(z, S); +console.log("Can't find letter definition in texture atlas " + v.atlasName + " for letter:" + S); +} else this._recordPlaceholderInfo(z, S); +} +if (!N) { +n = R; +c = D; +l < M && (l = M); +h > B && (h = B); +s < c && (s = c); +x += E; +} +} else { +m.push(c); +c = 0; +i++; +n = 0; +r -= P * A + 0; +this._recordPlaceholderInfo(x, S); +x++; +} +} +m.push(c); +g = (y = i + 1) * P * A; +y > 1 && (g += 0 * (y - 1)); +w.width = F; +w.height = O; +F <= 0 && (w.width = parseFloat(s.toFixed(2)) + 2 * a.margin); +O <= 0 && (w.height = parseFloat(g.toFixed(2)) + 2 * a.margin); +C = w.height; +b = 0; +l > 0 && (C = w.height + l); +h < -g && (b = g + h); +return !0; +}, +_getFirstCharLen: function() { +return 1; +}, +_getFirstWordLen: function(t, e, i) { +var n = t.charAt(e); +if (o.isUnicodeCJK(n) || "\n" === n || o.isUnicodeSpace(n)) return 1; +var r = 1, s = a.fontAtlas.getLetterDefinitionForChar(n, a); +if (!s) return r; +for (var c = s.xAdvance * A + I, l = e + 1; l < i; ++l) { +n = t.charAt(l); +if (!(s = a.fontAtlas.getLetterDefinitionForChar(n, a))) break; +if (c + s.offsetX * A + s.w * A > V && !o.isUnicodeSpace(n) && V > 0) return r; +c += s.xAdvance * A + I; +if ("\n" === n || o.isUnicodeSpace(n) || o.isUnicodeCJK(n)) break; +r++; +} +return r; +}, +_multilineTextWrapByWord: function() { +return this._multilineTextWrap(this._getFirstWordLen); +}, +_multilineTextWrapByChar: function() { +return this._multilineTextWrap(this._getFirstCharLen); +}, +_recordPlaceholderInfo: function(t, e) { +if (t >= d.length) { +var i = new c(); +d.push(i); +} +d[t].char = e; +d[t].hash = e.charCodeAt(0) + a.hash; +d[t].valid = !1; +}, +_recordLetterInfo: function(t, e, i, n) { +if (i >= d.length) { +var r = new c(); +d.push(r); +} +var s = e.charCodeAt(0) + a.hash; +d[i].line = n; +d[i].char = e; +d[i].hash = s; +d[i].valid = a.fontAtlas.getLetter(s).valid; +d[i].x = t.x; +d[i].y = t.y; +}, +_alignText: function() { +g = 0; +m.length = 0; +this._multilineTextWrapByWord(); +this._computeAlignmentOffset(); +R === s.SHRINK && E > 0 && this._isVerticalClamp() && this._shrinkLabelToContentSize(this._isVerticalClamp); +this._updateQuads() || R === s.SHRINK && this._shrinkLabelToContentSize(this._isHorizontalClamp); +}, +_scaleFontSizeDown: function(t) { +var e = !0; +if (!t) { +t = .1; +e = !1; +} +E = t; +e && this._updateContent(); +}, +_shrinkLabelToContentSize: function(t) { +for (var e = E, i = 0, n = !0; t(); ) { +var r = e - ++i; +n = !1; +if (r <= 0) break; +A = r / M; +this._multilineTextWrapByWord(); +this._computeAlignmentOffset(); +} +n || e - i >= 0 && this._scaleFontSizeDown(e - i); +}, +_isVerticalClamp: function() { +return g > w.height; +}, +_isHorizontalClamp: function() { +for (var t = !1, e = 0, i = T.length; e < i; ++e) { +var n = d[e]; +if (n.valid) { +var r = a.fontAtlas.getLetter(n.hash), s = n.x + r.w * A, o = n.line; +if (F > 0) if (L) { +if (m[o] > w.width && (s > w.width || s < 0)) { +t = !0; +break; +} +} else if (s > w.width) { +t = !0; +break; +} +} +} +return t; +}, +_isHorizontalClamped: function(t, e) { +var i = m[e], n = t > w.width || t < 0; +return L ? i > w.width && n : n; +}, +_updateQuads: function() { +var t = a.fontAtlas.getTexture(), e = h.node, i = h._renderData; +i.dataLength = i.vertexCount = i.indiceCount = 0; +for (var n = w, r = e._anchorPoint.x * n.width, o = e._anchorPoint.y * n.height, c = !0, u = 0, _ = T.length; u < _; ++u) { +var f = d[u]; +if (f.valid) { +var m = a.fontAtlas.getLetter(f.hash); +l.height = m.h; +l.width = m.w; +l.x = m.u; +l.y = m.v; +var v = f.y + x; +if (O > 0) { +if (v > C) { +var y = v - C; +l.y += y; +l.height -= y; +v -= y; +} +v - m.h * A < b && R === s.CLAMP && (l.height = v < b ? 0 : v - b); +} +var g = f.line, S = f.x + m.w / 2 * A + p[g]; +if (F > 0 && this._isHorizontalClamped(S, g)) if (R === s.CLAMP) l.width = 0; else if (R === s.SHRINK) { +if (w.width > m.w) { +c = !1; +break; +} +l.width = 0; +} +if (l.height > 0 && l.width > 0) { +var E = this._determineRect(l), M = f.x + p[f.line]; +this.appendQuad(i, t, l, E, M - r, v - o, A); +} +} +} +return c; +}, +appendQuad: function(t, e, i, n, r, s, o) {}, +_determineRect: function(t) { +var e = S.isRotated(), i = S._originalSize, n = S._rect, r = S._offset, s = r.x + (i.width - n.width) / 2, o = r.y - (i.height - n.height) / 2; +if (e) { +var a = t.x; +t.x = n.x + n.height - t.y - t.height - o; +t.y = a + n.y - s; +t.y < 0 && (t.height = t.height + o); +} else { +t.x += n.x - s; +t.y += n.y + o; +} +return e; +}, +_computeAlignmentOffset: function() { +p.length = 0; +switch (B) { +case r.TextAlignment.LEFT: +for (var t = 0; t < y; ++t) p.push(0); +break; + +case r.TextAlignment.CENTER: +for (var e = 0, i = m.length; e < i; e++) p.push((w.width - m[e]) / 2); +break; + +case r.TextAlignment.RIGHT: +for (var n = 0, s = m.length; n < s; n++) p.push(w.width - m[n]); +} +x = (w.height + g) / 2; +if (D !== r.VerticalTextAlignment.TOP) { +var o = (P - M) * A; +D === r.VerticalTextAlignment.BOTTOM ? x -= o : x -= o / 2; +} +}, +_setupBMFontOverflowMetrics: function() { +var t = w.width, e = w.height; +R === s.RESIZE_HEIGHT && (e = 0); +if (R === s.NONE) { +t = 0; +e = 0; +} +F = t; +O = e; +V = t; +} +}).appendQuad = function(t, e, i, n, r, s, o) {}, n); +}), { +"../../../components/CCLabel": 97, +"../../../platform/CCMacro": 206, +"../../../utils/text-utils": 303, +"../utils": 252 +} ], +249: [ (function(t, e, i) { +"use strict"; +function n() { +this._rect = null; +this.uv = []; +this._texture = null; +this._original = null; +} +n.prototype = { +constructor: n, +getRect: function() { +return cc.rect(this._rect); +}, +setRect: function(t) { +this._rect = t; +this._texture && this._calculateUV(); +}, +_setDynamicAtlasFrame: function(t) { +if (t) { +this._original = { +_texture: this._texture, +_x: this._rect.x, +_y: this._rect.y +}; +this._texture = t.texture; +this._rect.x = t.x; +this._rect.y = t.y; +this._calculateUV(); +} +}, +_resetDynamicAtlasFrame: function() { +if (this._original) { +this._rect.x = this._original._x; +this._rect.y = this._original._y; +this._texture = this._original._texture; +this._original = null; +this._calculateUV(); +} +}, +_refreshTexture: function(t) { +this._texture = t; +this._rect = cc.rect(0, 0, t.width, t.height); +this._calculateUV(); +}, +_calculateUV: function() { +var t = this._rect, e = this._texture, i = this.uv, n = e.width, r = e.height, s = 0 === n ? 0 : t.x / n, o = 0 === n ? 0 : (t.x + t.width) / n, a = 0 === r ? 0 : (t.y + t.height) / r, c = 0 === r ? 0 : t.y / r; +i[0] = s; +i[1] = a; +i[2] = o; +i[3] = a; +i[4] = s; +i[5] = c; +i[6] = o; +i[7] = c; +} +}; +e.exports = n; +}), {} ], +250: [ (function(t, e, i) { +"use strict"; +var n = t("../../../platform/js"), r = t("./bmfont"), s = t("../../../components/CCLabel"), o = t("../../../components/CCLabelOutline"), a = t("../../../utils/text-utils"), c = t("../../../components/CCComponent"), l = t("../../../assets/CCRenderTexture"), h = cc.js.isChildClassOf(o, c), u = t("../utils").getFontFamily, _ = t("../utils").shareLabelInfo, f = cc.BitmapFont.FontLetterDefinition, d = cc.BitmapFont.FontAtlas, m = cc.Color.WHITE, p = 2, v = (1 / 255).toFixed(3); +function y(t, e) { +this._texture = null; +this._labelInfo = e; +this._char = t; +this._hash = null; +this._data = null; +this._canvas = null; +this._context = null; +this._width = 0; +this._height = 0; +this._offsetY = 0; +this._hash = t.charCodeAt(0) + e.hash; +} +y.prototype = { +constructor: y, +updateRenderData: function() { +this._updateProperties(); +this._updateTexture(); +}, +_updateProperties: function() { +this._texture = new cc.Texture2D(); +this._data = s._canvasPool.get(); +this._canvas = this._data.canvas; +this._context = this._data.context; +this._context.font = this._labelInfo.fontDesc; +var t = a.safeMeasureText(this._context, this._char); +this._width = parseFloat(t.toFixed(2)) + 2 * this._labelInfo.margin; +this._height = (1 + a.BASELINE_RATIO) * this._labelInfo.fontSize + 2 * this._labelInfo.margin; +this._offsetY = -this._labelInfo.fontSize * a.BASELINE_RATIO / 2; +this._canvas.width !== this._width && (this._canvas.width = this._width); +this._canvas.height !== this._height && (this._canvas.height = this._height); +this._texture.initWithElement(this._canvas); +}, +_updateTexture: function() { +var t = this._context, e = this._labelInfo, i = this._canvas.width, n = this._canvas.height, r = i / 2, s = n / 2 + this._labelInfo.fontSize * a.MIDDLE_RATIO, o = e.color; +t.textAlign = "center"; +t.textBaseline = "alphabetic"; +t.clearRect(0, 0, i, n); +t.fillStyle = "rgba(" + o.r + ", " + o.g + ", " + o.b + ", " + v + ")"; +t.fillRect(0, 0, i, n); +t.font = e.fontDesc; +t.lineJoin = "round"; +t.fillStyle = "rgba(" + o.r + ", " + o.g + ", " + o.b + ", 1)"; +if (e.isOutlined) { +var c = e.out || m; +t.strokeStyle = "rgba(" + c.r + ", " + c.g + ", " + c.b + ", " + c.a / 255 + ")"; +t.lineWidth = 2 * e.margin; +t.strokeText(this._char, r, s); +} +t.fillText(this._char, r, s); +this._texture.handleLoadedTexture(); +}, +destroy: function() { +this._texture.destroy(); +this._texture = null; +s._canvasPool.put(this._data); +} +}; +function g(t, e) { +var i = new l(); +i.initWithSize(t, e); +i.update(); +this._fontDefDictionary = new d(i); +this._x = p; +this._y = p; +this._nexty = p; +this._width = t; +this._height = e; +cc.director.on(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, this.beforeSceneLoad, this); +} +cc.js.mixin(g.prototype, { +insertLetterTexture: function(t) { +var e = t._texture, i = e.width, n = e.height; +if (this._x + i + p > this._width) { +this._x = p; +this._y = this._nexty; +} +this._y + n > this._nexty && (this._nexty = this._y + n + p); +if (this._nexty > this._height) return null; +this._fontDefDictionary._texture.drawTextureAt(e, this._x, this._y); +this._dirty = !0; +var r = new f(); +r.u = this._x; +r.v = this._y; +r.texture = this._fontDefDictionary._texture; +r.valid = !0; +r.w = t._width; +r.h = t._height; +r.xAdvance = t._width; +r.offsetY = t._offsetY; +this._x += i + p; +this._fontDefDictionary.addLetterDefinitions(t._hash, r); +return r; +}, +update: function() { +if (this._dirty) { +this._fontDefDictionary._texture.update(); +this._dirty = !1; +} +}, +reset: function() { +this._x = p; +this._y = p; +this._nexty = p; +for (var t = this._fontDefDictionary._letterDefinitions, e = 0, i = t.length; e < i; e++) { +var n = t[e]; +n.isValid && n.destroy(); +} +this._fontDefDictionary.clear(); +}, +destroy: function() { +this.reset(); +this._fontDefDictionary._texture.destroy(); +}, +beforeSceneLoad: function() { +this.destroy(); +var t = new l(); +t.initWithSize(this._width, this._height); +t.update(); +this._fontDefDictionary._texture = t; +}, +getLetter: function(t) { +return this._fontDefDictionary._letterDefinitions[t]; +}, +getTexture: function() { +return this._fontDefDictionary.getTexture(); +}, +getLetterDefinitionForChar: function(t, e) { +var i = t.charCodeAt(0) + e.hash, n = this._fontDefDictionary._letterDefinitions[i]; +if (!n) { +var r = new y(t, e); +r.updateRenderData(); +n = this.insertLetterTexture(r); +r.destroy(); +} +return n; +} +}); +function x(t) { +var e = t.color.toHEX("#rrggbb"), i = ""; +t.isOutlined && (i = i + t.margin + t.out.toHEX("#rrggbb")); +return "" + t.fontSize + t.fontFamily + e + i; +} +var C = null; +e.exports = n.addon({ +_getAssemblerData: function() { +C || (C = new g(2048, 2048)); +return C.getTexture(); +}, +_updateFontFamily: function(t) { +_.fontAtlas = C; +_.fontFamily = u(t); +var e = h && t.getComponent(o); +if (e && e.enabled) { +_.isOutlined = !0; +_.margin = e.width; +_.out = e.color; +_.out.a = e.color.a * t.node.color.a / 255; +} else { +_.isOutlined = !1; +_.margin = 0; +} +}, +_updateLabelInfo: function(t) { +_.fontDesc = this._getFontDesc(); +_.color = t.node.color; +_.hash = x(_); +}, +_getFontDesc: function() { +var t = _.fontSize.toString() + "px "; +0; +return t += _.fontFamily; +}, +_computeHorizontalKerningForText: function() {}, +_determineRect: function(t) { +return !1; +} +}, r); +}), { +"../../../assets/CCRenderTexture": 66, +"../../../components/CCComponent": 95, +"../../../components/CCLabel": 97, +"../../../components/CCLabelOutline": 98, +"../../../platform/js": 221, +"../../../utils/text-utils": 303, +"../utils": 252, +"./bmfont": 248 +} ], +251: [ (function(t, e, i) { +"use strict"; +var n = t("../../../platform/CCMacro"), r = t("../../../utils/text-utils"), s = t("../../../components/CCLabel"), o = t("../../../components/CCLabelOutline"), a = t("../../../components/CCLabelShadow"), c = s.Overflow, l = t("../utils").packToDynamicAtlas, h = t("../utils").deleteFromDynamicAtlas, u = t("../utils").getFontFamily, _ = (1 / 255).toFixed(3), f = null, d = null, m = null, p = "", v = "", y = 0, g = 0, x = [], C = cc.Size.ZERO, b = 0, A = 0, S = 0, w = null, T = "", E = c.NONE, M = !1, B = null, D = cc.Color.WHITE, I = null, P = cc.Color.BLACK, R = cc.rect(), L = cc.Size.ZERO, F = cc.Size.ZERO, O = !1, V = !1, N = !1, k = 0, z = cc.Vec2.ZERO, G = 0, U = void 0; +e.exports = { +_getAssemblerData: function() { +(U = s._canvasPool.get()).canvas.width = U.canvas.height = 1; +return U; +}, +_resetAssemblerData: function(t) { +t && s._canvasPool.put(t); +}, +updateRenderData: function(t) { +if (t._renderData.vertDirty) { +this._updateFontFamily(t); +this._updateProperties(t); +this._calculateLabelFont(); +this._calculateSplitedStrings(); +this._updateLabelDimensions(); +this._calculateTextBaseline(); +this._updateTexture(t); +this._calDynamicAtlas(t); +t._actualFontSize = y; +t.node.setContentSize(F); +this._updateVerts(t); +t._renderData.vertDirty = t._renderData.uvDirty = !1; +f = null; +d = null; +m = null; +} +}, +_updateVerts: function() {}, +_updatePaddingRect: function() { +var t = 0, e = 0, i = 0, n = 0, r = 0; +L.width = L.height = 0; +if (B) { +t = e = i = n = r = B.width; +L.width = L.height = 2 * r; +} +if (I) { +var s = I.blur + r; +i = Math.max(i, -I._offset.x + s); +n = Math.max(n, I._offset.x + s); +t = Math.max(t, I._offset.y + s); +e = Math.max(e, -I._offset.y + s); +} +if (V) { +var o = g * Math.tan(.20943951); +n += o; +L.width += o; +} +R.x = i; +R.y = t; +R.width = i + n; +R.height = t + e; +}, +_updateFontFamily: function(t) { +T = u(t); +}, +_updateProperties: function(t) { +var e = t._assemblerData; +f = e.context; +d = e.canvas; +m = t._frame._original ? t._frame._original._texture : t._frame._texture; +v = t.string.toString(); +y = t._fontSize; +k = (g = y) / 8; +E = t.overflow; +C.width = t.node.width; +C.height = t.node.height; +F = t.node.getContentSize(); +b = t._lineHeight; +A = t.horizontalAlign; +S = t.verticalAlign; +w = t.node.color; +O = t._isBold; +V = t._isItalic; +N = t._isUnderline; +M = E !== c.NONE && (E === c.RESIZE_HEIGHT || t.enableWrapText); +(B = (B = o && t.getComponent(o)) && B.enabled && B.width > 0 ? B : null) && D.set(B.color); +if (I = (I = a && t.getComponent(a)) && I.enabled ? I : null) { +P.set(I.color); +P.a = P.a * t.node.color.a / 255; +} +this._updatePaddingRect(); +}, +_calculateFillTextStartPosition: function() { +var t = 0; +A === n.TextAlignment.RIGHT ? t = C.width - R.width : A === n.TextAlignment.CENTER && (t = (C.width - R.width) / 2); +var e = 0, i = this._getLineHeight() * (x.length - 1); +e = S === n.VerticalTextAlignment.TOP ? y : S === n.VerticalTextAlignment.CENTER ? .5 * (C.height - i) + y * r.MIDDLE_RATIO - R.height / 2 : C.height - i - y * r.BASELINE_RATIO - R.height; +return cc.v2(t + R.x, e + R.y); +}, +_setupOutline: function() { +f.strokeStyle = "rgba(" + D.r + ", " + D.g + ", " + D.b + ", " + D.a / 255 + ")"; +f.lineWidth = 2 * B.width; +}, +_setupShadow: function() { +f.shadowColor = "rgba(" + P.r + ", " + P.g + ", " + P.b + ", " + P.a / 255 + ")"; +f.shadowBlur = I.blur; +f.shadowOffsetX = I.offset.x; +f.shadowOffsetY = -I.offset.y; +}, +_drawUnderline: function(t) { +if (B) { +this._setupOutline(); +f.strokeRect(z.x, z.y, t, k); +} +f.lineWidth = k; +f.fillStyle = "rgba(" + w.r + ", " + w.g + ", " + w.b + ", " + w.a / 255 + ")"; +f.fillRect(z.x, z.y, t, k); +}, +_updateTexture: function() { +f.clearRect(0, 0, d.width, d.height); +var t = B ? D : w; +f.fillStyle = "rgba(" + t.r + ", " + t.g + ", " + t.b + ", " + _ + ")"; +f.fillRect(0, 0, d.width, d.height); +f.font = p; +var e = this._calculateFillTextStartPosition(), i = this._getLineHeight(); +f.lineJoin = "round"; +f.fillStyle = "rgba(" + w.r + ", " + w.g + ", " + w.b + ", 1)"; +var r = x.length > 1, s = this._measureText(f), o = 0, a = 0; +I && this._setupShadow(); +B && this._setupOutline(); +for (var c = 0; c < x.length; ++c) { +o = e.x; +a = e.y + c * i; +if (I && r) { +B && f.strokeText(x[c], o, a); +f.fillText(x[c], o, a); +} +if (N) { +G = s(x[c]); +A === n.TextAlignment.RIGHT ? z.x = e.x - G : A === n.TextAlignment.CENTER ? z.x = e.x - G / 2 : z.x = e.x; +z.y = a; +this._drawUnderline(G); +} +} +I && r && (f.shadowColor = "transparent"); +for (var l = 0; l < x.length; ++l) { +o = e.x; +a = e.y + l * i; +B && f.strokeText(x[l], o, a); +f.fillText(x[l], o, a); +} +I && (f.shadowColor = "transparent"); +m.handleLoadedTexture(); +}, +_calDynamicAtlas: function(t) { +if (t.cacheMode === s.CacheMode.BITMAP) { +var e = t._frame; +h(t, e); +e._original || e.setRect(cc.rect(0, 0, d.width, d.height)); +l(t, e); +} +}, +_updateLabelDimensions: function() { +var t = v.split("\n"); +if (E === c.RESIZE_HEIGHT) { +var e = (x.length + r.BASELINE_RATIO) * this._getLineHeight(); +C.height = e + R.height; +F.height = e + L.height; +} else if (E === c.NONE) { +x = t; +for (var i = 0, n = 0, s = 0; s < t.length; ++s) { +var o = r.safeMeasureText(f, t[s]); +i = i > o ? i : o; +} +n = (x.length + r.BASELINE_RATIO) * this._getLineHeight(); +var a = parseFloat(i.toFixed(2)), l = parseFloat(n.toFixed(2)); +C.width = a + R.width; +C.height = l + R.height; +F.width = a + L.width; +F.height = l + L.height; +} +C.width = Math.min(C.width, 2048); +C.height = Math.min(C.height, 2048); +d.width !== C.width && (d.width = C.width); +d.height !== C.height && (d.height = C.height); +}, +_calculateTextBaseline: function() { +this._node; +var t = void 0; +t = A === n.TextAlignment.RIGHT ? "right" : A === n.TextAlignment.CENTER ? "center" : "left"; +f.textAlign = t; +f.textBaseline = "alphabetic"; +}, +_calculateSplitedStrings: function() { +var t = v.split("\n"); +if (M) { +x = []; +for (var e = F.width, i = 0; i < t.length; ++i) { +var n = r.safeMeasureText(f, t[i]), s = r.fragmentText(t[i], n, e, this._measureText(f)); +x = x.concat(s); +} +} else x = t; +}, +_getFontDesc: function() { +var t = y.toString() + "px "; +t += T; +O && (t = "bold " + t); +V && (t = "italic " + t); +return t; +}, +_getLineHeight: function() { +var t = b; +return 0 | (t = 0 === t ? y : t * y / g); +}, +_calculateParagraphLength: function(t, e) { +for (var i = [], n = 0; n < t.length; ++n) { +var s = r.safeMeasureText(e, t[n]); +i.push(s); +} +return i; +}, +_measureText: function(t) { +return function(e) { +return r.safeMeasureText(t, e); +}; +}, +_calculateLabelFont: function() { +p = this._getFontDesc(); +f.font = p; +if (E === c.SHRINK) { +var t = v.split("\n"), e = this._calculateParagraphLength(t, f), i = 0, n = 0, s = 0; +if (M) { +var o = F.width, a = F.height; +if (o < 0 || a < 0) { +p = this._getFontDesc(); +f.font = p; +return; +} +n = a + 1; +s = o + 1; +for (var l = y + 1, h = "", u = !0, _ = 0 | l; n > a || s > o; ) { +u ? l = _ / 2 | 0 : _ = l = _ - 1; +if (l <= 0) { +cc.logID(4003); +break; +} +y = l; +p = this._getFontDesc(); +f.font = p; +n = 0; +for (i = 0; i < t.length; ++i) { +var d = 0, m = r.safeMeasureText(f, t[i]); +h = r.fragmentText(t[i], m, o, this._measureText(f)); +for (;d < h.length; ) { +s = r.safeMeasureText(f, h[d]); +n += this._getLineHeight(); +++d; +} +} +if (u) if (n > a) _ = 0 | l; else { +u = !1; +n = a + 1; +} +} +} else { +n = t.length * this._getLineHeight(); +for (i = 0; i < t.length; ++i) s < e[i] && (s = e[i]); +var x = (C.width - R.width) / s, b = C.height / n; +y = g * Math.min(1, x, b) | 0; +p = this._getFontDesc(); +f.font = p; +} +} +} +}; +}), { +"../../../components/CCLabel": 97, +"../../../components/CCLabelOutline": 98, +"../../../components/CCLabelShadow": 99, +"../../../platform/CCMacro": 206, +"../../../utils/text-utils": 303, +"../utils": 252 +} ], +252: [ (function(t, e, i) { +"use strict"; +var n = t("./dynamic-atlas/manager"), r = cc.Color.WHITE, s = { +fontAtlas: null, +fontSize: 0, +lineHeight: 0, +hAlign: 0, +vAlign: 0, +hash: "", +fontFamily: "", +fontDesc: "Arial", +color: r, +isOutlined: !1, +out: r, +margin: 0 +}; +e.exports = { +packToDynamicAtlas: function(t, e) { +if (e) { +if (!e._original && n) { +var i = n.insertSpriteFrame(e); +i && e._setDynamicAtlasFrame(i); +} +t.sharedMaterials[0].getProperty("texture") !== e._texture && t._activateMaterial(!0); +} +}, +deleteFromDynamicAtlas: function(t, e) { +if (e && e._original && n) { +n.deleteAtlasTexture(e); +e._resetDynamicAtlasFrame(); +} +}, +getFontFamily: function(t) { +if (t.useSystemFont) return t.fontFamily; +if (t.font) { +if (t.font._nativeAsset) return t.font._nativeAsset; +cc.loader.load(t.font.nativeUrl, (function(e, i) { +t.font._nativeAsset = i; +t._updateRenderData(!0); +})); +return "Arial"; +} +return "Arial"; +}, +shareLabelInfo: s +}; +}), { +"./dynamic-atlas/manager": 247 +} ], +253: [ (function(t, e, i) { +"use strict"; +e.exports = n; +function n(t, e, i) { +i = i || 2; +var n, s, a, c, l, h, _, f = e && e.length, d = f ? e[0] * i : t.length, m = r(t, 0, d, i, !0), p = []; +if (!m) return p; +f && (m = u(t, e, m, i)); +if (t.length > 80 * i) { +n = a = t[0]; +s = c = t[1]; +for (var v = i; v < d; v += i) { +l = t[v]; +h = t[v + 1]; +l < n && (n = l); +h < s && (s = h); +l > a && (a = l); +h > c && (c = h); +} +_ = Math.max(a - n, c - s); +} +o(m, p, i, n, s, _); +return p; +} +function r(t, e, i, n, r) { +var s, o; +if (r === I(t, e, i, n) > 0) for (s = e; s < i; s += n) o = M(s, t[s], t[s + 1], o); else for (s = i - n; s >= e; s -= n) o = M(s, t[s], t[s + 1], o); +if (o && b(o, o.next)) { +B(o); +o = o.next; +} +return o; +} +function s(t, e) { +if (!t) return t; +e || (e = t); +var i, n = t; +do { +i = !1; +if (n.steiner || !b(n, n.next) && 0 !== C(n.prev, n, n.next)) n = n.next; else { +B(n); +if ((n = e = n.prev) === n.next) return null; +i = !0; +} +} while (i || n !== e); +return e; +} +function o(t, e, i, n, r, u, _) { +if (t) { +!_ && u && m(t, n, r, u); +for (var f, d, p = t; t.prev !== t.next; ) { +f = t.prev; +d = t.next; +if (u ? c(t, n, r, u) : a(t)) { +e.push(f.i / i); +e.push(t.i / i); +e.push(d.i / i); +B(t); +t = d.next; +p = d.next; +} else if ((t = d) === p) { +_ ? 1 === _ ? o(t = l(t, e, i), e, i, n, r, u, 2) : 2 === _ && h(t, e, i, n, r, u) : o(s(t), e, i, n, r, u, 1); +break; +} +} +} +} +function a(t) { +var e = t.prev, i = t, n = t.next; +if (C(e, i, n) >= 0) return !1; +for (var r = t.next.next; r !== t.prev; ) { +if (g(e.x, e.y, i.x, i.y, n.x, n.y, r.x, r.y) && C(r.prev, r, r.next) >= 0) return !1; +r = r.next; +} +return !0; +} +function c(t, e, i, n) { +var r = t.prev, s = t, o = t.next; +if (C(r, s, o) >= 0) return !1; +for (var a = r.x < s.x ? r.x < o.x ? r.x : o.x : s.x < o.x ? s.x : o.x, c = r.y < s.y ? r.y < o.y ? r.y : o.y : s.y < o.y ? s.y : o.y, l = r.x > s.x ? r.x > o.x ? r.x : o.x : s.x > o.x ? s.x : o.x, h = r.y > s.y ? r.y > o.y ? r.y : o.y : s.y > o.y ? s.y : o.y, u = v(a, c, e, i, n), _ = v(l, h, e, i, n), f = t.nextZ; f && f.z <= _; ) { +if (f !== t.prev && f !== t.next && g(r.x, r.y, s.x, s.y, o.x, o.y, f.x, f.y) && C(f.prev, f, f.next) >= 0) return !1; +f = f.nextZ; +} +f = t.prevZ; +for (;f && f.z >= u; ) { +if (f !== t.prev && f !== t.next && g(r.x, r.y, s.x, s.y, o.x, o.y, f.x, f.y) && C(f.prev, f, f.next) >= 0) return !1; +f = f.prevZ; +} +return !0; +} +function l(t, e, i) { +var n = t; +do { +var r = n.prev, s = n.next.next; +if (!b(r, s) && A(r, n, n.next, s) && w(r, s) && w(s, r)) { +e.push(r.i / i); +e.push(n.i / i); +e.push(s.i / i); +B(n); +B(n.next); +n = t = s; +} +n = n.next; +} while (n !== t); +return n; +} +function h(t, e, i, n, r, a) { +var c = t; +do { +for (var l = c.next.next; l !== c.prev; ) { +if (c.i !== l.i && x(c, l)) { +var h = E(c, l); +c = s(c, c.next); +h = s(h, h.next); +o(c, e, i, n, r, a); +o(h, e, i, n, r, a); +return; +} +l = l.next; +} +c = c.next; +} while (c !== t); +} +function u(t, e, i, n) { +var o, a, c, l = []; +for (o = 0, a = e.length; o < a; o++) { +(c = r(t, e[o] * n, o < a - 1 ? e[o + 1] * n : t.length, n, !1)) === c.next && (c.steiner = !0); +l.push(y(c)); +} +l.sort(_); +for (o = 0; o < l.length; o++) { +f(l[o], i); +i = s(i, i.next); +} +return i; +} +function _(t, e) { +return t.x - e.x; +} +function f(t, e) { +if (e = d(t, e)) { +var i = E(e, t); +s(i, i.next); +} +} +function d(t, e) { +var i, n = e, r = t.x, s = t.y, o = -Infinity; +do { +if (s <= n.y && s >= n.next.y) { +var a = n.x + (s - n.y) * (n.next.x - n.x) / (n.next.y - n.y); +if (a <= r && a > o) { +o = a; +if (a === r) { +if (s === n.y) return n; +if (s === n.next.y) return n.next; +} +i = n.x < n.next.x ? n : n.next; +} +} +n = n.next; +} while (n !== e); +if (!i) return null; +if (r === o) return i.prev; +var c, l = i, h = i.x, u = i.y, _ = Infinity; +n = i.next; +for (;n !== l; ) { +if (r >= n.x && n.x >= h && g(s < u ? r : o, s, h, u, s < u ? o : r, s, n.x, n.y) && ((c = Math.abs(s - n.y) / (r - n.x)) < _ || c === _ && n.x > i.x) && w(n, t)) { +i = n; +_ = c; +} +n = n.next; +} +return i; +} +function m(t, e, i, n) { +var r = t; +do { +null === r.z && (r.z = v(r.x, r.y, e, i, n)); +r.prevZ = r.prev; +r.nextZ = r.next; +r = r.next; +} while (r !== t); +r.prevZ.nextZ = null; +r.prevZ = null; +p(r); +} +function p(t) { +var e, i, n, r, s, o, a, c, l = 1; +do { +i = t; +t = null; +s = null; +o = 0; +for (;i; ) { +o++; +n = i; +a = 0; +for (e = 0; e < l; e++) { +a++; +if (!(n = n.nextZ)) break; +} +c = l; +for (;a > 0 || c > 0 && n; ) { +if (0 === a) { +r = n; +n = n.nextZ; +c--; +} else if (0 !== c && n) if (i.z <= n.z) { +r = i; +i = i.nextZ; +a--; +} else { +r = n; +n = n.nextZ; +c--; +} else { +r = i; +i = i.nextZ; +a--; +} +s ? s.nextZ = r : t = r; +r.prevZ = s; +s = r; +} +i = n; +} +s.nextZ = null; +l *= 2; +} while (o > 1); +return t; +} +function v(t, e, i, n, r) { +return (t = 1431655765 & ((t = 858993459 & ((t = 252645135 & ((t = 16711935 & ((t = 32767 * (t - i) / r) | t << 8)) | t << 4)) | t << 2)) | t << 1)) | (e = 1431655765 & ((e = 858993459 & ((e = 252645135 & ((e = 16711935 & ((e = 32767 * (e - n) / r) | e << 8)) | e << 4)) | e << 2)) | e << 1)) << 1; +} +function y(t) { +var e = t, i = t; +do { +e.x < i.x && (i = e); +e = e.next; +} while (e !== t); +return i; +} +function g(t, e, i, n, r, s, o, a) { +return (r - o) * (e - a) - (t - o) * (s - a) >= 0 && (t - o) * (n - a) - (i - o) * (e - a) >= 0 && (i - o) * (s - a) - (r - o) * (n - a) >= 0; +} +function x(t, e) { +return t.next.i !== e.i && t.prev.i !== e.i && !S(t, e) && w(t, e) && w(e, t) && T(t, e); +} +function C(t, e, i) { +return (e.y - t.y) * (i.x - e.x) - (e.x - t.x) * (i.y - e.y); +} +function b(t, e) { +return t.x === e.x && t.y === e.y; +} +function A(t, e, i, n) { +return !!(b(t, e) && b(i, n) || b(t, n) && b(i, e)) || C(t, e, i) > 0 != C(t, e, n) > 0 && C(i, n, t) > 0 != C(i, n, e) > 0; +} +function S(t, e) { +var i = t; +do { +if (i.i !== t.i && i.next.i !== t.i && i.i !== e.i && i.next.i !== e.i && A(i, i.next, t, e)) return !0; +i = i.next; +} while (i !== t); +return !1; +} +function w(t, e) { +return C(t.prev, t, t.next) < 0 ? C(t, e, t.next) >= 0 && C(t, t.prev, e) >= 0 : C(t, e, t.prev) < 0 || C(t, t.next, e) < 0; +} +function T(t, e) { +var i = t, n = !1, r = (t.x + e.x) / 2, s = (t.y + e.y) / 2; +do { +i.y > s != i.next.y > s && r < (i.next.x - i.x) * (s - i.y) / (i.next.y - i.y) + i.x && (n = !n); +i = i.next; +} while (i !== t); +return n; +} +function E(t, e) { +var i = new D(t.i, t.x, t.y), n = new D(e.i, e.x, e.y), r = t.next, s = e.prev; +t.next = e; +e.prev = t; +i.next = r; +r.prev = i; +n.next = i; +i.prev = n; +s.next = n; +n.prev = s; +return n; +} +function M(t, e, i, n) { +var r = new D(t, e, i); +if (n) { +r.next = n.next; +r.prev = n; +n.next.prev = r; +n.next = r; +} else { +r.prev = r; +r.next = r; +} +return r; +} +function B(t) { +t.next.prev = t.prev; +t.prev.next = t.next; +t.prevZ && (t.prevZ.nextZ = t.nextZ); +t.nextZ && (t.nextZ.prevZ = t.prevZ); +} +function D(t, e, i) { +this.i = t; +this.x = e; +this.y = i; +this.prev = null; +this.next = null; +this.z = null; +this.prevZ = null; +this.nextZ = null; +this.steiner = !1; +} +n.deviation = function(t, e, i, n) { +var r = e && e.length, s = r ? e[0] * i : t.length, o = Math.abs(I(t, 0, s, i)); +if (r) for (var a = 0, c = e.length; a < c; a++) { +var l = e[a] * i, h = a < c - 1 ? e[a + 1] * i : t.length; +o -= Math.abs(I(t, l, h, i)); +} +var u = 0; +for (a = 0; a < n.length; a += 3) { +var _ = n[a] * i, f = n[a + 1] * i, d = n[a + 2] * i; +u += Math.abs((t[_] - t[d]) * (t[f + 1] - t[_ + 1]) - (t[_] - t[f]) * (t[d + 1] - t[_ + 1])); +} +return 0 === o && 0 === u ? 0 : Math.abs((u - o) / o); +}; +function I(t, e, i, n) { +for (var r = 0, s = e, o = i - n; s < i; s += n) { +r += (t[o] - t[s]) * (t[s + 1] + t[o + 1]); +o = s; +} +return r; +} +n.flatten = function(t) { +for (var e = t[0][0].length, i = { +vertices: [], +holes: [], +dimensions: e +}, n = 0, r = 0; r < t.length; r++) { +for (var s = 0; s < t[r].length; s++) for (var o = 0; o < e; o++) i.vertices.push(t[r][s][o]); +if (r > 0) { +n += t[r - 1].length; +i.holes.push(n); +} +} +return i; +}; +}), {} ], +254: [ (function(t, e, i) { +"use strict"; +var n = s(t("../../../../../renderer/core/input-assembler")), r = s(t("../../../../../renderer/render-data/ia-render-data")); +function s(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var o = t("../../../../graphics/helper"), a = t("../../../../graphics/types").PointFlags, c = t("../../mesh-buffer"), l = t("../../vertex-format").vfmtPosColor, h = t("../../../index"), u = cc.Class({ +name: "cc.GraphicsPoint", +extends: cc.Vec2, +ctor: function(t, e) { +this.reset(); +}, +reset: function() { +this.dx = 0; +this.dy = 0; +this.dmx = 0; +this.dmy = 0; +this.flags = 0; +this.len = 0; +} +}); +function _() { +this.reset(); +} +cc.js.mixin(_.prototype, { +reset: function() { +this.closed = !1; +this.nbevel = 0; +this.complex = !0; +this.points ? this.points.length = 0 : this.points = []; +} +}); +function f(t) { +this._tessTol = .25; +this._distTol = .01; +this._updatePathOffset = !1; +this._paths = null; +this._pathLength = 0; +this._pathOffset = 0; +this._points = null; +this._pointsOffset = 0; +this._commandx = 0; +this._commandy = 0; +this._paths = []; +this._points = []; +this._renderDatas = []; +this._dataOffset = 0; +} +cc.js.mixin(f.prototype, { +moveTo: function(t, e) { +if (this._updatePathOffset) { +this._pathOffset = this._pathLength; +this._updatePathOffset = !1; +} +this._addPath(); +this._addPoint(t, e, a.PT_CORNER); +this._commandx = t; +this._commandy = e; +}, +lineTo: function(t, e) { +this._addPoint(t, e, a.PT_CORNER); +this._commandx = t; +this._commandy = e; +}, +bezierCurveTo: function(t, e, i, n, r, s) { +var c = this._curPath, l = c.points[c.points.length - 1]; +if (l.x !== t || l.y !== e || i !== r || n !== s) { +o.tesselateBezier(this, l.x, l.y, t, e, i, n, r, s, 0, a.PT_CORNER); +this._commandx = r; +this._commandy = s; +} else this.lineTo(r, s); +}, +quadraticCurveTo: function(t, e, i, n) { +var r = this._commandx, s = this._commandy; +this.bezierCurveTo(r + 2 / 3 * (t - r), s + 2 / 3 * (e - s), i + 2 / 3 * (t - i), n + 2 / 3 * (e - n), i, n); +}, +arc: function(t, e, i, n, r, s) { +o.arc(this, t, e, i, n, r, s); +}, +ellipse: function(t, e, i, n) { +o.ellipse(this, t, e, i, n); +this._curPath.complex = !1; +}, +circle: function(t, e, i) { +o.ellipse(this, t, e, i, i); +this._curPath.complex = !1; +}, +rect: function(t, e, i, n) { +this.moveTo(t, e); +this.lineTo(t, e + n); +this.lineTo(t + i, e + n); +this.lineTo(t + i, e); +this.close(); +this._curPath.complex = !1; +}, +roundRect: function(t, e, i, n, r) { +o.roundRect(this, t, e, i, n, r); +this._curPath.complex = !1; +}, +clear: function(t, e) { +this._pathLength = 0; +this._pathOffset = 0; +this._pointsOffset = 0; +this._dataOffset = 0; +this._curPath = null; +var i = this._renderDatas; +if (e) { +this._paths.length = 0; +this._points.length = 0; +for (var n = 0, r = i.length; n < r; n++) { +var s = i[n]; +s.meshbuffer.destroy(); +s.meshbuffer = null; +} +i.length = 0; +} else for (var o = 0, a = i.length; o < a; o++) { +i[o].meshbuffer.reset(); +} +}, +close: function() { +this._curPath.closed = !0; +}, +_addPath: function() { +var t = this._pathLength, e = this._paths[t]; +if (e) e.reset(); else { +e = new _(); +this._paths.push(e); +} +this._pathLength++; +this._curPath = e; +return e; +}, +_addPoint: function(t, e, i) { +var n = this._curPath; +if (n) { +var r, s = this._points, o = n.points; +if (r = s[this._pointsOffset++]) { +r.x = t; +r.y = e; +} else { +r = new u(t, e); +s.push(r); +} +r.flags = i; +o.push(r); +} +}, +requestRenderData: function() { +var t = new r.default(), e = new c(h._handle, l); +t.meshbuffer = e; +this._renderDatas.push(t); +var i = new n.default(); +i._vertexBuffer = e._vb; +i._indexBuffer = e._ib; +i._start = 0; +t.ia = i; +return t; +}, +getRenderDatas: function() { +0 === this._renderDatas.length && this.requestRenderData(); +return this._renderDatas; +} +}); +e.exports = f; +}), { +"../../../../../renderer/core/input-assembler": 339, +"../../../../../renderer/render-data/ia-render-data": 368, +"../../../../graphics/helper": 143, +"../../../../graphics/types": 145, +"../../../index": 244, +"../../mesh-buffer": 280, +"../../vertex-format": 284 +} ], +255: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../graphics/graphics"), r = t("../../../../graphics/types").PointFlags, s = n.LineJoin, o = n.LineCap, a = t("./earcut"), c = t("./impl"), l = Math.PI, h = Math.min, u = Math.max, _ = Math.ceil, f = Math.acos, d = Math.cos, m = Math.sin, p = Math.atan2, v = (Math.abs, +null), y = null, g = 0; +function x(t, e, i) { +var n = 2 * f(t / (t + i)); +return u(2, _(e / n)); +} +function C(t, e, i) { +return t < e ? e : t > i ? i : t; +} +var b = { +createImpl: function(t) { +return new c(t); +}, +updateRenderData: function(t) { +for (var e = t._impl.getRenderDatas(), i = 0, n = e.length; i < n; i++) e[i].material = t.sharedMaterials[0]; +}, +fillBuffers: function(t, e) { +e._flush(); +var i = e.node; +e.node = t.node; +this.renderIA(t, e); +e.node = i; +}, +renderIA: function(t, e) { +for (var i = t._impl.getRenderDatas(), n = 0, r = i.length; n < r; n++) { +var s = i[n], o = s.meshbuffer; +s.ia._count = o.indiceStart; +e._flushIA(s); +o.uploadData(); +} +}, +genRenderData: function(t, e) { +var i = y.getRenderDatas(), n = i[y._dataOffset], r = n.meshbuffer, s = r.vertexStart + e; +if (s > 65535 || 3 * s > 131070) { +++y._dataOffset; +s = e; +if (y._dataOffset < i.length) n = i[y._dataOffset]; else { +n = y.requestRenderData(t); +i[y._dataOffset] = n; +} +n.material = t.sharedMaterials[0]; +r = n.meshbuffer; +} +s > r.vertexOffset && r.requestStatic(e, 3 * e); +return n; +}, +stroke: function(t) { +g = t._strokeColor._val; +this._flattenPaths(t._impl); +this._expandStroke(t); +t._impl._updatePathOffset = !0; +}, +fill: function(t) { +g = t._fillColor._val; +this._expandFill(t); +t._impl._updatePathOffset = !0; +}, +_expandStroke: function(t) { +var e = .5 * t.lineWidth, i = t.lineCap, n = t.lineJoin, a = t.miterLimit; +y = t._impl; +var c = x(e, l, y._tessTol); +this._calculateJoins(y, e, n, a); +for (var h = y._paths, u = 0, _ = y._pathOffset, f = y._pathLength; _ < f; _++) { +var d = h[_], m = d.points.length; +n === s.ROUND ? u += 2 * (m + d.nbevel * (c + 2) + 1) : u += 2 * (m + 5 * d.nbevel + 1); +d.closed || (i === o.ROUND ? u += 2 * (2 * c + 2) : u += 12); +} +for (var p = (v = this.genRenderData(t, u)).meshbuffer, g = p._vData, C = p._iData, b = y._pathOffset, A = y._pathLength; b < A; b++) { +var S, w = h[b], T = w.points, E = T.length, M = p.vertexStart, B = void 0, D = void 0, I = void 0, P = void 0; +if (S = w.closed) { +B = T[E - 1]; +D = T[0]; +I = 0; +P = E; +} else { +B = T[0]; +D = T[1]; +I = 1; +P = E - 1; +} +if (!S) { +var R = D.sub(B); +R.normalizeSelf(); +var L = R.x, F = R.y; +i === o.BUTT ? this._buttCap(B, L, F, e, 0) : i === o.SQUARE ? this._buttCap(B, L, F, e, e) : i === o.ROUND && this._roundCapStart(B, L, F, e, c); +} +for (var O = I; O < P; ++O) { +if (n === s.ROUND) this._roundJoin(B, D, e, e, c); else if (0 != (D.flags & (r.PT_BEVEL | r.PT_INNERBEVEL))) this._bevelJoin(B, D, e, e); else { +this._vset(D.x + D.dmx * e, D.y + D.dmy * e); +this._vset(D.x - D.dmx * e, D.y - D.dmy * e); +} +B = D; +D = T[O + 1]; +} +if (S) { +var V = 3 * M; +this._vset(g[V], g[V + 1]); +this._vset(g[V + 3], g[V + 4]); +} else { +var N = D.sub(B); +N.normalizeSelf(); +var k = N.x, z = N.y; +i === o.BUTT ? this._buttCap(D, k, z, e, 0) : i === o.BUTT || i === o.SQUARE ? this._buttCap(D, k, z, e, e) : i === o.ROUND && this._roundCapEnd(D, k, z, e, c); +} +for (var G = p.indiceStart, U = M + 2, j = p.vertexStart; U < j; U++) { +C[G++] = U - 2; +C[G++] = U - 1; +C[G++] = U; +} +p.indiceStart = G; +} +v = null; +y = null; +}, +_expandFill: function(t) { +for (var e = (y = t._impl)._paths, i = 0, n = y._pathOffset, r = y._pathLength; n < r; n++) { +i += e[n].points.length; +} +for (var s = (v = this.genRenderData(t, i)).meshbuffer, o = s._vData, c = s._iData, l = y._pathOffset, h = y._pathLength; l < h; l++) { +var u = e[l], _ = u.points, f = _.length; +if (0 !== f) { +for (var d = s.vertexStart, m = 0; m < f; ++m) this._vset(_[m].x, _[m].y); +var p = s.indiceStart; +if (u.complex) { +for (var g = [], x = d, C = s.vertexStart; x < C; x++) { +var b = 3 * x; +g.push(o[b]); +g.push(o[b + 1]); +} +var A = a(g, null, 2); +if (!A || 0 === A.length) continue; +for (var S = 0, w = A.length; S < w; S++) c[p++] = A[S] + d; +} else for (var T = d, E = d + 2, M = s.vertexStart; E < M; E++) { +c[p++] = T; +c[p++] = E - 1; +c[p++] = E; +} +s.indiceStart = p; +} +} +v = null; +y = null; +}, +_calculateJoins: function(t, e, i, n) { +var o = 0; +e > 0 && (o = 1 / e); +for (var a = t._paths, c = t._pathOffset, l = t._pathLength; c < l; c++) { +var _ = a[c], f = _.points, d = f.length, m = f[d - 1], p = f[0]; +_.nbevel = 0; +for (var v = 0; v < d; v++) { +var y, g, x = m.dy, C = -m.dx, b = p.dy, A = -p.dx; +p.dmx = .5 * (x + b); +p.dmy = .5 * (C + A); +if ((y = p.dmx * p.dmx + p.dmy * p.dmy) > 1e-6) { +var S = 1 / y; +S > 600 && (S = 600); +p.dmx *= S; +p.dmy *= S; +} +if (p.dx * m.dy - m.dx * p.dy > 0) { +0; +p.flags |= r.PT_LEFT; +} +y * (g = u(11, h(m.len, p.len) * o)) * g < 1 && (p.flags |= r.PT_INNERBEVEL); +p.flags & r.PT_CORNER && (y * n * n < 1 || i === s.BEVEL || i === s.ROUND) && (p.flags |= r.PT_BEVEL); +0 != (p.flags & (r.PT_BEVEL | r.PT_INNERBEVEL)) && _.nbevel++; +m = p; +p = f[v + 1]; +} +} +}, +_flattenPaths: function(t) { +for (var e = t._paths, i = t._pathOffset, n = t._pathLength; i < n; i++) { +var r = e[i], s = r.points, o = s[s.length - 1], a = s[0]; +if (o.equals(a)) { +r.closed = !0; +s.pop(); +o = s[s.length - 1]; +} +for (var c = 0, l = s.length; c < l; c++) { +var h = a.sub(o); +o.len = h.mag(); +(h.x || h.y) && h.normalizeSelf(); +o.dx = h.x; +o.dy = h.y; +o = a; +a = s[c + 1]; +} +} +}, +_chooseBevel: function(t, e, i, n) { +var r = i.x, s = i.y, o = void 0, a = void 0, c = void 0, l = void 0; +if (0 !== t) { +o = r + e.dy * n; +a = s - e.dx * n; +c = r + i.dy * n; +l = s - i.dx * n; +} else { +o = c = r + i.dmx * n; +a = l = s + i.dmy * n; +} +return [ o, a, c, l ]; +}, +_buttCap: function(t, e, i, n, r) { +var s = t.x - e * r, o = t.y - i * r, a = i, c = -e; +this._vset(s + a * n, o + c * n); +this._vset(s - a * n, o - c * n); +}, +_roundCapStart: function(t, e, i, n, r) { +for (var s = t.x, o = t.y, a = i, c = -e, h = 0; h < r; h++) { +var u = h / (r - 1) * l, _ = d(u) * n, f = m(u) * n; +this._vset(s - a * _ - e * f, o - c * _ - i * f); +this._vset(s, o); +} +this._vset(s + a * n, o + c * n); +this._vset(s - a * n, o - c * n); +}, +_roundCapEnd: function(t, e, i, n, r) { +var s = t.x, o = t.y, a = i, c = -e; +this._vset(s + a * n, o + c * n); +this._vset(s - a * n, o - c * n); +for (var h = 0; h < r; h++) { +var u = h / (r - 1) * l, _ = d(u) * n, f = m(u) * n; +this._vset(s, o); +this._vset(s - a * _ + e * f, o - c * _ + i * f); +} +}, +_roundJoin: function(t, e, i, n, s) { +var o = t.dy, a = -t.dx, c = e.dy, h = -e.dx, u = e.x, f = e.y; +if (0 != (e.flags & r.PT_LEFT)) { +var v = this._chooseBevel(e.flags & r.PT_INNERBEVEL, t, e, i), y = v[0], g = v[1], x = v[2], b = v[3], A = p(-a, -o), S = p(-h, -c); +S > A && (S -= 2 * l); +this._vset(y, g); +this._vset(u - o * n, e.y - a * n); +for (var w = C(_((A - S) / l) * s, 2, s), T = 0; T < w; T++) { +var E = A + T / (w - 1) * (S - A), M = u + d(E) * n, B = f + m(E) * n; +this._vset(u, f); +this._vset(M, B); +} +this._vset(x, b); +this._vset(u - c * n, f - h * n); +} else { +var D = this._chooseBevel(e.flags & r.PT_INNERBEVEL, t, e, -n), I = D[0], P = D[1], R = D[2], L = D[3], F = p(a, o), O = p(h, c); +O < F && (O += 2 * l); +this._vset(u + o * n, f + a * n); +this._vset(I, P); +for (var V = C(_((O - F) / l) * s, 2, s), N = 0; N < V; N++) { +var k = F + N / (V - 1) * (O - F), z = u + d(k) * i, G = f + m(k) * i; +this._vset(z, G); +this._vset(u, f); +} +this._vset(u + c * n, f + h * n); +this._vset(R, L); +} +}, +_bevelJoin: function(t, e, i, n) { +var s = void 0, o = void 0, a = void 0, c = void 0, l = void 0, h = void 0, u = void 0, _ = void 0, f = t.dy, d = -t.dx, m = e.dy, p = -e.dx; +if (e.flags & r.PT_LEFT) { +var v = this._chooseBevel(e.flags & r.PT_INNERBEVEL, t, e, i); +l = v[0]; +h = v[1]; +u = v[2]; +_ = v[3]; +this._vset(l, h); +this._vset(e.x - f * n, e.y - d * n); +this._vset(u, _); +this._vset(e.x - m * n, e.y - p * n); +} else { +var y = this._chooseBevel(e.flags & r.PT_INNERBEVEL, t, e, -n); +s = y[0]; +o = y[1]; +a = y[2]; +c = y[3]; +this._vset(e.x + f * i, e.y + d * i); +this._vset(s, o); +this._vset(e.x + m * i, e.y + p * i); +this._vset(a, c); +} +}, +_vset: function(t, e) { +var i = v.meshbuffer, n = 3 * i.vertexStart, r = i._vData, s = i._uintVData; +r[n] = t; +r[n + 1] = e; +s[n + 2] = g; +i.vertexStart++; +i._dirty = !0; +} +}; +n._assembler = b; +e.exports = b; +}), { +"../../../../graphics/graphics": 142, +"../../../../graphics/types": 145, +"./earcut": 253, +"./impl": 254 +} ], +256: [ (function(t, e, i) { +"use strict"; +t("./sprite"); +t("./mask-assembler"); +t("./graphics"); +t("./label"); +t("./motion-streak"); +}), { +"./graphics": 255, +"./label": 263, +"./mask-assembler": 264, +"./motion-streak": 265, +"./sprite": 278 +} ], +257: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../platform/js"), r = t("../../../../utils/label/bmfont"), s = t("../../utils").fillMeshVertices; +e.exports = n.addon({ +createData: function(t) { +return t.requestRenderData(); +}, +fillBuffers: function(t, e) { +var i = t.node; +s(i, e._meshBuffer, t._renderData, i._color._val); +}, +appendQuad: function(t, e, i, n, r, s, o) { +var a = t.dataLength; +t.dataLength += 4; +t.vertexCount = t.dataLength; +t.indiceCount = t.dataLength / 2 * 3; +var c = t._data, l = e.width, h = e.height, u = i.width, _ = i.height, f = void 0, d = void 0, m = void 0, p = void 0; +if (n) { +f = i.x / l; +m = (i.x + _) / l; +d = (i.y + u) / h; +p = i.y / h; +c[a].u = f; +c[a].v = p; +c[a + 1].u = f; +c[a + 1].v = d; +c[a + 2].u = m; +c[a + 2].v = p; +c[a + 3].u = m; +c[a + 3].v = d; +} else { +f = i.x / l; +m = (i.x + u) / l; +d = (i.y + _) / h; +p = i.y / h; +c[a].u = f; +c[a].v = d; +c[a + 1].u = m; +c[a + 1].v = d; +c[a + 2].u = f; +c[a + 2].v = p; +c[a + 3].u = m; +c[a + 3].v = p; +} +c[a].x = r; +c[a].y = s - _ * o; +c[a + 1].x = r + u * o; +c[a + 1].y = s - _ * o; +c[a + 2].x = r; +c[a + 2].y = s; +c[a + 3].x = r + u * o; +c[a + 3].y = s; +} +}, r); +}), { +"../../../../../platform/js": 221, +"../../../../utils/label/bmfont": 248, +"../../utils": 279 +} ], +258: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../platform/js"), r = t("./bmfont"), s = t("../../../../utils/label/letter-font"), o = t("../../utils").fillMeshVertices, a = cc.color(255, 255, 255, 255); +e.exports = n.addon({ +createData: function(t) { +return t.requestRenderData(); +}, +fillBuffers: function(t, e) { +var i = t.node; +a._fastSetA(i.color.a); +o(i, e._meshBuffer, t._renderData, a._val); +}, +appendQuad: r.appendQuad +}, s); +}), { +"../../../../../platform/js": 221, +"../../../../utils/label/letter-font": 250, +"../../utils": 279, +"./bmfont": 257 +} ], +259: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../platform/js"), r = t("../../../../utils/label/ttf"), s = t("../../../../../components/CCLabelShadow"), o = t("../../utils").fillMeshVertices, a = cc.color(255, 255, 255, 255); +e.exports = n.addon({ +createData: function(t) { +var e = t.requestRenderData(); +e.dataLength = 4; +e.vertexCount = 4; +e.indiceCount = 6; +return e; +}, +fillBuffers: function(t, e) { +var i = t.node; +a._fastSetA(i.color.a); +o(i, e._meshBuffer, t._renderData, a._val); +}, +_updateVerts: function(t) { +var e = t._renderData, i = t._frame.uv, n = t.node, r = t._ttfTexture.width, o = t._ttfTexture.height, a = n.anchorX * n.width, c = n.anchorY * n.height, l = s && t.getComponent(s); +if (l && l._enabled) { +var h = (r - n.width) / 2, u = (o - n.height) / 2, _ = l.offset; +-_.x > h ? a += r - n.width : h > _.x && (a += h - _.x); +-_.y > u ? c += o - n.height : u > _.y && (c += u - _.y); +} +var f = e._data; +f[0].x = -a; +f[0].y = -c; +f[1].x = r - a; +f[1].y = -c; +f[2].x = -a; +f[2].y = o - c; +f[3].x = r - a; +f[3].y = o - c; +f[0].u = i[0]; +f[0].v = i[1]; +f[1].u = i[2]; +f[1].v = i[3]; +f[2].u = i[4]; +f[2].v = i[5]; +f[3].u = i[6]; +f[3].v = i[7]; +} +}, r); +}), { +"../../../../../components/CCLabelShadow": 99, +"../../../../../platform/js": 221, +"../../../../utils/label/ttf": 251, +"../../utils": 279 +} ], +260: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../platform/js"), r = t("../2d/bmfont"), s = t("../../utils").fillMeshVertices3D; +e.exports = n.addon({ +fillBuffers: function(t, e) { +var i = t.node; +s(i, e._meshBuffer3D, t._renderData, i._color._val); +} +}, r); +}), { +"../../../../../platform/js": 221, +"../../utils": 279, +"../2d/bmfont": 257 +} ], +261: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../platform/js"), r = t("../2d/letter"), s = t("../../utils").fillMeshVertices3D, o = cc.color(255, 255, 255, 255); +e.exports = n.addon({ +fillBuffers: function(t, e) { +var i = t.node; +o._fastSetA(i.color.a); +s(t.node, e._meshBuffer3D, t._renderData, o._val); +} +}, r); +}), { +"../../../../../platform/js": 221, +"../../utils": 279, +"../2d/letter": 258 +} ], +262: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../platform/js"), r = t("../2d/ttf"), s = t("../../utils").fillMeshVertices3D, o = cc.color(255, 255, 255, 255); +e.exports = n.addon({ +fillBuffers: function(t, e) { +var i = t.node; +o._fastSetA(i.color.a); +s(t.node, e._meshBuffer3D, t._renderData, o._val); +} +}, r); +}), { +"../../../../../platform/js": 221, +"../../utils": 279, +"../2d/ttf": 259 +} ], +263: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../components/CCLabel"), r = t("./2d/ttf"), s = t("./2d/bmfont"), o = t("./2d/letter"), a = t("./3d/ttf"), c = t("./3d/bmfont"), l = t("./3d/letter"), h = { +pool: [], +get: function() { +var t = this.pool.pop(); +if (!t) { +var e = document.createElement("canvas"); +t = { +canvas: e, +context: e.getContext("2d") +}; +} +return t; +}, +put: function(t) { +this.pool.length >= 32 || this.pool.push(t); +} +}, u = { +getAssembler: function(t) { +var e = t.node.is3DNode, i = e ? a : r; +t.font instanceof cc.BitmapFont ? i = e ? c : s : t.cacheMode === n.CacheMode.CHAR && (cc.sys.browserType === cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB ? cc.warn("sorry, subdomain does not support CHAR mode currently!") : i = e ? l : o); +return i; +}, +updateRenderData: function(t) { +return t.__allocedDatas; +} +}; +n._assembler = u; +n._canvasPool = h; +e.exports = u; +}), { +"../../../../components/CCLabel": 97, +"./2d/bmfont": 257, +"./2d/letter": 258, +"./2d/ttf": 259, +"./3d/bmfont": 260, +"./3d/letter": 261, +"./3d/ttf": 262 +} ], +264: [ (function(t, e, i) { +"use strict"; +var n = t("../../../components/CCMask"), r = t("../../render-flow"), s = t("./sprite/2d/simple"), o = t("./graphics"), a = t("../../../../renderer/gfx"), c = t("../vertex-format").vfmtPos, l = 8, h = []; +function u() { +return 1 << h.length - 1; +} +function _() { +for (var t = 0, e = 0; e < h.length; ++e) t += 1 << e; +return t; +} +function f(t, e, i, n, r, s) { +for (var o = t.effect.getDefaultTechnique().passes, c = a.STENCIL_OP_KEEP, l = a.STENCIL_OP_KEEP, h = 0; h < o.length; ++h) { +var u = o[h]; +u.setStencilFront(a.STENCIL_ENABLE, e, n, r, i, c, l, s); +u.setStencilBack(a.STENCIL_ENABLE, e, n, r, i, c, l, s); +} +} +function d(t) { +h.length + 1 > l && cc.errorID(9e3, l); +h.push(t); +} +function m(t, e) { +0 === h.length && cc.errorID(9001); +h.pop(); +0 === h.length ? e._flushMaterial(t._exitMaterial) : y(e); +} +function p(t, e) { +var i = a.DS_FUNC_NEVER, n = u(), r = n, s = n, o = t.inverted ? a.STENCIL_OP_REPLACE : a.STENCIL_OP_ZERO; +f(t._clearMaterial, i, o, n, r, s); +var l = e.getBuffer("mesh", c), h = l.request(4, 6), _ = h.indiceOffset, d = h.byteOffset >> 2, m = h.vertexOffset, p = l._vData, v = l._iData; +p[d++] = -1; +p[d++] = -1; +p[d++] = -1; +p[d++] = 1; +p[d++] = 1; +p[d++] = 1; +p[d++] = 1; +p[d++] = -1; +v[_++] = m; +v[_++] = m + 3; +v[_++] = m + 1; +v[_++] = m + 1; +v[_++] = m + 3; +v[_++] = m + 2; +e.node = e._dummyNode; +e.material = t._clearMaterial; +e._flush(); +} +function v(t, e) { +var i = a.DS_FUNC_NEVER, r = u(), c = r, l = r, h = t.inverted ? a.STENCIL_OP_ZERO : a.STENCIL_OP_REPLACE; +f(t.sharedMaterials[0], i, h, r, c, l); +e.node = t.node; +e.material = t.sharedMaterials[0]; +if (t._type === n.Type.IMAGE_STENCIL) { +s.fillBuffers(t, e); +e._flush(); +} else o.fillBuffers(t._graphics, e); +} +function y(t) { +var e = a.DS_FUNC_EQUAL, i = a.STENCIL_OP_KEEP, n = _(), r = n, s = u(), o = h[h.length - 1]; +f(o._enableMaterial, e, i, n, r, s); +t._flushMaterial(o._enableMaterial); +} +var g = { +updateRenderData: function(t) { +t._renderData || (t._type === n.Type.IMAGE_STENCIL ? t._renderData = s.createData(t) : t._renderData = t.requestRenderData()); +var e = t._renderData; +if (t._type === n.Type.IMAGE_STENCIL) if (t.spriteFrame) { +var i = t.node._contentSize, r = t.node._anchorPoint; +e.updateSizeNPivot(i.width, i.height, r.x, r.y); +e.dataLength = 4; +s.updateRenderData(t); +e.material = t.sharedMaterials[0]; +} else t.setMaterial(0, null); else { +t._graphics.setMaterial(0, t.sharedMaterials[0]); +o.updateRenderData(t._graphics); +} +}, +fillBuffers: function(t, e) { +if (t._type !== n.Type.IMAGE_STENCIL || t.spriteFrame) { +d(t); +p(t, e); +v(t, e); +y(e); +} +t.node._renderFlag |= r.FLAG_UPDATE_RENDER_DATA; +} +}, x = { +fillBuffers: function(t, e) { +(t._type !== n.Type.IMAGE_STENCIL || t.spriteFrame) && m(t, e); +t.node._renderFlag |= r.FLAG_UPDATE_RENDER_DATA; +} +}; +n._assembler = g; +n._postAssembler = x; +e.exports = { +front: g, +end: x +}; +}), { +"../../../../renderer/gfx": 349, +"../../../components/CCMask": 101, +"../../render-flow": 245, +"../vertex-format": 284, +"./graphics": 255, +"./sprite/2d/simple": 269 +} ], +265: [ (function(t, e, i) { +"use strict"; +var n = t("../../../components/CCMotionStreak"), r = t("../../render-flow"); +function s(t, e) { +this.point = t || cc.v2(); +this.dir = e || cc.v2(); +this.distance = 0; +this.time = 0; +} +s.prototype.setPoint = function(t, e) { +this.point.x = t; +this.point.y = e; +}; +s.prototype.setDir = function(t, e) { +this.dir.x = t; +this.dir.y = e; +}; +cc.v2(), cc.v2(); +var o = cc.v2(), a = cc.v2(); +function c(t, e) { +t.x = -e.y; +t.y = e.x; +return t; +} +var l = { +updateRenderData: function(t) { +var e = cc.director.getDeltaTime(); +this.update(t, e); +var i = t._renderData, n = t.node._contentSize, r = t.node._anchorPoint; +i.updateSizeNPivot(n.width, n.height, r.x, r.y); +i.material = t.sharedMaterials[0]; +}, +update: function(t, e) { +var i = t._renderData; +i || (i = t._renderData = t.requestRenderData()); +0; +var n = t._stroke / 2, r = t.node._worldMatrix, l = (r.m00, r.m01, r.m04, r.m05, +r.m12), h = r.m13, u = t._points, _ = void 0; +if (u.length > 1) { +var f = u[0].point.x - l, d = u[0].point.y - h; +f * f + d * d < t.minSeg && (_ = u[0]); +} +if (!_) { +_ = new s(); +u.splice(0, 0, _); +} +_.setPoint(l, h); +_.time = t._fadeTime + e; +i.dataLength = 0; +if (!(u.length < 2)) { +var m = i._data, p = t._color, v = p.r, y = p.g, g = p.b, x = p.a, C = u[1]; +C.distance = _.point.sub(C.point, a).mag(); +a.normalizeSelf(); +C.setDir(a.x, a.y); +_.setDir(a.x, a.y); +for (var b = t._fadeTime, A = !1, S = u.length - 1; S >= 0; S--) { +var w = u[S], T = w.point, E = w.dir; +w.time -= e; +if (w.time < 0) u.splice(S, 1); else { +var M = w.time / b, B = u[S - 1]; +if (!A) { +if (!B) { +u.splice(S, 1); +continue; +} +T.x = B.point.x - E.x * M; +T.y = B.point.y - E.y * M; +} +A = !0; +c(o, E); +i.dataLength += 2; +var D = (M * x << 24 >>> 0) + (g << 16) + (y << 8) + v, I = m.length - 1; +m[I].x = T.x - o.x * n; +m[I].y = T.y - o.y * n; +m[I].u = 0; +m[I].v = M; +m[I].color = D; +m[--I].x = T.x + o.x * n; +m[I].y = T.y + o.y * n; +m[I].u = 1; +m[I].v = M; +m[I].color = D; +} +} +i.vertexCount = i.dataLength; +i.indiceCount = i.vertexCount <= 2 ? 0 : 3 * (i.vertexCount - 2); +} +}, +fillBuffers: function(t, e) { +t.node; +for (var i = t._renderData, n = i._data, s = e._meshBuffer, o = i.vertexCount, a = s.request(o, i.indiceCount), c = a.indiceOffset, l = a.byteOffset >> 2, h = a.vertexOffset, u = s._vData, _ = s._uintVData, f = s._iData, d = void 0, m = 0, p = i.vertexCount; m < p; m++) { +d = n[m]; +u[l++] = d.x; +u[l++] = d.y; +u[l++] = d.u; +u[l++] = d.v; +_[l++] = d.color; +} +for (var v = 0, y = i.vertexCount; v < y; v += 2) { +var g = h + v; +f[c++] = g; +f[c++] = g + 2; +f[c++] = g + 1; +f[c++] = g + 1; +f[c++] = g + 2; +f[c++] = g + 3; +} +t.node._renderFlag |= r.FLAG_UPDATE_RENDER_DATA; +} +}; +e.exports = n._assembler = l; +}), { +"../../../components/CCMotionStreak": 102, +"../../render-flow": 245 +} ], +266: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../components/CCSprite").FillType, r = t("../../../../utils/utils").packToDynamicAtlas, s = t("../../utils").fillVerticesWithoutCalc; +e.exports = { +updateRenderData: function(t) { +r(t, t._spriteFrame); +var e = t._renderData; +if (e && t.spriteFrame) { +var i = e.uvDirty, n = e.vertDirty; +if (!i && !n) return t.__allocedDatas; +var s = t._fillStart, o = t._fillRange; +if (o < 0) { +s += o; +o = -o; +} +o = s + o; +s = (s = s > 1 ? 1 : s) < 0 ? 0 : s; +o = (o = o > 1 ? 1 : o) < 0 ? 0 : o; +var a = s + (o = (o -= s) < 0 ? 0 : o); +a = a > 1 ? 1 : a; +i && this.updateUVs(t, s, a); +if (n) { +this.updateVerts(t, s, a); +this.updateWorldVerts(t); +} +} +}, +updateUVs: function(t, e, i) { +var r = t._spriteFrame, s = t._renderData, o = s._data, a = r._texture.width, c = r._texture.height, l = r._rect, h = void 0, u = void 0, _ = void 0, f = void 0, d = void 0, m = void 0, p = void 0, v = void 0, y = void 0, g = void 0, x = void 0, C = void 0; +if (r._rotated) { +h = l.x / a; +u = (l.y + l.width) / c; +_ = (l.x + l.height) / a; +f = l.y / c; +d = p = h; +y = x = _; +v = C = u; +m = g = f; +} else { +h = l.x / a; +u = (l.y + l.height) / c; +_ = (l.x + l.width) / a; +f = l.y / c; +d = y = h; +p = x = _; +m = v = u; +g = C = f; +} +switch (t._fillType) { +case n.HORIZONTAL: +o[0].u = d + (p - d) * e; +o[0].v = m + (v - m) * e; +o[1].u = d + (p - d) * i; +o[1].v = m + (v - m) * i; +o[2].u = y + (x - y) * e; +o[2].v = g + (C - g) * e; +o[3].u = y + (x - y) * i; +o[3].v = g + (C - g) * i; +break; + +case n.VERTICAL: +o[0].u = d + (y - d) * e; +o[0].v = m + (g - m) * e; +o[1].u = p + (x - p) * e; +o[1].v = v + (C - v) * e; +o[2].u = d + (y - d) * i; +o[2].v = m + (g - m) * i; +o[3].u = p + (x - p) * i; +o[3].v = v + (C - v) * i; +break; + +default: +cc.errorID(2626); +} +s.uvDirty = !1; +}, +updateVerts: function(t, e, i) { +var r = t._renderData, s = r._data, o = t.node, a = o.width, c = o.height, l = o.anchorX * a, h = o.anchorY * c, u = -l, _ = -h, f = a - l, d = c - h, m = void 0; +switch (t._fillType) { +case n.HORIZONTAL: +m = u + (f - u) * i; +u = u + (f - u) * e; +f = m; +break; + +case n.VERTICAL: +m = _ + (d - _) * i; +_ = _ + (d - _) * e; +d = m; +break; + +default: +cc.errorID(2626); +} +s[4].x = u; +s[4].y = _; +s[5].x = f; +s[5].y = _; +s[6].x = u; +s[6].y = d; +s[7].x = f; +s[7].y = d; +r.vertDirty = !1; +}, +createData: function(t) { +var e = t.requestRenderData(); +e.dataLength = 8; +e.vertexCount = 4; +e.indiceCount = 6; +for (var i = e._data, n = 0; n < i.length; n++) i[n].z = 0; +return e; +}, +updateWorldVerts: function(t) { +for (var e = t.node, i = t._renderData._data, n = e._worldMatrix, r = n.m00, s = n.m01, o = n.m04, a = n.m05, c = n.m12, l = n.m13, h = 0; h < 4; h++) { +var u = i[h + 4], _ = i[h]; +_.x = u.x * r + u.y * o + c; +_.y = u.x * s + u.y * a + l; +} +}, +fillBuffers: function(t, e) { +e.worldMatDirty && this.updateWorldVerts(t); +var i = e._meshBuffer, n = t.node, r = s(n, i, t._renderData, n._color._val), o = i._iData, a = r.indiceOffset, c = r.vertexOffset; +o[a++] = c; +o[a++] = c + 1; +o[a++] = c + 2; +o[a++] = c + 1; +o[a++] = c + 3; +o[a++] = c + 2; +} +}; +}), { +"../../../../../components/CCSprite": 111, +"../../../../utils/utils": 252, +"../../utils": 279 +} ], +267: [ (function(t, e, i) { +"use strict"; +var n = t("../../utils").fillVerticesWithoutCalc, r = t("../../../../utils/utils").packToDynamicAtlas; +e.exports = { +createData: function(t) { +return t.requestRenderData(); +}, +updateRenderData: function(t) { +r(t, t._spriteFrame); +var e = t._renderData, i = t.spriteFrame; +if (e && i) { +var n = i.vertices; +if (n) { +if (e.vertexCount !== n.x.length) { +e.vertexCount = n.x.length; +e.dataLength = 2 * e.vertexCount; +e.uvDirty = e.vertDirty = !0; +} +e.indiceCount = n.triangles.length; +e.uvDirty && this.updateUVs(t); +if (e.vertDirty) { +this.updateVerts(t); +this.updateWorldVerts(t); +} +} +} +}, +updateUVs: function(t) { +for (var e = t.spriteFrame.vertices, i = e.nu, n = e.nv, r = t._renderData, s = r._data, o = 0, a = i.length; o < a; o++) { +var c = s[o]; +c.u = i[o]; +c.v = n[o]; +} +r.uvDirty = !1; +}, +updateVerts: function(t) { +var e = t.node, i = Math.abs(e.width), n = Math.abs(e.height), r = e.anchorX * i, s = e.anchorY * n, o = t.spriteFrame, a = o.vertices, c = a.x, l = a.y, h = o._originalSize.width, u = o._originalSize.height, _ = o._rect.width, f = o._rect.height, d = o._offset.x + (h - _) / 2, m = o._offset.y + (u - f) / 2, p = i / (t.trim ? _ : h), v = n / (t.trim ? f : u), y = t._renderData, g = y._data; +if (t.trim) for (var x = 0, C = c.length; x < C; x++) { +var b = g[x + C]; +b.x = (c[x] - d) * p - r; +b.y = (u - l[x] - m) * v - s; +} else for (var A = 0, S = c.length; A < S; A++) { +var w = g[A + S]; +w.x = c[A] * p - r; +w.y = (u - l[A]) * v - s; +} +y.vertDirty = !1; +}, +updateWorldVerts: function(t) { +for (var e = t.node, i = t._renderData, n = i._data, r = e._worldMatrix, s = r.m00, o = r.m01, a = r.m04, c = r.m05, l = r.m12, h = r.m13, u = 0, _ = i.vertexCount; u < _; u++) { +var f = n[u + _], d = n[u]; +d.x = f.x * s + f.y * a + l; +d.y = f.x * o + f.y * c + h; +} +}, +fillBuffers: function(t, e) { +var i = t.spriteFrame.vertices; +if (i) { +e.worldMatDirty && this.updateWorldVerts(t); +for (var r = e._meshBuffer, s = t.node, o = n(s, r, t._renderData, s._color._val), a = r._iData, c = o.indiceOffset, l = o.vertexOffset, h = i.triangles, u = 0, _ = h.length; u < _; u++) a[c++] = l + h[u]; +} +} +}; +}), { +"../../../../utils/utils": 252, +"../../utils": 279 +} ], +268: [ (function(t, e, i) { +"use strict"; +var n = t("../../utils").fillVertices, r = t("../../../../utils/utils").packToDynamicAtlas, s = 2 * Math.PI, o = [ cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0) ], a = [ 0, 0, 0, 0 ], c = [ 0, 0, 0, 0, 0, 0, 0, 0 ], l = [ cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0) ], h = [ cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0) ], u = cc.v2(0, 0), _ = []; +function f(t, e, i, n, r, s, o) { +var a = Math.sin(s), c = Math.cos(s), l = void 0, h = void 0; +if (0 !== Math.cos(s)) { +l = a / c; +if ((t - r.x) * c > 0) { +var u = r.y + l * (t - r.x); +o[0].x = t; +o[0].y = u; +} +if ((e - r.x) * c > 0) { +var _ = r.y + l * (e - r.x); +o[2].x = e; +o[2].y = _; +} +} +if (0 !== Math.sin(s)) { +h = c / a; +if ((n - r.y) * a > 0) { +var f = r.x + h * (n - r.y); +o[3].x = f; +o[3].y = n; +} +if ((i - r.y) * a > 0) { +var d = r.x + h * (i - r.y); +o[1].x = d; +o[1].y = i; +} +} +} +function d(t) { +var e = t.node, i = e.width, n = e.height, r = e.anchorX * i, s = e.anchorY * n, c = -r, l = -s, h = i - r, f = n - s, d = a; +d[0] = c; +d[1] = l; +d[2] = h; +d[3] = f; +var m = t._fillCenter, p = u.x = Math.min(Math.max(0, m.x), 1) * (h - c) + c, v = u.y = Math.min(Math.max(0, m.y), 1) * (f - l) + l; +o[0].x = o[3].x = c; +o[1].x = o[2].x = h; +o[0].y = o[1].y = l; +o[2].y = o[3].y = f; +_.length = 0; +p !== d[0] && (_[0] = [ 3, 0 ]); +p !== d[2] && (_[2] = [ 1, 2 ]); +v !== d[1] && (_[1] = [ 0, 1 ]); +v !== d[3] && (_[3] = [ 2, 3 ]); +} +function m(t) { +var e = t._texture.width, i = t._texture.height, n = t._rect, r = void 0, s = void 0, o = void 0, a = void 0, l = c; +if (t._rotated) { +r = n.x / e; +s = (n.x + n.height) / e; +o = n.y / i; +a = (n.y + n.width) / i; +l[0] = l[2] = r; +l[4] = l[6] = s; +l[3] = l[7] = a; +l[1] = l[5] = o; +} else { +r = n.x / e; +s = (n.x + n.width) / e; +o = n.y / i; +a = (n.y + n.height) / i; +l[0] = l[4] = r; +l[2] = l[6] = s; +l[1] = l[3] = a; +l[5] = l[7] = o; +} +} +function p(t, e) { +var i, n; +i = e.x - t.x; +n = e.y - t.y; +if (0 !== i || 0 !== n) { +if (0 === i) return n > 0 ? .5 * Math.PI : 1.5 * Math.PI; +var r = Math.atan(n / i); +i < 0 && (r += Math.PI); +return r; +} +} +function v(t, e, i, n, r) { +var s = a, o = s[0], c = s[1], l = s[2], h = s[3]; +t[e].x = i.x; +t[e].y = i.y; +t[e + 1].x = n.x; +t[e + 1].y = n.y; +t[e + 2].x = r.x; +t[e + 2].y = r.y; +y((i.x - o) / (l - o), (i.y - c) / (h - c), t, e); +y((n.x - o) / (l - o), (n.y - c) / (h - c), t, e + 1); +y((r.x - o) / (l - o), (r.y - c) / (h - c), t, e + 2); +} +function y(t, e, i, n) { +var r = c, s = r[0] + (r[2] - r[0]) * t, o = r[4] + (r[6] - r[4]) * t, a = r[1] + (r[3] - r[1]) * t, l = r[5] + (r[7] - r[5]) * t, h = i[n]; +h.u = s + (o - s) * e; +h.v = a + (l - a) * e; +} +e.exports = { +createData: function(t) { +return t.requestRenderData(); +}, +updateRenderData: function(t) { +var e = t._renderData, i = t.spriteFrame; +if (e && i && (e.vertDirty || e.uvDirty)) { +var n = e._data; +r(t, i); +var c = t._fillStart, y = t._fillRange; +if (y < 0) { +c += y; +y = -y; +} +for (;c >= 1; ) c -= 1; +for (;c < 0; ) c += 1; +var g = (c *= s) + (y *= s); +d(t); +m(i); +f(a[0], a[2], a[1], a[3], u, c, l); +f(a[0], a[2], a[1], a[3], u, c + y, h); +for (var x = 0, C = 0; C < 4; ++C) { +var b = _[C]; +if (b) if (y >= s) { +e.dataLength = x + 3; +v(n, x, u, o[b[0]], o[b[1]]); +x += 3; +} else { +var A = p(u, o[b[0]]), S = p(u, o[b[1]]); +S < A && (S += s); +A -= s; +S -= s; +for (var w = 0; w < 3; ++w) { +if (A >= g) ; else if (A >= c) { +e.dataLength = x + 3; +v(n, x, u, o[b[0]], S >= g ? h[C] : o[b[1]]); +x += 3; +} else if (S <= c) ; else if (S <= g) { +e.dataLength = x + 3; +v(n, x, u, l[C], o[b[1]]); +x += 3; +} else { +e.dataLength = x + 3; +v(n, x, u, l[C], h[C]); +x += 3; +} +A += s; +S += s; +} +} +} +e.indiceCount = e.vertexCount = x; +e.vertDirty = e.uvDirty = !1; +} +}, +fillBuffers: function(t, e) { +for (var i = t.node, r = i._color._val, s = e._meshBuffer, o = t._renderData, a = n(i, s, o, r), c = a.indiceOffset, l = a.vertexOffset, h = s._iData, u = 0; u < o.dataLength; u++) h[c + u] = l + u; +} +}; +}), { +"../../../../utils/utils": 252, +"../../utils": 279 +} ], +269: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../utils/utils").packToDynamicAtlas; +e.exports = { +updateRenderData: function(t) { +n(t, t._spriteFrame); +var e = t._renderData; +e && t.spriteFrame && e.vertDirty && this.updateVerts(t); +}, +fillBuffers: function(t, e) { +var i = t._renderData._data, n = t.node, r = n._color._val, s = n._worldMatrix, o = s.m00, a = s.m01, c = s.m04, l = s.m05, h = s.m12, u = s.m13, _ = e._meshBuffer, f = _.request(4, 6), d = f.indiceOffset, m = f.byteOffset >> 2, p = f.vertexOffset, v = _._vData, y = _._uintVData, g = _._iData, x = t._spriteFrame.uv; +v[m + 2] = x[0]; +v[m + 3] = x[1]; +v[m + 7] = x[2]; +v[m + 8] = x[3]; +v[m + 12] = x[4]; +v[m + 13] = x[5]; +v[m + 17] = x[6]; +v[m + 18] = x[7]; +var C = i[0], b = i[3], A = C.x, S = b.x, w = C.y, T = b.y, E = o * A, M = o * S, B = a * A, D = a * S, I = c * w, P = c * T, R = l * w, L = l * T; +v[m] = E + I + h; +v[m + 1] = B + R + u; +v[m + 5] = M + I + h; +v[m + 6] = D + R + u; +v[m + 10] = E + P + h; +v[m + 11] = B + L + u; +v[m + 15] = M + P + h; +v[m + 16] = D + L + u; +y[m + 4] = r; +y[m + 9] = r; +y[m + 14] = r; +y[m + 19] = r; +g[d++] = p; +g[d++] = p + 1; +g[d++] = p + 2; +g[d++] = p + 1; +g[d++] = p + 3; +g[d++] = p + 2; +}, +createData: function(t) { +var e = t.requestRenderData(); +e.dataLength = 4; +e.vertexCount = 4; +e.indiceCount = 6; +return e; +}, +updateVerts: function(t) { +var e = t._renderData, i = t.node, n = e._data, r = i.width, s = i.height, o = i.anchorX * r, a = i.anchorY * s, c = void 0, l = void 0, h = void 0, u = void 0; +if (t.trim) { +c = -o; +l = -a; +h = r - o; +u = s - a; +} else { +var _ = t.spriteFrame, f = _._originalSize.width, d = _._originalSize.height, m = _._rect.width, p = _._rect.height, v = _._offset, y = r / f, g = s / d, x = v.x + (f - m) / 2, C = v.x - (f - m) / 2, b = v.y + (d - p) / 2, A = v.y - (d - p) / 2; +c = x * y - o; +l = b * g - a; +h = r + C * y - o; +u = s + A * g - a; +} +n[0].x = c; +n[0].y = l; +n[3].x = h; +n[3].y = u; +e.vertDirty = !1; +} +}; +}), { +"../../../../utils/utils": 252 +} ], +270: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../utils/utils").packToDynamicAtlas; +e.exports = { +createData: function(t) { +var e = t.requestRenderData(); +e.dataLength = 20; +e.vertexCount = 16; +e.indiceCount = 54; +return e; +}, +updateRenderData: function(t) { +n(t, t._spriteFrame); +var e = t._renderData; +if (e && t.spriteFrame) { +if (e.vertDirty) { +this.updateVerts(t); +this.updateWorldVerts(t); +} +} +}, +updateVerts: function(t) { +var e = t._renderData, i = e._data, n = t.node, r = n.width, s = n.height, o = n.anchorX * r, a = n.anchorY * s, c = t.spriteFrame, l = c.insetLeft, h = c.insetRight, u = c.insetTop, _ = c.insetBottom, f = r - l - h, d = s - u - _, m = r / (l + h), p = s / (u + _); +m = isNaN(m) || m > 1 ? 1 : m; +p = isNaN(p) || p > 1 ? 1 : p; +f = f < 0 ? 0 : f; +d = d < 0 ? 0 : d; +i[0].x = -o; +i[0].y = -a; +i[1].x = l * m - o; +i[1].y = _ * p - a; +i[2].x = i[1].x + f; +i[2].y = i[1].y + d; +i[3].x = r - o; +i[3].y = s - a; +e.vertDirty = !1; +}, +fillBuffers: function(t, e) { +e.worldMatDirty && this.updateWorldVerts(t); +for (var i = t._renderData, n = t.node._color._val, r = i._data, s = e._meshBuffer, o = i.vertexCount, a = t.spriteFrame.uvSliced, c = s.request(o, i.indiceCount), l = c.indiceOffset, h = c.byteOffset >> 2, u = c.vertexOffset, _ = s._vData, f = s._uintVData, d = s._iData, m = 4; m < 20; ++m) { +var p = r[m], v = a[m - 4]; +_[h++] = p.x; +_[h++] = p.y; +_[h++] = v.u; +_[h++] = v.v; +f[h++] = n; +} +for (var y = 0; y < 3; ++y) for (var g = 0; g < 3; ++g) { +var x = u + 4 * y + g; +d[l++] = x; +d[l++] = x + 1; +d[l++] = x + 4; +d[l++] = x + 1; +d[l++] = x + 5; +d[l++] = x + 4; +} +}, +updateWorldVerts: function(t) { +for (var e = t.node, i = t._renderData._data, n = e._worldMatrix, r = n.m00, s = n.m01, o = n.m04, a = n.m05, c = n.m12, l = n.m13, h = 0; h < 4; ++h) for (var u = i[h], _ = 0; _ < 4; ++_) { +var f = i[_], d = i[4 + 4 * h + _]; +d.x = f.x * r + u.y * o + c; +d.y = f.x * s + u.y * a + l; +} +} +}; +}), { +"../../../../utils/utils": 252 +} ], +271: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../utils/utils").packToDynamicAtlas; +e.exports = { +vertexOffset: 5, +uvOffset: 2, +colorOffset: 4, +createData: function(t) { +return t.requestRenderData(); +}, +updateRenderData: function(t) { +n(t, t._spriteFrame); +var e = t._renderData, i = t.spriteFrame; +if (i && e && (e.uvDirty || e.vertDirty)) { +var r = t.node, s = Math.abs(r.width), o = Math.abs(r.height), a = r.anchorX * s, c = r.anchorY * o, l = i._rect, h = l.width, u = l.height, _ = s / h, f = o / u, d = Math.ceil(f), m = Math.ceil(_), p = e._data; +e.dataLength = Math.max(8, d + 1, m + 1); +for (var v = 0; v <= m; ++v) p[v].x = Math.min(h * v, s) - a; +for (var y = 0; y <= d; ++y) p[y].y = Math.min(u * y, o) - c; +e.vertexCount = d * m * 4; +e.indiceCount = d * m * 6; +e.uvDirty = !1; +e.vertDirty = !1; +} +}, +fillVertices: function(t, e, i, n, r, s) { +for (var o = i.m00, a = i.m01, c = i.m04, l = i.m05, h = i.m12, u = i.m13, _ = void 0, f = void 0, d = void 0, m = void 0, p = 0, v = n; p < v; ++p) { +d = s[p].y; +m = s[p + 1].y; +for (var y = 0, g = r; y < g; ++y) { +_ = s[y].x; +f = s[y + 1].x; +t[e] = _ * o + d * c + h; +t[e + 1] = _ * a + d * l + u; +t[e + 5] = f * o + d * c + h; +t[e + 6] = f * a + d * l + u; +t[e + 10] = _ * o + m * c + h; +t[e + 11] = _ * a + m * l + u; +t[e + 15] = f * o + m * c + h; +t[e + 16] = f * a + m * l + u; +e += 20; +} +} +}, +fillBuffers: function(t, e) { +var i = t.node, n = i.is3DNode, r = i._color._val, s = t._renderData, o = s._data, a = n ? e._meshBuffer3D : e._meshBuffer, c = a.request(s.vertexCount, s.indiceCount), l = c.indiceOffset, h = c.byteOffset >> 2, u = c.vertexOffset, _ = a._vData, f = a._uintVData, d = a._iData, m = t.spriteFrame._rotated, p = t.spriteFrame.uv, v = t.spriteFrame._rect, y = Math.abs(i.width), g = Math.abs(i.height), x = y / v.width, C = g / v.height, b = Math.ceil(C), A = Math.ceil(x), S = i._worldMatrix; +this.fillVertices(_, h, S, b, A, o); +for (var w = this.vertexOffset, T = this.uvOffset, E = this.colorOffset, M = w, B = 2 * w, D = 3 * w, I = 4 * w, P = void 0, R = void 0, L = 0, F = b; L < F; ++L) { +R = Math.min(1, C - L); +for (var O = 0, V = A; O < V; ++O) { +P = Math.min(1, x - O); +var N = h + T, k = N + 1; +if (m) { +_[N] = p[0]; +_[k] = p[1]; +_[N + M] = p[0]; +_[k + M] = p[1] + (p[7] - p[1]) * P; +_[N + B] = p[0] + (p[6] - p[0]) * R; +_[k + B] = p[1]; +_[N + D] = _[N + B]; +_[k + D] = _[k + M]; +} else { +_[N] = p[0]; +_[k] = p[1]; +_[N + M] = p[0] + (p[6] - p[0]) * P; +_[k + M] = p[1]; +_[N + B] = p[0]; +_[k + B] = p[1] + (p[7] - p[1]) * R; +_[N + D] = _[N + M]; +_[k + D] = _[k + B]; +} +f[h + E] = r; +f[h + E + M] = r; +f[h + E + B] = r; +f[h + E + D] = r; +h += I; +} +} +for (var z = s.indiceCount, G = 0; G < z; G += 6) { +d[l++] = u; +d[l++] = u + 1; +d[l++] = u + 2; +d[l++] = u + 1; +d[l++] = u + 3; +d[l++] = u + 2; +u += 4; +} +} +}; +}), { +"../../../../utils/utils": 252 +} ], +272: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../platform/js"), r = t("../2d/bar-filled"), s = t("../../utils").fillVerticesWithoutCalc3D, o = cc.vmath.vec3; +e.exports = n.addon({ +updateWorldVerts: function(t) { +for (var e = t.node, i = t._renderData._data, n = e._worldMatrix, r = 0; r < 4; r++) { +var s = i[r + 4], a = i[r]; +o.transformMat4(a, s, n); +} +}, +fillBuffers: function(t, e) { +e.worldMatDirty && this.updateWorldVerts(t); +var i = e._meshBuffer3D, n = t.node, r = s(n, i, t._renderData, n._color._val), o = i._iData, a = r.indiceOffset, c = r.vertexOffset; +o[a++] = c; +o[a++] = c + 1; +o[a++] = c + 2; +o[a++] = c + 1; +o[a++] = c + 3; +o[a++] = c + 2; +} +}, r); +}), { +"../../../../../platform/js": 221, +"../../utils": 279, +"../2d/bar-filled": 266 +} ], +273: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../platform/js"), r = t("../2d/mesh"), s = t("../../utils").fillVerticesWithoutCalc3D, o = cc.vmath.vec3, a = o.create(); +e.exports = n.addon({ +updateWorldVerts: function(t) { +for (var e = t.node, i = t._renderData, n = i._data, r = e._worldMatrix, s = 0, c = i.vertexCount; s < c; s++) { +var l = n[s + c], h = n[s]; +o.set(a, l.x, l.y, 0); +o.transformMat4(h, a, r); +} +}, +fillBuffers: function(t, e) { +var i = t.spriteFrame.vertices; +if (i) { +e.worldMatDirty && this.updateWorldVerts(t); +for (var n = e._meshBuffer3D, r = t.node, o = s(r, n, t._renderData, r._color._val), a = n._iData, c = o.indiceOffset, l = o.vertexOffset, h = i.triangles, u = 0, _ = h.length; u < _; u++) a[c++] = l + h[u]; +} +} +}, r); +}), { +"../../../../../platform/js": 221, +"../../utils": 279, +"../2d/mesh": 267 +} ], +274: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../platform/js"), r = t("../2d/radial-filled"), s = t("../../utils").fillVertices3D; +e.exports = n.addon({ +fillBuffers: function(t, e) { +for (var i = t.node, n = i._color._val, r = e._meshBuffer3D, o = t._renderData, a = s(i, r, o, n), c = a.indiceOffset, l = a.vertexOffset, h = r._iData, u = 0; u < o.dataLength; u++) h[c + u] = l + u; +} +}, r); +}), { +"../../../../../platform/js": 221, +"../../utils": 279, +"../2d/radial-filled": 268 +} ], +275: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../platform/js"), r = t("../2d/simple"), s = cc.vmath.vec3; +e.exports = n.addon({ +fillBuffers: (function() { +for (var t = [], e = 0; e < 4; e++) t.push(s.create()); +return function(e, i) { +var n = e._renderData._data, r = e.node, o = r._color._val, a = r._worldMatrix, c = i._meshBuffer3D, l = c.request(4, 6), h = l.byteOffset >> 2, u = l.indiceOffset, _ = l.vertexOffset, f = c._vData, d = c._uintVData, m = c._iData, p = n[0], v = n[3]; +s.set(t[0], p.x, p.y, 0); +s.set(t[1], v.x, p.y, 0); +s.set(t[2], p.x, v.y, 0); +s.set(t[3], v.x, v.y, 0); +for (var y = e._spriteFrame.uv, g = 0; g < 4; g++) { +var x = t[g]; +s.transformMat4(x, x, a); +f[h++] = x.x; +f[h++] = x.y; +f[h++] = x.z; +var C = 2 * g; +f[h++] = y[0 + C]; +f[h++] = y[1 + C]; +d[h++] = o; +} +m[u++] = _; +m[u++] = _ + 1; +m[u++] = _ + 2; +m[u++] = _ + 1; +m[u++] = _ + 3; +m[u++] = _ + 2; +}; +})() +}, r); +}), { +"../../../../../platform/js": 221, +"../2d/simple": 269 +} ], +276: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../platform/js"), r = t("../2d/sliced"), s = cc.vmath.vec3, o = s.create(); +e.exports = n.addon({ +fillBuffers: function(t, e) { +e.worldMatDirty && this.updateWorldVerts(t); +for (var i = t._renderData, n = t.node._color._val, r = i._data, s = e._meshBuffer3D, o = i.vertexCount, a = t.spriteFrame.uvSliced, c = s.request(o, i.indiceCount), l = c.byteOffset >> 2, h = c.indiceOffset, u = c.vertexOffset, _ = s._vData, f = s._uintVData, d = s._iData, m = 4; m < 20; ++m) { +var p = r[m], v = a[m - 4]; +_[l++] = p.x; +_[l++] = p.y; +_[l++] = p.z; +_[l++] = v.u; +_[l++] = v.v; +f[l++] = n; +} +for (var y = 0; y < 3; ++y) for (var g = 0; g < 3; ++g) { +var x = u + 4 * y + g; +d[h++] = x; +d[h++] = x + 1; +d[h++] = x + 4; +d[h++] = x + 1; +d[h++] = x + 5; +d[h++] = x + 4; +} +}, +updateWorldVerts: function(t) { +for (var e = t.node, i = t._renderData._data, n = e._worldMatrix, r = 0; r < 4; ++r) for (var a = i[r], c = 0; c < 4; ++c) { +var l = i[c], h = i[4 + 4 * r + c]; +s.set(o, l.x, a.y, 0); +s.transformMat4(h, o, n); +} +} +}, r); +}), { +"../../../../../platform/js": 221, +"../2d/sliced": 270 +} ], +277: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../../platform/js"), r = t("../2d/tiled"), s = cc.vmath.vec3; +e.exports = n.addon({ +vertexOffset: 6, +uvOffset: 3, +colorOffset: 5, +fillVertices: (function() { +for (var t = [], e = 0; e < 4; e++) t.push(s.create()); +return function(e, i, n, r, o, a) { +for (var c = void 0, l = void 0, h = void 0, u = void 0, _ = 0, f = r; _ < f; ++_) { +h = a[_].y; +u = a[_ + 1].y; +for (var d = 0, m = o; d < m; ++d) { +c = a[d].x; +l = a[d + 1].x; +s.set(t[0], c, h, 0); +s.set(t[1], l, h, 0); +s.set(t[2], c, u, 0); +s.set(t[3], l, u, 0); +for (var p = 0; p < 4; p++) { +var v = t[p]; +s.transformMat4(v, v, n); +var y = 6 * p; +e[i + y] = v.x; +e[i + y + 1] = v.y; +e[i + y + 2] = v.z; +} +i += 24; +} +} +}; +})() +}, r); +}), { +"../../../../../platform/js": 221, +"../2d/tiled": 271 +} ], +278: [ (function(t, e, i) { +"use strict"; +var n = t("../../../../components/CCSprite"), r = n.Type, s = n.FillType, o = t("./2d/simple"), a = t("./2d/sliced"), c = t("./2d/tiled"), l = t("./2d/radial-filled"), h = t("./2d/bar-filled"), u = t("./2d/mesh"), _ = t("./3d/simple"), f = t("./3d/sliced"), d = t("./3d/tiled"), m = t("./3d/radial-filled"), p = t("./3d/bar-filled"), v = t("./3d/mesh"), y = { +getAssembler: function(t) { +var e = t.node.is3DNode, i = e ? _ : o; +switch (t.type) { +case r.SLICED: +i = e ? f : a; +break; + +case r.TILED: +i = e ? d : c; +break; + +case r.FILLED: +i = t._fillType === s.RADIAL ? e ? m : l : e ? p : h; +break; + +case r.MESH: +i = e ? v : u; +} +return i; +}, +updateRenderData: function(t) { +return t.__allocedDatas; +} +}; +n._assembler = y; +e.exports = y; +}), { +"../../../../components/CCSprite": 111, +"./2d/bar-filled": 266, +"./2d/mesh": 267, +"./2d/radial-filled": 268, +"./2d/simple": 269, +"./2d/sliced": 270, +"./2d/tiled": 271, +"./3d/bar-filled": 272, +"./3d/mesh": 273, +"./3d/radial-filled": 274, +"./3d/simple": 275, +"./3d/sliced": 276, +"./3d/tiled": 277 +} ], +279: [ (function(t, e, i) { +"use strict"; +var n = cc.vmath.vec3, r = n.create(); +e.exports = { +fillVertices: function(t, e, i, n) { +for (var r = i.vertexCount, s = e.request(r, i.indiceCount), o = s.byteOffset >> 2, a = e._vData, c = e._uintVData, l = t._worldMatrix, h = l.m00, u = l.m01, _ = l.m04, f = l.m05, d = l.m12, m = l.m13, p = i._data, v = 0; v < r; v++) { +var y = p[v]; +a[o++] = y.x * h + y.y * _ + d; +a[o++] = y.x * u + y.y * f + m; +a[o++] = y.u; +a[o++] = y.v; +c[o++] = n; +} +return s; +}, +fillMeshVertices: function(t, e, i, n) { +for (var r = i.vertexCount, s = e.request(r, i.indiceCount), o = s.indiceOffset, a = s.byteOffset >> 2, c = s.vertexOffset, l = e._vData, h = e._uintVData, u = e._iData, _ = t._worldMatrix, f = _.m00, d = _.m01, m = _.m04, p = _.m05, v = _.m12, y = _.m13, g = i._data, x = 0; x < r; x++) { +var C = g[x]; +l[a++] = C.x * f + C.y * m + v; +l[a++] = C.x * d + C.y * p + y; +l[a++] = C.u; +l[a++] = C.v; +h[a++] = n; +} +for (var b = 0, A = r / 4; b < A; b++) { +var S = c + 4 * b; +u[o++] = S; +u[o++] = S + 1; +u[o++] = S + 2; +u[o++] = S + 1; +u[o++] = S + 3; +u[o++] = S + 2; +} +return s; +}, +fillVertices3D: function(t, e, i, s) { +for (var o = i.vertexCount, a = e.request(o, i.indiceCount), c = a.byteOffset >> 2, l = e._vData, h = e._uintVData, u = t._worldMatrix, _ = i._data, f = 0; f < o; f++) { +var d = _[f]; +n.set(r, d.x, d.y, 0); +n.transformMat4(r, r, u); +l[c++] = r.x; +l[c++] = r.y; +l[c++] = r.z; +l[c++] = d.u; +l[c++] = d.v; +h[c++] = s; +} +return a; +}, +fillMeshVertices3D: function(t, e, i, s) { +for (var o = i.vertexCount, a = e.request(o, i.indiceCount), c = a.indiceOffset, l = a.vertexOffset, h = a.byteOffset >> 2, u = e._vData, _ = e._uintVData, f = e._iData, d = t._worldMatrix, m = i._data, p = 0; p < o; p++) { +var v = m[p]; +n.set(r, v.x, v.y, 0); +n.transformMat4(r, r, d); +u[h++] = r.x; +u[h++] = r.y; +u[h++] = r.z; +u[h++] = v.u; +u[h++] = v.v; +_[h++] = s; +} +for (var y = 0, g = o / 4; y < g; y++) { +var x = l + 4 * y; +f[c++] = x; +f[c++] = x + 1; +f[c++] = x + 2; +f[c++] = x + 1; +f[c++] = x + 3; +f[c++] = x + 2; +} +return a; +}, +fillVerticesWithoutCalc: function(t, e, i, n) { +for (var r = i.vertexCount, s = e.request(r, i.indiceCount), o = s.byteOffset >> 2, a = e._vData, c = e._uintVData, l = i._data, h = 0; h < r; h++) { +var u = l[h]; +a[o++] = u.x; +a[o++] = u.y; +a[o++] = u.u; +a[o++] = u.v; +c[o++] = n; +} +return s; +}, +fillVerticesWithoutCalc3D: function(t, e, i, n) { +for (var r = i.vertexCount, s = e.request(r, i.indiceCount).byteOffset >> 2, o = e._vData, a = e._uintVData, c = i._data, l = 0; l < r; l++) { +var h = c[l]; +o[s++] = h.x; +o[s++] = h.y; +o[s++] = h.z; +o[s++] = h.u; +o[s++] = h.v; +a[s++] = n; +} +} +}; +}), {} ], +280: [ (function(t, e, i) { +"use strict"; +var n = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../../../renderer/gfx")); +var r = cc.Class({ +name: "cc.MeshBuffer", +ctor: function(t, e) { +this.byteStart = 0; +this.byteOffset = 0; +this.indiceStart = 0; +this.indiceOffset = 0; +this.vertexStart = 0; +this.vertexOffset = 0; +this._vertexFormat = e; +this._vertexBytes = this._vertexFormat._bytes; +this._arrOffset = 0; +this._vbArr = []; +this._vb = new n.default.VertexBuffer(t._device, e, n.default.USAGE_DYNAMIC, new ArrayBuffer(), 0); +this._vbArr[0] = this._vb; +this._ibArr = []; +this._ib = new n.default.IndexBuffer(t._device, n.default.INDEX_FMT_UINT16, n.default.USAGE_STATIC, new ArrayBuffer(), 0); +this._ibArr[0] = this._ib; +this._vData = null; +this._uintVData = null; +this._iData = null; +this._batcher = t; +if (cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser && cc.sys.isMobile && /iPhone OS 14/.test(window.navigator.userAgent)) { +this._initVDataCount = 256 * e._bytes * 4; +this._initIDataCount = 76800; +} else { +this._initVDataCount = 256 * e._bytes; +this._initIDataCount = 1536; +} +this._offsetInfo = { +byteOffset: 0, +vertexOffset: 0, +indiceOffset: 0 +}; +this._reallocBuffer(); +}, +uploadData: function() { +if (0 !== this.byteOffset && this._dirty) { +var t = new Float32Array(this._vData.buffer, 0, this.byteOffset >> 2), e = new Uint16Array(this._iData.buffer, 0, this.indiceOffset); +this._vb.update(0, t); +this._ib.update(0, e); +this._dirty = !1; +} +}, +switchBuffer: function() { +var t = ++this._arrOffset; +this.byteStart = 0; +this.byteOffset = 0; +this.vertexStart = 0; +this.vertexOffset = 0; +this.indiceStart = 0; +this.indiceOffset = 0; +if (t < this._vbArr.length) { +this._vb = this._vbArr[t]; +this._ib = this._ibArr[t]; +} else { +this._vb = new n.default.VertexBuffer(this._batcher._device, this._vertexFormat, n.default.USAGE_DYNAMIC, new ArrayBuffer(), 0); +this._vbArr[t] = this._vb; +this._vb._bytes = this._vData.byteLength; +this._ib = new n.default.IndexBuffer(this._batcher._device, n.default.INDEX_FMT_UINT16, n.default.USAGE_STATIC, new ArrayBuffer(), 0); +this._ibArr[t] = this._ib; +this._ib._bytes = this._iData.byteLength; +} +}, +checkAndSwitchBuffer: function(t) { +if (this.vertexOffset + t > 65535) { +this.uploadData(); +this._batcher._flush(); +cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser && cc.sys.isMobile && /iPhone OS 14/.test(window.navigator.userAgent) || this.switchBuffer(); +} +}, +requestStatic: function(t, e) { +this.checkAndSwitchBuffer(t); +var i = this.byteOffset + t * this._vertexBytes, n = this.indiceOffset + e, r = this._vData.byteLength, s = this._iData.length; +if (i > r || n > s) { +for (;r < i || s < n; ) { +this._initVDataCount *= 2; +this._initIDataCount *= 2; +r = 4 * this._initVDataCount; +s = this._initIDataCount; +} +this._reallocBuffer(); +} +var o = this._offsetInfo; +o.vertexOffset = this.vertexOffset; +this.vertexOffset += t; +o.indiceOffset = this.indiceOffset; +this.indiceOffset += e; +o.byteOffset = this.byteOffset; +this.byteOffset = i; +this._dirty = !0; +}, +request: function(t, e) { +if (this._batcher._buffer !== this) { +this._batcher._flush(); +this._batcher._buffer = this; +} +this.requestStatic(t, e); +return this._offsetInfo; +}, +_reallocBuffer: function() { +this._reallocVData(!0); +this._reallocIData(!0); +}, +_reallocVData: function(t) { +var e = void 0; +this._vData && (e = new Uint8Array(this._vData.buffer)); +this._vData = new Float32Array(this._initVDataCount); +this._uintVData = new Uint32Array(this._vData.buffer); +var i = new Uint8Array(this._uintVData.buffer); +if (e && t) for (var n = 0, r = e.length; n < r; n++) i[n] = e[n]; +this._vb._bytes = this._vData.byteLength; +}, +_reallocIData: function(t) { +var e = this._iData; +this._iData = new Uint16Array(this._initIDataCount); +if (e && t) for (var i = this._iData, n = 0, r = e.length; n < r; n++) i[n] = e[n]; +this._ib._bytes = this._iData.byteLength; +}, +reset: function() { +this._arrOffset = 0; +this._vb = this._vbArr[0]; +this._ib = this._ibArr[0]; +this.byteStart = 0; +this.byteOffset = 0; +this.indiceStart = 0; +this.indiceOffset = 0; +this.vertexStart = 0; +this.vertexOffset = 0; +this._dirty = !1; +}, +destroy: function() { +for (var t = 0; t < this._vbArr.length; t++) { +this._vbArr[t].destroy(); +} +this._vbArr = null; +for (var e = 0; e < this._ibArr.length; e++) { +this._ibArr[e].destroy(); +} +this._ibArr = null; +this._ib = null; +this._vb = null; +} +}); +cc.MeshBuffer = e.exports = r; +}), { +"../../../renderer/gfx": 349 +} ], +281: [ (function(t, e, i) { +"use strict"; +var n = o(t("../../../renderer/core/input-assembler")), r = o(t("../../../renderer/memop/recycle-pool")), s = o(t("../../../renderer/scene/model")); +function o(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var a = t("./vertex-format"), c = a.vfmtPosUvColor, l = a.vfmt3D, h = t("./quad-buffer"), u = t("./mesh-buffer"), _ = t("./spine-buffer"), f = t("../../assets/material/CCMaterial"), d = new (t("../../platform/id-generater"))("VertextFormat"), m = {}, p = new f(), v = new n.default(); +v._count = 0; +var y = function(t, e) { +this._renderScene = e; +this._device = t; +this.walking = !1; +this.material = p; +this.cullingMask = 1; +this._iaPool = new r.default(function() { +return new n.default(); +}, 16); +this._modelPool = new r.default(function() { +return new s.default(); +}, 16); +this._quadBuffer = this.getBuffer("quad", c); +this._meshBuffer = this.getBuffer("mesh", c); +this._quadBuffer3D = this.getBuffer("quad", l); +this._meshBuffer3D = this.getBuffer("mesh", l); +this._buffer = this._quadBuffer; +this._batchedModels = []; +this._dummyNode = new cc.Node(); +this._sortKey = 0; +this.node = this._dummyNode; +this.parentOpacity = 1; +this.parentOpacityDirty = 0; +this.worldMatDirty = 0; +this.customProperties = null; +}, g = cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser && cc.sys.isMobile && /iPhone OS 14/.test(window.navigator.userAgent); +y.prototype = { +constructor: y, +reset: function() { +this._iaPool.reset(); +for (var t = this._renderScene, e = this._batchedModels, i = 0; i < e.length; ++i) { +e[i].setInputAssembler(null); +e[i].setEffect(null); +t.removeModel(e[i]); +} +this._modelPool.reset(); +e.length = 0; +this._sortKey = 0; +for (var n in m) m[n].reset(); +this._buffer = this._quadBuffer; +this.node = this._dummyNode; +this.material = p; +this.cullingMask = 1; +this.parentOpacity = 1; +this.parentOpacityDirty = 0; +this.worldMatDirty = 0; +this.customProperties = null; +}, +_flushMaterial: function(t) { +this.material = t; +var e = t.effect; +if (e) { +var i = this._modelPool.add(); +this._batchedModels.push(i); +i.sortKey = this._sortKey++; +i._cullingMask = this.cullingMask; +i.setNode(this.node); +i.setEffect(e, null); +i.setInputAssembler(v); +this._renderScene.addModel(i); +} +}, +_flush: function() { +var t = this.material, e = this._buffer, i = e.indiceStart, n = e.indiceOffset - i; +if (this.walking && t && !(n <= 0)) { +var r = t.effect; +if (r) { +var s = this._iaPool.add(); +s._vertexBuffer = e._vb; +s._indexBuffer = e._ib; +s._start = i; +s._count = n; +var o = this._modelPool.add(); +this._batchedModels.push(o); +o.sortKey = this._sortKey++; +o._cullingMask = this.cullingMask; +o.setNode(this.node); +o.setEffect(r, this.customProperties); +o.setInputAssembler(s); +this._renderScene.addModel(o); +if (g) { +e.uploadData(); +e.switchBuffer(); +} else { +e.byteStart = e.byteOffset; +e.indiceStart = e.indiceOffset; +e.vertexStart = e.vertexOffset; +} +} +} +}, +_flushIA: function(t) { +var e = t.material; +if (t.ia && e) { +this.material = e; +var i = e.effect; +if (i) { +var n = this._modelPool.add(); +this._batchedModels.push(n); +n.sortKey = this._sortKey++; +n._cullingMask = this.cullingMask; +n.setNode(this.node); +n.setEffect(i, this.customProperties); +n.setInputAssembler(t.ia); +this._renderScene.addModel(n); +} +} +}, +_commitComp: function(t, e, i) { +var n = t.sharedMaterials[0]; +if (n && n.getHash() !== this.material.getHash() || this.cullingMask !== i) { +this._flush(); +this.node = n.getDefine("_USE_MODEL") ? t.node : this._dummyNode; +this.material = n; +this.cullingMask = i; +} +e.fillBuffers(t, this); +}, +_commitIA: function(t, e, i) { +this._flush(); +this.cullingMask = i; +this.material = t.sharedMaterials[0] || p; +this.node = this.material.getDefine("_USE_MODEL") ? t.node : this._dummyNode; +e.renderIA(t, this); +}, +terminate: function() { +cc.dynamicAtlasManager && cc.dynamicAtlasManager.enabled && cc.dynamicAtlasManager.update(); +this._flush(); +for (var t in m) m[t].uploadData(); +}, +getBuffer: function(t, e) { +e.name || (e.name = d.getNewId()); +var i = t + e.name, n = m[i]; +if (!n) { +if ("mesh" === t) n = new u(this, e); else if ("quad" === t) n = new h(this, e); else { +if ("spine" !== t) { +cc.error("Not support buffer type [" + t + "]"); +return null; +} +n = new _(this, e); +} +m[i] = n; +} +return n; +} +}; +e.exports = y; +}), { +"../../../renderer/core/input-assembler": 339, +"../../../renderer/memop/recycle-pool": 364, +"../../../renderer/scene/model": 373, +"../../assets/material/CCMaterial": 75, +"../../platform/id-generater": 217, +"./mesh-buffer": 280, +"./quad-buffer": 282, +"./spine-buffer": 283, +"./vertex-format": 284 +} ], +282: [ (function(t, e, i) { +"use strict"; +var n = t("./mesh-buffer"), r = cc.Class({ +name: "cc.QuadBuffer", +extends: n, +_fillQuadBuffer: function() { +for (var t = this._initIDataCount / 6, e = this._iData, i = 0, n = 0; i < t; i++) { +var r = 4 * i; +e[n++] = r; +e[n++] = r + 1; +e[n++] = r + 2; +e[n++] = r + 1; +e[n++] = r + 3; +e[n++] = r + 2; +} +var s = new Uint16Array(this._iData.buffer, 0, 6 * t); +this._ib.update(0, s); +}, +uploadData: function() { +if (0 !== this.byteOffset && this._dirty) { +var t = new Float32Array(this._vData.buffer, 0, this.byteOffset >> 2); +this._vb.update(0, t); +this._dirty = !1; +} +}, +switchBuffer: function() { +this._super(); +if (this.indiceOffset > 0) { +var t = new Uint16Array(this._iData.buffer, 0, this.indiceOffset); +this._ib.update(0, t); +} +}, +_reallocBuffer: function() { +this._reallocVData(!0); +this._reallocIData(); +this._fillQuadBuffer(); +} +}); +cc.QuadBuffer = e.exports = r; +}), { +"./mesh-buffer": 280 +} ], +283: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.SpineBuffer", +extends: t("./mesh-buffer"), +requestStatic: function(t, e) { +this.checkAndSwitchBuffer(t); +var i = this.byteOffset + t * this._vertexBytes, n = this.indiceOffset + e, r = this._vData.byteLength, s = this._iData.length; +if (i > r || n > s) { +for (;r < i || s < n; ) { +this._initVDataCount *= 2; +this._initIDataCount *= 2; +r = 4 * this._initVDataCount; +s = this._initIDataCount; +} +this._reallocBuffer(); +} +var o = this._offsetInfo; +o.vertexOffset = this.vertexOffset; +o.indiceOffset = this.indiceOffset; +o.byteOffset = this.byteOffset; +}, +adjust: function(t, e) { +this.vertexOffset += t; +this.indiceOffset += e; +this.byteOffset = this.byteOffset + t * this._vertexBytes; +this._dirty = !0; +} +}); +cc.SpineBuffer = e.exports = n; +}), { +"./mesh-buffer": 280 +} ], +284: [ (function(t, e, i) { +"use strict"; +var n = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../../../renderer/gfx")); +var r = new n.default.VertexFormat([ { +name: n.default.ATTR_POSITION, +type: n.default.ATTR_TYPE_FLOAT32, +num: 3 +}, { +name: n.default.ATTR_UV0, +type: n.default.ATTR_TYPE_FLOAT32, +num: 2 +}, { +name: n.default.ATTR_COLOR, +type: n.default.ATTR_TYPE_UINT8, +num: 4, +normalize: !0 +} ]); +r.name = "vfmt3D"; +n.default.VertexFormat.XYZ_UV_Color = r; +var s = new n.default.VertexFormat([ { +name: n.default.ATTR_POSITION, +type: n.default.ATTR_TYPE_FLOAT32, +num: 2 +}, { +name: n.default.ATTR_UV0, +type: n.default.ATTR_TYPE_FLOAT32, +num: 2 +}, { +name: n.default.ATTR_COLOR, +type: n.default.ATTR_TYPE_UINT8, +num: 4, +normalize: !0 +} ]); +s.name = "vfmtPosUvColor"; +n.default.VertexFormat.XY_UV_Color = s; +var o = new n.default.VertexFormat([ { +name: n.default.ATTR_POSITION, +type: n.default.ATTR_TYPE_FLOAT32, +num: 2 +}, { +name: n.default.ATTR_UV0, +type: n.default.ATTR_TYPE_FLOAT32, +num: 2 +}, { +name: n.default.ATTR_COLOR, +type: n.default.ATTR_TYPE_UINT8, +num: 4, +normalize: !0 +}, { +name: n.default.ATTR_COLOR0, +type: n.default.ATTR_TYPE_UINT8, +num: 4, +normalize: !0 +} ]); +o.name = "vfmtPosUvTwoColor"; +n.default.VertexFormat.XY_UV_Two_Color = o; +var a = new n.default.VertexFormat([ { +name: n.default.ATTR_POSITION, +type: n.default.ATTR_TYPE_FLOAT32, +num: 2 +}, { +name: n.default.ATTR_UV0, +type: n.default.ATTR_TYPE_FLOAT32, +num: 2 +} ]); +a.name = "vfmtPosUv"; +n.default.VertexFormat.XY_UV = a; +var c = new n.default.VertexFormat([ { +name: n.default.ATTR_POSITION, +type: n.default.ATTR_TYPE_FLOAT32, +num: 2 +}, { +name: n.default.ATTR_COLOR, +type: n.default.ATTR_TYPE_UINT8, +num: 4, +normalize: !0 +} ]); +c.name = "vfmtPosColor"; +n.default.VertexFormat.XY_Color = c; +var l = new n.default.VertexFormat([ { +name: n.default.ATTR_POSITION, +type: n.default.ATTR_TYPE_FLOAT32, +num: 2 +} ]); +l.name = "vfmtPos"; +n.default.VertexFormat.XY = l; +e.exports = { +vfmt3D: r, +vfmtPosUvColor: s, +vfmtPosUvTwoColor: o, +vfmtPosUv: a, +vfmtPosColor: c, +vfmtPos: l +}; +}), { +"../../../renderer/gfx": 349 +} ], +285: [ (function(t, e, i) { +"use strict"; +t("../platform/CCSys"); +var n = /(\.[^\.\/\?\\]*)(\?.*)?$/, r = /((.*)(\/|\\|\\\\))?(.*?\..*$)?/, s = /[^\.\/]+\/\.\.\//; +cc.path = { +join: function() { +for (var t = arguments.length, e = "", i = 0; i < t; i++) e = (e + ("" === e ? "" : "/") + arguments[i]).replace(/(\/|\\\\)$/, ""); +return e; +}, +extname: function(t) { +var e = n.exec(t); +return e ? e[1] : ""; +}, +mainFileName: function(t) { +if (t) { +var e = t.lastIndexOf("."); +if (-1 !== e) return t.substring(0, e); +} +return t; +}, +basename: function(t, e) { +var i = t.indexOf("?"); +i > 0 && (t = t.substring(0, i)); +var n = /(\/|\\)([^\/\\]+)$/g.exec(t.replace(/(\/|\\)$/, "")); +if (!n) return null; +var r = n[2]; +return e && t.substring(t.length - e.length).toLowerCase() === e.toLowerCase() ? r.substring(0, r.length - e.length) : r; +}, +dirname: function(t) { +var e = r.exec(t); +return e ? e[2] : ""; +}, +changeExtname: function(t, e) { +e = e || ""; +var i = t.indexOf("?"), n = ""; +if (i > 0) { +n = t.substring(i); +t = t.substring(0, i); +} +return (i = t.lastIndexOf(".")) < 0 ? t + e + n : t.substring(0, i) + e + n; +}, +changeBasename: function(t, e, i) { +if (0 === e.indexOf(".")) return this.changeExtname(t, e); +var n = t.indexOf("?"), r = "", s = i ? this.extname(t) : ""; +if (n > 0) { +r = t.substring(n); +t = t.substring(0, n); +} +n = (n = t.lastIndexOf("/")) <= 0 ? 0 : n + 1; +return t.substring(0, n) + e + s + r; +}, +_normalize: function(t) { +var e = t = String(t); +do { +e = t; +t = t.replace(s, ""); +} while (e.length !== t.length); +return t; +}, +sep: cc.sys.os === cc.sys.OS_WINDOWS ? "\\" : "/", +stripSep: function(t) { +return t.replace(/[\/\\]$/, ""); +} +}; +e.exports = cc.path; +}), { +"../platform/CCSys": 210 +} ], +286: [ (function(t, e, i) { +"use strict"; +var n = function(t, e, i, n, r, s) { +this.a = t; +this.b = e; +this.c = i; +this.d = n; +this.tx = r; +this.ty = s; +}; +n.create = function(t, e, i, n, r, s) { +return { +a: t, +b: e, +c: i, +d: n, +tx: r, +ty: s +}; +}; +n.identity = function() { +return { +a: 1, +b: 0, +c: 0, +d: 1, +tx: 0, +ty: 0 +}; +}; +n.clone = function(t) { +return { +a: t.a, +b: t.b, +c: t.c, +d: t.d, +tx: t.tx, +ty: t.ty +}; +}; +n.concat = function(t, e, i) { +var n = e.a, r = e.b, s = e.c, o = e.d, a = e.tx, c = e.ty; +t.a = n * i.a + r * i.c; +t.b = n * i.b + r * i.d; +t.c = s * i.a + o * i.c; +t.d = s * i.b + o * i.d; +t.tx = a * i.a + c * i.c + i.tx; +t.ty = a * i.b + c * i.d + i.ty; +return t; +}; +n.invert = function(t, e) { +var i = e.a, n = e.b, r = e.c, s = e.d, o = 1 / (i * s - n * r), a = e.tx, c = e.ty; +t.a = o * s; +t.b = -o * n; +t.c = -o * r; +t.d = o * i; +t.tx = o * (r * c - s * a); +t.ty = o * (n * a - i * c); +return t; +}; +n.fromMat4 = function(t, e) { +t.a = e.m00; +t.b = e.m01; +t.c = e.m04; +t.d = e.m05; +t.tx = e.m12; +t.ty = e.m13; +return t; +}; +n.transformVec2 = function(t, e, i, n) { +var r, s; +if (void 0 === n) { +n = i; +r = e.x; +s = e.y; +} else { +r = e; +s = i; +} +t.x = n.a * r + n.c * s + n.tx; +t.y = n.b * r + n.d * s + n.ty; +return t; +}; +n.transformSize = function(t, e, i) { +t.width = i.a * e.width + i.c * e.height; +t.height = i.b * e.width + i.d * e.height; +return t; +}; +n.transformRect = function(t, e, i) { +var n = e.x, r = e.y, s = n + e.width, o = r + e.height, a = i.a * n + i.c * r + i.tx, c = i.b * n + i.d * r + i.ty, l = i.a * s + i.c * r + i.tx, h = i.b * s + i.d * r + i.ty, u = i.a * n + i.c * o + i.tx, _ = i.b * n + i.d * o + i.ty, f = i.a * s + i.c * o + i.tx, d = i.b * s + i.d * o + i.ty, m = Math.min(a, l, u, f), p = Math.max(a, l, u, f), v = Math.min(c, h, _, d), y = Math.max(c, h, _, d); +t.x = m; +t.y = v; +t.width = p - m; +t.height = y - v; +return t; +}; +n.transformObb = function(t, e, i, n, r, s) { +var o = r.x, a = r.y, c = r.width, l = r.height, h = s.a * o + s.c * a + s.tx, u = s.b * o + s.d * a + s.ty, _ = s.a * c, f = s.b * c, d = s.c * l, m = s.d * l; +e.x = h; +e.y = u; +i.x = _ + h; +i.y = f + u; +t.x = d + h; +t.y = m + u; +n.x = _ + d + h; +n.y = f + m + u; +}; +cc.AffineTransform = e.exports = n; +}), {} ], +287: [ (function(i, n, r) { +"use strict"; +var s = i("../platform/CCObject").Flags, o = i("./misc"), a = i("../platform/js"), c = i("../platform/id-generater"), l = i("../event-manager"), h = i("../renderer/render-flow"), u = s.Destroying, _ = s.DontDestroy, f = s.Deactivating, d = new c("Node"); +function m(i) { +if (!i) { +cc.errorID(3804); +return null; +} +return "string" === ("object" === (e = typeof i) ? t(i) : e) ? a.getClassByName(i) : i; +} +function p(t, e) { +if (e._sealed) for (var i = 0; i < t._components.length; ++i) { +var n = t._components[i]; +if (n.constructor === e) return n; +} else for (var r = 0; r < t._components.length; ++r) { +var s = t._components[r]; +if (s instanceof e) return s; +} +return null; +} +function v(t, e, i) { +if (e._sealed) for (var n = 0; n < t._components.length; ++n) { +var r = t._components[n]; +r.constructor === e && i.push(r); +} else for (var s = 0; s < t._components.length; ++s) { +var o = t._components[s]; +o instanceof e && i.push(o); +} +} +function y(t, e) { +for (var i = 0; i < t.length; ++i) { +var n = t[i], r = p(n, e); +if (r) return r; +if (n._children.length > 0 && (r = y(n._children, e))) return r; +} +return null; +} +function g(t, e, i) { +for (var n = 0; n < t.length; ++n) { +var r = t[n]; +v(r, e, i); +r._children.length > 0 && g(r._children, e, i); +} +} +var x = cc.Class({ +name: "cc._BaseNode", +extends: cc.Object, +properties: { +_parent: null, +_children: [], +_active: !0, +_level: 0, +_components: [], +_prefab: null, +_persistNode: { +get: function() { +return (this._objFlags & _) > 0; +}, +set: function(t) { +t ? this._objFlags |= _ : this._objFlags &= ~_; +} +}, +name: { +get: function() { +return this._name; +}, +set: function(t) { +0; +this._name = t; +} +}, +uuid: { +get: function() { +return this._id; +} +}, +children: { +get: function() { +return this._children; +} +}, +childrenCount: { +get: function() { +return this._children.length; +} +}, +active: { +get: function() { +return this._active; +}, +set: function(t) { +t = !!t; +if (this._active !== t) { +this._active = t; +var e = this._parent; +if (e) { +e._activeInHierarchy && cc.director._nodeActivator.activateNode(this, t); +} +} +} +}, +activeInHierarchy: { +get: function() { +return this._activeInHierarchy; +} +} +}, +ctor: function(t) { +this._name = void 0 !== t ? t : "New Node"; +this._activeInHierarchy = !1; +this._id = d.getNewId(); +cc.director._scheduler && cc.director._scheduler.enableForTarget(this); +this.__eventTargets = []; +this._renderFlag = h.FLAG_TRANSFORM; +}, +getParent: function() { +return this._parent; +}, +setParent: function(t) { +if (this._parent !== t) { +0; +var e = this._parent; +0; +this._parent = t || null; +this._onSetParent(t); +if (t) { +0; +this._level = t._level + 1; +l._setDirtyForNode(this); +t._children.push(this); +t.emit && t.emit("child-added", this); +t._renderFlag |= h.FLAG_CHILDREN; +} +if (e) { +if (!(e._objFlags & u)) { +var i = e._children.indexOf(this); +0; +e._children.splice(i, 1); +e.emit && e.emit("child-removed", this); +this._onHierarchyChanged(e); +0 === e._children.length && (e._renderFlag &= ~h.FLAG_CHILDREN); +} +} else t && this._onHierarchyChanged(null); +} +}, +attr: function(t) { +a.mixin(this, t); +}, +getChildByUuid: function(t) { +if (!t) { +cc.log("Invalid uuid"); +return null; +} +for (var e = this._children, i = 0, n = e.length; i < n; i++) if (e[i]._id === t) return e[i]; +return null; +}, +getChildByName: function(t) { +if (!t) { +cc.log("Invalid name"); +return null; +} +for (var e = this._children, i = 0, n = e.length; i < n; i++) if (e[i]._name === t) return e[i]; +return null; +}, +addChild: function(t) { +0; +cc.assertID(t, 1606); +cc.assertID(null === t._parent, 1605); +t.setParent(this); +}, +insertChild: function(t, e) { +t.parent = this; +t.setSiblingIndex(e); +}, +getSiblingIndex: function() { +return this._parent ? this._parent._children.indexOf(this) : 0; +}, +setSiblingIndex: function(t) { +if (this._parent) if (this._parent._objFlags & f) cc.errorID(3821); else { +var e = this._parent._children; +t = -1 !== t ? t : e.length - 1; +var i = e.indexOf(this); +if (t !== i) { +e.splice(i, 1); +t < e.length ? e.splice(t, 0, this) : e.push(this); +this._onSiblingIndexChanged && this._onSiblingIndexChanged(t); +} +} +}, +walk: function(t, e) { +var i, n, r, s, o = cc._BaseNode, a = 1, c = o._stacks[o._stackId]; +if (!c) { +c = []; +o._stacks.push(c); +} +o._stackId++; +c.length = 0; +c[0] = this; +var l = null; +s = !1; +for (;a; ) if (n = c[--a]) { +!s && t ? t(n) : s && e && e(n); +c[a] = null; +if (s) { +s = !1; +if (i) if (i[++r]) { +c[a] = i[r]; +a++; +} else if (l) { +c[a] = l; +a++; +s = !0; +if (l._parent) { +r = (i = l._parent._children).indexOf(l); +l = l._parent; +} else { +l = null; +i = null; +} +if (r < 0) break; +} +} else if (n._children.length > 0) { +l = n; +i = n._children; +r = 0; +c[a] = i[r]; +a++; +} else { +c[a] = n; +a++; +s = !0; +} +} +c.length = 0; +o._stackId--; +}, +cleanup: function() {}, +removeFromParent: function(t) { +if (this._parent) { +void 0 === t && (t = !0); +this._parent.removeChild(this, t); +} +}, +removeChild: function(t, e) { +if (this._children.indexOf(t) > -1) { +(e || void 0 === e) && t.cleanup(); +t.parent = null; +} +}, +removeAllChildren: function(t) { +var e = this._children; +void 0 === t && (t = !0); +for (var i = e.length - 1; i >= 0; i--) { +var n = e[i]; +if (n) { +t && n.cleanup(); +n.parent = null; +} +} +this._children.length = 0; +}, +isChildOf: function(t) { +var e = this; +do { +if (e === t) return !0; +e = e._parent; +} while (e); +return !1; +}, +getComponent: function(t) { +var e = m(t); +return e ? p(this, e) : null; +}, +getComponents: function(t) { +var e = m(t), i = []; +e && v(this, e, i); +return i; +}, +getComponentInChildren: function(t) { +var e = m(t); +return e ? y(this._children, e) : null; +}, +getComponentsInChildren: function(t) { +var e = m(t), i = []; +if (e) { +v(this, e, i); +g(this._children, e, i); +} +return i; +}, +_checkMultipleComp: !1, +addComponent: function(i) { +0; +var n; +if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { +if (!(n = a.getClassByName(i))) { +cc.errorID(3807, i); +cc._RFpeek() && cc.errorID(3808, i); +return null; +} +} else { +if (!i) { +cc.errorID(3804); +return null; +} +n = i; +} +if ("function" !== ("object" === (e = typeof n) ? t(n) : e)) { +cc.errorID(3809); +return null; +} +if (!a.isChildClassOf(n, cc.Component)) { +cc.errorID(3810); +return null; +} +0; +var r = n._requireComponent; +if (r && !this.getComponent(r)) { +if (!this.addComponent(r)) return null; +} +var s = new n(); +s.node = this; +this._components.push(s); +0; +this._activeInHierarchy && cc.director._nodeActivator.activateComp(s); +return s; +}, +_addComponentAt: !1, +removeComponent: function(t) { +if (t) { +t instanceof cc.Component || (t = this.getComponent(t)); +t && t.destroy(); +} else cc.errorID(3813); +}, +_getDependComponent: !1, +_removeComponent: function(t) { +if (t) { +if (!(this._objFlags & u)) { +var e = this._components.indexOf(t); +if (-1 !== e) { +this._components.splice(e, 1); +0; +} else t.node !== this && cc.errorID(3815); +} +} else cc.errorID(3814); +}, +destroy: function() { +cc.Object.prototype.destroy.call(this) && (this.active = !1); +}, +destroyAllChildren: function() { +for (var t = this._children, e = 0; e < t.length; ++e) t[e].destroy(); +}, +_onSetParent: function(t) {}, +_onPostActivated: function() {}, +_onBatchRestored: function() {}, +_onBatchCreated: function() {}, +_onHierarchyChanged: function(t) { +var e = this._parent; +if (this._persistNode && !(e instanceof cc.Scene)) { +cc.game.removePersistRootNode(this); +0; +} +var i = this._active && !(!e || !e._activeInHierarchy); +this._activeInHierarchy !== i && cc.director._nodeActivator.activateNode(this, i); +}, +_instantiate: function(t) { +t || (t = cc.instantiate._clone(this, this)); +var e = this._prefab; +e && this === e.root && e.sync; +t._parent = null; +t._onBatchRestored(); +return t; +}, +_registerIfAttached: !1, +_onPreDestroy: function() { +var t, e; +this._objFlags |= u; +var i = this._parent, n = i && i._objFlags & u; +0; +var r = this._children; +for (t = 0, e = r.length; t < e; ++t) r[t]._destroyImmediate(); +for (t = 0, e = this._components.length; t < e; ++t) { +this._components[t]._destroyImmediate(); +} +var s = this.__eventTargets; +for (t = 0, e = s.length; t < e; ++t) { +var o = s[t]; +o && o.targetOff(this); +} +s.length = 0; +this._persistNode && cc.game.removePersistRootNode(this); +if (!n && i) { +var a = i._children.indexOf(this); +i._children.splice(a, 1); +i.emit && i.emit("child-removed", this); +} +return n; +}, +onRestore: !1 +}); +x.idGenerater = d; +x._stacks = [ [] ]; +x._stackId = 0; +x.prototype._onPreDestroyBase = x.prototype._onPreDestroy; +0; +x.prototype._onHierarchyChangedBase = x.prototype._onHierarchyChanged; +0; +o.propertyDefine(x, [ "parent", "name", "children", "childrenCount" ], {}); +0; +cc._BaseNode = n.exports = x; +}), { +"../event-manager": 131, +"../platform/CCObject": 207, +"../platform/id-generater": 217, +"../platform/js": 221, +"../renderer/render-flow": 245, +"./misc": 297 +} ], +288: [ (function(t, e, i) { +"use strict"; +var n = 1e-6; +e.exports = { +binarySearchEpsilon: function(t, e) { +for (var i = 0, r = t.length - 1, s = r >>> 1; i <= r; s = i + r >>> 1) { +var o = t[s]; +if (o > e + n) r = s - 1; else { +if (!(o < e - n)) return s; +i = s + 1; +} +} +return ~i; +} +}; +}), {} ], +289: [ (function(t, e, i) { +"use strict"; +var n = t("../components/CCRenderComponent"), r = t("../platform/CCMacro").BlendFactor, s = t("../../renderer/gfx"), o = cc.Class({ +properties: { +_srcBlendFactor: r.SRC_ALPHA, +_dstBlendFactor: r.ONE_MINUS_SRC_ALPHA, +srcBlendFactor: { +get: function() { +return this._srcBlendFactor; +}, +set: function(t) { +if (this._srcBlendFactor !== t) { +this._srcBlendFactor = t; +this._updateBlendFunc(); +} +}, +animatable: !1, +type: r, +tooltip: !1, +visible: !0 +}, +dstBlendFactor: { +get: function() { +return this._dstBlendFactor; +}, +set: function(t) { +if (this._dstBlendFactor !== t) { +this._dstBlendFactor = t; +this._updateBlendFunc(); +} +}, +animatable: !1, +type: r, +tooltip: !1, +visible: !0 +} +}, +setMaterial: function(t, e) { +n.prototype.setMaterial.call(this, t, e); +e && this._updateMaterialBlendFunc(e); +}, +_updateBlendFunc: function() { +for (var t = this._materials, e = 0; e < t.length; e++) { +var i = t[e]; +this._updateMaterialBlendFunc(i); +} +}, +_updateMaterialBlendFunc: function(t) { +for (var e = t._effect.getDefaultTechnique().passes, i = 0; i < e.length; i++) { +e[i].setBlend(!0, s.BLEND_FUNC_ADD, this._srcBlendFactor, this._dstBlendFactor, s.BLEND_FUNC_ADD, this._srcBlendFactor, this._dstBlendFactor); +} +t.setDirty(!0); +} +}); +e.exports = cc.BlendFunc = o; +}), { +"../../renderer/gfx": 349, +"../components/CCRenderComponent": 106, +"../platform/CCMacro": 206 +} ], +290: [ (function(t, e, i) { +"use strict"; +var n = t("./misc").BASE64_VALUES, r = "0123456789abcdef".split(""), s = [ "", "", "", "" ], o = s.concat(s, "-", s, "-", s, "-", s, "-", s, s, s), a = o.map((function(t, e) { +return "-" === t ? NaN : e; +})).filter(isFinite); +e.exports = function(t) { +if (22 !== t.length) return t; +o[0] = t[0]; +o[1] = t[1]; +for (var e = 2, i = 2; e < 22; e += 2) { +var s = n[t.charCodeAt(e)], c = n[t.charCodeAt(e + 1)]; +o[a[i++]] = r[s >> 2]; +o[a[i++]] = r[(3 & s) << 2 | c >> 4]; +o[a[i++]] = r[15 & c]; +} +return o.join(""); +}; +0; +}), { +"./misc": 297 +} ], +291: [ (function(t, e, i) { +"use strict"; +cc.find = e.exports = function(t, e) { +if (null == t) { +cc.errorID(5600); +return null; +} +if (e) 0; else { +var i = cc.director.getScene(); +if (!i) { +0; +return null; +} +0; +e = i; +} +for (var n = e, r = "/" !== t[0] ? 0 : 1, s = t.split("/"), o = r; o < s.length; o++) { +var a = s[o], c = n._children; +n = null; +for (var l = 0, h = c.length; l < h; ++l) { +var u = c[l]; +if (u.name === a) { +n = u; +break; +} +} +if (!n) return null; +} +return n; +}; +}), {} ], +292: [ (function(t, e, i) { +"use strict"; +var n = t("../assets/material/CCMaterial"); +function r() { +this._graySpriteMaterial = null; +this._spriteMaterial = null; +} +r.prototype._switchGrayMaterial = function(t, e) { +if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { +var i = void 0; +if (t) { +(i = this._graySpriteMaterial) || (i = n.getBuiltinMaterial("2d-gray-sprite")); +i = this._graySpriteMaterial = n.getInstantiatedMaterial(i, e); +} else { +(i = this._spriteMaterial) || (i = n.getBuiltinMaterial("2d-sprite", e)); +i = this._spriteMaterial = n.getInstantiatedMaterial(i, e); +} +e.setMaterial(0, i); +} +}; +e.exports = r; +}), { +"../assets/material/CCMaterial": 75 +} ], +293: [ (function(t, e, i) { +"use strict"; +var n = /^(click)(\s)*=|(param)(\s)*=/, r = /(\s)*src(\s)*=|(\s)*height(\s)*=|(\s)*width(\s)*=|(\s)*click(\s)*=|(\s)*param(\s)*=/, s = function() { +this._parsedObject = {}; +this._specialSymbolArray = []; +this._specialSymbolArray.push([ /</g, "<" ]); +this._specialSymbolArray.push([ />/g, ">" ]); +this._specialSymbolArray.push([ /&/g, "&" ]); +this._specialSymbolArray.push([ /"/g, '"' ]); +this._specialSymbolArray.push([ /'/g, "'" ]); +}; +s.prototype = { +constructor: s, +parse: function(t) { +this._resultObjectArray = []; +this._stack = []; +for (var e = 0, i = t.length; e < i; ) { +var n = t.indexOf("<", e); +if (n < 0) { +this._stack.pop(); +this._processResult(t.substring(e)); +e = i; +} else { +this._processResult(t.substring(e, n)); +var r = t.indexOf(">", e); +-1 === r ? r = n : "/" === t.charAt(n + 1) ? this._stack.pop() : this._addToStack(t.substring(n + 1, r)); +e = r + 1; +} +} +return this._resultObjectArray; +}, +_attributeToObject: function(t) { +var e, i, n, s, o = {}, a = (t = t.trim()).match(/^(color|size)(\s)*=/); +if (a) { +e = a[0]; +if ("" === (t = t.substring(e.length).trim())) return o; +i = t.indexOf(" "); +switch (e[0]) { +case "c": +o.color = i > -1 ? t.substring(0, i).trim() : t; +break; + +case "s": +o.size = parseInt(t); +} +if (i > -1) { +s = t.substring(i + 1).trim(); +n = this._processEventHandler(s); +o.event = n; +} +return o; +} +if ((a = t.match(/^(br(\s)*\/)/)) && a[0].length > 0 && (e = a[0].trim()).startsWith("br") && "/" === e[e.length - 1]) { +o.isNewLine = !0; +this._resultObjectArray.push({ +text: "", +style: { +newline: !0 +} +}); +return o; +} +if ((a = t.match(/^(img(\s)*src(\s)*=[^>]+\/)/)) && a[0].length > 0 && (e = a[0].trim()).startsWith("img") && "/" === e[e.length - 1]) { +a = t.match(r); +for (var c, l = !1; a; ) { +e = (t = t.substring(t.indexOf(a[0]))).substr(0, a[0].length); +u = (i = (c = t.substring(e.length).trim()).indexOf(" ")) > -1 ? c.substr(0, i) : c; +e = (e = e.replace(/[^a-zA-Z]/g, "").trim()).toLocaleLowerCase(); +t = c.substring(i).trim(); +if ("src" === e) { +o.isImage = !0; +u.endsWith("/") && (u = u.substring(0, u.length - 1)); +if (0 === u.indexOf("'")) { +l = !0; +u = u.substring(1, u.length - 1); +} else if (0 === u.indexOf('"')) { +l = !0; +u = u.substring(1, u.length - 1); +} +o.src = u; +} else "height" === e ? o.imageHeight = parseInt(u) : "width" === e ? o.imageWidth = parseInt(u) : "click" === e && (o.event = this._processEventHandler(e + "=" + u)); +o.event && "param" === e && (o.event.param = u.replace(/^\"|\"$/g, "")); +a = t.match(r); +} +l && o.isImage && this._resultObjectArray.push({ +text: "", +style: o +}); +return {}; +} +if (a = t.match(/^(outline(\s)*[^>]*)/)) { +var h = { +color: "#ffffff", +width: 1 +}; +if (t = a[0].substring("outline".length).trim()) { +var u, _ = /(\s)*color(\s)*=|(\s)*width(\s)*=|(\s)*click(\s)*=|(\s)*param(\s)*=/; +a = t.match(_); +for (;a; ) { +e = (t = t.substring(t.indexOf(a[0]))).substr(0, a[0].length); +u = (i = (c = t.substring(e.length).trim()).indexOf(" ")) > -1 ? c.substr(0, i) : c; +e = (e = e.replace(/[^a-zA-Z]/g, "").trim()).toLocaleLowerCase(); +t = c.substring(i).trim(); +"click" === e ? o.event = this._processEventHandler(e + "=" + u) : "color" === e ? h.color = u : "width" === e && (h.width = parseInt(u)); +o.event && "param" === e && (o.event.param = u.replace(/^\"|\"$/g, "")); +a = t.match(_); +} +} +o.outline = h; +} +if ((a = t.match(/^(on|u|b|i)(\s)*/)) && a[0].length > 0) { +e = a[0]; +t = t.substring(e.length).trim(); +switch (e[0]) { +case "u": +o.underline = !0; +break; + +case "i": +o.italic = !0; +break; + +case "b": +o.bold = !0; +} +if ("" === t) return o; +n = this._processEventHandler(t); +o.event = n; +} +return o; +}, +_processEventHandler: function(t) { +for (var e = 0, i = {}, r = t.match(n), s = !1; r; ) { +var o = r[0], a = ""; +s = !1; +if ('"' === (t = t.substring(o.length).trim()).charAt(0)) { +if ((e = t.indexOf('"', 1)) > -1) { +a = t.substring(1, e).trim(); +s = !0; +} +e++; +} else if ("'" === t.charAt(0)) { +if ((e = t.indexOf("'", 1)) > -1) { +a = t.substring(1, e).trim(); +s = !0; +} +e++; +} else { +var c = t.match(/(\S)+/); +e = (a = c ? c[0] : "").length; +} +s && (i[o = o.substring(0, o.length - 1).trim()] = a); +r = (t = t.substring(e).trim()).match(n); +} +return i; +}, +_addToStack: function(t) { +var e = this._attributeToObject(t); +if (0 === this._stack.length) this._stack.push(e); else { +if (e.isNewLine || e.isImage) return; +var i = this._stack[this._stack.length - 1]; +for (var n in i) e[n] || (e[n] = i[n]); +this._stack.push(e); +} +}, +_processResult: function(t) { +if ("" !== t) { +t = this._escapeSpecialSymbol(t); +this._stack.length > 0 ? this._resultObjectArray.push({ +text: t, +style: this._stack[this._stack.length - 1] +}) : this._resultObjectArray.push({ +text: t +}); +} +}, +_escapeSpecialSymbol: function(t) { +for (var e = 0; e < this._specialSymbolArray.length; ++e) { +var i = this._specialSymbolArray[e][0], n = this._specialSymbolArray[e][1]; +t = t.replace(i, n); +} +return t; +} +}; +0; +e.exports = s; +}), {} ], +294: [ (function(t, e, i) { +"use strict"; +t("./CCPath"); +t("./profiler/CCProfiler"); +t("./find"); +t("./mutable-forward-iterator"); +}), { +"./CCPath": 285, +"./find": 291, +"./mutable-forward-iterator": 298, +"./profiler/CCProfiler": 300 +} ], +295: [ (function(t, e, i) { +"use strict"; +var n = t("../vmath"), r = t("../platform/js"), s = new r.Pool(128); +s.get = function() { +var t = this._get(); +t ? n.mat4.identity(t) : t = n.mat4.create(); +return t; +}; +var o = new r.Pool(64); +o.get = function() { +var t = this._get(); +if (t) { +t.x = t.y = t.z = 0; +t.w = 1; +} else t = n.quat.create(); +return t; +}; +e.exports = { +mat4: s, +quat: o +}; +}), { +"../platform/js": 221, +"../vmath": 317 +} ], +296: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.postLoadMesh = function(t, e) { +if (t.loaded || !t.nativeUrl) { +e && e(); +return; +} +cc.loader.load(t.nativeUrl, (function(i, n) { +n && (t._nativeAsset = n); +e && e(i); +})); +}; +}), {} ], +297: [ (function(t, e, i) { +"use strict"; +var n = t("../platform/js"), r = { +propertyDefine: function(t, e, i) { +function r(t, e, i, r) { +var s = Object.getOwnPropertyDescriptor(t, e); +if (s) { +s.get && (t[i] = s.get); +s.set && r && (t[r] = s.set); +} else { +var o = t[i]; +n.getset(t, e, o, t[r]); +} +} +for (var s, o = t.prototype, a = 0; a < e.length; a++) { +var c = (s = e[a])[0].toUpperCase() + s.slice(1); +r(o, s, "get" + c, "set" + c); +} +for (s in i) { +var l = i[s]; +r(o, s, l[0], l[1]); +} +}, +NextPOT: function(t) { +t -= 1; +t |= t >> 1; +t |= t >> 2; +t |= t >> 4; +t |= t >> 8; +return (t |= t >> 16) + 1; +} +}; +0; +r.BUILTIN_CLASSID_RE = /^(?:cc|dragonBones|sp|ccsg)\..+/; +for (var s = new Array(123), o = 0; o < 123; ++o) s[o] = 64; +for (var a = 0; a < 64; ++a) s["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charCodeAt(a)] = a; +r.BASE64_VALUES = s; +r.pushToMap = function(t, e, i, n) { +var r = t[e]; +if (r) if (Array.isArray(r)) if (n) { +r.push(r[0]); +r[0] = i; +} else r.push(i); else t[e] = n ? [ i, r ] : [ r, i ]; else t[e] = i; +}; +r.clampf = function(t, e, i) { +if (e > i) { +var n = e; +e = i; +i = n; +} +return t < e ? e : t < i ? t : i; +}; +r.clamp01 = function(t) { +return t < 0 ? 0 : t < 1 ? t : 1; +}; +r.lerp = function(t, e, i) { +return t + (e - t) * i; +}; +r.degreesToRadians = function(t) { +return t * cc.macro.RAD; +}; +r.radiansToDegrees = function(t) { +return t * cc.macro.DEG; +}; +cc.misc = e.exports = r; +}), { +"../platform/js": 221 +} ], +298: [ (function(t, e, i) { +"use strict"; +function n(t) { +this.i = 0; +this.array = t; +} +var r = n.prototype; +r.remove = function(t) { +var e = this.array.indexOf(t); +e >= 0 && this.removeAt(e); +}; +r.removeAt = function(t) { +this.array.splice(t, 1); +t <= this.i && --this.i; +}; +r.fastRemove = function(t) { +var e = this.array.indexOf(t); +e >= 0 && this.fastRemoveAt(e); +}; +r.fastRemoveAt = function(t) { +var e = this.array; +e[t] = e[e.length - 1]; +--e.length; +t <= this.i && --this.i; +}; +r.push = function(t) { +this.array.push(t); +}; +e.exports = n; +}), {} ], +299: [ (function(t, e, i) { +"use strict"; +var n = t("../vmath"); +cc._PrefabInfo = cc.Class({ +name: "cc.PrefabInfo", +properties: { +root: null, +asset: null, +fileId: "", +sync: !1, +_synced: { +default: !1, +serializable: !1 +} +} +}); +e.exports = { +syncWithPrefab: function(t) { +var e = t._prefab; +e._synced = !0; +if (e.asset) { +var i = t._objFlags, r = t._parent, s = t._id, o = t._name, a = t._active, c = t._position.x, l = t._position.y, h = t._position.z, u = t._eulerAngles.x, _ = t._eulerAngles.y, f = t._eulerAngles.z, d = t._quat, m = t._localZOrder, p = t._globalZOrder; +cc.game._isCloning = !0; +e.asset._doInstantiate(t); +cc.game._isCloning = !1; +t._objFlags = i; +t._parent = r; +t._id = s; +t._prefab = e; +t._name = o; +t._active = a; +t._position.x = c; +t._position.y = l; +t._position.z = h; +n.quat.copy(t._quat, d); +t._localZOrder = m; +t._globalZOrder = p; +t._eulerAngles.x = u; +t._eulerAngles.y = _; +t._eulerAngles.z = f; +} else { +cc.errorID(3701, t.name); +t._prefab = null; +} +} +}; +}), { +"../vmath": 317 +} ], +300: [ (function(t, e, i) { +"use strict"; +var n = t("../../platform/CCMacro"), r = t("./perf-counter"), s = !1, o = 15, a = null, c = null, l = null; +function h() { +if (!a) { +a = { +frame: { +desc: "Frame time (ms)", +min: 0, +max: 50, +average: 500 +}, +fps: { +desc: "Framerate (FPS)", +below: 30, +average: 500 +}, +draws: { +desc: "Draw call" +}, +logic: { +desc: "Game Logic (ms)", +min: 0, +max: 50, +average: 500, +color: "#080" +}, +render: { +desc: "Renderer (ms)", +min: 0, +max: 50, +average: 500, +color: "#f90" +}, +mode: { +desc: cc.game.renderType === cc.game.RENDER_TYPE_WEBGL ? "WebGL" : "Canvas", +min: 1 +} +}; +var t = performance.now(); +for (var e in a) a[e]._counter = new r(e, a[e], t); +} +} +function u() { +if (!c || !c.isValid) { +(c = new cc.Node("PROFILER-NODE")).x = c.y = 10; +c.groupIndex = cc.Node.BuiltinGroupIndex.DEBUG; +cc.Camera._setupDebugCamera(); +c.zIndex = n.MAX_ZINDEX; +cc.game.addPersistRootNode(c); +var t = new cc.Node("LEFT-PANEL"); +t.anchorX = t.anchorY = 0; +var e = t.addComponent(cc.Label); +e.fontSize = o; +e.lineHeight = o; +t.parent = c; +var i = new cc.Node("RIGHT-PANEL"); +i.anchorX = 1; +i.anchorY = 0; +i.x = 200; +var r = i.addComponent(cc.Label); +r.horizontalAlign = cc.Label.HorizontalAlign.RIGHT; +r.fontSize = o; +r.lineHeight = o; +i.parent = c; +if (cc.sys.browserType !== cc.sys.BROWSER_TYPE_BAIDU_GAME_SUB && cc.sys.browserType !== cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB) { +e.cacheMode = cc.Label.CacheMode.CHAR; +r.cacheMode = cc.Label.CacheMode.CHAR; +} +l = { +left: e, +right: r +}; +} +} +function _() { +u(); +var t = cc.director._lastUpdate; +a.frame._counter.start(t); +a.logic._counter.start(t); +} +function f() { +var t = performance.now(); +cc.director.isPaused() ? a.frame._counter.start(t) : a.logic._counter.end(t); +a.render._counter.start(t); +} +function d() { +var t = performance.now(); +a.render._counter.end(t); +a.draws._counter.value = cc.renderer.drawCalls; +a.frame._counter.end(t); +a.fps._counter.frame(t); +var e = "", i = ""; +for (var n in a) { +var r = a[n]; +r._counter.sample(t); +e += r.desc + "\n"; +i += r._counter.human() + "\n"; +} +if (l) { +l.left.string = e; +l.right.string = i; +} +} +cc.profiler = e.exports = { +isShowingStats: function() { +return s; +}, +hideStats: function() { +if (s) { +c && (c.active = !1); +cc.director.off(cc.Director.EVENT_BEFORE_UPDATE, _); +cc.director.off(cc.Director.EVENT_AFTER_UPDATE, f); +cc.director.off(cc.Director.EVENT_AFTER_DRAW, d); +s = !1; +} +}, +showStats: function() { +if (!s) { +h(); +c && (c.active = !0); +cc.director.on(cc.Director.EVENT_BEFORE_UPDATE, _); +cc.director.on(cc.Director.EVENT_AFTER_UPDATE, f); +cc.director.on(cc.Director.EVENT_AFTER_DRAW, d); +s = !0; +} +} +}; +}), { +"../../platform/CCMacro": 206, +"./perf-counter": 302 +} ], +301: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.Counter", +ctor: function(t, e, i) { +this._id = t; +this._opts = e || {}; +this._value = 0; +this._total = 0; +this._averageValue = 0; +this._accumValue = 0; +this._accumSamples = 0; +this._accumStart = i; +}, +properties: { +value: { +get: function() { +return this._value; +}, +set: function(t) { +this._value = t; +} +} +}, +_average: function(t, e) { +if (this._opts.average) { +this._accumValue += t; +++this._accumSamples; +var i = e; +if (i - this._accumStart >= this._opts.average) { +this._averageValue = this._accumValue / this._accumSamples; +this._accumValue = 0; +this._accumStart = i; +this._accumSamples = 0; +} +} +}, +sample: function(t) { +this._average(this._value, t); +}, +human: function() { +var t = this._opts.average ? this._averageValue : this._value; +return Math.round(100 * t) / 100; +}, +alarm: function() { +return this._opts.below && this._value < this._opts.below || this._opts.over && this._value > this._opts.over; +} +}); +e.exports = n; +}), {} ], +302: [ (function(t, e, i) { +"use strict"; +var n = t("./counter"), r = cc.Class({ +name: "cc.PerfCounter", +extends: n, +ctor: function(t, e, i) { +this._time = i; +}, +start: function(t) { +this._time = t; +}, +end: function(t) { +this._value = t - this._time; +this._average(this._value); +}, +tick: function() { +this.end(); +this.start(); +}, +frame: function(t) { +var e = t, i = e - this._time; +this._total++; +if (i > (this._opts.average || 1e3)) { +this._value = 1e3 * this._total / i; +this._total = 0; +this._time = e; +this._average(this._value); +} +} +}); +e.exports = r; +}), { +"./counter": 301 +} ], +303: [ (function(t, e, i) { +"use strict"; +var n = .26; +0; +var r = { +BASELINE_RATIO: n, +MIDDLE_RATIO: (n + 1) / 2 - n, +label_wordRex: /([a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûа-яА-ЯЁё]+|\S)/, +label_symbolRex: /^[!,.:;'}\]%\?>、‘“》?。,!]/, +label_lastWordRex: /([a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûаíìÍÌïÁÀáàÉÈÒÓòóŐőÙÚŰúűñÑæÆœŒÃÂãÔõěščřžýáíéóúůťďňĚŠČŘŽÁÍÉÓÚŤżźśóńłęćąŻŹŚÓŃŁĘĆĄ-яА-ЯЁё]+|\S)$/, +label_lastEnglish: /[a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûаíìÍÌïÁÀáàÉÈÒÓòóŐőÙÚŰúűñÑæÆœŒÃÂãÔõěščřžýáíéóúůťďňĚŠČŘŽÁÍÉÓÚŤżźśóńłęćąŻŹŚÓŃŁĘĆĄ-яА-ЯЁё]+$/, +label_firstEnglish: /^[a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûаíìÍÌïÁÀáàÉÈÒÓòóŐőÙÚŰúűñÑæÆœŒÃÂãÔõěščřžýáíéóúůťďňĚŠČŘŽÁÍÉÓÚŤżźśóńłęćąŻŹŚÓŃŁĘĆĄ-яА-ЯЁё]/, +label_firstEmoji: /^[\uD83C\uDF00-\uDFFF\uDC00-\uDE4F]/, +label_lastEmoji: /([\uDF00-\uDFFF\uDC00-\uDE4F]+|\S)$/, +label_wrapinspection: !0, +__CHINESE_REG: /^[\u4E00-\u9FFF\u3400-\u4DFF]+$/, +__JAPANESE_REG: /[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]|[\u2605-\u2606]|[\u2190-\u2195]|\u203B/g, +__KOREAN_REG: /^[\u1100-\u11FF]|[\u3130-\u318F]|[\uA960-\uA97F]|[\uAC00-\uD7AF]|[\uD7B0-\uD7FF]+$/, +isUnicodeCJK: function(t) { +return this.__CHINESE_REG.test(t) || this.__JAPANESE_REG.test(t) || this.__KOREAN_REG.test(t); +}, +isUnicodeSpace: function(t) { +return (t = t.charCodeAt(0)) >= 9 && t <= 13 || 32 === t || 133 === t || 160 === t || 5760 === t || t >= 8192 && t <= 8202 || 8232 === t || 8233 === t || 8239 === t || 8287 === t || 12288 === t; +}, +safeMeasureText: function(t, e) { +var i = t.measureText(e); +return i && i.width || 0; +}, +fragmentText: function(t, e, i, n) { +var r = []; +if (0 === t.length || i < 0) { +r.push(""); +return r; +} +for (var s = t; e > i && s.length > 1; ) { +for (var o = s.length * (i / e) | 0, a = s.substring(o), c = e - n(a), l = a, h = 0, u = 0; c > i && u++ < 10; ) { +o *= i / c; +o |= 0; +c = e - n(a = s.substring(o)); +} +u = 0; +for (;c <= i && u++ < 10; ) { +if (a) { +var _ = this.label_wordRex.exec(a); +h = _ ? _[0].length : 1; +l = a; +} +o += h; +c = e - n(a = s.substring(o)); +} +if (0 === (o -= h)) { +o = 1; +l = l.substring(1); +} +var f, d = s.substring(0, 0 + o); +if (this.label_wrapinspection && this.label_symbolRex.test(l || a)) { +0 === (o -= (f = this.label_lastWordRex.exec(d)) ? f[0].length : 0) && (o = 1); +l = s.substring(o); +d = s.substring(0, 0 + o); +} +if (this.label_firstEmoji.test(l) && (f = this.label_lastEmoji.exec(d)) && d !== f[0]) { +o -= f[0].length; +l = s.substring(o); +d = s.substring(0, 0 + o); +} +if (this.label_firstEnglish.test(l) && (f = this.label_lastEnglish.exec(d)) && d !== f[0]) { +o -= f[0].length; +l = s.substring(o); +d = s.substring(0, 0 + o); +} +0 === r.length ? r.push(d) : (d = d.trimLeft()).length > 0 && r.push(d); +e = n(s = l || a); +} +0 === r.length ? r.push(s) : (s = s.trimLeft()).length > 0 && r.push(s); +return r; +} +}; +e.exports = r; +}), {} ], +304: [ (function(t, e, i) { +"use strict"; +var n = t("../assets/CCTexture2D"), r = { +loadImage: function(t, e, i) { +cc.assertID(t, 3103); +var r = cc.loader.getRes(t); +if (r) { +if (r.loaded) { +e && e.call(i, null, r); +return r; +} +r.once("load", (function() { +e && e.call(i, null, r); +}), i); +return r; +} +(r = new n()).url = t; +cc.loader.load({ +url: t, +texture: r +}, (function(t, n) { +if (t) return e && e.call(i, t || new Error("Unknown error")); +n.handleLoadedTexture(); +e && e.call(i, null, n); +})); +return r; +}, +cacheImage: function(t, e) { +if (t && e) { +var i = new n(); +i.initWithElement(e); +var r = { +id: t, +url: t, +error: null, +content: i, +complete: !1 +}; +cc.loader.flowOut(r); +return i; +} +}, +postLoadTexture: function(t, e) { +t.loaded ? e && e() : t.url ? cc.loader.load({ +url: t.url, +skips: [ "Loader" ] +}, (function(i, n) { +if (n) { +0; +t.loaded || (t._nativeAsset = n); +} +e && e(i); +})) : e && e(); +} +}; +cc.textureUtil = e.exports = r; +}), { +"../assets/CCTexture2D": 73 +} ], +305: [ (function(i, n, r) { +"use strict"; +var s = i("./value-type"), o = i("../platform/js"), a = (function() { +function n(i, n, r, s) { +if ("object" === ("object" === (e = typeof i) ? t(i) : e)) { +n = i.g; +r = i.b; +s = i.a; +i = i.r; +} +i = i || 0; +n = n || 0; +r = r || 0; +s = "number" === ("object" === (e = typeof s) ? t(s) : e) ? s : 255; +this._val = (s << 24 >>> 0) + (r << 16) + (n << 8) + i; +} +o.extend(n, s); +i("../platform/CCClass").fastDefine("cc.Color", n, { +r: 0, +g: 0, +b: 0, +a: 255 +}); +var r = { +WHITE: [ 255, 255, 255, 255 ], +BLACK: [ 0, 0, 0, 255 ], +TRANSPARENT: [ 0, 0, 0, 0 ], +GRAY: [ 127.5, 127.5, 127.5 ], +RED: [ 255, 0, 0 ], +GREEN: [ 0, 255, 0 ], +BLUE: [ 0, 0, 255 ], +YELLOW: [ 255, 235, 4 ], +ORANGE: [ 255, 127, 0 ], +CYAN: [ 0, 255, 255 ], +MAGENTA: [ 255, 0, 255 ] +}; +for (var a in r) o.get(n, a, (function(t) { +return function() { +return new n(t[0], t[1], t[2], t[3]); +}; +})(r[a])); +var c = n.prototype; +c.clone = function() { +var t = new n(); +t._val = this._val; +return t; +}; +c.equals = function(t) { +return t && this._val === t._val; +}; +c.lerp = function(t, e, i) { +i = i || new n(); +var r = this.r, s = this.g, o = this.b, a = this.a; +i.r = r + (t.r - r) * e; +i.g = s + (t.g - s) * e; +i.b = o + (t.b - o) * e; +i.a = a + (t.a - a) * e; +return i; +}; +c.toString = function() { +return "rgba(" + this.r.toFixed() + ", " + this.g.toFixed() + ", " + this.b.toFixed() + ", " + this.a.toFixed() + ")"; +}; +c.getR = function() { +return 255 & this._val; +}; +c.setR = function(t) { +t = ~~cc.misc.clampf(t, 0, 255); +this._val = (4294967040 & this._val | t) >>> 0; +return this; +}; +c.getG = function() { +return (65280 & this._val) >> 8; +}; +c.setG = function(t) { +t = ~~cc.misc.clampf(t, 0, 255); +this._val = (4294902015 & this._val | t << 8) >>> 0; +return this; +}; +c.getB = function() { +return (16711680 & this._val) >> 16; +}; +c.setB = function(t) { +t = ~~cc.misc.clampf(t, 0, 255); +this._val = (4278255615 & this._val | t << 16) >>> 0; +return this; +}; +c.getA = function() { +return (4278190080 & this._val) >>> 24; +}; +c.setA = function(t) { +t = ~~cc.misc.clampf(t, 0, 255); +this._val = (16777215 & this._val | t << 24) >>> 0; +return this; +}; +c._fastSetA = function(t) { +this._val = (16777215 & this._val | t << 24) >>> 0; +}; +o.getset(c, "r", c.getR, c.setR, !0); +o.getset(c, "g", c.getG, c.setG, !0); +o.getset(c, "b", c.getB, c.setB, !0); +o.getset(c, "a", c.getA, c.setA, !0); +c.toCSS = function(t) { +return "rgba" === t ? "rgba(" + (0 | this.r) + "," + (0 | this.g) + "," + (0 | this.b) + "," + (this.a / 255).toFixed(2) + ")" : "rgb" === t ? "rgb(" + (0 | this.r) + "," + (0 | this.g) + "," + (0 | this.b) + ")" : "#" + this.toHEX(t); +}; +c.fromHEX = function(t) { +t = 0 === t.indexOf("#") ? t.substring(1) : t; +var e = parseInt(t.substr(0, 2), 16) || 0, i = parseInt(t.substr(2, 2), 16) || 0, n = parseInt(t.substr(4, 2), 16) || 0, r = parseInt(t.substr(6, 2), 16) || 255; +this._val = (r << 24 >>> 0) + (n << 16) + (i << 8) + e; +return this; +}; +c.toHEX = function(t) { +var e = [ (this.r < 16 ? "0" : "") + (0 | this.r).toString(16), (this.g < 16 ? "0" : "") + (0 | this.g).toString(16), (this.b < 16 ? "0" : "") + (0 | this.b).toString(16) ], i = -1; +if ("#rgb" === t) for (i = 0; i < e.length; ++i) e[i].length > 1 && (e[i] = e[i][0]); else if ("#rrggbb" === t) for (i = 0; i < e.length; ++i) 1 === e[i].length && (e[i] = "0" + e[i]); else "#rrggbbaa" === t && e.push((this.a < 16 ? "0" : "") + (0 | this.a).toString(16)); +return e.join(""); +}; +c.toRGBValue = function() { +return 16777215 & this._val; +}; +c.fromHSV = function(t, e, i) { +var n, r, s; +if (0 === e) n = r = s = i; else if (0 === i) n = r = s = 0; else { +1 === t && (t = 0); +t *= 6; +e = e; +i = i; +var o = Math.floor(t), a = t - o, c = i * (1 - e), l = i * (1 - e * a), h = i * (1 - e * (1 - a)); +switch (o) { +case 0: +n = i; +r = h; +s = c; +break; + +case 1: +n = l; +r = i; +s = c; +break; + +case 2: +n = c; +r = i; +s = h; +break; + +case 3: +n = c; +r = l; +s = i; +break; + +case 4: +n = h; +r = c; +s = i; +break; + +case 5: +n = i; +r = c; +s = l; +} +} +n *= 255; +r *= 255; +s *= 255; +this._val = (this.a << 24 >>> 0) + (s << 16) + (r << 8) + n; +return this; +}; +c.toHSV = function() { +var t = this.r / 255, e = this.g / 255, i = this.b / 255, n = { +h: 0, +s: 0, +v: 0 +}, r = Math.max(t, e, i), s = Math.min(t, e, i), o = 0; +n.v = r; +n.s = r ? (r - s) / r : 0; +if (n.s) { +o = r - s; +n.h = t === r ? (e - i) / o : e === r ? 2 + (i - t) / o : 4 + (t - e) / o; +n.h /= 6; +n.h < 0 && (n.h += 1); +} else n.h = 0; +return n; +}; +c.set = function(t) { +if (t._val) this._val = t._val; else { +this.r = t.r; +this.g = t.g; +this.b = t.b; +this.a = t.a; +} +}; +return n; +})(); +cc.Color = a; +cc.color = function(i, n, r, s) { +if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { +return new cc.Color().fromHEX(i); +} +return "object" === ("object" === (e = typeof i) ? t(i) : e) ? new cc.Color(i.r, i.g, i.b, i.a) : new cc.Color(i, n, r, s); +}; +n.exports = cc.Color; +}), { +"../platform/CCClass": 201, +"../platform/js": 221, +"./value-type": 311 +} ], +306: [ (function(t, e, i) { +"use strict"; +t("./value-type"); +cc.vmath = t("../vmath").default; +e.exports = { +Vec2: t("./vec2"), +Vec3: t("./vec3"), +Vec4: t("./vec4"), +Quat: t("./quat"), +Mat4: t("./mat4"), +Size: t("./size"), +Rect: t("./rect"), +Color: t("./color") +}; +}), { +"../vmath": 317, +"./color": 305, +"./mat4": 307, +"./quat": 308, +"./rect": 309, +"./size": 310, +"./value-type": 311, +"./vec2": 312, +"./vec3": 313, +"./vec4": 314 +} ], +307: [ (function(t, e, i) { +"use strict"; +var n = t("../vmath"), r = t("./value-type"), s = t("../platform/js"), o = t("../platform/CCClass"); +function a(t, e, i, n, r, s, o, a, c, l, h, u, _, f, d, m) { +var p = this; +p.m00 = t; +p.m01 = e; +p.m02 = i; +p.m03 = n; +p.m04 = r; +p.m05 = s; +p.m06 = o; +p.m07 = a; +p.m08 = c; +p.m09 = l; +p.m10 = h; +p.m11 = u; +p.m12 = _; +p.m13 = f; +p.m14 = d; +p.m15 = m; +} +s.extend(a, r); +o.fastDefine("cc.Mat4", a, { +m00: 1, +m01: 0, +m02: 0, +m03: 0, +m04: 0, +m05: 1, +m06: 0, +m07: 0, +m08: 0, +m09: 0, +m10: 1, +m11: 0, +m12: 0, +m13: 0, +m14: 0, +m15: 1 +}); +s.mixin(a.prototype, { +clone: function() { +var t = this; +return new a(t.m00, t.m01, t.m02, t.m03, t.m04, t.m05, t.m06, t.m07, t.m08, t.m09, t.m10, t.m11, t.m12, t.m13, t.m14, t.m15); +}, +set: function(t) { +var e = this; +e.m00 = t.m00; +e.m01 = t.m01; +e.m02 = t.m02; +e.m03 = t.m03; +e.m04 = t.m04; +e.m05 = t.m05; +e.m06 = t.m06; +e.m07 = t.m07; +e.m08 = t.m08; +e.m09 = t.m09; +e.m10 = t.m10; +e.m11 = t.m11; +e.m12 = t.m12; +e.m13 = t.m13; +e.m14 = t.m14; +e.m15 = t.m15; +return this; +}, +equals: function(t) { +return n.mat4.exactEquals(this, t); +}, +fuzzyEquals: function(t) { +return n.mat4.equals(this, t); +}, +toString: function() { +var t = this; +return "[\n" + t.m00 + ", " + t.m01 + ", " + t.m02 + ", " + t.m03 + ",\n" + t.m04 + ", " + t.m05 + ", " + t.m06 + ", " + t.m07 + ",\n" + t.m08 + ", " + t.m09 + ", " + t.m10 + ", " + t.m11 + ",\n" + t.m12 + ", " + t.m13 + ", " + t.m14 + ", " + t.m15 + "\n]"; +}, +identity: function() { +return n.mat4.identity(this); +}, +transpose: function(t) { +t = t || new cc.Mat4(); +return n.mat4.transpose(t, this); +}, +invert: function(t) { +t = t || new cc.Mat4(); +return n.mat4.invert(t, this); +}, +adjoint: function(t) { +t = t || new cc.Mat4(); +return n.mat4.adjoint(t, this); +}, +determinant: function() { +return n.mat4.determinant(this); +}, +add: function(t, e) { +e = e || new cc.Mat4(); +return n.mat4.add(e, this, t); +}, +sub: function(t, e) { +e = e || new cc.Mat4(); +return n.mat4.subtract(e, this, t); +}, +mul: function(t, e) { +e = e || new cc.Mat4(); +return n.mat4.multiply(e, this, t); +}, +mulScalar: function(t, e) { +e = e || new cc.Mat4(); +return n.mat4.mulScalar(e, this, t); +}, +translate: function(t, e) { +e = e || new cc.Mat4(); +return n.mat4.translate(e, this, t); +}, +scale: function(t, e) { +e = e || new cc.Mat4(); +return n.mat4.scale(e, this, t); +}, +rotate: function(t, e, i) { +i = i || new cc.Mat4(); +return n.mat4.rotate(i, this, t, e); +}, +getTranslation: function(t) { +t = t || new cc.Vec3(); +return n.mat4.getTranslation(t, this); +}, +getScale: function(t) { +t = t || new cc.Vec3(); +return n.mat4.getScaling(t, this); +}, +getRotation: function(t) { +t = t || new cc.Quat(); +return n.mat4.getRotation(t, this); +}, +fromRTS: function(t, e, i) { +return n.mat4.fromRTS(this, t, e, i); +}, +fromQuat: function(t) { +return n.mat4.fromQuat(this, t); +} +}); +cc.mat4 = function(t, e, i, r, s, o, c, l, h, u, _, f, d, m, p, v) { +var y = new a(t, e, i, r, s, o, c, l, h, u, _, f, d, m, p, v); +void 0 === t && n.mat4.identity(y); +return y; +}; +e.exports = cc.Mat4 = a; +}), { +"../platform/CCClass": 201, +"../platform/js": 221, +"../vmath": 317, +"./value-type": 311 +} ], +308: [ (function(i, n, r) { +"use strict"; +var s = i("./value-type"), o = i("../platform/js"), a = i("../platform/CCClass"), c = i("../vmath/quat"); +function l(i, n, r, s) { +if (i && "object" === ("object" === (e = typeof i) ? t(i) : e)) { +r = i.z; +n = i.y; +s = i.w; +i = i.x; +} +this.x = i || 0; +this.y = n || 0; +this.z = r || 0; +this.w = s || 1; +} +o.extend(l, s); +a.fastDefine("cc.Quat", l, { +x: 0, +y: 0, +z: 0, +w: 1 +}); +var h = l.prototype; +h.clone = function() { +return new l(this.x, this.y, this.z, this.w); +}; +h.set = function(t) { +this.x = t.x; +this.y = t.y; +this.z = t.z; +this.w = t.w; +return this; +}; +h.equals = function(t) { +return t && this.x === t.x && this.y === t.y && this.z === t.z && this.w === t.w; +}; +h.toEuler = function(t) { +c.toEuler(t, this); +return t; +}; +h.fromEuler = function(t) { +c.fromEuler(this, t.x, t.y, t.z); +return this; +}; +h.lerp = function(t, e, i) { +i = i || new cc.Quat(); +c.slerp(i, this, t, e); +return i; +}; +h.mul = function(t, e) { +e = e || new cc.Quat(); +c.mul(e, this, t); +return e; +}; +h.rotateAround = function(t, e, i, n) { +n = n || new cc.Quat(); +return c.rotateAround(n, t, e, i); +}; +cc.quat = function(t, e, i, n) { +return new l(t, e, i, n); +}; +n.exports = cc.Quat = l; +}), { +"../platform/CCClass": 201, +"../platform/js": 221, +"../vmath/quat": 322, +"./value-type": 311 +} ], +309: [ (function(i, n, r) { +"use strict"; +var s = i("./value-type"), o = i("../platform/js"); +function a(i, n, r, s) { +if (i && "object" === ("object" === (e = typeof i) ? t(i) : e)) { +n = i.y; +r = i.width; +s = i.height; +i = i.x; +} +this.x = i || 0; +this.y = n || 0; +this.width = r || 0; +this.height = s || 0; +} +o.extend(a, s); +i("../platform/CCClass").fastDefine("cc.Rect", a, { +x: 0, +y: 0, +width: 0, +height: 0 +}); +a.fromMinMax = function(t, e) { +var i = Math.min(t.x, e.x), n = Math.min(t.y, e.y); +return new a(i, n, Math.max(t.x, e.x) - i, Math.max(t.y, e.y) - n); +}; +var c = a.prototype; +c.clone = function() { +return new a(this.x, this.y, this.width, this.height); +}; +c.equals = function(t) { +return t && this.x === t.x && this.y === t.y && this.width === t.width && this.height === t.height; +}; +c.lerp = function(t, e, i) { +i = i || new a(); +var n = this.x, r = this.y, s = this.width, o = this.height; +i.x = n + (t.x - n) * e; +i.y = r + (t.y - r) * e; +i.width = s + (t.width - s) * e; +i.height = o + (t.height - o) * e; +return i; +}; +c.set = function(t) { +this.x = t.x; +this.y = t.y; +this.width = t.width; +this.height = t.height; +}; +c.intersects = function(t) { +var e = this.x + this.width, i = this.y + this.height, n = t.x + t.width, r = t.y + t.height; +return !(e < t.x || n < this.x || i < t.y || r < this.y); +}; +c.intersection = function(t, e) { +var i = this.x, n = this.y, r = this.x + this.width, s = this.y + this.height, o = e.x, a = e.y, c = e.x + e.width, l = e.y + e.height; +t.x = Math.max(i, o); +t.y = Math.max(n, a); +t.width = Math.min(r, c) - t.x; +t.height = Math.min(s, l) - t.y; +return t; +}; +c.contains = function(t) { +return this.x <= t.x && this.x + this.width >= t.x && this.y <= t.y && this.y + this.height >= t.y; +}; +c.containsRect = function(t) { +return this.x <= t.x && this.x + this.width >= t.x + t.width && this.y <= t.y && this.y + this.height >= t.y + t.height; +}; +c.union = function(t, e) { +var i = this.x, n = this.y, r = this.width, s = this.height, o = e.x, a = e.y, c = e.width, l = e.height; +t.x = Math.min(i, o); +t.y = Math.min(n, a); +t.width = Math.max(i + r, o + c) - t.x; +t.height = Math.max(n + s, a + l) - t.y; +return t; +}; +c.transformMat4 = function(t, e) { +var i = this.x, n = this.y, r = i + this.width, s = n + this.height, o = e.m00 * i + e.m04 * n + e.m12, a = e.m01 * i + e.m05 * n + e.m13, c = e.m00 * r + e.m04 * n + e.m12, l = e.m01 * r + e.m05 * n + e.m13, h = e.m00 * i + e.m04 * s + e.m12, u = e.m01 * i + e.m05 * s + e.m13, _ = e.m00 * r + e.m04 * s + e.m12, f = e.m01 * r + e.m05 * s + e.m13, d = Math.min(o, c, h, _), m = Math.max(o, c, h, _), p = Math.min(a, l, u, f), v = Math.max(a, l, u, f); +t.x = d; +t.y = p; +t.width = m - d; +t.height = v - p; +return t; +}; +c.toString = function() { +return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ", " + this.width.toFixed(2) + ", " + this.height.toFixed(2) + ")"; +}; +o.getset(c, "xMin", (function() { +return this.x; +}), (function(t) { +this.width += this.x - t; +this.x = t; +})); +o.getset(c, "yMin", (function() { +return this.y; +}), (function(t) { +this.height += this.y - t; +this.y = t; +})); +o.getset(c, "xMax", (function() { +return this.x + this.width; +}), (function(t) { +this.width = t - this.x; +})); +o.getset(c, "yMax", (function() { +return this.y + this.height; +}), (function(t) { +this.height = t - this.y; +})); +o.getset(c, "center", (function() { +return new cc.Vec2(this.x + .5 * this.width, this.y + .5 * this.height); +}), (function(t) { +this.x = t.x - .5 * this.width; +this.y = t.y - .5 * this.height; +})); +o.getset(c, "origin", (function() { +return new cc.Vec2(this.x, this.y); +}), (function(t) { +this.x = t.x; +this.y = t.y; +})); +o.getset(c, "size", (function() { +return new cc.Size(this.width, this.height); +}), (function(t) { +this.width = t.width; +this.height = t.height; +})); +cc.Rect = a; +cc.rect = function(t, e, i, n) { +return new a(t, e, i, n); +}; +n.exports = cc.Rect; +}), { +"../platform/CCClass": 201, +"../platform/js": 221, +"./value-type": 311 +} ], +310: [ (function(i, n, r) { +"use strict"; +var s = i("./value-type"), o = i("../platform/js"); +function a(i, n) { +if (i && "object" === ("object" === (e = typeof i) ? t(i) : e)) { +n = i.height; +i = i.width; +} +this.width = i || 0; +this.height = n || 0; +} +o.extend(a, s); +i("../platform/CCClass").fastDefine("cc.Size", a, { +width: 0, +height: 0 +}); +o.get(a, "ZERO", (function() { +return new a(0, 0); +})); +var c = a.prototype; +c.clone = function() { +return new a(this.width, this.height); +}; +c.equals = function(t) { +return t && this.width === t.width && this.height === t.height; +}; +c.lerp = function(t, e, i) { +i = i || new a(); +var n = this.width, r = this.height; +i.width = n + (t.width - n) * e; +i.height = r + (t.height - r) * e; +return i; +}; +c.set = function(t) { +this.width = t.width; +this.height = t.height; +}; +c.toString = function() { +return "(" + this.width.toFixed(2) + ", " + this.height.toFixed(2) + ")"; +}; +cc.size = function(t, e) { +return new a(t, e); +}; +cc.Size = n.exports = a; +}), { +"../platform/CCClass": 201, +"../platform/js": 221, +"./value-type": 311 +} ], +311: [ (function(t, e, i) { +"use strict"; +var n = t("../platform/js"); +function r() {} +n.setClassName("cc.ValueType", r); +var s = r.prototype; +0; +s.toString = function() { +return "" + {}; +}; +cc.ValueType = e.exports = r; +}), { +"../platform/js": 221 +} ], +312: [ (function(i, n, r) { +"use strict"; +var s = i("../vmath"), o = i("./value-type"), a = i("../platform/js"), c = i("../platform/CCClass"), l = i("../utils/misc"); +function h(i, n) { +if (i && "object" === ("object" === (e = typeof i) ? t(i) : e)) { +n = i.y; +i = i.x; +} +this.x = i || 0; +this.y = n || 0; +} +a.extend(h, o); +c.fastDefine("cc.Vec2", h, { +x: 0, +y: 0 +}); +var u = h.prototype; +a.value(u, "z", 0, !0); +u.clone = function() { +return new h(this.x, this.y); +}; +u.set = function(t) { +this.x = t.x; +this.y = t.y; +return this; +}; +u.equals = function(t) { +return t && this.x === t.x && this.y === t.y; +}; +u.fuzzyEquals = function(t, e) { +return this.x - e <= t.x && t.x <= this.x + e && this.y - e <= t.y && t.y <= this.y + e; +}; +u.toString = function() { +return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ")"; +}; +u.lerp = function(t, e, i) { +i = i || new h(); +var n = this.x, r = this.y; +i.x = n + (t.x - n) * e; +i.y = r + (t.y - r) * e; +return i; +}; +u.clampf = function(t, e) { +this.x = l.clampf(this.x, t.x, e.x); +this.y = l.clampf(this.y, t.y, e.y); +return this; +}; +u.addSelf = function(t) { +this.x += t.x; +this.y += t.y; +return this; +}; +u.add = function(t, e) { +(e = e || new h()).x = this.x + t.x; +e.y = this.y + t.y; +return e; +}; +u.subSelf = function(t) { +this.x -= t.x; +this.y -= t.y; +return this; +}; +u.sub = function(t, e) { +(e = e || new h()).x = this.x - t.x; +e.y = this.y - t.y; +return e; +}; +u.mulSelf = function(t) { +this.x *= t; +this.y *= t; +return this; +}; +u.mul = function(t, e) { +(e = e || new h()).x = this.x * t; +e.y = this.y * t; +return e; +}; +u.scaleSelf = function(t) { +this.x *= t.x; +this.y *= t.y; +return this; +}; +u.scale = function(t, e) { +(e = e || new h()).x = this.x * t.x; +e.y = this.y * t.y; +return e; +}; +u.divSelf = function(t) { +this.x /= t; +this.y /= t; +return this; +}; +u.div = function(t, e) { +(e = e || new h()).x = this.x / t; +e.y = this.y / t; +return e; +}; +u.negSelf = function() { +this.x = -this.x; +this.y = -this.y; +return this; +}; +u.neg = function(t) { +(t = t || new h()).x = -this.x; +t.y = -this.y; +return t; +}; +u.dot = function(t) { +return this.x * t.x + this.y * t.y; +}; +u.cross = function(t) { +return this.x * t.y - this.y * t.x; +}; +u.mag = function() { +return Math.sqrt(this.x * this.x + this.y * this.y); +}; +u.magSqr = function() { +return this.x * this.x + this.y * this.y; +}; +u.normalizeSelf = function() { +var t = this.x * this.x + this.y * this.y; +if (1 === t) return this; +if (0 === t) return this; +var e = 1 / Math.sqrt(t); +this.x *= e; +this.y *= e; +return this; +}; +u.normalize = function(t) { +(t = t || new h()).x = this.x; +t.y = this.y; +t.normalizeSelf(); +return t; +}; +u.angle = function(t) { +var e = this.magSqr(), i = t.magSqr(); +if (0 === e || 0 === i) { +console.warn("Can't get angle between zero vector"); +return 0; +} +var n = this.dot(t) / Math.sqrt(e * i); +n = l.clampf(n, -1, 1); +return Math.acos(n); +}; +u.signAngle = function(t) { +var e = this.angle(t); +return this.cross(t) < 0 ? -e : e; +}; +u.rotate = function(t, e) { +(e = e || new h()).x = this.x; +e.y = this.y; +return e.rotateSelf(t); +}; +u.rotateSelf = function(t) { +var e = Math.sin(t), i = Math.cos(t), n = this.x; +this.x = i * n - e * this.y; +this.y = e * n + i * this.y; +return this; +}; +u.project = function(t) { +return t.mul(this.dot(t) / t.dot(t)); +}; +u.transformMat4 = function(t, e) { +e = e || new h(); +s.vec2.transformMat4(e, this, t); +}; +a.get(h, "ONE", (function() { +return new h(1, 1); +})); +a.get(h, "ZERO", (function() { +return new h(0, 0); +})); +a.get(h, "UP", (function() { +return new h(0, 1); +})); +a.get(h, "RIGHT", (function() { +return new h(1, 0); +})); +cc.Vec2 = h; +cc.v2 = function(t, e) { +return new h(t, e); +}; +cc.p = cc.v2; +n.exports = cc.Vec2; +}), { +"../platform/CCClass": 201, +"../platform/js": 221, +"../utils/misc": 297, +"../vmath": 317, +"./value-type": 311 +} ], +313: [ (function(i, n, r) { +"use strict"; +var s = i("../vmath"), o = i("./value-type"), a = i("../platform/js"), c = i("../platform/CCClass"), l = i("../utils/misc"), h = i("./vec2").prototype; +function u(i, n, r) { +if (i && "object" === ("object" === (e = typeof i) ? t(i) : e)) { +r = i.z; +n = i.y; +i = i.x; +} +this.x = i || 0; +this.y = n || 0; +this.z = r || 0; +} +a.extend(u, o); +c.fastDefine("cc.Vec3", u, { +x: 0, +y: 0, +z: 0 +}); +var _ = u.prototype; +_.clone = function() { +return new u(this.x, this.y, this.z); +}; +_.set = function(t) { +this.x = t.x; +this.y = t.y; +this.z = t.z; +return this; +}; +_.equals = function(t) { +return t && this.x === t.x && this.y === t.y && this.z === t.z; +}; +_.fuzzyEquals = function(t, e) { +return this.x - e <= t.x && t.x <= this.x + e && this.y - e <= t.y && t.y <= this.y + e && this.z - e <= t.z && t.z <= this.z + e; +}; +_.toString = function() { +return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ", " + this.z.toFixed(2) + ")"; +}; +_.lerp = function(t, e, i) { +i = i || new u(); +s.vec3.lerp(i, this, t, e); +return i; +}; +_.clampf = function(t, e) { +this.x = l.clampf(this.x, t.x, e.x); +this.y = l.clampf(this.y, t.y, e.y); +this.z = l.clampf(this.z, t.z, e.z); +return this; +}; +_.addSelf = function(t) { +this.x += t.x; +this.y += t.y; +this.z += t.z; +return this; +}; +_.add = function(t, e) { +(e = e || new u()).x = this.x + t.x; +e.y = this.y + t.y; +e.z = this.z + t.z; +return e; +}; +_.subSelf = function(t) { +this.x -= t.x; +this.y -= t.y; +this.z -= t.z; +return this; +}; +_.sub = function(t, e) { +(e = e || new u()).x = this.x - t.x; +e.y = this.y - t.y; +e.z = this.z - t.z; +return e; +}; +_.mulSelf = function(t) { +this.x *= t; +this.y *= t; +this.z *= t; +return this; +}; +_.mul = function(t, e) { +(e = e || new u()).x = this.x * t; +e.y = this.y * t; +e.z = this.z * t; +return e; +}; +_.scaleSelf = function(t) { +this.x *= t.x; +this.y *= t.y; +this.z *= t.z; +return this; +}; +_.scale = function(t, e) { +(e = e || new u()).x = this.x * t.x; +e.y = this.y * t.y; +e.z = this.z * t.z; +return e; +}; +_.divSelf = function(t) { +this.x /= t; +this.y /= t; +this.z /= t; +return this; +}; +_.div = function(t, e) { +(e = e || new u()).x = this.x / t; +e.y = this.y / t; +e.z = this.z / t; +return e; +}; +_.negSelf = function() { +this.x = -this.x; +this.y = -this.y; +this.z = -this.z; +return this; +}; +_.neg = function(t) { +(t = t || new u()).x = -this.x; +t.y = -this.y; +t.z = -this.z; +return t; +}; +_.dot = function(t) { +return this.x * t.x + this.y * t.y + this.z * t.z; +}; +_.cross = function(t, e) { +e = e || new u(); +s.vec3.cross(e, this, t); +return e; +}; +_.mag = function() { +return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); +}; +_.magSqr = function() { +return this.x * this.x + this.y * this.y + this.z * this.z; +}; +_.normalizeSelf = function() { +s.vec3.normalize(this, this); +return this; +}; +_.normalize = function(t) { +t = t || new u(); +s.vec3.normalize(t, this); +return t; +}; +_.transformMat4 = function(t, e) { +e = e || new u(); +s.vec3.transformMat4(e, this, t); +}; +_.angle = h.angle; +_.project = h.project; +_.signAngle = function(t) { +cc.warnID(1408, "vec3.signAngle", "v2.1", "cc.v2(selfVector).signAngle(vector)"); +var e = new cc.Vec2(this.x, this.y), i = new cc.Vec2(t.x, t.y); +return e.signAngle(i); +}; +_.rotate = function(t, e) { +cc.warnID(1408, "vec3.rotate", "v2.1", "cc.v2(selfVector).rotate(radians, out)"); +return h.rotate.call(this, t, e); +}; +_.rotateSelf = function(t) { +cc.warnID(1408, "vec3.rotateSelf", "v2.1", "cc.v2(selfVector).rotateSelf(radians)"); +return h.rotateSelf.call(this, t); +}; +a.get(u, "ONE", (function() { +return new u(1, 1, 1); +})); +a.get(u, "ZERO", (function() { +return new u(0, 0, 0); +})); +a.get(u, "UP", (function() { +return new u(0, 1, 0); +})); +a.get(u, "RIGHT", (function() { +return new u(1, 0, 0); +})); +a.get(u, "FRONT", (function() { +return new u(0, 0, 1); +})); +cc.v3 = function(t, e, i) { +return new u(t, e, i); +}; +n.exports = cc.Vec3 = u; +}), { +"../platform/CCClass": 201, +"../platform/js": 221, +"../utils/misc": 297, +"../vmath": 317, +"./value-type": 311, +"./vec2": 312 +} ], +314: [ (function(i, n, r) { +"use strict"; +var s = l(i("./value-type")), o = l(i("../platform/CCClass")), a = i("../vmath"), c = i("../utils/misc"); +function l(t) { +return t && t.__esModule ? t : { +default: t +}; +} +function h(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +function u(i, n) { +if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); +return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; +} +function _(i, n) { +if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); +i.prototype = Object.create(n && n.prototype, { +constructor: { +value: i, +enumerable: !1, +writable: !0, +configurable: !0 +} +}); +n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); +} +var f = (function(i) { +_(n, i); +function n(r, s, o, a) { +h(this, n); +var c = u(this, i.call(this)); +if (r && "object" === ("object" === (e = typeof r) ? t(r) : e)) { +a = r.w; +o = r.z; +s = r.y; +r = r.x; +} +c.x = r || 0; +c.y = s || 0; +c.z = o || 0; +c.w = a || 0; +return c; +} +n.prototype.clone = function() { +return new n(this.x, this.y, this.z, this.w); +}; +n.prototype.set = function(t) { +this.x = t.x; +this.y = t.y; +this.z = t.z; +this.w = t.w; +return this; +}; +n.prototype.equals = function(t) { +return t && this.x === t.x && this.y === t.y && this.z === t.z && this.w === t.w; +}; +n.prototype.fuzzyEquals = function(t, e) { +return this.x - e <= t.x && t.x <= this.x + e && this.y - e <= t.y && t.y <= this.y + e && this.z - e <= t.z && t.z <= this.z + e && this.w - e <= t.w && t.w <= this.w + e; +}; +n.prototype.toString = function() { +return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ", " + this.z.toFixed(2) + ", " + this.w.toFixed(2) + ")"; +}; +n.prototype.lerp = function(t, e, i) { +i = i || new n(); +a.vec4.lerp(i, this, t, e); +return i; +}; +n.prototype.clampf = function(t, e) { +this.x = (0, c.clampf)(this.x, t.x, e.x); +this.y = (0, c.clampf)(this.y, t.y, e.y); +this.z = (0, c.clampf)(this.z, t.z, e.z); +this.w = (0, c.clampf)(this.w, t.w, e.w); +return this; +}; +n.prototype.addSelf = function(t) { +this.x += t.x; +this.y += t.y; +this.z += t.z; +this.w += t.w; +return this; +}; +n.prototype.add = function(t, e) { +(e = e || new n()).x = this.x + t.x; +e.y = this.y + t.y; +e.z = this.z + t.z; +e.w = this.w + t.w; +return e; +}; +n.prototype.subSelf = function(t) { +this.x -= t.x; +this.y -= t.y; +this.z -= t.z; +this.w -= t.w; +return this; +}; +n.prototype.sub = function(t, e) { +(e = e || new n()).x = this.x - t.x; +e.y = this.y - t.y; +e.z = this.z - t.z; +e.w = this.w - t.w; +return e; +}; +n.prototype.mulSelf = function(t) { +this.x *= t; +this.y *= t; +this.z *= t; +this.w *= t; +return this; +}; +n.prototype.mul = function(t, e) { +(e = e || new n()).x = this.x * t; +e.y = this.y * t; +e.z = this.z * t; +e.w = this.w * t; +return e; +}; +n.prototype.scaleSelf = function(t) { +this.x *= t.x; +this.y *= t.y; +this.z *= t.z; +this.w *= t.w; +return this; +}; +n.prototype.scale = function(t, e) { +(e = e || new n()).x = this.x * t.x; +e.y = this.y * t.y; +e.z = this.z * t.z; +e.w = this.w * t.w; +return e; +}; +n.prototype.divSelf = function(t) { +this.x /= t; +this.y /= t; +this.z /= t; +this.w /= t; +return this; +}; +n.prototype.div = function(t, e) { +(e = e || new n()).x = this.x / t; +e.y = this.y / t; +e.z = this.z / t; +e.w = this.w / t; +return e; +}; +n.prototype.negSelf = function() { +this.x = -this.x; +this.y = -this.y; +this.z = -this.z; +this.w = -this.w; +return this; +}; +n.prototype.neg = function(t) { +(t = t || new n()).x = -this.x; +t.y = -this.y; +t.z = -this.z; +t.w = -this.w; +return t; +}; +n.prototype.dot = function(t) { +return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w; +}; +n.prototype.cross = function(t, e) { +e = e || new n(); +a.vec4.cross(e, this, t); +return e; +}; +n.prototype.mag = function() { +var t = this.x, e = this.y, i = this.z, n = this.w; +return Math.sqrt(t * t + e * e + i * i + n * n); +}; +n.prototype.magSqr = function() { +var t = this.x, e = this.y, i = this.z, n = this.w; +return t * t + e * e + i * i + n * n; +}; +n.prototype.normalizeSelf = function() { +a.vec4.normalize(this, this); +return this; +}; +n.prototype.normalize = function(t) { +t = t || new n(); +a.vec4.normalize(t, this); +return t; +}; +n.prototype.transformMat4 = function(t, e) { +e = e || new n(); +a.vec4.transformMat4(e, this, t); +return e; +}; +return n; +})(s.default); +o.default.fastDefine("cc.Vec4", f, { +x: 0, +y: 0, +z: 0, +w: 0 +}); +cc.v4 = function(t, e, i, n) { +return new f(t, e, i, n); +}; +n.exports = cc.Vec4 = f; +}), { +"../platform/CCClass": 201, +"../utils/misc": 297, +"../vmath": 317, +"./value-type": 311 +} ], +315: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = t("./utils"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t() { +var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1; +r(this, t); +this.r = e; +this.g = i; +this.b = n; +} +t.create = function() { +return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1); +}; +t.clone = function(e) { +return new t(e.r, e.g, e.b); +}; +t.copy = function(t, e) { +t.r = e.r; +t.g = e.g; +t.b = e.b; +return t; +}; +t.set = function(t, e, i, n) { +t.r = e; +t.g = i; +t.b = n; +return t; +}; +t.fromHex = function(t, e) { +var i = (e >> 16) / 255, n = (e >> 8 & 255) / 255, r = (255 & e) / 255; +t.r = i; +t.g = n; +t.b = r; +return t; +}; +t.add = function(t, e, i) { +t.r = e.r + i.r; +t.g = e.g + i.g; +t.b = e.b + i.b; +return t; +}; +t.subtract = function(t, e, i) { +t.r = e.r - i.r; +t.g = e.g - i.g; +t.b = e.b - i.b; +return t; +}; +t.sub = function(e, i, n) { +return t.subtract(e, i, n); +}; +t.multiply = function(t, e, i) { +t.r = e.r * i.r; +t.g = e.g * i.g; +t.b = e.b * i.b; +return t; +}; +t.mul = function(e, i, n) { +return t.multiply(e, i, n); +}; +t.divide = function(t, e, i) { +t.r = e.r / i.r; +t.g = e.g / i.g; +t.b = e.b / i.b; +return t; +}; +t.div = function(e, i, n) { +return t.divide(e, i, n); +}; +t.scale = function(t, e, i) { +t.r = e.r * i; +t.g = e.g * i; +t.b = e.b * i; +return t; +}; +t.lerp = function(t, e, i, n) { +var r = e.r, s = e.g, o = e.b; +t.r = r + n * (i.r - r); +t.g = s + n * (i.g - s); +t.b = o + n * (i.b - o); +return t; +}; +t.str = function(t) { +return "color3(" + t.r + ", " + t.g + ", " + t.b + ")"; +}; +t.array = function(t, e) { +var i = e instanceof cc.Color ? 1 / 255 : 1; +t[0] = e.r * i; +t[1] = e.g * i; +t[2] = e.b * i; +return t; +}; +t.exactEquals = function(t, e) { +return t.r === e.r && t.g === e.g && t.b === e.b; +}; +t.equals = function(t, e) { +var i = t.r, r = t.g, s = t.b, o = e.r, a = e.g, c = e.b; +return Math.abs(i - o) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(o)) && Math.abs(r - a) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(a)) && Math.abs(s - c) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(c)); +}; +t.hex = function(t) { +return 255 * t.r << 16 | 255 * t.g << 8 | 255 * t.b; +}; +return t; +})(); +i.default = s; +e.exports = i.default; +}), { +"./utils": 323 +} ], +316: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = t("./utils"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t() { +var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1; +r(this, t); +this.r = e; +this.g = i; +this.b = n; +this.a = s; +} +t.create = function() { +return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1); +}; +t.clone = function(e) { +return new t(e.r, e.g, e.b, e.a); +}; +t.copy = function(t, e) { +t.r = e.r; +t.g = e.g; +t.b = e.b; +t.a = e.a; +return t; +}; +t.set = function(t, e, i, n, r) { +t.r = e; +t.g = i; +t.b = n; +t.a = r; +return t; +}; +t.fromHex = function(t, e) { +var i = (e >> 24) / 255, n = (e >> 16 & 255) / 255, r = (e >> 8 & 255) / 255, s = (255 & e) / 255; +t.r = i; +t.g = n; +t.b = r; +t.a = s; +return t; +}; +t.add = function(t, e, i) { +t.r = e.r + i.r; +t.g = e.g + i.g; +t.b = e.b + i.b; +t.a = e.a + i.a; +return t; +}; +t.subtract = function(t, e, i) { +t.r = e.r - i.r; +t.g = e.g - i.g; +t.b = e.b - i.b; +t.a = e.a - i.a; +return t; +}; +t.sub = function(e, i, n) { +return t.subtract(e, i, n); +}; +t.multiply = function(t, e, i) { +t.r = e.r * i.r; +t.g = e.g * i.g; +t.b = e.b * i.b; +t.a = e.a * i.a; +return t; +}; +t.mul = function(e, i, n) { +return t.multiply(e, i, n); +}; +t.divide = function(t, e, i) { +t.r = e.r / i.r; +t.g = e.g / i.g; +t.b = e.b / i.b; +t.a = e.a / i.a; +return t; +}; +t.div = function(e, i, n) { +return t.divide(e, i, n); +}; +t.scale = function(t, e, i) { +t.r = e.r * i; +t.g = e.g * i; +t.b = e.b * i; +t.a = e.a * i; +return t; +}; +t.lerp = function(t, e, i, n) { +var r = e.r, s = e.g, o = e.b, a = e.a; +t.r = r + n * (i.r - r); +t.g = s + n * (i.g - s); +t.b = o + n * (i.b - o); +t.a = a + n * (i.a - a); +return t; +}; +t.str = function(t) { +return "color4(" + t.r + ", " + t.g + ", " + t.b + ", " + t.a + ")"; +}; +t.array = function(t, e) { +var i = e instanceof cc.Color || e.a > 1 ? 1 / 255 : 1; +t[0] = e.r * i; +t[1] = e.g * i; +t[2] = e.b * i; +t[3] = e.a * i; +return t; +}; +t.exactEquals = function(t, e) { +return t.r === e.r && t.g === e.g && t.b === e.b && t.a === e.a; +}; +t.equals = function(t, e) { +var i = t.r, r = t.g, s = t.b, o = t.a, a = e.r, c = e.g, l = e.b, h = e.a; +return Math.abs(i - a) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(a)) && Math.abs(r - c) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(c)) && Math.abs(s - l) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(l)) && Math.abs(o - h) <= n.EPSILON * Math.max(1, Math.abs(o), Math.abs(h)); +}; +t.hex = function(t) { +return (255 * t.r << 24 | 255 * t.g << 16 | 255 * t.b << 8 | 255 * t.a) >>> 0; +}; +return t; +})(); +i.default = s; +e.exports = i.default; +}), { +"./utils": 323 +} ], +317: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.color4 = i.color3 = i.mat4 = i.mat3 = i.mat23 = i.mat2 = i.quat = i.vec4 = i.vec3 = i.vec2 = void 0; +var n = t("./utils"); +Object.keys(n).forEach((function(t) { +"default" !== t && "__esModule" !== t && Object.defineProperty(i, t, { +enumerable: !0, +get: function() { +return n[t]; +} +}); +})); +var r = d(t("./vec2")), s = d(t("./vec3")), o = d(t("./vec4")), a = d(t("./quat")), c = d(t("./mat2")), l = d(t("./mat23")), h = d(t("./mat3")), u = d(t("./mat4")), _ = d(t("./color3")), f = d(t("./color4")); +function d(t) { +return t && t.__esModule ? t : { +default: t +}; +} +i.vec2 = r.default; +i.vec3 = s.default; +i.vec4 = o.default; +i.quat = a.default; +i.mat2 = c.default; +i.mat23 = l.default; +i.mat3 = h.default; +i.mat4 = u.default; +i.color3 = _.default; +i.color4 = f.default; +i.default = { +vec2: r.default, +vec3: s.default, +vec4: o.default, +quat: a.default, +mat2: c.default, +mat23: l.default, +mat3: h.default, +mat4: u.default, +color3: _.default, +color4: f.default +}; +}), { +"./color3": 315, +"./color4": 316, +"./mat2": 318, +"./mat23": 319, +"./mat3": 320, +"./mat4": 321, +"./quat": 322, +"./utils": 323, +"./vec2": 324, +"./vec3": 325, +"./vec4": 326 +} ], +318: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = t("./utils"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t() { +var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1; +r(this, t); +this.m00 = e; +this.m01 = i; +this.m02 = n; +this.m03 = s; +} +t.create = function() { +return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1); +}; +t.clone = function(e) { +return new t(e.m00, e.m01, e.m02, e.m03); +}; +t.copy = function(t, e) { +t.m00 = e.m00; +t.m01 = e.m01; +t.m02 = e.m02; +t.m03 = e.m03; +return t; +}; +t.identity = function(t) { +t.m00 = 1; +t.m01 = 0; +t.m02 = 0; +t.m03 = 1; +return t; +}; +t.set = function(t, e, i, n, r) { +t.m00 = e; +t.m01 = i; +t.m02 = n; +t.m03 = r; +return t; +}; +t.transpose = function(t, e) { +if (t === e) { +var i = e.m01; +t.m01 = e.m02; +t.m02 = i; +} else { +t.m00 = e.m00; +t.m01 = e.m02; +t.m02 = e.m01; +t.m03 = e.m03; +} +return t; +}; +t.invert = function(t, e) { +var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = i * s - r * n; +if (!o) return null; +o = 1 / o; +t.m00 = s * o; +t.m01 = -n * o; +t.m02 = -r * o; +t.m03 = i * o; +return t; +}; +t.adjoint = function(t, e) { +var i = e.m00; +t.m00 = e.m03; +t.m01 = -e.m01; +t.m02 = -e.m02; +t.m03 = i; +return t; +}; +t.determinant = function(t) { +return t.m00 * t.m03 - t.m02 * t.m01; +}; +t.multiply = function(t, e, i) { +var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = i.m00, c = i.m01, l = i.m02, h = i.m03; +t.m00 = n * a + s * c; +t.m01 = r * a + o * c; +t.m02 = n * l + s * h; +t.m03 = r * l + o * h; +return t; +}; +t.mul = function(e, i, n) { +return t.multiply(e, i, n); +}; +t.rotate = function(t, e, i) { +var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = Math.sin(i), c = Math.cos(i); +t.m00 = n * c + s * a; +t.m01 = r * c + o * a; +t.m02 = n * -a + s * c; +t.m03 = r * -a + o * c; +return t; +}; +t.scale = function(t, e, i) { +var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = i.x, c = i.y; +t.m00 = n * a; +t.m01 = r * a; +t.m02 = s * c; +t.m03 = o * c; +return t; +}; +t.fromRotation = function(t, e) { +var i = Math.sin(e), n = Math.cos(e); +t.m00 = n; +t.m01 = i; +t.m02 = -i; +t.m03 = n; +return t; +}; +t.fromScaling = function(t, e) { +t.m00 = e.x; +t.m01 = 0; +t.m02 = 0; +t.m03 = e.y; +return t; +}; +t.str = function(t) { +return "mat2(" + t.m00 + ", " + t.m01 + ", " + t.m02 + ", " + t.m03 + ")"; +}; +t.array = function(t, e) { +t[0] = e.m00; +t[1] = e.m01; +t[2] = e.m02; +t[3] = e.m03; +return t; +}; +t.frob = function(t) { +return Math.sqrt(Math.pow(t.m00, 2) + Math.pow(t.m01, 2) + Math.pow(t.m02, 2) + Math.pow(t.m03, 2)); +}; +t.LDU = function(t, e, i, n) { +t.m02 = n.m02 / n.m00; +i.m00 = n.m00; +i.m01 = n.m01; +i.m03 = n.m03 - t.m02 * i.m01; +}; +t.add = function(t, e, i) { +t.m00 = e.m00 + i.m00; +t.m01 = e.m01 + i.m01; +t.m02 = e.m02 + i.m02; +t.m03 = e.m03 + i.m03; +return t; +}; +t.subtract = function(t, e, i) { +t.m00 = e.m00 - i.m00; +t.m01 = e.m01 - i.m01; +t.m02 = e.m02 - i.m02; +t.m03 = e.m03 - i.m03; +return t; +}; +t.sub = function(e, i, n) { +return t.subtract(e, i, n); +}; +t.exactEquals = function(t, e) { +return t.m00 === e.m00 && t.m01 === e.m01 && t.m02 === e.m02 && t.m03 === e.m03; +}; +t.equals = function(t, e) { +var i = t.m00, r = t.m01, s = t.m02, o = t.m03, a = e.m00, c = e.m01, l = e.m02, h = e.m03; +return Math.abs(i - a) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(a)) && Math.abs(r - c) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(c)) && Math.abs(s - l) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(l)) && Math.abs(o - h) <= n.EPSILON * Math.max(1, Math.abs(o), Math.abs(h)); +}; +t.multiplyScalar = function(t, e, i) { +t.m00 = e.m00 * i; +t.m01 = e.m01 * i; +t.m02 = e.m02 * i; +t.m03 = e.m03 * i; +return t; +}; +t.multiplyScalarAndAdd = function(t, e, i, n) { +t.m00 = e.m00 + i.m00 * n; +t.m01 = e.m01 + i.m01 * n; +t.m02 = e.m02 + i.m02 * n; +t.m03 = e.m03 + i.m03 * n; +return t; +}; +return t; +})(); +i.default = s; +e.exports = i.default; +}), { +"./utils": 323 +} ], +319: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = t("./utils"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t() { +var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1, o = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, a = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0; +r(this, t); +this.m00 = e; +this.m01 = i; +this.m02 = n; +this.m03 = s; +this.m04 = o; +this.m05 = a; +} +t.create = function() { +return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1, arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0); +}; +t.clone = function(e) { +return new t(e.m00, e.m01, e.m02, e.m03, e.m04, e.m05); +}; +t.copy = function(t, e) { +t.m00 = e.m00; +t.m01 = e.m01; +t.m02 = e.m02; +t.m03 = e.m03; +t.m04 = e.m04; +t.m05 = e.m05; +return t; +}; +t.identity = function(t) { +t.m00 = 1; +t.m01 = 0; +t.m02 = 0; +t.m03 = 1; +t.m04 = 0; +t.m05 = 0; +return t; +}; +t.set = function(t, e, i, n, r, s, o) { +t.m00 = e; +t.m01 = i; +t.m02 = n; +t.m03 = r; +t.m04 = s; +t.m05 = o; +return t; +}; +t.invert = function(t, e) { +var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = e.m04, a = e.m05, c = i * s - n * r; +if (!c) return null; +c = 1 / c; +t.m00 = s * c; +t.m01 = -n * c; +t.m02 = -r * c; +t.m03 = i * c; +t.m04 = (r * a - s * o) * c; +t.m05 = (n * o - i * a) * c; +return t; +}; +t.determinant = function(t) { +return t.m00 * t.m03 - t.m01 * t.m02; +}; +t.multiply = function(t, e, i) { +var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = i.m00, h = i.m01, u = i.m02, _ = i.m03, f = i.m04, d = i.m05; +t.m00 = n * l + s * h; +t.m01 = r * l + o * h; +t.m02 = n * u + s * _; +t.m03 = r * u + o * _; +t.m04 = n * f + s * d + a; +t.m05 = r * f + o * d + c; +return t; +}; +t.mul = function(e, i, n) { +return t.multiply(e, i, n); +}; +t.rotate = function(t, e, i) { +var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = Math.sin(i), h = Math.cos(i); +t.m00 = n * h + s * l; +t.m01 = r * h + o * l; +t.m02 = n * -l + s * h; +t.m03 = r * -l + o * h; +t.m04 = a; +t.m05 = c; +return t; +}; +t.scale = function(t, e, i) { +var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = i.x, h = i.y; +t.m00 = n * l; +t.m01 = r * l; +t.m02 = s * h; +t.m03 = o * h; +t.m04 = a; +t.m05 = c; +return t; +}; +t.translate = function(t, e, i) { +var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = i.x, h = i.y; +t.m00 = n; +t.m01 = r; +t.m02 = s; +t.m03 = o; +t.m04 = n * l + s * h + a; +t.m05 = r * l + o * h + c; +return t; +}; +t.fromRotation = function(t, e) { +var i = Math.sin(e), n = Math.cos(e); +t.m00 = n; +t.m01 = i; +t.m02 = -i; +t.m03 = n; +t.m04 = 0; +t.m05 = 0; +return t; +}; +t.fromScaling = function(t, e) { +t.m00 = e.m00; +t.m01 = 0; +t.m02 = 0; +t.m03 = e.m01; +t.m04 = 0; +t.m05 = 0; +return t; +}; +t.fromTranslation = function(t, e) { +t.m00 = 1; +t.m01 = 0; +t.m02 = 0; +t.m03 = 1; +t.m04 = e.x; +t.m05 = e.y; +return t; +}; +t.fromRTS = function(t, e, i, n) { +var r = Math.sin(e), s = Math.cos(e); +t.m00 = s * n.x; +t.m01 = r * n.x; +t.m02 = -r * n.y; +t.m03 = s * n.y; +t.m04 = i.x; +t.m05 = i.y; +return t; +}; +t.str = function(t) { +return "mat23(" + t.m00 + ", " + t.m01 + ", " + t.m02 + ", " + t.m03 + ", " + t.m04 + ", " + t.m05 + ")"; +}; +t.array = function(t, e) { +t[0] = e.m00; +t[1] = e.m01; +t[2] = e.m02; +t[3] = e.m03; +t[4] = e.m04; +t[5] = e.m05; +return t; +}; +t.array4x4 = function(t, e) { +t[0] = e.m00; +t[1] = e.m01; +t[2] = 0; +t[3] = 0; +t[4] = e.m02; +t[5] = e.m03; +t[6] = 0; +t[7] = 0; +t[8] = 0; +t[9] = 0; +t[10] = 1; +t[11] = 0; +t[12] = e.m04; +t[13] = e.m05; +t[14] = 0; +t[15] = 1; +return t; +}; +t.frob = function(t) { +return Math.sqrt(Math.pow(t.m00, 2) + Math.pow(t.m01, 2) + Math.pow(t.m02, 2) + Math.pow(t.m03, 2) + Math.pow(t.m04, 2) + Math.pow(t.m05, 2) + 1); +}; +t.add = function(t, e, i) { +t.m00 = e.m00 + i.m00; +t.m01 = e.m01 + i.m01; +t.m02 = e.m02 + i.m02; +t.m03 = e.m03 + i.m03; +t.m04 = e.m04 + i.m04; +t.m05 = e.m05 + i.m05; +return t; +}; +t.subtract = function(t, e, i) { +t.m00 = e.m00 - i.m00; +t.m01 = e.m01 - i.m01; +t.m02 = e.m02 - i.m02; +t.m03 = e.m03 - i.m03; +t.m04 = e.m04 - i.m04; +t.m05 = e.m05 - i.m05; +return t; +}; +t.sub = function(e, i, n) { +return t.subtract(e, i, n); +}; +t.multiplyScalar = function(t, e, i) { +t.m00 = e.m00 * i; +t.m01 = e.m01 * i; +t.m02 = e.m02 * i; +t.m03 = e.m03 * i; +t.m04 = e.m04 * i; +t.m05 = e.m05 * i; +return t; +}; +t.multiplyScalarAndAdd = function(t, e, i, n) { +t.m00 = e.m00 + i.m00 * n; +t.m01 = e.m01 + i.m01 * n; +t.m02 = e.m02 + i.m02 * n; +t.m03 = e.m03 + i.m03 * n; +t.m04 = e.m04 + i.m04 * n; +t.m05 = e.m05 + i.m05 * n; +return t; +}; +t.exactEquals = function(t, e) { +return t.m00 === e.m00 && t.m01 === e.m01 && t.m02 === e.m02 && t.m03 === e.m03 && t.m04 === e.m04 && t.m05 === e.m05; +}; +t.equals = function(t, e) { +var i = t.m00, r = t.m01, s = t.m02, o = t.m03, a = t.m04, c = t.m05, l = e.m00, h = e.m01, u = e.m02, _ = e.m03, f = e.m04, d = e.m05; +return Math.abs(i - l) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(l)) && Math.abs(r - h) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(h)) && Math.abs(s - u) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(u)) && Math.abs(o - _) <= n.EPSILON * Math.max(1, Math.abs(o), Math.abs(_)) && Math.abs(a - f) <= n.EPSILON * Math.max(1, Math.abs(a), Math.abs(f)) && Math.abs(c - d) <= n.EPSILON * Math.max(1, Math.abs(c), Math.abs(d)); +}; +return t; +})(); +i.default = s; +e.exports = i.default; +}), { +"./utils": 323 +} ], +320: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = t("./utils"), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./vec3")); +function s(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var o = (function() { +function t() { +var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, o = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 1, a = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0, c = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 0, l = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 0, h = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 1; +s(this, t); +this.m00 = e; +this.m01 = i; +this.m02 = n; +this.m03 = r; +this.m04 = o; +this.m05 = a; +this.m06 = c; +this.m07 = l; +this.m08 = h; +} +t.create = function() { +return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 1, arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0, arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 0, arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 0, arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 1); +}; +t.clone = function(e) { +return new t(e.m00, e.m01, e.m02, e.m03, e.m04, e.m05, e.m06, e.m07, e.m08); +}; +t.copy = function(t, e) { +t.m00 = e.m00; +t.m01 = e.m01; +t.m02 = e.m02; +t.m03 = e.m03; +t.m04 = e.m04; +t.m05 = e.m05; +t.m06 = e.m06; +t.m07 = e.m07; +t.m08 = e.m08; +return t; +}; +t.set = function(t, e, i, n, r, s, o, a, c, l) { +t.m00 = e; +t.m01 = i; +t.m02 = n; +t.m03 = r; +t.m04 = s; +t.m05 = o; +t.m06 = a; +t.m07 = c; +t.m08 = l; +return t; +}; +t.identity = function(t) { +t.m00 = 1; +t.m01 = 0; +t.m02 = 0; +t.m03 = 0; +t.m04 = 1; +t.m05 = 0; +t.m06 = 0; +t.m07 = 0; +t.m08 = 1; +return t; +}; +t.transpose = function(t, e) { +if (t === e) { +var i = e.m01, n = e.m02, r = e.m05; +t.m01 = e.m03; +t.m02 = e.m06; +t.m03 = i; +t.m05 = e.m07; +t.m06 = n; +t.m07 = r; +} else { +t.m00 = e.m00; +t.m01 = e.m03; +t.m02 = e.m06; +t.m03 = e.m01; +t.m04 = e.m04; +t.m05 = e.m07; +t.m06 = e.m02; +t.m07 = e.m05; +t.m08 = e.m08; +} +return t; +}; +t.invert = function(t, e) { +var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = e.m04, a = e.m05, c = e.m06, l = e.m07, h = e.m08, u = h * o - a * l, _ = -h * s + a * c, f = l * s - o * c, d = i * u + n * _ + r * f; +if (!d) return null; +d = 1 / d; +t.m00 = u * d; +t.m01 = (-h * n + r * l) * d; +t.m02 = (a * n - r * o) * d; +t.m03 = _ * d; +t.m04 = (h * i - r * c) * d; +t.m05 = (-a * i + r * s) * d; +t.m06 = f * d; +t.m07 = (-l * i + n * c) * d; +t.m08 = (o * i - n * s) * d; +return t; +}; +t.adjoint = function(t, e) { +var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = e.m04, a = e.m05, c = e.m06, l = e.m07, h = e.m08; +t.m00 = o * h - a * l; +t.m01 = r * l - n * h; +t.m02 = n * a - r * o; +t.m03 = a * c - s * h; +t.m04 = i * h - r * c; +t.m05 = r * s - i * a; +t.m06 = s * l - o * c; +t.m07 = n * c - i * l; +t.m08 = i * o - n * s; +return t; +}; +t.determinant = function(t) { +var e = t.m00, i = t.m01, n = t.m02, r = t.m03, s = t.m04, o = t.m05, a = t.m06, c = t.m07, l = t.m08; +return e * (l * s - o * c) + i * (-l * r + o * a) + n * (c * r - s * a); +}; +t.multiply = function(t, e, i) { +var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = e.m06, h = e.m07, u = e.m08, _ = i.m00, f = i.m01, d = i.m02, m = i.m03, p = i.m04, v = i.m05, y = i.m06, g = i.m07, x = i.m08; +t.m00 = _ * n + f * o + d * l; +t.m01 = _ * r + f * a + d * h; +t.m02 = _ * s + f * c + d * u; +t.m03 = m * n + p * o + v * l; +t.m04 = m * r + p * a + v * h; +t.m05 = m * s + p * c + v * u; +t.m06 = y * n + g * o + x * l; +t.m07 = y * r + g * a + x * h; +t.m08 = y * s + g * c + x * u; +return t; +}; +t.mul = function(e, i, n) { +return t.multiply(e, i, n); +}; +t.translate = function(t, e, i) { +var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = e.m06, h = e.m07, u = e.m08, _ = i.x, f = i.y; +t.m00 = n; +t.m01 = r; +t.m02 = s; +t.m03 = o; +t.m04 = a; +t.m05 = c; +t.m06 = _ * n + f * o + l; +t.m07 = _ * r + f * a + h; +t.m08 = _ * s + f * c + u; +return t; +}; +t.rotate = function(t, e, i) { +var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = e.m06, h = e.m07, u = e.m08, _ = Math.sin(i), f = Math.cos(i); +t.m00 = f * n + _ * o; +t.m01 = f * r + _ * a; +t.m02 = f * s + _ * c; +t.m03 = f * o - _ * n; +t.m04 = f * a - _ * r; +t.m05 = f * c - _ * s; +t.m06 = l; +t.m07 = h; +t.m08 = u; +return t; +}; +t.scale = function(t, e, i) { +var n = i.x, r = i.y; +t.m00 = n * e.m00; +t.m01 = n * e.m01; +t.m02 = n * e.m02; +t.m03 = r * e.m03; +t.m04 = r * e.m04; +t.m05 = r * e.m05; +t.m06 = e.m06; +t.m07 = e.m07; +t.m08 = e.m08; +return t; +}; +t.fromMat4 = function(t, e) { +t.m00 = e.m00; +t.m01 = e.m01; +t.m02 = e.m02; +t.m03 = e.m04; +t.m04 = e.m05; +t.m05 = e.m06; +t.m06 = e.m08; +t.m07 = e.m09; +t.m08 = e.m10; +return t; +}; +t.fromTranslation = function(t, e) { +t.m00 = 1; +t.m01 = 0; +t.m02 = 0; +t.m03 = 0; +t.m04 = 1; +t.m05 = 0; +t.m06 = e.x; +t.m07 = e.y; +t.m08 = 1; +return t; +}; +t.fromRotation = function(t, e) { +var i = Math.sin(e), n = Math.cos(e); +t.m00 = n; +t.m01 = i; +t.m02 = 0; +t.m03 = -i; +t.m04 = n; +t.m05 = 0; +t.m06 = 0; +t.m07 = 0; +t.m08 = 1; +return t; +}; +t.fromScaling = function(t, e) { +t.m00 = e.x; +t.m01 = 0; +t.m02 = 0; +t.m03 = 0; +t.m04 = e.y; +t.m05 = 0; +t.m06 = 0; +t.m07 = 0; +t.m08 = 1; +return t; +}; +t.fromMat2d = function(t, e) { +t.m00 = e.m00; +t.m01 = e.m01; +t.m02 = 0; +t.m03 = e.m02; +t.m04 = e.m03; +t.m05 = 0; +t.m06 = e.m04; +t.m07 = e.m05; +t.m08 = 1; +return t; +}; +t.fromQuat = function(t, e) { +var i = e.x, n = e.y, r = e.z, s = e.w, o = i + i, a = n + n, c = r + r, l = i * o, h = n * o, u = n * a, _ = r * o, f = r * a, d = r * c, m = s * o, p = s * a, v = s * c; +t.m00 = 1 - u - d; +t.m03 = h - v; +t.m06 = _ + p; +t.m01 = h + v; +t.m04 = 1 - l - d; +t.m07 = f - m; +t.m02 = _ - p; +t.m05 = f + m; +t.m08 = 1 - l - u; +return t; +}; +t.fromViewUp = function(e, i, s) { +return (function() { +var e = r.default.create(0, 1, 0), i = r.default.create(0, 0, 0), s = r.default.create(0, 0, 0); +return function(o, a, c) { +if (r.default.sqrMag(a) < n.EPSILON * n.EPSILON) { +t.identity(o); +return o; +} +c = c || e; +r.default.normalize(i, r.default.cross(i, c, a)); +if (r.default.sqrMag(i) < n.EPSILON * n.EPSILON) { +t.identity(o); +return o; +} +r.default.cross(s, a, i); +t.set(o, i.x, i.y, i.z, s.x, s.y, s.z, a.x, a.y, a.z); +return o; +}; +})()(e, i, s); +}; +t.normalFromMat4 = function(t, e) { +var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = e.m04, a = e.m05, c = e.m06, l = e.m07, h = e.m08, u = e.m09, _ = e.m10, f = e.m11, d = e.m12, m = e.m13, p = e.m14, v = e.m15, y = i * a - n * o, g = i * c - r * o, x = i * l - s * o, C = n * c - r * a, b = n * l - s * a, A = r * l - s * c, S = h * m - u * d, w = h * p - _ * d, T = h * v - f * d, E = u * p - _ * m, M = u * v - f * m, B = _ * v - f * p, D = y * B - g * M + x * E + C * T - b * w + A * S; +if (!D) return null; +D = 1 / D; +t.m00 = (a * B - c * M + l * E) * D; +t.m01 = (c * T - o * B - l * w) * D; +t.m02 = (o * M - a * T + l * S) * D; +t.m03 = (r * M - n * B - s * E) * D; +t.m04 = (i * B - r * T + s * w) * D; +t.m05 = (n * T - i * M - s * S) * D; +t.m06 = (m * A - p * b + v * C) * D; +t.m07 = (p * x - d * A - v * g) * D; +t.m08 = (d * b - m * x + v * y) * D; +return t; +}; +t.str = function(t) { +return "mat3(" + t.m00 + ", " + t.m01 + ", " + t.m02 + ", " + t.m03 + ", " + t.m04 + ", " + t.m05 + ", " + t.m06 + ", " + t.m07 + ", " + t.m08 + ")"; +}; +t.array = function(t, e) { +t[0] = e.m00; +t[1] = e.m01; +t[2] = e.m02; +t[3] = e.m03; +t[4] = e.m04; +t[5] = e.m05; +t[6] = e.m06; +t[7] = e.m07; +t[8] = e.m08; +return t; +}; +t.frob = function(t) { +return Math.sqrt(Math.pow(t.m00, 2) + Math.pow(t.m01, 2) + Math.pow(t.m02, 2) + Math.pow(t.m03, 2) + Math.pow(t.m04, 2) + Math.pow(t.m05, 2) + Math.pow(t.m06, 2) + Math.pow(t.m07, 2) + Math.pow(t.m08, 2)); +}; +t.add = function(t, e, i) { +t.m00 = e.m00 + i.m00; +t.m01 = e.m01 + i.m01; +t.m02 = e.m02 + i.m02; +t.m03 = e.m03 + i.m03; +t.m04 = e.m04 + i.m04; +t.m05 = e.m05 + i.m05; +t.m06 = e.m06 + i.m06; +t.m07 = e.m07 + i.m07; +t.m08 = e.m08 + i.m08; +return t; +}; +t.subtract = function(t, e, i) { +t.m00 = e.m00 - i.m00; +t.m01 = e.m01 - i.m01; +t.m02 = e.m02 - i.m02; +t.m03 = e.m03 - i.m03; +t.m04 = e.m04 - i.m04; +t.m05 = e.m05 - i.m05; +t.m06 = e.m06 - i.m06; +t.m07 = e.m07 - i.m07; +t.m08 = e.m08 - i.m08; +return t; +}; +t.sub = function(e, i, n) { +return t.subtract(e, i, n); +}; +t.multiplyScalar = function(t, e, i) { +t.m00 = e.m00 * i; +t.m01 = e.m01 * i; +t.m02 = e.m02 * i; +t.m03 = e.m03 * i; +t.m04 = e.m04 * i; +t.m05 = e.m05 * i; +t.m06 = e.m06 * i; +t.m07 = e.m07 * i; +t.m08 = e.m08 * i; +return t; +}; +t.multiplyScalarAndAdd = function(t, e, i, n) { +t.m00 = e.m00 + i.m00 * n; +t.m01 = e.m01 + i.m01 * n; +t.m02 = e.m02 + i.m02 * n; +t.m03 = e.m03 + i.m03 * n; +t.m04 = e.m04 + i.m04 * n; +t.m05 = e.m05 + i.m05 * n; +t.m06 = e.m06 + i.m06 * n; +t.m07 = e.m07 + i.m07 * n; +t.m08 = e.m08 + i.m08 * n; +return t; +}; +t.exactEquals = function(t, e) { +return t.m00 === e.m00 && t.m01 === e.m01 && t.m02 === e.m02 && t.m03 === e.m03 && t.m04 === e.m04 && t.m05 === e.m05 && t.m06 === e.m06 && t.m07 === e.m07 && t.m08 === e.m08; +}; +t.equals = function(t, e) { +var i = t.m00, r = t.m01, s = t.m02, o = t.m03, a = t.m04, c = t.m05, l = t.m06, h = t.m07, u = t.m08, _ = e.m00, f = e.m01, d = e.m02, m = e.m03, p = e.m04, v = e.m05, y = e.m06, g = e.m07, x = e.m08; +return Math.abs(i - _) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(_)) && Math.abs(r - f) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(f)) && Math.abs(s - d) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(d)) && Math.abs(o - m) <= n.EPSILON * Math.max(1, Math.abs(o), Math.abs(m)) && Math.abs(a - p) <= n.EPSILON * Math.max(1, Math.abs(a), Math.abs(p)) && Math.abs(c - v) <= n.EPSILON * Math.max(1, Math.abs(c), Math.abs(v)) && Math.abs(l - y) <= n.EPSILON * Math.max(1, Math.abs(l), Math.abs(y)) && Math.abs(h - g) <= n.EPSILON * Math.max(1, Math.abs(h), Math.abs(g)) && Math.abs(u - x) <= n.EPSILON * Math.max(1, Math.abs(u), Math.abs(x)); +}; +return t; +})(); +i.default = o; +e.exports = i.default; +}), { +"./utils": 323, +"./vec3": 325 +} ], +321: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = t("./utils"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t() { +var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, o = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, a = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 1, c = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 0, l = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 0, h = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 0, u = arguments.length > 9 && void 0 !== arguments[9] ? arguments[9] : 0, _ = arguments.length > 10 && void 0 !== arguments[10] ? arguments[10] : 1, f = arguments.length > 11 && void 0 !== arguments[11] ? arguments[11] : 0, d = arguments.length > 12 && void 0 !== arguments[12] ? arguments[12] : 0, m = arguments.length > 13 && void 0 !== arguments[13] ? arguments[13] : 0, p = arguments.length > 14 && void 0 !== arguments[14] ? arguments[14] : 0, v = arguments.length > 15 && void 0 !== arguments[15] ? arguments[15] : 1; +r(this, t); +this.m00 = e; +this.m01 = i; +this.m02 = n; +this.m03 = s; +this.m04 = o; +this.m05 = a; +this.m06 = c; +this.m07 = l; +this.m08 = h; +this.m09 = u; +this.m10 = _; +this.m11 = f; +this.m12 = d; +this.m13 = m; +this.m14 = p; +this.m15 = v; +} +t.create = function() { +return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 1, arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 0, arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 0, arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 0, arguments.length > 9 && void 0 !== arguments[9] ? arguments[9] : 0, arguments.length > 10 && void 0 !== arguments[10] ? arguments[10] : 1, arguments.length > 11 && void 0 !== arguments[11] ? arguments[11] : 0, arguments.length > 12 && void 0 !== arguments[12] ? arguments[12] : 0, arguments.length > 13 && void 0 !== arguments[13] ? arguments[13] : 0, arguments.length > 14 && void 0 !== arguments[14] ? arguments[14] : 0, arguments.length > 15 && void 0 !== arguments[15] ? arguments[15] : 1); +}; +t.clone = function(e) { +return new t(e.m00, e.m01, e.m02, e.m03, e.m04, e.m05, e.m06, e.m07, e.m08, e.m09, e.m10, e.m11, e.m12, e.m13, e.m14, e.m15); +}; +t.copy = function(t, e) { +t.m00 = e.m00; +t.m01 = e.m01; +t.m02 = e.m02; +t.m03 = e.m03; +t.m04 = e.m04; +t.m05 = e.m05; +t.m06 = e.m06; +t.m07 = e.m07; +t.m08 = e.m08; +t.m09 = e.m09; +t.m10 = e.m10; +t.m11 = e.m11; +t.m12 = e.m12; +t.m13 = e.m13; +t.m14 = e.m14; +t.m15 = e.m15; +return t; +}; +t.set = function(t, e, i, n, r, s, o, a, c, l, h, u, _, f, d, m, p) { +t.m00 = e; +t.m01 = i; +t.m02 = n; +t.m03 = r; +t.m04 = s; +t.m05 = o; +t.m06 = a; +t.m07 = c; +t.m08 = l; +t.m09 = h; +t.m10 = u; +t.m11 = _; +t.m12 = f; +t.m13 = d; +t.m14 = m; +t.m15 = p; +return t; +}; +t.identity = function(t) { +t.m00 = 1; +t.m01 = 0; +t.m02 = 0; +t.m03 = 0; +t.m04 = 0; +t.m05 = 1; +t.m06 = 0; +t.m07 = 0; +t.m08 = 0; +t.m09 = 0; +t.m10 = 1; +t.m11 = 0; +t.m12 = 0; +t.m13 = 0; +t.m14 = 0; +t.m15 = 1; +return t; +}; +t.transpose = function(t, e) { +if (t === e) { +var i = e.m01, n = e.m02, r = e.m03, s = e.m06, o = e.m07, a = e.m11; +t.m01 = e.m04; +t.m02 = e.m08; +t.m03 = e.m12; +t.m04 = i; +t.m06 = e.m09; +t.m07 = e.m13; +t.m08 = n; +t.m09 = s; +t.m11 = e.m14; +t.m12 = r; +t.m13 = o; +t.m14 = a; +} else { +t.m00 = e.m00; +t.m01 = e.m04; +t.m02 = e.m08; +t.m03 = e.m12; +t.m04 = e.m01; +t.m05 = e.m05; +t.m06 = e.m09; +t.m07 = e.m13; +t.m08 = e.m02; +t.m09 = e.m06; +t.m10 = e.m10; +t.m11 = e.m14; +t.m12 = e.m03; +t.m13 = e.m07; +t.m14 = e.m11; +t.m15 = e.m15; +} +return t; +}; +t.invert = function(t, e) { +var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = e.m04, a = e.m05, c = e.m06, l = e.m07, h = e.m08, u = e.m09, _ = e.m10, f = e.m11, d = e.m12, m = e.m13, p = e.m14, v = e.m15, y = i * a - n * o, g = i * c - r * o, x = i * l - s * o, C = n * c - r * a, b = n * l - s * a, A = r * l - s * c, S = h * m - u * d, w = h * p - _ * d, T = h * v - f * d, E = u * p - _ * m, M = u * v - f * m, B = _ * v - f * p, D = y * B - g * M + x * E + C * T - b * w + A * S; +if (!D) return null; +D = 1 / D; +t.m00 = (a * B - c * M + l * E) * D; +t.m01 = (r * M - n * B - s * E) * D; +t.m02 = (m * A - p * b + v * C) * D; +t.m03 = (_ * b - u * A - f * C) * D; +t.m04 = (c * T - o * B - l * w) * D; +t.m05 = (i * B - r * T + s * w) * D; +t.m06 = (p * x - d * A - v * g) * D; +t.m07 = (h * A - _ * x + f * g) * D; +t.m08 = (o * M - a * T + l * S) * D; +t.m09 = (n * T - i * M - s * S) * D; +t.m10 = (d * b - m * x + v * y) * D; +t.m11 = (u * x - h * b - f * y) * D; +t.m12 = (a * w - o * E - c * S) * D; +t.m13 = (i * E - n * w + r * S) * D; +t.m14 = (m * g - d * C - p * y) * D; +t.m15 = (h * C - u * g + _ * y) * D; +return t; +}; +t.adjoint = function(t, e) { +var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = e.m04, a = e.m05, c = e.m06, l = e.m07, h = e.m08, u = e.m09, _ = e.m10, f = e.m11, d = e.m12, m = e.m13, p = e.m14, v = e.m15; +t.m00 = a * (_ * v - f * p) - u * (c * v - l * p) + m * (c * f - l * _); +t.m01 = -(n * (_ * v - f * p) - u * (r * v - s * p) + m * (r * f - s * _)); +t.m02 = n * (c * v - l * p) - a * (r * v - s * p) + m * (r * l - s * c); +t.m03 = -(n * (c * f - l * _) - a * (r * f - s * _) + u * (r * l - s * c)); +t.m04 = -(o * (_ * v - f * p) - h * (c * v - l * p) + d * (c * f - l * _)); +t.m05 = i * (_ * v - f * p) - h * (r * v - s * p) + d * (r * f - s * _); +t.m06 = -(i * (c * v - l * p) - o * (r * v - s * p) + d * (r * l - s * c)); +t.m07 = i * (c * f - l * _) - o * (r * f - s * _) + h * (r * l - s * c); +t.m08 = o * (u * v - f * m) - h * (a * v - l * m) + d * (a * f - l * u); +t.m09 = -(i * (u * v - f * m) - h * (n * v - s * m) + d * (n * f - s * u)); +t.m10 = i * (a * v - l * m) - o * (n * v - s * m) + d * (n * l - s * a); +t.m11 = -(i * (a * f - l * u) - o * (n * f - s * u) + h * (n * l - s * a)); +t.m12 = -(o * (u * p - _ * m) - h * (a * p - c * m) + d * (a * _ - c * u)); +t.m13 = i * (u * p - _ * m) - h * (n * p - r * m) + d * (n * _ - r * u); +t.m14 = -(i * (a * p - c * m) - o * (n * p - r * m) + d * (n * c - r * a)); +t.m15 = i * (a * _ - c * u) - o * (n * _ - r * u) + h * (n * c - r * a); +return t; +}; +t.determinant = function(t) { +var e = t.m00, i = t.m01, n = t.m02, r = t.m03, s = t.m04, o = t.m05, a = t.m06, c = t.m07, l = t.m08, h = t.m09, u = t.m10, _ = t.m11, f = t.m12, d = t.m13, m = t.m14, p = t.m15; +return (e * o - i * s) * (u * p - _ * m) - (e * a - n * s) * (h * p - _ * d) + (e * c - r * s) * (h * m - u * d) + (i * a - n * o) * (l * p - _ * f) - (i * c - r * o) * (l * m - u * f) + (n * c - r * a) * (l * d - h * f); +}; +t.multiply = function(t, e, i) { +var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = e.m06, h = e.m07, u = e.m08, _ = e.m09, f = e.m10, d = e.m11, m = e.m12, p = e.m13, v = e.m14, y = e.m15, g = i.m00, x = i.m01, C = i.m02, b = i.m03; +t.m00 = g * n + x * a + C * u + b * m; +t.m01 = g * r + x * c + C * _ + b * p; +t.m02 = g * s + x * l + C * f + b * v; +t.m03 = g * o + x * h + C * d + b * y; +g = i.m04; +x = i.m05; +C = i.m06; +b = i.m07; +t.m04 = g * n + x * a + C * u + b * m; +t.m05 = g * r + x * c + C * _ + b * p; +t.m06 = g * s + x * l + C * f + b * v; +t.m07 = g * o + x * h + C * d + b * y; +g = i.m08; +x = i.m09; +C = i.m10; +b = i.m11; +t.m08 = g * n + x * a + C * u + b * m; +t.m09 = g * r + x * c + C * _ + b * p; +t.m10 = g * s + x * l + C * f + b * v; +t.m11 = g * o + x * h + C * d + b * y; +g = i.m12; +x = i.m13; +C = i.m14; +b = i.m15; +t.m12 = g * n + x * a + C * u + b * m; +t.m13 = g * r + x * c + C * _ + b * p; +t.m14 = g * s + x * l + C * f + b * v; +t.m15 = g * o + x * h + C * d + b * y; +return t; +}; +t.mul = function(e, i, n) { +return t.multiply(e, i, n); +}; +t.translate = function(t, e, i) { +var n = i.x, r = i.y, s = i.z, o = void 0, a = void 0, c = void 0, l = void 0, h = void 0, u = void 0, _ = void 0, f = void 0, d = void 0, m = void 0, p = void 0, v = void 0; +if (e === t) { +t.m12 = e.m00 * n + e.m04 * r + e.m08 * s + e.m12; +t.m13 = e.m01 * n + e.m05 * r + e.m09 * s + e.m13; +t.m14 = e.m02 * n + e.m06 * r + e.m10 * s + e.m14; +t.m15 = e.m03 * n + e.m07 * r + e.m11 * s + e.m15; +} else { +o = e.m00; +a = e.m01; +c = e.m02; +l = e.m03; +h = e.m04; +u = e.m05; +_ = e.m06; +f = e.m07; +d = e.m08; +m = e.m09; +p = e.m10; +v = e.m11; +t.m00 = o; +t.m01 = a; +t.m02 = c; +t.m03 = l; +t.m04 = h; +t.m05 = u; +t.m06 = _; +t.m07 = f; +t.m08 = d; +t.m09 = m; +t.m10 = p; +t.m11 = v; +t.m12 = o * n + h * r + d * s + e.m12; +t.m13 = a * n + u * r + m * s + e.m13; +t.m14 = c * n + _ * r + p * s + e.m14; +t.m15 = l * n + f * r + v * s + e.m15; +} +return t; +}; +t.scale = function(t, e, i) { +var n = i.x, r = i.y, s = i.z; +t.m00 = e.m00 * n; +t.m01 = e.m01 * n; +t.m02 = e.m02 * n; +t.m03 = e.m03 * n; +t.m04 = e.m04 * r; +t.m05 = e.m05 * r; +t.m06 = e.m06 * r; +t.m07 = e.m07 * r; +t.m08 = e.m08 * s; +t.m09 = e.m09 * s; +t.m10 = e.m10 * s; +t.m11 = e.m11 * s; +t.m12 = e.m12; +t.m13 = e.m13; +t.m14 = e.m14; +t.m15 = e.m15; +return t; +}; +t.rotate = function(t, e, i, r) { +var s, o, a, c, l, h, u, _, f, d, m, p, v, y, g, x, C, b, A, S, w, T, E, M, B = r.x, D = r.y, I = r.z, P = Math.sqrt(B * B + D * D + I * I); +if (Math.abs(P) < n.EPSILON) return null; +B *= P = 1 / P; +D *= P; +I *= P; +s = Math.sin(i); +a = 1 - (o = Math.cos(i)); +c = e.m00; +l = e.m01; +h = e.m02; +u = e.m03; +_ = e.m04; +f = e.m05; +d = e.m06; +m = e.m07; +p = e.m08; +v = e.m09; +y = e.m10; +g = e.m11; +x = B * B * a + o; +C = D * B * a + I * s; +b = I * B * a - D * s; +A = B * D * a - I * s; +S = D * D * a + o; +w = I * D * a + B * s; +T = B * I * a + D * s; +E = D * I * a - B * s; +M = I * I * a + o; +t.m00 = c * x + _ * C + p * b; +t.m01 = l * x + f * C + v * b; +t.m02 = h * x + d * C + y * b; +t.m03 = u * x + m * C + g * b; +t.m04 = c * A + _ * S + p * w; +t.m05 = l * A + f * S + v * w; +t.m06 = h * A + d * S + y * w; +t.m07 = u * A + m * S + g * w; +t.m08 = c * T + _ * E + p * M; +t.m09 = l * T + f * E + v * M; +t.m10 = h * T + d * E + y * M; +t.m11 = u * T + m * E + g * M; +if (e !== t) { +t.m12 = e.m12; +t.m13 = e.m13; +t.m14 = e.m14; +t.m15 = e.m15; +} +return t; +}; +t.rotateX = function(t, e, i) { +var n = Math.sin(i), r = Math.cos(i), s = e.m04, o = e.m05, a = e.m06, c = e.m07, l = e.m08, h = e.m09, u = e.m10, _ = e.m11; +if (e !== t) { +t.m00 = e.m00; +t.m01 = e.m01; +t.m02 = e.m02; +t.m03 = e.m03; +t.m12 = e.m12; +t.m13 = e.m13; +t.m14 = e.m14; +t.m15 = e.m15; +} +t.m04 = s * r + l * n; +t.m05 = o * r + h * n; +t.m06 = a * r + u * n; +t.m07 = c * r + _ * n; +t.m08 = l * r - s * n; +t.m09 = h * r - o * n; +t.m10 = u * r - a * n; +t.m11 = _ * r - c * n; +return t; +}; +t.rotateY = function(t, e, i) { +var n = Math.sin(i), r = Math.cos(i), s = e.m00, o = e.m01, a = e.m02, c = e.m03, l = e.m08, h = e.m09, u = e.m10, _ = e.m11; +if (e !== t) { +t.m04 = e.m04; +t.m05 = e.m05; +t.m06 = e.m06; +t.m07 = e.m07; +t.m12 = e.m12; +t.m13 = e.m13; +t.m14 = e.m14; +t.m15 = e.m15; +} +t.m00 = s * r - l * n; +t.m01 = o * r - h * n; +t.m02 = a * r - u * n; +t.m03 = c * r - _ * n; +t.m08 = s * n + l * r; +t.m09 = o * n + h * r; +t.m10 = a * n + u * r; +t.m11 = c * n + _ * r; +return t; +}; +t.rotateZ = function(t, e, i) { +var n = Math.sin(i), r = Math.cos(i), s = e.m00, o = e.m01, a = e.m02, c = e.m03, l = e.m04, h = e.m05, u = e.m06, _ = e.m07; +if (e !== t) { +t.m08 = e.m08; +t.m09 = e.m09; +t.m10 = e.m10; +t.m11 = e.m11; +t.m12 = e.m12; +t.m13 = e.m13; +t.m14 = e.m14; +t.m15 = e.m15; +} +t.m00 = s * r + l * n; +t.m01 = o * r + h * n; +t.m02 = a * r + u * n; +t.m03 = c * r + _ * n; +t.m04 = l * r - s * n; +t.m05 = h * r - o * n; +t.m06 = u * r - a * n; +t.m07 = _ * r - c * n; +return t; +}; +t.fromTranslation = function(t, e) { +t.m00 = 1; +t.m01 = 0; +t.m02 = 0; +t.m03 = 0; +t.m04 = 0; +t.m05 = 1; +t.m06 = 0; +t.m07 = 0; +t.m08 = 0; +t.m09 = 0; +t.m10 = 1; +t.m11 = 0; +t.m12 = e.x; +t.m13 = e.y; +t.m14 = e.z; +t.m15 = 1; +return t; +}; +t.fromScaling = function(t, e) { +t.m00 = e.x; +t.m01 = 0; +t.m02 = 0; +t.m03 = 0; +t.m04 = 0; +t.m05 = e.y; +t.m06 = 0; +t.m07 = 0; +t.m08 = 0; +t.m09 = 0; +t.m10 = e.z; +t.m11 = 0; +t.m12 = 0; +t.m13 = 0; +t.m14 = 0; +t.m15 = 1; +return t; +}; +t.fromRotation = function(t, e, i) { +var r, s, o, a = i.x, c = i.y, l = i.z, h = Math.sqrt(a * a + c * c + l * l); +if (Math.abs(h) < n.EPSILON) return null; +a *= h = 1 / h; +c *= h; +l *= h; +r = Math.sin(e); +o = 1 - (s = Math.cos(e)); +t.m00 = a * a * o + s; +t.m01 = c * a * o + l * r; +t.m02 = l * a * o - c * r; +t.m03 = 0; +t.m04 = a * c * o - l * r; +t.m05 = c * c * o + s; +t.m06 = l * c * o + a * r; +t.m07 = 0; +t.m08 = a * l * o + c * r; +t.m09 = c * l * o - a * r; +t.m10 = l * l * o + s; +t.m11 = 0; +t.m12 = 0; +t.m13 = 0; +t.m14 = 0; +t.m15 = 1; +return t; +}; +t.fromXRotation = function(t, e) { +var i = Math.sin(e), n = Math.cos(e); +t.m00 = 1; +t.m01 = 0; +t.m02 = 0; +t.m03 = 0; +t.m04 = 0; +t.m05 = n; +t.m06 = i; +t.m07 = 0; +t.m08 = 0; +t.m09 = -i; +t.m10 = n; +t.m11 = 0; +t.m12 = 0; +t.m13 = 0; +t.m14 = 0; +t.m15 = 1; +return t; +}; +t.fromYRotation = function(t, e) { +var i = Math.sin(e), n = Math.cos(e); +t.m00 = n; +t.m01 = 0; +t.m02 = -i; +t.m03 = 0; +t.m04 = 0; +t.m05 = 1; +t.m06 = 0; +t.m07 = 0; +t.m08 = i; +t.m09 = 0; +t.m10 = n; +t.m11 = 0; +t.m12 = 0; +t.m13 = 0; +t.m14 = 0; +t.m15 = 1; +return t; +}; +t.fromZRotation = function(t, e) { +var i = Math.sin(e), n = Math.cos(e); +t.m00 = n; +t.m01 = i; +t.m02 = 0; +t.m03 = 0; +t.m04 = -i; +t.m05 = n; +t.m06 = 0; +t.m07 = 0; +t.m08 = 0; +t.m09 = 0; +t.m10 = 1; +t.m11 = 0; +t.m12 = 0; +t.m13 = 0; +t.m14 = 0; +t.m15 = 1; +return t; +}; +t.fromRT = function(t, e, i) { +var n = e.x, r = e.y, s = e.z, o = e.w, a = n + n, c = r + r, l = s + s, h = n * a, u = n * c, _ = n * l, f = r * c, d = r * l, m = s * l, p = o * a, v = o * c, y = o * l; +t.m00 = 1 - (f + m); +t.m01 = u + y; +t.m02 = _ - v; +t.m03 = 0; +t.m04 = u - y; +t.m05 = 1 - (h + m); +t.m06 = d + p; +t.m07 = 0; +t.m08 = _ + v; +t.m09 = d - p; +t.m10 = 1 - (h + f); +t.m11 = 0; +t.m12 = i.x; +t.m13 = i.y; +t.m14 = i.z; +t.m15 = 1; +return t; +}; +t.getTranslation = function(t, e) { +t.x = e.m12; +t.y = e.m13; +t.z = e.m14; +return t; +}; +t.getScaling = function(t, e) { +var i = e.m00, n = e.m01, r = e.m02, s = e.m04, o = e.m05, a = e.m06, c = e.m08, l = e.m09, h = e.m10; +t.x = Math.sqrt(i * i + n * n + r * r); +t.y = Math.sqrt(s * s + o * o + a * a); +t.z = Math.sqrt(c * c + l * l + h * h); +return t; +}; +t.getRotation = function(t, e) { +var i = e.m00 + e.m05 + e.m10, n = 0; +if (i > 0) { +n = 2 * Math.sqrt(i + 1); +t.w = .25 * n; +t.x = (e.m06 - e.m09) / n; +t.y = (e.m08 - e.m02) / n; +t.z = (e.m01 - e.m04) / n; +} else if (e.m00 > e.m05 & e.m00 > e.m10) { +n = 2 * Math.sqrt(1 + e.m00 - e.m05 - e.m10); +t.w = (e.m06 - e.m09) / n; +t.x = .25 * n; +t.y = (e.m01 + e.m04) / n; +t.z = (e.m08 + e.m02) / n; +} else if (e.m05 > e.m10) { +n = 2 * Math.sqrt(1 + e.m05 - e.m00 - e.m10); +t.w = (e.m08 - e.m02) / n; +t.x = (e.m01 + e.m04) / n; +t.y = .25 * n; +t.z = (e.m06 + e.m09) / n; +} else { +n = 2 * Math.sqrt(1 + e.m10 - e.m00 - e.m05); +t.w = (e.m01 - e.m04) / n; +t.x = (e.m08 + e.m02) / n; +t.y = (e.m06 + e.m09) / n; +t.z = .25 * n; +} +return t; +}; +t.fromRTS = function(t, e, i, n) { +var r = e.x, s = e.y, o = e.z, a = e.w, c = r + r, l = s + s, h = o + o, u = r * c, _ = r * l, f = r * h, d = s * l, m = s * h, p = o * h, v = a * c, y = a * l, g = a * h, x = n.x, C = n.y, b = n.z; +t.m00 = (1 - (d + p)) * x; +t.m01 = (_ + g) * x; +t.m02 = (f - y) * x; +t.m03 = 0; +t.m04 = (_ - g) * C; +t.m05 = (1 - (u + p)) * C; +t.m06 = (m + v) * C; +t.m07 = 0; +t.m08 = (f + y) * b; +t.m09 = (m - v) * b; +t.m10 = (1 - (u + d)) * b; +t.m11 = 0; +t.m12 = i.x; +t.m13 = i.y; +t.m14 = i.z; +t.m15 = 1; +return t; +}; +t.fromRTSOrigin = function(t, e, i, n, r) { +var s = e.x, o = e.y, a = e.z, c = e.w, l = s + s, h = o + o, u = a + a, _ = s * l, f = s * h, d = s * u, m = o * h, p = o * u, v = a * u, y = c * l, g = c * h, x = c * u, C = n.x, b = n.y, A = n.z, S = r.x, w = r.y, T = r.z; +t.m00 = (1 - (m + v)) * C; +t.m01 = (f + x) * C; +t.m02 = (d - g) * C; +t.m03 = 0; +t.m04 = (f - x) * b; +t.m05 = (1 - (_ + v)) * b; +t.m06 = (p + y) * b; +t.m07 = 0; +t.m08 = (d + g) * A; +t.m09 = (p - y) * A; +t.m10 = (1 - (_ + m)) * A; +t.m11 = 0; +t.m12 = i.x + S - (t.m00 * S + t.m04 * w + t.m08 * T); +t.m13 = i.y + w - (t.m01 * S + t.m05 * w + t.m09 * T); +t.m14 = i.z + T - (t.m02 * S + t.m06 * w + t.m10 * T); +t.m15 = 1; +return t; +}; +t.fromQuat = function(t, e) { +var i = e.x, n = e.y, r = e.z, s = e.w, o = i + i, a = n + n, c = r + r, l = i * o, h = n * o, u = n * a, _ = r * o, f = r * a, d = r * c, m = s * o, p = s * a, v = s * c; +t.m00 = 1 - u - d; +t.m01 = h + v; +t.m02 = _ - p; +t.m03 = 0; +t.m04 = h - v; +t.m05 = 1 - l - d; +t.m06 = f + m; +t.m07 = 0; +t.m08 = _ + p; +t.m09 = f - m; +t.m10 = 1 - l - u; +t.m11 = 0; +t.m12 = 0; +t.m13 = 0; +t.m14 = 0; +t.m15 = 1; +return t; +}; +t.frustum = function(t, e, i, n, r, s, o) { +var a = 1 / (i - e), c = 1 / (r - n), l = 1 / (s - o); +t.m00 = 2 * s * a; +t.m01 = 0; +t.m02 = 0; +t.m03 = 0; +t.m04 = 0; +t.m05 = 2 * s * c; +t.m06 = 0; +t.m07 = 0; +t.m08 = (i + e) * a; +t.m09 = (r + n) * c; +t.m10 = (o + s) * l; +t.m11 = -1; +t.m12 = 0; +t.m13 = 0; +t.m14 = o * s * 2 * l; +t.m15 = 0; +return t; +}; +t.perspective = function(t, e, i, n, r) { +var s = 1 / Math.tan(e / 2), o = 1 / (n - r); +t.m00 = s / i; +t.m01 = 0; +t.m02 = 0; +t.m03 = 0; +t.m04 = 0; +t.m05 = s; +t.m06 = 0; +t.m07 = 0; +t.m08 = 0; +t.m09 = 0; +t.m10 = (r + n) * o; +t.m11 = -1; +t.m12 = 0; +t.m13 = 0; +t.m14 = 2 * r * n * o; +t.m15 = 0; +return t; +}; +t.perspectiveFromFieldOfView = function(t, e, i, n) { +var r = Math.tan(e.upDegrees * Math.PI / 180), s = Math.tan(e.downDegrees * Math.PI / 180), o = Math.tan(e.leftDegrees * Math.PI / 180), a = Math.tan(e.rightDegrees * Math.PI / 180), c = 2 / (o + a), l = 2 / (r + s); +t.m00 = c; +t.m01 = 0; +t.m02 = 0; +t.m03 = 0; +t.m04 = 0; +t.m05 = l; +t.m06 = 0; +t.m07 = 0; +t.m08 = -(o - a) * c * .5; +t.m09 = (r - s) * l * .5; +t.m10 = n / (i - n); +t.m11 = -1; +t.m12 = 0; +t.m13 = 0; +t.m14 = n * i / (i - n); +t.m15 = 0; +return t; +}; +t.ortho = function(t, e, i, n, r, s, o) { +var a = 1 / (e - i), c = 1 / (n - r), l = 1 / (s - o); +t.m00 = -2 * a; +t.m01 = 0; +t.m02 = 0; +t.m03 = 0; +t.m04 = 0; +t.m05 = -2 * c; +t.m06 = 0; +t.m07 = 0; +t.m08 = 0; +t.m09 = 0; +t.m10 = 2 * l; +t.m11 = 0; +t.m12 = (e + i) * a; +t.m13 = (r + n) * c; +t.m14 = (o + s) * l; +t.m15 = 1; +return t; +}; +t.lookAt = function(t, e, i, n) { +var r, s, o, a = void 0, c = void 0, l = void 0, h = void 0, u = void 0, _ = void 0, f = void 0, d = e.x, m = e.y, p = e.z, v = n.x, y = n.y, g = n.z, x = i.x, C = i.y, b = i.z; +h = d - x; +u = m - C; +_ = p - b; +a = y * (_ *= f = 1 / Math.sqrt(h * h + u * u + _ * _)) - g * (u *= f); +c = g * (h *= f) - v * _; +l = v * u - y * h; +r = u * (l *= f = 1 / Math.sqrt(a * a + c * c + l * l)) - _ * (c *= f); +s = _ * (a *= f) - h * l; +o = h * c - u * a; +t.m00 = a; +t.m01 = r; +t.m02 = h; +t.m03 = 0; +t.m04 = c; +t.m05 = s; +t.m06 = u; +t.m07 = 0; +t.m08 = l; +t.m09 = o; +t.m10 = _; +t.m11 = 0; +t.m12 = -(a * d + c * m + l * p); +t.m13 = -(r * d + s * m + o * p); +t.m14 = -(h * d + u * m + _ * p); +t.m15 = 1; +return t; +}; +t.str = function(t) { +return "mat4(" + t.m00 + ", " + t.m01 + ", " + t.m02 + ", " + t.m03 + ", " + t.m04 + ", " + t.m05 + ", " + t.m06 + ", " + t.m07 + ", " + t.m08 + ", " + t.m09 + ", " + t.m10 + ", " + t.m11 + ", " + t.m12 + ", " + t.m13 + ", " + t.m14 + ", " + t.m15 + ")"; +}; +t.array = function(t, e) { +t[0] = e.m00; +t[1] = e.m01; +t[2] = e.m02; +t[3] = e.m03; +t[4] = e.m04; +t[5] = e.m05; +t[6] = e.m06; +t[7] = e.m07; +t[8] = e.m08; +t[9] = e.m09; +t[10] = e.m10; +t[11] = e.m11; +t[12] = e.m12; +t[13] = e.m13; +t[14] = e.m14; +t[15] = e.m15; +return t; +}; +t.frob = function(t) { +return Math.sqrt(Math.pow(t.m00, 2) + Math.pow(t.m01, 2) + Math.pow(t.m02, 2) + Math.pow(t.m03, 2) + Math.pow(t.m04, 2) + Math.pow(t.m05, 2) + Math.pow(t.m06, 2) + Math.pow(t.m07, 2) + Math.pow(t.m08, 2) + Math.pow(t.m09, 2) + Math.pow(t.m10, 2) + Math.pow(t.m11, 2) + Math.pow(t.m12, 2) + Math.pow(t.m13, 2) + Math.pow(t.m14, 2) + Math.pow(t.m15, 2)); +}; +t.add = function(t, e, i) { +t.m00 = e.m00 + i.m00; +t.m01 = e.m01 + i.m01; +t.m02 = e.m02 + i.m02; +t.m03 = e.m03 + i.m03; +t.m04 = e.m04 + i.m04; +t.m05 = e.m05 + i.m05; +t.m06 = e.m06 + i.m06; +t.m07 = e.m07 + i.m07; +t.m08 = e.m08 + i.m08; +t.m09 = e.m09 + i.m09; +t.m10 = e.m10 + i.m10; +t.m11 = e.m11 + i.m11; +t.m12 = e.m12 + i.m12; +t.m13 = e.m13 + i.m13; +t.m14 = e.m14 + i.m14; +t.m15 = e.m15 + i.m15; +return t; +}; +t.subtract = function(t, e, i) { +t.m00 = e.m00 - i.m00; +t.m01 = e.m01 - i.m01; +t.m02 = e.m02 - i.m02; +t.m03 = e.m03 - i.m03; +t.m04 = e.m04 - i.m04; +t.m05 = e.m05 - i.m05; +t.m06 = e.m06 - i.m06; +t.m07 = e.m07 - i.m07; +t.m08 = e.m08 - i.m08; +t.m09 = e.m09 - i.m09; +t.m10 = e.m10 - i.m10; +t.m11 = e.m11 - i.m11; +t.m12 = e.m12 - i.m12; +t.m13 = e.m13 - i.m13; +t.m14 = e.m14 - i.m14; +t.m15 = e.m15 - i.m15; +return t; +}; +t.sub = function(e, i, n) { +return t.subtract(e, i, n); +}; +t.multiplyScalar = function(t, e, i) { +t.m00 = e.m00 * i; +t.m01 = e.m01 * i; +t.m02 = e.m02 * i; +t.m03 = e.m03 * i; +t.m04 = e.m04 * i; +t.m05 = e.m05 * i; +t.m06 = e.m06 * i; +t.m07 = e.m07 * i; +t.m08 = e.m08 * i; +t.m09 = e.m09 * i; +t.m10 = e.m10 * i; +t.m11 = e.m11 * i; +t.m12 = e.m12 * i; +t.m13 = e.m13 * i; +t.m14 = e.m14 * i; +t.m15 = e.m15 * i; +return t; +}; +t.multiplyScalarAndAdd = function(t, e, i, n) { +t.m00 = e.m00 + i.m00 * n; +t.m01 = e.m01 + i.m01 * n; +t.m02 = e.m02 + i.m02 * n; +t.m03 = e.m03 + i.m03 * n; +t.m04 = e.m04 + i.m04 * n; +t.m05 = e.m05 + i.m05 * n; +t.m06 = e.m06 + i.m06 * n; +t.m07 = e.m07 + i.m07 * n; +t.m08 = e.m08 + i.m08 * n; +t.m09 = e.m09 + i.m09 * n; +t.m10 = e.m10 + i.m10 * n; +t.m11 = e.m11 + i.m11 * n; +t.m12 = e.m12 + i.m12 * n; +t.m13 = e.m13 + i.m13 * n; +t.m14 = e.m14 + i.m14 * n; +t.m15 = e.m15 + i.m15 * n; +return t; +}; +t.exactEquals = function(t, e) { +return t.m00 === e.m00 && t.m01 === e.m01 && t.m02 === e.m02 && t.m03 === e.m03 && t.m04 === e.m04 && t.m05 === e.m05 && t.m06 === e.m06 && t.m07 === e.m07 && t.m08 === e.m08 && t.m09 === e.m09 && t.m10 === e.m10 && t.m11 === e.m11 && t.m12 === e.m12 && t.m13 === e.m13 && t.m14 === e.m14 && t.m15 === e.m15; +}; +t.equals = function(t, e) { +var i = t.m00, r = t.m01, s = t.m02, o = t.m03, a = t.m04, c = t.m05, l = t.m06, h = t.m07, u = t.m08, _ = t.m09, f = t.m10, d = t.m11, m = t.m12, p = t.m13, v = t.m14, y = t.m15, g = e.m00, x = e.m01, C = e.m02, b = e.m03, A = e.m04, S = e.m05, w = e.m06, T = e.m07, E = e.m08, M = e.m09, B = e.m10, D = e.m11, I = e.m12, P = e.m13, R = e.m14, L = e.m15; +return Math.abs(i - g) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(g)) && Math.abs(r - x) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(x)) && Math.abs(s - C) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(C)) && Math.abs(o - b) <= n.EPSILON * Math.max(1, Math.abs(o), Math.abs(b)) && Math.abs(a - A) <= n.EPSILON * Math.max(1, Math.abs(a), Math.abs(A)) && Math.abs(c - S) <= n.EPSILON * Math.max(1, Math.abs(c), Math.abs(S)) && Math.abs(l - w) <= n.EPSILON * Math.max(1, Math.abs(l), Math.abs(w)) && Math.abs(h - T) <= n.EPSILON * Math.max(1, Math.abs(h), Math.abs(T)) && Math.abs(u - E) <= n.EPSILON * Math.max(1, Math.abs(u), Math.abs(E)) && Math.abs(_ - M) <= n.EPSILON * Math.max(1, Math.abs(_), Math.abs(M)) && Math.abs(f - B) <= n.EPSILON * Math.max(1, Math.abs(f), Math.abs(B)) && Math.abs(d - D) <= n.EPSILON * Math.max(1, Math.abs(d), Math.abs(D)) && Math.abs(m - I) <= n.EPSILON * Math.max(1, Math.abs(m), Math.abs(I)) && Math.abs(p - P) <= n.EPSILON * Math.max(1, Math.abs(p), Math.abs(P)) && Math.abs(v - R) <= n.EPSILON * Math.max(1, Math.abs(v), Math.abs(R)) && Math.abs(y - L) <= n.EPSILON * Math.max(1, Math.abs(y), Math.abs(L)); +}; +return t; +})(); +i.default = s; +e.exports = i.default; +}), { +"./utils": 323 +} ], +322: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = a(t("./vec3")), r = a(t("./vec4")), s = a(t("./mat3")), o = t("./utils"); +function a(t) { +return t && t.__esModule ? t : { +default: t +}; +} +function c(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var l = .5 * Math.PI / 180, h = (function() { +function t() { +var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1; +c(this, t); +this.x = e; +this.y = i; +this.z = n; +this.w = r; +} +t.create = function() { +return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1); +}; +t.clone = function(e) { +return new t(e.x, e.y, e.z, e.w); +}; +t.copy = function(t, e) { +return r.default.copy(t, e); +}; +t.set = function(t, e, i, n, r) { +t.x = e; +t.y = i; +t.z = n; +t.w = r; +return t; +}; +t.identity = function(t) { +t.x = 0; +t.y = 0; +t.z = 0; +t.w = 1; +return t; +}; +t.rotationTo = function(e, i, r) { +return (function() { +var e = n.default.create(0, 0, 0), i = n.default.create(1, 0, 0), r = n.default.create(0, 1, 0); +return function(s, o, a) { +var c = n.default.dot(o, a); +if (c < -.999999) { +n.default.cross(e, i, o); +n.default.magnitude(e) < 1e-6 && n.default.cross(e, r, o); +n.default.normalize(e, e); +t.fromAxisAngle(s, e, Math.PI); +return s; +} +if (c > .999999) { +s.x = 0; +s.y = 0; +s.z = 0; +s.w = 1; +return s; +} +n.default.cross(e, o, a); +s.x = e.x; +s.y = e.y; +s.z = e.z; +s.w = 1 + c; +return t.normalize(s, s); +}; +})()(e, i, r); +}; +t.getAxisAngle = function(t, e) { +var i = 2 * Math.acos(e.w), n = Math.sin(i / 2); +if (0 != n) { +t.x = e.x / n; +t.y = e.y / n; +t.z = e.z / n; +} else { +t.x = 1; +t.y = 0; +t.z = 0; +} +return i; +}; +t.multiply = function(t, e, i) { +var n = e.x, r = e.y, s = e.z, o = e.w, a = i.x, c = i.y, l = i.z, h = i.w; +t.x = n * h + o * a + r * l - s * c; +t.y = r * h + o * c + s * a - n * l; +t.z = s * h + o * l + n * c - r * a; +t.w = o * h - n * a - r * c - s * l; +return t; +}; +t.mul = function(e, i, n) { +return t.multiply(e, i, n); +}; +t.scale = function(t, e, i) { +t.x = e.x * i; +t.y = e.y * i; +t.z = e.z * i; +t.w = e.w * i; +return t; +}; +t.rotateX = function(t, e, i) { +i *= .5; +var n = e.x, r = e.y, s = e.z, o = e.w, a = Math.sin(i), c = Math.cos(i); +t.x = n * c + o * a; +t.y = r * c + s * a; +t.z = s * c - r * a; +t.w = o * c - n * a; +return t; +}; +t.rotateY = function(t, e, i) { +i *= .5; +var n = e.x, r = e.y, s = e.z, o = e.w, a = Math.sin(i), c = Math.cos(i); +t.x = n * c - s * a; +t.y = r * c + o * a; +t.z = s * c + n * a; +t.w = o * c - r * a; +return t; +}; +t.rotateZ = function(t, e, i) { +i *= .5; +var n = e.x, r = e.y, s = e.z, o = e.w, a = Math.sin(i), c = Math.cos(i); +t.x = n * c + r * a; +t.y = r * c - n * a; +t.z = s * c + o * a; +t.w = o * c - s * a; +return t; +}; +t.rotateAround = function(e, i, r, s) { +return (function() { +var e = n.default.create(0, 0, 0), i = t.create(); +return function(r, s, o, a) { +t.invert(i, s); +n.default.transformQuat(e, o, i); +t.fromAxisAngle(i, e, a); +t.mul(r, s, i); +return r; +}; +})()(e, i, r, s); +}; +t.rotateAroundLocal = function(e, i, n, r) { +return (function() { +var e = t.create(); +return function(i, n, r, s) { +t.fromAxisAngle(e, r, s); +t.mul(i, n, e); +return i; +}; +})()(e, i, n, r); +}; +t.calculateW = function(t, e) { +var i = e.x, n = e.y, r = e.z; +t.x = i; +t.y = n; +t.z = r; +t.w = Math.sqrt(Math.abs(1 - i * i - n * n - r * r)); +return t; +}; +t.dot = function(t, e) { +return t.x * e.x + t.y * e.y + t.z * e.z + t.w * e.w; +}; +t.lerp = function(t, e, i, n) { +var r = e.x, s = e.y, o = e.z, a = e.w; +t.x = r + n * (i.x - r); +t.y = s + n * (i.y - s); +t.z = o + n * (i.z - o); +t.w = a + n * (i.w - a); +return t; +}; +t.slerp = function(t, e, i, n) { +var r = e.x, s = e.y, o = e.z, a = e.w, c = i.x, l = i.y, h = i.z, u = i.w, _ = void 0, f = void 0, d = void 0, m = void 0, p = void 0; +if ((f = r * c + s * l + o * h + a * u) < 0) { +f = -f; +c = -c; +l = -l; +h = -h; +u = -u; +} +if (1 - f > 1e-6) { +_ = Math.acos(f); +d = Math.sin(_); +m = Math.sin((1 - n) * _) / d; +p = Math.sin(n * _) / d; +} else { +m = 1 - n; +p = n; +} +t.x = m * r + p * c; +t.y = m * s + p * l; +t.z = m * o + p * h; +t.w = m * a + p * u; +return t; +}; +t.sqlerp = function(e, i, n, r, s, o) { +return (function() { +var e = t.create(), i = t.create(); +return function(n, r, s, o, a, c) { +t.slerp(e, r, a, c); +t.slerp(i, s, o, c); +t.slerp(n, e, i, 2 * c * (1 - c)); +return n; +}; +})()(e, i, n, r, s, o); +}; +t.invert = function(t, e) { +var i = e.x, n = e.y, r = e.z, s = e.w, o = i * i + n * n + r * r + s * s, a = o ? 1 / o : 0; +t.x = -i * a; +t.y = -n * a; +t.z = -r * a; +t.w = s * a; +return t; +}; +t.conjugate = function(t, e) { +t.x = -e.x; +t.y = -e.y; +t.z = -e.z; +t.w = e.w; +return t; +}; +t.magnitude = function(t) { +var e = t.x, i = t.y, n = t.z, r = t.w; +return Math.sqrt(e * e + i * i + n * n + r * r); +}; +t.mag = function(e) { +return t.magnitude(e); +}; +t.squaredMagnitude = function(t) { +var e = t.x, i = t.y, n = t.z, r = t.w; +return e * e + i * i + n * n + r * r; +}; +t.sqrMag = function(e) { +return t.squaredMagnitude(e); +}; +t.normalize = function(t, e) { +var i = e.x, n = e.y, r = e.z, s = e.w, o = i * i + n * n + r * r + s * s; +if (o > 0) { +o = 1 / Math.sqrt(o); +t.x = i * o; +t.y = n * o; +t.z = r * o; +t.w = s * o; +} +return t; +}; +t.fromAxes = function(e, i, n, r) { +return (function() { +var e = s.default.create(); +return function(i, n, r, o) { +s.default.set(e, n.x, n.y, n.z, r.x, r.y, r.z, o.x, o.y, o.z); +return t.normalize(i, t.fromMat3(i, e)); +}; +})()(e, i, n, r); +}; +t.fromViewUp = function(e, i, n) { +return (function() { +var e = s.default.create(); +return function(i, n, r) { +s.default.fromViewUp(e, n, r); +return e ? t.normalize(i, t.fromMat3(i, e)) : null; +}; +})()(e, i, n); +}; +t.fromAxisAngle = function(t, e, i) { +i *= .5; +var n = Math.sin(i); +t.x = n * e.x; +t.y = n * e.y; +t.z = n * e.z; +t.w = Math.cos(i); +return t; +}; +t.fromMat3 = function(t, e) { +var i = e.m00, n = e.m03, r = e.m06, s = e.m01, o = e.m04, a = e.m07, c = e.m02, l = e.m05, h = e.m08, u = i + o + h; +if (u > 0) { +var _ = .5 / Math.sqrt(u + 1); +t.w = .25 / _; +t.x = (l - a) * _; +t.y = (r - c) * _; +t.z = (s - n) * _; +} else if (i > o && i > h) { +var f = 2 * Math.sqrt(1 + i - o - h); +t.w = (l - a) / f; +t.x = .25 * f; +t.y = (n + s) / f; +t.z = (r + c) / f; +} else if (o > h) { +var d = 2 * Math.sqrt(1 + o - i - h); +t.w = (r - c) / d; +t.x = (n + s) / d; +t.y = .25 * d; +t.z = (a + l) / d; +} else { +var m = 2 * Math.sqrt(1 + h - i - o); +t.w = (s - n) / m; +t.x = (r + c) / m; +t.y = (a + l) / m; +t.z = .25 * m; +} +return t; +}; +t.fromEuler = function(t, e, i, n) { +e *= l; +i *= l; +n *= l; +var r = Math.sin(e), s = Math.cos(e), o = Math.sin(i), a = Math.cos(i), c = Math.sin(n), h = Math.cos(n); +t.x = r * a * h + s * o * c; +t.y = s * o * h + r * a * c; +t.z = s * a * c - r * o * h; +t.w = s * a * h - r * o * c; +return t; +}; +t.fromAngleZ = function(t, e) { +e *= l; +t.x = t.y = 0; +t.z = Math.sin(e); +t.w = Math.cos(e); +}; +t.toEuler = function(t, e) { +var i = e.x, n = e.y, r = e.z, s = e.w, a = void 0, c = void 0, l = void 0, h = i * n + r * s; +if (h > .499) { +a = 2 * Math.atan2(i, s); +c = Math.PI / 2; +l = 0; +} +if (h < -.499) { +a = -2 * Math.atan2(i, s); +c = -Math.PI / 2; +l = 0; +} +if (isNaN(a)) { +var u = i * i, _ = n * n, f = r * r; +a = Math.atan2(2 * n * s - 2 * i * r, 1 - 2 * _ - 2 * f); +c = Math.asin(2 * h); +l = Math.atan2(2 * i * s - 2 * n * r, 1 - 2 * u - 2 * f); +} +t.y = (0, o.toDegree)(a); +t.z = (0, o.toDegree)(c); +t.x = (0, o.toDegree)(l); +return t; +}; +t.str = function(t) { +return "quat(" + t.x + ", " + t.y + ", " + t.z + ", " + t.w + ")"; +}; +t.array = function(t, e) { +t[0] = e.x; +t[1] = e.y; +t[2] = e.z; +t[3] = e.w; +return t; +}; +t.exactEquals = function(t, e) { +return r.default.exactEquals(t, e); +}; +t.equals = function(t, e) { +return r.default.equals(t, e); +}; +return t; +})(); +i.default = h; +e.exports = i.default; +}), { +"./mat3": 320, +"./utils": 323, +"./vec3": 325, +"./vec4": 326 +} ], +323: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.equals = function(t, e) { +return Math.abs(t - e) <= s * Math.max(1, Math.abs(t), Math.abs(e)); +}; +i.approx = function(t, e, i) { +i = i || s; +return Math.abs(t - e) <= i; +}; +i.clamp = function(t, e, i) { +return t < e ? e : t > i ? i : t; +}; +i.clamp01 = function(t) { +return t < 0 ? 0 : t > 1 ? 1 : t; +}; +i.lerp = function(t, e, i) { +return t + (e - t) * i; +}; +i.toRadian = function(t) { +return t * n; +}; +i.toDegree = function(t) { +return t * r; +}; +i.randomRange = o; +i.randomRangeInt = function(t, e) { +return Math.floor(o(t, e)); +}; +i.pseudoRandom = a; +i.pseudoRandomRange = c; +i.pseudoRandomRangeInt = function(t, e, i) { +return Math.floor(c(t, e, i)); +}; +i.nextPow2 = function(t) { +t = (t = (t = (t = (t = --t >> 1 | t) >> 2 | t) >> 4 | t) >> 8 | t) >> 16 | t; +return ++t; +}; +i.repeat = l; +i.pingPong = function(t, e) { +t = l(t, 2 * e); +return t = e - Math.abs(t - e); +}; +i.inverseLerp = function(t, e, i) { +return (i - t) / (e - t); +}; +var n = Math.PI / 180, r = 180 / Math.PI, s = i.EPSILON = 1e-6; +i.random = Math.random; +function o(t, e) { +return Math.random() * (e - t) + t; +} +function a(t) { +return (t = (9301 * t + 49297) % 233280) / 233280; +} +function c(t, e, i) { +return a(t) * (i - e) + e; +} +function l(t, e) { +return t - Math.floor(t / e) * e; +} +}), {} ], +324: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = t("./utils"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t() { +var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0; +r(this, t); +this.x = e; +this.y = i; +} +t.create = function() { +return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0); +}; +t.zero = function(t) { +t.x = 0; +t.y = 0; +return t; +}; +t.clone = function(e) { +return new t(e.x, e.y); +}; +t.copy = function(t, e) { +t.x = e.x; +t.y = e.y; +return t; +}; +t.set = function(t, e, i) { +t.x = e; +t.y = i; +return t; +}; +t.add = function(t, e, i) { +t.x = e.x + i.x; +t.y = e.y + i.y; +return t; +}; +t.subtract = function(t, e, i) { +t.x = e.x - i.x; +t.y = e.y - i.y; +return t; +}; +t.sub = function(e, i, n) { +return t.subtract(e, i, n); +}; +t.multiply = function(t, e, i) { +t.x = e.x * i.x; +t.y = e.y * i.y; +return t; +}; +t.mul = function(e, i, n) { +return t.multiply(e, i, n); +}; +t.divide = function(t, e, i) { +t.x = e.x / i.x; +t.y = e.y / i.y; +return t; +}; +t.div = function(e, i, n) { +return t.divide(e, i, n); +}; +t.ceil = function(t, e) { +t.x = Math.ceil(e.x); +t.y = Math.ceil(e.y); +return t; +}; +t.floor = function(t, e) { +t.x = Math.floor(e.x); +t.y = Math.floor(e.y); +return t; +}; +t.min = function(t, e, i) { +t.x = Math.min(e.x, i.x); +t.y = Math.min(e.y, i.y); +return t; +}; +t.max = function(t, e, i) { +t.x = Math.max(e.x, i.x); +t.y = Math.max(e.y, i.y); +return t; +}; +t.round = function(t, e) { +t.x = Math.round(e.x); +t.y = Math.round(e.y); +return t; +}; +t.scale = function(t, e, i) { +t.x = e.x * i; +t.y = e.y * i; +return t; +}; +t.scaleAndAdd = function(t, e, i, n) { +t.x = e.x + i.x * n; +t.y = e.y + i.y * n; +return t; +}; +t.distance = function(t, e) { +var i = e.x - t.x, n = e.y - t.y; +return Math.sqrt(i * i + n * n); +}; +t.dist = function(e, i) { +return t.distance(e, i); +}; +t.squaredDistance = function(t, e) { +var i = e.x - t.x, n = e.y - t.y; +return i * i + n * n; +}; +t.sqrDist = function(e, i) { +return t.squaredDistance(e, i); +}; +t.magnitude = function(t) { +var e = t.x, i = t.y; +return Math.sqrt(e * e + i * i); +}; +t.mag = function(e) { +return t.magnitude(e); +}; +t.squaredMagnitude = function(t) { +var e = t.x, i = t.y; +return e * e + i * i; +}; +t.sqrMag = function(e) { +return t.squaredMagnitude(e); +}; +t.negate = function(t, e) { +t.x = -e.x; +t.y = -e.y; +return t; +}; +t.inverse = function(t, e) { +t.x = 1 / e.x; +t.y = 1 / e.y; +return t; +}; +t.inverseSafe = function(t, e) { +var i = e.x, r = e.y; +Math.abs(i) < n.EPSILON ? t.x = 0 : t.x = 1 / i; +Math.abs(r) < n.EPSILON ? t.y = 0 : t.y = 1 / e.y; +return t; +}; +t.normalize = function(t, e) { +var i = e.x, n = e.y, r = i * i + n * n; +if (r > 0) { +r = 1 / Math.sqrt(r); +t.x = e.x * r; +t.y = e.y * r; +} +return t; +}; +t.dot = function(t, e) { +return t.x * e.x + t.y * e.y; +}; +t.cross = function(t, e, i) { +var n = e.x * i.y - e.y * i.x; +t.x = t.y = 0; +t.z = n; +return t; +}; +t.lerp = function(t, e, i, n) { +var r = e.x, s = e.y; +t.x = r + n * (i.x - r); +t.y = s + n * (i.y - s); +return t; +}; +t.random = function(t, e) { +e = e || 1; +var i = 2 * (0, n.random)() * Math.PI; +t.x = Math.cos(i) * e; +t.y = Math.sin(i) * e; +return t; +}; +t.transformMat2 = function(t, e, i) { +var n = e.x, r = e.y; +t.x = i.m00 * n + i.m02 * r; +t.y = i.m01 * n + i.m03 * r; +return t; +}; +t.transformMat23 = function(t, e, i) { +var n = e.x, r = e.y; +t.x = i.m00 * n + i.m02 * r + i.m04; +t.y = i.m01 * n + i.m03 * r + i.m05; +return t; +}; +t.transformMat3 = function(t, e, i) { +var n = e.x, r = e.y; +t.x = i.m00 * n + i.m03 * r + i.m06; +t.y = i.m01 * n + i.m04 * r + i.m07; +return t; +}; +t.transformMat4 = function(t, e, i) { +var n = e.x, r = e.y; +t.x = i.m00 * n + i.m04 * r + i.m12; +t.y = i.m01 * n + i.m05 * r + i.m13; +return t; +}; +t.forEach = function(e, i, n, r, s, o) { +return t._forEach(e, i, n, r, s, o); +}; +t.str = function(t) { +return "vec2(" + t.x + ", " + t.y + ")"; +}; +t.array = function(t, e) { +t[0] = e.x; +t[1] = e.y; +return t; +}; +t.exactEquals = function(t, e) { +return t.x === e.x && t.y === e.y; +}; +t.equals = function(t, e) { +var i = t.x, r = t.y, s = e.x, o = e.y; +return Math.abs(i - s) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(s)) && Math.abs(r - o) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(o)); +}; +t.angle = function(e, i) { +return t._angle(e, i); +}; +return t; +})(); +s._forEach = (function() { +var t = s.create(0, 0); +return function(e, i, n, r, s, o) { +var a = void 0, c = void 0; +i || (i = 2); +n || (n = 0); +c = r ? Math.min(r * i + n, e.length) : e.length; +for (a = n; a < c; a += i) { +t.x = e[a]; +t.y = e[a + 1]; +s(t, t, o); +e[a] = t.x; +e[a + 1] = t.y; +} +return e; +}; +})(); +s._angle = (function() { +var t = s.create(0, 0), e = s.create(0, 0); +return function(i, n) { +s.normalize(t, i); +s.normalize(e, n); +var r = s.dot(t, e); +return r > 1 ? 0 : r < -1 ? Math.PI : Math.acos(r); +}; +})(); +i.default = s; +e.exports = i.default; +}), { +"./utils": 323 +} ], +325: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = t("./utils"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t() { +var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0; +r(this, t); +this.x = e; +this.y = i; +this.z = n; +} +t.create = function() { +return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0); +}; +t.zero = function(t) { +t.x = 0; +t.y = 0; +t.z = 0; +return t; +}; +t.clone = function(e) { +return new t(e.x, e.y, e.z); +}; +t.copy = function(t, e) { +t.x = e.x; +t.y = e.y; +t.z = e.z; +return t; +}; +t.set = function(t, e, i, n) { +t.x = e; +t.y = i; +t.z = n; +return t; +}; +t.add = function(t, e, i) { +t.x = e.x + i.x; +t.y = e.y + i.y; +t.z = e.z + i.z; +return t; +}; +t.subtract = function(t, e, i) { +t.x = e.x - i.x; +t.y = e.y - i.y; +t.z = e.z - i.z; +return t; +}; +t.sub = function(e, i, n) { +return t.subtract(e, i, n); +}; +t.multiply = function(t, e, i) { +t.x = e.x * i.x; +t.y = e.y * i.y; +t.z = e.z * i.z; +return t; +}; +t.mul = function(e, i, n) { +return t.multiply(e, i, n); +}; +t.divide = function(t, e, i) { +t.x = e.x / i.x; +t.y = e.y / i.y; +t.z = e.z / i.z; +return t; +}; +t.div = function(e, i, n) { +return t.divide(e, i, n); +}; +t.ceil = function(t, e) { +t.x = Math.ceil(e.x); +t.y = Math.ceil(e.y); +t.z = Math.ceil(e.z); +return t; +}; +t.floor = function(t, e) { +t.x = Math.floor(e.x); +t.y = Math.floor(e.y); +t.z = Math.floor(e.z); +return t; +}; +t.min = function(t, e, i) { +t.x = Math.min(e.x, i.x); +t.y = Math.min(e.y, i.y); +t.z = Math.min(e.z, i.z); +return t; +}; +t.max = function(t, e, i) { +t.x = Math.max(e.x, i.x); +t.y = Math.max(e.y, i.y); +t.z = Math.max(e.z, i.z); +return t; +}; +t.round = function(t, e) { +t.x = Math.round(e.x); +t.y = Math.round(e.y); +t.z = Math.round(e.z); +return t; +}; +t.scale = function(t, e, i) { +t.x = e.x * i; +t.y = e.y * i; +t.z = e.z * i; +return t; +}; +t.scaleAndAdd = function(t, e, i, n) { +t.x = e.x + i.x * n; +t.y = e.y + i.y * n; +t.z = e.z + i.z * n; +return t; +}; +t.distance = function(t, e) { +var i = e.x - t.x, n = e.y - t.y, r = e.z - t.z; +return Math.sqrt(i * i + n * n + r * r); +}; +t.dist = function(e, i) { +return t.distance(e, i); +}; +t.squaredDistance = function(t, e) { +var i = e.x - t.x, n = e.y - t.y, r = e.z - t.z; +return i * i + n * n + r * r; +}; +t.sqrDist = function(e, i) { +return t.squaredDistance(e, i); +}; +t.magnitude = function(t) { +var e = t.x, i = t.y, n = t.z; +return Math.sqrt(e * e + i * i + n * n); +}; +t.mag = function(e) { +return t.magnitude(e); +}; +t.squaredMagnitude = function(t) { +var e = t.x, i = t.y, n = t.z; +return e * e + i * i + n * n; +}; +t.sqrMag = function(e) { +return t.squaredMagnitude(e); +}; +t.negate = function(t, e) { +t.x = -e.x; +t.y = -e.y; +t.z = -e.z; +return t; +}; +t.inverse = function(t, e) { +t.x = 1 / e.x; +t.y = 1 / e.y; +t.z = 1 / e.z; +return t; +}; +t.inverseSafe = function(t, e) { +var i = e.x, r = e.y, s = e.z; +Math.abs(i) < n.EPSILON ? t.x = 0 : t.x = 1 / i; +Math.abs(r) < n.EPSILON ? t.y = 0 : t.y = 1 / r; +Math.abs(s) < n.EPSILON ? t.z = 0 : t.z = 1 / s; +return t; +}; +t.normalize = function(t, e) { +var i = e.x, n = e.y, r = e.z, s = i * i + n * n + r * r; +if (s > 0) { +s = 1 / Math.sqrt(s); +t.x = i * s; +t.y = n * s; +t.z = r * s; +} +return t; +}; +t.dot = function(t, e) { +return t.x * e.x + t.y * e.y + t.z * e.z; +}; +t.cross = function(t, e, i) { +var n = e.x, r = e.y, s = e.z, o = i.x, a = i.y, c = i.z; +t.x = r * c - s * a; +t.y = s * o - n * c; +t.z = n * a - r * o; +return t; +}; +t.lerp = function(t, e, i, n) { +var r = e.x, s = e.y, o = e.z; +t.x = r + n * (i.x - r); +t.y = s + n * (i.y - s); +t.z = o + n * (i.z - o); +return t; +}; +t.hermite = function(t, e, i, n, r, s) { +var o = s * s, a = o * (2 * s - 3) + 1, c = o * (s - 2) + s, l = o * (s - 1), h = o * (3 - 2 * s); +t.x = e.x * a + i.x * c + n.x * l + r.x * h; +t.y = e.y * a + i.y * c + n.y * l + r.y * h; +t.z = e.z * a + i.z * c + n.z * l + r.z * h; +return t; +}; +t.bezier = function(t, e, i, n, r, s) { +var o = 1 - s, a = o * o, c = s * s, l = a * o, h = 3 * s * a, u = 3 * c * o, _ = c * s; +t.x = e.x * l + i.x * h + n.x * u + r.x * _; +t.y = e.y * l + i.y * h + n.y * u + r.y * _; +t.z = e.z * l + i.z * h + n.z * u + r.z * _; +return t; +}; +t.random = function(t, e) { +e = e || 1; +var i = 2 * (0, n.random)() * Math.PI, r = Math.acos(2 * (0, n.random)() - 1); +t.x = Math.sin(r) * Math.cos(i) * e; +t.y = Math.sin(r) * Math.sin(i) * e; +t.z = Math.cos(r) * e; +return t; +}; +t.transformMat4 = function(t, e, i) { +var n = e.x, r = e.y, s = e.z, o = i.m03 * n + i.m07 * r + i.m11 * s + i.m15; +o = o ? 1 / o : 1; +t.x = (i.m00 * n + i.m04 * r + i.m08 * s + i.m12) * o; +t.y = (i.m01 * n + i.m05 * r + i.m09 * s + i.m13) * o; +t.z = (i.m02 * n + i.m06 * r + i.m10 * s + i.m14) * o; +return t; +}; +t.transformMat4Normal = function(t, e, i) { +var n = e.x, r = e.y, s = e.z, o = i.m03 * n + i.m07 * r + i.m11 * s; +o = o ? 1 / o : 1; +t.x = (i.m00 * n + i.m04 * r + i.m08 * s) * o; +t.y = (i.m01 * n + i.m05 * r + i.m09 * s) * o; +t.z = (i.m02 * n + i.m06 * r + i.m10 * s) * o; +return t; +}; +t.transformMat3 = function(t, e, i) { +var n = e.x, r = e.y, s = e.z; +t.x = n * i.m00 + r * i.m03 + s * i.m06; +t.y = n * i.m01 + r * i.m04 + s * i.m07; +t.z = n * i.m02 + r * i.m05 + s * i.m08; +return t; +}; +t.transformQuat = function(t, e, i) { +var n = e.x, r = e.y, s = e.z, o = i.x, a = i.y, c = i.z, l = i.w, h = l * n + a * s - c * r, u = l * r + c * n - o * s, _ = l * s + o * r - a * n, f = -o * n - a * r - c * s; +t.x = h * l + f * -o + u * -c - _ * -a; +t.y = u * l + f * -a + _ * -o - h * -c; +t.z = _ * l + f * -c + h * -a - u * -o; +return t; +}; +t.rotateX = function(t, e, i, n) { +var r = e.x - i.x, s = e.y - i.y, o = e.z - i.z, a = r, c = s * Math.cos(n) - o * Math.sin(n), l = s * Math.sin(n) + o * Math.cos(n); +t.x = a + i.x; +t.y = c + i.y; +t.z = l + i.z; +return t; +}; +t.rotateY = function(t, e, i, n) { +var r = e.x - i.x, s = e.y - i.y, o = e.z - i.z, a = o * Math.sin(n) + r * Math.cos(n), c = s, l = o * Math.cos(n) - r * Math.sin(n); +t.x = a + i.x; +t.y = c + i.y; +t.z = l + i.z; +return t; +}; +t.rotateZ = function(t, e, i, n) { +var r = e.x - i.x, s = e.y - i.y, o = e.z - i.z, a = r * Math.cos(n) - s * Math.sin(n), c = r * Math.sin(n) + s * Math.cos(n), l = o; +t.x = a + i.x; +t.y = c + i.y; +t.z = l + i.z; +return t; +}; +t.str = function(t) { +return "vec3(" + t.x + ", " + t.y + ", " + t.z + ")"; +}; +t.array = function(t, e) { +t[0] = e.x; +t[1] = e.y; +t[2] = e.z; +return t; +}; +t.exactEquals = function(t, e) { +return t.x === e.x && t.y === e.y && t.z === e.z; +}; +t.equals = function(t, e) { +var i = t.x, r = t.y, s = t.z, o = e.x, a = e.y, c = e.z; +return Math.abs(i - o) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(o)) && Math.abs(r - a) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(a)) && Math.abs(s - c) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(c)); +}; +t.forEach = function(e, i, n, r, s, o) { +return t._forEach(e, i, n, r, s, o); +}; +t.angle = function(e, i) { +return t._angle(e, i); +}; +t.projectOnPlane = function(e, i, n) { +return t.sub(e, i, t.project(e, i, n)); +}; +t.project = function(e, i, n) { +var r = t.squaredMagnitude(n); +return r < 1e-6 ? t.set(e, 0, 0, 0) : t.scale(e, n, t.dot(i, n) / r); +}; +return t; +})(); +s._forEach = (function() { +var t = s.create(0, 0, 0); +return function(e, i, n, r, s, o) { +var a = void 0, c = void 0; +i || (i = 3); +n || (n = 0); +c = r ? Math.min(r * i + n, e.length) : e.length; +for (a = n; a < c; a += i) { +t.x = e[a]; +t.y = e[a + 1]; +t.z = e[a + 2]; +s(t, t, o); +e[a] = t.x; +e[a + 1] = t.y; +e[a + 2] = t.z; +} +return e; +}; +})(); +s._angle = (function() { +var t = s.create(0, 0, 0), e = s.create(0, 0, 0); +return function(i, n) { +s.copy(t, i); +s.copy(e, n); +s.normalize(t, t); +s.normalize(e, e); +var r = s.dot(t, e); +return r > 1 ? 0 : r < -1 ? Math.PI : Math.acos(r); +}; +})(); +i.default = s; +e.exports = i.default; +}), { +"./utils": 323 +} ], +326: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = t("./utils"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t() { +var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1; +r(this, t); +this.x = e; +this.y = i; +this.z = n; +this.w = s; +} +t.create = function() { +return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1); +}; +t.zero = function(t) { +t.x = 0; +t.y = 0; +t.z = 0; +t.w = 0; +return t; +}; +t.clone = function(e) { +return new t(e.x, e.y, e.z, e.w); +}; +t.copy = function(t, e) { +t.x = e.x; +t.y = e.y; +t.z = e.z; +t.w = e.w; +return t; +}; +t.set = function(t, e, i, n, r) { +t.x = e; +t.y = i; +t.z = n; +t.w = r; +return t; +}; +t.add = function(t, e, i) { +t.x = e.x + i.x; +t.y = e.y + i.y; +t.z = e.z + i.z; +t.w = e.w + i.w; +return t; +}; +t.subtract = function(t, e, i) { +t.x = e.x - i.x; +t.y = e.y - i.y; +t.z = e.z - i.z; +t.w = e.w - i.w; +return t; +}; +t.sub = function(e, i, n) { +return t.subtract(e, i, n); +}; +t.multiply = function(t, e, i) { +t.x = e.x * i.x; +t.y = e.y * i.y; +t.z = e.z * i.z; +t.w = e.w * i.w; +return t; +}; +t.mul = function(e, i, n) { +return t.multiply(e, i, n); +}; +t.divide = function(t, e, i) { +t.x = e.x / i.x; +t.y = e.y / i.y; +t.z = e.z / i.z; +t.w = e.w / i.w; +return t; +}; +t.div = function(e, i, n) { +return t.divide(e, i, n); +}; +t.ceil = function(t, e) { +t.x = Math.ceil(e.x); +t.y = Math.ceil(e.y); +t.z = Math.ceil(e.z); +t.w = Math.ceil(e.w); +return t; +}; +t.floor = function(t, e) { +t.x = Math.floor(e.x); +t.y = Math.floor(e.y); +t.z = Math.floor(e.z); +t.w = Math.floor(e.w); +return t; +}; +t.min = function(t, e, i) { +t.x = Math.min(e.x, i.x); +t.y = Math.min(e.y, i.y); +t.z = Math.min(e.z, i.z); +t.w = Math.min(e.w, i.w); +return t; +}; +t.max = function(t, e, i) { +t.x = Math.max(e.x, i.x); +t.y = Math.max(e.y, i.y); +t.z = Math.max(e.z, i.z); +t.w = Math.max(e.w, i.w); +return t; +}; +t.round = function(t, e) { +t.x = Math.round(e.x); +t.y = Math.round(e.y); +t.z = Math.round(e.z); +t.w = Math.round(e.w); +return t; +}; +t.scale = function(t, e, i) { +t.x = e.x * i; +t.y = e.y * i; +t.z = e.z * i; +t.w = e.w * i; +return t; +}; +t.scaleAndAdd = function(t, e, i, n) { +t.x = e.x + i.x * n; +t.y = e.y + i.y * n; +t.z = e.z + i.z * n; +t.w = e.w + i.w * n; +return t; +}; +t.distance = function(t, e) { +var i = e.x - t.x, n = e.y - t.y, r = e.z - t.z, s = e.w - t.w; +return Math.sqrt(i * i + n * n + r * r + s * s); +}; +t.dist = function(e, i) { +return t.distance(e, i); +}; +t.squaredDistance = function(t, e) { +var i = e.x - t.x, n = e.y - t.y, r = e.z - t.z, s = e.w - t.w; +return i * i + n * n + r * r + s * s; +}; +t.sqrDist = function(e, i) { +return t.squaredDistance(e, i); +}; +t.magnitude = function(t) { +var e = t.x, i = t.y, n = t.z, r = t.w; +return Math.sqrt(e * e + i * i + n * n + r * r); +}; +t.mag = function(e) { +return t.magnitude(e); +}; +t.squaredMagnitude = function(t) { +var e = t.x, i = t.y, n = t.z, r = t.w; +return e * e + i * i + n * n + r * r; +}; +t.sqrMag = function(e) { +return t.squaredMagnitude(e); +}; +t.negate = function(t, e) { +t.x = -e.x; +t.y = -e.y; +t.z = -e.z; +t.w = -e.w; +return t; +}; +t.inverse = function(t, e) { +t.x = 1 / e.x; +t.y = 1 / e.y; +t.z = 1 / e.z; +t.w = 1 / e.w; +return t; +}; +t.inverseSafe = function(t, e) { +var i = e.x, r = e.y, s = e.z, o = e.w; +Math.abs(i) < n.EPSILON ? t.x = 0 : t.x = 1 / i; +Math.abs(r) < n.EPSILON ? t.y = 0 : t.y = 1 / r; +Math.abs(s) < n.EPSILON ? t.z = 0 : t.z = 1 / s; +Math.abs(o) < n.EPSILON ? t.w = 0 : t.w = 1 / o; +return t; +}; +t.normalize = function(t, e) { +var i = e.x, n = e.y, r = e.z, s = e.w, o = i * i + n * n + r * r + s * s; +if (o > 0) { +o = 1 / Math.sqrt(o); +t.x = i * o; +t.y = n * o; +t.z = r * o; +t.w = s * o; +} +return t; +}; +t.dot = function(t, e) { +return t.x * e.x + t.y * e.y + t.z * e.z + t.w * e.w; +}; +t.lerp = function(t, e, i, n) { +var r = e.x, s = e.y, o = e.z, a = e.w; +t.x = r + n * (i.x - r); +t.y = s + n * (i.y - s); +t.z = o + n * (i.z - o); +t.w = a + n * (i.w - a); +return t; +}; +t.random = function(t, e) { +e = e || 1; +var i = 2 * (0, n.random)() * Math.PI, r = Math.acos(2 * (0, n.random)() - 1); +t.x = Math.sin(r) * Math.cos(i) * e; +t.y = Math.sin(r) * Math.sin(i) * e; +t.z = Math.cos(r) * e; +t.w = 0; +return t; +}; +t.transformMat4 = function(t, e, i) { +var n = e.x, r = e.y, s = e.z, o = e.w; +t.x = i.m00 * n + i.m04 * r + i.m08 * s + i.m12 * o; +t.y = i.m01 * n + i.m05 * r + i.m09 * s + i.m13 * o; +t.z = i.m02 * n + i.m06 * r + i.m10 * s + i.m14 * o; +t.w = i.m03 * n + i.m07 * r + i.m11 * s + i.m15 * o; +return t; +}; +t.transformQuat = function(t, e, i) { +var n = e.x, r = e.y, s = e.z, o = i.x, a = i.y, c = i.z, l = i.w, h = l * n + a * s - c * r, u = l * r + c * n - o * s, _ = l * s + o * r - a * n, f = -o * n - a * r - c * s; +t.x = h * l + f * -o + u * -c - _ * -a; +t.y = u * l + f * -a + _ * -o - h * -c; +t.z = _ * l + f * -c + h * -a - u * -o; +t.w = e.w; +return t; +}; +t.str = function(t) { +return "vec4(" + t.x + ", " + t.y + ", " + t.z + ", " + t.w + ")"; +}; +t.array = function(t, e) { +t[0] = e.x; +t[1] = e.y; +t[2] = e.z; +t[3] = e.w; +return t; +}; +t.exactEquals = function(t, e) { +return t.x === e.x && t.y === e.y && t.z === e.z && t.w === e.w; +}; +t.equals = function(t, e) { +var i = t.x, r = t.y, s = t.z, o = t.w, a = e.x, c = e.y, l = e.z, h = e.w; +return Math.abs(i - a) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(a)) && Math.abs(r - c) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(c)) && Math.abs(s - l) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(l)) && Math.abs(o - h) <= n.EPSILON * Math.max(1, Math.abs(o), Math.abs(h)); +}; +t.forEach = function(e, i, n, r, s, o) { +return t._forEach(e, i, n, r, s, o); +}; +return t; +})(); +s._forEach = (function() { +var t = s.create(0, 0, 0, 0); +return function(e, i, n, r, s, o) { +var a = void 0, c = void 0; +i || (i = 4); +n || (n = 0); +c = r ? Math.min(r * i + n, e.length) : e.length; +for (a = n; a < c; a += i) { +t.x = e[a]; +t.y = e[a + 1]; +t.z = e[a + 2]; +t.w = e[a + 3]; +s(t, t, o); +e[a] = t.x; +e[a + 1] = t.y; +e[a + 2] = t.z; +e[a + 3] = t.w; +} +return e; +}; +})(); +i.default = s; +e.exports = i.default; +}), { +"./utils": 323 +} ], +327: [ (function(t, e, i) { +"use strict"; +cc.js; +}), {} ], +328: [ (function(t, e, i) { +"use strict"; +t("./core/CCGame"); +t("./actions"); +}), { +"./actions": 7, +"./core/CCGame": 51 +} ], +329: [ (function(t, e, i) { +"use strict"; +var n = t("../compression/zlib.min"), r = t("../core/CCDebug"), s = function(t) { +var e, i, n, s, o, a, c, l, h, u, _, f, d; +this.data = t; +this.pos = 8; +this.palette = []; +this.imgData = []; +this.transparency = {}; +this.animation = null; +this.text = {}; +o = null; +for (;;) { +e = this.readUInt32(); +switch (l = function() { +var t, e; +e = []; +for (t = 0; t < 4; ++t) e.push(String.fromCharCode(this.data[this.pos++])); +return e; +}.call(this).join("")) { +case "IHDR": +this.width = this.readUInt32(); +this.height = this.readUInt32(); +this.bits = this.data[this.pos++]; +this.colorType = this.data[this.pos++]; +this.compressionMethod = this.data[this.pos++]; +this.filterMethod = this.data[this.pos++]; +this.interlaceMethod = this.data[this.pos++]; +break; + +case "acTL": +this.animation = { +numFrames: this.readUInt32(), +numPlays: this.readUInt32() || Infinity, +frames: [] +}; +break; + +case "PLTE": +this.palette = this.read(e); +break; + +case "fcTL": +o && this.animation.frames.push(o); +this.pos += 4; +o = { +width: this.readUInt32(), +height: this.readUInt32(), +xOffset: this.readUInt32(), +yOffset: this.readUInt32() +}; +s = this.readUInt16(); +n = this.readUInt16() || 100; +o.delay = 1e3 * s / n; +o.disposeOp = this.data[this.pos++]; +o.blendOp = this.data[this.pos++]; +o.data = []; +break; + +case "IDAT": +case "fdAT": +if ("fdAT" === l) { +this.pos += 4; +e -= 4; +} +t = (null != o ? o.data : void 0) || this.imgData; +for (_ = 0; 0 <= e ? _ < e : _ > e; 0 <= e ? ++_ : --_) t.push(this.data[this.pos++]); +break; + +case "tRNS": +this.transparency = {}; +switch (this.colorType) { +case 3: +this.transparency.indexed = this.read(e); +if ((h = 255 - this.transparency.indexed.length) > 0) for (f = 0; 0 <= h ? f < h : f > h; 0 <= h ? ++f : --f) this.transparency.indexed.push(255); +break; + +case 0: +this.transparency.grayscale = this.read(e)[0]; +break; + +case 2: +this.transparency.rgb = this.read(e); +} +break; + +case "tEXt": +a = (u = this.read(e)).indexOf(0); +c = String.fromCharCode.apply(String, u.slice(0, a)); +this.text[c] = String.fromCharCode.apply(String, u.slice(a + 1)); +break; + +case "IEND": +o && this.animation.frames.push(o); +this.colors = function() { +switch (this.colorType) { +case 0: +case 3: +case 4: +return 1; + +case 2: +case 6: +return 3; +} +}.call(this); +this.hasAlphaChannel = 4 === (d = this.colorType) || 6 === d; +i = this.colors + (this.hasAlphaChannel ? 1 : 0); +this.pixelBitlength = this.bits * i; +this.colorSpace = function() { +switch (this.colors) { +case 1: +return "DeviceGray"; + +case 3: +return "DeviceRGB"; +} +}.call(this); +Uint8Array != Array && (this.imgData = new Uint8Array(this.imgData)); +return; + +default: +this.pos += e; +} +this.pos += 4; +if (this.pos > this.data.length) throw new Error(r.getError(6017)); +} +}; +s.prototype = { +constructor: s, +read: function(t) { +var e, i; +i = []; +for (e = 0; 0 <= t ? e < t : e > t; 0 <= t ? ++e : --e) i.push(this.data[this.pos++]); +return i; +}, +readUInt32: function() { +return this.data[this.pos++] << 24 | this.data[this.pos++] << 16 | this.data[this.pos++] << 8 | this.data[this.pos++]; +}, +readUInt16: function() { +return this.data[this.pos++] << 8 | this.data[this.pos++]; +}, +decodePixels: function(t) { +var e, i, s, o, a, c, l, h, u, _, f, d, m, p, v, y, g, x, C, b, A, S, w; +null == t && (t = this.imgData); +if (0 === t.length) return new Uint8Array(0); +t = new n.Inflate(t, { +index: 0, +verify: !1 +}).decompress(); +y = (d = this.pixelBitlength / 8) * this.width; +m = new Uint8Array(y * this.height); +c = t.length; +v = 0; +p = 0; +i = 0; +for (;p < c; ) { +switch (t[p++]) { +case 0: +for (o = C = 0; C < y; o = C += 1) m[i++] = t[p++]; +break; + +case 1: +for (o = b = 0; b < y; o = b += 1) { +e = t[p++]; +a = o < d ? 0 : m[i - d]; +m[i++] = (e + a) % 256; +} +break; + +case 2: +for (o = A = 0; A < y; o = A += 1) { +e = t[p++]; +s = (o - o % d) / d; +g = v && m[(v - 1) * y + s * d + o % d]; +m[i++] = (g + e) % 256; +} +break; + +case 3: +for (o = S = 0; S < y; o = S += 1) { +e = t[p++]; +s = (o - o % d) / d; +a = o < d ? 0 : m[i - d]; +g = v && m[(v - 1) * y + s * d + o % d]; +m[i++] = (e + Math.floor((a + g) / 2)) % 256; +} +break; + +case 4: +for (o = w = 0; w < y; o = w += 1) { +e = t[p++]; +s = (o - o % d) / d; +a = o < d ? 0 : m[i - d]; +if (0 === v) g = x = 0; else { +g = m[(v - 1) * y + s * d + o % d]; +x = s && m[(v - 1) * y + (s - 1) * d + o % d]; +} +l = a + g - x; +h = Math.abs(l - a); +_ = Math.abs(l - g); +f = Math.abs(l - x); +u = h <= _ && h <= f ? a : _ <= f ? g : x; +m[i++] = (e + u) % 256; +} +break; + +default: +throw new Error(r.getError(6018, t[p - 1])); +} +v++; +} +return m; +}, +copyToImageData: function(t, e) { +var i, n, r, s, o, a, c, l, h, u, _; +n = this.colors; +h = null; +i = this.hasAlphaChannel; +if (this.palette.length) { +h = null != (_ = this._decodedPalette) ? _ : this._decodedPalette = this.decodePalette(); +n = 4; +i = !0; +} +l = (r = t.data || t).length; +o = h || e; +s = a = 0; +if (1 === n) for (;s < l; ) { +c = h ? 4 * e[s / 4] : a; +u = o[c++]; +r[s++] = u; +r[s++] = u; +r[s++] = u; +r[s++] = i ? o[c++] : 255; +a = c; +} else for (;s < l; ) { +c = h ? 4 * e[s / 4] : a; +r[s++] = o[c++]; +r[s++] = o[c++]; +r[s++] = o[c++]; +r[s++] = i ? o[c++] : 255; +a = c; +} +}, +decodePalette: function() { +var t, e, i, n, r, s, o, a, c; +i = this.palette; +s = this.transparency.indexed || []; +r = new Uint8Array((s.length || 0) + i.length); +n = 0; +t = 0; +for (e = o = 0, a = i.length; o < a; e = o += 3) { +r[n++] = i[e]; +r[n++] = i[e + 1]; +r[n++] = i[e + 2]; +r[n++] = null != (c = s[t++]) ? c : 255; +} +return r; +}, +render: function(t) { +var e, i; +t.width = this.width; +t.height = this.height; +i = (e = t.getContext("2d")).createImageData(this.width, this.height); +this.copyToImageData(i, this.decodePixels()); +return e.putImageData(i, 0, 0); +} +}; +e.exports = s; +}), { +"../compression/zlib.min": 25, +"../core/CCDebug": 49 +} ], +330: [ (function(t, e, i) { +"use strict"; +var n = t("../core/assets/CCAsset"), r = t("../core/assets/CCSpriteFrame"), s = cc.Class({ +name: "cc.ParticleAsset", +extends: n, +properties: { +spriteFrame: { +default: null, +type: r +} +} +}); +cc.ParticleAsset = e.exports = s; +}), { +"../core/assets/CCAsset": 56, +"../core/assets/CCSpriteFrame": 70 +} ], +331: [ (function(t, e, i) { +"use strict"; +var n = t("../core/platform/CCMacro"), r = t("./CCParticleAsset"), s = t("../core/components/CCRenderComponent"), o = t("../compression/ZipUtils"), a = t("./CCPNGReader"), c = t("./CCTIFFReader"), l = t("../core/utils/texture-util"), h = t("../core/renderer/render-flow"), u = t("./particle-simulator"), _ = t("../core/assets/material/CCMaterial"), f = t("../core/utils/blend-func"); +function d(t) { +return t.length > 8 && 137 === t[0] && 80 === t[1] && 78 === t[2] && 71 === t[3] && 13 === t[4] && 10 === t[5] && 26 === t[6] && 10 === t[7] ? n.ImageFormat.PNG : t.length > 2 && (73 === t[0] && 73 === t[1] || 77 === t[0] && 77 === t[1] || 255 === t[0] && 216 === t[1]) ? n.ImageFormat.TIFF : n.ImageFormat.UNKNOWN; +} +var m = cc.Enum({ +GRAVITY: 0, +RADIUS: 1 +}), p = cc.Enum({ +FREE: 0, +RELATIVE: 1, +GROUPED: 2 +}), v = { +preview: { +default: !0, +editorOnly: !0, +notify: !1, +animatable: !1, +tooltip: !1 +}, +_custom: !1, +custom: { +get: function() { +return this._custom; +}, +set: function(t) { +0; +if (this._custom !== t) { +this._custom = t; +this._applyFile(); +0; +} +}, +animatable: !1, +tooltip: !1 +}, +_file: { +default: null, +type: r +}, +file: { +get: function() { +return this._file; +}, +set: function(t, e) { +if (this._file !== t) { +this._file = t; +if (t) { +this._applyFile(); +0; +} else this.custom = !0; +} +}, +animatable: !1, +type: r, +tooltip: !1 +}, +_spriteFrame: { +default: null, +type: cc.SpriteFrame +}, +spriteFrame: { +get: function() { +return this._spriteFrame; +}, +set: function(t, e) { +var i = this._renderSpriteFrame; +if (i !== t) { +this._renderSpriteFrame = t; +t && !t._uuid || (this._spriteFrame = t); +if ((i && i.getTexture()) !== (t && t.getTexture())) { +this._texture = null; +this._applySpriteFrame(i); +} +0; +} +}, +type: cc.SpriteFrame, +tooltip: !1 +}, +_texture: { +default: null, +type: cc.Texture2D, +editorOnly: !0 +}, +texture: { +get: function() { +return this._texture; +}, +set: function(t) { +t && cc.warnID(6017); +}, +type: cc.Texture2D, +tooltip: !1, +readonly: !0, +visible: !1, +animatable: !1 +}, +particleCount: { +visible: !1, +get: function() { +return this._simulator.particles.length; +}, +readonly: !0 +}, +_stopped: !0, +stopped: { +get: function() { +return this._stopped; +}, +animatable: !1, +visible: !1 +}, +playOnLoad: !0, +autoRemoveOnFinish: { +default: !1, +animatable: !1, +tooltip: !1 +}, +active: { +get: function() { +return this._simulator.active; +}, +visible: !1 +}, +totalParticles: 150, +duration: -1, +emissionRate: 10, +life: 1, +lifeVar: 0, +_startColor: null, +startColor: { +type: cc.Color, +get: function() { +return this._startColor; +}, +set: function(t) { +this._startColor.r = t.r; +this._startColor.g = t.g; +this._startColor.b = t.b; +this._startColor.a = t.a; +} +}, +_startColorVar: null, +startColorVar: { +type: cc.Color, +get: function() { +return this._startColorVar; +}, +set: function(t) { +this._startColorVar.r = t.r; +this._startColorVar.g = t.g; +this._startColorVar.b = t.b; +this._startColorVar.a = t.a; +} +}, +_endColor: null, +endColor: { +type: cc.Color, +get: function() { +return this._endColor; +}, +set: function(t) { +this._endColor.r = t.r; +this._endColor.g = t.g; +this._endColor.b = t.b; +this._endColor.a = t.a; +} +}, +_endColorVar: null, +endColorVar: { +type: cc.Color, +get: function() { +return this._endColorVar; +}, +set: function(t) { +this._endColorVar.r = t.r; +this._endColorVar.g = t.g; +this._endColorVar.b = t.b; +this._endColorVar.a = t.a; +} +}, +angle: 90, +angleVar: 20, +startSize: 50, +startSizeVar: 0, +endSize: 0, +endSizeVar: 0, +startSpin: 0, +startSpinVar: 0, +endSpin: 0, +endSpinVar: 0, +sourcePos: cc.Vec2.ZERO, +posVar: cc.Vec2.ZERO, +_positionType: { +default: p.FREE, +formerlySerializedAs: "positionType" +}, +positionType: { +type: p, +get: function() { +return this._positionType; +}, +set: function(t) { +var e = this.getMaterial(0); +e && e.define("_USE_MODEL", t !== p.FREE); +this._positionType = t; +} +}, +emitterMode: { +default: m.GRAVITY, +type: m +}, +gravity: cc.Vec2.ZERO, +speed: 180, +speedVar: 50, +tangentialAccel: 80, +tangentialAccelVar: 0, +radialAccel: 0, +radialAccelVar: 0, +rotationIsDir: !1, +startRadius: 0, +startRadiusVar: 0, +endRadius: 0, +endRadiusVar: 0, +rotatePerS: 0, +rotatePerSVar: 0 +}, y = cc.Class({ +name: "cc.ParticleSystem", +extends: s, +mixins: [ f ], +editor: !1, +ctor: function() { +this._previewTimer = null; +this._focused = !1; +this._simulator = new u(this); +this._startColor = cc.color(255, 255, 255, 255); +this._startColorVar = cc.color(0, 0, 0, 0); +this._endColor = cc.color(255, 255, 255, 0); +this._endColorVar = cc.color(0, 0, 0, 0); +this._renderSpriteFrame = null; +}, +properties: v, +statics: { +DURATION_INFINITY: -1, +START_SIZE_EQUAL_TO_END_SIZE: -1, +START_RADIUS_EQUAL_TO_END_RADIUS: -1, +EmitterMode: m, +PositionType: p, +_PNGReader: a, +_TIFFReader: c +}, +onFocusInEditor: !1, +onLostFocusInEditor: !1, +_startPreview: !1, +_stopPreview: !1, +_convertTextureToSpriteFrame: !1, +__preload: function() { +0; +if (this._custom && this.spriteFrame && !this._renderSpriteFrame) this._applySpriteFrame(this.spriteFrame); else if (this._file) if (this._custom) { +!this._texture && this._applyFile(); +} else this._applyFile(); +this.playOnLoad && this.resetSystem(); +0; +}, +onEnable: function() { +this._super(); +this.node._renderFlag &= ~h.FLAG_RENDER; +this._activateMaterial(); +}, +onDestroy: function() { +this.autoRemoveOnFinish && (this.autoRemoveOnFinish = !1); +if (this._buffer) { +this._buffer.destroy(); +this._buffer = null; +} +this._ia = null; +this._simulator._uvFilled = 0; +this._super(); +}, +lateUpdate: function(t) { +!this._simulator.finished && this._ia && this._simulator.step(t); +}, +addParticle: function() {}, +stopSystem: function() { +this._stopped = !0; +this._simulator.stop(); +}, +resetSystem: function() { +this._stopped = !1; +this._simulator.reset(); +this._activateMaterial(); +}, +isFull: function() { +return this.particleCount >= this.totalParticles; +}, +setTextureWithRect: function(t, e) { +t instanceof cc.Texture2D && (this.spriteFrame = new cc.SpriteFrame(t, e)); +}, +_applyFile: function() { +var t = this._file; +if (t) { +var e = this; +cc.loader.load(t.nativeUrl, (function(i, n) { +if (!i && n) { +if (e.isValid) { +e._plistFile = t.nativeUrl; +e._custom || e._initWithDictionary(n); +e._spriteFrame ? !e._renderSpriteFrame && e._spriteFrame && e._applySpriteFrame(e.spriteFrame) : t.spriteFrame ? e.spriteFrame = t.spriteFrame : e._custom && e._initTextureWithDictionary(n); +} +} else cc.errorID(6029); +})); +} +}, +_initTextureWithDictionary: function(t) { +var e = cc.path.changeBasename(this._plistFile, t.textureFileName || ""); +if (t.textureFileName) l.loadImage(e, (function(e, i) { +if (e) { +t.textureFileName = void 0; +this._initTextureWithDictionary(t); +} else this.spriteFrame = new cc.SpriteFrame(i); +}), this); else if (t.textureImageData) { +var i = t.textureImageData; +if (!(i && i.length > 0)) return !1; +var r = cc.loader.getRes(e); +if (!r) { +var s = o.unzipBase64AsArray(i, 1); +if (!s) { +cc.logID(6030); +return !1; +} +var h = d(s); +if (h !== n.ImageFormat.TIFF && h !== n.ImageFormat.PNG) { +cc.logID(6031); +return !1; +} +var u = document.createElement("canvas"); +if (h === n.ImageFormat.PNG) { +new a(s).render(u); +} else c.parseTIFF(s, u); +r = l.cacheImage(e, u); +} +r || cc.logID(6032); +this.spriteFrame = new cc.SpriteFrame(r); +} +return !0; +}, +_initWithDictionary: function(t) { +this.totalParticles = parseInt(t.maxParticles || 0); +this.life = parseFloat(t.particleLifespan || 0); +this.lifeVar = parseFloat(t.particleLifespanVariance || 0); +var e = t.emissionRate; +this.emissionRate = e || Math.min(this.totalParticles / this.life, Number.MAX_VALUE); +this.duration = parseFloat(t.duration || 0); +this.srcBlendFactor = parseInt(t.blendFuncSource || n.SRC_ALPHA); +this.dstBlendFactor = parseInt(t.blendFuncDestination || n.ONE_MINUS_SRC_ALPHA); +var i = this._startColor; +i.r = 255 * parseFloat(t.startColorRed || 0); +i.g = 255 * parseFloat(t.startColorGreen || 0); +i.b = 255 * parseFloat(t.startColorBlue || 0); +i.a = 255 * parseFloat(t.startColorAlpha || 0); +var r = this._startColorVar; +r.r = 255 * parseFloat(t.startColorVarianceRed || 0); +r.g = 255 * parseFloat(t.startColorVarianceGreen || 0); +r.b = 255 * parseFloat(t.startColorVarianceBlue || 0); +r.a = 255 * parseFloat(t.startColorVarianceAlpha || 0); +var s = this._endColor; +s.r = 255 * parseFloat(t.finishColorRed || 0); +s.g = 255 * parseFloat(t.finishColorGreen || 0); +s.b = 255 * parseFloat(t.finishColorBlue || 0); +s.a = 255 * parseFloat(t.finishColorAlpha || 0); +var o = this._endColorVar; +o.r = 255 * parseFloat(t.finishColorVarianceRed || 0); +o.g = 255 * parseFloat(t.finishColorVarianceGreen || 0); +o.b = 255 * parseFloat(t.finishColorVarianceBlue || 0); +o.a = 255 * parseFloat(t.finishColorVarianceAlpha || 0); +this.startSize = parseFloat(t.startParticleSize || 0); +this.startSizeVar = parseFloat(t.startParticleSizeVariance || 0); +this.endSize = parseFloat(t.finishParticleSize || 0); +this.endSizeVar = parseFloat(t.finishParticleSizeVariance || 0); +this.positionType = parseFloat(t.positionType || p.RELATIVE); +this.sourcePos.x = 0; +this.sourcePos.y = 0; +this.posVar.x = parseFloat(t.sourcePositionVariancex || 0); +this.posVar.y = parseFloat(t.sourcePositionVariancey || 0); +this.angle = parseFloat(t.angle || 0); +this.angleVar = parseFloat(t.angleVariance || 0); +this.startSpin = parseFloat(t.rotationStart || 0); +this.startSpinVar = parseFloat(t.rotationStartVariance || 0); +this.endSpin = parseFloat(t.rotationEnd || 0); +this.endSpinVar = parseFloat(t.rotationEndVariance || 0); +this.emitterMode = parseInt(t.emitterType || m.GRAVITY); +if (this.emitterMode === m.GRAVITY) { +this.gravity.x = parseFloat(t.gravityx || 0); +this.gravity.y = parseFloat(t.gravityy || 0); +this.speed = parseFloat(t.speed || 0); +this.speedVar = parseFloat(t.speedVariance || 0); +this.radialAccel = parseFloat(t.radialAcceleration || 0); +this.radialAccelVar = parseFloat(t.radialAccelVariance || 0); +this.tangentialAccel = parseFloat(t.tangentialAcceleration || 0); +this.tangentialAccelVar = parseFloat(t.tangentialAccelVariance || 0); +var a = t.rotationIsDir || ""; +if (null !== a) { +a = a.toString().toLowerCase(); +this.rotationIsDir = "true" === a || "1" === a; +} else this.rotationIsDir = !1; +} else { +if (this.emitterMode !== m.RADIUS) { +cc.warnID(6009); +return !1; +} +this.startRadius = parseFloat(t.maxRadius || 0); +this.startRadiusVar = parseFloat(t.maxRadiusVariance || 0); +this.endRadius = parseFloat(t.minRadius || 0); +this.endRadiusVar = parseFloat(t.minRadiusVariance || 0); +this.rotatePerS = parseFloat(t.rotatePerSecond || 0); +this.rotatePerSVar = parseFloat(t.rotatePerSecondVariance || 0); +} +this._initTextureWithDictionary(t); +return !0; +}, +_onTextureLoaded: function() { +this._texture = this._renderSpriteFrame.getTexture(); +this._simulator.updateUVs(!0); +this._activateMaterial(); +}, +_applySpriteFrame: function(t) { +t && t.off && t.off("load", this._onTextureLoaded, this); +var e = this._renderSpriteFrame = this._renderSpriteFrame || this._spriteFrame; +if (e) if (e.textureLoaded()) this._onTextureLoaded(null); else { +e.once("load", this._onTextureLoaded, this); +e.ensureLoadTexture(); +} +}, +_activateMaterial: function() { +if (this._texture && this._texture.loaded) { +this._ia || y._assembler.createIA(this); +var t = this.sharedMaterials[0]; +(t = t ? _.getInstantiatedMaterial(t, this) : _.getInstantiatedBuiltinMaterial("2d-sprite", this)).define("_USE_MODEL", this._positionType !== p.FREE); +t.setProperty("texture", this._texture); +this.setMaterial(0, t); +this.markForCustomIARender(!0); +} else { +this.markForCustomIARender(!1); +this._renderSpriteFrame && this._applySpriteFrame(); +} +}, +_finishedSimulation: function() { +0; +this.resetSystem(); +this.stopSystem(); +this.disableRender(); +this.autoRemoveOnFinish && this._stopped && this.node.destroy(); +} +}); +cc.ParticleSystem = e.exports = y; +}), { +"../compression/ZipUtils": 22, +"../core/assets/material/CCMaterial": 75, +"../core/components/CCRenderComponent": 106, +"../core/platform/CCMacro": 206, +"../core/renderer/render-flow": 245, +"../core/utils/blend-func": 289, +"../core/utils/texture-util": 304, +"./CCPNGReader": 329, +"./CCParticleAsset": 330, +"./CCTIFFReader": 332, +"./particle-simulator": 334, +"fire-url": void 0 +} ], +332: [ (function(t, e, i) { +"use strict"; +var n = t("../core/CCDebug"), r = { +_littleEndian: !1, +_tiffData: null, +_fileDirectories: [], +getUint8: function(t) { +return this._tiffData[t]; +}, +getUint16: function(t) { +return this._littleEndian ? this._tiffData[t + 1] << 8 | this._tiffData[t] : this._tiffData[t] << 8 | this._tiffData[t + 1]; +}, +getUint32: function(t) { +var e = this._tiffData; +return this._littleEndian ? e[t + 3] << 24 | e[t + 2] << 16 | e[t + 1] << 8 | e[t] : e[t] << 24 | e[t + 1] << 16 | e[t + 2] << 8 | e[t + 3]; +}, +checkLittleEndian: function() { +var t = this.getUint16(0); +if (18761 === t) this.littleEndian = !0; else { +if (19789 !== t) { +console.log(t); +throw TypeError(n.getError(6019)); +} +this.littleEndian = !1; +} +return this.littleEndian; +}, +hasTowel: function() { +if (42 !== this.getUint16(2)) throw RangeError(n.getError(6020)); +return !0; +}, +getFieldTypeName: function(t) { +var e = this.fieldTypeNames; +return t in e ? e[t] : null; +}, +getFieldTagName: function(t) { +var e = this.fieldTagNames; +if (t in e) return e[t]; +cc.logID(6021, t); +return "Tag" + t; +}, +getFieldTypeLength: function(t) { +return -1 !== [ "BYTE", "ASCII", "SBYTE", "UNDEFINED" ].indexOf(t) ? 1 : -1 !== [ "SHORT", "SSHORT" ].indexOf(t) ? 2 : -1 !== [ "LONG", "SLONG", "FLOAT" ].indexOf(t) ? 4 : -1 !== [ "RATIONAL", "SRATIONAL", "DOUBLE" ].indexOf(t) ? 8 : null; +}, +getFieldValues: function(t, e, i, n) { +var r = [], s = this.getFieldTypeLength(e); +if (s * i <= 4) !1 === this.littleEndian ? r.push(n >>> 8 * (4 - s)) : r.push(n); else for (var o = 0; o < i; o++) { +var a = s * o; +if (s >= 8) if (-1 !== [ "RATIONAL", "SRATIONAL" ].indexOf(e)) { +r.push(this.getUint32(n + a)); +r.push(this.getUint32(n + a + 4)); +} else cc.logID(8e3); else r.push(this.getBytes(s, n + a)); +} +"ASCII" === e && r.forEach((function(t, e, i) { +i[e] = String.fromCharCode(t); +})); +return r; +}, +getBytes: function(t, e) { +if (t <= 0) cc.logID(8001); else { +if (t <= 1) return this.getUint8(e); +if (t <= 2) return this.getUint16(e); +if (t <= 3) return this.getUint32(e) >>> 8; +if (t <= 4) return this.getUint32(e); +cc.logID(8002); +} +}, +getBits: function(t, e, i) { +i = i || 0; +var n, r, s = e + Math.floor(i / 8), o = i + t, a = 32 - t; +if (o <= 0) cc.logID(6023); else if (o <= 8) { +n = 24 + i; +r = this.getUint8(s); +} else if (o <= 16) { +n = 16 + i; +r = this.getUint16(s); +} else if (o <= 32) { +n = i; +r = this.getUint32(s); +} else cc.logID(6022); +return { +bits: r << n >>> a, +byteOffset: s + Math.floor(o / 8), +bitOffset: o % 8 +}; +}, +parseFileDirectory: function(t) { +for (var e = this.getUint16(t), i = [], n = t + 2, r = 0; r < e; n += 12, r++) { +var s = this.getUint16(n), o = this.getUint16(n + 2), a = this.getUint32(n + 4), c = this.getUint32(n + 8), l = this.getFieldTagName(s), h = this.getFieldTypeName(o), u = this.getFieldValues(l, h, a, c); +i[l] = { +type: h, +values: u +}; +} +this._fileDirectories.push(i); +var _ = this.getUint32(n); +0 !== _ && this.parseFileDirectory(_); +}, +clampColorSample: function(t, e) { +var i = Math.pow(2, 8 - e); +return Math.floor(t * i + (i - 1)); +}, +parseTIFF: function(t, e) { +e = e || document.createElement("canvas"); +this._tiffData = t; +this.canvas = e; +this.checkLittleEndian(); +if (this.hasTowel()) { +var i = this.getUint32(4); +this._fileDirectories.length = 0; +this.parseFileDirectory(i); +var r = this._fileDirectories[0], s = r.ImageWidth.values[0], o = r.ImageLength.values[0]; +this.canvas.width = s; +this.canvas.height = o; +var a = [], c = r.Compression ? r.Compression.values[0] : 1, l = r.SamplesPerPixel.values[0], h = [], u = 0, _ = !1; +r.BitsPerSample.values.forEach((function(t, e, i) { +h[e] = { +bitsPerSample: t, +hasBytesPerSample: !1, +bytesPerSample: void 0 +}; +if (t % 8 == 0) { +h[e].hasBytesPerSample = !0; +h[e].bytesPerSample = t / 8; +} +u += t; +}), this); +if (u % 8 == 0) { +_ = !0; +var f = u / 8; +} +var d = r.StripOffsets.values, m = d.length; +if (r.StripByteCounts) var p = r.StripByteCounts.values; else { +cc.logID(8003); +if (1 !== m) throw Error(n.getError(6024)); +p = [ Math.ceil(s * o * u / 8) ]; +} +for (var v = 0; v < m; v++) { +var y = d[v]; +a[v] = []; +for (var g = p[v], x = 0, C = 0, b = 1, A = !0, S = [], w = 0, T = 0, E = 0; x < g; x += b) switch (c) { +case 1: +var M = 0; +for (S = []; M < l; M++) { +if (!h[M].hasBytesPerSample) { +var B = this.getBits(h[M].bitsPerSample, y + x, C); +S.push(B.bits); +x = B.byteOffset - y; +C = B.bitOffset; +throw RangeError(n.getError(6025)); +} +var D = h[M].bytesPerSample * M; +S.push(this.getBytes(h[M].bytesPerSample, y + x + D)); +} +a[v].push(S); +if (!_) { +b = 0; +throw RangeError(n.getError(6026)); +} +b = f; +break; + +case 2: +case 3: +case 4: +case 5: +case 6: +case 7: +break; + +case 32773: +if (A) { +A = !1; +var I = 1, P = 1, R = this.getInt8(y + x); +R >= 0 && R <= 127 ? I = R + 1 : R >= -127 && R <= -1 ? P = 1 - R : A = !0; +} else { +var L = this.getUint8(y + x); +for (M = 0; M < P; M++) { +if (!h[T].hasBytesPerSample) throw RangeError(n.getError(6025)); +E = E << 8 * w | L; +if (++w === h[T].bytesPerSample) { +S.push(E); +E = w = 0; +T++; +} +if (T === l) { +a[v].push(S); +S = []; +T = 0; +} +} +0 === --I && (A = !0); +} +b = 1; +} +} +if (e.getContext) { +var F = this.canvas.getContext("2d"); +F.fillStyle = "rgba(255, 255, 255, 0)"; +var O = r.RowsPerStrip ? r.RowsPerStrip.values[0] : o, V = a.length, N = o % O, k = 0 === N ? O : N, z = O, G = 0, U = r.PhotometricInterpretation.values[0], j = [], W = 0; +r.ExtraSamples && (W = (j = r.ExtraSamples.values).length); +if (r.ColorMap) var H = r.ColorMap.values, q = Math.pow(2, h[0].bitsPerSample); +for (v = 0; v < V; v++) { +v + 1 === V && (z = k); +for (var X = a[v].length, Y = G * v, J = 0, Z = 0; Z < X; J++) for (var K = 0; K < s; K++, +Z++) { +var Q = a[v][Z], $ = 0, tt = 0, et = 0, it = 1; +if (W > 0) for (var nt = 0; nt < W; nt++) if (1 === j[nt] || 2 === j[nt]) { +it = Q[3 + nt] / 256; +break; +} +switch (U) { +case 0: +if (h[0].hasBytesPerSample) var rt = Math.pow(16, 2 * h[0].bytesPerSample); +Q.forEach((function(t, e, i) { +i[e] = rt - t; +})); + +case 1: +$ = tt = et = this.clampColorSample(Q[0], h[0].bitsPerSample); +break; + +case 2: +$ = this.clampColorSample(Q[0], h[0].bitsPerSample); +tt = this.clampColorSample(Q[1], h[1].bitsPerSample); +et = this.clampColorSample(Q[2], h[2].bitsPerSample); +break; + +case 3: +if (void 0 === H) throw Error(n.getError(6027)); +var st = Q[0]; +$ = this.clampColorSample(H[st], 16); +tt = this.clampColorSample(H[q + st], 16); +et = this.clampColorSample(H[2 * q + st], 16); +break; + +default: +throw RangeError(n.getError(6028, U)); +} +F.fillStyle = "rgba(" + $ + ", " + tt + ", " + et + ", " + it + ")"; +F.fillRect(K, Y + J, 1, 1); +} +G = z; +} +} +return this.canvas; +} +}, +fieldTagNames: { +315: "Artist", +258: "BitsPerSample", +265: "CellLength", +264: "CellWidth", +320: "ColorMap", +259: "Compression", +33432: "Copyright", +306: "DateTime", +338: "ExtraSamples", +266: "FillOrder", +289: "FreeByteCounts", +288: "FreeOffsets", +291: "GrayResponseCurve", +290: "GrayResponseUnit", +316: "HostComputer", +270: "ImageDescription", +257: "ImageLength", +256: "ImageWidth", +271: "Make", +281: "MaxSampleValue", +280: "MinSampleValue", +272: "Model", +254: "NewSubfileType", +274: "Orientation", +262: "PhotometricInterpretation", +284: "PlanarConfiguration", +296: "ResolutionUnit", +278: "RowsPerStrip", +277: "SamplesPerPixel", +305: "Software", +279: "StripByteCounts", +273: "StripOffsets", +255: "SubfileType", +263: "Threshholding", +282: "XResolution", +283: "YResolution", +326: "BadFaxLines", +327: "CleanFaxData", +343: "ClipPath", +328: "ConsecutiveBadFaxLines", +433: "Decode", +434: "DefaultImageColor", +269: "DocumentName", +336: "DotRange", +321: "HalftoneHints", +346: "Indexed", +347: "JPEGTables", +285: "PageName", +297: "PageNumber", +317: "Predictor", +319: "PrimaryChromaticities", +532: "ReferenceBlackWhite", +339: "SampleFormat", +559: "StripRowCounts", +330: "SubIFDs", +292: "T4Options", +293: "T6Options", +325: "TileByteCounts", +323: "TileLength", +324: "TileOffsets", +322: "TileWidth", +301: "TransferFunction", +318: "WhitePoint", +344: "XClipPathUnits", +286: "XPosition", +529: "YCbCrCoefficients", +531: "YCbCrPositioning", +530: "YCbCrSubSampling", +345: "YClipPathUnits", +287: "YPosition", +37378: "ApertureValue", +40961: "ColorSpace", +36868: "DateTimeDigitized", +36867: "DateTimeOriginal", +34665: "Exif IFD", +36864: "ExifVersion", +33434: "ExposureTime", +41728: "FileSource", +37385: "Flash", +40960: "FlashpixVersion", +33437: "FNumber", +42016: "ImageUniqueID", +37384: "LightSource", +37500: "MakerNote", +37377: "ShutterSpeedValue", +37510: "UserComment", +33723: "IPTC", +34675: "ICC Profile", +700: "XMP", +42112: "GDAL_METADATA", +42113: "GDAL_NODATA", +34377: "Photoshop" +}, +fieldTypeNames: { +1: "BYTE", +2: "ASCII", +3: "SHORT", +4: "LONG", +5: "RATIONAL", +6: "SBYTE", +7: "UNDEFINED", +8: "SSHORT", +9: "SLONG", +10: "SRATIONAL", +11: "FLOAT", +12: "DOUBLE" +} +}; +e.exports = r; +}), { +"../core/CCDebug": 49 +} ], +333: [ (function(t, e, i) { +"use strict"; +t("./CCParticleAsset"); +t("./CCParticleSystem"); +t("./particle-simulator"); +t("./particle-system-assembler"); +}), { +"./CCParticleAsset": 330, +"./CCParticleSystem": 331, +"./particle-simulator": 334, +"./particle-system-assembler": 335 +} ], +334: [ (function(t, e, i) { +"use strict"; +var n = t("../core/utils/affine-transform"), r = t("../core/platform/js"), s = t("../core/utils/misc"), o = cc.v2(0, 0), a = n.create(), c = cc.v2(), l = cc.v2(), h = cc.v2(), u = cc.v2(), _ = function() { +this.pos = cc.v2(0, 0); +this.startPos = cc.v2(0, 0); +this.color = cc.color(0, 0, 0, 255); +this.deltaColor = { +r: 0, +g: 0, +b: 0, +a: 255 +}; +this.size = 0; +this.deltaSize = 0; +this.rotation = 0; +this.deltaRotation = 0; +this.timeToLive = 0; +this.drawPos = cc.v2(0, 0); +this.dir = cc.v2(0, 0); +this.radialAccel = 0; +this.tangentialAccel = 0; +this.angle = 0; +this.degreesPerSecond = 0; +this.radius = 0; +this.deltaRadius = 0; +}, f = new r.Pool(function(t) { +t.pos.set(o); +t.startPos.set(o); +t.color._val = 4278190080; +t.deltaColor.r = t.deltaColor.g = t.deltaColor.b = 0; +t.deltaColor.a = 255; +t.size = 0; +t.deltaSize = 0; +t.rotation = 0; +t.deltaRotation = 0; +t.timeToLive = 0; +t.drawPos.set(o); +t.dir.set(o); +t.radialAccel = 0; +t.tangentialAccel = 0; +t.angle = 0; +t.degreesPerSecond = 0; +t.radius = 0; +t.deltaRadius = 0; +}, 1024); +f.get = function() { +return this._get() || new _(); +}; +var d = function(t) { +this.sys = t; +this.particles = []; +this.active = !1; +this.finished = !1; +this.elapsed = 0; +this.emitCounter = 0; +this._uvFilled = 0; +}; +d.prototype.stop = function() { +this.active = !1; +this.elapsed = this.sys.duration; +this.emitCounter = 0; +}; +d.prototype.reset = function() { +this.active = !0; +this.elapsed = 0; +this.emitCounter = 0; +this.finished = !1; +for (var t = this.particles, e = 0; e < t.length; ++e) f.put(t[e]); +t.length = 0; +}; +d.prototype.emitParticle = function(t) { +var e = this.sys, i = s.clampf, n = f.get(); +this.particles.push(n); +n.timeToLive = e.life + e.lifeVar * (Math.random() - .5) * 2; +var r = n.timeToLive = Math.max(0, n.timeToLive); +n.pos.x = e.sourcePos.x + e.posVar.x * (Math.random() - .5) * 2; +n.pos.y = e.sourcePos.y + e.posVar.y * (Math.random() - .5) * 2; +var o, a, c, l, h = e._startColor, u = e._startColorVar, _ = e._endColor, d = e._endColorVar; +n.color.r = o = i(h.r + u.r * (Math.random() - .5) * 2, 0, 255); +n.color.g = a = i(h.g + u.g * (Math.random() - .5) * 2, 0, 255); +n.color.b = c = i(h.b + u.b * (Math.random() - .5) * 2, 0, 255); +n.color.a = l = i(h.a + u.a * (Math.random() - .5) * 2, 0, 255); +n.deltaColor.r = (i(_.r + d.r * (Math.random() - .5) * 2, 0, 255) - o) / r; +n.deltaColor.g = (i(_.g + d.g * (Math.random() - .5) * 2, 0, 255) - a) / r; +n.deltaColor.b = (i(_.b + d.b * (Math.random() - .5) * 2, 0, 255) - c) / r; +n.deltaColor.a = (i(_.a + d.a * (Math.random() - .5) * 2, 0, 255) - l) / r; +var p = e.startSize + e.startSizeVar * (Math.random() - .5) * 2; +p = Math.max(0, p); +n.size = p; +if (e.endSize === cc.ParticleSystem.START_SIZE_EQUAL_TO_END_SIZE) n.deltaSize = 0; else { +var v = e.endSize + e.endSizeVar * (Math.random() - .5) * 2; +v = Math.max(0, v); +n.deltaSize = (v - p) / r; +} +var y = e.startSpin + e.startSpinVar * (Math.random() - .5) * 2, g = e.endSpin + e.endSpinVar * (Math.random() - .5) * 2; +n.rotation = y; +n.deltaRotation = (g - y) / r; +n.startPos.x = t.x; +n.startPos.y = t.y; +var x = m(e.node), C = e.positionType === cc.ParticleSystem.PositionType.FREE ? e.angle + x : e.angle, b = s.degreesToRadians(C + e.angleVar * (Math.random() - .5) * 2); +if (e.emitterMode === cc.ParticleSystem.EmitterMode.GRAVITY) { +var A = e.speed + e.speedVar * (Math.random() - .5) * 2; +n.dir.x = Math.cos(b); +n.dir.y = Math.sin(b); +n.dir.mulSelf(A); +n.radialAccel = e.radialAccel + e.radialAccelVar * (Math.random() - .5) * 2; +n.tangentialAccel = e.tangentialAccel + e.tangentialAccelVar * (Math.random() - .5) * 2; +e.rotationIsDir && (n.rotation = -s.radiansToDegrees(Math.atan2(n.dir.y, n.dir.x))); +} else { +var S = e.startRadius + e.startRadiusVar * (Math.random() - .5) * 2, w = e.endRadius + e.endRadiusVar * (Math.random() - .5) * 2; +n.radius = S; +n.deltaRadius = e.endRadius === cc.ParticleSystem.START_RADIUS_EQUAL_TO_END_RADIUS ? 0 : (w - S) / r; +n.angle = b; +n.degreesPerSecond = s.degreesToRadians(e.rotatePerS + e.rotatePerSVar * (Math.random() - .5) * 2); +} +}; +function m(t) { +for (var e = 0, i = t; i; ) { +e += i.angle; +i = i.parent; +} +return e; +} +d.prototype.updateUVs = function(t) { +var e = this.particles.length; +if (this.sys._buffer && this.sys._renderSpriteFrame) { +for (var i = 4 * this.sys._vertexFormat._bytes / 4, n = this.sys._buffer._vData, r = this.sys._renderSpriteFrame.uv, s = t ? 0 : this._uvFilled; s < e; s++) { +var o = s * i; +n[o + 2] = r[0]; +n[o + 3] = r[1]; +n[o + 7] = r[2]; +n[o + 8] = r[3]; +n[o + 12] = r[4]; +n[o + 13] = r[5]; +n[o + 17] = r[6]; +n[o + 18] = r[7]; +} +this._uvFilled = e; +} +}; +d.prototype.updateParticleBuffer = function(t, e, i, n) { +var r = i._vData, o = i._uintVData, a = e.x, c = e.y, l = t.size / 2; +if (t.rotation) { +var h = -l, u = -l, _ = l, f = l, d = -s.degreesToRadians(t.rotation), m = Math.cos(d), p = Math.sin(d); +r[n] = h * m - u * p + a; +r[n + 1] = h * p + u * m + c; +r[n + 5] = _ * m - u * p + a; +r[n + 6] = _ * p + u * m + c; +r[n + 10] = h * m - f * p + a; +r[n + 11] = h * p + f * m + c; +r[n + 15] = _ * m - f * p + a; +r[n + 16] = _ * p + f * m + c; +} else { +r[n] = a - l; +r[n + 1] = c - l; +r[n + 5] = a + l; +r[n + 6] = c - l; +r[n + 10] = a - l; +r[n + 11] = c + l; +r[n + 15] = a + l; +r[n + 16] = c + l; +} +o[n + 4] = t.color._val; +o[n + 9] = t.color._val; +o[n + 14] = t.color._val; +o[n + 19] = t.color._val; +}; +d.prototype.step = function(t) { +var e = this.sys, i = e.node, r = this.particles, _ = 4 * e._vertexFormat._bytes / 4; +i._updateWorldMatrix(); +a = n.identity(); +if (e.positionType === cc.ParticleSystem.PositionType.FREE) { +a.tx = i._worldMatrix.m12; +a.ty = i._worldMatrix.m13; +n.transformVec2(c, o, a); +} else if (e.positionType === cc.ParticleSystem.PositionType.RELATIVE) { +var d = s.degreesToRadians(-i.angle), m = Math.cos(d), p = Math.sin(d); +a = n.create(m, -p, p, m, 0, 0); +c.x = i._position.x; +c.y = i._position.y; +} +n.invert(a, a); +var v = a; +if (this.active && e.emissionRate) { +var y = 1 / e.emissionRate; +r.length < e.totalParticles && (this.emitCounter += t); +for (;r.length < e.totalParticles && this.emitCounter > y; ) { +this.emitParticle(c); +this.emitCounter -= y; +} +this.elapsed += t; +-1 !== e.duration && e.duration < this.elapsed && e.stopSystem(); +} +var g = e._buffer, x = r.length; +g.reset(); +g.request(4 * x, 6 * x); +x > this._uvFilled && this.updateUVs(); +for (var C = 0; C < r.length; ) { +l.x = l.y = h.x = h.y = u.x = u.y = 0; +var b = r[C]; +b.timeToLive -= t; +if (b.timeToLive > 0) { +if (e.emitterMode === cc.ParticleSystem.EmitterMode.GRAVITY) { +var A = u, S = l, w = h; +if (b.pos.x || b.pos.y) { +S.set(b.pos); +S.normalizeSelf(); +} +w.set(S); +S.mulSelf(b.radialAccel); +var T = w.x; +w.x = -w.y; +w.y = T; +w.mulSelf(b.tangentialAccel); +A.set(S); +A.addSelf(w); +A.addSelf(e.gravity); +A.mulSelf(t); +b.dir.addSelf(A); +A.set(b.dir); +A.mulSelf(t); +b.pos.addSelf(A); +} else { +b.angle += b.degreesPerSecond * t; +b.radius += b.deltaRadius * t; +b.pos.x = -Math.cos(b.angle) * b.radius; +b.pos.y = -Math.sin(b.angle) * b.radius; +} +b.color.r += b.deltaColor.r * t; +b.color.g += b.deltaColor.g * t; +b.color.b += b.deltaColor.b * t; +b.color.a += b.deltaColor.a * t; +b.size += b.deltaSize * t; +b.size < 0 && (b.size = 0); +b.rotation += b.deltaRotation * t; +var E = l, M = h; +if (e.positionType === cc.ParticleSystem.PositionType.FREE) { +M.set(b.startPos); +M.negSelf(); +E.set(b.pos); +E.subSelf(M); +} else if (e.positionType === cc.ParticleSystem.PositionType.RELATIVE) { +var B = u; +n.transformVec2(M, c, v); +n.transformVec2(B, b.startPos, v); +M.subSelf(B); +E.set(b.pos); +E.subSelf(M); +} else E.set(b.pos); +var D = _ * C; +this.updateParticleBuffer(b, E, g, D); +++C; +} else { +var I = r[C]; +C !== r.length - 1 && (r[C] = r[r.length - 1]); +f.put(I); +r.length--; +} +} +if (r.length > 0) { +g.uploadData(); +e._ia._count = 6 * r.length; +} else if (!this.active) { +this.finished = !0; +e._finishedSimulation(); +} +}; +e.exports = d; +}), { +"../core/platform/js": 221, +"../core/utils/affine-transform": 286, +"../core/utils/misc": 297 +} ], +335: [ (function(t, e, i) { +"use strict"; +var n = s(t("../renderer/render-data/ia-render-data")), r = s(t("../renderer/core/input-assembler")); +function s(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var o = t("./CCParticleSystem"), a = t("../core/renderer/"), c = t("../core/renderer/webgl/vertex-format").vfmtPosUvColor, l = t("../core/renderer/webgl/quad-buffer"), h = { +createIA: function(t) { +a.device; +t._vertexFormat = c; +t._buffer = new l(a._handle, c); +t._ia = new r.default(); +t._ia._vertexBuffer = t._buffer._vb; +t._ia._indexBuffer = t._buffer._ib; +t._ia._start = 0; +t._ia._count = 0; +}, +updateRenderData: function(t) { +t._renderData || (t._renderData = new n.default()); +t._renderData.ia = t._ia; +t._renderData.material = t.sharedMaterials[0]; +}, +renderIA: function(t, e) { +e._flushIA(t._renderData); +} +}; +o._assembler = h; +e.exports = h; +}), { +"../core/renderer/": 244, +"../core/renderer/webgl/quad-buffer": 282, +"../core/renderer/webgl/vertex-format": 284, +"../renderer/core/input-assembler": 339, +"../renderer/render-data/ia-render-data": 368, +"./CCParticleSystem": 331 +} ], +336: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = 0, r = {}; +i.default = { +addStage: function(t) { +if (void 0 === r[t]) { +var e = 1 << n; +r[t] = e; +n += 1; +} +}, +stageID: function(t) { +var e = r[t]; +return void 0 === e ? -1 : e; +}, +stageIDs: function(t) { +for (var e = 0, i = 0; i < t.length; ++i) { +var n = r[t[i]]; +void 0 !== n && (e |= n); +} +return e; +} +}; +e.exports = i.default; +}), {} ], +337: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n, r, s = t("../memop"), o = u(t("../enums")), a = t("../../core/vmath"), c = u(t("./program-lib")), l = u(t("./view")), h = u(t("../gfx")); +function u(t) { +return t && t.__esModule ? t : { +default: t +}; +} +function _(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var f = a.mat3.create(), d = a.mat4.create(), m = new s.RecyclePool(function() { +return { +stage: null, +items: null +}; +}, 8), p = new s.RecyclePool(function() { +return new Float32Array(2); +}, 8), v = new s.RecyclePool(function() { +return new Float32Array(3); +}, 8), y = new s.RecyclePool(function() { +return new Float32Array(4); +}, 8), g = new s.RecyclePool(function() { +return new Float32Array(9); +}, 8), x = new s.RecyclePool(function() { +return new Float32Array(16); +}, 8), C = new s.RecyclePool(function() { +return new Float32Array(64); +}, 8), b = new s.RecyclePool(function() { +return new Int32Array(2); +}, 8), A = new s.RecyclePool(function() { +return new Int32Array(3); +}, 8), S = new s.RecyclePool(function() { +return new Int32Array(4); +}, 8), w = new s.RecyclePool(function() { +return new Int32Array(64); +}, 8), T = ((n = {})[o.default.PARAM_INT] = function(t) { +return t; +}, n[o.default.PARAM_INT2] = function(t) { +return a.vec2.array(b.add(), t); +}, n[o.default.PARAM_INT3] = function(t) { +return a.vec3.array(A.add(), t); +}, n[o.default.PARAM_INT4] = function(t) { +return a.vec4.array(S.add(), t); +}, n[o.default.PARAM_FLOAT] = function(t) { +return t; +}, n[o.default.PARAM_FLOAT2] = function(t) { +return a.vec2.array(p.add(), t); +}, n[o.default.PARAM_FLOAT3] = function(t) { +return a.vec3.array(v.add(), t); +}, n[o.default.PARAM_FLOAT4] = function(t) { +return a.vec4.array(y.add(), t); +}, n[o.default.PARAM_COLOR3] = function(t) { +return a.color3.array(v.add(), t); +}, n[o.default.PARAM_COLOR4] = function(t) { +return a.color4.array(y.add(), t); +}, n[o.default.PARAM_MAT2] = function(t) { +return a.mat2.array(y.add(), t); +}, n[o.default.PARAM_MAT3] = function(t) { +return a.mat3.array(g.add(), t); +}, n[o.default.PARAM_MAT4] = function(t) { +return a.mat4.array(x.add(), t); +}, n), E = ((r = {})[o.default.PARAM_INT] = { +func: function(t) { +for (var e = w.add(), i = 0; i < t.length; ++i) e[i] = t[i]; +return e; +}, +size: 1 +}, r[o.default.PARAM_INT2] = { +func: function(t) { +for (var e = w.add(), i = 0; i < t.length; ++i) { +e[2 * i] = t[i].x; +e[2 * i + 1] = t[i].y; +} +return e; +}, +size: 2 +}, r[o.default.PARAM_INT3] = { +func: void 0, +size: 3 +}, r[o.default.PARAM_INT4] = { +func: function(t) { +for (var e = w.add(), i = 0; i < t.length; ++i) { +var n = t[i]; +e[4 * i] = n.x; +e[4 * i + 1] = n.y; +e[4 * i + 2] = n.z; +e[4 * i + 3] = n.w; +} +return e; +}, +size: 4 +}, r[o.default.PARAM_FLOAT] = { +func: function(t) { +for (var e = C.add(), i = 0; i < t.length; ++i) e[i] = t[i]; +return e; +}, +size: 1 +}, r[o.default.PARAM_FLOAT2] = { +func: function(t) { +for (var e = C.add(), i = 0; i < t.length; ++i) { +e[2 * i] = t[i].x; +e[2 * i + 1] = t[i].y; +} +return e; +}, +size: 2 +}, r[o.default.PARAM_FLOAT3] = { +func: void 0, +size: 3 +}, r[o.default.PARAM_FLOAT4] = { +func: function(t) { +for (var e = C.add(), i = 0; i < t.length; ++i) { +var n = t[i]; +e[4 * i] = n.x; +e[4 * i + 1] = n.y; +e[4 * i + 2] = n.z; +e[4 * i + 3] = n.w; +} +return e; +}, +size: 4 +}, r[o.default.PARAM_COLOR3] = { +func: void 0, +size: 3 +}, r[o.default.PARAM_COLOR4] = { +func: function(t) { +for (var e = C.add(), i = 0; i < t.length; ++i) { +var n = t[i]; +e[4 * i] = n.r; +e[4 * i + 1] = n.g; +e[4 * i + 2] = n.b; +e[4 * i + 3] = n.a; +} +return e; +}, +size: 4 +}, r[o.default.PARAM_MAT2] = { +func: function(t) { +for (var e = C.add(), i = 0; i < t.length; ++i) { +var n = t[i]; +e[4 * i] = n.m00; +e[4 * i + 1] = n.m01; +e[4 * i + 2] = n.m02; +e[4 * i + 3] = n.m03; +} +return e; +}, +size: 4 +}, r[o.default.PARAM_MAT3] = { +func: void 0, +size: 9 +}, r[o.default.PARAM_MAT4] = { +func: function(t) { +for (var e = C.add(), i = 0; i < t.length; ++i) { +var n = t[i]; +e[16 * i] = n.m00; +e[16 * i + 1] = n.m01; +e[16 * i + 2] = n.m02; +e[16 * i + 3] = n.m03; +e[16 * i + 4] = n.m04; +e[16 * i + 5] = n.m05; +e[16 * i + 6] = n.m06; +e[16 * i + 7] = n.m07; +e[16 * i + 8] = n.m08; +e[16 * i + 9] = n.m09; +e[16 * i + 10] = n.m10; +e[16 * i + 11] = n.m11; +e[16 * i + 12] = n.m12; +e[16 * i + 13] = n.m13; +e[16 * i + 14] = n.m14; +e[16 * i + 15] = n.m15; +} +return e; +}, +size: 16 +}, r), M = (function() { +function t(e, i) { +var n; +_(this, t); +this._device = e; +this._programLib = new c.default(e); +this._opts = i; +this._type2defaultValue = ((n = {})[o.default.PARAM_INT] = 0, n[o.default.PARAM_INT2] = a.vec2.create(0, 0), +n[o.default.PARAM_INT3] = a.vec3.create(0, 0, 0), n[o.default.PARAM_INT4] = a.vec4.create(0, 0, 0, 0), +n[o.default.PARAM_FLOAT] = 0, n[o.default.PARAM_FLOAT2] = a.vec2.create(0, 0), n[o.default.PARAM_FLOAT3] = a.vec3.create(0, 0, 0), +n[o.default.PARAM_FLOAT4] = a.vec4.create(0, 0, 0, 0), n[o.default.PARAM_COLOR3] = a.color3.create(0, 0, 0), +n[o.default.PARAM_COLOR4] = a.color4.create(0, 0, 0, 1), n[o.default.PARAM_MAT2] = a.mat2.create(), +n[o.default.PARAM_MAT3] = a.mat3.create(), n[o.default.PARAM_MAT4] = a.mat4.create(), +n[o.default.PARAM_TEXTURE_2D] = i.defaultTexture, n[o.default.PARAM_TEXTURE_CUBE] = i.defaultTextureCube, +n); +this._stage2fn = {}; +this._usedTextureUnits = 0; +this._viewPools = new s.RecyclePool(function() { +return new l.default(); +}, 8); +this._drawItemsPools = new s.RecyclePool(function() { +return { +model: null, +node: null, +ia: null, +effect: null, +defines: null, +uniforms: null +}; +}, 100); +this._stageItemsPools = new s.RecyclePool(function() { +return new s.RecyclePool(function() { +return { +model: null, +node: null, +ia: null, +effect: null, +defines: null, +technique: null, +sortKey: -1, +uniforms: null +}; +}, 100); +}, 16); +} +t.prototype._resetTextuerUnit = function() { +this._usedTextureUnits = 0; +}; +t.prototype._allocTextureUnit = function() { +var t = this._device, e = this._usedTextureUnits; +e >= t._caps.maxTextureUnits && console.warn("Trying to use " + e + " texture units while this GPU supports only " + t._caps.maxTextureUnits); +this._usedTextureUnits += 1; +return e; +}; +t.prototype._registerStage = function(t, e) { +this._stage2fn[t] = e; +}; +t.prototype.clear = function() { +this._programLib.clear(); +this.reset(); +}; +t.prototype.reset = function() { +this._viewPools.reset(); +this._stageItemsPools.reset(); +}; +t.prototype._requestView = function() { +return this._viewPools.add(); +}; +t.prototype._render = function(t, e) { +var i = this._device; +i.setFrameBuffer(t._framebuffer); +i.setViewport(t._rect.x, t._rect.y, t._rect.w, t._rect.h); +var n = {}; +t._clearFlags & o.default.CLEAR_COLOR && (n.color = [ t._color.r, t._color.g, t._color.b, t._color.a ]); +t._clearFlags & o.default.CLEAR_DEPTH && (n.depth = t._depth); +t._clearFlags & o.default.CLEAR_STENCIL && (n.stencil = t._stencil); +i.clear(n); +this._drawItemsPools.reset(); +for (var r = 0; r < e._models.length; ++r) { +var s = e._models.data[r]; +if (0 != (s._cullingMask & t._cullingMask)) { +var a = this._drawItemsPools.add(); +s.extractDrawItem(a); +} +} +m.reset(); +for (var c = 0; c < t._stages.length; ++c) { +var l = t._stages[c], h = this._stageItemsPools.add(); +h.reset(); +for (var u = 0; u < this._drawItemsPools.length; ++u) { +var _ = this._drawItemsPools.data[u], f = _.effect.getTechnique(l); +if (f) { +var d = h.add(); +d.model = _.model; +d.node = _.node; +d.ia = _.ia; +d.effect = _.effect; +d.defines = _.defines; +d.technique = f; +d.sortKey = -1; +d.uniforms = _.uniforms; +} +} +var p = m.add(); +p.stage = l; +p.items = h; +} +for (var v = 0; v < m.length; ++v) { +var y = m.data[v]; +(0, this._stage2fn[y.stage])(t, y.items); +} +}; +t.prototype._setProperty = function(t) { +var e = this._device, i = t.value; +void 0 === i && (i = t.val); +void 0 === i && (i = this._type2defaultValue[t.type]); +if (void 0 !== i) if (t.type === o.default.PARAM_TEXTURE_2D || t.type === o.default.PARAM_TEXTURE_CUBE) if (void 0 !== t.size) { +if (t.size !== i.length) { +console.error("The length of texture array (" + i.length + ") is not corrent(expect " + t.size + ")."); +return; +} +for (var n = w.add(), r = 0; r < i.length; ++r) n[r] = this._allocTextureUnit(); +e.setTextureArray(t.name, i, n); +} else e.setTexture(t.name, i, this._allocTextureUnit()); else { +var s = void 0; +if (i instanceof Float32Array || i instanceof Int32Array) { +e.setUniformDirectly(t.name, i); +return; +} +if (void 0 !== t.size) { +var a = E[t.type]; +if (void 0 === a.func) { +console.error("Uniform array of color3/int3/float3/mat3 can not be supportted!"); +return; +} +if (t.size * a.size > 64) { +console.error("Uniform array is too long!"); +return; +} +s = a.func(i); +} else { +s = (0, T[t.type])(i); +} +e.setUniform(t.name, s); +} else console.warn("Failed to set technique property " + t.name + ", value not found."); +}; +t.prototype._draw = function(t) { +var e = this._device, i = this._programLib, n = t.node, r = t.ia, s = t.uniforms, o = t.technique, c = t.defines, l = t.effect; +p.reset(); +v.reset(); +y.reset(); +g.reset(); +x.reset(); +C.reset(); +b.reset(); +A.reset(); +S.reset(); +w.reset(); +n.getWorldMatrix(d); +e.setUniform("cc_matWorld", a.mat4.array(x.add(), d)); +var u = a.mat3.invert(f, a.mat3.fromMat4(f, d)); +if (u) { +a.mat3.transpose(f, u); +e.setUniform("cc_matWorldIT", a.mat3.array(g.add(), f)); +} +for (var _ = 0; _ < s.length; _++) { +var m = s[_]; +for (var T in m) this._setProperty(m[T]); +} +for (var E = 0; E < o._passes.length; ++E) { +var M = o._passes[E], B = r.count; +r._vertexBuffer && e.setVertexBuffer(0, r._vertexBuffer); +r._indexBuffer && e.setIndexBuffer(r._indexBuffer); +e.setPrimitiveType(r._primitiveType); +var D = i.getProgram(M._programName, c, l._name); +e.setProgram(D); +e.setCullMode(M._cullMode); +if (M._blend) { +e.enableBlend(); +e.setBlendFuncSep(M._blendSrc, M._blendDst, M._blendSrcAlpha, M._blendDstAlpha); +e.setBlendEqSep(M._blendEq, M._blendAlphaEq); +e.setBlendColor32(M._blendColor); +} +if (M._depthTest) { +e.enableDepthTest(); +e.setDepthFunc(M._depthFunc); +} +M._depthWrite && e.enableDepthWrite(); +e.setStencilTest(M._stencilTest); +if (M._stencilTest === h.default.STENCIL_ENABLE) { +e.setStencilFuncFront(M._stencilFuncFront, M._stencilRefFront, M._stencilMaskFront); +e.setStencilOpFront(M._stencilFailOpFront, M._stencilZFailOpFront, M._stencilZPassOpFront, M._stencilWriteMaskFront); +e.setStencilFuncBack(M._stencilFuncBack, M._stencilRefBack, M._stencilMaskBack); +e.setStencilOpBack(M._stencilFailOpBack, M._stencilZFailOpBack, M._stencilZPassOpBack, M._stencilWriteMaskBack); +} +e.draw(r._start, B); +this._resetTextuerUnit(); +} +}; +return t; +})(); +i.default = M; +e.exports = i.default; +}), { +"../../core/vmath": 317, +"../enums": 344, +"../gfx": 349, +"../memop": 361, +"./program-lib": 341, +"./view": 343 +} ], +338: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = a(t("../config")), r = a(t("../core/pass")), s = a(t("../core/technique")), o = t("../types"); +function a(t) { +return t && t.__esModule ? t : { +default: t +}; +} +function c(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var l = function(t) { +return o.enums2ctor[t] || o.enums2ctor.default; +}, h = (function() { +function t(e, i) { +var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : []; +c(this, t); +this._name = e; +this._techniques = i; +this._properties = n; +this._defines = r; +this._dependencies = s; +} +t.prototype.clear = function() { +this._techniques.length = 0; +this._properties = {}; +this._defines = {}; +}; +t.prototype.getDefaultTechnique = function() { +return this._techniques[0]; +}; +t.prototype.getTechnique = function(t) { +var e = n.default.stageID(t); +if (-1 === e) return null; +for (var i = 0; i < this._techniques.length; ++i) { +var r = this._techniques[i]; +if (r.stageIDs & e) return r; +} +return null; +}; +t.prototype.getProperty = function(t) { +if (!this._properties[t]) { +cc.warn(this._name + " : Failed to get property " + t + ", property not found."); +return null; +} +return this._properties[t].value; +}; +t.prototype.setProperty = function(t, e) { +this._properties[t] ? this._properties[t].value = e : cc.warn(this._name + " : Failed to set property " + t + ", property not found."); +}; +t.prototype.getDefine = function(t) { +var e = this._defines[t]; +void 0 === e && cc.warn(this._name + " : Failed to get define " + t + ", define not found."); +return e; +}; +t.prototype.define = function(t, e) { +void 0 !== this._defines[t] ? this._defines[t] = e : cc.warn(this._name + " : Failed to set define " + t + ", define not found."); +}; +t.prototype.extractProperties = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; +Object.assign(t, this._properties); +return t; +}; +t.prototype.extractDefines = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; +Object.assign(t, this._defines); +return t; +}; +t.prototype.extractDependencies = function() { +for (var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, e = 0; e < this._dependencies.length; ++e) { +var i = this._dependencies[e]; +t[i.define] = i.extension; +} +return t; +}; +return t; +})(), u = function(t) { +return t.map((function(t) { +return Object.assign({}, t); +})); +}, _ = function(t) { +return o.ctor2default[l(t)]; +}, f = function(t) { +var e = [], i = cc.renderer._forward._programLib; +t.techniques.forEach((function(t) { +t.passes.forEach((function(t) { +e.push(i.getTemplate(t.program)); +})); +})); +return e; +}, d = (function() { +function t(t, e, i) { +return { +type: e, +displayName: t, +instanceType: l(e), +value: _(e)(i) +}; +} +return function(e, i) { +var n = {}; +i.forEach((function(e) { +e.uniforms.forEach((function(e) { +e.property && (n[e.name] = t(e.displayName, e.type, e.value)); +})); +})); +var r = function(r) { +var s = e.properties[r], o = void 0; +if (void 0 !== s.tech && void 0 !== s.pass) { +var a = e.techniques[s.tech].passes[s.pass].program; +o = i.find((function(t) { +return t.name === a; +})).uniforms.find((function(t) { +return t.name === r; +})); +} else for (var c = 0; c < i.length && !(o = i[c].uniforms.find((function(t) { +return t.name === r; +}))); c++) ; +if (!o) { +cc.warn(e.name + " : illegal property: " + r); +return "continue"; +} +n[r] = t(s.displayName || o.displayName, s.type || o.type, s.value || o.value); +}; +for (var s in e.properties) r(s); +return n; +}; +})(); +h.parseEffect = function(t) { +for (var e = t.techniques.length, i = new Array(e), n = 0; n < e; ++n) { +for (var o = t.techniques[n], a = o.passes.length, c = new Array(a), l = 0; l < a; ++l) { +var m = o.passes[l]; +c[l] = new r.default(m.program); +c[l].setDepth(m.depthTest, m.depthWrite, m.depthFunc); +c[l].setCullMode(m.cullMode); +c[l].setBlend(m.blend, m.blendEq, m.blendSrc, m.blendDst, m.blendAlphaEq, m.blendSrcAlpha, m.blendDstAlpha, m.blendColor); +c[l].setStencilFront(m.stencilTest, m.stencilFuncFront, m.stencilRefFront, m.stencilMaskFront, m.stencilFailOpFront, m.stencilZFailOpFront, m.stencilZPassOpFront, m.stencilWriteMaskFront); +c[l].setStencilBack(m.stencilTest, m.stencilFuncBack, m.stencilRefBack, m.stencilMaskBack, m.stencilFailOpBack, m.stencilZFailOpBack, m.stencilZPassOpBack, m.stencilWriteMaskBack); +} +i[n] = new s.default(o.stages, c, o.layer); +} +var p = f(t), v = d(t, p), y = {}, g = {}; +p.forEach((function(t) { +t.uniforms.forEach((function(t) { +var e = t.name, i = y[e] = Object.assign({}, t); +i.value = _(t.type)(t.value); +if (v[e]) { +i.type = v[e].type; +i.value = v[e].value; +} +})); +t.defines.forEach((function(t) { +g[t.name] = _(t.type)(); +})); +})); +var x = p.reduce((function(t, e) { +return t.concat(e.extensions); +}), []); +x = u(x); +return new h(t.name, i, y, g, x); +}; +0; +i.default = h; +cc.Effect = h; +e.exports = i.default; +}), { +"../config": 336, +"../core/pass": 340, +"../core/technique": 342, +"../types": 375 +} ], +339: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../gfx")); +function s(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var o = (function() { +function t(e, i) { +var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : r.default.PT_TRIANGLES; +s(this, t); +this._vertexBuffer = e; +this._indexBuffer = i; +this._primitiveType = n; +this._start = 0; +this._count = -1; +} +n(t, [ { +key: "count", +get: function() { +return -1 !== this._count ? this._count : this._indexBuffer ? this._indexBuffer.count : this._vertexBuffer.count; +} +} ]); +return t; +})(); +i.default = o; +e.exports = i.default; +}), { +"../gfx": 349 +} ], +340: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../gfx")); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t(e) { +r(this, t); +this._programName = e; +this._cullMode = n.default.CULL_BACK; +this._blend = !1; +this._blendEq = n.default.BLEND_FUNC_ADD; +this._blendAlphaEq = n.default.BLEND_FUNC_ADD; +this._blendSrc = n.default.BLEND_SRC_ALPHA; +this._blendDst = n.default.BLEND_ONE_MINUS_SRC_ALPHA; +this._blendSrcAlpha = n.default.BLEND_SRC_ALPHA; +this._blendDstAlpha = n.default.BLEND_ONE_MINUS_SRC_ALPHA; +this._blendColor = 4294967295; +this._depthTest = !1; +this._depthWrite = !1; +this._depthFunc = n.default.DS_FUNC_LESS, this._stencilTest = n.default.STENCIL_INHERIT; +this._stencilFuncFront = n.default.DS_FUNC_ALWAYS; +this._stencilRefFront = 0; +this._stencilMaskFront = 255; +this._stencilFailOpFront = n.default.STENCIL_OP_KEEP; +this._stencilZFailOpFront = n.default.STENCIL_OP_KEEP; +this._stencilZPassOpFront = n.default.STENCIL_OP_KEEP; +this._stencilWriteMaskFront = 255; +this._stencilFuncBack = n.default.DS_FUNC_ALWAYS; +this._stencilRefBack = 0; +this._stencilMaskBack = 255; +this._stencilFailOpBack = n.default.STENCIL_OP_KEEP; +this._stencilZFailOpBack = n.default.STENCIL_OP_KEEP; +this._stencilZPassOpBack = n.default.STENCIL_OP_KEEP; +this._stencilWriteMaskBack = 255; +} +t.prototype.setCullMode = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : n.default.CULL_BACK; +this._cullMode = t; +}; +t.prototype.setBlend = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : n.default.BLEND_FUNC_ADD, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : n.default.BLEND_SRC_ALPHA, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : n.default.BLEND_ONE_MINUS_SRC_ALPHA, s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : n.default.BLEND_FUNC_ADD, o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : n.default.BLEND_SRC_ALPHA, a = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : n.default.BLEND_ONE_MINUS_SRC_ALPHA, c = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 4294967295; +this._blend = t; +this._blendEq = e; +this._blendSrc = i; +this._blendDst = r; +this._blendAlphaEq = s; +this._blendSrcAlpha = o; +this._blendDstAlpha = a; +this._blendColor = c; +}; +t.prototype.setDepth = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : n.default.DS_FUNC_LESS; +this._depthTest = t; +this._depthWrite = e; +this._depthFunc = i; +}; +t.prototype.setStencilFront = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : n.default.STENCIL_INHERIT, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : n.default.DS_FUNC_ALWAYS, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 255, s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : n.default.STENCIL_OP_KEEP, o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : n.default.STENCIL_OP_KEEP, a = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : n.default.STENCIL_OP_KEEP, c = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 255; +this._stencilTest = t; +this._stencilFuncFront = e; +this._stencilRefFront = i; +this._stencilMaskFront = r; +this._stencilFailOpFront = s; +this._stencilZFailOpFront = o; +this._stencilZPassOpFront = a; +this._stencilWriteMaskFront = c; +}; +t.prototype.setStencilEnabled = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : n.default.STENCIL_INHERIT; +this._stencilTest = t; +}; +t.prototype.setStencilBack = function() { +var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : n.default.STENCIL_INHERIT, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : n.default.DS_FUNC_ALWAYS, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 255, s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : n.default.STENCIL_OP_KEEP, o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : n.default.STENCIL_OP_KEEP, a = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : n.default.STENCIL_OP_KEEP, c = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 255; +this._stencilTest = t; +this._stencilFuncBack = e; +this._stencilRefBack = i; +this._stencilMaskBack = r; +this._stencilFailOpBack = s; +this._stencilZFailOpBack = o; +this._stencilZPassOpBack = a; +this._stencilWriteMaskBack = c; +}; +return t; +})(); +i.default = s; +e.exports = i.default; +}), { +"../gfx": 349 +} ], +341: [ (function(i, n, r) { +"use strict"; +r.__esModule = !0; +r.default = void 0; +var s = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(i("../gfx")); +function o(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var a = 0; +function c(i) { +for (var n = [], r = {}, s = i.length - 1; s >= 0; s--) { +var o = i[s]; +for (var a in o) { +var c = o[a]; +if (void 0 !== c && void 0 === r[a]) { +"number" !== ("object" === (e = typeof c) ? t(c) : e) && (c = c ? 1 : 0); +r[a] = c; +n.push("#define " + a + " " + c); +} +} +} +return n.join("\n") + "\n"; +} +function l(t, e) { +for (var i = {}, n = t, r = e.length - 1; r >= 0; r--) { +var s = e[r]; +for (var o in s) { +var a = s[o]; +void 0 !== a && (void 0 === i[o] && Number.isInteger(a) && (i[o] = a)); +} +} +for (var c in i) { +var l = new RegExp(c, "g"); +n = n.replace(l, i[c]); +} +return n; +} +function h(t) { +return t.replace(/#pragma for (\w+) in range\(\s*(\d+)\s*,\s*(\d+)\s*\)([\s\S]+?)#pragma endFor/g, (function(t, e, i, n, r) { +var s = "", o = parseInt(i), a = parseInt(n); +(o.isNaN || a.isNaN) && console.error("Unroll For Loops Error: begin and end of range must be an int num."); +for (var c = o; c < a; ++c) s += r.replace(new RegExp("{" + e + "}", "g"), c); +return s; +})); +} +var u = (function() { +function t(e) { +o(this, t); +this._device = e; +this._templates = {}; +this._cache = {}; +} +t.prototype.clear = function() { +this._templates = {}; +this._cache = {}; +}; +t.prototype.define = function(t) { +var e = t.name, i = t.vert, n = t.frag, r = t.defines; +t.extensions; +if (!this._templates[e]) { +for (var s = ++a, o = 0, c = 0; c < r.length; ++c) { +var l = r[c], h = 1; +if ("number" === l.type) { +var u = l.range || []; +l.min = u[0] || 0; +l.max = u[1] || 4; +h = Math.ceil(Math.log2(l.max - l.min)); +l._map = function(t) { +return t - this.min << this._offset; +}.bind(l); +} else l._map = function(t) { +return t ? 1 << this._offset : 0; +}.bind(l); +o += h; +l._offset = o; +} +this._templates[e] = { +id: s, +name: e, +vert: i, +frag: n, +defines: r, +attributes: t.attributes, +uniforms: t.uniforms, +extensions: t.extensions +}; +} +}; +t.prototype.getTemplate = function(t) { +return this._templates[t]; +}; +t.prototype.hasProgram = function(t) { +return void 0 !== this._templates[t]; +}; +t.prototype.getKey = function(t, e) { +for (var i = this._templates[t], n = 0, r = 0; r < i.defines.length; ++r) { +var s = i.defines[r], o = this._getValueFromDefineList(s.name, e); +void 0 !== o && (n |= s._map(o)); +} +return i.id + ":" + n; +}; +t.prototype.getProgram = function(t, e, i) { +var n = this.getKey(t, e), r = this._cache[n]; +if (r) return r; +var o = this._templates[t], a = c(e), u = l(o.vert, e); +u = a + h(u); +var _ = l(o.frag, e); +_ = a + h(_); +var f = (r = new s.default.Program(this._device, { +vert: u, +frag: _ +})).link(); +if (f) { +var d = u.split("\n"), m = _.split("\n"), p = Object.keys(e).length; +f.forEach((function(t) { +var e = t.line - 1, n = t.line - p, r = ("vs" === t.type ? d : m)[e], s = t.info || "Failed to compile " + t.type + " " + t.fileID + " (ln " + n + "): \n " + t.message + ": \n " + r; +cc.error(i + " : " + s); +})); +} +this._cache[n] = r; +return r; +}; +t.prototype._getValueFromDefineList = function(t, e) { +for (var i = void 0, n = e.length - 1; n >= 0; n--) if (void 0 !== (i = e[n][t])) return i; +}; +return t; +})(); +r.default = u; +n.exports = r.default; +}), { +"../gfx": 349 +} ], +342: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../config")); +function s(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var o = 0, a = (function() { +function t(e, i) { +var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0; +s(this, t); +this._id = o++; +this._stageIDs = r.default.stageIDs(e); +this._passes = i; +this._layer = n; +} +t.prototype.setStages = function(t) { +this._stageIDs = r.default.stageIDs(t); +}; +n(t, [ { +key: "passes", +get: function() { +return this._passes; +} +}, { +key: "stageIDs", +get: function() { +return this._stageIDs; +} +} ]); +return t; +})(); +i.default = a; +e.exports = i.default; +}), { +"../config": 336 +} ], +343: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = t("../../core/vmath"), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../enums")); +function s(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var o = n.mat4.create(), a = 0, c = (function() { +function t() { +s(this, t); +this._id = a++; +this._priority = 0; +this._rect = { +x: 0, +y: 0, +w: 1, +h: 1 +}; +this._color = n.color4.create(.3, .3, .3, 1); +this._depth = 1; +this._stencil = 0; +this._clearFlags = r.default.CLEAR_COLOR | r.default.CLEAR_DEPTH; +this._clearModel = null; +this._matView = n.mat4.create(); +this._matProj = n.mat4.create(); +this._matViewProj = n.mat4.create(); +this._matInvViewProj = n.mat4.create(); +this._stages = []; +this._cullingByID = !1; +this._framebuffer = null; +this._shadowLight = null; +this._cullingMask = 4294967295; +} +t.prototype.getForward = function(t) { +return n.vec3.set(t, -this._matView.m02, -this._matView.m06, -this._matView.m10); +}; +t.prototype.getPosition = function(t) { +n.mat4.invert(o, this._matView); +return n.mat4.getTranslation(t, o); +}; +return t; +})(); +i.default = c; +e.exports = i.default; +}), { +"../../core/vmath": 317, +"../enums": 344 +} ], +344: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = { +PROJ_PERSPECTIVE: 0, +PROJ_ORTHO: 1, +LIGHT_DIRECTIONAL: 0, +LIGHT_POINT: 1, +LIGHT_SPOT: 2, +SHADOW_NONE: 0, +SHADOW_HARD: 1, +SHADOW_SOFT: 2, +PARAM_INT: 0, +PARAM_INT2: 1, +PARAM_INT3: 2, +PARAM_INT4: 3, +PARAM_FLOAT: 4, +PARAM_FLOAT2: 5, +PARAM_FLOAT3: 6, +PARAM_FLOAT4: 7, +PARAM_COLOR3: 8, +PARAM_COLOR4: 9, +PARAM_MAT2: 10, +PARAM_MAT3: 11, +PARAM_MAT4: 12, +PARAM_TEXTURE_2D: 13, +PARAM_TEXTURE_CUBE: 14, +CLEAR_COLOR: 1, +CLEAR_DEPTH: 2, +CLEAR_STENCIL: 4, +CLEAR_SKYBOX: 8, +BUFFER_VIEW_INT8: 0, +BUFFER_VIEW_UINT8: 1, +BUFFER_VIEW_INT16: 2, +BUFFER_VIEW_UINT16: 3, +BUFFER_VIEW_INT32: 4, +BUFFER_VIEW_UINT32: 5, +BUFFER_VIEW_FLOAT32: 6 +}; +e.exports = i.default; +}), {} ], +345: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n, r, s = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(), o = h(t("./state")), a = t("./enums"), c = h(t("./texture-2d")), l = h(t("./texture-cube")); +function h(t) { +return t && t.__esModule ? t : { +default: t +}; +} +function u(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var _ = ((n = {})[5124] = function(t, e, i) { +t.uniform1i(e, i); +}, n[5126] = function(t, e, i) { +t.uniform1f(e, i); +}, n[35664] = function(t, e, i) { +t.uniform2fv(e, i); +}, n[35665] = function(t, e, i) { +t.uniform3fv(e, i); +}, n[35666] = function(t, e, i) { +t.uniform4fv(e, i); +}, n[35667] = function(t, e, i) { +t.uniform2iv(e, i); +}, n[35668] = function(t, e, i) { +t.uniform3iv(e, i); +}, n[35669] = function(t, e, i) { +t.uniform4iv(e, i); +}, n[35670] = function(t, e, i) { +t.uniform1i(e, i); +}, n[35671] = function(t, e, i) { +t.uniform2iv(e, i); +}, n[35672] = function(t, e, i) { +t.uniform3iv(e, i); +}, n[35673] = function(t, e, i) { +t.uniform4iv(e, i); +}, n[35674] = function(t, e, i) { +t.uniformMatrix2fv(e, !1, i); +}, n[35675] = function(t, e, i) { +t.uniformMatrix3fv(e, !1, i); +}, n[35676] = function(t, e, i) { +t.uniformMatrix4fv(e, !1, i); +}, n[35678] = function(t, e, i) { +t.uniform1i(e, i); +}, n[35680] = function(t, e, i) { +t.uniform1i(e, i); +}, n), f = ((r = {})[5124] = function(t, e, i) { +t.uniform1iv(e, i); +}, r[5126] = function(t, e, i) { +t.uniform1fv(e, i); +}, r[35664] = function(t, e, i) { +t.uniform2fv(e, i); +}, r[35665] = function(t, e, i) { +t.uniform3fv(e, i); +}, r[35666] = function(t, e, i) { +t.uniform4fv(e, i); +}, r[35667] = function(t, e, i) { +t.uniform2iv(e, i); +}, r[35668] = function(t, e, i) { +t.uniform3iv(e, i); +}, r[35669] = function(t, e, i) { +t.uniform4iv(e, i); +}, r[35670] = function(t, e, i) { +t.uniform1iv(e, i); +}, r[35671] = function(t, e, i) { +t.uniform2iv(e, i); +}, r[35672] = function(t, e, i) { +t.uniform3iv(e, i); +}, r[35673] = function(t, e, i) { +t.uniform4iv(e, i); +}, r[35674] = function(t, e, i) { +t.uniformMatrix2fv(e, !1, i); +}, r[35675] = function(t, e, i) { +t.uniformMatrix3fv(e, !1, i); +}, r[35676] = function(t, e, i) { +t.uniformMatrix4fv(e, !1, i); +}, r[35678] = function(t, e, i) { +t.uniform1iv(e, i); +}, r[35680] = function(t, e, i) { +t.uniform1iv(e, i); +}, r); +function d(t, e, i) { +if (e.blend === i.blend) { +if (!1 !== i.blend) { +e.blendColor !== i.blendColor && t.blendColor((i.blendColor >> 24) / 255, (i.blendColor >> 16 & 255) / 255, (i.blendColor >> 8 & 255) / 255, (255 & i.blendColor) / 255); +if (e.blendSep === i.blendSep) if (i.blendSep) { +e.blendSrc === i.blendSrc && e.blendDst === i.blendDst && e.blendSrcAlpha === i.blendSrcAlpha && e.blendDstAlpha === i.blendDstAlpha || t.blendFuncSeparate(i.blendSrc, i.blendDst, i.blendSrcAlpha, i.blendDstAlpha); +e.blendEq === i.blendEq && e.blendAlphaEq === i.blendAlphaEq || t.blendEquationSeparate(i.blendEq, i.blendAlphaEq); +} else { +e.blendSrc === i.blendSrc && e.blendDst === i.blendDst || t.blendFunc(i.blendSrc, i.blendDst); +e.blendEq !== i.blendEq && t.blendEquation(i.blendEq); +} else if (i.blendSep) { +t.blendFuncSeparate(i.blendSrc, i.blendDst, i.blendSrcAlpha, i.blendDstAlpha); +t.blendEquationSeparate(i.blendEq, i.blendAlphaEq); +} else { +t.blendFunc(i.blendSrc, i.blendDst); +t.blendEquation(i.blendEq); +} +} +} else { +if (!i.blend) { +t.disable(t.BLEND); +return; +} +t.enable(t.BLEND); +i.blendSrc !== a.enums.BLEND_CONSTANT_COLOR && i.blendSrc !== a.enums.BLEND_ONE_MINUS_CONSTANT_COLOR && i.blendDst !== a.enums.BLEND_CONSTANT_COLOR && i.blendDst !== a.enums.BLEND_ONE_MINUS_CONSTANT_COLOR || t.blendColor((i.blendColor >> 24) / 255, (i.blendColor >> 16 & 255) / 255, (i.blendColor >> 8 & 255) / 255, (255 & i.blendColor) / 255); +if (i.blendSep) { +t.blendFuncSeparate(i.blendSrc, i.blendDst, i.blendSrcAlpha, i.blendDstAlpha); +t.blendEquationSeparate(i.blendEq, i.blendAlphaEq); +} else { +t.blendFunc(i.blendSrc, i.blendDst); +t.blendEquation(i.blendEq); +} +} +} +function m(t, e, i) { +if (e.depthTest === i.depthTest) { +e.depthWrite !== i.depthWrite && t.depthMask(i.depthWrite); +if (!1 !== i.depthTest) e.depthFunc !== i.depthFunc && t.depthFunc(i.depthFunc); else if (i.depthWrite) { +i.depthTest = !0; +i.depthFunc = a.enums.DS_FUNC_ALWAYS; +t.enable(t.DEPTH_TEST); +t.depthFunc(i.depthFunc); +} +} else { +if (!i.depthTest) { +t.disable(t.DEPTH_TEST); +return; +} +t.enable(t.DEPTH_TEST); +t.depthFunc(i.depthFunc); +t.depthMask(i.depthWrite); +} +} +function p(t, e, i) { +if (i.stencilTest !== a.enums.STENCIL_INHERIT) if (i.stencilTest === e.stencilTest) { +if (i.stencilTest !== a.enums.STENCIL_DISABLE) if (e.stencilSep === i.stencilSep) if (i.stencilSep) { +e.stencilFuncFront === i.stencilFuncFront && e.stencilRefFront === i.stencilRefFront && e.stencilMaskFront === i.stencilMaskFront || t.stencilFuncSeparate(t.FRONT, i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront); +e.stencilWriteMaskFront !== i.stencilWriteMaskFront && t.stencilMaskSeparate(t.FRONT, i.stencilWriteMaskFront); +e.stencilFailOpFront === i.stencilFailOpFront && e.stencilZFailOpFront === i.stencilZFailOpFront && e.stencilZPassOpFront === i.stencilZPassOpFront || t.stencilOpSeparate(t.FRONT, i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront); +e.stencilFuncBack === i.stencilFuncBack && e.stencilRefBack === i.stencilRefBack && e.stencilMaskBack === i.stencilMaskBack || t.stencilFuncSeparate(t.BACK, i.stencilFuncBack, i.stencilRefBack, i.stencilMaskBack); +e.stencilWriteMaskBack !== i.stencilWriteMaskBack && t.stencilMaskSeparate(t.BACK, i.stencilWriteMaskBack); +e.stencilFailOpBack === i.stencilFailOpBack && e.stencilZFailOpBack === i.stencilZFailOpBack && e.stencilZPassOpBack === i.stencilZPassOpBack || t.stencilOpSeparate(t.BACK, i.stencilFailOpBack, i.stencilZFailOpBack, i.stencilZPassOpBack); +} else { +e.stencilFuncFront === i.stencilFuncFront && e.stencilRefFront === i.stencilRefFront && e.stencilMaskFront === i.stencilMaskFront || t.stencilFunc(i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront); +e.stencilWriteMaskFront !== i.stencilWriteMaskFront && t.stencilMask(i.stencilWriteMaskFront); +e.stencilFailOpFront === i.stencilFailOpFront && e.stencilZFailOpFront === i.stencilZFailOpFront && e.stencilZPassOpFront === i.stencilZPassOpFront || t.stencilOp(i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront); +} else if (i.stencilSep) { +t.stencilFuncSeparate(t.FRONT, i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront); +t.stencilMaskSeparate(t.FRONT, i.stencilWriteMaskFront); +t.stencilOpSeparate(t.FRONT, i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront); +t.stencilFuncSeparate(t.BACK, i.stencilFuncBack, i.stencilRefBack, i.stencilMaskBack); +t.stencilMaskSeparate(t.BACK, i.stencilWriteMaskBack); +t.stencilOpSeparate(t.BACK, i.stencilFailOpBack, i.stencilZFailOpBack, i.stencilZPassOpBack); +} else { +t.stencilFunc(i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront); +t.stencilMask(i.stencilWriteMaskFront); +t.stencilOp(i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront); +} +} else { +if (i.stencilTest === a.enums.STENCIL_DISABLE) { +t.disable(t.STENCIL_TEST); +return; +} +t.enable(t.STENCIL_TEST); +if (i.stencilSep) { +t.stencilFuncSeparate(t.FRONT, i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront); +t.stencilMaskSeparate(t.FRONT, i.stencilWriteMaskFront); +t.stencilOpSeparate(t.FRONT, i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront); +t.stencilFuncSeparate(t.BACK, i.stencilFuncBack, i.stencilRefBack, i.stencilMaskBack); +t.stencilMaskSeparate(t.BACK, i.stencilWriteMaskBack); +t.stencilOpSeparate(t.BACK, i.stencilFailOpBack, i.stencilZFailOpBack, i.stencilZPassOpBack); +} else { +t.stencilFunc(i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront); +t.stencilMask(i.stencilWriteMaskFront); +t.stencilOp(i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront); +} +} +} +function v(t, e, i) { +if (e.cullMode !== i.cullMode) if (i.cullMode !== a.enums.CULL_NONE) { +t.enable(t.CULL_FACE); +t.cullFace(i.cullMode); +} else t.disable(t.CULL_FACE); +} +function y(t, e, i, n) { +var r = !1; +if (-1 !== n.maxStream) { +if (i.maxStream !== n.maxStream) r = !0; else if (i.program !== n.program) r = !0; else for (var s = 0; s < n.maxStream + 1; ++s) if (i.vertexBuffers[s] !== n.vertexBuffers[s] || i.vertexBufferOffsets[s] !== n.vertexBufferOffsets[s]) { +r = !0; +break; +} +if (r) { +for (var o = 0; o < t._caps.maxVertexAttribs; ++o) t._newAttributes[o] = 0; +for (var a = 0; a < n.maxStream + 1; ++a) { +var c = n.vertexBuffers[a], l = n.vertexBufferOffsets[a]; +if (c && -1 !== c._glID) { +e.bindBuffer(e.ARRAY_BUFFER, c._glID); +for (var h = 0; h < n.program._attributes.length; ++h) { +var u = n.program._attributes[h], _ = c._format.element(u.name); +if (_) { +if (0 === t._enabledAttributes[u.location]) { +e.enableVertexAttribArray(u.location); +t._enabledAttributes[u.location] = 1; +} +t._newAttributes[u.location] = 1; +e.vertexAttribPointer(u.location, _.num, _.type, _.normalize, _.stride, _.offset + l * _.stride); +} else console.warn("Can not find vertex attribute: " + u.name); +} +} +} +for (var f = 0; f < t._caps.maxVertexAttribs; ++f) if (t._enabledAttributes[f] !== t._newAttributes[f]) { +e.disableVertexAttribArray(f); +t._enabledAttributes[f] = 0; +} +} +} +} +function g(t, e, i) { +for (var n = 0; n < i.maxTextureSlot + 1; ++n) if (e.textureUnits[n] !== i.textureUnits[n]) { +var r = i.textureUnits[n]; +if (r && -1 !== r._glID) { +t.activeTexture(t.TEXTURE0 + n); +t.bindTexture(r._target, r._glID); +} +} +} +function x(t, e, i) { +var n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0; +i instanceof c.default ? t.framebufferTexture2D(t.FRAMEBUFFER, e, t.TEXTURE_2D, i._glID, 0) : i instanceof l.default ? t.framebufferTexture2D(t.FRAMEBUFFER, e, t.TEXTURE_CUBE_MAP_POSITIVE_X + n, i._glID, 0) : t.framebufferRenderbuffer(t.FRAMEBUFFER, e, t.RENDERBUFFER, i._glID); +} +var C = (function() { +s(t, [ { +key: "caps", +get: function() { +return this._caps; +} +} ]); +function t(e, i) { +u(this, t); +var n = void 0; +void 0 === (i = i || {}).alpha && (i.alpha = !1); +void 0 === i.stencil && (i.stencil = !0); +void 0 === i.depth && (i.depth = !0); +void 0 === i.antialias && (i.antialias = !1); +void 0 === i.preserveDrawingBuffer && (i.preserveDrawingBuffer = !1); +try { +n = e.getContext("webgl", i) || e.getContext("experimental-webgl", i) || e.getContext("webkit-3d", i) || e.getContext("moz-webgl", i); +} catch (t) { +console.error(t); +return; +} +n || console.error("This device does not support webgl"); +this._gl = n; +this._extensions = {}; +this._caps = {}; +this._stats = { +texture: 0, +vb: 0, +ib: 0, +drawcalls: 0 +}; +this._initExtensions([ "EXT_texture_filter_anisotropic", "EXT_shader_texture_lod", "OES_standard_derivatives", "OES_texture_float", "OES_texture_float_linear", "OES_texture_half_float", "OES_texture_half_float_linear", "OES_vertex_array_object", "WEBGL_compressed_texture_atc", "WEBGL_compressed_texture_etc", "WEBGL_compressed_texture_etc1", "WEBGL_compressed_texture_pvrtc", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", "WEBGL_draw_buffers" ]); +this._initCaps(); +this._initStates(); +o.default.initDefault(this); +this._current = new o.default(this); +this._next = new o.default(this); +this._uniforms = {}; +this._vx = this._vy = this._vw = this._vh = 0; +this._sx = this._sy = this._sw = this._sh = 0; +this._framebuffer = null; +this._enabledAttributes = new Array(this._caps.maxVertexAttribs); +this._newAttributes = new Array(this._caps.maxVertexAttribs); +for (var r = 0; r < this._caps.maxVertexAttribs; ++r) { +this._enabledAttributes[r] = 0; +this._newAttributes[r] = 0; +} +} +t.prototype._initExtensions = function(t) { +for (var e = this._gl, i = 0; i < t.length; ++i) for (var n = t[i], r = [ "", "WEBKIT_", "MOZ_" ], s = 0; s < r.length; s++) try { +var o = e.getExtension(r[s] + n); +if (o) { +this._extensions[n] = o; +break; +} +} catch (t) { +console.error(t); +} +}; +t.prototype._initCaps = function() { +var t = this._gl, e = this.ext("WEBGL_draw_buffers"); +this._caps.maxVertexStreams = 4; +this._caps.maxVertexTextures = t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS); +this._caps.maxFragUniforms = t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS); +this._caps.maxTextureUnits = t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS); +this._caps.maxVertexAttribs = t.getParameter(t.MAX_VERTEX_ATTRIBS); +this._caps.maxTextureSize = t.getParameter(t.MAX_TEXTURE_SIZE); +this._caps.maxDrawBuffers = e ? t.getParameter(e.MAX_DRAW_BUFFERS_WEBGL) : 1; +this._caps.maxColorAttachments = e ? t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL) : 1; +}; +t.prototype._initStates = function() { +var t = this._gl; +t.disable(t.BLEND); +t.blendFunc(t.ONE, t.ZERO); +t.blendEquation(t.FUNC_ADD); +t.blendColor(1, 1, 1, 1); +t.colorMask(!0, !0, !0, !0); +t.enable(t.CULL_FACE); +t.cullFace(t.BACK); +t.disable(t.DEPTH_TEST); +t.depthFunc(t.LESS); +t.depthMask(!1); +t.disable(t.POLYGON_OFFSET_FILL); +t.depthRange(0, 1); +t.disable(t.STENCIL_TEST); +t.stencilFunc(t.ALWAYS, 0, 255); +t.stencilMask(255); +t.stencilOp(t.KEEP, t.KEEP, t.KEEP); +t.clearDepth(1); +t.clearColor(0, 0, 0, 0); +t.clearStencil(0); +t.disable(t.SCISSOR_TEST); +}; +t.prototype._restoreTexture = function(t) { +var e = this._gl, i = this._current.textureUnits[t]; +i && -1 !== i._glID ? e.bindTexture(i._target, i._glID) : e.bindTexture(e.TEXTURE_2D, null); +}; +t.prototype._restoreIndexBuffer = function() { +var t = this._gl, e = this._current.indexBuffer; +e && -1 !== e._glID ? t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, e._glID) : t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, null); +}; +t.prototype.ext = function(t) { +return this._extensions[t]; +}; +t.prototype.allowFloatTexture = function() { +return null != this.ext("OES_texture_float"); +}; +t.prototype.setFrameBuffer = function(t) { +if (this._framebuffer !== t) { +this._framebuffer = t; +var e = this._gl; +if (null !== t) { +e.bindFramebuffer(e.FRAMEBUFFER, t._glID); +for (var i = t._colors.length, n = 0; n < i; ++n) { +var r = t._colors[n]; +x(e, e.COLOR_ATTACHMENT0 + n, r); +} +for (var s = i; s < this._caps.maxColorAttachments; ++s) e.framebufferTexture2D(e.FRAMEBUFFER, e.COLOR_ATTACHMENT0 + s, e.TEXTURE_2D, null, 0); +t._depth && x(e, e.DEPTH_ATTACHMENT, t._depth); +t._stencil && x(e, e.STENCIL_ATTACHMENT, t._stencil); +t._depthStencil && x(e, e.DEPTH_STENCIL_ATTACHMENT, t._depthStencil); +} else e.bindFramebuffer(e.FRAMEBUFFER, null); +} +}; +t.prototype.setViewport = function(t, e, i, n) { +if (this._vx !== t || this._vy !== e || this._vw !== i || this._vh !== n) { +this._gl.viewport(t, e, i, n); +this._vx = t; +this._vy = e; +this._vw = i; +this._vh = n; +} +}; +t.prototype.setScissor = function(t, e, i, n) { +if (this._sx !== t || this._sy !== e || this._sw !== i || this._sh !== n) { +this._gl.scissor(t, e, i, n); +this._sx = t; +this._sy = e; +this._sw = i; +this._sh = n; +} +}; +t.prototype.clear = function(t) { +if (void 0 !== t.color || void 0 !== t.depth || void 0 !== t.stencil) { +var e = this._gl, i = 0; +if (void 0 !== t.color) { +i |= e.COLOR_BUFFER_BIT; +e.clearColor(t.color[0], t.color[1], t.color[2], t.color[3]); +} +if (void 0 !== t.depth) { +i |= e.DEPTH_BUFFER_BIT; +e.clearDepth(t.depth); +e.enable(e.DEPTH_TEST); +e.depthMask(!0); +e.depthFunc(e.ALWAYS); +} +if (void 0 !== t.stencil) { +i |= e.STENCIL_BUFFER_BIT; +e.clearStencil(t.stencil); +} +e.clear(i); +if (void 0 !== t.depth) if (!1 === this._current.depthTest) e.disable(e.DEPTH_TEST); else { +!1 === this._current.depthWrite && e.depthMask(!1); +this._current.depthFunc !== a.enums.DS_FUNC_ALWAYS && e.depthFunc(this._current.depthFunc); +} +} +}; +t.prototype.enableBlend = function() { +this._next.blend = !0; +}; +t.prototype.enableDepthTest = function() { +this._next.depthTest = !0; +}; +t.prototype.enableDepthWrite = function() { +this._next.depthWrite = !0; +}; +t.prototype.setStencilTest = function(t) { +this._next.stencilTest = t; +}; +t.prototype.setStencilFunc = function(t, e, i) { +this._next.stencilSep = !1; +this._next.stencilFuncFront = this._next.stencilFuncBack = t; +this._next.stencilRefFront = this._next.stencilRefBack = e; +this._next.stencilMaskFront = this._next.stencilMaskBack = i; +}; +t.prototype.setStencilFuncFront = function(t, e, i) { +this._next.stencilSep = !0; +this._next.stencilFuncFront = t; +this._next.stencilRefFront = e; +this._next.stencilMaskFront = i; +}; +t.prototype.setStencilFuncBack = function(t, e, i) { +this._next.stencilSep = !0; +this._next.stencilFuncBack = t; +this._next.stencilRefBack = e; +this._next.stencilMaskBack = i; +}; +t.prototype.setStencilOp = function(t, e, i, n) { +this._next.stencilFailOpFront = this._next.stencilFailOpBack = t; +this._next.stencilZFailOpFront = this._next.stencilZFailOpBack = e; +this._next.stencilZPassOpFront = this._next.stencilZPassOpBack = i; +this._next.stencilWriteMaskFront = this._next.stencilWriteMaskBack = n; +}; +t.prototype.setStencilOpFront = function(t, e, i, n) { +this._next.stencilSep = !0; +this._next.stencilFailOpFront = t; +this._next.stencilZFailOpFront = e; +this._next.stencilZPassOpFront = i; +this._next.stencilWriteMaskFront = n; +}; +t.prototype.setStencilOpBack = function(t, e, i, n) { +this._next.stencilSep = !0; +this._next.stencilFailOpBack = t; +this._next.stencilZFailOpBack = e; +this._next.stencilZPassOpBack = i; +this._next.stencilWriteMaskBack = n; +}; +t.prototype.setDepthFunc = function(t) { +this._next.depthFunc = t; +}; +t.prototype.setBlendColor32 = function(t) { +this._next.blendColor = t; +}; +t.prototype.setBlendColor = function(t, e, i, n) { +this._next.blendColor = (255 * t << 24 | 255 * e << 16 | 255 * i << 8 | 255 * n) >>> 0; +}; +t.prototype.setBlendFunc = function(t, e) { +this._next.blendSep = !1; +this._next.blendSrc = t; +this._next.blendDst = e; +}; +t.prototype.setBlendFuncSep = function(t, e, i, n) { +this._next.blendSep = !0; +this._next.blendSrc = t; +this._next.blendDst = e; +this._next.blendSrcAlpha = i; +this._next.blendDstAlpha = n; +}; +t.prototype.setBlendEq = function(t) { +this._next.blendSep = !1; +this._next.blendEq = t; +}; +t.prototype.setBlendEqSep = function(t, e) { +this._next.blendSep = !0; +this._next.blendEq = t; +this._next.blendAlphaEq = e; +}; +t.prototype.setCullMode = function(t) { +this._next.cullMode = t; +}; +t.prototype.setVertexBuffer = function(t, e) { +var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0; +this._next.vertexBuffers[t] = e; +this._next.vertexBufferOffsets[t] = i; +this._next.maxStream < t && (this._next.maxStream = t); +}; +t.prototype.setIndexBuffer = function(t) { +this._next.indexBuffer = t; +}; +t.prototype.setProgram = function(t) { +this._next.program = t; +}; +t.prototype.setTexture = function(t, e, i) { +if (i >= this._caps.maxTextureUnits) console.warn("Can not set texture " + t + " at stage " + i + ", max texture exceed: " + this._caps.maxTextureUnits); else { +this._next.textureUnits[i] = e; +this.setUniform(t, i); +this._next.maxTextureSlot < i && (this._next.maxTextureSlot = i); +} +}; +t.prototype.setTextureArray = function(t, e, i) { +var n = e.length; +if (n >= this._caps.maxTextureUnits) console.warn("Can not set " + n + " textures for " + t + ", max texture exceed: " + this._caps.maxTextureUnits); else { +for (var r = 0; r < n; ++r) { +var s = i[r]; +this._next.textureUnits[s] = e[r]; +} +this.setUniform(t, i); +} +}; +t.prototype.setUniform = function(t, e) { +var i = this._uniforms[t], n = !1, r = !1, s = !1, o = !1; +do { +if (!i) break; +s = Array.isArray(e) || e instanceof Float32Array; +o = e instanceof Int32Array; +r = s || o; +if (i.isArray !== r) break; +if (i.isArray && i.value.length !== e.length) break; +n = !0; +} while (0); +if (n) { +var a = i.value, c = !1; +if (i.isArray) { +for (var l = 0, h = a.length; l < h; l++) if (a[l] !== e[l]) { +c = !0; +a[l] = e[l]; +} +} else if (a !== e) { +c = !0; +i.value = e; +} +c && (i.dirty = !0); +} else { +var u = e; +s ? u = new Float32Array(e) : o && (u = new Int32Array(e)); +i = { +dirty: !0, +value: u, +isArray: r +}; +} +this._uniforms[t] = i; +}; +t.prototype.setUniformDirectly = function(t, e) { +var i = this._uniforms[t]; +i || (this._uniforms[t] = i = {}); +i.dirty = !0; +i.value = e; +}; +t.prototype.setPrimitiveType = function(t) { +this._next.primitiveType = t; +}; +t.prototype.draw = function(t, e) { +var i = this._gl, n = this._current, r = this._next; +d(i, n, r); +m(i, n, r); +p(i, n, r); +v(i, n, r); +y(this, i, n, r); +n.indexBuffer !== r.indexBuffer && i.bindBuffer(i.ELEMENT_ARRAY_BUFFER, r.indexBuffer && -1 !== r.indexBuffer._glID ? r.indexBuffer._glID : null); +var s = !1; +if (n.program !== r.program) { +r.program._linked ? i.useProgram(r.program._glID) : console.warn("Failed to use program: has not linked yet."); +s = !0; +} +g(i, n, r); +for (var o = 0; o < r.program._uniforms.length; ++o) { +var a = r.program._uniforms[o], c = this._uniforms[a.name]; +if (c && (s || c.dirty)) { +c.dirty = !1; +var l = void 0 === a.size ? _[a.type] : f[a.type]; +l ? l(i, a.location, c.value) : console.warn("Can not find commit function for uniform " + a.name); +} +} +e && (r.indexBuffer ? i.drawElements(this._next.primitiveType, e, r.indexBuffer._format, t * r.indexBuffer._bytesPerIndex) : i.drawArrays(this._next.primitiveType, t, e)); +this._stats.drawcalls += 1; +n.set(r); +r.reset(); +}; +return t; +})(); +i.default = C; +e.exports = i.default; +}), { +"./enums": 346, +"./state": 353, +"./texture-2d": 354, +"./texture-cube": 355 +} ], +346: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.attrTypeBytes = function(t) { +if (t === s.ATTR_TYPE_INT8) return 1; +if (t === s.ATTR_TYPE_UINT8) return 1; +if (t === s.ATTR_TYPE_INT16) return 2; +if (t === s.ATTR_TYPE_UINT16) return 2; +if (t === s.ATTR_TYPE_INT32) return 4; +if (t === s.ATTR_TYPE_UINT32) return 4; +if (t === s.ATTR_TYPE_FLOAT32) return 4; +console.warn("Unknown ATTR_TYPE: " + t); +return 0; +}; +i.glFilter = function(t, e) { +var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : -1, r = n[e][i + 1]; +if (void 0 === r) { +console.warn("Unknown FILTER: " + e); +return -1 === i ? t.LINEAR : t.LINEAR_MIPMAP_LINEAR; +} +return r; +}; +i.glTextureFmt = function(t) { +var e = r[t]; +if (void 0 === e) { +console.warn("Unknown TEXTURE_FMT: " + t); +return r[s.TEXTURE_FMT_RGBA8]; +} +return e; +}; +var n = [ [ 9728, 9984, 9986 ], [ 9729, 9985, 9987 ] ], r = [ { +format: 6407, +internalFormat: 33776, +pixelType: null +}, { +format: 6408, +internalFormat: 33777, +pixelType: null +}, { +format: 6408, +internalFormat: 33778, +pixelType: null +}, { +format: 6408, +internalFormat: 33779, +pixelType: null +}, { +format: 6407, +internalFormat: 36196, +pixelType: null +}, { +format: 6407, +internalFormat: 35841, +pixelType: null +}, { +format: 6408, +internalFormat: 35843, +pixelType: null +}, { +format: 6407, +internalFormat: 35840, +pixelType: null +}, { +format: 6408, +internalFormat: 35842, +pixelType: null +}, { +format: 6406, +internalFormat: 6406, +pixelType: 5121 +}, { +format: 6409, +internalFormat: 6409, +pixelType: 5121 +}, { +format: 6410, +internalFormat: 6410, +pixelType: 5121 +}, { +format: 6407, +internalFormat: 6407, +pixelType: 33635 +}, { +format: 6408, +internalFormat: 6408, +pixelType: 32820 +}, { +format: 6408, +internalFormat: 6408, +pixelType: 32819 +}, { +format: 6407, +internalFormat: 6407, +pixelType: 5121 +}, { +format: 6408, +internalFormat: 6408, +pixelType: 5121 +}, { +format: 6407, +internalFormat: 6407, +pixelType: 36193 +}, { +format: 6408, +internalFormat: 6408, +pixelType: 36193 +}, { +format: 6407, +internalFormat: 6407, +pixelType: 5126 +}, { +format: 6408, +internalFormat: 6408, +pixelType: 5126 +}, { +format: null, +internalFormat: null, +pixelType: null +}, { +format: null, +internalFormat: null, +pixelType: null +}, { +format: null, +internalFormat: null, +pixelType: null +}, { +format: null, +internalFormat: null, +pixelType: null +}, { +format: 6402, +internalFormat: 6402, +pixelType: 5123 +}, { +format: 6402, +internalFormat: 6402, +pixelType: 5125 +}, { +format: 6402, +internalFormat: 6402, +pixelType: 5125 +}, { +format: 6407, +internalFormat: 37492, +pixelType: null +}, { +format: 6408, +internalFormat: 37496, +pixelType: null +} ], s = i.enums = { +USAGE_STATIC: 35044, +USAGE_DYNAMIC: 35048, +USAGE_STREAM: 35040, +INDEX_FMT_UINT8: 5121, +INDEX_FMT_UINT16: 5123, +INDEX_FMT_UINT32: 5125, +ATTR_POSITION: "a_position", +ATTR_NORMAL: "a_normal", +ATTR_TANGENT: "a_tangent", +ATTR_BITANGENT: "a_bitangent", +ATTR_WEIGHTS: "a_weights", +ATTR_JOINTS: "a_joints", +ATTR_COLOR: "a_color", +ATTR_COLOR0: "a_color0", +ATTR_COLOR1: "a_color1", +ATTR_UV: "a_uv", +ATTR_UV0: "a_uv0", +ATTR_UV1: "a_uv1", +ATTR_UV2: "a_uv2", +ATTR_UV3: "a_uv3", +ATTR_UV4: "a_uv4", +ATTR_UV5: "a_uv5", +ATTR_UV6: "a_uv6", +ATTR_UV7: "a_uv7", +ATTR_TYPE_INT8: 5120, +ATTR_TYPE_UINT8: 5121, +ATTR_TYPE_INT16: 5122, +ATTR_TYPE_UINT16: 5123, +ATTR_TYPE_INT32: 5124, +ATTR_TYPE_UINT32: 5125, +ATTR_TYPE_FLOAT32: 5126, +FILTER_NEAREST: 0, +FILTER_LINEAR: 1, +WRAP_REPEAT: 10497, +WRAP_CLAMP: 33071, +WRAP_MIRROR: 33648, +TEXTURE_FMT_RGB_DXT1: 0, +TEXTURE_FMT_RGBA_DXT1: 1, +TEXTURE_FMT_RGBA_DXT3: 2, +TEXTURE_FMT_RGBA_DXT5: 3, +TEXTURE_FMT_RGB_ETC1: 4, +TEXTURE_FMT_RGB_PVRTC_2BPPV1: 5, +TEXTURE_FMT_RGBA_PVRTC_2BPPV1: 6, +TEXTURE_FMT_RGB_PVRTC_4BPPV1: 7, +TEXTURE_FMT_RGBA_PVRTC_4BPPV1: 8, +TEXTURE_FMT_A8: 9, +TEXTURE_FMT_L8: 10, +TEXTURE_FMT_L8_A8: 11, +TEXTURE_FMT_R5_G6_B5: 12, +TEXTURE_FMT_R5_G5_B5_A1: 13, +TEXTURE_FMT_R4_G4_B4_A4: 14, +TEXTURE_FMT_RGB8: 15, +TEXTURE_FMT_RGBA8: 16, +TEXTURE_FMT_RGB16F: 17, +TEXTURE_FMT_RGBA16F: 18, +TEXTURE_FMT_RGB32F: 19, +TEXTURE_FMT_RGBA32F: 20, +TEXTURE_FMT_R32F: 21, +TEXTURE_FMT_111110F: 22, +TEXTURE_FMT_SRGB: 23, +TEXTURE_FMT_SRGBA: 24, +TEXTURE_FMT_D16: 25, +TEXTURE_FMT_D32: 26, +TEXTURE_FMT_D24S8: 27, +TEXTURE_FMT_RGB_ETC2: 28, +TEXTURE_FMT_RGBA_ETC2: 29, +DS_FUNC_NEVER: 512, +DS_FUNC_LESS: 513, +DS_FUNC_EQUAL: 514, +DS_FUNC_LEQUAL: 515, +DS_FUNC_GREATER: 516, +DS_FUNC_NOTEQUAL: 517, +DS_FUNC_GEQUAL: 518, +DS_FUNC_ALWAYS: 519, +RB_FMT_RGBA4: 32854, +RB_FMT_RGB5_A1: 32855, +RB_FMT_RGB565: 36194, +RB_FMT_D16: 33189, +RB_FMT_S8: 36168, +RB_FMT_D24S8: 34041, +BLEND_FUNC_ADD: 32774, +BLEND_FUNC_SUBTRACT: 32778, +BLEND_FUNC_REVERSE_SUBTRACT: 32779, +BLEND_ZERO: 0, +BLEND_ONE: 1, +BLEND_SRC_COLOR: 768, +BLEND_ONE_MINUS_SRC_COLOR: 769, +BLEND_DST_COLOR: 774, +BLEND_ONE_MINUS_DST_COLOR: 775, +BLEND_SRC_ALPHA: 770, +BLEND_ONE_MINUS_SRC_ALPHA: 771, +BLEND_DST_ALPHA: 772, +BLEND_ONE_MINUS_DST_ALPHA: 773, +BLEND_CONSTANT_COLOR: 32769, +BLEND_ONE_MINUS_CONSTANT_COLOR: 32770, +BLEND_CONSTANT_ALPHA: 32771, +BLEND_ONE_MINUS_CONSTANT_ALPHA: 32772, +BLEND_SRC_ALPHA_SATURATE: 776, +STENCIL_DISABLE: 0, +STENCIL_ENABLE: 1, +STENCIL_INHERIT: 2, +STENCIL_OP_KEEP: 7680, +STENCIL_OP_ZERO: 0, +STENCIL_OP_REPLACE: 7681, +STENCIL_OP_INCR: 7682, +STENCIL_OP_INCR_WRAP: 34055, +STENCIL_OP_DECR: 7683, +STENCIL_OP_DECR_WRAP: 34056, +STENCIL_OP_INVERT: 5386, +CULL_NONE: 0, +CULL_FRONT: 1028, +CULL_BACK: 1029, +CULL_FRONT_AND_BACK: 1032, +PT_POINTS: 0, +PT_LINES: 1, +PT_LINE_LOOP: 2, +PT_LINE_STRIP: 3, +PT_TRIANGLES: 4, +PT_TRIANGLE_STRIP: 5, +PT_TRIANGLE_FAN: 6 +}; +}), {} ], +347: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +function n(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var r = (function() { +function t(e, i, r, s) { +n(this, t); +this._device = e; +this._width = i; +this._height = r; +this._colors = s.colors || []; +this._depth = s.depth || null; +this._stencil = s.stencil || null; +this._depthStencil = s.depthStencil || null; +this._glID = e._gl.createFramebuffer(); +} +t.prototype.destroy = function() { +if (null !== this._glID) { +this._device._gl.deleteFramebuffer(this._glID); +this._glID = null; +} else console.error("The frame-buffer already destroyed"); +}; +return t; +})(); +i.default = r; +e.exports = i.default; +}), {} ], +348: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(), r = t("./enums"); +function s(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var o = (function() { +function t(e, i, n, o, a) { +s(this, t); +this._device = e; +this._format = i; +this._usage = n; +this._numIndices = a; +this._bytesPerIndex = 0; +i === r.enums.INDEX_FMT_UINT8 ? this._bytesPerIndex = 1 : i === r.enums.INDEX_FMT_UINT16 ? this._bytesPerIndex = 2 : i === r.enums.INDEX_FMT_UINT32 && (this._bytesPerIndex = 4); +this._bytes = this._bytesPerIndex * a; +this._glID = e._gl.createBuffer(); +this.update(0, o); +e._stats.ib += this._bytes; +} +t.prototype.destroy = function() { +if (-1 !== this._glID) { +this._device._gl.deleteBuffer(this._glID); +this._device._stats.ib -= this.bytes; +this._glID = -1; +} else console.error("The buffer already destroyed"); +}; +t.prototype.update = function(t, e) { +if (-1 !== this._glID) if (e && e.byteLength + t > this._bytes) console.error("Failed to update data, bytes exceed."); else { +var i = this._device._gl, n = this._usage; +i.bindBuffer(i.ELEMENT_ARRAY_BUFFER, this._glID); +e ? t ? i.bufferSubData(i.ELEMENT_ARRAY_BUFFER, t, e) : i.bufferData(i.ELEMENT_ARRAY_BUFFER, e, n) : this._bytes ? i.bufferData(i.ELEMENT_ARRAY_BUFFER, this._bytes, n) : console.warn("bufferData should not submit 0 bytes data"); +this._device._restoreIndexBuffer(); +} else console.error("The buffer is destroyed"); +}; +n(t, [ { +key: "count", +get: function() { +return this._numIndices; +} +} ]); +return t; +})(); +i.default = o; +e.exports = i.default; +}), { +"./enums": 346 +} ], +349: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = t("./enums"), r = d(t("./vertex-format")), s = d(t("./index-buffer")), o = d(t("./vertex-buffer")), a = d(t("./program")), c = d(t("./texture")), l = d(t("./texture-2d")), h = d(t("./texture-cube")), u = d(t("./render-buffer")), _ = d(t("./frame-buffer")), f = d(t("./device")); +function d(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var m = { +VertexFormat: r.default, +IndexBuffer: s.default, +VertexBuffer: o.default, +Program: a.default, +Texture: c.default, +Texture2D: l.default, +TextureCube: h.default, +RenderBuffer: u.default, +FrameBuffer: _.default, +Device: f.default, +attrTypeBytes: n.attrTypeBytes, +glFilter: n.glFilter, +glTextureFmt: n.glTextureFmt +}; +Object.assign(m, n.enums); +i.default = m; +cc.gfx = m; +e.exports = i.default; +}), { +"./device": 345, +"./enums": 346, +"./frame-buffer": 347, +"./index-buffer": 348, +"./program": 351, +"./render-buffer": 352, +"./texture": 356, +"./texture-2d": 354, +"./texture-cube": 355, +"./vertex-buffer": 357, +"./vertex-format": 358 +} ], +350: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.isPow2 = function(t) { +return !(t & t - 1 || !t); +}; +}), {} ], +351: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = 0; +function o(t, e, i) { +i.split("\n").forEach((function(i) { +if (!(i.length < 5)) { +var n = /^ERROR:\s+(\d+):(\d+):\s*(.*)$/.exec(i); +n ? t.push({ +type: e, +fileID: 0 | n[1], +line: 0 | n[2], +message: n[3].trim() +}) : i.length > 0 && t.push({ +type: e, +fileID: -1, +line: 0, +message: i +}); +} +})); +} +var a = (function() { +function t(e, i) { +r(this, t); +this._device = e; +this._attributes = []; +this._uniforms = []; +this._samplers = []; +this._errors = []; +this._linked = !1; +this._vertSource = i.vert; +this._fragSource = i.frag; +this._glID = null; +this._id = s++; +} +t.prototype.link = function() { +if (!this._linked) { +var t = this._device._gl, e = c(t, t.VERTEX_SHADER, this._vertSource), i = c(t, t.FRAGMENT_SHADER, this._fragSource), n = t.createProgram(); +t.attachShader(n, e); +t.attachShader(n, i); +t.linkProgram(n); +var r = !1, s = this._errors; +if (!t.getShaderParameter(e, t.COMPILE_STATUS)) { +o(s, "vs", t.getShaderInfoLog(e)); +r = !0; +} +if (!t.getShaderParameter(i, t.COMPILE_STATUS)) { +o(s, "fs", t.getShaderInfoLog(i)); +r = !0; +} +t.deleteShader(e); +t.deleteShader(i); +if (r) return s; +if (!t.getProgramParameter(n, t.LINK_STATUS)) { +s.push({ +info: "Failed to link shader program: " + t.getProgramInfoLog(n) +}); +return s; +} +this._glID = n; +for (var a = t.getProgramParameter(n, t.ACTIVE_ATTRIBUTES), l = 0; l < a; ++l) { +var h = t.getActiveAttrib(n, l), u = t.getAttribLocation(n, h.name); +this._attributes.push({ +name: h.name, +location: u, +type: h.type +}); +} +for (var _ = t.getProgramParameter(n, t.ACTIVE_UNIFORMS), f = 0; f < _; ++f) { +var d = t.getActiveUniform(n, f), m = d.name, p = t.getUniformLocation(n, m), v = "[0]" === m.substr(m.length - 3); +v && (m = m.substr(0, m.length - 3)); +var y = { +name: m, +location: p, +type: d.type, +size: v ? d.size : void 0 +}; +this._uniforms.push(y); +} +this._linked = !0; +} +}; +t.prototype.destroy = function() { +this._device._gl.deleteProgram(this._glID); +this._linked = !1; +this._glID = null; +this._attributes = []; +this._uniforms = []; +this._samplers = []; +}; +n(t, [ { +key: "id", +get: function() { +return this._id; +} +} ]); +return t; +})(); +i.default = a; +function c(t, e, i) { +var n = t.createShader(e); +t.shaderSource(n, i); +t.compileShader(n); +return n; +} +e.exports = i.default; +}), {} ], +352: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +function n(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var r = (function() { +function t(e, i, r, s) { +n(this, t); +this._device = e; +this._format = i; +this._glID = e._gl.createRenderbuffer(); +this.update(r, s); +} +t.prototype.update = function(t, e) { +this._width = t; +this._height = e; +var i = this._device._gl; +i.bindRenderbuffer(i.RENDERBUFFER, this._glID); +i.renderbufferStorage(i.RENDERBUFFER, this._format, t, e); +i.bindRenderbuffer(i.RENDERBUFFER, null); +}; +t.prototype.destroy = function() { +if (null !== this._glID) { +var t = this._device._gl; +t.bindRenderbuffer(t.RENDERBUFFER, null); +t.deleteRenderbuffer(this._glID); +this._glID = null; +} else console.error("The render-buffer already destroyed"); +}; +return t; +})(); +i.default = r; +e.exports = i.default; +}), {} ], +353: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = t("./enums"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = { +blend: !1, +blendSep: !1, +blendColor: 4294967295, +blendEq: n.enums.BLEND_FUNC_ADD, +blendAlphaEq: n.enums.BLEND_FUNC_ADD, +blendSrc: n.enums.BLEND_ONE, +blendDst: n.enums.BLEND_ZERO, +blendSrcAlpha: n.enums.BLEND_ONE, +blendDstAlpha: n.enums.BLEND_ZERO, +depthTest: !1, +depthWrite: !1, +depthFunc: n.enums.DS_FUNC_LESS, +stencilTest: !1, +stencilSep: !1, +stencilFuncFront: n.enums.DS_FUNC_ALWAYS, +stencilRefFront: 0, +stencilMaskFront: 255, +stencilFailOpFront: n.enums.STENCIL_OP_KEEP, +stencilZFailOpFront: n.enums.STENCIL_OP_KEEP, +stencilZPassOpFront: n.enums.STENCIL_OP_KEEP, +stencilWriteMaskFront: 255, +stencilFuncBack: n.enums.DS_FUNC_ALWAYS, +stencilRefBack: 0, +stencilMaskBack: 255, +stencilFailOpBack: n.enums.STENCIL_OP_KEEP, +stencilZFailOpBack: n.enums.STENCIL_OP_KEEP, +stencilZPassOpBack: n.enums.STENCIL_OP_KEEP, +stencilWriteMaskBack: 255, +cullMode: n.enums.CULL_BACK, +primitiveType: n.enums.PT_TRIANGLES, +maxStream: -1, +vertexBuffers: [], +vertexBufferOffsets: [], +indexBuffer: null, +maxTextureSlot: -1, +textureUnits: [], +program: null +}, o = (function() { +function t(e) { +r(this, t); +this.vertexBuffers = new Array(e._caps.maxVertexStreams); +this.vertexBufferOffsets = new Array(e._caps.maxVertexStreams); +this.textureUnits = new Array(e._caps.maxTextureUnits); +this.set(s); +} +t.initDefault = function(t) { +s.vertexBuffers = new Array(t._caps.maxVertexStreams); +s.vertexBufferOffsets = new Array(t._caps.maxVertexStreams); +s.textureUnits = new Array(t._caps.maxTextureUnits); +}; +t.prototype.reset = function() { +this.set(s); +}; +t.prototype.set = function(t) { +this.blend = t.blend; +this.blendSep = t.blendSep; +this.blendColor = t.blendColor; +this.blendEq = t.blendEq; +this.blendAlphaEq = t.blendAlphaEq; +this.blendSrc = t.blendSrc; +this.blendDst = t.blendDst; +this.blendSrcAlpha = t.blendSrcAlpha; +this.blendDstAlpha = t.blendDstAlpha; +this.depthTest = t.depthTest; +this.depthWrite = t.depthWrite; +this.depthFunc = t.depthFunc; +this.stencilTest = t.stencilTest; +this.stencilSep = t.stencilSep; +this.stencilFuncFront = t.stencilFuncFront; +this.stencilRefFront = t.stencilRefFront; +this.stencilMaskFront = t.stencilMaskFront; +this.stencilFailOpFront = t.stencilFailOpFront; +this.stencilZFailOpFront = t.stencilZFailOpFront; +this.stencilZPassOpFront = t.stencilZPassOpFront; +this.stencilWriteMaskFront = t.stencilWriteMaskFront; +this.stencilFuncBack = t.stencilFuncBack; +this.stencilRefBack = t.stencilRefBack; +this.stencilMaskBack = t.stencilMaskBack; +this.stencilFailOpBack = t.stencilFailOpBack; +this.stencilZFailOpBack = t.stencilZFailOpBack; +this.stencilZPassOpBack = t.stencilZPassOpBack; +this.stencilWriteMaskBack = t.stencilWriteMaskBack; +this.cullMode = t.cullMode; +this.primitiveType = t.primitiveType; +this.maxStream = t.maxStream; +for (var e = 0; e < t.vertexBuffers.length; ++e) this.vertexBuffers[e] = t.vertexBuffers[e]; +for (var i = 0; i < t.vertexBufferOffsets.length; ++i) this.vertexBufferOffsets[i] = t.vertexBufferOffsets[i]; +this.indexBuffer = t.indexBuffer; +this.maxTextureSlot = t.maxTextureSlot; +for (var n = 0; n < t.textureUnits.length; ++n) this.textureUnits[n] = t.textureUnits[n]; +this.program = t.program; +}; +return t; +})(); +i.default = o; +e.exports = i.default; +}), { +"./enums": 346 +} ], +354: [ (function(i, n, r) { +"use strict"; +r.__esModule = !0; +r.default = void 0; +var s = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(i("./texture")), o = i("./enums"), a = i("./misc"); +function c(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +function l(i, n) { +if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); +return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; +} +function h(i, n) { +if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); +i.prototype = Object.create(n && n.prototype, { +constructor: { +value: i, +enumerable: !1, +writable: !0, +configurable: !0 +} +}); +n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); +} +Object.getPrototypeOf(Object.getPrototypeOf(new Uint8Array())).constructor; +var u = (function(t) { +h(e, t); +function e(i, n) { +c(this, e); +var r = l(this, t.call(this, i)), s = r._device._gl; +r._target = s.TEXTURE_2D; +r._glID = s.createTexture(); +n.images = n.images || [ null ]; +r.update(n); +return r; +} +e.prototype.update = function(t) { +var e = this._device._gl, i = this._genMipmap; +if (t) { +void 0 !== t.width && (this._width = t.width); +void 0 !== t.height && (this._height = t.height); +void 0 !== t.anisotropy && (this._anisotropy = t.anisotropy); +void 0 !== t.minFilter && (this._minFilter = t.minFilter); +void 0 !== t.magFilter && (this._magFilter = t.magFilter); +void 0 !== t.mipFilter && (this._mipFilter = t.mipFilter); +void 0 !== t.wrapS && (this._wrapS = t.wrapS); +void 0 !== t.wrapT && (this._wrapT = t.wrapT); +if (void 0 !== t.format) { +this._format = t.format; +this._compressed = this._format >= o.enums.TEXTURE_FMT_RGB_DXT1 && this._format <= o.enums.TEXTURE_FMT_RGBA_PVRTC_4BPPV1 || this._format >= o.enums.TEXTURE_FMT_RGB_ETC2 && this._format <= o.enums.TEXTURE_FMT_RGBA_ETC2; +} +if (void 0 !== t.genMipmaps) { +this._genMipmap = t.genMipmaps; +i = t.genMipmaps; +} +var n = this._device.caps.maxTextureSize || Number.MAX_VALUE, r = Math.max(t.width || 0, t.height || 0); +n < r && console.warn("The current texture size " + r + " exceeds the maximum size [" + n + "] supported on the device."); +if (void 0 !== t.images && t.images.length > 1) { +i = !1; +(t.width > t.height ? t.width : t.height) >> t.images.length - 1 != 1 && console.error("texture-2d mipmap is invalid, should have a 1x1 mipmap."); +} +} +(0, a.isPow2)(this._width) && (0, a.isPow2)(this._height) || (i = !1); +e.activeTexture(e.TEXTURE0); +e.bindTexture(e.TEXTURE_2D, this._glID); +if (void 0 !== t.images && t.images.length > 0) { +this._setMipmap(t.images, t.flipY, t.premultiplyAlpha); +t.images.length > 1 && (this._genMipmap = !0); +} +if (i) { +e.hint(e.GENERATE_MIPMAP_HINT, e.NICEST); +e.generateMipmap(e.TEXTURE_2D); +this._genMipmap = !0; +} +this._setTexInfo(); +this._device._restoreTexture(0); +}; +e.prototype.updateSubImage = function(t) { +var e = this._device._gl, i = (0, o.glTextureFmt)(this._format); +e.activeTexture(e.TEXTURE0); +e.bindTexture(e.TEXTURE_2D, this._glID); +this._setSubImage(i, t); +this._device._restoreTexture(0); +}; +e.prototype.updateImage = function(t) { +var e = this._device._gl, i = (0, o.glTextureFmt)(this._format); +e.activeTexture(e.TEXTURE0); +e.bindTexture(e.TEXTURE_2D, this._glID); +this._setImage(i, t); +this._device._restoreTexture(0); +}; +e.prototype._setSubImage = function(t, e) { +var i = this._device._gl, n = e.flipY, r = e.premultiplyAlpha, s = e.image; +if (!s || ArrayBuffer.isView(s) || s instanceof ArrayBuffer) { +void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !1) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n); +void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r); +this._compressed ? i.compressedTexSubImage2D(i.TEXTURE_2D, e.level, e.x, e.y, e.width, e.height, t.format, s) : i.texSubImage2D(i.TEXTURE_2D, e.level, e.x, e.y, e.width, e.height, t.format, t.pixelType, s); +} else { +void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !0) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n); +void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r); +i.texSubImage2D(i.TEXTURE_2D, e.level, e.x, e.y, t.format, t.pixelType, s); +} +}; +e.prototype._setImage = function(t, e) { +var i = this._device._gl, n = e.flipY, r = e.premultiplyAlpha, s = e.image; +if (!s || ArrayBuffer.isView(s) || s instanceof ArrayBuffer) { +void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !1) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n); +void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r); +this._compressed ? i.compressedTexImage2D(i.TEXTURE_2D, e.level, t.internalFormat, e.width, e.height, 0, s) : i.texImage2D(i.TEXTURE_2D, e.level, t.internalFormat, e.width, e.height, 0, t.format, t.pixelType, s); +} else { +void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !0) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n); +void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r); +i.texImage2D(i.TEXTURE_2D, e.level, t.internalFormat, t.format, t.pixelType, s); +} +}; +e.prototype._setMipmap = function(t, e, i) { +for (var n = (0, o.glTextureFmt)(this._format), r = { +width: this._width, +height: this._height, +flipY: e, +premultiplyAlpha: i, +level: 0, +image: null +}, s = 0; s < t.length; ++s) { +r.level = s; +r.width = this._width >> s; +r.height = this._height >> s; +r.image = t[s]; +this._setImage(n, r); +} +}; +e.prototype._setTexInfo = function() { +var t = this._device._gl, e = (0, a.isPow2)(this._width) && (0, a.isPow2)(this._height); +if (!e && (this._wrapS !== o.enums.WRAP_CLAMP || this._wrapT !== o.enums.WRAP_CLAMP)) { +console.warn("WebGL1 doesn't support all wrap modes with NPOT textures"); +this._wrapS = o.enums.WRAP_CLAMP; +this._wrapT = o.enums.WRAP_CLAMP; +} +var i = this._genMipmap ? this._mipFilter : -1; +if (!e && -1 !== i) { +console.warn("NPOT textures do not support mipmap filter"); +i = -1; +} +t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, (0, o.glFilter)(t, this._minFilter, i)); +t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, (0, o.glFilter)(t, this._magFilter, -1)); +t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, this._wrapS); +t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, this._wrapT); +var n = this._device.ext("EXT_texture_filter_anisotropic"); +n && t.texParameteri(t.TEXTURE_2D, n.TEXTURE_MAX_ANISOTROPY_EXT, this._anisotropy); +}; +return e; +})(s.default); +r.default = u; +n.exports = r.default; +}), { +"./enums": 346, +"./misc": 350, +"./texture": 356 +} ], +355: [ (function(i, n, r) { +"use strict"; +r.__esModule = !0; +r.default = void 0; +var s = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(i("./texture")), o = i("./enums"), a = i("./misc"); +function c(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +function l(i, n) { +if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); +return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; +} +function h(i, n) { +if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); +i.prototype = Object.create(n && n.prototype, { +constructor: { +value: i, +enumerable: !1, +writable: !0, +configurable: !0 +} +}); +n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); +} +var u = (function(t) { +h(e, t); +function e(i, n) { +c(this, e); +var r = l(this, t.call(this, i)), s = r._device._gl; +r._target = s.TEXTURE_CUBE_MAP; +r._glID = s.createTexture(); +r.update(n); +return r; +} +e.prototype.update = function(t) { +var e = this._device._gl, i = this._genMipmaps; +if (t) { +void 0 !== t.width && (this._width = t.width); +void 0 !== t.height && (this._height = t.height); +void 0 !== t.anisotropy && (this._anisotropy = t.anisotropy); +void 0 !== t.minFilter && (this._minFilter = t.minFilter); +void 0 !== t.magFilter && (this._magFilter = t.magFilter); +void 0 !== t.mipFilter && (this._mipFilter = t.mipFilter); +void 0 !== t.wrapS && (this._wrapS = t.wrapS); +void 0 !== t.wrapT && (this._wrapT = t.wrapT); +if (void 0 !== t.format) { +this._format = t.format; +this._compressed = this._format >= o.enums.TEXTURE_FMT_RGB_DXT1 && this._format <= o.enums.TEXTURE_FMT_RGBA_PVRTC_4BPPV1 || this._format >= o.enums.TEXTURE_FMT_RGB_ETC2 && this._format <= o.enums.TEXTURE_FMT_RGBA_ETC2; +} +if (void 0 !== t.genMipmaps) { +this._genMipmaps = t.genMipmaps; +i = t.genMipmaps; +} +if (void 0 !== t.images && t.images.length > 1) { +i = !1; +t.width !== t.height && console.warn("texture-cube width and height should be identical."); +t.width >> t.images.length - 1 != 1 && console.error("texture-cube mipmap is invalid. please set mipmap as 1x1, 2x2, 4x4 ... nxn"); +} +} +(0, a.isPow2)(this._width) && (0, a.isPow2)(this._height) || (i = !1); +e.activeTexture(e.TEXTURE0); +e.bindTexture(e.TEXTURE_CUBE_MAP, this._glID); +if (void 0 !== t.images && t.images.length > 0) { +this._setMipmap(t.images, t.flipY, t.premultiplyAlpha); +t.images.length > 1 && (this._genMipmaps = !0); +} +if (i) { +e.hint(e.GENERATE_MIPMAP_HINT, e.NICEST); +e.generateMipmap(e.TEXTURE_CUBE_MAP); +this._genMipmaps = !0; +} +this._setTexInfo(); +this._device._restoreTexture(0); +}; +e.prototype.updateSubImage = function(t) { +var e = this._device._gl, i = (0, o.glTextureFmt)(this._format); +e.activeTexture(e.TEXTURE0); +e.bindTexture(e.TEXTURE_CUBE_MAP, this._glID); +this._setSubImage(i, t); +this._device._restoreTexture(0); +}; +e.prototype.updateImage = function(t) { +var e = this._device._gl, i = (0, o.glTextureFmt)(this._format); +e.activeTexture(e.TEXTURE0); +e.bindTexture(e.TEXTURE_CUBE_MAP, this._glID); +this._setImage(i, t); +this._device._restoreTexture(0); +}; +e.prototype._setSubImage = function(t, e) { +var i = this._device._gl, n = e.flipY, r = e.premultiplyAlpha, s = e.faceIndex, o = e.image; +void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !1) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n); +void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r); +!o || ArrayBuffer.isView(o) || o instanceof ArrayBuffer ? this._compressed ? i.compressedTexSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, e.x, e.y, e.width, e.height, t.format, o) : i.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, e.x, e.y, e.width, e.height, t.format, t.pixelType, o) : i.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, e.x, e.y, t.format, t.pixelType, o); +}; +e.prototype._setImage = function(t, e) { +var i = this._device._gl, n = e.flipY, r = e.premultiplyAlpha, s = e.faceIndex, o = e.image; +void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !1) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n); +void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r); +!o || ArrayBuffer.isView(o) || o instanceof ArrayBuffer ? this._compressed ? i.compressedTexImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, t.internalFormat, e.width, e.height, 0, o) : i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, t.internalFormat, e.width, e.height, 0, t.format, t.pixelType, o) : i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, t.internalFormat, t.format, t.pixelType, o); +}; +e.prototype._setMipmap = function(t, e, i) { +for (var n = (0, o.glTextureFmt)(this._format), r = { +width: this._width, +height: this._height, +faceIndex: 0, +flipY: e, +premultiplyAlpha: i, +level: 0, +image: null +}, s = 0; s < t.length; ++s) { +var a = t[s]; +r.level = s; +r.width = this._width >> s; +r.height = this._height >> s; +for (var c = 0; c < 6; ++c) { +r.faceIndex = c; +r.image = a[c]; +this._setImage(n, r); +} +} +}; +e.prototype._setTexInfo = function() { +var t = this._device._gl, e = (0, a.isPow2)(this._width) && (0, a.isPow2)(this._height); +if (!e && (this._wrapS !== o.enums.WRAP_CLAMP || this._wrapT !== o.enums.WRAP_CLAMP)) { +console.warn("WebGL1 doesn't support all wrap modes with NPOT textures"); +this._wrapS = o.enums.WRAP_CLAMP; +this._wrapT = o.enums.WRAP_CLAMP; +} +var i = this._genMipmaps ? this._mipFilter : -1; +if (!e && -1 !== i) { +console.warn("NPOT textures do not support mipmap filter"); +i = -1; +} +t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MIN_FILTER, (0, o.glFilter)(t, this._minFilter, i)); +t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MAG_FILTER, (0, o.glFilter)(t, this._magFilter, -1)); +t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_WRAP_S, this._wrapS); +t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_WRAP_T, this._wrapT); +var n = this._device.ext("EXT_texture_filter_anisotropic"); +n && t.texParameteri(t.TEXTURE_CUBE_MAP, n.TEXTURE_MAX_ANISOTROPY_EXT, this._anisotropy); +}; +return e; +})(s.default); +r.default = u; +n.exports = r.default; +}), { +"./enums": 346, +"./misc": 350, +"./texture": 356 +} ], +356: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = t("./enums"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = 0, o = (function() { +function t(e) { +r(this, t); +this._device = e; +this._width = 4; +this._height = 4; +this._genMipmaps = !1; +this._compressed = !1; +this._anisotropy = 1; +this._minFilter = n.enums.FILTER_LINEAR; +this._magFilter = n.enums.FILTER_LINEAR; +this._mipFilter = n.enums.FILTER_LINEAR; +this._wrapS = n.enums.WRAP_REPEAT; +this._wrapT = n.enums.WRAP_REPEAT; +this._format = n.enums.TEXTURE_FMT_RGBA8; +this._target = -1; +this._id = s++; +} +t.prototype.destroy = function() { +if (null !== this._glID) { +this._device._gl.deleteTexture(this._glID); +this._device._stats.tex -= this.bytes; +this._glID = null; +} else console.error("The texture already destroyed"); +}; +return t; +})(); +i.default = o; +e.exports = i.default; +}), { +"./enums": 346 +} ], +357: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(); +t("./enums"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t(e, i, n, s, o) { +r(this, t); +this._device = e; +this._format = i; +this._usage = n; +this._numVertices = o; +this._bytes = this._format._bytes * o; +this._glID = e._gl.createBuffer(); +this.update(0, s); +e._stats.vb += this._bytes; +} +t.prototype.destroy = function() { +if (-1 !== this._glID) { +this._device._gl.deleteBuffer(this._glID); +this._device._stats.vb -= this.bytes; +this._glID = -1; +} else console.error("The buffer already destroyed"); +}; +t.prototype.update = function(t, e) { +if (-1 !== this._glID) if (e && e.byteLength + t > this._bytes) console.error("Failed to update data, bytes exceed."); else { +var i = this._device._gl, n = this._usage; +i.bindBuffer(i.ARRAY_BUFFER, this._glID); +e ? t ? i.bufferSubData(i.ARRAY_BUFFER, t, e) : i.bufferData(i.ARRAY_BUFFER, e, n) : this._bytes ? i.bufferData(i.ARRAY_BUFFER, this._bytes, n) : console.warn("bufferData should not submit 0 bytes data"); +i.bindBuffer(i.ARRAY_BUFFER, null); +} else console.error("The buffer is destroyed"); +}; +n(t, [ { +key: "count", +get: function() { +return this._numVertices; +} +} ]); +return t; +})(); +i.default = s; +e.exports = i.default; +}), { +"./enums": 346 +} ], +358: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = t("./enums"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t(e) { +r(this, t); +this._attr2el = {}; +this._elements = []; +this._bytes = 0; +for (var i = 0, s = e.length; i < s; ++i) { +var o = e[i], a = { +name: o.name, +offset: this._bytes, +stride: 0, +stream: -1, +type: o.type, +num: o.num, +normalize: void 0 !== o.normalize && o.normalize, +bytes: o.num * (0, n.attrTypeBytes)(o.type) +}; +this._attr2el[a.name] = a; +this._elements.push(a); +this._bytes += a.bytes; +} +for (var c = 0, l = this._elements.length; c < l; ++c) { +this._elements[c].stride = this._bytes; +} +} +t.prototype.element = function(t) { +return this._attr2el[t]; +}; +return t; +})(); +i.default = s; +e.exports = i.default; +}), { +"./enums": 346 +} ], +359: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +function n(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var r = (function() { +function t(e, i) { +n(this, t); +this._cursor = 0; +this._data = new Array(i); +for (var r = 0; r < i; ++r) this._data[r] = e(); +} +t.prototype.request = function() { +var t = this._data[this._cursor]; +this._cursor = (this._cursor + 1) % this._data.length; +return t; +}; +return t; +})(); +i.default = r; +e.exports = i.default; +}), {} ], +360: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./timsort")); +function s(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var o = (function() { +function t(e) { +s(this, t); +this._count = 0; +this._data = new Array(e); +} +t.prototype._resize = function(t) { +if (t > this._data.length) for (var e = this._data.length; e < t; ++e) this._data[e] = void 0; +}; +t.prototype.reset = function() { +for (var t = 0; t < this._count; ++t) this._data[t] = void 0; +this._count = 0; +}; +t.prototype.push = function(t) { +this._count >= this._data.length && this._resize(2 * this._data.length); +this._data[this._count] = t; +++this._count; +}; +t.prototype.pop = function() { +--this._count; +this._count < 0 && (this._count = 0); +var t = this._data[this._count]; +this._data[this._count] = void 0; +return t; +}; +t.prototype.fastRemove = function(t) { +if (!(t >= this._count || t < 0)) { +var e = this._count - 1; +this._data[t] = this._data[e]; +this._data[e] = void 0; +this._count -= 1; +} +}; +t.prototype.indexOf = function(t) { +return this._data.indexOf(t); +}; +t.prototype.sort = function(t) { +return (0, r.default)(this._data, 0, this._count, t); +}; +n(t, [ { +key: "length", +get: function() { +return this._count; +} +}, { +key: "data", +get: function() { +return this._data; +} +} ]); +return t; +})(); +i.default = o; +e.exports = i.default; +}), { +"./timsort": 365 +} ], +361: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = t("./circular-pool"); +Object.defineProperty(i, "CircularPool", { +enumerable: !0, +get: function() { +return l(n).default; +} +}); +var r = t("./fixed-array"); +Object.defineProperty(i, "FixedArray", { +enumerable: !0, +get: function() { +return l(r).default; +} +}); +var s = t("./linked-array"); +Object.defineProperty(i, "LinkedArray", { +enumerable: !0, +get: function() { +return l(s).default; +} +}); +var o = t("./pool"); +Object.defineProperty(i, "Pool", { +enumerable: !0, +get: function() { +return l(o).default; +} +}); +var a = t("./recycle-pool"); +Object.defineProperty(i, "RecyclePool", { +enumerable: !0, +get: function() { +return l(a).default; +} +}); +var c = t("./typed-array-pool"); +Object.defineProperty(i, "TypedArrayPool", { +enumerable: !0, +get: function() { +return l(c).default; +} +}); +function l(t) { +return t && t.__esModule ? t : { +default: t +}; +} +}), { +"./circular-pool": 359, +"./fixed-array": 360, +"./linked-array": 362, +"./pool": 363, +"./recycle-pool": 364, +"./typed-array-pool": 366 +} ], +362: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./pool")); +function s(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var o = (function() { +function t(e, i) { +s(this, t); +this._fn = e; +this._count = 0; +this._head = null; +this._tail = null; +this._pool = new r.default(e, i); +} +t.prototype.add = function() { +var t = this._pool.alloc(); +if (this._tail) { +this._tail._next = t; +t._prev = this._tail; +} else this._head = t; +this._tail = t; +this._count += 1; +return t; +}; +t.prototype.remove = function(t) { +t._prev ? t._prev._next = t._next : this._head = t._next; +t._next ? t._next._prev = t._prev : this._tail = t._prev; +t._next = null; +t._prev = null; +this._pool.free(t); +this._count -= 1; +}; +t.prototype.forEach = function(t, e) { +var i = this._head; +if (i) { +e && (t = t.bind(e)); +for (var n = 0, r = i; i; ) { +r = i._next; +t(i, n, this); +i = r; +++n; +} +} +}; +n(t, [ { +key: "head", +get: function() { +return this._head; +} +}, { +key: "tail", +get: function() { +return this._tail; +} +}, { +key: "length", +get: function() { +return this._count; +} +} ]); +return t; +})(); +i.default = o; +e.exports = i.default; +}), { +"./pool": 363 +} ], +363: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +function n(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var r = (function() { +function t(e, i) { +n(this, t); +this._fn = e; +this._idx = i - 1; +this._frees = new Array(i); +for (var r = 0; r < i; ++r) this._frees[r] = e(); +} +t.prototype._expand = function(t) { +var e = this._frees; +this._frees = new Array(t); +for (var i = t - e.length, n = 0; n < i; ++n) this._frees[n] = this._fn(); +for (var r = i, s = 0; r < t; ++r, ++s) this._frees[r] = e[s]; +this._idx += i; +}; +t.prototype.alloc = function() { +this._idx < 0 && this._expand(Math.round(1.2 * this._frees.length) + 1); +var t = this._frees[this._idx]; +this._frees[this._idx] = null; +--this._idx; +return t; +}; +t.prototype.free = function(t) { +++this._idx; +this._frees[this._idx] = t; +}; +return t; +})(); +i.default = r; +e.exports = i.default; +}), {} ], +364: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(), r = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("./timsort")); +function s(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var o = (function() { +function t(e, i) { +s(this, t); +this._fn = e; +this._count = 0; +this._data = new Array(i); +for (var n = 0; n < i; ++n) this._data[n] = e(); +} +t.prototype.reset = function() { +this._count = 0; +}; +t.prototype.resize = function(t) { +if (t > this._data.length) for (var e = this._data.length; e < t; ++e) this._data[e] = this._fn(); +}; +t.prototype.add = function() { +this._count >= this._data.length && this.resize(2 * this._data.length); +return this._data[this._count++]; +}; +t.prototype.remove = function(t) { +if (!(t >= this._count)) { +var e = this._count - 1, i = this._data[t]; +this._data[t] = this._data[e]; +this._data[e] = i; +this._count -= 1; +} +}; +t.prototype.sort = function(t) { +return (0, r.default)(this._data, 0, this._count, t); +}; +n(t, [ { +key: "length", +get: function() { +return this._count; +} +}, { +key: "data", +get: function() { +return this._data; +} +} ]); +return t; +})(); +i.default = o; +e.exports = i.default; +}), { +"./timsort": 365 +} ], +365: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = function(t, e, i, n) { +if (!Array.isArray(t)) throw new TypeError("Can only sort arrays"); +void 0 === e && (e = 0); +void 0 === i && (i = t.length); +void 0 === n && (n = l); +var s = i - e; +if (!(s < 2)) { +var o = 0; +if (s < r) f(t, e, i, e + (o = u(t, e, i, n)), n); else { +var a = new p(t, n), c = h(s); +do { +if ((o = u(t, e, i, n)) < c) { +var _ = s; +_ > c && (_ = c); +f(t, e, e + _, e + o, n); +o = _; +} +a.pushRun(e, o); +a.mergeRuns(); +s -= o; +e += o; +} while (0 !== s); +a.forceMergeRuns(); +} +} +}; +function n(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var r = 32, s = 7, o = 256, a = [ 1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9 ]; +function c(t) { +return t < 1e5 ? t < 100 ? t < 10 ? 0 : 1 : t < 1e4 ? t < 1e3 ? 2 : 3 : 4 : t < 1e7 ? t < 1e6 ? 5 : 6 : t < 1e9 ? t < 1e8 ? 7 : 8 : 9; +} +function l(t, e) { +if (t === e) return 0; +if (~~t === t && ~~e === e) { +if (0 === t || 0 === e) return t < e ? -1 : 1; +if (t < 0 || e < 0) { +if (e >= 0) return -1; +if (t >= 0) return 1; +t = -t; +e = -e; +} +var i = c(t), n = c(e), r = 0; +if (i < n) { +t *= a[n - i - 1]; +e /= 10; +r = -1; +} else if (i > n) { +e *= a[i - n - 1]; +t /= 10; +r = 1; +} +return t === e ? r : t < e ? -1 : 1; +} +var s = String(t), o = String(e); +return s === o ? 0 : s < o ? -1 : 1; +} +function h(t) { +for (var e = 0; t >= r; ) { +e |= 1 & t; +t >>= 1; +} +return t + e; +} +function u(t, e, i, n) { +var r = e + 1; +if (r === i) return 1; +if (n(t[r++], t[e]) < 0) { +for (;r < i && n(t[r], t[r - 1]) < 0; ) r++; +_(t, e, r); +} else for (;r < i && n(t[r], t[r - 1]) >= 0; ) r++; +return r - e; +} +function _(t, e, i) { +i--; +for (;e < i; ) { +var n = t[e]; +t[e++] = t[i]; +t[i--] = n; +} +} +function f(t, e, i, n, r) { +n === e && n++; +for (;n < i; n++) { +for (var s = t[n], o = e, a = n; o < a; ) { +var c = o + a >>> 1; +r(s, t[c]) < 0 ? a = c : o = c + 1; +} +var l = n - o; +switch (l) { +case 3: +t[o + 3] = t[o + 2]; + +case 2: +t[o + 2] = t[o + 1]; + +case 1: +t[o + 1] = t[o]; +break; + +default: +for (;l > 0; ) { +t[o + l] = t[o + l - 1]; +l--; +} +} +t[o] = s; +} +} +function d(t, e, i, n, r, s) { +var o = 0, a = 0, c = 1; +if (s(t, e[i + r]) > 0) { +a = n - r; +for (;c < a && s(t, e[i + r + c]) > 0; ) { +o = c; +(c = 1 + (c << 1)) <= 0 && (c = a); +} +c > a && (c = a); +o += r; +c += r; +} else { +a = r + 1; +for (;c < a && s(t, e[i + r - c]) <= 0; ) { +o = c; +(c = 1 + (c << 1)) <= 0 && (c = a); +} +c > a && (c = a); +var l = o; +o = r - c; +c = r - l; +} +o++; +for (;o < c; ) { +var h = o + (c - o >>> 1); +s(t, e[i + h]) > 0 ? o = h + 1 : c = h; +} +return c; +} +function m(t, e, i, n, r, s) { +var o = 0, a = 0, c = 1; +if (s(t, e[i + r]) < 0) { +a = r + 1; +for (;c < a && s(t, e[i + r - c]) < 0; ) { +o = c; +(c = 1 + (c << 1)) <= 0 && (c = a); +} +c > a && (c = a); +var l = o; +o = r - c; +c = r - l; +} else { +a = n - r; +for (;c < a && s(t, e[i + r + c]) >= 0; ) { +o = c; +(c = 1 + (c << 1)) <= 0 && (c = a); +} +c > a && (c = a); +o += r; +c += r; +} +o++; +for (;o < c; ) { +var h = o + (c - o >>> 1); +s(t, e[i + h]) < 0 ? c = h : o = h + 1; +} +return c; +} +var p = (function() { +function t(e, i) { +n(this, t); +this.array = e; +this.compare = i; +this.minGallop = s; +this.length = e.length; +this.tmpStorageLength = o; +this.length < 2 * o && (this.tmpStorageLength = this.length >>> 1); +this.tmp = new Array(this.tmpStorageLength); +this.stackLength = this.length < 120 ? 5 : this.length < 1542 ? 10 : this.length < 119151 ? 19 : 40; +this.runStart = new Array(this.stackLength); +this.runLength = new Array(this.stackLength); +this.stackSize = 0; +} +t.prototype.pushRun = function(t, e) { +this.runStart[this.stackSize] = t; +this.runLength[this.stackSize] = e; +this.stackSize += 1; +}; +t.prototype.mergeRuns = function() { +for (;this.stackSize > 1; ) { +var t = this.stackSize - 2; +if (t >= 1 && this.runLength[t - 1] <= this.runLength[t] + this.runLength[t + 1] || t >= 2 && this.runLength[t - 2] <= this.runLength[t] + this.runLength[t - 1]) this.runLength[t - 1] < this.runLength[t + 1] && t--; else if (this.runLength[t] > this.runLength[t + 1]) break; +this.mergeAt(t); +} +}; +t.prototype.forceMergeRuns = function() { +for (;this.stackSize > 1; ) { +var t = this.stackSize - 2; +t > 0 && this.runLength[t - 1] < this.runLength[t + 1] && t--; +this.mergeAt(t); +} +}; +t.prototype.mergeAt = function(t) { +var e = this.compare, i = this.array, n = this.runStart[t], r = this.runLength[t], s = this.runStart[t + 1], o = this.runLength[t + 1]; +this.runLength[t] = r + o; +if (t === this.stackSize - 3) { +this.runStart[t + 1] = this.runStart[t + 2]; +this.runLength[t + 1] = this.runLength[t + 2]; +} +this.stackSize--; +var a = m(i[s], i, n, r, 0, e); +n += a; +0 !== (r -= a) && 0 !== (o = d(i[n + r - 1], i, s, o, o - 1, e)) && (r <= o ? this.mergeLow(n, r, s, o) : this.mergeHigh(n, r, s, o)); +}; +t.prototype.mergeLow = function(t, e, i, n) { +var r = this.compare, o = this.array, a = this.tmp, c = 0; +for (c = 0; c < e; c++) a[c] = o[t + c]; +var l = 0, h = i, u = t; +o[u++] = o[h++]; +if (0 != --n) if (1 !== e) { +for (var _ = this.minGallop; ;) { +var f = 0, p = 0, v = !1; +do { +if (r(o[h], a[l]) < 0) { +o[u++] = o[h++]; +p++; +f = 0; +if (0 == --n) { +v = !0; +break; +} +} else { +o[u++] = a[l++]; +f++; +p = 0; +if (1 == --e) { +v = !0; +break; +} +} +} while ((f | p) < _); +if (v) break; +do { +if (0 !== (f = m(o[h], a, l, e, 0, r))) { +for (c = 0; c < f; c++) o[u + c] = a[l + c]; +u += f; +l += f; +if ((e -= f) <= 1) { +v = !0; +break; +} +} +o[u++] = o[h++]; +if (0 == --n) { +v = !0; +break; +} +if (0 !== (p = d(a[l], o, h, n, 0, r))) { +for (c = 0; c < p; c++) o[u + c] = o[h + c]; +u += p; +h += p; +if (0 === (n -= p)) { +v = !0; +break; +} +} +o[u++] = a[l++]; +if (1 == --e) { +v = !0; +break; +} +_--; +} while (f >= s || p >= s); +if (v) break; +_ < 0 && (_ = 0); +_ += 2; +} +this.minGallop = _; +_ < 1 && (this.minGallop = 1); +if (1 === e) { +for (c = 0; c < n; c++) o[u + c] = o[h + c]; +o[u + n] = a[l]; +} else { +if (0 === e) throw new Error("mergeLow preconditions were not respected"); +for (c = 0; c < e; c++) o[u + c] = a[l + c]; +} +} else { +for (c = 0; c < n; c++) o[u + c] = o[h + c]; +o[u + n] = a[l]; +} else for (c = 0; c < e; c++) o[u + c] = a[l + c]; +}; +t.prototype.mergeHigh = function(t, e, i, n) { +var r = this.compare, o = this.array, a = this.tmp, c = 0; +for (c = 0; c < n; c++) a[c] = o[i + c]; +var l = t + e - 1, h = n - 1, u = i + n - 1, _ = 0, f = 0; +o[u--] = o[l--]; +if (0 != --e) if (1 !== n) { +for (var p = this.minGallop; ;) { +var v = 0, y = 0, g = !1; +do { +if (r(a[h], o[l]) < 0) { +o[u--] = o[l--]; +v++; +y = 0; +if (0 == --e) { +g = !0; +break; +} +} else { +o[u--] = a[h--]; +y++; +v = 0; +if (1 == --n) { +g = !0; +break; +} +} +} while ((v | y) < p); +if (g) break; +do { +if (0 !== (v = e - m(a[h], o, t, e, e - 1, r))) { +e -= v; +f = (u -= v) + 1; +_ = (l -= v) + 1; +for (c = v - 1; c >= 0; c--) o[f + c] = o[_ + c]; +if (0 === e) { +g = !0; +break; +} +} +o[u--] = a[h--]; +if (1 == --n) { +g = !0; +break; +} +if (0 !== (y = n - d(o[l], a, 0, n, n - 1, r))) { +n -= y; +f = (u -= y) + 1; +_ = (h -= y) + 1; +for (c = 0; c < y; c++) o[f + c] = a[_ + c]; +if (n <= 1) { +g = !0; +break; +} +} +o[u--] = o[l--]; +if (0 == --e) { +g = !0; +break; +} +p--; +} while (v >= s || y >= s); +if (g) break; +p < 0 && (p = 0); +p += 2; +} +this.minGallop = p; +p < 1 && (this.minGallop = 1); +if (1 === n) { +f = (u -= e) + 1; +_ = (l -= e) + 1; +for (c = e - 1; c >= 0; c--) o[f + c] = o[_ + c]; +o[u] = a[h]; +} else { +if (0 === n) throw new Error("mergeHigh preconditions were not respected"); +_ = u - (n - 1); +for (c = 0; c < n; c++) o[_ + c] = a[c]; +} +} else { +f = (u -= e) + 1; +_ = (l -= e) + 1; +for (c = e - 1; c >= 0; c--) o[f + c] = o[_ + c]; +o[u] = a[h]; +} else { +_ = u - (n - 1); +for (c = 0; c < n; c++) o[_ + c] = a[c]; +} +}; +return t; +})(); +e.exports = i.default; +}), {} ], +366: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +for (var n = Array(8), r = 0; r < 8; ++r) n[r] = []; +function s(t) { +for (var e = 16; e <= 1 << 28; e *= 16) if (t <= e) return e; +return 0; +} +function o(t) { +var e = void 0, i = void 0; +e = (t > 65535) << 4; +e |= i = ((t >>>= e) > 255) << 3; +e |= i = ((t >>>= i) > 15) << 2; +return (e |= i = ((t >>>= i) > 3) << 1) | (t >>>= i) >> 1; +} +function a(t) { +var e = s(t), i = n[o(e) >> 2]; +return i.length > 0 ? i.pop() : new ArrayBuffer(e); +} +function c(t) { +n[o(t.byteLength) >> 2].push(t); +} +i.default = { +alloc_int8: function(t) { +var e = new Int8Array(a(t), 0, t); +return e.length !== t ? e.subarray(0, t) : e; +}, +alloc_uint8: function(t) { +var e = new Uint8Array(a(t), 0, t); +return e.length !== t ? e.subarray(0, t) : e; +}, +alloc_int16: function(t) { +var e = new Int16Array(a(2 * t), 0, t); +return e.length !== t ? e.subarray(0, t) : e; +}, +alloc_uint16: function(t) { +var e = new Uint16Array(a(2 * t), 0, t); +return e.length !== t ? e.subarray(0, t) : e; +}, +alloc_int32: function(t) { +var e = new Int32Array(a(4 * t), 0, t); +return e.length !== t ? e.subarray(0, t) : e; +}, +alloc_uint32: function(t) { +var e = new Uint32Array(a(4 * t), 0, t); +return e.length !== t ? e.subarray(0, t) : e; +}, +alloc_float32: function(t) { +var e = new Float32Array(a(4 * t), 0, t); +return e.length !== t ? e.subarray(0, t) : e; +}, +alloc_float64: function(t) { +var e = new Float64Array(a(8 * t), 0, t); +return e.length !== t ? e.subarray(0, t) : e; +}, +alloc_dataview: function(t) { +var e = new DataView(a(t), 0, t); +return e.length !== t ? e.subarray(0, t) : e; +}, +free: function(t) { +c(t.buffer); +}, +reset: function() { +for (var t = Array(8), e = 0; e < 8; ++e) t[e] = []; +} +}; +e.exports = i.default; +}), {} ], +367: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +function n(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +i.default = function t() { +n(this, t); +this.material = null; +this.vertexCount = 0; +this.indiceCount = 0; +}; +e.exports = i.default; +}), {} ], +368: [ (function(i, n, r) { +"use strict"; +r.__esModule = !0; +r.default = void 0; +var s = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(); +function o(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +function a(i, n) { +if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); +return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; +} +function c(i, n) { +if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); +i.prototype = Object.create(n && n.prototype, { +constructor: { +value: i, +enumerable: !1, +writable: !0, +configurable: !0 +} +}); +n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); +} +var l = (function(t) { +c(e, t); +function e() { +o(this, e); +var i = a(this, t.call(this)); +i.ia = null; +return i; +} +s(e, [ { +key: "type", +get: function() { +return e.type; +} +} ]); +return e; +})(function(t) { +return t && t.__esModule ? t : { +default: t +}; +}(i("./base-render-data")).default); +r.default = l; +l.type = "IARenderData"; +cc.IARenderData = l; +n.exports = r.default; +}), { +"./base-render-data": 367 +} ], +369: [ (function(i, n, r) { +"use strict"; +r.__esModule = !0; +r.default = void 0; +var s, o = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(), a = i("../memop"), c = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(i("./base-render-data")); +function l(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +function h(i, n) { +if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); +return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; +} +function u(i, n) { +if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); +i.prototype = Object.create(n && n.prototype, { +constructor: { +value: i, +enumerable: !1, +writable: !0, +configurable: !0 +} +}); +n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); +} +var _ = new a.Pool(function() { +return { +x: 0, +y: 0, +z: 0, +u: 0, +v: 0, +color: 0 +}; +}, 128), f = (function(t) { +u(e, t); +function e() { +l(this, e); +var i = h(this, t.call(this)); +i._data = []; +i._indices = []; +i._pivotX = 0; +i._pivotY = 0; +i._width = 0; +i._height = 0; +i.uvDirty = !0; +i.vertDirty = !0; +return i; +} +e.prototype.updateSizeNPivot = function(t, e, i, n) { +if (t !== this._width || e !== this._height || i !== this._pivotX || n !== this._pivotY) { +this._width = t; +this._height = e; +this._pivotX = i; +this._pivotY = n; +this.vertDirty = !0; +} +}; +e.alloc = function() { +return s.alloc(); +}; +e.free = function(t) { +if (t instanceof e) { +for (var i = t._data.length - 1; i >= 0; i--) _.free(t._data[i]); +t._data.length = 0; +t._indices.length = 0; +t.material = null; +t.uvDirty = !0; +t.vertDirty = !0; +t.vertexCount = 0; +t.indiceCount = 0; +s.free(t); +} +}; +o(e, [ { +key: "type", +get: function() { +return e.type; +} +}, { +key: "dataLength", +get: function() { +return this._data.length; +}, +set: function(t) { +var e = this._data; +if (e.length !== t) { +for (var i = t; i < e.length; i++) _.free(e[i]); +for (var n = e.length; n < t; n++) e[n] = _.alloc(); +e.length = t; +} +} +} ]); +return e; +})(c.default); +r.default = f; +f.type = "RenderData"; +s = new a.Pool(function() { +return new f(); +}, 32); +n.exports = r.default; +}), { +"../memop": 361, +"./base-render-data": 367 +} ], +370: [ (function(i, n, r) { +"use strict"; +r.__esModule = !0; +r.default = void 0; +var s = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(), o = i("../../core/vmath"), a = h(i("../core/base-renderer")), c = h(i("../enums")), l = i("../memop"); +function h(t) { +return t && t.__esModule ? t : { +default: t +}; +} +function u(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +function _(i, n) { +if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); +return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; +} +function f(i, n) { +if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); +i.prototype = Object.create(n && n.prototype, { +constructor: { +value: i, +enumerable: !1, +writable: !0, +configurable: !0 +} +}); +n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); +} +var d = new Float32Array(16), m = new Float32Array(16), p = new Float32Array(16), v = new Float32Array(3), y = new Float32Array(16), g = o.vec3.create(0, 0, 0), x = o.vec3.create(0, 0, 0), C = o.vec3.create(0, 0, 0), b = new l.RecyclePool(function() { +return new Float32Array(16); +}, 8), A = (function(t) { +f(e, t); +function e(i, n) { +u(this, e); +var r = _(this, t.call(this, i, n)); +r._directionalLights = []; +r._pointLights = []; +r._spotLights = []; +r._shadowLights = []; +r._sceneAmbient = new Float32Array([ 0, 0, 0 ]); +r._numLights = 0; +r._defines = {}; +r._registerStage("shadowcast", r._shadowStage.bind(r)); +r._registerStage("opaque", r._opaqueStage.bind(r)); +r._registerStage("transparent", r._transparentStage.bind(r)); +return r; +} +e.prototype.render = function(t) { +this.reset(); +this._updateLights(t); +for (var e = this._device._gl.canvas, i = 0; i < t._cameras.length; ++i) { +var n = this._requestView(), r = e.width, s = e.height; +t._cameras.data[i].extractView(n, r, s); +} +this._viewPools.sort((function(t, e) { +return t._priority - e._priority; +})); +for (var o = 0; o < this._viewPools.length; ++o) { +var a = this._viewPools.data[o]; +this._render(a, t); +} +}; +e.prototype.renderCamera = function(t, e) { +this.reset(); +var i = this._device._gl.canvas, n = i.width, r = i.height, s = this._requestView(); +t.extractView(s, n, r); +this._render(s, e); +}; +e.prototype._updateLights = function(t) { +this._directionalLights.length = 0; +this._pointLights.length = 0; +this._spotLights.length = 0; +this._shadowLights.length = 0; +for (var e = t._lights, i = 0; i < e.length; ++i) { +var n = e.data[i]; +n.update(this._device); +if (n.shadowType !== c.default.SHADOW_NONE) { +this._shadowLights.push(n); +var r = this._requestView(); +n.extractView(r, [ "shadowcast" ]); +} +n._type === c.default.LIGHT_DIRECTIONAL ? this._directionalLights.push(n) : n._type === c.default.LIGHT_POINT ? this._pointLights.push(n) : this._spotLights.push(n); +} +this._updateDefines(); +this._numLights = e._count; +}; +e.prototype._updateDefines = function() { +var t = this._defines; +t._NUM_DIR_LIGHTS = Math.min(4, this._directionalLights.length); +t._NUM_POINT_LIGHTS = Math.min(4, this._pointLights.length); +t._NUM_SPOT_LIGHTS = Math.min(4, this._spotLights.length); +t._NUM_SHADOW_LIGHTS = Math.min(4, this._shadowLights.length); +}; +e.prototype._submitLightsUniforms = function() { +var t = this._device; +t.setUniform("cc_sceneAmbient", this._sceneAmbient); +b.reset(); +if (this._directionalLights.length > 0) { +for (var e = b.add(), i = b.add(), n = 0; n < this._directionalLights.length; ++n) { +var r = this._directionalLights[n], s = 4 * n; +e.set(r._directionUniform, s); +i.set(r._colorUniform, s); +} +t.setUniform("cc_dirLightDirection", e); +t.setUniform("cc_dirLightColor", i); +} +if (this._pointLights.length > 0) { +for (var o = b.add(), a = b.add(), c = 0; c < this._pointLights.length; ++c) { +var l = this._pointLights[c], h = 4 * c; +o.set(l._positionUniform, h); +o[h + 3] = l._range; +a.set(l._colorUniform, h); +} +t.setUniform("cc_pointLightPositionAndRange", o); +t.setUniform("cc_pointLightColor", a); +} +if (this._spotLights.length > 0) { +for (var u = b.add(), _ = b.add(), f = b.add(), d = 0; d < this._spotLights.length; ++d) { +var m = this._spotLights[d], p = 4 * d; +u.set(m._positionUniform, p); +u[p + 3] = m._range; +_.set(m._directionUniform, p); +_[p + 3] = m._spotUniform[0]; +f.set(m._colorUniform, p); +f[p + 3] = m._spotUniform[1]; +} +t.setUniform("cc_spotLightPositionAndRange", u); +t.setUniform("cc_spotLightDirection", _); +t.setUniform("cc_spotLightColor", f); +} +}; +e.prototype._submitShadowStageUniforms = function(t) { +var e = t._shadowLight; +this._device.setUniform("cc_minDepth", e.shadowMinDepth); +this._device.setUniform("cc_maxDepth", e.shadowMaxDepth); +this._device.setUniform("cc_bias", e.shadowBias); +this._device.setUniform("cc_depthScale", e.shadowDepthScale); +}; +e.prototype._submitOtherStagesUniforms = function() { +for (var t = 0; t < this._shadowLights.length; ++t) { +var e = this._shadowLights[t]; +this._device.setUniform("cc_lightViewProjMatrix_" + t, o.mat4.array(y, e.viewProjMatrix)); +this._device.setUniform("cc_minDepth_" + t, e.shadowMinDepth); +this._device.setUniform("cc_maxDepth_" + t, e.shadowMaxDepth); +this._device.setUniform("cc_bias_" + t, e.shadowBias); +this._device.setUniform("cc_depthScale_" + t, e.shadowDepthScale); +this._device.setUniform("cc_darkness_" + t, e.shadowDarkness); +this._device.setUniform("cc_frustumEdgeFalloff_" + t, e.frustumEdgeFalloff); +} +}; +e.prototype._updateShaderDefines = function(t) { +t.defines.push(this._defines); +}; +e.prototype._sortItems = function(t) { +t.sort((function(t, e) { +var i = t.technique, n = e.technique; +return i._layer !== n._layer ? i._layer - n._layer : i._passes.length !== n._passes.length ? i._passes.length - n._passes.length : t.sortKey - e.sortKey; +})); +}; +e.prototype._shadowStage = function(t, e) { +this._device.setUniform("cc_lightViewProjMatrix", o.mat4.array(p, t._matViewProj)); +this._submitShadowStageUniforms(t); +for (var i = 0; i < e.length; ++i) { +var n = e.data[i]; +if (this._programLib._getValueFromDefineList("_SHADOW_CASTING", n.defines)) { +this._updateShaderDefines(n); +this._draw(n); +} +} +}; +e.prototype._drawItems = function(t, e) { +var i = this._shadowLights; +if (0 === i.length && 0 === this._numLights) for (var n = 0; n < e.length; ++n) { +var r = e.data[n]; +this._draw(r); +} else for (var s = 0; s < e.length; ++s) { +for (var o = e.data[s], a = 0; a < i.length; ++a) { +var c = i[a]; +this._device.setTexture("_shadowMap_" + a, c.shadowMap, this._allocTextureUnit()); +} +this._updateShaderDefines(o); +this._draw(o); +} +}; +e.prototype._opaqueStage = function(t, e) { +t.getPosition(g); +this._device.setUniform("cc_matView", o.mat4.array(d, t._matView)); +this._device.setUniform("cc_matpProj", o.mat4.array(m, t._matProj)); +this._device.setUniform("cc_matViewProj", o.mat4.array(p, t._matViewProj)); +this._device.setUniform("cc_cameraPos", o.vec3.array(v, g)); +this._submitLightsUniforms(); +this._submitOtherStagesUniforms(); +this._drawItems(t, e); +}; +e.prototype._transparentStage = function(t, e) { +t.getPosition(g); +t.getForward(x); +this._device.setUniform("cc_matView", o.mat4.array(d, t._matView)); +this._device.setUniform("cc_matpProj", o.mat4.array(m, t._matProj)); +this._device.setUniform("cc_matViewProj", o.mat4.array(p, t._matViewProj)); +this._device.setUniform("cc_cameraPos", o.vec3.array(v, g)); +this._submitLightsUniforms(); +this._submitOtherStagesUniforms(); +for (var i = 0; i < e.length; ++i) { +var n = e.data[i]; +n.node.getWorldPosition(C); +o.vec3.sub(C, C, g); +n.sortKey = -o.vec3.dot(C, x); +} +this._sortItems(e); +this._drawItems(t, e); +}; +s(e, [ { +key: "sceneAmbient", +get: function() { +var t = this._sceneAmbient; +return cc.color(255 * t.r, 255 * t.g, 255 * t.b, 255); +}, +set: function(t) { +this._sceneAmbient[0] = t.r / 255; +this._sceneAmbient[1] = t.g / 255; +this._sceneAmbient[2] = t.b / 255; +} +} ]); +return e; +})(a.default); +r.default = A; +n.exports = r.default; +}), { +"../../core/vmath": 317, +"../core/base-renderer": 337, +"../enums": 344, +"../memop": 361 +} ], +371: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = t("../../core/vmath"), r = o(t("../../core/geom-utils")), s = o(t("../enums")); +function o(t) { +return t && t.__esModule ? t : { +default: t +}; +} +function a(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var c = n.vec3.create(), l = n.vec3.create(), h = n.mat4.create(), u = n.mat4.create(), _ = n.mat4.create(), f = n.mat4.create(), d = n.mat4.create(), m = (function() { +function t() { +a(this, t); +this._poolID = -1; +this._node = null; +this._projection = s.default.PROJ_PERSPECTIVE; +this._priority = 0; +this._color = n.color4.create(.2, .3, .47, 1); +this._depth = 1; +this._stencil = 0; +this._clearFlags = s.default.CLEAR_COLOR | s.default.CLEAR_DEPTH; +this._clearModel = null; +this._stages = []; +this._framebuffer = null; +this._near = .01; +this._far = 1e3; +this._fov = Math.PI / 4; +this._rect = { +x: 0, +y: 0, +w: 1, +h: 1 +}; +this._orthoHeight = 10; +this._cullingMask = 4294967295; +} +t.prototype.getNode = function() { +return this._node; +}; +t.prototype.setNode = function(t) { +this._node = t; +}; +t.prototype.getType = function() { +return this._projection; +}; +t.prototype.setType = function(t) { +this._projection = t; +}; +t.prototype.getPriority = function() { +return this._priority; +}; +t.prototype.setPriority = function(t) { +this._priority = t; +}; +t.prototype.getOrthoHeight = function() { +return this._orthoHeight; +}; +t.prototype.setOrthoHeight = function(t) { +this._orthoHeight = t; +}; +t.prototype.getFov = function() { +return this._fov; +}; +t.prototype.setFov = function(t) { +this._fov = t; +}; +t.prototype.getNear = function() { +return this._near; +}; +t.prototype.setNear = function(t) { +this._near = t; +}; +t.prototype.getFar = function() { +return this._far; +}; +t.prototype.setFar = function(t) { +this._far = t; +}; +t.prototype.getColor = function(t) { +return n.color4.copy(t, this._color); +}; +t.prototype.setColor = function(t, e, i, r) { +n.color4.set(this._color, t, e, i, r); +}; +t.prototype.getDepth = function() { +return this._depth; +}; +t.prototype.setDepth = function(t) { +this._depth = t; +}; +t.prototype.getStencil = function() { +return this._stencil; +}; +t.prototype.setStencil = function(t) { +this._stencil = t; +}; +t.prototype.getClearFlags = function() { +return this._clearFlags; +}; +t.prototype.setClearFlags = function(t) { +this._clearFlags = t; +}; +t.prototype.getRect = function(t) { +t.x = this._rect.x; +t.y = this._rect.y; +t.w = this._rect.w; +t.h = this._rect.h; +return t; +}; +t.prototype.setRect = function(t, e, i, n) { +this._rect.x = t; +this._rect.y = e; +this._rect.w = i; +this._rect.h = n; +}; +t.prototype.getStages = function() { +return this._stages; +}; +t.prototype.setStages = function(t) { +this._stages = t; +}; +t.prototype.getFramebuffer = function() { +return this._framebuffer; +}; +t.prototype.setFramebuffer = function(t) { +this._framebuffer = t; +}; +t.prototype._calcMatrices = function(t, e) { +this._node.getWorldRT(u); +n.mat4.invert(u, u); +var i = t / e; +if (this._projection === s.default.PROJ_PERSPECTIVE) n.mat4.perspective(_, this._fov, i, this._near, this._far); else { +var r = this._orthoHeight * i, o = this._orthoHeight; +n.mat4.ortho(_, -r, r, -o, o, this._near, this._far); +} +n.mat4.mul(f, _, u); +n.mat4.invert(d, f); +}; +t.prototype.extractView = function(t, e, i) { +if (this._framebuffer) { +e = this._framebuffer._width; +i = this._framebuffer._height; +} +t._priority = this._priority; +t._rect.x = this._rect.x * e; +t._rect.y = this._rect.y * i; +t._rect.w = this._rect.w * e; +t._rect.h = this._rect.h * i; +this.getColor(t._color); +t._depth = this._depth; +t._stencil = this._stencil; +t._clearFlags = this._clearFlags; +t._clearModel = this._clearModel; +t._stages = this._stages; +t._framebuffer = this._framebuffer; +this._calcMatrices(e, i); +n.mat4.copy(t._matView, u); +n.mat4.copy(t._matProj, _); +n.mat4.copy(t._matViewProj, f); +n.mat4.copy(t._matInvViewProj, d); +t._cullingMask = this._cullingMask; +}; +t.prototype.screenPointToRay = function(t, e, i, o, a) { +if (!r.default) return a; +a = a || r.default.Ray.create(); +this._calcMatrices(i, o); +var h = this._rect.x * i, u = this._rect.y * o, _ = this._rect.w * i, f = this._rect.h * o; +n.vec3.set(l, (t - h) / _ * 2 - 1, (e - u) / f * 2 - 1, 1); +n.vec3.transformMat4(l, l, d); +if (this._projection === s.default.PROJ_PERSPECTIVE) this._node.getWorldPosition(c); else { +n.vec3.set(c, (t - h) / _ * 2 - 1, (e - u) / f * 2 - 1, -1); +n.vec3.transformMat4(c, c, d); +} +return r.default.Ray.fromPoints(a, c, l); +}; +t.prototype.screenToWorld = function(t, e, i, r) { +this._calcMatrices(i, r); +var o = this._rect.x * i, a = this._rect.y * r, l = this._rect.w * i, h = this._rect.h * r; +if (this._projection === s.default.PROJ_PERSPECTIVE) { +n.vec3.set(t, (e.x - o) / l * 2 - 1, (e.y - a) / h * 2 - 1, 1); +n.vec3.transformMat4(t, t, d); +this._node.getWorldPosition(c); +n.vec3.lerp(t, c, t, (0, n.lerp)(this._near / this._far, 1, e.z)); +} else { +n.vec3.set(t, (e.x - o) / l * 2 - 1, (e.y - a) / h * 2 - 1, 2 * e.z - 1); +n.vec3.transformMat4(t, t, d); +} +return t; +}; +t.prototype.worldToScreen = function(t, e, i, r) { +this._calcMatrices(i, r); +var s = this._rect.x * i, o = this._rect.y * r, a = this._rect.w * i, c = this._rect.h * r; +n.vec3.transformMat4(t, e, f); +t.x = s + .5 * (t.x + 1) * a; +t.y = o + .5 * (t.y + 1) * c; +t.z = .5 * t.z + .5; +return t; +}; +t.prototype.worldMatrixToScreen = function(t, e, i, r) { +this._calcMatrices(i, r); +n.mat4.mul(t, f, e); +var s = i / 2, o = r / 2; +n.mat4.identity(h); +n.mat4.translate(h, h, n.vec3.set(c, s, o, 0)); +n.mat4.scale(h, h, n.vec3.set(c, s, o, 1)); +n.mat4.mul(t, h, t); +return t; +}; +return t; +})(); +i.default = m; +e.exports = i.default; +}), { +"../../core/geom-utils": 138, +"../../core/vmath": 317, +"../enums": 344 +} ], +372: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = (function() { +function t(t, e) { +for (var i = 0; i < e.length; i++) { +var n = e[i]; +n.enumerable = n.enumerable || !1; +n.configurable = !0; +"value" in n && (n.writable = !0); +Object.defineProperty(t, n.key, n); +} +} +return function(e, i, n) { +i && t(e.prototype, i); +n && t(e, n); +return e; +}; +})(), r = t("../../core/vmath"), s = a(t("../gfx")), o = a(t("../enums")); +function a(t) { +return t && t.__esModule ? t : { +default: t +}; +} +function c(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var l = r.vec3.create(0, 0, -1), h = r.mat4.create(), u = r.mat3.create(), _ = r.vec3.create(0, 0, 0); +function f(t, e, i) { +t._node.getWorldRT(e); +r.mat4.invert(e, e); +r.mat4.perspective(i, t._spotAngle * t._spotAngleScale, 1, t._shadowMinDepth, t._shadowMaxDepth); +} +function d(t, e, i) { +t._node.getWorldRT(e); +r.mat4.invert(e, e); +var n = t._shadowFrustumSize / 2; +r.mat4.ortho(i, -n, n, -n, n, t._shadowMinDepth, t._shadowMaxDepth); +} +function m(t, e, i) { +t._node.getWorldRT(e); +r.mat4.invert(e, e); +r.mat4.perspective(i, (0, r.toRadian)(179), 1, t._shadowMinDepth, t._shadowMaxDepth); +} +var p = (function() { +function t() { +c(this, t); +this._poolID = -1; +this._node = null; +this._type = o.default.LIGHT_DIRECTIONAL; +this._color = r.color3.create(1, 1, 1); +this._intensity = 1; +this._range = 1; +this._spotAngle = (0, r.toRadian)(60); +this._spotExp = 1; +this._directionUniform = new Float32Array(3); +this._positionUniform = new Float32Array(3); +this._colorUniform = new Float32Array([ this._color.r * this._intensity, this._color.g * this._intensity, this._color.b * this._intensity ]); +this._spotUniform = new Float32Array([ Math.cos(.5 * this._spotAngle), this._spotExp ]); +this._shadowType = o.default.SHADOW_NONE; +this._shadowFrameBuffer = null; +this._shadowMap = null; +this._shadowMapDirty = !1; +this._shadowDepthBuffer = null; +this._shadowResolution = 1024; +this._shadowBias = 5e-4; +this._shadowDarkness = 1; +this._shadowMinDepth = 1; +this._shadowMaxDepth = 1e3; +this._shadowDepthScale = 50; +this._frustumEdgeFalloff = 0; +this._viewProjMatrix = r.mat4.create(); +this._spotAngleScale = 1; +this._shadowFrustumSize = 50; +} +t.prototype.getNode = function() { +return this._node; +}; +t.prototype.setNode = function(t) { +this._node = t; +}; +t.prototype.setColor = function(t, e, i) { +r.color3.set(this._color, t, e, i); +this._colorUniform[0] = t * this._intensity; +this._colorUniform[1] = e * this._intensity; +this._colorUniform[2] = i * this._intensity; +}; +t.prototype.setIntensity = function(t) { +this._intensity = t; +this._colorUniform[0] = t * this._color.r; +this._colorUniform[1] = t * this._color.g; +this._colorUniform[2] = t * this._color.b; +}; +t.prototype.setType = function(t) { +this._type = t; +}; +t.prototype.setSpotAngle = function(t) { +this._spotAngle = t; +this._spotUniform[0] = Math.cos(.5 * this._spotAngle); +}; +t.prototype.setSpotExp = function(t) { +this._spotExp = t; +this._spotUniform[1] = t; +}; +t.prototype.setRange = function(t) { +this._range = t; +}; +t.prototype.setShadowType = function(t) { +this._shadowType === o.default.SHADOW_NONE && t !== o.default.SHADOW_NONE && (this._shadowMapDirty = !0); +this._shadowType = t; +}; +t.prototype.setShadowResolution = function(t) { +this._shadowResolution !== t && (this._shadowMapDirty = !0); +this._shadowResolution = t; +}; +t.prototype.setShadowBias = function(t) { +this._shadowBias = t; +}; +t.prototype.setShadowDarkness = function(t) { +this._shadowDarkness = t; +}; +t.prototype.setShadowMinDepth = function(t) { +this._shadowMinDepth = t; +}; +t.prototype.setShadowMaxDepth = function(t) { +this._shadowMaxDepth = t; +}; +t.prototype.setShadowDepthScale = function(t) { +this._shadowDepthScale = t; +}; +t.prototype.setFrustumEdgeFalloff = function(t) { +this._frustumEdgeFalloff = t; +}; +t.prototype.setShadowFrustumSize = function(t) { +this._shadowFrustumSize = t; +}; +t.prototype.extractView = function(t, e) { +t._shadowLight = this; +t._priority = -1; +t._rect.x = 0; +t._rect.y = 0; +t._rect.w = this._shadowResolution; +t._rect.h = this._shadowResolution; +r.color4.set(t._color, 1, 1, 1, 1); +t._depth = 1; +t._stencil = 1; +t._clearFlags = o.default.CLEAR_COLOR | o.default.CLEAR_DEPTH; +t._stages = e; +t._framebuffer = this._shadowFrameBuffer; +switch (this._type) { +case o.default.LIGHT_SPOT: +f(this, t._matView, t._matProj); +break; + +case o.default.LIGHT_DIRECTIONAL: +d(this, t._matView, t._matProj); +break; + +case o.default.LIGHT_POINT: +m(this, t._matView, t._matProj); +break; + +default: +console.warn("shadow of this light type is not supported"); +} +r.mat4.mul(t._matViewProj, t._matProj, t._matView); +this._viewProjMatrix = t._matViewProj; +r.mat4.invert(t._matInvViewProj, t._matViewProj); +t._cullingMask = 4294967295; +}; +t.prototype._updateLightPositionAndDirection = function() { +this._node.getWorldMatrix(h); +r.mat3.fromMat4(u, h); +r.vec3.transformMat3(_, l, u); +r.vec3.array(this._directionUniform, _); +var t = this._positionUniform; +t[0] = h.m12; +t[1] = h.m13; +t[2] = h.m14; +}; +t.prototype._generateShadowMap = function(t) { +this._shadowMap = new s.default.Texture2D(t, { +width: this._shadowResolution, +height: this._shadowResolution, +format: s.default.TEXTURE_FMT_RGBA8, +wrapS: s.default.WRAP_CLAMP, +wrapT: s.default.WRAP_CLAMP +}); +this._shadowDepthBuffer = new s.default.RenderBuffer(t, s.default.RB_FMT_D16, this._shadowResolution, this._shadowResolution); +this._shadowFrameBuffer = new s.default.FrameBuffer(t, this._shadowResolution, this._shadowResolution, { +colors: [ this._shadowMap ], +depth: this._shadowDepthBuffer +}); +}; +t.prototype._destroyShadowMap = function() { +if (this._shadowMap) { +this._shadowMap.destroy(); +this._shadowDepthBuffer.destroy(); +this._shadowFrameBuffer.destroy(); +this._shadowMap = null; +this._shadowDepthBuffer = null; +this._shadowFrameBuffer = null; +} +}; +t.prototype.update = function(t) { +this._updateLightPositionAndDirection(); +if (this._shadowType === o.default.SHADOW_NONE) this._destroyShadowMap(); else if (this._shadowMapDirty) { +this._destroyShadowMap(); +this._generateShadowMap(t); +this._shadowMapDirty = !1; +} +}; +n(t, [ { +key: "color", +get: function() { +return this._color; +} +}, { +key: "intensity", +get: function() { +return this._intensity; +} +}, { +key: "type", +get: function() { +return this._type; +} +}, { +key: "spotAngle", +get: function() { +return this._spotAngle; +} +}, { +key: "spotExp", +get: function() { +return this._spotExp; +} +}, { +key: "range", +get: function() { +return this._range; +} +}, { +key: "shadowType", +get: function() { +return this._shadowType; +} +}, { +key: "shadowMap", +get: function() { +return this._shadowMap; +} +}, { +key: "viewProjMatrix", +get: function() { +return this._viewProjMatrix; +} +}, { +key: "shadowResolution", +get: function() { +return this._shadowResolution; +} +}, { +key: "shadowBias", +get: function() { +return this._shadowBias; +} +}, { +key: "shadowDarkness", +get: function() { +return this._shadowDarkness; +} +}, { +key: "shadowMinDepth", +get: function() { +return this._type === o.default.LIGHT_DIRECTIONAL ? 1 : this._shadowMinDepth; +} +}, { +key: "shadowMaxDepth", +get: function() { +return this._type === o.default.LIGHT_DIRECTIONAL ? 1 : this._shadowMaxDepth; +} +}, { +key: "shadowDepthScale", +get: function() { +return this._shadowDepthScale; +} +}, { +key: "frustumEdgeFalloff", +get: function() { +return this._frustumEdgeFalloff; +} +}, { +key: "shadowFrustumSize", +get: function() { +return this._shadowFrustumSize; +} +} ]); +return t; +})(); +i.default = p; +e.exports = i.default; +}), { +"../../core/vmath": 317, +"../enums": 344, +"../gfx": 349 +} ], +373: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.default = void 0; +var n = (function(t) { +return t && t.__esModule ? t : { +default: t +}; +})(t("../../core/geom-utils")); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t() { +r(this, t); +this._type = "default"; +this._poolID = -1; +this._node = null; +this._inputAssembler = null; +this._effect = null; +this._viewID = -1; +this._cameraID = -1; +this._userKey = -1; +this._castShadow = !1; +this._boundingShape = null; +this._defines = []; +this._uniforms = []; +} +t.prototype._updateTransform = function() { +if (this._node._hasChanged && this._boundingShape) { +this._node.updateWorldTransformFull(); +this._bsModelSpace.transform(this._node._mat, this._node._pos, this._node._rot, this._node._scale, this._boundingShape); +} +}; +t.prototype.createBoundingShape = function(t, e) { +if (n.default && t && e) { +this._bsModelSpace = n.default.Aabb.fromPoints(n.default.Aabb.create(), t, e); +this._boundingShape = n.default.Aabb.clone(this._bsModelSpace); +} +}; +t.prototype.setNode = function(t) { +this._node = t; +}; +t.prototype.setInputAssembler = function(t) { +this._inputAssembler = t; +}; +t.prototype.setEffect = function(t, e) { +this._effect = t; +var i = this._defines, n = this._uniforms; +i.length = 0; +n.length = 0; +if (t) { +i.push(t._defines); +n.push(t._properties); +} +if (e) { +i.push(e._defines); +n.push(e._properties); +} +}; +t.prototype.setUserKey = function(t) { +this._userKey = t; +}; +t.prototype.extractDrawItem = function(t) { +t.model = this; +t.node = this._node; +t.ia = this._inputAssembler; +t.effect = this._effect; +t.defines = this._defines; +t.dependencies = this._dependencies; +t.uniforms = this._uniforms; +}; +return t; +})(); +i.default = s; +e.exports = i.default; +}), { +"../../core/geom-utils": 138 +} ], +374: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +var n = t("../memop"); +function r(t, e) { +if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} +var s = (function() { +function t(e) { +r(this, t); +this._lights = new n.FixedArray(16); +this._models = new n.FixedArray(16); +this._cameras = new n.FixedArray(16); +this._debugCamera = null; +this._app = e; +this._views = []; +} +t.prototype._add = function(t, e) { +if (-1 === e._poolID) { +t.push(e); +e._poolID = t.length - 1; +} +}; +t.prototype._remove = function(t, e) { +if (-1 !== e._poolID) { +t.data[t.length - 1]._poolID = e._poolID; +t.fastRemove(e._poolID); +e._poolID = -1; +} +}; +t.prototype.tick = function() { +for (var t = 0; t < this._models.length; ++t) { +this._models.data[t]._updateTransform(); +} +}; +t.prototype.reset = function() { +for (var t = 0; t < this._models.length; ++t) { +this._models.data[t]._viewID = -1; +} +}; +t.prototype.setDebugCamera = function(t) { +this._debugCamera = t; +}; +t.prototype.getCameraCount = function() { +return this._cameras.length; +}; +t.prototype.getCamera = function(t) { +return this._cameras.data[t]; +}; +t.prototype.addCamera = function(t) { +this._add(this._cameras, t); +}; +t.prototype.removeCamera = function(t) { +this._remove(this._cameras, t); +}; +t.prototype.getModelCount = function() { +return this._models.length; +}; +t.prototype.getModel = function(t) { +return this._models.data[t]; +}; +t.prototype.addModel = function(t) { +this._add(this._models, t); +}; +t.prototype.removeModel = function(t) { +this._remove(this._models, t); +}; +t.prototype.getLightCount = function() { +return this._lights.length; +}; +t.prototype.getLight = function(t) { +return this._lights.data[t]; +}; +t.prototype.addLight = function(t) { +this._add(this._lights, t); +}; +t.prototype.removeLight = function(t) { +this._remove(this._lights, t); +}; +t.prototype.addView = function(t) { +-1 === this._views.indexOf(t) && this._views.push(t); +}; +t.prototype.removeView = function(t) { +var e = this._views.indexOf(t); +-1 !== e && this._views.splice(e, 1); +}; +return t; +})(); +i.default = s; +e.exports = i.default; +}), { +"../memop": 361 +} ], +375: [ (function(t, e, i) { +"use strict"; +i.__esModule = !0; +i.ctor2enums = i.enums2ctor = i.ctor2default = void 0; +var n, r, s, o = h(t("./enums")), a = t("../core/value-types"), c = h(t("../core/assets/CCTexture2D")), l = h(t("./gfx/texture-2d")); +h(t("./gfx/texture-cube")); +function h(t) { +return t && t.__esModule ? t : { +default: t +}; +} +var u = cc.Object; +i.ctor2default = ((n = {})[Number] = function(t) { +return t || 0; +}, n[Boolean] = function(t) { +return t || !1; +}, n[a.Vec2] = function(t) { +return t ? cc.v2(t[0], t[1]) : cc.v2(); +}, n[a.Vec3] = function(t) { +return t ? cc.v3(t[0], t[1], t[2]) : cc.v3(); +}, n[a.Vec4] = function(t) { +return t ? cc.v4(t[0], t[1], t[2], t[3]) : cc.v4(); +}, n[a.Color] = function(t) { +return t ? cc.color(255 * t[0], 255 * t[1], 255 * t[2], 255 * (t[3] || 1)) : cc.color(); +}, n[a.Mat4] = function(t) { +return t ? cc.mat4(t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15]) : cc.mat4(); +}, n[c.default] = function() { +return null; +}, n[u] = function() { +return null; +}, n), i.enums2ctor = ((r = {})[o.default.PARAM_INT] = Number, r[o.default.PARAM_INT2] = a.Vec2, +r[o.default.PARAM_INT3] = a.Vec3, r[o.default.PARAM_INT4] = a.Vec4, r[o.default.PARAM_FLOAT] = Number, +r[o.default.PARAM_FLOAT2] = a.Vec2, r[o.default.PARAM_FLOAT3] = a.Vec3, r[o.default.PARAM_FLOAT4] = a.Vec4, +r[o.default.PARAM_COLOR3] = a.Color, r[o.default.PARAM_COLOR4] = a.Color, r[o.default.PARAM_MAT4] = a.Mat4, +r[o.default.PARAM_TEXTURE_2D] = c.default, r.number = Number, r.boolean = Boolean, +r.default = u, r), i.ctor2enums = ((s = {})[Number] = o.default.PARAM_FLOAT, s[a.Vec2] = o.default.PARAM_FLOAT2, +s[a.Vec3] = o.default.PARAM_FLOAT3, s[a.Vec4] = o.default.PARAM_FLOAT4, s[a.Color] = o.default.PARAM_COLOR3, +s[a.Color] = o.default.PARAM_COLOR4, s[a.Mat4] = o.default.PARAM_MAT4, s[c.default] = o.default.PARAM_TEXTURE_2D, +s[l.default] = o.default.PARAM_TEXTURE_2D, s); +}), { +"../core/assets/CCTexture2D": 73, +"../core/value-types": 306, +"./enums": 344, +"./gfx/texture-2d": 354, +"./gfx/texture-cube": 355 +} ], +376: [ (function(t, e, i) { +"use strict"; +var n = t("../compression/ZipUtils"), r = t("../compression/zlib.min"), s = t("../core/platform/js"); +t("../core/platform/CCSAXParser"); +function o(t) { +if (t.length % 4 != 0) return null; +for (var e = t.length / 4, i = window.Uint32Array ? new Uint32Array(e) : [], n = 0; n < e; n++) { +var r = 4 * n; +i[n] = t[r] + 256 * t[r + 1] + 65536 * t[r + 2] + t[r + 3] * (1 << 24); +} +return i; +} +cc.TMXLayerInfo = function() { +this.properties = {}; +this.name = ""; +this._layerSize = null; +this._tiles = []; +this.visible = !0; +this._opacity = 0; +this.ownTiles = !0; +this._minGID = 1e5; +this._maxGID = 0; +this.offset = cc.v2(0, 0); +}; +cc.TMXLayerInfo.prototype = { +constructor: cc.TMXLayerInfo, +getProperties: function() { +return this.properties; +}, +setProperties: function(t) { +this.properties = t; +} +}; +cc.TMXObjectGroupInfo = function() { +this.properties = {}; +this.name = ""; +this._objects = []; +this.visible = !0; +this._opacity = 0; +this._color = new cc.Color(255, 255, 255, 255); +this.offset = cc.v2(0, 0); +this._draworder = "topdown"; +}; +cc.TMXObjectGroupInfo.prototype = { +constructor: cc.TMXObjectGroupInfo, +getProperties: function() { +return this.properties; +}, +setProperties: function(t) { +this.properties = t; +} +}; +cc.TMXTilesetInfo = function() { +this.name = ""; +this.firstGid = 0; +this.spacing = 0; +this.margin = 0; +this.sourceImage = null; +this.imageSize = cc.size(0, 0); +this.tileOffset = cc.v2(0, 0); +this._tileSize = cc.size(0, 0); +}; +cc.TMXTilesetInfo.prototype = { +constructor: cc.TMXTilesetInfo, +rectForGID: function(t, e) { +var i = e || cc.rect(0, 0, 0, 0); +i.width = this._tileSize.width; +i.height = this._tileSize.height; +t &= cc.TiledMap.TileFlag.FLIPPED_MASK; +t -= parseInt(this.firstGid, 10); +var n = parseInt((this.imageSize.width - 2 * this.margin + this.spacing) / (this._tileSize.width + this.spacing), 10); +i.x = parseInt(t % n * (this._tileSize.width + this.spacing) + this.margin, 10); +i.y = parseInt(parseInt(t / n, 10) * (this._tileSize.height + this.spacing) + this.margin, 10); +return i; +} +}; +function a(t, e) { +for (var i = [], n = t.getElementsByTagName("properties"), r = 0; r < n.length; ++r) for (var s = n[r].getElementsByTagName("property"), o = 0; o < s.length; ++o) i.push(s[o]); +e = e || {}; +for (var a = 0; a < i.length; a++) { +var c = i[a], l = c.getAttribute("name"), h = c.getAttribute("type") || "string", u = c.getAttribute("value"); +if ("int" === h) u = parseInt(u); else if ("float" === h) u = parseFloat(u); else if ("bool" === h) u = "true" === u; else if ("color" === h) { +u = 0 === u.indexOf("#") ? u.substring(1) : u; +var _ = parseInt(u.substr(0, 2), 16) || 255, f = parseInt(u.substr(2, 2), 16) || 0, d = parseInt(u.substr(4, 2), 16) || 0, m = parseInt(u.substr(6, 2), 16) || 0; +u = cc.color(f, d, m, _); +} +e[l] = u; +} +return e; +} +cc.TMXMapInfo = function(t, e, i) { +this.properties = []; +this.orientation = null; +this.parentElement = null; +this.parentGID = null; +this.layerAttrs = 0; +this.storingCharacters = !1; +this.currentString = null; +this._parser = new cc.SAXParser(); +this._objectGroups = []; +this._allChildren = []; +this._mapSize = cc.size(0, 0); +this._tileSize = cc.size(0, 0); +this._layers = []; +this._tilesets = []; +this._tileProperties = {}; +this._tsxMap = null; +this._textures = null; +this._staggerAxis = null; +this._staggerIndex = null; +this._hexSideLength = 0; +this.initWithXML(t, e, i); +}; +cc.TMXMapInfo.prototype = { +constructor: cc.TMXMapInfo, +getOrientation: function() { +return this.orientation; +}, +setOrientation: function(t) { +this.orientation = t; +}, +getStaggerAxis: function() { +return this._staggerAxis; +}, +setStaggerAxis: function(t) { +this._staggerAxis = t; +}, +getStaggerIndex: function() { +return this._staggerIndex; +}, +setStaggerIndex: function(t) { +this._staggerIndex = t; +}, +getHexSideLength: function() { +return this._hexSideLength; +}, +setHexSideLength: function(t) { +this._hexSideLength = t; +}, +getMapSize: function() { +return cc.size(this._mapSize.width, this._mapSize.height); +}, +setMapSize: function(t) { +this._mapSize.width = t.width; +this._mapSize.height = t.height; +}, +_getMapWidth: function() { +return this._mapSize.width; +}, +_setMapWidth: function(t) { +this._mapSize.width = t; +}, +_getMapHeight: function() { +return this._mapSize.height; +}, +_setMapHeight: function(t) { +this._mapSize.height = t; +}, +getTileSize: function() { +return cc.size(this._tileSize.width, this._tileSize.height); +}, +setTileSize: function(t) { +this._tileSize.width = t.width; +this._tileSize.height = t.height; +}, +_getTileWidth: function() { +return this._tileSize.width; +}, +_setTileWidth: function(t) { +this._tileSize.width = t; +}, +_getTileHeight: function() { +return this._tileSize.height; +}, +_setTileHeight: function(t) { +this._tileSize.height = t; +}, +getLayers: function() { +return this._layers; +}, +setLayers: function(t) { +this._allChildren.push(t); +this._layers.push(t); +}, +getTilesets: function() { +return this._tilesets; +}, +setTilesets: function(t) { +this._tilesets.push(t); +}, +getObjectGroups: function() { +return this._objectGroups; +}, +setObjectGroups: function(t) { +this._allChildren.push(t); +this._objectGroups.push(t); +}, +getAllChildren: function() { +return this._allChildren; +}, +getParentElement: function() { +return this.parentElement; +}, +setParentElement: function(t) { +this.parentElement = t; +}, +getParentGID: function() { +return this.parentGID; +}, +setParentGID: function(t) { +this.parentGID = t; +}, +getLayerAttribs: function() { +return this.layerAttrs; +}, +setLayerAttribs: function(t) { +this.layerAttrs = t; +}, +getStoringCharacters: function() { +return this.storingCharacters; +}, +setStoringCharacters: function(t) { +this.storingCharacters = t; +}, +getProperties: function() { +return this.properties; +}, +setProperties: function(t) { +this.properties = t; +}, +initWithXML: function(t, e, i) { +this._tilesets.length = 0; +this._layers.length = 0; +this._tsxMap = e; +this._textures = i; +this._objectGroups.length = 0; +this._allChildren.length = 0; +this.properties.length = 0; +this._tileProperties.length = 0; +this.currentString = ""; +this.storingCharacters = !1; +this.layerAttrs = cc.TMXLayerInfo.ATTRIB_NONE; +this.parentElement = cc.TiledMap.NONE; +return this.parseXMLString(t); +}, +parseXMLString: function(t, e) { +var i = void 0, n = this._parser._parseXML(t).documentElement, r = n.getAttribute("version"), s = n.getAttribute("orientation"), o = n.getAttribute("staggeraxis"), c = n.getAttribute("staggerindex"), l = n.getAttribute("hexsidelength"); +if ("map" === n.nodeName) { +"1.0" !== r && null !== r && cc.logID(7216, r); +"orthogonal" === s ? this.orientation = cc.TiledMap.Orientation.ORTHO : "isometric" === s ? this.orientation = cc.TiledMap.Orientation.ISO : "hexagonal" === s ? this.orientation = cc.TiledMap.Orientation.HEX : null !== s && cc.logID(7217, s); +"x" === o ? this.setStaggerAxis(cc.TiledMap.StaggerAxis.STAGGERAXIS_X) : "y" === o && this.setStaggerAxis(cc.TiledMap.StaggerAxis.STAGGERAXIS_Y); +"odd" === c ? this.setStaggerIndex(cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD) : "even" === c && this.setStaggerIndex(cc.TiledMap.StaggerIndex.STAGGERINDEX_EVEN); +l && this.setHexSideLength(parseFloat(l)); +var h = cc.size(0, 0); +h.width = parseFloat(n.getAttribute("width")); +h.height = parseFloat(n.getAttribute("height")); +this.setMapSize(h); +(h = cc.size(0, 0)).width = parseFloat(n.getAttribute("tilewidth")); +h.height = parseFloat(n.getAttribute("tileheight")); +this.setTileSize(h); +this.properties = a(n); +} +var u = n.getElementsByTagName("tileset"); +"map" !== n.nodeName && (u = []).push(n); +for (i = 0; i < u.length; i++) { +var _ = u[i], f = _.getAttribute("source"); +if (f) { +var d = parseInt(_.getAttribute("firstgid")), m = this._tsxMap[f]; +m && this.parseXMLString(m, d); +} else { +var p = new cc.TMXTilesetInfo(); +p.name = _.getAttribute("name") || ""; +p.firstGid = e || (parseInt(_.getAttribute("firstgid")) || 0); +p.spacing = parseInt(_.getAttribute("spacing")) || 0; +p.margin = parseInt(_.getAttribute("margin")) || 0; +var v = cc.size(0, 0); +v.width = parseFloat(_.getAttribute("tilewidth")); +v.height = parseFloat(_.getAttribute("tileheight")); +p._tileSize = v; +var y = _.getElementsByTagName("image")[0].getAttribute("source"); +y.replace(/\\/g, "/"); +p.sourceImage = this._textures[y]; +p.sourceImage || cc.errorID(7221, y); +this.setTilesets(p); +var g = _.getElementsByTagName("tileoffset")[0]; +if (g) { +var x = parseFloat(g.getAttribute("x")), C = parseFloat(g.getAttribute("y")); +p.tileOffset = cc.v2(x, C); +} +var b = _.getElementsByTagName("tile"); +if (b) for (var A = 0; A < b.length; A++) { +var S = b[A]; +this.parentGID = parseInt(p.firstGid) + parseInt(S.getAttribute("id") || 0); +this._tileProperties[this.parentGID] = a(S); +} +} +} +var w = n.childNodes; +for (i = 0; i < w.length; i++) { +var T = w[i]; +if (!this._shouldIgnoreNode(T)) { +if ("layer" === T.nodeName) { +var E = this._parseLayer(T); +this.setLayers(E); +} +if ("objectgroup" === T.nodeName) { +var M = this._parseObjectGroup(T); +this.setObjectGroups(M); +} +} +} +return n; +}, +_shouldIgnoreNode: function(t) { +return 3 === t.nodeType || 8 === t.nodeType || 4 === t.nodeType; +}, +_parseLayer: function(t) { +var e = t.getElementsByTagName("data")[0], i = new cc.TMXLayerInfo(); +i.name = t.getAttribute("name"); +var s = cc.size(0, 0); +s.width = parseFloat(t.getAttribute("width")); +s.height = parseFloat(t.getAttribute("height")); +i._layerSize = s; +var c = t.getAttribute("visible"); +i.visible = !("0" === c); +var l = t.getAttribute("opacity") || 1; +i._opacity = l ? parseInt(255 * parseFloat(l)) : 255; +i.offset = cc.v2(parseFloat(t.getAttribute("x")) || 0, parseFloat(t.getAttribute("y")) || 0); +for (var h = "", u = 0; u < e.childNodes.length; u++) h += e.childNodes[u].nodeValue; +h = h.trim(); +var _ = e.getAttribute("compression"), f = e.getAttribute("encoding"); +if (_ && "gzip" !== _ && "zlib" !== _) { +cc.logID(7218); +return null; +} +var d = void 0; +switch (_) { +case "gzip": +d = n.unzipBase64AsArray(h, 4); +break; + +case "zlib": +d = o(new r.Inflate(n.Base64.decodeAsArray(h, 1)).decompress()); +break; + +case null: +case "": +if ("base64" === f) d = n.Base64.decodeAsArray(h, 4); else if ("csv" === f) { +d = []; +for (var m = h.split(","), p = 0; p < m.length; p++) d.push(parseInt(m[p])); +} else { +var v = e.getElementsByTagName("tile"); +d = []; +for (var y = 0; y < v.length; y++) d.push(parseInt(v[y].getAttribute("gid"))); +} +break; + +default: +this.layerAttrs === cc.TMXLayerInfo.ATTRIB_NONE && cc.logID(7219); +} +d && (i._tiles = new Uint32Array(d)); +i.properties = a(t); +return i; +}, +_parseObjectGroup: function(t) { +var e = new cc.TMXObjectGroupInfo(); +e.name = t.getAttribute("name") || ""; +e.offset = cc.v2(parseFloat(t.getAttribute("offsetx")), parseFloat(t.getAttribute("offsety"))); +var i = t.getAttribute("opacity") || 1; +e._opacity = i ? parseInt(255 * parseFloat(i)) : 255; +var n = t.getAttribute("visible"); +n && 0 === parseInt(n) && (e.visible = !1); +var r = t.getAttribute("color"); +r && e._color.fromHEX(r); +var s = t.getAttribute("draworder"); +s && (e._draworder = s); +e.setProperties(a(t)); +var o = t.getElementsByTagName("object"); +if (o) for (var c = 0; c < o.length; c++) { +var l = o[c], h = {}; +h.id = l.getAttribute("id") || 0; +h.name = l.getAttribute("name") || ""; +h.width = parseFloat(l.getAttribute("width")) || 0; +h.height = parseFloat(l.getAttribute("height")) || 0; +h.x = parseFloat(l.getAttribute("x")) || 0; +h.y = parseFloat(l.getAttribute("y")) || 0; +h.rotation = parseFloat(l.getAttribute("rotation")) || 0; +a(l, h); +var u = l.getAttribute("visible"); +h.visible = !(u && 0 === parseInt(u)); +var _ = l.getAttribute("gid"); +if (_) { +h.gid = parseInt(_); +h.type = cc.TiledMap.TMXObjectType.IMAGE; +} +var f = l.getElementsByTagName("ellipse"); +f && f.length > 0 && (h.type = cc.TiledMap.TMXObjectType.ELLIPSE); +var d = l.getElementsByTagName("polygon"); +if (d && d.length > 0) { +h.type = cc.TiledMap.TMXObjectType.POLYGON; +var m = d[0].getAttribute("points"); +m && (h.points = this._parsePointsString(m)); +} +var p = l.getElementsByTagName("polyline"); +if (p && p.length > 0) { +h.type = cc.TiledMap.TMXObjectType.POLYLINE; +var v = p[0].getAttribute("points"); +v && (h.polylinePoints = this._parsePointsString(v)); +} +h.type || (h.type = cc.TiledMap.TMXObjectType.RECT); +e._objects.push(h); +} +return e; +}, +_parsePointsString: function(t) { +if (!t) return null; +for (var e = [], i = t.split(" "), n = 0; n < i.length; n++) { +var r = i[n].split(","); +e.push({ +x: parseFloat(r[0]), +y: parseFloat(r[1]) +}); +} +return e; +}, +getTileProperties: function() { +return this._tileProperties; +}, +setTileProperties: function(t) { +this._tileProperties.push(t); +}, +getCurrentString: function() { +return this.currentString; +}, +setCurrentString: function(t) { +this.currentString = t; +} +}; +var c = cc.TMXMapInfo.prototype; +s.getset(c, "mapWidth", c._getMapWidth, c._setMapWidth); +s.getset(c, "mapHeight", c._getMapHeight, c._setMapHeight); +s.getset(c, "tileWidth", c._getTileWidth, c._setTileWidth); +s.getset(c, "tileHeight", c._getTileHeight, c._setTileHeight); +cc.TMXLayerInfo.ATTRIB_NONE = 1; +cc.TMXLayerInfo.ATTRIB_BASE64 = 2; +cc.TMXLayerInfo.ATTRIB_GZIP = 4; +cc.TMXLayerInfo.ATTRIB_ZLIB = 8; +}), { +"../compression/ZipUtils": 22, +"../compression/zlib.min": 25, +"../core/platform/CCSAXParser": 208, +"../core/platform/js": 221 +} ], +377: [ (function(i, n, r) { +"use strict"; +var s = i("../core/components/CCRenderComponent"), o = i("../core/assets/material/CCMaterial"), a = cc.Class({ +name: "cc.TiledLayer", +extends: s, +editor: { +inspector: "packages://inspector/inspectors/comps/tiled-layer.js" +}, +ctor: function() { +this._tiles = []; +this._texGrids = []; +this._textures = []; +this._spriteTiles = {}; +this._tiledTiles = []; +this._layerName = ""; +this._layerOrientation = null; +}, +getLayerName: function() { +return this._layerName; +}, +setLayerName: function(t) { +this._layerName = t; +}, +getProperty: function(t) { +return this._properties[t]; +}, +getPositionAt: function(t, e) { +var i = void 0; +if (void 0 !== e) { +i = Math.floor(t); +e = Math.floor(e); +} else { +i = Math.floor(t.x); +e = Math.floor(t.y); +} +var n = void 0; +switch (this._layerOrientation) { +case cc.TiledMap.Orientation.ORTHO: +n = this._positionForOrthoAt(i, e); +break; + +case cc.TiledMap.Orientation.ISO: +n = this._positionForIsoAt(i, e); +break; + +case cc.TiledMap.Orientation.HEX: +n = this._positionForHexAt(i, e); +} +return n; +}, +_isInvalidPosition: function(i, n) { +if (i && "object" === ("object" === (e = typeof i) ? t(i) : e)) { +var r = i; +n = r.y; +i = r.x; +} +return i >= this._layerSize.width || n >= this._layerSize.height || i < 0 || n < 0; +}, +_positionForIsoAt: function(t, e) { +return cc.v2(this._mapTileSize.width / 2 * (this._layerSize.width + t - e - 1), this._mapTileSize.height / 2 * (2 * this._layerSize.height - t - e - 2)); +}, +_positionForOrthoAt: function(t, e) { +return cc.v2(t * this._mapTileSize.width, (this._layerSize.height - e - 1) * this._mapTileSize.height); +}, +_positionForHexAt: function(t, e) { +var i = this._mapTileSize.width, n = this._mapTileSize.height, r = this._layerSize.height, s = this._tileset.tileOffset, o = this.node.width / 2, a = this.node.height / 2, c = this._staggerIndex === cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD ? 1 : -1, l = 0, h = 0; +switch (this._staggerAxis) { +case cc.TiledMap.StaggerAxis.STAGGERAXIS_Y: +var u = 0, _ = this._staggerIndex === cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD ? 0 : i / 2; +e % 2 == 1 && (u = i / 2 * c); +l = t * i + u + _ + s.x - o; +h = (r - e - 1) * (n - (n - this._hexSideLength) / 2) - s.y - a; +break; + +case cc.TiledMap.StaggerAxis.STAGGERAXIS_X: +var f = 0, d = this._staggerIndex === cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD ? n / 2 : 0; +t % 2 == 1 && (f = n / 2 * -c); +l = t * (i - (i - this._hexSideLength) / 2) + s.x - o; +h = (r - e - 1) * n + f + d - s.y - a; +} +return cc.v2(l, h); +}, +setTileGIDAt: function(t, e, i, n) { +if (void 0 === e) throw new Error("cc.TiledLayer.setTileGIDAt(): pos should be non-null"); +var r = void 0; +if (void 0 === n && e instanceof cc.Vec2) { +r = e; +n = i; +} else r = cc.v2(e, i); +r.x = Math.floor(r.x); +r.y = Math.floor(r.y); +if (this._isInvalidPosition(r)) throw new Error("cc.TiledLayer.setTileGIDAt(): invalid position"); +if (this._tiles) if (0 !== t && t < this._tileset.firstGid) cc.logID(7239, t); else { +n = n || 0; +var s = this.getTileFlagsAt(r); +if (this.getTileGIDAt(r) !== t || s !== n) { +var o = (t | n) >>> 0; +this._updateTileForGID(o, r); +} +} else cc.logID(7238); +}, +_updateTileForGID: function(t, e) { +if (0 === t || this._texGrids[t]) { +var i = 0 | e.x + e.y * this._layerSize.width; +i < this._tiles.length && (this._tiles[i] = t); +} +}, +getTileGIDAt: function(t, e) { +if (void 0 === t) throw new Error("cc.TiledLayer.getTileGIDAt(): pos should be non-null"); +var i = t; +if (void 0 === e) { +i = t.x; +e = t.y; +} +if (this._isInvalidPosition(i, e)) throw new Error("cc.TiledLayer.getTileGIDAt(): invalid position"); +if (!this._tiles) { +cc.logID(7237); +return null; +} +var n = Math.floor(i) + Math.floor(e) * this._layerSize.width; +return (this._tiles[n] & cc.TiledMap.TileFlag.FLIPPED_MASK) >>> 0; +}, +getTileFlagsAt: function(t, e) { +if (!t) throw new Error("TiledLayer.getTileFlagsAt: pos should be non-null"); +void 0 !== e && (t = cc.v2(t, e)); +if (this._isInvalidPosition(t)) throw new Error("TiledLayer.getTileFlagsAt: invalid position"); +if (!this._tiles) { +cc.logID(7240); +return null; +} +var i = Math.floor(t.x) + Math.floor(t.y) * this._layerSize.width; +return (this._tiles[i] & cc.TiledMap.TileFlag.FLIPPED_ALL) >>> 0; +}, +getTiledTileAt: function(t, e, i) { +if (this._isInvalidPosition(t, e)) throw new Error("TiledLayer.getTiledTileAt: invalid position"); +if (!this._tiles) { +cc.logID(7236); +return null; +} +var n = Math.floor(t) + Math.floor(e) * this._layerSize.width, r = this._tiledTiles[n]; +if (!r && i) { +var s = new cc.Node(); +(r = s.addComponent(cc.TiledTile))._x = t; +r._y = e; +r._layer = this; +r._updateInfo(); +s.parent = this.node; +return r; +} +return r; +}, +setTiledTileAt: function(t, e, i) { +if (this._isInvalidPosition(t, e)) throw new Error("TiledLayer.setTiledTileAt: invalid position"); +if (!this._tiles) { +cc.logID(7236); +return null; +} +var n = Math.floor(t) + Math.floor(e) * this._layerSize.width; +return this._tiledTiles[n] = i; +}, +getTexture: function() { +return this._texture; +}, +setTexture: function(t) { +this._texture = t; +this._activateMaterial(); +}, +getLayerSize: function() { +return this._layerSize; +}, +getMapTileSize: function() { +return this._mapTileSize; +}, +getTileSet: function() { +return this._tileset; +}, +setTileSet: function(t) { +this._tileset = t; +}, +getLayerOrientation: function() { +return this._layerOrientation; +}, +getProperties: function() { +return this._properties; +}, +_init: function(t, e, i) { +var n = e._layerSize; +this._layerName = e.name; +this._tiles = e._tiles; +this._properties = e.properties; +this._layerSize = n; +this._minGID = e._minGID; +this._maxGID = e._maxGID; +this._opacity = e._opacity; +this._staggerAxis = i.getStaggerAxis(); +this._staggerIndex = i.getStaggerIndex(); +this._hexSideLength = i.getHexSideLength(); +this._tileset = t; +this._layerOrientation = i.orientation; +this._mapTileSize = i.getTileSize(); +var r = i._tilesets; +if (r) { +this._textures.length = r.length; +this._texGrids.length = 0; +for (var s = 0, o = r.length; s < o; ++s) { +var a = r[s], c = a.sourceImage; +this._textures[s] = c; +this._fillTextureGrids(a, s); +t === a && (this._texture = c); +} +} +this._offset = this._calculateLayerOffset(e.offset); +if (this._layerOrientation === cc.TiledMap.Orientation.HEX) { +var l = 0, h = 0; +if (this._staggerAxis === cc.TiledMap.StaggerAxis.STAGGERAXIS_X) { +h = i._tileSize.height * (this._layerSize.height + .5); +l = (i._tileSize.width + this._hexSideLength) * Math.floor(this._layerSize.width / 2) + i._tileSize.width * (this._layerSize.width % 2); +} else { +l = i._tileSize.width * (this._layerSize.width + .5); +h = (i._tileSize.height + this._hexSideLength) * Math.floor(this._layerSize.height / 2) + i._tileSize.height * (this._layerSize.height % 2); +} +this.node.setContentSize(l, h); +} else this.node.setContentSize(this._layerSize.width * this._mapTileSize.width, this._layerSize.height * this._mapTileSize.height); +this._useAutomaticVertexZ = !1; +this._vertexZvalue = 0; +this._activateMaterial(); +}, +_calculateLayerOffset: function(t) { +var e = cc.v2(0, 0); +switch (this._layerOrientation) { +case cc.TiledMap.Orientation.ORTHO: +e = cc.v2(t.x * this._mapTileSize.width, -t.y * this._mapTileSize.height); +break; + +case cc.TiledMap.Orientation.ISO: +e = cc.v2(this._mapTileSize.width / 2 * (t.x - t.y), this._mapTileSize.height / 2 * (-t.x - t.y)); +break; + +case cc.TiledMap.Orientation.HEX: +if (this._staggerAxis === cc.TiledMap.StaggerAxis.STAGGERAXIS_Y) { +var i = this._staggerIndex === cc.TiledMap.StaggerIndex.STAGGERINDEX_EVEN ? this._mapTileSize.width / 2 : 0; +e = cc.v2(t.x * this._mapTileSize.width + i, -t.y * (this._mapTileSize.height - (this._mapTileSize.width - this._hexSideLength) / 2)); +} else if (this._staggerAxis === cc.TiledMap.StaggerAxis.STAGGERAXIS_X) { +var n = this._staggerIndex === cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD ? this._mapTileSize.height / 2 : 0; +e = cc.v2(t.x * (this._mapTileSize.width - (this._mapTileSize.width - this._hexSideLength) / 2), -t.y * this._mapTileSize.height + n); +} +} +return e; +}, +_fillTextureGrids: function(t, e) { +var i = this._textures[e]; +if (i) if (i.loaded) { +if (!t.imageSize.width || !t.imageSize.height) { +t.imageSize.width = i.width; +t.imageSize.height = i.height; +} +for (var n = t._tileSize.width, r = t._tileSize.height, s = i.width, o = i.height, a = t.spacing, c = t.margin, l = Math.floor((s - 2 * c + a) / (n + a)), h = Math.floor((o - 2 * c + a) / (r + a)) * l, u = t.firstGid, _ = t.firstGid + h, f = this._texGrids, d = null, m = !!f[u], p = cc.macro.FIX_ARTIFACTS_BY_STRECHING_TEXEL_TMX ? .5 : 0; u < _; ++u) { +m && !f[u] && (m = !1); +if (!m && f[u]) break; +d = { +texId: e, +x: 0, +y: 0, +width: n, +height: r, +t: 0, +l: 0, +r: 0, +b: 0 +}; +t.rectForGID(u, d); +d.x += p; +d.y += p; +d.width -= 2 * p; +d.height -= 2 * p; +d.t = d.y / o; +d.l = d.x / s; +d.r = (d.x + d.width) / s; +d.b = (d.y + d.height) / o; +f[u] = d; +} +} else i.once("load", (function() { +this._fillTextureGrids(t, e); +}), this); +}, +onEnable: function() { +this._super(); +this._activateMaterial(); +}, +_activateMaterial: function() { +if (this._texture) { +var t = this.sharedMaterials[0]; +(t = t ? o.getInstantiatedMaterial(t, this) : o.getInstantiatedBuiltinMaterial("2d-sprite", this)).setProperty("texture", this._texture); +this.setMaterial(0, t); +this.markForRender(!0); +} else this.disableRender(); +} +}); +cc.TiledLayer = n.exports = a; +}), { +"../core/assets/material/CCMaterial": 75, +"../core/components/CCRenderComponent": 106 +} ], +378: [ (function(t, e, i) { +"use strict"; +t("./CCTMXXMLParser"); +t("./CCTiledMapAsset"); +t("./CCTiledLayer"); +t("./CCTiledTile"); +t("./CCTiledObjectGroup"); +var n = cc.Enum({ +ORTHO: 0, +HEX: 1, +ISO: 2 +}), r = cc.Enum({ +NONE: 0, +MAP: 1, +LAYER: 2, +OBJECTGROUP: 3, +OBJECT: 4, +TILE: 5 +}), s = cc.Enum({ +HORIZONTAL: 2147483648, +VERTICAL: 1073741824, +DIAGONAL: 536870912, +FLIPPED_ALL: 3758096384, +FLIPPED_MASK: 536870911 +}), o = cc.Enum({ +STAGGERAXIS_X: 0, +STAGGERAXIS_Y: 1 +}), a = cc.Enum({ +STAGGERINDEX_ODD: 0, +STAGGERINDEX_EVEN: 1 +}), c = cc.Enum({ +RECT: 0, +ELLIPSE: 1, +POLYGON: 2, +POLYLINE: 3, +IMAGE: 4, +TEXT: 5 +}), l = cc.Class({ +name: "cc.TiledMap", +extends: cc.Component, +editor: !1, +ctor: function() { +this._layers = []; +this._groups = []; +this._properties = []; +this._tileProperties = []; +this._mapSize = cc.size(0, 0); +this._tileSize = cc.size(0, 0); +}, +statics: { +Orientation: n, +Property: r, +TileFlag: s, +StaggerAxis: o, +StaggerIndex: a, +TMXObjectType: c +}, +properties: { +_tmxFile: { +default: null, +type: cc.TiledMapAsset +}, +tmxAsset: { +get: function() { +return this._tmxFile; +}, +set: function(t, e) { +if (this._tmxFile !== t) { +this._tmxFile = t; +this._applyFile(); +} +}, +type: cc.TiledMapAsset +} +}, +getMapSize: function() { +return this._mapSize; +}, +getTileSize: function() { +return this._tileSize; +}, +getMapOrientation: function() { +return this._mapOrientation; +}, +getObjectGroups: function() { +return this._groups; +}, +getObjectGroup: function(t) { +for (var e = this._groups, i = 0, n = e.length; i < n; i++) { +var r = e[i]; +if (r && r.getGroupName() === t) return r; +} +return null; +}, +getProperties: function() { +return this._properties; +}, +getLayers: function() { +return this._layers; +}, +getLayer: function(t) { +for (var e = this._layers, i = 0, n = e.length; i < n; i++) { +var r = e[i]; +if (r && r.getLayerName() === t) return r; +} +return null; +}, +getProperty: function(t) { +return this._properties[t.toString()]; +}, +getPropertiesForGID: function(t) { +return this._tileProperties[t]; +}, +__preload: function() { +this._tmxFile && this._applyFile(); +}, +onEnable: function() { +this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this._syncAnchorPoint, this); +}, +onDisable: function() { +this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this._syncAnchorPoint, this); +}, +_applyFile: function() { +var t = this._tmxFile; +if (t) { +for (var e = t.textures, i = t.textureNames, n = {}, r = 0; r < e.length; ++r) n[i[r]] = e[r]; +for (var s = t.tsxFileNames, o = t.tsxFiles, a = {}, c = 0; c < s.length; ++c) s[c].length > 0 && (a[s[c]] = o[c].text); +var l = new cc.TMXMapInfo(t.tmxXmlStr, a, n), h = l.getTilesets(); +h && 0 !== h.length || cc.logID(7241); +this._buildWithMapInfo(l); +} else this._releaseMapInfo(); +}, +_releaseMapInfo: function() { +for (var t = this._layers, e = 0, i = t.length; e < i; e++) t[e].node.removeFromParent(); +t.length = 0; +for (var n = this._groups, r = 0, s = n.length; r < s; r++) n[r].node.removeFromParent(); +n.length = 0; +}, +_syncAnchorPoint: function() { +for (var t = this.node.getAnchorPoint(), e = 0, i = this._layers.length; e < i; e++) this._layers[e].node.setAnchorPoint(t); +}, +_buildWithMapInfo: function(t) { +this._mapSize = t.getMapSize(); +this._tileSize = t.getTileSize(); +this._mapOrientation = t.orientation; +this._properties = t.properties; +this._tileProperties = t.getTileProperties(); +this._releaseMapInfo(); +var e = this._layers, i = this._groups, n = this.node, r = t.getAllChildren(); +if (r && r.length > 0) for (var s = 0, o = r.length; s < o; s++) { +var a = r[s], c = a.name, l = this.node.getChildByName(c); +if (!l) { +(l = new cc.Node()).name = c; +n.addChild(l); +} +if (a instanceof cc.TMXLayerInfo && a.visible) { +var h = l.getComponent(cc.TiledLayer); +h || (h = l.addComponent(cc.TiledLayer)); +var u = this._tilesetForLayer(a, t); +h._init(u, a, t); +a.ownTiles = !1; +this.node.width = Math.max(this.node.width, l.width); +this.node.height = Math.max(this.node.height, l.height); +e.push(h); +} else if (a instanceof cc.TMXObjectGroupInfo) { +var _ = l.getComponent(cc.TiledObjectGroup); +_ || (_ = l.addComponent(cc.TiledObjectGroup)); +_._init(a, t); +i.push(_); +} +} +this._syncAnchorPoint(); +}, +_tilesetForLayer: function(t, e) { +var i = t._layerSize, n = e.getTilesets(); +if (n) for (var r = n.length - 1; r >= 0; r--) { +var s = n[r]; +if (s) for (var o = 0; o < i.height; o++) for (var a = 0; a < i.width; a++) { +var c = a + i.width * o, l = t._tiles[c]; +if (0 !== l && (l & cc.TiledMap.TileFlag.FLIPPED_MASK) >>> 0 >= s.firstGid) return s; +} +} +cc.logID(7215, t.name); +return null; +} +}); +cc.TiledMap = e.exports = l; +cc.js.obsolete(cc.TiledMap.prototype, "cc.TiledMap.tmxFile", "tmxAsset", !0); +cc.js.get(cc.TiledMap.prototype, "mapLoaded", (function() { +cc.errorID(7203); +return []; +}), !1); +}), { +"./CCTMXXMLParser": 376, +"./CCTiledLayer": 377, +"./CCTiledMapAsset": 379, +"./CCTiledObjectGroup": 380, +"./CCTiledTile": 381 +} ], +379: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.TiledMapAsset", +extends: cc.Asset, +properties: { +tmxXmlStr: "", +textures: { +default: [], +type: [ cc.Texture2D ] +}, +textureNames: [ cc.String ], +tsxFiles: [ cc.TextAsset ], +tsxFileNames: [ cc.String ] +}, +statics: { +preventDeferredLoadDependents: !0 +}, +createNode: !1 +}); +cc.TiledMapAsset = n; +e.exports = n; +}), {} ], +380: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.TiledObjectGroup", +extends: cc.Component, +getPositionOffset: function() { +return this._positionOffset; +}, +getProperties: function() { +this._properties; +}, +getGroupName: function() { +return this._groupName; +}, +getProperty: function(t) { +return this._properties[t.toString()]; +}, +getObject: function(t) { +for (var e = 0, i = this._objects.length; e < i; e++) { +var n = this._objects[e]; +if (n && n.name === t) return n; +} +return null; +}, +getObjects: function() { +return this._objects; +}, +_init: function(t, e) { +this._groupName = t.name; +this._positionOffset = t.offset; +this._mapInfo = e; +this._properties = t.getProperties(); +var i = e._mapSize, n = e._tileSize, r = 0, s = 0; +if (e.orientation === cc.TiledMap.Orientation.HEX) if (e.getStaggerAxis() === cc.TiledMap.StaggerAxis.STAGGERAXIS_X) { +s = n.height * (i.height + .5); +r = (n.width + e.getHexSideLength()) * Math.floor(i.width / 2) + n.width * (i.width % 2); +} else { +r = n.width * (i.width + .5); +s = (n.height + e.getHexSideLength()) * Math.floor(i.height / 2) + n.height * (i.height % 2); +} else { +r = i.width * n.width; +s = i.height * n.height; +} +this.node.setContentSize(r, s); +for (var o = t._objects, a = 0, c = o.length; a < c; a++) { +var l = o[a]; +l.offset = cc.v2(l.x, l.y); +var h = l.points || l.polylinePoints; +if (h) for (var u = 0; u < h.length; u++) h[u].y *= -1; +if (cc.TiledMap.Orientation.ISO !== e.orientation) l.y = s - l.y; else { +var _ = l.x / n.width * 2, f = l.y / n.height; +l.x = n.width / 2 * (i.width + _ - f); +l.y = n.height / 2 * (2 * i.height - _ - f); +} +} +this._objects = o; +} +}); +cc.TiledObjectGroup = e.exports = n; +}), {} ], +381: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "cc.TiledTile", +extends: cc.Component, +editor: !1, +ctor: function() { +this._layer = null; +}, +properties: { +_x: 0, +_y: 0, +x: { +get: function() { +return this._x; +}, +set: function(t) { +if (t !== this._x) if (this._layer && this._layer._isInvalidPosition(t, this._y)) cc.warn("Invalid x, the valid value is between [%s] ~ [%s]", 0, this._layer._layerSize.width); else { +this._resetTile(); +this._x = t; +this._updateInfo(); +} +}, +type: cc.Integer +}, +y: { +get: function() { +return this._y; +}, +set: function(t) { +if (t !== this._y) if (this._layer && this._layer._isInvalidPosition(this._x, t)) cc.warn("Invalid y, the valid value is between [%s] ~ [%s]", 0, this._layer._layerSize.height); else { +this._resetTile(); +this._y = t; +this._updateInfo(); +} +}, +type: cc.Integer +}, +gid: { +get: function() { +return this._layer ? this._layer.getTileGIDAt(this._x, this._y) : 0; +}, +set: function(t) { +this._layer && this._layer.setTileGIDAt(t, this._x, this._y); +}, +type: cc.Integer +} +}, +onEnable: function() { +var t = this.node.parent; +this._layer = t.getComponent(cc.TiledLayer); +this._resetTile(); +this._updateInfo(); +}, +onDisable: function() { +this._resetTile(); +}, +_resetTile: function() { +this._layer && this._layer.getTiledTileAt(this._x, this._y) === this && this._layer.setTiledTileAt(this._x, this._y, null); +}, +_updateInfo: function() { +if (this._layer) { +var t = this._x, e = this._y; +if (this._layer.getTiledTileAt(t, e)) cc.warn("There is already a TiledTile at [%s, %s]", t, e); else { +this.node.setPosition(this._layer.getPositionAt(t, e)); +this._layer.setTiledTileAt(t, e, this); +} +} +} +}); +cc.TiledTile = e.exports = n; +}), {} ], +382: [ (function(t, e, i) { +"use strict"; +t("./CCTiledMap"); +t("./tmx-layer-assembler"); +}), { +"./CCTiledMap": 378, +"./tmx-layer-assembler": 383 +} ], +383: [ (function(t, e, i) { +"use strict"; +var n = t("../core/vmath"), r = t("./CCTiledLayer"), s = t("./CCTiledMap"), o = t("../core/renderer/render-flow"), a = s.Orientation, c = s.TileFlag, l = c.FLIPPED_MASK, h = s.StaggerAxis, u = s.StaggerIndex, _ = n.mat4.create(), f = n.mat4.create(), d = n.vec3.create(), m = { +updateRenderData: function(t) { +var e = t._renderData; +e || (e = t._renderData = t.requestRenderData()); +var i = t.node._contentSize, n = t.node._anchorPoint; +e.updateSizeNPivot(i.width, i.height, n.x, n.y); +e.material = t.sharedMaterials[0]; +this.updateVertices(t); +}, +fillBuffers: function(t, e) { +for (var i = t._renderData, n = i._data, r = e._meshBuffer, s = i.vertexCount, a = r.request(s, i.indiceCount), c = a.indiceOffset, l = a.byteOffset >> 2, h = a.vertexOffset, u = r._vData, _ = r._iData, f = r._uintVData, d = 0, m = i.vertexCount; d < m; d++) { +var p = n[d]; +u[l++] = p.x; +u[l++] = p.y; +u[l++] = p.u; +u[l++] = p.v; +f[l++] = p.color; +} +for (var v = 0, y = i.indiceCount; v < y; v += 6) { +_[c++] = h; +_[c++] = h + 1; +_[c++] = h + 2; +_[c++] = h + 1; +_[c++] = h + 3; +_[c++] = h + 2; +h += 4; +} +t.node._renderFlag |= o.FLAG_UPDATE_RENDER_DATA; +}, +updateVertices: function(t) { +var e = t.node, i = t._renderData, r = i._data, s = e._color._val, o = e._color.a; +i.dataLength = i.vertexCount = i.indiceCount = 0; +var m = t._layerOrientation; +if (t._tiles && t._tileset) { +var p = e._anchorPoint.x * e._contentSize.width, v = e._anchorPoint.y * e._contentSize.height; +n.mat4.copy(_, e._worldMatrix); +n.vec3.set(d, -p, -v, 0); +n.mat4.translate(_, _, d); +var y = _.m00, g = _.m01, x = _.m04, C = _.m05, b = _.m12, A = _.m13, S = t._mapTileSize.width, w = t._mapTileSize.height, T = t._tileset._tileSize.width, E = t._tileset._tileSize.height, M = T - S, B = E - w, D = cc.winSize.width, I = cc.winSize.height, P = t._layerSize.height, R = t._layerSize.width, L = t._texGrids, F = t._tiledTiles, O = t._offset.x, V = t._offset.y, N = 0, k = 0, z = R, G = P, U = y, j = C, W = b += O * y + V * x, H = A += O * g + V * C, q = T * y, X = E * C, Y = cc.macro.ENABLE_TILEDMAP_CULLING; +if (Y) { +var J = cc.Camera.findCamera(t.node); +if (J) { +J.getWorldToScreenMatrix2D(f); +n.mat4.mul(_, f, _); +U = _.m00; +j = _.m05; +W = O * U + V * _.m04 + _.m12; +H = O * _.m01 + V * j + _.m13; +q = T * U; +X = E * j; +} +if (m === a.ORTHO) { +n.mat4.invert(_, _); +var Z = cc.visibleRect, K = _.m00, Q = _.m01, $ = _.m04, tt = _.m05, et = _.m12, it = _.m13, nt = Z.topLeft.x * K + Z.topLeft.y * $ + et, rt = Z.topLeft.x * Q + Z.topLeft.y * tt + it, st = Z.bottomLeft.x * K + Z.bottomLeft.y * $ + et, ot = Z.bottomLeft.x * Q + Z.bottomLeft.y * tt + it, at = Z.topRight.x * K + Z.topRight.y * $ + et, ct = Z.topRight.x * Q + Z.topRight.y * tt + it, lt = Z.bottomRight.x * K + Z.bottomRight.y * $ + et, ht = Z.bottomRight.x * Q + Z.bottomRight.y * tt + it, ut = Math.min(nt, st, at, lt), _t = Math.max(nt, st, at, lt), ft = Math.min(rt, ot, ct, ht), dt = Math.max(rt, ot, ct, ht); +N = Math.floor(ut / S); +k = P - Math.ceil(dt / w); +z = Math.ceil((_t + M) / S); +G = P - Math.floor((ft - B) / w); +N < 0 && (N = 0); +k < 0 && (k = 0); +z > R && (z = R); +G > P && (G = P); +} +} +var mt = k * R, pt = void 0, vt = void 0, yt = void 0, gt = void 0, xt = void 0, Ct = void 0, bt = void 0, At = void 0, St = void 0, wt = void 0, Tt = void 0, Et = void 0, Mt = void 0; +if (m === a.HEX) { +var Bt = t._hexSideLength; +St = t._staggerAxis; +wt = t._tileset.tileOffset; +Mt = t._staggerIndex === u.STAGGERINDEX_ODD ? 1 : -1; +Tt = St === h.STAGGERAXIS_X ? (S - Bt) / 2 : 0; +Et = St === h.STAGGERAXIS_Y ? (w - Bt) / 2 : 0; +} +for (var Dt = 0, It = void 0, Pt = void 0, Rt = void 0, Lt = void 0, Ft = void 0, Ot = void 0, Vt = void 0, Nt = k; Nt < G; ++Nt) { +for (var kt = N; kt < z; ++kt) { +var zt = mt + kt, Gt = !1, Ut = !1, jt = F[zt]; +if (vt = L[((pt = jt ? jt.gid : t._tiles[zt]) & l) >>> 0]) { +switch (m) { +case a.ORTHO: +gt = kt * S; +xt = (P - Nt - 1) * w; +break; + +case a.ISO: +gt = S / 2 * (R + kt - Nt - 1); +xt = w / 2 * (2 * P - kt - Nt - 2); +break; + +case a.HEX: +gt = kt * (S - Tt) + (St === h.STAGGERAXIS_Y && Nt % 2 == 1 ? S / 2 * Mt : 0) + wt.x; +xt = (P - Nt - 1) * (w - Et) + (St === h.STAGGERAXIS_X && kt % 2 == 1 ? w / 2 * -Mt : 0) - wt.y; +} +if (jt) { +var Wt = jt.node; +Vt = s; +var Ht = Wt.opacity * o / 255; +s = Wt.color.setA(Ht)._val; +It = y; +Pt = g; +Rt = x; +Lt = C; +Ft = b; +Ot = A; +Wt._updateLocalMatrix(); +n.mat4.copy(_, Wt._matrix); +n.vec3.set(d, -gt, -xt, 0); +n.mat4.translate(_, _, d); +n.mat4.multiply(_, e._worldMatrix, _); +y = _.m00; +g = _.m01; +x = _.m04; +C = _.m05; +b = _.m12; +A = _.m13; +} +Ct = gt + T; +yt = xt + E; +if (Y && m === a.ISO) { +if ((bt = H + xt * j) > I + X) { +kt += Math.floor(2 * (bt - I) / X) - 1; +continue; +} +if ((At = W + Ct * U) < -q) { +kt += Math.floor(2 * -At / q) - 1; +continue; +} +if (W + gt * U > D || H + yt * j < 0) { +kt = z; +continue; +} +} +if (pt > c.DIAGONAL) { +Gt = (pt & c.HORIZONTAL) >>> 0; +Ut = (pt & c.VERTICAL) >>> 0; +} +i.vertexCount += 4; +i.indiceCount += 6; +i.dataLength = i.vertexCount; +r[Dt].x = gt * y + yt * x + b; +r[Dt].y = gt * g + yt * C + A; +r[Dt].u = Gt ? vt.r : vt.l; +r[Dt].v = Ut ? vt.b : vt.t; +r[Dt].color = s; +r[++Dt].x = gt * y + xt * x + b; +r[Dt].y = gt * g + xt * C + A; +r[Dt].u = Gt ? vt.r : vt.l; +r[Dt].v = Ut ? vt.t : vt.b; +r[Dt].color = s; +r[++Dt].x = Ct * y + yt * x + b; +r[Dt].y = Ct * g + yt * C + A; +r[Dt].u = Gt ? vt.l : vt.r; +r[Dt].v = Ut ? vt.b : vt.t; +r[Dt].color = s; +r[++Dt].x = Ct * y + xt * x + b; +r[Dt].y = Ct * g + xt * C + A; +r[Dt].u = Gt ? vt.l : vt.r; +r[Dt].v = Ut ? vt.t : vt.b; +r[Dt].color = s; +Dt++; +if (jt) { +s = Vt; +y = It; +g = Pt; +x = Rt; +C = Lt; +b = Ft; +A = Ot; +} +} +} +mt += R; +} +} +} +}; +e.exports = r._assembler = m; +}), { +"../core/renderer/render-flow": 245, +"../core/vmath": 317, +"./CCTiledLayer": 377, +"./CCTiledMap": 378 +} ], +384: [ (function(t, e, i) { +"use strict"; +var n = t("./video-player-impl"), r = n.EventType, s = cc.Enum({ +REMOTE: 0, +LOCAL: 1 +}), o = cc.Class({ +name: "cc.VideoPlayer", +extends: cc.Component, +editor: !1, +properties: { +_resourceType: s.REMOTE, +resourceType: { +tooltip: !1, +type: s, +set: function(t) { +this._resourceType = t; +this._updateVideoSource(); +}, +get: function() { +return this._resourceType; +} +}, +_remoteURL: "", +remoteURL: { +tooltip: !1, +type: cc.String, +set: function(t) { +this._remoteURL = t; +this._updateVideoSource(); +}, +get: function() { +return this._remoteURL; +} +}, +_clip: { +default: null, +type: cc.Asset +}, +clip: { +tooltip: !1, +get: function() { +return this._clip; +}, +set: function(t) { +this._clip = t; +this._updateVideoSource(); +}, +type: cc.Asset +}, +currentTime: { +tooltip: !1, +type: cc.Float, +set: function(t) { +this._impl && this._impl.seekTo(t); +}, +get: function() { +return this._impl ? this._impl.currentTime() : -1; +} +}, +_volume: 1, +volume: { +get: function() { +return this._volume; +}, +set: function(t) { +this._volume = t; +this.isPlaying() && !this._mute && this._syncVolume(); +}, +range: [ 0, 1 ], +type: cc.Float, +tooltip: !1 +}, +_mute: !1, +mute: { +get: function() { +return this._mute; +}, +set: function(t) { +this._mute = t; +this._syncVolume(); +}, +tooltip: !1 +}, +keepAspectRatio: { +tooltip: !1, +default: !0, +type: cc.Boolean, +notify: function() { +this._impl.setKeepAspectRatioEnabled(this.keepAspectRatio); +} +}, +isFullscreen: { +tooltip: !1, +default: !1, +type: cc.Boolean, +notify: function() { +this._impl.setFullScreenEnabled(this.isFullscreen); +} +}, +videoPlayerEvent: { +default: [], +type: cc.Component.EventHandler +} +}, +statics: { +EventType: r, +ResourceType: s, +Impl: n +}, +ctor: function() { +this._impl = new n(); +}, +_syncVolume: function() { +var t = this._impl; +if (t) { +var e = this._mute ? 0 : this._volume; +t.setVolume(e); +} +}, +_updateVideoSource: function() { +var t = ""; +this.resourceType === s.REMOTE ? t = this.remoteURL : this._clip && (t = this._clip.nativeUrl || ""); +t && cc.loader.md5Pipe && (t = cc.loader.md5Pipe.transformURL(t)); +this._impl.setURL(t, this._mute || 0 === this._volume); +}, +onLoad: function() { +var t = this._impl; +if (t) { +t.createDomElementIfNeeded(this._mute || 0 === this._volume); +this._updateVideoSource(); +t.seekTo(this.currentTime); +t.setKeepAspectRatioEnabled(this.keepAspectRatio); +t.setFullScreenEnabled(this.isFullscreen); +this.pause(); +t.setEventListener(r.PLAYING, this.onPlaying.bind(this)); +t.setEventListener(r.PAUSED, this.onPasued.bind(this)); +t.setEventListener(r.STOPPED, this.onStopped.bind(this)); +t.setEventListener(r.COMPLETED, this.onCompleted.bind(this)); +t.setEventListener(r.META_LOADED, this.onMetaLoaded.bind(this)); +t.setEventListener(r.CLICKED, this.onClicked.bind(this)); +t.setEventListener(r.READY_TO_PLAY, this.onReadyToPlay.bind(this)); +} +}, +onRestore: function() { +this._impl || (this._impl = new n()); +}, +onEnable: function() { +this._impl && this._impl.enable(); +}, +onDisable: function() { +this._impl && this._impl.disable(); +}, +onDestroy: function() { +if (this._impl) { +this._impl.destroy(); +this._impl = null; +} +}, +update: function(t) { +this._impl && this._impl.updateMatrix(this.node); +}, +onReadyToPlay: function() { +cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.READY_TO_PLAY); +this.node.emit("ready-to-play", this); +}, +onMetaLoaded: function() { +cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.META_LOADED); +this.node.emit("meta-loaded", this); +}, +onClicked: function() { +cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.CLICKED); +this.node.emit("clicked", this); +}, +onPlaying: function() { +cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.PLAYING); +this.node.emit("playing", this); +}, +onPasued: function() { +cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.PAUSED); +this.node.emit("paused", this); +}, +onStopped: function() { +cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.STOPPED); +this.node.emit("stopped", this); +}, +onCompleted: function() { +cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.COMPLETED); +this.node.emit("completed", this); +}, +play: function() { +if (this._impl) { +this._syncVolume(); +this._impl.play(); +} +}, +resume: function() { +if (this._impl) { +this._syncVolume(); +this._impl.resume(); +} +}, +pause: function() { +this._impl && this._impl.pause(); +}, +stop: function() { +this._impl && this._impl.stop(); +}, +getDuration: function() { +return this._impl ? this._impl.duration() : -1; +}, +isPlaying: function() { +return !!this._impl && this._impl.isPlaying(); +} +}); +cc.VideoPlayer = e.exports = o; +}), { +"./video-player-impl": 385 +} ], +385: [ (function(t, e, i) { +"use strict"; +var n = t("../core/vmath"), r = t("../core/platform/utils"), s = t("../core/platform/CCSys"), o = { +HAVE_NOTHING: 0, +HAVE_METADATA: 1, +HAVE_CURRENT_DATA: 2, +HAVE_FUTURE_DATA: 3, +HAVE_ENOUGH_DATA: 4 +}, a = n.mat4.create(), c = cc.Class({ +name: "VideoPlayerImpl", +ctor: function() { +this._EventList = {}; +this._video = null; +this._url = ""; +this._fullScreenEnabled = !1; +this._loadedmeta = !1; +this._loaded = !1; +this._visible = !1; +this._playing = !1; +this._ignorePause = !1; +this._forceUpdate = !0; +this._m00 = 0; +this._m01 = 0; +this._m04 = 0; +this._m05 = 0; +this._m12 = 0; +this._m13 = 0; +this._w = 0; +this._h = 0; +this.__eventListeners = {}; +}, +_bindEvent: function() { +var t = this._video, e = this, i = this.__eventListeners; +i.loadedmetadata = function() { +e._loadedmeta = !0; +e._fullScreenEnabled ? cc.screen.requestFullScreen(t) : cc.screen.fullScreen() && cc.screen.exitFullScreen(t); +e._dispatchEvent(c.EventType.META_LOADED); +}; +i.ended = function() { +if (e._video === t) { +e._playing = !1; +e._dispatchEvent(c.EventType.COMPLETED); +} +}; +i.play = function() { +if (e._video === t) { +e._playing = !0; +e._updateVisibility(); +e._dispatchEvent(c.EventType.PLAYING); +} +}; +i.pause = function() { +if (e._video === t) { +e._playing = !1; +e._ignorePause || e._dispatchEvent(c.EventType.PAUSED); +} +}; +i.click = function() { +e._dispatchEvent(c.EventType.CLICKED); +}; +t.addEventListener("loadedmetadata", i.loadedmetadata); +t.addEventListener("ended", i.ended); +t.addEventListener("play", i.play); +t.addEventListener("pause", i.pause); +t.addEventListener("click", i.click); +i.onCanPlay = function() { +if (!e._loaded && !e._playing) { +var t = e._video; +if (t.readyState === o.HAVE_ENOUGH_DATA || t.readyState === o.HAVE_METADATA) { +t.currentTime = 0; +e._loaded = !0; +e._dispatchEvent(c.EventType.READY_TO_PLAY); +e._updateVisibility(); +} +} +}; +t.addEventListener("canplay", i.onCanPlay); +t.addEventListener("canplaythrough", i.onCanPlay); +t.addEventListener("suspend", i.onCanPlay); +}, +_updateVisibility: function() { +var t = this._video; +if (t) if (this._visible) { +t.style.visibility = "visible"; +this._forceUpdate = !0; +} else { +t.style.visibility = "hidden"; +t.pause(); +this._playing = !1; +this._forceUpdate = !1; +} +}, +_updateSize: function(t, e) { +var i = this._video; +if (i) { +i.style.width = t + "px"; +i.style.height = e + "px"; +} +}, +_createDom: function(t) { +var e = document.createElement("video"); +e.style.position = "absolute"; +e.style.bottom = "0px"; +e.style.left = "0px"; +e.className = "cocosVideo"; +e.setAttribute("preload", "auto"); +e.setAttribute("webkit-playsinline", ""); +e.setAttribute("x5-playsinline", ""); +e.setAttribute("playsinline", ""); +t && e.setAttribute("muted", ""); +this._video = e; +cc.game.container.appendChild(e); +}, +createDomElementIfNeeded: function(t) { +this._video || this._createDom(t); +}, +removeDom: function() { +var t = this._video; +if (t) { +r.contains(cc.game.container, t) && cc.game.container.removeChild(t); +var e = this.__eventListeners; +t.removeEventListener("loadedmetadata", e.loadedmetadata); +t.removeEventListener("ended", e.ended); +t.removeEventListener("play", e.play); +t.removeEventListener("pause", e.pause); +t.removeEventListener("click", e.click); +t.removeEventListener("canplay", e.onCanPlay); +t.removeEventListener("canplaythrough", e.onCanPlay); +t.removeEventListener("suspend", e.onCanPlay); +e.loadedmetadata = null; +e.ended = null; +e.play = null; +e.pause = null; +e.click = null; +e.onCanPlay = null; +} +this._video = null; +this._url = ""; +}, +setURL: function(t, e) { +var i, n = void 0; +if (this._url !== t) { +this._url = t; +this.removeDom(); +this.createDomElementIfNeeded(e); +this._bindEvent(); +var r = this._video; +r.style.visibility = "hidden"; +this._loaded = !1; +this._playing = !1; +this._loadedmeta = !1; +(n = document.createElement("source")).src = t; +r.appendChild(n); +i = cc.path.extname(t); +for (var s = c._polyfill, o = 0; o < s.canPlayType.length; o++) if (i !== s.canPlayType[o]) { +(n = document.createElement("source")).src = t.replace(i, s.canPlayType[o]); +r.appendChild(n); +} +} +}, +getURL: function() { +return this._url; +}, +play: function() { +var t = this._video; +if (t && this._visible && !this._playing) if (c._polyfill.autoplayAfterOperation) { +setTimeout((function() { +t.play(); +}), 20); +} else t.play(); +}, +pause: function() { +var t = this._video; +this._playing && t && t.pause(); +}, +resume: function() { +this.play(); +}, +stop: function() { +var t = this._video; +if (t && this._visible) { +this._ignorePause = !0; +t.currentTime = 0; +t.pause(); +setTimeout(function() { +this._dispatchEvent(c.EventType.STOPPED); +this._ignorePause = !1; +}.bind(this), 0); +} +}, +setVolume: function(t) { +var e = this._video; +e && (e.volume = t); +}, +seekTo: function(t) { +var e = this._video; +if (e) { +if (this._loaded) e.currentTime = t; else { +e.addEventListener(c._polyfill.event, (function i() { +e.currentTime = t; +e.removeEventListener(c._polyfill.event, i); +})); +} +c._polyfill.autoplayAfterOperation && this.isPlaying() && setTimeout((function() { +e.play(); +}), 20); +} +}, +isPlaying: function() { +var t = this._video; +c._polyfill.autoplayAfterOperation && this._playing && setTimeout((function() { +t.play(); +}), 20); +return this._playing; +}, +duration: function() { +var t = this._video, e = -1; +if (!t) return e; +e = t.duration; +e <= 0 && cc.logID(7702); +return e; +}, +currentTime: function() { +var t = this._video; +return t ? t.currentTime : -1; +}, +setKeepAspectRatioEnabled: function() { +0; +cc.logID(7700); +}, +isKeepAspectRatioEnabled: function() { +return !0; +}, +setFullScreenEnabled: function(t) { +var e = this._video; +if (e) { +this._fullScreenEnabled = t; +t ? cc.screen.requestFullScreen(e) : cc.screen.fullScreen() && cc.screen.exitFullScreen(e); +} +}, +isFullScreenEnabled: function() { +return this._fullScreenEnabled; +}, +setEventListener: function(t, e) { +this._EventList[t] = e; +}, +removeEventListener: function(t) { +this._EventList[t] = null; +}, +_dispatchEvent: function(t) { +var e = this._EventList[t]; +e && e.call(this, this, this._video.src); +}, +onPlayEvent: function() { +this._EventList[c.EventType.PLAYING].call(this, this, this._video.src); +}, +enable: function() { +var t = c.elements; +-1 === t.indexOf(this) && t.push(this); +this.setVisible(!0); +}, +disable: function() { +var t = c.elements, e = t.indexOf(this); +-1 !== e && t.splice(e, 1); +this.setVisible(!1); +}, +destroy: function() { +this.disable(); +this.removeDom(); +}, +setVisible: function(t) { +if (this._visible !== t) { +this._visible = !!t; +this._updateVisibility(); +} +}, +updateMatrix: function(t) { +if (this._video && this._visible) { +t.getWorldMatrix(a); +var e = cc.Camera._findRendererCamera(t); +e && e.worldMatrixToScreen(a, a, cc.visibleRect.width, cc.visibleRect.height); +if (this._forceUpdate || this._m00 !== a.m00 || this._m01 !== a.m01 || this._m04 !== a.m04 || this._m05 !== a.m05 || this._m12 !== a.m12 || this._m13 !== a.m13 || this._w !== t._contentSize.width || this._h !== t._contentSize.height) { +this._m00 = a.m00; +this._m01 = a.m01; +this._m04 = a.m04; +this._m05 = a.m05; +this._m12 = a.m12; +this._m13 = a.m13; +this._w = t._contentSize.width; +this._h = t._contentSize.height; +var i = cc.view._scaleX, n = cc.view._scaleY, r = cc.view._devicePixelRatio; +i /= r; +n /= r; +var s = cc.game.container, o = a.m00 * i, l = a.m01, h = a.m04, u = a.m05 * n, _ = s && s.style.paddingLeft ? parseInt(s.style.paddingLeft) : 0, f = s && s.style.paddingBottom ? parseInt(s.style.paddingBottom) : 0, d = void 0, m = void 0; +if (c._polyfill.zoomInvalid) { +this._updateSize(this._w * o, this._h * u); +o = 1; +u = 1; +d = this._w * i; +m = this._h * n; +} else { +d = this._w * i; +m = this._h * n; +this._updateSize(this._w, this._h); +} +var p = d * a.m00 * t._anchorPoint.x, v = m * a.m05 * t._anchorPoint.y, y = cc.view._viewportRect; +_ += y.x / r; +f += y.y / r; +var g = "matrix(" + o + "," + -l + "," + -h + "," + u + "," + (a.m12 * i - p + _) + "," + -(a.m13 * n - v + f) + ")"; +this._video.style.transform = g; +this._video.style["-webkit-transform"] = g; +this._video.style["transform-origin"] = "0px 100% 0px"; +this._video.style["-webkit-transform-origin"] = "0px 100% 0px"; +} +} +} +}); +c.EventType = { +PLAYING: 0, +PAUSED: 1, +STOPPED: 2, +COMPLETED: 3, +META_LOADED: 4, +CLICKED: 5, +READY_TO_PLAY: 6 +}; +c.elements = []; +c.pauseElements = []; +cc.game.on(cc.game.EVENT_HIDE, (function() { +for (var t, e = c.elements, i = 0; i < e.length; i++) if ((t = e[i]).isPlaying()) { +t.pause(); +c.pauseElements.push(t); +} +})); +cc.game.on(cc.game.EVENT_SHOW, (function() { +for (var t = c.pauseElements, e = t.pop(); e; ) { +e.play(); +e = t.pop(); +} +})); +c._polyfill = { +devicePixelRatio: !1, +event: "canplay", +canPlayType: [] +}; +var l = document.createElement("video"); +if (l.canPlayType) { +if (l.canPlayType("video/ogg")) { +c._polyfill.canPlayType.push(".ogg"); +c._polyfill.canPlayType.push(".ogv"); +} +l.canPlayType("video/mp4") && c._polyfill.canPlayType.push(".mp4"); +l.canPlayType("video/webm") && c._polyfill.canPlayType.push(".webm"); +} +s.browserType === s.BROWSER_TYPE_FIREFOX && (c._polyfill.autoplayAfterOperation = !0); +s.OS_ANDROID !== s.os || s.browserType !== s.BROWSER_TYPE_SOUGOU && s.browserType !== s.BROWSER_TYPE_360 || (c._polyfill.zoomInvalid = !0); +var h = document.createElement("style"); +h.innerHTML = ".cocosVideo:-moz-full-screen{transform:matrix(1,0,0,1,0,0) !important;}.cocosVideo:full-screen{transform:matrix(1,0,0,1,0,0) !important;}.cocosVideo:-webkit-full-screen{transform:matrix(1,0,0,1,0,0) !important;}"; +document.head.appendChild(h); +e.exports = c; +}), { +"../core/platform/CCSys": 210, +"../core/platform/utils": 225, +"../core/vmath": 317 +} ], +386: [ (function(t, e, i) { +"use strict"; +var n = t("./webview-impl"), r = n.EventType; +function s() {} +var o = cc.Class({ +name: "cc.WebView", +extends: cc.Component, +editor: !1, +properties: { +_useOriginalSize: !0, +_url: "", +url: { +type: String, +tooltip: !1, +get: function() { +return this._url; +}, +set: function(t) { +this._url = t; +var e = this._impl; +e && e.loadURL(t); +} +}, +webviewEvents: { +default: [], +type: cc.Component.EventHandler +} +}, +statics: { +EventType: r, +Impl: n +}, +ctor: function() { +this._impl = new o.Impl(); +}, +onRestore: function() { +this._impl || (this._impl = new o.Impl()); +}, +onEnable: function() { +var t = this._impl; +t.createDomElementIfNeeded(this.node.width, this.node.height); +t.setEventListener(r.LOADED, this._onWebViewLoaded.bind(this)); +t.setEventListener(r.LOADING, this._onWebViewLoading.bind(this)); +t.setEventListener(r.ERROR, this._onWebViewLoadError.bind(this)); +t.loadURL(this._url); +t.setVisible(!0); +}, +onDisable: function() { +var t = this._impl; +t.setVisible(!1); +t.setEventListener(r.LOADED, s); +t.setEventListener(r.LOADING, s); +t.setEventListener(r.ERROR, s); +}, +onDestroy: function() { +if (this._impl) { +this._impl.destroy(); +this._impl = null; +} +}, +update: function(t) { +this._impl && this._impl.updateMatrix(this.node); +}, +_onWebViewLoaded: function() { +cc.Component.EventHandler.emitEvents(this.webviewEvents, this, r.LOADED); +this.node.emit("loaded", this); +}, +_onWebViewLoading: function() { +cc.Component.EventHandler.emitEvents(this.webviewEvents, this, r.LOADING); +this.node.emit("loading", this); +return !0; +}, +_onWebViewLoadError: function() { +cc.Component.EventHandler.emitEvents(this.webviewEvents, this, r.ERROR); +this.node.emit("error", this); +}, +setJavascriptInterfaceScheme: function(t) { +this._impl && this._impl.setJavascriptInterfaceScheme(t); +}, +setOnJSCallback: function(t) { +this._impl && this._impl.setOnJSCallback(t); +}, +evaluateJS: function(t) { +this._impl && this._impl.evaluateJS(t); +} +}); +cc.WebView = e.exports = o; +}), { +"./webview-impl": 387 +} ], +387: [ (function(t, e, i) { +"use strict"; +var n = t("../core/vmath"), r = t("../core/platform/utils"), s = t("../core/platform/CCSys"), o = n.mat4.create(), a = cc.Class({ +name: "WebViewImpl", +ctor: function() { +this._EventList = {}; +this._visible = !1; +this._parent = null; +this._div = null; +this._iframe = null; +this._listener = null; +this._forceUpdate = !0; +this._m00 = 0; +this._m01 = 0; +this._m04 = 0; +this._m05 = 0; +this._m12 = 0; +this._m13 = 0; +this._w = 0; +this._h = 0; +this.__eventListeners = {}; +}, +_updateVisibility: function() { +if (this._div) { +var t = this._div; +this._visible ? t.style.visibility = "visible" : t.style.visibility = "hidden"; +this._forceUpdate = !0; +} +}, +_updateSize: function(t, e) { +var i = this._div; +if (i) { +i.style.width = t + "px"; +i.style.height = e + "px"; +} +}, +_initEvent: function() { +var t = this._iframe; +if (t) { +var e = this.__eventListeners, i = this; +e.load = function() { +i._dispatchEvent(a.EventType.LOADED); +}; +e.error = function() { +i._dispatchEvent(a.EventType.ERROR); +}; +t.addEventListener("load", e.load); +t.addEventListener("error", e.error); +} +}, +_initStyle: function() { +if (this._div) { +var t = this._div; +t.style.position = "absolute"; +t.style.bottom = "0px"; +t.style.left = "0px"; +} +}, +_setOpacity: function(t) { +var e = this._iframe; +e && e.style && (e.style.opacity = t / 255); +}, +_createDom: function(t, e) { +if (a._polyfill.enableDiv) { +this._div = document.createElement("div"); +this._div.style["-webkit-overflow"] = "auto"; +this._div.style["-webkit-overflow-scrolling"] = "touch"; +this._iframe = document.createElement("iframe"); +this._div.appendChild(this._iframe); +this._iframe.style.width = "100%"; +this._iframe.style.height = "100%"; +} else this._div = this._iframe = document.createElement("iframe"); +a._polyfill.enableBG && (this._div.style.background = "#FFF0"); +this._div.style.background = "#FFF0"; +this._div.style.height = e + "px"; +this._div.style.width = t + "px"; +this._div.style.overflow = "scroll"; +this._iframe.style.border = "none"; +cc.game.container.appendChild(this._div); +this._updateVisibility(); +}, +_createNativeControl: function(t, e) { +this._createDom(t, e); +this._initStyle(); +this._initEvent(); +}, +createDomElementIfNeeded: function(t, e) { +this._div ? this._updateSize(t, e) : this._createNativeControl(t, e); +}, +removeDom: function() { +var t = this._div; +if (t) { +r.contains(cc.game.container, t) && cc.game.container.removeChild(t); +this._div = null; +} +var e = this._iframe; +if (e) { +var i = this.__eventListeners; +e.removeEventListener("load", i.load); +e.removeEventListener("error", i.error); +i.load = null; +i.error = null; +this._iframe = null; +} +}, +setOnJSCallback: function(t) {}, +setJavascriptInterfaceScheme: function(t) {}, +loadData: function(t, e, i, n) {}, +loadHTMLString: function(t, e) {}, +loadURL: function(t) { +var e = this._iframe; +if (e) { +e.src = t; +var i = this; +e.addEventListener("load", (function t() { +i._loaded = !0; +i._updateVisibility(); +e.removeEventListener("load", t); +})); +this._dispatchEvent(a.EventType.LOADING); +} +}, +stopLoading: function() { +cc.logID(7800); +}, +reload: function() { +var t = this._iframe; +if (t) { +var e = t.contentWindow; +e && e.location && e.location.reload(); +} +}, +canGoBack: function() { +cc.logID(7801); +return !0; +}, +canGoForward: function() { +cc.logID(7802); +return !0; +}, +goBack: function() { +try { +if (a._polyfill.closeHistory) return cc.logID(7803); +var t = this._iframe; +if (t) { +var e = t.contentWindow; +e && e.location && e.history.back.call(e); +} +} catch (t) { +cc.log(t); +} +}, +goForward: function() { +try { +if (a._polyfill.closeHistory) return cc.logID(7804); +var t = this._iframe; +if (t) { +var e = t.contentWindow; +e && e.location && e.history.forward.call(e); +} +} catch (t) { +cc.log(t); +} +}, +evaluateJS: function(t) { +var e = this._iframe; +if (e) { +var i = e.contentWindow; +try { +i.eval(t); +this._dispatchEvent(a.EventType.JS_EVALUATED); +} catch (t) { +console.error(t); +} +} +}, +setScalesPageToFit: function() { +cc.logID(7805); +}, +setEventListener: function(t, e) { +this._EventList[t] = e; +}, +removeEventListener: function(t) { +this._EventList[t] = null; +}, +_dispatchEvent: function(t) { +var e = this._EventList[t]; +e && e.call(this, this, this._iframe.src); +}, +_createRenderCmd: function() { +return new a.RenderCmd(this); +}, +destroy: function() { +this.removeDom(); +}, +setVisible: function(t) { +if (this._visible !== t) { +this._visible = !!t; +this._updateVisibility(); +} +}, +updateMatrix: function(t) { +if (this._div && this._visible) { +t.getWorldMatrix(o); +var e = cc.Camera._findRendererCamera(t); +e && e.worldMatrixToScreen(o, o, cc.visibleRect.width, cc.visibleRect.height); +if (this._forceUpdate || this._m00 !== o.m00 || this._m01 !== o.m01 || this._m04 !== o.m04 || this._m05 !== o.m05 || this._m12 !== o.m12 || this._m13 !== o.m13 || this._w !== t._contentSize.width || this._h !== t._contentSize.height) { +this._m00 = o.m00; +this._m01 = o.m01; +this._m04 = o.m04; +this._m05 = o.m05; +this._m12 = o.m12; +this._m13 = o.m13; +this._w = t._contentSize.width; +this._h = t._contentSize.height; +var i = cc.view._scaleX, n = cc.view._scaleY, r = cc.view._devicePixelRatio; +i /= r; +n /= r; +var s = cc.game.container, a = o.m00 * i, c = o.m01, l = o.m04, h = o.m05 * n, u = s && s.style.paddingLeft ? parseInt(s.style.paddingLeft) : 0, _ = s && s.style.paddingBottom ? parseInt(s.style.paddingBottom) : 0; +this._updateSize(this._w, this._h); +var f = this._div.clientWidth * i, d = this._div.clientHeight * n, m = f * o.m00 * t._anchorPoint.x, p = d * o.m05 * t._anchorPoint.y, v = cc.view._viewportRect; +u += v.x / r; +_ += v.y / r; +var y = "matrix(" + a + "," + -c + "," + -l + "," + h + "," + (o.m12 * i - m + u) + "," + -(o.m13 * n - p + _) + ")"; +this._div.style.transform = y; +this._div.style["-webkit-transform"] = y; +this._div.style["transform-origin"] = "0px 100% 0px"; +this._div.style["-webkit-transform-origin"] = "0px 100% 0px"; +this._setOpacity(t.opacity); +} +} +} +}); +a.EventType = { +LOADING: 0, +LOADED: 1, +ERROR: 2, +JS_EVALUATED: 3 +}; +var c = a._polyfill = { +devicePixelRatio: !1, +enableDiv: !1 +}; +s.os === s.OS_IOS && (c.enableDiv = !0); +s.isMobile ? s.browserType === s.BROWSER_TYPE_FIREFOX && (c.enableBG = !0) : s.browserType === s.BROWSER_TYPE_IE && (c.closeHistory = !0); +e.exports = a; +}), { +"../core/platform/CCSys": 210, +"../core/platform/utils": 225, +"../core/vmath": 317 +} ], +388: [ (function(t, e, i) { +"use strict"; +t("./cocos2d/core"); +t("./cocos2d/animation"); +t("./cocos2d/particle"); +t("./cocos2d/tilemap"); +t("./cocos2d/videoplayer/CCVideoPlayer"); +t("./cocos2d/webview/CCWebView"); +t("./cocos2d/core/components/CCStudioComponent"); +t("./extensions/ccpool/CCNodePool"); +t("./cocos2d/actions"); +t("./extensions/spine"); +t("./extensions/dragonbones"); +t("./cocos2d/deprecated"); +}), { +"./cocos2d/actions": 7, +"./cocos2d/animation": 16, +"./cocos2d/core": 146, +"./cocos2d/core/components/CCStudioComponent": 112, +"./cocos2d/deprecated": 327, +"./cocos2d/particle": 333, +"./cocos2d/particle/CCParticleAsset": 330, +"./cocos2d/tilemap": 382, +"./cocos2d/tilemap/CCTiledMapAsset": 379, +"./cocos2d/videoplayer/CCVideoPlayer": 384, +"./cocos2d/webview/CCWebView": 386, +"./extensions/ccpool/CCNodePool": 389, +"./extensions/dragonbones": 393, +"./extensions/spine": 396 +} ], +389: [ (function(t, e, i) { +"use strict"; +cc.NodePool = function(t) { +this.poolHandlerComp = t; +this._pool = []; +}; +cc.NodePool.prototype = { +constructor: cc.NodePool, +size: function() { +return this._pool.length; +}, +clear: function() { +for (var t = this._pool.length, e = 0; e < t; ++e) this._pool[e].destroy(); +this._pool.length = 0; +}, +put: function(t) { +if (t && -1 === this._pool.indexOf(t)) { +t.removeFromParent(!1); +var e = this.poolHandlerComp ? t.getComponent(this.poolHandlerComp) : null; +e && e.unuse && e.unuse(); +this._pool.push(t); +} +}, +get: function() { +var t = this._pool.length - 1; +if (t < 0) return null; +var e = this._pool[t]; +this._pool.length = t; +var i = this.poolHandlerComp ? e.getComponent(this.poolHandlerComp) : null; +i && i.reuse && i.reuse.apply(i, arguments); +return e; +} +}; +e.exports = cc.NodePool; +}), {} ], +390: [ (function(t, e, i) { +"use strict"; +var n = t("../../cocos2d/core/components/CCRenderComponent"), r = t("../../cocos2d/core/assets/material/CCMaterial"), s = t("../../cocos2d/core/event/event-target"), o = (t("../../cocos2d/core/CCNode"), +t("../../cocos2d/core/graphics/graphics")), a = t("./ArmatureCache"), c = cc.Enum({ +default: -1 +}), l = cc.Enum({ +"": 0 +}), h = (cc.Enum({ +REALTIME: 0 +}), cc.Enum({ +REALTIME: 0, +SHARED_CACHE: 1, +PRIVATE_CACHE: 2 +})); +var u = cc.Class({ +name: "dragonBones.ArmatureDisplay", +extends: n, +editor: !1, +statics: { +AnimationCacheMode: h +}, +properties: { +_factory: { +default: null, +type: dragonBones.CCFactory, +serializable: !1 +}, +dragonAsset: { +default: null, +type: dragonBones.DragonBonesAsset, +notify: function() { +this._refresh(); +0; +}, +tooltip: !1 +}, +dragonAtlasAsset: { +default: null, +type: dragonBones.DragonBonesAtlasAsset, +notify: function() { +this._parseDragonAtlasAsset(); +this._refresh(); +this._activateMaterial(); +}, +tooltip: !1 +}, +_armatureName: "", +armatureName: { +get: function() { +return this._armatureName; +}, +set: function(t) { +this._armatureName = t; +var e = this.getAnimationNames(this._armatureName); +(!this.animationName || e.indexOf(this.animationName) < 0) && (this.animationName = ""); +this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.remove(this._armature); +this._refresh(); +this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.add(this._armature); +}, +visible: !1 +}, +_animationName: "", +animationName: { +get: function() { +return this._animationName; +}, +set: function(t) { +this._animationName = t; +}, +visible: !1 +}, +_defaultArmatureIndex: { +default: 0, +notify: function() { +var t = ""; +if (this.dragonAsset) { +var e = void 0; +this.dragonAsset && (e = this.dragonAsset.getArmatureEnum()); +if (!e) return cc.errorID(7400, this.name); +t = e[this._defaultArmatureIndex]; +} +void 0 !== t ? this.armatureName = t : cc.errorID(7401, this.name); +}, +type: c, +visible: !0, +editorOnly: !0, +animatable: !1, +displayName: "Armature", +tooltip: !1 +}, +_animationIndex: { +default: 0, +notify: function() { +if (0 !== this._animationIndex) { +var t = void 0; +this.dragonAsset && (t = this.dragonAsset.getAnimsEnum(this.armatureName)); +if (t) { +var e = t[this._animationIndex]; +void 0 !== e ? this.playAnimation(e, this.playTimes) : cc.errorID(7402, this.name); +} +} else this.animationName = ""; +}, +type: l, +visible: !0, +editorOnly: !0, +displayName: "Animation", +tooltip: !1 +}, +_preCacheMode: -1, +_cacheMode: h.REALTIME, +_defaultCacheMode: { +default: 0, +type: h, +notify: function() { +this.setAnimationCacheMode(this._defaultCacheMode); +}, +editorOnly: !0, +visible: !0, +animatable: !1, +displayName: "Animation Cache Mode", +tooltip: !1 +}, +timeScale: { +default: 1, +notify: function() { +this._armature && (this._armature.animation.timeScale = this.timeScale); +}, +tooltip: !1 +}, +playTimes: { +default: -1, +tooltip: !1 +}, +premultipliedAlpha: { +default: !1, +tooltip: !1 +}, +debugBones: { +default: !1, +notify: function() { +this._updateDebugDraw(); +}, +tooltip: !1 +}, +enableBatch: { +default: !1, +notify: function() { +this._updateBatch(); +}, +tooltip: !1 +}, +_armatureKey: "", +_accTime: 0, +_playCount: 0, +_frameCache: null, +_curFrame: null, +_playing: !1, +_armatureCache: null +}, +ctor: function() { +this._eventTarget = new s(); +this._materialCache = {}; +this._inited = !1; +this._factory = dragonBones.CCFactory.getInstance(); +}, +onLoad: function() { +for (var t = this.node.children, e = 0, i = t.length; e < i; e++) { +var n = t[e]; +0 === (n._name && n._name.search("CHILD_ARMATURE-")) && n.destroy(); +} +}, +_updateBatch: function() { +var t = this._materialCache; +for (var e in t) { +var i = t[e]; +i && i.define("_USE_MODEL", !this.enableBatch); +} +}, +setMaterial: function(t, e) { +this._super(t, e); +this._materialCache = {}; +}, +__preload: function() { +this._init(); +}, +_init: function() { +if (!this._inited) { +this._inited = !0; +this._cacheMode = h.REALTIME; +this._parseDragonAtlasAsset(); +this._refresh(); +this._activateMaterial(); +for (var t = this.node.children, e = 0, i = t.length; e < i; e++) { +var n = t[e]; +n && "DEBUG_DRAW_NODE" === n._name && n.destroy(); +} +this._updateDebugDraw(); +} +}, +getArmatureKey: function() { +return this._armatureKey; +}, +setAnimationCacheMode: function(t) {}, +isAnimationCached: function() { +0; +return this._cacheMode !== h.REALTIME; +}, +onEnable: function() { +this._super(); +this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.add(this._armature); +this._activateMaterial(); +}, +onDisable: function() { +this._super(); +this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.remove(this._armature); +}, +update: function(t) { +if (this.isAnimationCached() && this._playing) { +var e = this._frameCache, i = e.frames, n = a.FrameTime; +0 == this._accTime && 0 == this._playCount && this._eventTarget && this._eventTarget.emit(dragonBones.EventObject.START); +var r = dragonBones.timeScale; +this._accTime += t * this.timeScale * r; +var s = Math.floor(this._accTime / n); +e.isCompleted || e.updateToFrame(s); +if (e.isCompleted && s >= i.length) { +this._eventTarget && this._eventTarget.emit(dragonBones.EventObject.LOOP_COMPLETE); +this._eventTarget && this._eventTarget.emit(dragonBones.EventObject.COMPLETE); +this._playCount++; +if (this.playTimes > 0 && this._playCount >= this.playTimes) { +this._curFrame = i[i.length - 1]; +this._accTime = 0; +this._playing = !1; +this._playCount = 0; +return; +} +this._accTime = 0; +s = 0; +} +this._curFrame = i[s]; +} +}, +onDestroy: function() { +this._super(); +this._inited = !1; +if (this._cacheMode === h.PRIVATE_CACHE) { +this._armatureCache.dispose(); +this._armatureCache = null; +this._armature = null; +} else if (this._cacheMode === h.SHARED_CACHE) { +this._armatureCache = null; +this._armature = null; +} else if (this._armature) { +this._armature.dispose(); +this._armature = null; +} +}, +_updateDebugDraw: function() { +if (this.debugBones) { +if (!this._debugDraw) { +var t = new cc.PrivateNode(); +t.name = "DEBUG_DRAW_NODE"; +var e = t.addComponent(o); +e.lineWidth = 1; +e.strokeColor = cc.color(255, 0, 0, 255); +this._debugDraw = e; +} +this._debugDraw.node.parent = this.node; +} else this._debugDraw && (this._debugDraw.node.parent = null); +}, +_activateMaterial: function() { +var t = this.dragonAtlasAsset && this.dragonAtlasAsset.texture; +if (t) { +var e = this.sharedMaterials[0]; +(e = e ? r.getInstantiatedMaterial(e, this) : r.getInstantiatedBuiltinMaterial("2d-sprite", this)).define("_USE_MODEL", !0); +e.setProperty("texture", t); +this.setMaterial(0, e); +this.markForRender(!0); +} else this.disableRender(); +}, +_buildArmature: function() { +if (this.dragonAsset && this.dragonAtlasAsset && this.armatureName) { +if (this._armature) { +this._preCacheMode === h.PRIVATE_CACHE ? this._armatureCache.dispose() : this._preCacheMode === h.REALTIME && this._armature.dispose(); +this._armatureCache = null; +this._armature = null; +this._displayProxy = null; +this._frameCache = null; +this._curFrame = null; +this._playing = !1; +this._preCacheMode = null; +} +this._cacheMode === h.SHARED_CACHE ? this._armatureCache = a.sharedCache : this._cacheMode === h.PRIVATE_CACHE && (this._armatureCache = new a()); +var t = this.dragonAtlasAsset._uuid; +this._armatureKey = this.dragonAsset.init(this._factory, t); +if (this.isAnimationCached()) { +this._armature = this._armatureCache.getArmatureCache(this.armatureName, this._armatureKey, t); +this._armature || (this._cacheMode = h.REALTIME); +} +this._preCacheMode = this._cacheMode; +if (this._cacheMode === h.REALTIME) { +this._displayProxy = this._factory.buildArmatureDisplay(this.armatureName, this._armatureKey, "", t); +if (!this._displayProxy) return; +this._displayProxy._ccNode = this.node; +this._displayProxy.setEventTarget(this._eventTarget); +this._armature = this._displayProxy._armature; +this._armature.animation.timeScale = this.timeScale; +} +this._cacheMode !== h.REALTIME && this.debugBones && cc.warn("Debug bones is invalid in cached mode"); +this._updateBatch(); +this.animationName && this.playAnimation(this.animationName, this.playTimes); +} +}, +_parseDragonAtlasAsset: function() { +this.dragonAtlasAsset && this.dragonAtlasAsset.init(this._factory); +}, +_refresh: function() { +this._buildArmature(); +0; +}, +_updateCacheModeEnum: !1, +_updateAnimEnum: !1, +_updateArmatureEnum: !1, +playAnimation: function(t, e) { +this.playTimes = void 0 === e ? -1 : e; +this.animationName = t; +if (this.isAnimationCached()) { +var i = this._armatureCache.getAnimationCache(this._armatureKey, t); +i || (i = this._armatureCache.initAnimationCache(this._armatureKey, t)).begin(); +if (i) { +this._accTime = 0; +this._playCount = 0; +this._frameCache = i; +this._playing = !0; +this._curFrame = this._frameCache.frames[0]; +} +} else if (this._armature) return this._armature.animation.play(t, this.playTimes); +}, +updateAnimationCache: function(t) { +if (this.isAnimationCached()) { +var e = this._armatureCache.updateAnimationCache(this._armatureKey, t); +this._frameCache = e || this._frameCache; +} +}, +getArmatureNames: function() { +var t = this._factory.getDragonBonesData(this._armatureKey); +return t && t.armatureNames || []; +}, +getAnimationNames: function(t) { +var e = [], i = this._factory.getDragonBonesData(this._armatureKey); +if (i) { +var n = i.getArmature(t); +if (n) for (var r in n.animations) n.animations.hasOwnProperty(r) && e.push(r); +} +return e; +}, +on: function(t, e, i) { +this.addEventListener(t, e, i); +}, +off: function(t, e, i) { +this.removeEventListener(t, e, i); +}, +once: function(t, e, i) { +this._eventTarget.once(t, e, i); +}, +addEventListener: function(t, e, i) { +this._eventTarget.on(t, e, i); +}, +removeEventListener: function(t, e, i) { +this._eventTarget.off(t, e, i); +}, +buildArmature: function(t, e) { +return this._factory.createArmatureNode(this, t, e); +}, +armature: function() { +return this._armature; +} +}); +e.exports = dragonBones.ArmatureDisplay = u; +}), { +"../../cocos2d/core/CCNode": 52, +"../../cocos2d/core/assets/material/CCMaterial": 75, +"../../cocos2d/core/components/CCRenderComponent": 106, +"../../cocos2d/core/event/event-target": 133, +"../../cocos2d/core/graphics/graphics": 142, +"./ArmatureCache": void 0 +} ], +391: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "dragonBones.DragonBonesAsset", +extends: cc.Asset, +ctor: function() { +this.reset(); +}, +properties: { +_dragonBonesJson: "", +dragonBonesJson: { +get: function() { +return this._dragonBonesJson; +}, +set: function(t) { +this._dragonBonesJson = t; +this.reset(); +} +}, +_nativeAsset: { +get: function() { +return this._buffer; +}, +set: function(t) { +this._buffer = t.buffer || t; +this.reset(); +}, +override: !0 +} +}, +statics: { +preventDeferredLoadDependents: !0 +}, +createNode: !1, +reset: function() { +this._clear(); +0; +}, +init: function(t, e) { +this._factory = t; +var i = null; +i = this.dragonBonesJson ? JSON.parse(this.dragonBonesJson) : this._nativeAsset; +if (!this._uuid) { +var n = this._factory.getDragonBonesDataByRawData(i); +n ? this._uuid = n.name : cc.warn("dragonbones name is empty"); +} +var r = this._uuid + "#" + e; +if (this._factory.getDragonBonesData(r)) return r; +this._factory.parseDragonBonesData(i, r); +return r; +}, +getArmatureEnum: !1, +getAnimsEnum: !1, +_clear: function() {}, +destroy: function() { +this._clear(); +this._super(); +} +}); +dragonBones.DragonBonesAsset = e.exports = n; +}), { +"./ArmatureCache": void 0 +} ], +392: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "dragonBones.DragonBonesAtlasAsset", +extends: cc.Asset, +ctor: function() { +this._clear(); +}, +properties: { +_atlasJson: "", +atlasJson: { +get: function() { +return this._atlasJson; +}, +set: function(t) { +this._atlasJson = t; +this._clear(); +} +}, +_texture: { +default: null, +type: cc.Texture2D, +formerlySerializedAs: "texture" +}, +texture: { +get: function() { +return this._texture; +}, +set: function(t) { +this._texture = t; +this._clear(); +} +}, +_textureAtlasData: null +}, +statics: { +preventDeferredLoadDependents: !0 +}, +createNode: !1, +init: function(t) { +this._factory = t; +var e = JSON.parse(this.atlasJson); +this._uuid = this._uuid || e.name; +this._textureAtlasData ? t.addTextureAtlasData(this._textureAtlasData, this._uuid) : this._textureAtlasData = t.parseTextureAtlasData(e, this.texture, this._uuid); +}, +_clear: function() {}, +destroy: function() { +this._clear(); +this._super(); +} +}); +dragonBones.DragonBonesAtlasAsset = e.exports = n; +}), { +"./ArmatureCache": void 0 +} ], +393: [ (function(i, n, r) { +"use strict"; +var s = "undefined" === ("object" === (e = typeof window) ? t(window) : e) ? global : window; +0; +if (void 0 !== s.dragonBones) { +dragonBones._timeScale = 1; +Object.defineProperty(dragonBones, "timeScale", { +get: function() { +return this._timeScale; +}, +set: function(t) { +this._timeScale = t; +this.CCFactory.getInstance()._dragonBones.clock.timeScale = t; +}, +configurable: !0 +}); +dragonBones.DisplayType = { +Image: 0, +Armature: 1, +Mesh: 2 +}; +dragonBones.ArmatureType = { +Armature: 0, +MovieClip: 1, +Stage: 2 +}; +dragonBones.ExtensionType = { +FFD: 0, +AdjustColor: 10, +BevelFilter: 11, +BlurFilter: 12, +DropShadowFilter: 13, +GlowFilter: 14, +GradientBevelFilter: 15, +GradientGlowFilter: 16 +}; +dragonBones.EventType = { +Frame: 0, +Sound: 1 +}; +dragonBones.ActionType = { +Play: 0, +Stop: 1, +GotoAndPlay: 2, +GotoAndStop: 3, +FadeIn: 4, +FadeOut: 5 +}; +dragonBones.AnimationFadeOutMode = { +None: 0, +SameLayer: 1, +SameGroup: 2, +SameLayerAndGroup: 3, +All: 4 +}; +dragonBones.BinaryOffset = { +WeigthBoneCount: 0, +WeigthFloatOffset: 1, +WeigthBoneIndices: 2, +MeshVertexCount: 0, +MeshTriangleCount: 1, +MeshFloatOffset: 2, +MeshWeightOffset: 3, +MeshVertexIndices: 4, +TimelineScale: 0, +TimelineOffset: 1, +TimelineKeyFrameCount: 2, +TimelineFrameValueCount: 3, +TimelineFrameValueOffset: 4, +TimelineFrameOffset: 5, +FramePosition: 0, +FrameTweenType: 1, +FrameTweenEasingOrCurveSampleCount: 2, +FrameCurveSamples: 3, +DeformMeshOffset: 0, +DeformCount: 1, +DeformValueCount: 2, +DeformValueOffset: 3, +DeformFloatOffset: 4 +}; +dragonBones.BoneType = { +Bone: 0, +Surface: 1 +}; +0; +i("./DragonBonesAsset"); +i("./DragonBonesAtlasAsset"); +i("./ArmatureDisplay"); +i("./webgl-assembler"); +} +}), { +"./ArmatureCache": void 0, +"./ArmatureDisplay": 390, +"./CCArmatureDisplay": void 0, +"./CCFactory": void 0, +"./CCSlot": void 0, +"./CCTextureData": void 0, +"./DragonBonesAsset": 391, +"./DragonBonesAtlasAsset": 392, +"./lib/dragonBones": void 0, +"./webgl-assembler": 394 +} ], +394: [ (function(t, e, i) { +"use strict"; +var n = t("./ArmatureDisplay"), r = t("../../cocos2d/core/renderer/render-flow"), s = (t("../../cocos2d/core/assets/material/CCMaterial"), +cc.gfx), o = cc.vmath.mat4, a = cc.color(255, 0, 0, 255), c = cc.color(0, 0, 255, 255), l = void 0, h = void 0, u = void 0, _ = void 0, f = void 0, d = void 0, m = void 0, p = void 0, v = void 0, y = void 0, g = void 0, x = void 0, C = void 0, b = void 0, A = void 0, S = void 0, w = void 0, T = void 0, E = void 0, M = void 0, B = void 0, D = void 0, I = void 0, P = void 0, R = void 0, L = void 0, F = void 0, O = void 0, V = void 0, N = void 0; +function k(t, e) { +if (!t) return null; +var i = void 0, n = void 0; +switch (e) { +case 1: +i = f ? cc.macro.ONE : cc.macro.SRC_ALPHA; +n = cc.macro.ONE; +break; + +case 10: +i = cc.macro.DST_COLOR; +n = cc.macro.ONE_MINUS_SRC_ALPHA; +break; + +case 12: +i = cc.macro.ONE; +n = cc.macro.ONE_MINUS_SRC_COLOR; +break; + +case 0: +default: +i = f ? cc.macro.ONE : cc.macro.SRC_ALPHA; +n = cc.macro.ONE_MINUS_SRC_ALPHA; +} +var r = !g.enableBatch, o = t.url + i + n + r, a = g.sharedMaterials[0]; +if (!a) return null; +var c = g._materialCache, l = c[o]; +if (l) { +if (l.texture !== t) { +l.setProperty("texture", t); +l.updateHash(o); +} +} else { +c[a._hash] ? (l = new cc.Material()).copy(a) : l = a; +l.define("_USE_MODEL", r); +l.setProperty("texture", t); +l.effect.getDefaultTechnique().passes[0].setBlend(!0, s.BLEND_FUNC_ADD, i, n, s.BLEND_FUNC_ADD, i, n); +c[o] = l; +l.updateHash(o); +} +return l; +} +function z(t, e) { +I = t.a * e * _; +d = f ? I / 255 : 1; +M = t.r * l * d; +B = t.g * h * d; +D = t.b * u * d; +E = (I << 24 >>> 0) + (D << 16) + (B << 8) + M; +} +var G = { +updateRenderData: function(t, e) {}, +realTimeTraverse: function(t, e, i) { +for (var n = t._slots, r = void 0, s = void 0, a = void 0, c = void 0, l = void 0, h = void 0, u = void 0, _ = void 0, f = void 0, d = void 0, g = 0, M = n.length; g < M; g++) { +u = (_ = n[g])._color; +if (_._visible && _._displayData) { +e ? _._mulMat(_._worldMatrix, e, _._matrix) : o.copy(_._worldMatrix, _._matrix); +if (_.childArmature) this.realTimeTraverse(_.childArmature, _._worldMatrix, i * u.a / 255); else if (c = k(_.getTexture(), _._blendMode)) { +if (m || c._hash !== y.material._hash) { +m = !1; +y._flush(); +y.node = v; +y.material = c; +} +z(u, i); +f = _._worldMatrix; +l = _._localVertices; +A = l.length >> 2; +h = _._indices; +S = h.length; +d = p.request(A, S); +C = d.indiceOffset; +x = d.byteOffset >> 2; +b = d.vertexOffset; +r = p._vData; +s = p._iData; +a = p._uintVData; +R = f.m00; +L = f.m04; +F = f.m12; +O = f.m01; +V = f.m05; +N = f.m13; +for (var B = 0, D = l.length; B < D; ) { +w = l[B++]; +T = l[B++]; +r[x++] = w * R + T * L + F; +r[x++] = w * O + T * V + N; +r[x++] = l[B++]; +r[x++] = l[B++]; +a[x++] = E; +} +for (var I = 0, P = h.length; I < P; I++) s[C++] = b + h[I]; +} +} +} +}, +cacheTraverse: function(t, e) { +if (t) { +var i = t.segments; +if (0 != i.length) { +var n = void 0, r = void 0, s = void 0, o = void 0, a = void 0, c = t.vertices, l = t.indices, h = t.uintVert, u = 0, _ = 0, f = 0; +if (e) { +R = e.m00; +L = e.m04; +F = e.m12; +O = e.m01; +V = e.m05; +N = e.m13; +} +var d = 0, g = t.colors, M = g[d++], B = M.vfOffset; +z(M, 1); +for (var D = 0, I = i.length; D < I; D++) { +var G = i[D]; +o = k(G.tex, G.blendMode); +if (m || o._hash !== y.material._hash) { +m = !1; +y._flush(); +y.node = v; +y.material = o; +} +A = G.vertexCount; +S = G.indexCount; +a = p.request(A, S); +C = a.indiceOffset; +b = a.vertexOffset; +x = a.byteOffset >> 2; +n = p._vData; +r = p._iData; +s = p._uintVData; +for (var U = C, j = C + S; U < j; U++) r[U] = b + l[_++]; +f = G.vfCount; +switch (P) { +case 1: +case 0: +n.set(c.subarray(u, u + f), x); +u += f; +break; + +case 16: +case 17: +for (var W = x, H = x + f; W < H; ) { +w = c[u++]; +T = c[u++]; +n[W++] = w * R + T * L + F; +n[W++] = w * O + T * V + N; +n[W++] = c[u++]; +n[W++] = c[u++]; +s[W++] = h[u++]; +} +} +if (1 & P) for (var q = u - f, X = x + 4, Y = x + 4 + f; X < Y; X += 5, q += 5) { +if (q >= B) { +z(M = g[d++], 1); +B = M.vfOffset; +} +s[X] = E; +} +} +} +} +}, +fillBuffers: function(t, e) { +t.node._renderFlag |= r.FLAG_UPDATE_RENDER_DATA; +m = !0; +f = t.premultipliedAlpha; +v = t.node; +p = e._meshBuffer; +y = e; +g = t; +P = 0; +var i = v._color; +l = i.r / 255; +h = i.g / 255; +u = i.b / 255; +_ = i.a / 255; +4294967295 !== i._val && (P |= 1); +var n = void 0; +if (g.enableBatch) { +n = v._worldMatrix; +m = !1; +P |= 16; +} +if (t.isAnimationCached()) this.cacheTraverse(t._curFrame, n); else { +var s = t._armature; +if (!s) return; +this.realTimeTraverse(s, n, 1); +var o = t._debugDraw; +if (t.debugBones && o) { +o.clear(); +o.lineWidth = 5; +o.strokeColor = a; +o.fillColor = c; +for (var d = s.getBones(), x = 0, C = d.length; x < C; x++) { +var b = d[x], A = Math.max(b.boneData.length, 5), S = b.globalTransformMatrix.tx, w = -b.globalTransformMatrix.ty, T = S + b.globalTransformMatrix.a * A, E = w - b.globalTransformMatrix.b * A; +o.moveTo(S, w); +o.lineTo(T, E); +o.stroke(); +} +} +} +v = void 0; +p = void 0; +y = void 0; +g = void 0; +} +}; +e.exports = n._assembler = G; +}), { +"../../cocos2d/core/assets/material/CCMaterial": 75, +"../../cocos2d/core/renderer/render-flow": 245, +"./ArmatureDisplay": 390 +} ], +395: [ (function(t, e, i) { +"use strict"; +var n = t("./track-entry-listeners"), r = t("../../cocos2d/core/components/CCRenderComponent"), s = t("./lib/spine"), o = t("../../cocos2d/core/assets/material/CCMaterial"), a = t("../../cocos2d/core/graphics/graphics"), c = t("./skeleton-cache"), l = cc.Enum({ +default: -1 +}), h = cc.Enum({ +"": 0 +}), u = cc.Enum({ +REALTIME: 0, +SHARED_CACHE: 1, +PRIVATE_CACHE: 2 +}); +sp.Skeleton = cc.Class({ +name: "sp.Skeleton", +extends: r, +editor: !1, +statics: { +AnimationCacheMode: u +}, +properties: { +paused: { +default: !1, +visible: !1 +}, +skeletonData: { +default: null, +type: sp.SkeletonData, +notify: function() { +this.defaultSkin = ""; +this.defaultAnimation = ""; +0; +this._updateSkeletonData(); +}, +tooltip: !1 +}, +defaultSkin: { +default: "", +visible: !1 +}, +defaultAnimation: { +default: "", +visible: !1 +}, +animation: { +get: function() { +if (this.isAnimationCached()) return this._animationName; +var t = this.getCurrent(0); +return t && t.animation.name || ""; +}, +set: function(t) { +this.defaultAnimation = t; +if (t) this.setAnimation(0, t, this.loop); else if (!this.isAnimationCached()) { +this.clearTrack(0); +this.setToSetupPose(); +} +}, +visible: !1 +}, +_defaultSkinIndex: { +get: function() { +if (this.skeletonData && this.defaultSkin) { +var t = this.skeletonData.getSkinsEnum(); +if (t) { +var e = t[this.defaultSkin]; +if (void 0 !== e) return e; +} +} +return 0; +}, +set: function(t) { +var e; +this.skeletonData && (e = this.skeletonData.getSkinsEnum()); +if (!e) return cc.errorID("", this.name); +var i = e[t]; +if (void 0 !== i) { +this.defaultSkin = i; +this.setSkin(this.defaultSkin); +0; +} else cc.errorID(7501, this.name); +}, +type: l, +visible: !0, +displayName: "Default Skin", +tooltip: !1 +}, +_animationIndex: { +get: function() { +var t = this.animation; +if (this.skeletonData && t) { +var e = this.skeletonData.getAnimsEnum(); +if (e) { +var i = e[t]; +if (void 0 !== i) return i; +} +} +return 0; +}, +set: function(t) { +if (0 !== t) { +var e; +this.skeletonData && (e = this.skeletonData.getAnimsEnum()); +if (!e) return cc.errorID(7502, this.name); +var i = e[t]; +void 0 !== i ? this.animation = i : cc.errorID(7503, this.name); +} else this.animation = ""; +}, +type: h, +visible: !0, +displayName: "Animation", +tooltip: !1 +}, +_preCacheMode: -1, +_cacheMode: u.REALTIME, +_defaultCacheMode: { +default: 0, +type: u, +notify: function() { +this.setAnimationCacheMode(this._defaultCacheMode); +}, +editorOnly: !0, +visible: !0, +animatable: !1, +displayName: "Animation Cache Mode", +tooltip: !1 +}, +loop: { +default: !0, +tooltip: !1 +}, +premultipliedAlpha: { +default: !0, +tooltip: !1 +}, +timeScale: { +default: 1, +tooltip: !1 +}, +debugSlots: { +default: !1, +editorOnly: !0, +tooltip: !1, +notify: function() { +this._updateDebugDraw(); +} +}, +debugBones: { +default: !1, +editorOnly: !0, +tooltip: !1, +notify: function() { +this._updateDebugDraw(); +} +}, +useTint: { +default: !1, +tooltip: !1, +notify: function() { +this._updateUseTint(); +} +}, +enableBatch: { +default: !1, +notify: function() { +this._updateBatch(); +}, +tooltip: !1 +}, +_accTime: 0, +_playCount: 0, +_frameCache: null, +_curFrame: null, +_skeletonCache: null, +_animationName: "", +_animationQueue: [], +_headAniInfo: null, +_playTimes: 0, +_isAniComplete: !0 +}, +ctor: function() { +this._skeleton = null; +this._rootBone = null; +this._listener = null; +this._boundingBox = cc.rect(); +this._materialCache = {}; +this._debugRenderer = null; +this._startSlotIndex = -1; +this._endSlotIndex = -1; +this._startEntry = { +animation: { +name: "" +}, +trackIndex: 0 +}; +this._endEntry = { +animation: { +name: "" +}, +trackIndex: 0 +}; +}, +setMaterial: function(t, e) { +this._super(t, e); +this._materialCache = {}; +}, +_updateUseTint: function() { +var t = this._materialCache; +for (var e in t) { +var i = t[e]; +i && i.define("USE_TINT", this.useTint); +} +}, +_updateBatch: function() { +var t = this._materialCache; +for (var e in t) { +var i = t[e]; +i && i.define("_USE_MODEL", !this.enableBatch); +} +}, +setSkeletonData: function(t) { +null != t.width && null != t.height && this.node.setContentSize(t.width, t.height); +this._cacheMode === u.SHARED_CACHE ? this._skeletonCache = c.sharedCache : this._cacheMode === u.PRIVATE_CACHE && (this._skeletonCache = new c()); +if (this.isAnimationCached()) { +(this.debugBones || this.debugSlots) && cc.warn("Debug bones or slots is invalid in cached mode"); +var e = this._skeletonCache.getSkeletonCache(this.skeletonData._uuid, t); +this._skeleton = e.skeleton; +this._clipper = e.clipper; +this._rootBone = this._skeleton.getRootBone(); +} else { +this._skeleton = new s.Skeleton(t); +this._clipper = new s.SkeletonClipping(); +this._rootBone = this._skeleton.getRootBone(); +} +}, +setSlotsRange: function(t, e) { +if (this.isAnimationCached()) console.warn("Slots visible range can not be modified in cached mode."); else { +this._startSlotIndex = t; +this._endSlotIndex = e; +} +}, +setAnimationStateData: function(t) { +if (this.isAnimationCached()) console.warn("'setAnimationStateData' interface can not be invoked in cached mode."); else { +var e = new s.AnimationState(t); +if (this._listener) { +this._state && this._state.removeListener(this._listener); +e.addListener(this._listener); +} +this._state = e; +} +}, +__preload: function() { +for (var t = this.node.children, e = 0, i = t.length; e < i; e++) { +var n = t[e]; +n && "DEBUG_DRAW_NODE" === n._name && n.destroy(); +} +this._cacheMode = u.REALTIME; +this._activateMaterial(); +this._updateSkeletonData(); +this._updateDebugDraw(); +this._updateUseTint(); +this._updateBatch(); +}, +setAnimationCacheMode: function(t) {}, +isAnimationCached: function() { +0; +return this._cacheMode !== u.REALTIME; +}, +update: function(t) { +0; +if (!this.paused) { +t *= this.timeScale * sp.timeScale; +if (this.isAnimationCached()) { +if (this._isAniComplete) { +if (0 === this._animationQueue.length && !this._headAniInfo) return; +this._headAniInfo || (this._headAniInfo = this._animationQueue.shift()); +this._accTime += t; +if (this._accTime > this._headAniInfo.delay) { +var e = this._headAniInfo; +this._headAniInfo = null; +this.setAnimation(0, e.animationName, e.loop); +} +return; +} +this._updateCache(t); +} else this._updateRealtime(t); +} +}, +_updateCache: function(t) { +var e = this._frameCache, i = e.frames, n = c.FrameTime; +if (0 == this._accTime && 0 == this._playCount) { +this._startEntry.animation.name = this._animationName; +this._listener && this._listener.start && this._listener.start(this._startEntry); +} +this._accTime += t; +var r = Math.floor(this._accTime / n); +e.isCompleted || e.updateToFrame(r); +if (e.isCompleted && r >= i.length) { +this._endEntry.animation.name = this._animationName; +this._listener && this._listener.complete && this._listener.complete(this._endEntry); +this._listener && this._listener.end && this._listener.end(this._endEntry); +this._playCount++; +if (this._playTimes > 0 && this._playCount >= this._playTimes) { +this._curFrame = i[i.length - 1]; +this._accTime = 0; +this._playCount = 0; +this._isAniComplete = !0; +return; +} +this._accTime = 0; +r = 0; +} +this._curFrame = i[r]; +}, +_updateRealtime: function(t) { +var e = this._skeleton, i = this._state; +if (e) { +e.update(t); +if (i) { +i.update(t); +i.apply(e); +} +} +}, +_activateMaterial: function() { +var t = this.sharedMaterials[0]; +(t = t ? o.getInstantiatedMaterial(t, this) : o.getInstantiatedBuiltinMaterial("2d-spine", this)).define("_USE_MODEL", !0); +this.setMaterial(0, t); +this.markForRender(!0); +}, +onEnable: function() { +this._super(); +this._activateMaterial(); +}, +onRestore: function() { +this._boundingBox = cc.rect(); +}, +updateWorldTransform: function() { +this.isAnimationCached() && this._skeleton && this._skeleton.updateWorldTransform(); +}, +setToSetupPose: function() { +this.isAnimationCached() ? cc.warn("'SetToSetupPose' interface can not be invoked in cached mode.") : this._skeleton && this._skeleton.setToSetupPose(); +}, +setBonesToSetupPose: function() { +this.isAnimationCached() ? cc.warn("'setBonesToSetupPose' interface can not be invoked in cached mode.") : this._skeleton && this._skeleton.setBonesToSetupPose(); +}, +setSlotsToSetupPose: function() { +this.isAnimationCached() ? cc.warn("'setSlotsToSetupPose' interface can not be invoked in cached mode.") : this._skeleton && this._skeleton.setSlotsToSetupPose(); +}, +updateAnimationCache: function(t) { +if (this.isAnimationCached()) { +var e = this._skeletonCache.updateAnimationCache(this.skeletonData._uuid, t); +this._frameCache = e || this._frameCache; +} +}, +findBone: function(t) { +return this._skeleton ? this._skeleton.findBone(t) : null; +}, +findSlot: function(t) { +return this._skeleton ? this._skeleton.findSlot(t) : null; +}, +setSkin: function(t) { +if (this.isAnimationCached()) this._skeletonCache.updateSkeletonSkin(this.skeletonData._uuid, t); else if (this._skeleton) { +this._skeleton.setSkinByName(t); +this._skeleton.setSlotsToSetupPose(); +} +}, +getAttachment: function(t, e) { +return this._skeleton ? this._skeleton.getAttachmentByName(t, e) : null; +}, +setAttachment: function(t, e) { +this._skeleton && this._skeleton.setAttachment(t, e); +}, +getTextureAtlas: function(t) { +return t.region; +}, +setMix: function(t, e, i) { +this._state && this._state.data.setMix(t, e, i); +}, +setAnimation: function(t, e, i) { +this._playTimes = i ? 0 : 1; +this._animationName = e; +if (this.isAnimationCached()) { +0 !== t && cc.warn("Track index can not greater than 0 in cached mode."); +var n = this._skeletonCache.getAnimationCache(this.skeletonData._uuid, e); +n || (n = this._skeletonCache.initAnimationCache(this.skeletonData._uuid, e)).begin(); +if (n) { +this._isAniComplete = !1; +this._accTime = 0; +this._playCount = 0; +this._frameCache = n; +this._curFrame = this._frameCache.frames[0]; +} +} else if (this._skeleton) { +var r = this._skeleton.data.findAnimation(e); +if (!r) { +cc.logID(7509, e); +return null; +} +var s = this._state.setAnimationWith(t, r, i); +this._state.apply(this._skeleton); +return s; +} +return null; +}, +addAnimation: function(t, e, i, n) { +n = n || 0; +if (this.isAnimationCached()) { +0 !== t && cc.warn("Track index can not greater than 0 in cached mode."); +this._animationQueue.push({ +animationName: e, +loop: i, +delay: n +}); +} else if (this._skeleton) { +var r = this._skeleton.data.findAnimation(e); +if (!r) { +cc.logID(7510, e); +return null; +} +return this._state.addAnimationWith(t, r, i, n); +} +return null; +}, +findAnimation: function(t) { +return this._skeleton ? this._skeleton.data.findAnimation(t) : null; +}, +getCurrent: function(t) { +if (this.isAnimationCached()) console.warn("'getCurrent' interface can not be invoked in cached mode."); else if (this._state) return this._state.getCurrent(t); +return null; +}, +clearTracks: function() { +this.isAnimationCached() ? console.warn("'clearTracks' interface can not be invoked in cached mode.") : this._state && this._state.clearTracks(); +}, +clearTrack: function(t) { +if (this.isAnimationCached()) console.warn("'clearTrack' interface can not be invoked in cached mode."); else if (this._state) { +this._state.clearTrack(t); +0; +} +}, +setStartListener: function(t) { +this._ensureListener(); +this._listener.start = t; +}, +setInterruptListener: function(t) { +this._ensureListener(); +this._listener.interrupt = t; +}, +setEndListener: function(t) { +this._ensureListener(); +this._listener.end = t; +}, +setDisposeListener: function(t) { +this._ensureListener(); +this._listener.dispose = t; +}, +setCompleteListener: function(t) { +this._ensureListener(); +this._listener.complete = t; +}, +setEventListener: function(t) { +this._ensureListener(); +this._listener.event = t; +}, +setTrackStartListener: function(t, e) { +n.getListeners(t).start = e; +}, +setTrackInterruptListener: function(t, e) { +n.getListeners(t).interrupt = e; +}, +setTrackEndListener: function(t, e) { +n.getListeners(t).end = e; +}, +setTrackDisposeListener: function(t, e) { +n.getListeners(t).dispose = e; +}, +setTrackCompleteListener: function(t, e) { +n.getListeners(t).complete = function(t) { +var i = Math.floor(t.trackTime / t.animationEnd); +e(t, i); +}; +}, +setTrackEventListener: function(t, e) { +n.getListeners(t).event = e; +}, +getState: function() { +return this._state; +}, +_updateAnimEnum: !1, +_updateSkinEnum: !1, +_ensureListener: function() { +if (!this._listener) { +this._listener = new n(); +this._state && this._state.addListener(this._listener); +} +}, +_updateSkeletonData: function() { +if (this.skeletonData) { +var t = this.skeletonData.getRuntimeData(); +if (t) { +try { +this.setSkeletonData(t); +this.isAnimationCached() || this.setAnimationStateData(new s.AnimationStateData(this._skeleton.data)); +this.defaultSkin && this.setSkin(this.defaultSkin); +} catch (t) { +cc.warn(t); +} +this._preCacheMode = this._cacheMode; +this.animation = this.defaultAnimation; +} +} +}, +_refreshInspector: function() { +this._updateAnimEnum(); +this._updateSkinEnum(); +Editor.Utils.refreshSelectedInspector("node", this.node.uuid); +}, +_updateDebugDraw: function() { +if (this.debugBones || this.debugSlots) { +if (!this._debugRenderer) { +var t = new cc.PrivateNode(); +t.name = "DEBUG_DRAW_NODE"; +var e = t.addComponent(a); +e.lineWidth = 1; +e.strokeColor = cc.color(255, 0, 0, 255); +this._debugRenderer = e; +} +this._debugRenderer.node.parent = this.node; +this.isAnimationCached() && cc.warn("Debug bones or slots is invalid in cached mode"); +} else this._debugRenderer && (this._debugRenderer.node.parent = null); +} +}); +e.exports = sp.Skeleton; +}), { +"../../cocos2d/core/assets/material/CCMaterial": 75, +"../../cocos2d/core/components/CCRenderComponent": 106, +"../../cocos2d/core/graphics/graphics": 142, +"./lib/spine": void 0, +"./skeleton-cache": void 0, +"./track-entry-listeners": 400 +} ], +396: [ (function(i, n, r) { +"use strict"; +var s = "undefined" === ("object" === (e = typeof window) ? t(window) : e) ? global : window, o = !0; +void 0 === s.spine && (o = !1); +if (o) { +s.sp = {}; +sp._timeScale = 1; +Object.defineProperty(sp, "timeScale", { +get: function() { +return this._timeScale; +}, +set: function(t) { +this._timeScale = t; +}, +configurable: !0 +}); +sp.ATTACHMENT_TYPE = { +REGION: 0, +BOUNDING_BOX: 1, +MESH: 2, +SKINNED_MESH: 3 +}; +sp.AnimationEventType = cc.Enum({ +START: 0, +INTERRUPT: 1, +END: 2, +DISPOSE: 3, +COMPLETE: 4, +EVENT: 5 +}); +sp.spine = s.spine; +i("./skeleton-texture"); +i("./skeleton-data"); +i("./Skeleton"); +i("./spine-assembler"); +} +}), { +"./Skeleton": 395, +"./lib/spine": void 0, +"./skeleton-data": 397, +"./skeleton-texture": 398, +"./spine-assembler": 399 +} ], +397: [ (function(t, e, i) { +"use strict"; +var n = cc.Class({ +name: "sp.SkeletonData", +extends: cc.Asset, +ctor: function() { +this.reset(); +}, +properties: { +skeletonJsonStr: "", +_skeletonJson: null, +skeletonJson: { +get: function() { +return this._skeletonJson; +}, +set: function(t) { +this._skeletonJson = t; +this.skeletonJsonStr = JSON.stringify(t); +!this._uuid && t.skeleton && (this._uuid = t.skeleton.hash); +this.reset(); +} +}, +_atlasText: "", +atlasText: { +get: function() { +return this._atlasText; +}, +set: function(t) { +this._atlasText = t; +this.reset(); +} +}, +textures: { +default: [], +type: [ cc.Texture2D ] +}, +textureNames: { +default: [], +type: [ cc.String ] +}, +scale: 1 +}, +statics: { +preventDeferredLoadDependents: !0, +preventPreloadNativeObject: !0 +}, +createNode: !1, +reset: function() { +this._skeletonCache = null; +this._atlasCache = null; +0; +}, +getRuntimeData: function(t) { +if (this._skeletonCache) return this._skeletonCache; +if (!(this.textures && this.textures.length > 0) && this.textureNames && this.textureNames.length > 0) { +t || cc.errorID(7507, this.name); +return null; +} +var e = this._getAtlas(t); +if (!e) return null; +var i = new sp.spine.AtlasAttachmentLoader(e), n = new sp.spine.SkeletonJson(i); +n.scale = this.scale; +var r = this.skeletonJson; +this._skeletonCache = n.readSkeletonData(r); +e.dispose(n); +return this._skeletonCache; +}, +getSkinsEnum: !1, +getAnimsEnum: !1, +_getTexture: function(t) { +for (var e = this.textureNames, i = 0; i < e.length; i++) if (e[i] === t) { +var n = this.textures[i], r = new sp.SkeletonTexture({ +width: n.width, +height: n.height +}); +r.setRealTexture(n); +return r; +} +cc.errorID(7506, t); +return null; +}, +_getAtlas: function(t) { +if (this._atlasCache) return this._atlasCache; +if (!this.atlasText) { +t || cc.errorID(7508, this.name); +return null; +} +return this._atlasCache = new sp.spine.TextureAtlas(this.atlasText, this._getTexture.bind(this)); +}, +destroy: function() { +0; +this._super(); +} +}); +sp.SkeletonData = e.exports = n; +}), { +"./skeleton-cache": void 0 +} ], +398: [ (function(t, e, i) { +"use strict"; +sp.SkeletonTexture = cc.Class({ +name: "sp.SkeletonTexture", +extends: sp.spine.Texture, +_texture: null, +_material: null, +setRealTexture: function(t) { +this._texture = t; +}, +getRealTexture: function() { +return this._texture; +}, +setFilters: function(t, e) { +this._texture && this._texture.setFilters(t, e); +}, +setWraps: function(t, e) { +this._texture && this._texture.setWrapMode(t, e); +}, +dispose: function() {} +}); +}), {} ], +399: [ (function(t, e, i) { +"use strict"; +var n = t("./Skeleton"), r = t("./lib/spine"), s = t("../../cocos2d/core/renderer/render-flow"), o = t("../../cocos2d/core/renderer/webgl/vertex-format"), a = o.vfmtPosUvColor, c = o.vfmtPosUvTwoColor, l = cc.gfx, h = 0, u = [ 0, 1, 2, 2, 3, 0 ], _ = cc.color(0, 0, 255, 255), f = cc.color(255, 0, 0, 255), d = cc.color(0, 255, 0, 255), m = void 0, p = void 0; +0; +var v = void 0, y = void 0, g = void 0, x = void 0, C = void 0, b = void 0, A = void 0, S = void 0, w = void 0, T = void 0, E = void 0, M = void 0, B = void 0, D = void 0, I = void 0, P = void 0, R = 0, L = 0, F = 0, O = 0, V = 0, N = 0, k = 0, z = void 0, G = void 0, U = void 0, j = void 0, W = void 0, H = void 0, q = void 0, X = void 0, Y = void 0, J = void 0, Z = void 0, K = void 0, Q = void 0, $ = void 0, tt = void 0, et = void 0, it = void 0, nt = void 0, rt = void 0, st = void 0, ot = void 0, at = void 0, ct = void 0, lt = void 0, ht = void 0, ut = void 0, _t = void 0, ft = void 0; +function dt(t, e) { +var i = void 0, n = void 0; +switch (e) { +case r.BlendMode.Additive: +i = v ? cc.macro.ONE : cc.macro.SRC_ALPHA; +n = cc.macro.ONE; +break; + +case r.BlendMode.Multiply: +i = cc.macro.DST_COLOR; +n = cc.macro.ONE_MINUS_SRC_ALPHA; +break; + +case r.BlendMode.Screen: +i = cc.macro.ONE; +n = cc.macro.ONE_MINUS_SRC_COLOR; +break; + +case r.BlendMode.Normal: +default: +i = v ? cc.macro.ONE : cc.macro.SRC_ALPHA; +n = cc.macro.ONE_MINUS_SRC_ALPHA; +} +var s = !lt.enableBatch, o = t.url + i + n + C + s, a = lt.sharedMaterials[0]; +if (!a) return null; +var c = lt._materialCache, h = c[o]; +if (h) { +if (h.getProperty("texture") !== t) { +h.setProperty("texture", t); +h.updateHash(o); +} +} else { +c[a._hash] ? (h = new cc.Material()).copy(a) : h = a; +h.define("_USE_MODEL", s); +h.define("USE_TINT", C); +h.setProperty("texture", t); +h.effect.getDefaultTechnique().passes[0].setBlend(!0, l.BLEND_FUNC_ADD, i, n, l.BLEND_FUNC_ADD, i, n); +h.updateHash(o); +c[o] = h; +} +return h; +} +function mt(t) { +st = t.fa * E; +$ = S * (y = v ? st / 255 : 1); +tt = w * y; +et = T * y; +it = t.fr * $; +nt = t.fg * tt; +rt = t.fb * et; +M = (st << 24 >>> 0) + (rt << 16) + (nt << 8) + it; +ot = t.dr * $; +at = t.dg * tt; +ct = t.db * et; +B = ((v ? 255 : 0) << 24 >>> 0) + (ct << 16) + (at << 8) + ot; +} +var pt = { +updateRenderData: function(t) { +var e = t._skeleton; +e && e.updateWorldTransform(); +}, +fillVertices: function(t, e, i, n, r) { +var s = ht._vData, o = ht._iData, a = ht._uintVData, c = void 0; +m.a = i.a * e.a * t.a * E * 255; +y = v ? m.a : 255; +z = S * e.r * t.r * y; +G = w * e.g * t.g * y; +U = T * e.b * t.b * y; +m.r = z * i.r; +m.g = G * i.g; +m.b = U * i.b; +if (null == r.darkColor) p.set(0, 0, 0, 1); else { +p.r = r.darkColor.r * z; +p.g = r.darkColor.g * G; +p.b = r.darkColor.b * U; +} +p.a = v ? 255 : 0; +if (n.isClipping()) { +var l = s.subarray(F + 2); +n.clipTriangles(s.subarray(F), R, o.subarray(N), V, l, m, p, C, I); +var h = new Float32Array(n.clippedVertices), u = n.clippedTriangles; +V = u.length; +R = h.length / P * I; +c = ht.request(R / I, V); +N = c.indiceOffset, O = c.vertexOffset, F = c.byteOffset >> 2; +s = ht._vData, o = ht._iData; +a = ht._uintVData; +o.set(u, N); +if (C) for (var _ = 0, f = h.length, d = F; _ < f; _ += 12, d += I) { +s[d] = h[_]; +s[d + 1] = h[_ + 1]; +s[d + 2] = h[_ + 6]; +s[d + 3] = h[_ + 7]; +M = (h[_ + 5] << 24 >>> 0) + (h[_ + 4] << 16) + (h[_ + 3] << 8) + h[_ + 2]; +a[d + 4] = M; +B = (h[_ + 11] << 24 >>> 0) + (h[_ + 10] << 16) + (h[_ + 9] << 8) + h[_ + 8]; +a[d + 5] = B; +} else for (var g = 0, x = h.length, b = F; g < x; g += 8, b += I) { +s[b] = h[g]; +s[b + 1] = h[g + 1]; +s[b + 2] = h[g + 6]; +s[b + 3] = h[g + 7]; +M = (h[g + 5] << 24 >>> 0) + (h[g + 4] << 16) + (h[g + 3] << 8) + h[g + 2]; +a[b + 4] = M; +} +} else { +M = (m.a << 24 >>> 0) + (m.b << 16) + (m.g << 8) + m.r; +B = (p.a << 24 >>> 0) + (p.b << 16) + (p.g << 8) + p.r; +if (C) for (var A = F, D = F + R; A < D; A += I) { +a[A + 4] = M; +a[A + 5] = B; +} else for (var L = F, k = F + R; L < k; L += I) a[L + 4] = M; +} +}, +realTimeTraverse: function(t) { +var e = void 0, i = void 0, n = lt._skeleton, s = n.color, o = lt._debugRenderer, a = lt._clipper, c = null, l = void 0, h = void 0, m = void 0, p = void 0, v = void 0, y = void 0, S = void 0, w = void 0, T = void 0; +g = lt._startSlotIndex; +x = lt._endSlotIndex; +j = !1; +-1 == g && (j = !0); +b = lt.debugSlots; +A = lt.debugBones; +if (o && (A || b)) { +o.clear(); +o.strokeColor = _; +o.lineWidth = 5; +} +P = C ? 12 : 8; +R = 0; +F = 0; +O = 0; +V = 0; +N = 0; +for (var E = 0, M = n.drawOrder.length; E < M; E++) { +T = n.drawOrder[E]; +g >= 0 && g == T.data.index && (j = !0); +if (j) { +x >= 0 && x == T.data.index && (j = !1); +R = 0; +V = 0; +if (l = T.getAttachment()) { +y = l instanceof r.RegionAttachment; +S = l instanceof r.MeshAttachment; +if (l instanceof r.ClippingAttachment) a.clipStart(T, l); else if (y || S) if (c = dt(l.region.texture._texture, T.data.blendMode)) { +if (W || c._hash !== ut.material._hash) { +W = !1; +ut._flush(); +ut.node = _t; +ut.material = c; +} +if (y) { +v = u; +R = 4 * I; +V = 6; +w = ht.request(4, 6); +N = w.indiceOffset, O = w.vertexOffset, F = w.byteOffset >> 2; +e = ht._vData, i = ht._iData; +l.computeWorldVertices(T.bone, e, F, I); +if (o && b) { +o.moveTo(e[F], e[F + 1]); +for (var B = F + I, D = F + R; B < D; B += I) o.lineTo(e[B], e[B + 1]); +o.close(); +o.stroke(); +} +} else if (S) { +v = l.triangles; +R = (l.worldVerticesLength >> 1) * I; +V = v.length; +w = ht.request(R / I, V); +N = w.indiceOffset, O = w.vertexOffset, F = w.byteOffset >> 2; +e = ht._vData, i = ht._iData; +l.computeWorldVertices(T, 0, l.worldVerticesLength, e, F, I); +} +if (0 != R && 0 != V) { +i.set(v, N); +p = l.uvs; +for (var L = F, k = F + R, z = 0; L < k; L += I, z += 2) { +e[L + 2] = p[z]; +e[L + 3] = p[z + 1]; +} +h = l.color, m = T.color; +this.fillVertices(s, h, m, a, T); +if (V > 0) { +for (var G = N, U = N + V; G < U; G++) i[G] += O; +if (t) { +X = t.m00; +Y = t.m04; +J = t.m12; +Z = t.m01; +K = t.m05; +Q = t.m13; +for (var $ = F, tt = F + R; $ < tt; $ += I) { +H = e[$]; +q = e[$ + 1]; +e[$] = H * X + q * Y + J; +e[$ + 1] = H * Z + q * K + Q; +} +} +ht.adjust(R / I, V); +} +a.clipEndWithSlot(T); +} else a.clipEndWithSlot(T); +} else a.clipEndWithSlot(T); else a.clipEndWithSlot(T); +} else a.clipEndWithSlot(T); +} else a.clipEndWithSlot(T); +} +a.clipEnd(); +if (o && A) { +var et = void 0; +o.strokeColor = f; +o.fillColor = _; +for (var it = 0, nt = n.bones.length; it < nt; it++) { +var rt = (et = n.bones[it]).data.length * et.a + et.worldX, st = et.data.length * et.c + et.worldY; +o.moveTo(et.worldX, et.worldY); +o.lineTo(rt, st); +o.stroke(); +o.circle(et.worldX, et.worldY, 2 * Math.PI); +o.fill(); +0 === it && (o.fillColor = d); +} +} +}, +cacheTraverse: function(t) { +var e = lt._curFrame; +if (e) { +var i = e.segments; +if (0 != i.length) { +var n = void 0, r = void 0, s = void 0, o = void 0, a = void 0, c = e.vertices, l = e.indices, u = e.uintVert, _ = 0, f = 0, d = 0; +if (t) { +X = t.m00; +Y = t.m04; +J = t.m12; +Z = t.m01; +K = t.m05; +Q = t.m13; +} +var m = 0, p = e.colors, v = p[m++], y = v.vfOffset; +mt(v); +for (var g = 0, x = i.length; g < x; g++) { +var b = i[g]; +if (o = dt(b.tex, b.blendMode)) { +if (W || o._hash !== ut.material._hash) { +W = !1; +ut._flush(); +ut.node = _t; +ut.material = o; +} +L = b.vertexCount; +V = b.indexCount; +R = L * I; +a = ht.request(L, V); +N = a.indiceOffset; +O = a.vertexOffset; +k = a.byteOffset >> 2; +n = ht._vData; +r = ht._iData; +s = ht._uintVData; +for (var A = N, S = N + V; A < S; A++) r[A] = O + l[f++]; +d = b.vfCount; +switch (h) { +case 0: +for (var w = k, T = k + R; w < T; ) { +n[w++] = c[_++]; +n[w++] = c[_++]; +n[w++] = c[_++]; +n[w++] = c[_++]; +s[w++] = u[_++]; +_++; +} +break; + +case 1: +n.set(c.subarray(_, _ + R), k); +_ += R; +break; + +case 16: +for (var E = k, D = k + R; E < D; ) { +H = c[_++]; +q = c[_++]; +n[E++] = H * X + q * Y + J; +n[E++] = H * Z + q * K + Q; +n[E++] = c[_++]; +n[E++] = c[_++]; +s[E++] = u[_++]; +_++; +} +break; + +case 17: +for (var P = k, F = k + R; P < F; ) { +H = c[_++]; +q = c[_++]; +n[P++] = H * X + q * Y + J; +n[P++] = H * Z + q * K + Q; +n[P++] = c[_++]; +n[P++] = c[_++]; +s[P++] = u[_++]; +s[P++] = u[_++]; +} +} +ht.adjust(L, V); +if (ft) for (var z = _ - d, G = k + 4, U = k + 4 + R; G < U; G += I, z += 6) { +if (z >= y) { +mt(v = p[m++]); +y = v.vfOffset; +} +s[G] = M; +C && (s[G + 1] = B); +} +} +} +} +} +}, +fillBuffers: function(t, e) { +var i = t.node; +i._renderFlag |= s.FLAG_UPDATE_RENDER_DATA; +if (t._skeleton) { +var n = i._color; +S = n.r / 255; +w = n.g / 255; +T = n.b / 255; +E = n.a / 255; +C = t.useTint; +D = C ? c : a; +I = C ? 6 : 5; +_t = t.node; +ht = e.getBuffer("spine", D); +ut = e; +lt = t; +W = !0; +v = t.premultipliedAlpha; +y = 1; +h = 0; +ft = !1; +(4294967295 !== n._val || v) && (ft = !0); +C && (h |= 1); +var r = void 0; +if (lt.enableBatch) { +r = _t._worldMatrix; +W = !1; +h |= 16; +} +t.isAnimationCached() ? this.cacheTraverse(r) : this.realTimeTraverse(r); +_t = void 0; +ht = void 0; +ut = void 0; +lt = void 0; +} +} +}; +n._assembler = pt; +e.exports = pt; +}), { +"../../cocos2d/core/renderer/render-flow": 245, +"../../cocos2d/core/renderer/webgl/vertex-format": 284, +"./Skeleton": 395, +"./lib/spine": void 0 +} ], +400: [ (function(t, e, i) { +"use strict"; +var n = function() { +this.start = null; +this.end = null; +this.complete = null; +this.event = null; +this.interrupt = null; +this.dispose = null; +}; +n.getListeners = function(t) { +t.listener || (t.listener = new n()); +return t.listener; +}; +e.exports = n; +}), {} ], +401: [ (function(i, n, r) { +"use strict"; +(function(i, s) { +"object" === ("object" === (e = typeof r) ? t(r) : e) && "undefined" !== ("object" === (e = typeof n) ? t(n) : e) ? s(r) : "function" === ("object" === (e = typeof define) ? t(define) : e) && define.amd ? define([ "exports" ], s) : s(i.box2d = {}); +})(void 0, (function(t) { +function e(t, e) { +return void 0 !== t ? t : e; +} +var i = 1e37, n = 1e-5, r = n * n, s = 3.14159265359, o = 2, a = 8, c = .008, l = 2 / 180 * s, h = 2 * c, u = -1; +var _ = (function() { +function t(t, e, i) { +void 0 === t && (t = 0); +void 0 === e && (e = 0); +void 0 === i && (i = 0); +this.major = 0; +this.minor = 0; +this.revision = 0; +this.major = t; +this.minor = e; +this.revision = i; +} +t.prototype.toString = function() { +return this.major + "." + this.minor + "." + this.revision; +}; +return t; +})(), f = new _(2, 3, 2); +function d(t, e) { +for (var i = [], n = 0; n < t; ++n) i.push(e(n)); +return i; +} +function m(t, e) { +void 0 === e && (e = 0); +for (var i = [], n = 0; n < t; ++n) i.push(e); +return i; +} +var p = s / 180, v = 180 / s, y = Math.abs, g = Math.min, x = Math.max; +function C(t, e, i) { +return t < e ? e : t > i ? i : t; +} +var b = isFinite; +function A(t) { +return t * t; +} +function S(t) { +return 1 / Math.sqrt(t); +} +var w = Math.sqrt, T = Math.pow; +var E = Math.cos, M = Math.sin, B = Math.acos, D = Math.asin, I = Math.atan2; +var P = (function() { +function t(t, e) { +void 0 === t && (t = 0); +void 0 === e && (e = 0); +this.x = t; +this.y = e; +} +t.prototype.Clone = function() { +return new t(this.x, this.y); +}; +t.prototype.SetZero = function() { +this.x = 0; +this.y = 0; +return this; +}; +t.prototype.Set = function(t, e) { +this.x = t; +this.y = e; +return this; +}; +t.prototype.Copy = function(t) { +this.x = t.x; +this.y = t.y; +return this; +}; +t.prototype.SelfAdd = function(t) { +this.x += t.x; +this.y += t.y; +return this; +}; +t.prototype.SelfAddXY = function(t, e) { +this.x += t; +this.y += e; +return this; +}; +t.prototype.SelfSub = function(t) { +this.x -= t.x; +this.y -= t.y; +return this; +}; +t.prototype.SelfSubXY = function(t, e) { +this.x -= t; +this.y -= e; +return this; +}; +t.prototype.SelfMul = function(t) { +this.x *= t; +this.y *= t; +return this; +}; +t.prototype.SelfMulAdd = function(t, e) { +this.x += t * e.x; +this.y += t * e.y; +return this; +}; +t.prototype.SelfMulSub = function(t, e) { +this.x -= t * e.x; +this.y -= t * e.y; +return this; +}; +t.prototype.Dot = function(t) { +return this.x * t.x + this.y * t.y; +}; +t.prototype.Cross = function(t) { +return this.x * t.y - this.y * t.x; +}; +t.prototype.Length = function() { +var t = this.x, e = this.y; +return Math.sqrt(t * t + e * e); +}; +t.prototype.LengthSquared = function() { +var t = this.x, e = this.y; +return t * t + e * e; +}; +t.prototype.Normalize = function() { +var t = this.Length(); +if (t >= n) { +var e = 1 / t; +this.x *= e; +this.y *= e; +} +return t; +}; +t.prototype.SelfNormalize = function() { +var t = this.Length(); +if (t >= n) { +var e = 1 / t; +this.x *= e; +this.y *= e; +} +return this; +}; +t.prototype.SelfRotate = function(t) { +var e = Math.cos(t), i = Math.sin(t), n = this.x; +this.x = e * n - i * this.y; +this.y = i * n + e * this.y; +return this; +}; +t.prototype.IsValid = function() { +return isFinite(this.x) && isFinite(this.y); +}; +t.prototype.SelfCrossVS = function(t) { +var e = this.x; +this.x = t * this.y; +this.y = -t * e; +return this; +}; +t.prototype.SelfCrossSV = function(t) { +var e = this.x; +this.x = -t * this.y; +this.y = t * e; +return this; +}; +t.prototype.SelfMinV = function(t) { +this.x = g(this.x, t.x); +this.y = g(this.y, t.y); +return this; +}; +t.prototype.SelfMaxV = function(t) { +this.x = x(this.x, t.x); +this.y = x(this.y, t.y); +return this; +}; +t.prototype.SelfAbs = function() { +this.x = y(this.x); +this.y = y(this.y); +return this; +}; +t.prototype.SelfNeg = function() { +this.x = -this.x; +this.y = -this.y; +return this; +}; +t.prototype.SelfSkew = function() { +var t = this.x; +this.x = -this.y; +this.y = t; +return this; +}; +t.MakeArray = function(e) { +return d(e, (function(e) { +return new t(); +})); +}; +t.AbsV = function(t, e) { +e.x = y(t.x); +e.y = y(t.y); +return e; +}; +t.MinV = function(t, e, i) { +i.x = g(t.x, e.x); +i.y = g(t.y, e.y); +return i; +}; +t.MaxV = function(t, e, i) { +i.x = x(t.x, e.x); +i.y = x(t.y, e.y); +return i; +}; +t.ClampV = function(t, e, i, n) { +n.x = C(t.x, e.x, i.x); +n.y = C(t.y, e.y, i.y); +return n; +}; +t.RotateV = function(t, e, i) { +var n = t.x, r = t.y, s = Math.cos(e), o = Math.sin(e); +i.x = s * n - o * r; +i.y = o * n + s * r; +return i; +}; +t.DotVV = function(t, e) { +return t.x * e.x + t.y * e.y; +}; +t.CrossVV = function(t, e) { +return t.x * e.y - t.y * e.x; +}; +t.CrossVS = function(t, e, i) { +var n = t.x; +i.x = e * t.y; +i.y = -e * n; +return i; +}; +t.CrossVOne = function(t, e) { +var i = t.x; +e.x = t.y; +e.y = -i; +return e; +}; +t.CrossSV = function(t, e, i) { +var n = e.x; +i.x = -t * e.y; +i.y = t * n; +return i; +}; +t.CrossOneV = function(t, e) { +var i = t.x; +e.x = -t.y; +e.y = i; +return e; +}; +t.AddVV = function(t, e, i) { +i.x = t.x + e.x; +i.y = t.y + e.y; +return i; +}; +t.SubVV = function(t, e, i) { +i.x = t.x - e.x; +i.y = t.y - e.y; +return i; +}; +t.MulSV = function(t, e, i) { +i.x = e.x * t; +i.y = e.y * t; +return i; +}; +t.MulVS = function(t, e, i) { +i.x = t.x * e; +i.y = t.y * e; +return i; +}; +t.AddVMulSV = function(t, e, i, n) { +n.x = t.x + e * i.x; +n.y = t.y + e * i.y; +return n; +}; +t.SubVMulSV = function(t, e, i, n) { +n.x = t.x - e * i.x; +n.y = t.y - e * i.y; +return n; +}; +t.AddVCrossSV = function(t, e, i, n) { +var r = i.x; +n.x = t.x - e * i.y; +n.y = t.y + e * r; +return n; +}; +t.MidVV = function(t, e, i) { +i.x = .5 * (t.x + e.x); +i.y = .5 * (t.y + e.y); +return i; +}; +t.ExtVV = function(t, e, i) { +i.x = .5 * (e.x - t.x); +i.y = .5 * (e.y - t.y); +return i; +}; +t.IsEqualToV = function(t, e) { +return t.x === e.x && t.y === e.y; +}; +t.DistanceVV = function(t, e) { +var i = t.x - e.x, n = t.y - e.y; +return Math.sqrt(i * i + n * n); +}; +t.DistanceSquaredVV = function(t, e) { +var i = t.x - e.x, n = t.y - e.y; +return i * i + n * n; +}; +t.NegV = function(t, e) { +e.x = -t.x; +e.y = -t.y; +return e; +}; +t.ZERO = new t(0, 0); +t.UNITX = new t(1, 0); +t.UNITY = new t(0, 1); +t.s_t0 = new t(); +t.s_t1 = new t(); +t.s_t2 = new t(); +t.s_t3 = new t(); +return t; +})(), R = new P(0, 0), L = (function() { +function t(t, e, i) { +void 0 === t && (t = 0); +void 0 === e && (e = 0); +void 0 === i && (i = 0); +this.x = t; +this.y = e; +this.z = i; +} +t.prototype.Clone = function() { +return new t(this.x, this.y, this.z); +}; +t.prototype.SetZero = function() { +this.x = 0; +this.y = 0; +this.z = 0; +return this; +}; +t.prototype.SetXYZ = function(t, e, i) { +this.x = t; +this.y = e; +this.z = i; +return this; +}; +t.prototype.Copy = function(t) { +this.x = t.x; +this.y = t.y; +this.z = t.z; +return this; +}; +t.prototype.SelfNeg = function() { +this.x = -this.x; +this.y = -this.y; +this.z = -this.z; +return this; +}; +t.prototype.SelfAdd = function(t) { +this.x += t.x; +this.y += t.y; +this.z += t.z; +return this; +}; +t.prototype.SelfAddXYZ = function(t, e, i) { +this.x += t; +this.y += e; +this.z += i; +return this; +}; +t.prototype.SelfSub = function(t) { +this.x -= t.x; +this.y -= t.y; +this.z -= t.z; +return this; +}; +t.prototype.SelfSubXYZ = function(t, e, i) { +this.x -= t; +this.y -= e; +this.z -= i; +return this; +}; +t.prototype.SelfMul = function(t) { +this.x *= t; +this.y *= t; +this.z *= t; +return this; +}; +t.DotV3V3 = function(t, e) { +return t.x * e.x + t.y * e.y + t.z * e.z; +}; +t.CrossV3V3 = function(t, e, i) { +var n = t.x, r = t.y, s = t.z, o = e.x, a = e.y, c = e.z; +i.x = r * c - s * a; +i.y = s * o - n * c; +i.z = n * a - r * o; +return i; +}; +t.ZERO = new t(0, 0, 0); +t.s_t0 = new t(); +return t; +})(), F = (function() { +function t() { +this.ex = new P(1, 0); +this.ey = new P(0, 1); +} +t.prototype.Clone = function() { +return new t().Copy(this); +}; +t.FromVV = function(e, i) { +return new t().SetVV(e, i); +}; +t.FromSSSS = function(e, i, n, r) { +return new t().SetSSSS(e, i, n, r); +}; +t.FromAngle = function(e) { +return new t().SetAngle(e); +}; +t.prototype.SetSSSS = function(t, e, i, n) { +this.ex.Set(t, i); +this.ey.Set(e, n); +return this; +}; +t.prototype.SetVV = function(t, e) { +this.ex.Copy(t); +this.ey.Copy(e); +return this; +}; +t.prototype.SetAngle = function(t) { +var e = Math.cos(t), i = Math.sin(t); +this.ex.Set(e, i); +this.ey.Set(-i, e); +return this; +}; +t.prototype.Copy = function(t) { +this.ex.Copy(t.ex); +this.ey.Copy(t.ey); +return this; +}; +t.prototype.SetIdentity = function() { +this.ex.Set(1, 0); +this.ey.Set(0, 1); +return this; +}; +t.prototype.SetZero = function() { +this.ex.SetZero(); +this.ey.SetZero(); +return this; +}; +t.prototype.GetAngle = function() { +return Math.atan2(this.ex.y, this.ex.x); +}; +t.prototype.GetInverse = function(t) { +var e = this.ex.x, i = this.ey.x, n = this.ex.y, r = this.ey.y, s = e * r - i * n; +0 !== s && (s = 1 / s); +t.ex.x = s * r; +t.ey.x = -s * i; +t.ex.y = -s * n; +t.ey.y = s * e; +return t; +}; +t.prototype.Solve = function(t, e, i) { +var n = this.ex.x, r = this.ey.x, s = this.ex.y, o = this.ey.y, a = n * o - r * s; +0 !== a && (a = 1 / a); +i.x = a * (o * t - r * e); +i.y = a * (n * e - s * t); +return i; +}; +t.prototype.SelfAbs = function() { +this.ex.SelfAbs(); +this.ey.SelfAbs(); +return this; +}; +t.prototype.SelfInv = function() { +this.GetInverse(this); +return this; +}; +t.prototype.SelfAddM = function(t) { +this.ex.SelfAdd(t.ex); +this.ey.SelfAdd(t.ey); +return this; +}; +t.prototype.SelfSubM = function(t) { +this.ex.SelfSub(t.ex); +this.ey.SelfSub(t.ey); +return this; +}; +t.AbsM = function(t, e) { +var i = t.ex, n = t.ey; +e.ex.x = y(i.x); +e.ex.y = y(i.y); +e.ey.x = y(n.x); +e.ey.y = y(n.y); +return e; +}; +t.MulMV = function(t, e, i) { +var n = t.ex, r = t.ey, s = e.x, o = e.y; +i.x = n.x * s + r.x * o; +i.y = n.y * s + r.y * o; +return i; +}; +t.MulTMV = function(t, e, i) { +var n = t.ex, r = t.ey, s = e.x, o = e.y; +i.x = n.x * s + n.y * o; +i.y = r.x * s + r.y * o; +return i; +}; +t.AddMM = function(t, e, i) { +var n = t.ex, r = t.ey, s = e.ex, o = e.ey; +i.ex.x = n.x + s.x; +i.ex.y = n.y + s.y; +i.ey.x = r.x + o.x; +i.ey.y = r.y + o.y; +return i; +}; +t.MulMM = function(t, e, i) { +var n = t.ex.x, r = t.ex.y, s = t.ey.x, o = t.ey.y, a = e.ex.x, c = e.ex.y, l = e.ey.x, h = e.ey.y; +i.ex.x = n * a + s * c; +i.ex.y = r * a + o * c; +i.ey.x = n * l + s * h; +i.ey.y = r * l + o * h; +return i; +}; +t.MulTMM = function(t, e, i) { +var n = t.ex.x, r = t.ex.y, s = t.ey.x, o = t.ey.y, a = e.ex.x, c = e.ex.y, l = e.ey.x, h = e.ey.y; +i.ex.x = n * a + r * c; +i.ex.y = s * a + o * c; +i.ey.x = n * l + r * h; +i.ey.y = s * l + o * h; +return i; +}; +t.IDENTITY = new t(); +return t; +})(), O = (function() { +function t() { +this.ex = new L(1, 0, 0); +this.ey = new L(0, 1, 0); +this.ez = new L(0, 0, 1); +} +t.prototype.Clone = function() { +return new t().Copy(this); +}; +t.prototype.SetVVV = function(t, e, i) { +this.ex.Copy(t); +this.ey.Copy(e); +this.ez.Copy(i); +return this; +}; +t.prototype.Copy = function(t) { +this.ex.Copy(t.ex); +this.ey.Copy(t.ey); +this.ez.Copy(t.ez); +return this; +}; +t.prototype.SetIdentity = function() { +this.ex.SetXYZ(1, 0, 0); +this.ey.SetXYZ(0, 1, 0); +this.ez.SetXYZ(0, 0, 1); +return this; +}; +t.prototype.SetZero = function() { +this.ex.SetZero(); +this.ey.SetZero(); +this.ez.SetZero(); +return this; +}; +t.prototype.SelfAddM = function(t) { +this.ex.SelfAdd(t.ex); +this.ey.SelfAdd(t.ey); +this.ez.SelfAdd(t.ez); +return this; +}; +t.prototype.Solve33 = function(t, e, i, n) { +var r = this.ex.x, s = this.ex.y, o = this.ex.z, a = this.ey.x, c = this.ey.y, l = this.ey.z, h = this.ez.x, u = this.ez.y, _ = this.ez.z, f = r * (c * _ - l * u) + s * (l * h - a * _) + o * (a * u - c * h); +0 !== f && (f = 1 / f); +n.x = f * (t * (c * _ - l * u) + e * (l * h - a * _) + i * (a * u - c * h)); +n.y = f * (r * (e * _ - i * u) + s * (i * h - t * _) + o * (t * u - e * h)); +n.z = f * (r * (c * i - l * e) + s * (l * t - a * i) + o * (a * e - c * t)); +return n; +}; +t.prototype.Solve22 = function(t, e, i) { +var n = this.ex.x, r = this.ey.x, s = this.ex.y, o = this.ey.y, a = n * o - r * s; +0 !== a && (a = 1 / a); +i.x = a * (o * t - r * e); +i.y = a * (n * e - s * t); +return i; +}; +t.prototype.GetInverse22 = function(t) { +var e = this.ex.x, i = this.ey.x, n = this.ex.y, r = this.ey.y, s = e * r - i * n; +0 !== s && (s = 1 / s); +t.ex.x = s * r; +t.ey.x = -s * i; +t.ex.z = 0; +t.ex.y = -s * n; +t.ey.y = s * e; +t.ey.z = 0; +t.ez.x = 0; +t.ez.y = 0; +t.ez.z = 0; +}; +t.prototype.GetSymInverse33 = function(t) { +var e = L.DotV3V3(this.ex, L.CrossV3V3(this.ey, this.ez, L.s_t0)); +0 !== e && (e = 1 / e); +var i = this.ex.x, n = this.ey.x, r = this.ez.x, s = this.ey.y, o = this.ez.y, a = this.ez.z; +t.ex.x = e * (s * a - o * o); +t.ex.y = e * (r * o - n * a); +t.ex.z = e * (n * o - r * s); +t.ey.x = t.ex.y; +t.ey.y = e * (i * a - r * r); +t.ey.z = e * (r * n - i * o); +t.ez.x = t.ex.z; +t.ez.y = t.ey.z; +t.ez.z = e * (i * s - n * n); +}; +t.MulM33V3 = function(t, e, i) { +var n = e.x, r = e.y, s = e.z; +i.x = t.ex.x * n + t.ey.x * r + t.ez.x * s; +i.y = t.ex.y * n + t.ey.y * r + t.ez.y * s; +i.z = t.ex.z * n + t.ey.z * r + t.ez.z * s; +return i; +}; +t.MulM33XYZ = function(t, e, i, n, r) { +r.x = t.ex.x * e + t.ey.x * i + t.ez.x * n; +r.y = t.ex.y * e + t.ey.y * i + t.ez.y * n; +r.z = t.ex.z * e + t.ey.z * i + t.ez.z * n; +return r; +}; +t.MulM33V2 = function(t, e, i) { +var n = e.x, r = e.y; +i.x = t.ex.x * n + t.ey.x * r; +i.y = t.ex.y * n + t.ey.y * r; +return i; +}; +t.MulM33XY = function(t, e, i, n) { +n.x = t.ex.x * e + t.ey.x * i; +n.y = t.ex.y * e + t.ey.y * i; +return n; +}; +t.IDENTITY = new t(); +return t; +})(), V = (function() { +function t(t) { +void 0 === t && (t = 0); +this.s = 0; +this.c = 1; +if (t) { +this.s = Math.sin(t); +this.c = Math.cos(t); +} +} +t.prototype.Clone = function() { +return new t().Copy(this); +}; +t.prototype.Copy = function(t) { +this.s = t.s; +this.c = t.c; +return this; +}; +t.prototype.SetAngle = function(t) { +this.s = Math.sin(t); +this.c = Math.cos(t); +return this; +}; +t.prototype.SetIdentity = function() { +this.s = 0; +this.c = 1; +return this; +}; +t.prototype.GetAngle = function() { +return Math.atan2(this.s, this.c); +}; +t.prototype.GetXAxis = function(t) { +t.x = this.c; +t.y = this.s; +return t; +}; +t.prototype.GetYAxis = function(t) { +t.x = -this.s; +t.y = this.c; +return t; +}; +t.MulRR = function(t, e, i) { +var n = t.c, r = t.s, s = e.c, o = e.s; +i.s = r * s + n * o; +i.c = n * s - r * o; +return i; +}; +t.MulTRR = function(t, e, i) { +var n = t.c, r = t.s, s = e.c, o = e.s; +i.s = n * o - r * s; +i.c = n * s + r * o; +return i; +}; +t.MulRV = function(t, e, i) { +var n = t.c, r = t.s, s = e.x, o = e.y; +i.x = n * s - r * o; +i.y = r * s + n * o; +return i; +}; +t.MulTRV = function(t, e, i) { +var n = t.c, r = t.s, s = e.x, o = e.y; +i.x = n * s + r * o; +i.y = -r * s + n * o; +return i; +}; +t.IDENTITY = new t(); +return t; +})(), N = (function() { +function t() { +this.p = new P(); +this.q = new V(); +} +t.prototype.Clone = function() { +return new t().Copy(this); +}; +t.prototype.Copy = function(t) { +this.p.Copy(t.p); +this.q.Copy(t.q); +return this; +}; +t.prototype.SetIdentity = function() { +this.p.SetZero(); +this.q.SetIdentity(); +return this; +}; +t.prototype.SetPositionRotation = function(t, e) { +this.p.Copy(t); +this.q.Copy(e); +return this; +}; +t.prototype.SetPositionAngle = function(t, e) { +this.p.Copy(t); +this.q.SetAngle(e); +return this; +}; +t.prototype.SetPosition = function(t) { +this.p.Copy(t); +return this; +}; +t.prototype.SetPositionXY = function(t, e) { +this.p.Set(t, e); +return this; +}; +t.prototype.SetRotation = function(t) { +this.q.Copy(t); +return this; +}; +t.prototype.SetRotationAngle = function(t) { +this.q.SetAngle(t); +return this; +}; +t.prototype.GetPosition = function() { +return this.p; +}; +t.prototype.GetRotation = function() { +return this.q; +}; +t.prototype.GetRotationAngle = function() { +return this.q.GetAngle(); +}; +t.prototype.GetAngle = function() { +return this.q.GetAngle(); +}; +t.MulXV = function(t, e, i) { +var n = t.q.c, r = t.q.s, s = e.x, o = e.y; +i.x = n * s - r * o + t.p.x; +i.y = r * s + n * o + t.p.y; +return i; +}; +t.MulTXV = function(t, e, i) { +var n = t.q.c, r = t.q.s, s = e.x - t.p.x, o = e.y - t.p.y; +i.x = n * s + r * o; +i.y = -r * s + n * o; +return i; +}; +t.MulXX = function(t, e, i) { +V.MulRR(t.q, e.q, i.q); +P.AddVV(V.MulRV(t.q, e.p, i.p), t.p, i.p); +return i; +}; +t.MulTXX = function(t, e, i) { +V.MulTRR(t.q, e.q, i.q); +V.MulTRV(t.q, P.SubVV(e.p, t.p, i.p), i.p); +return i; +}; +t.IDENTITY = new t(); +return t; +})(), k = (function() { +function t() { +this.localCenter = new P(); +this.c0 = new P(); +this.c = new P(); +this.a0 = 0; +this.a = 0; +this.alpha0 = 0; +} +t.prototype.Clone = function() { +return new t().Copy(this); +}; +t.prototype.Copy = function(t) { +this.localCenter.Copy(t.localCenter); +this.c0.Copy(t.c0); +this.c.Copy(t.c); +this.a0 = t.a0; +this.a = t.a; +this.alpha0 = t.alpha0; +return this; +}; +t.prototype.GetTransform = function(t, e) { +var i = 1 - e; +t.p.x = i * this.c0.x + e * this.c.x; +t.p.y = i * this.c0.y + e * this.c.y; +var n = i * this.a0 + e * this.a; +t.q.SetAngle(n); +t.p.SelfSub(V.MulRV(t.q, this.localCenter, P.s_t0)); +return t; +}; +t.prototype.Advance = function(t) { +var e = (t - this.alpha0) / (1 - this.alpha0), i = 1 - e; +this.c0.x = i * this.c0.x + e * this.c.x; +this.c0.y = i * this.c0.y + e * this.c.y; +this.a0 = i * this.a0 + e * this.a; +this.alpha0 = t; +}; +t.prototype.Normalize = function() { +var t = 6.28318530718 * Math.floor(this.a0 / 6.28318530718); +this.a0 -= t; +this.a -= t; +}; +return t; +})(), z = (function() { +function t(t, e, i, n) { +void 0 === t && (t = .5); +void 0 === e && (e = .5); +void 0 === i && (i = .5); +void 0 === n && (n = 1); +this.r = t; +this.g = e; +this.b = i; +this.a = n; +} +t.prototype.Clone = function() { +return new t().Copy(this); +}; +t.prototype.Copy = function(t) { +this.r = t.r; +this.g = t.g; +this.b = t.b; +this.a = t.a; +return this; +}; +t.prototype.IsEqual = function(t) { +return this.r === t.r && this.g === t.g && this.b === t.b && this.a === t.a; +}; +t.prototype.IsZero = function() { +return 0 === this.r && 0 === this.g && 0 === this.b && 0 === this.a; +}; +t.prototype.Set = function(t, e, i, n) { +void 0 === n && (n = this.a); +this.SetRGBA(t, e, i, n); +}; +t.prototype.SetByteRGB = function(t, e, i) { +this.r = t / 255; +this.g = e / 255; +this.b = i / 255; +return this; +}; +t.prototype.SetByteRGBA = function(t, e, i, n) { +this.r = t / 255; +this.g = e / 255; +this.b = i / 255; +this.a = n / 255; +return this; +}; +t.prototype.SetRGB = function(t, e, i) { +this.r = t; +this.g = e; +this.b = i; +return this; +}; +t.prototype.SetRGBA = function(t, e, i, n) { +this.r = t; +this.g = e; +this.b = i; +this.a = n; +return this; +}; +t.prototype.SelfAdd = function(t) { +this.r += t.r; +this.g += t.g; +this.b += t.b; +this.a += t.a; +return this; +}; +t.prototype.Add = function(t, e) { +e.r = this.r + t.r; +e.g = this.g + t.g; +e.b = this.b + t.b; +e.a = this.a + t.a; +return e; +}; +t.prototype.SelfSub = function(t) { +this.r -= t.r; +this.g -= t.g; +this.b -= t.b; +this.a -= t.a; +return this; +}; +t.prototype.Sub = function(t, e) { +e.r = this.r - t.r; +e.g = this.g - t.g; +e.b = this.b - t.b; +e.a = this.a - t.a; +return e; +}; +t.prototype.SelfMul = function(t) { +this.r *= t; +this.g *= t; +this.b *= t; +this.a *= t; +return this; +}; +t.prototype.Mul = function(t, e) { +e.r = this.r * t; +e.g = this.g * t; +e.b = this.b * t; +e.a = this.a * t; +return e; +}; +t.prototype.Mix = function(e, i) { +t.MixColors(this, e, i); +}; +t.MixColors = function(t, e, i) { +var n = i * (e.r - t.r), r = i * (e.g - t.g), s = i * (e.b - t.b), o = i * (e.a - t.a); +t.r += n; +t.g += r; +t.b += s; +t.a += o; +e.r -= n; +e.g -= r; +e.b -= s; +e.a -= o; +}; +t.prototype.MakeStyleString = function(e) { +void 0 === e && (e = this.a); +return t.MakeStyleString(this.r, this.g, this.b, e); +}; +t.MakeStyleString = function(t, e, i, n) { +void 0 === n && (n = 1); +t *= 255; +e *= 255; +i *= 255; +return n < 1 ? "rgba(" + t + "," + e + "," + i + "," + n + ")" : "rgb(" + t + "," + e + "," + i + ")"; +}; +t.ZERO = new t(0, 0, 0, 0); +t.RED = new t(1, 0, 0); +t.GREEN = new t(0, 1, 0); +t.BLUE = new t(0, 0, 1); +return t; +})(); +(function(t) { +t[t.e_none = 0] = "e_none"; +t[t.e_shapeBit = 1] = "e_shapeBit"; +t[t.e_jointBit = 2] = "e_jointBit"; +t[t.e_aabbBit = 4] = "e_aabbBit"; +t[t.e_pairBit = 8] = "e_pairBit"; +t[t.e_centerOfMassBit = 16] = "e_centerOfMassBit"; +t[t.e_particleBit = 32] = "e_particleBit"; +t[t.e_controllerBit = 64] = "e_controllerBit"; +t[t.e_all = 63] = "e_all"; +})(t.b2DrawFlags || (t.b2DrawFlags = {})); +var G = (function() { +function t() { +this.m_drawFlags = 0; +} +t.prototype.SetFlags = function(t) { +this.m_drawFlags = t; +}; +t.prototype.GetFlags = function() { +return this.m_drawFlags; +}; +t.prototype.AppendFlags = function(t) { +this.m_drawFlags |= t; +}; +t.prototype.ClearFlags = function(t) { +this.m_drawFlags &= ~t; +}; +return t; +})(), U = (function() { +function t() { +this.m_start = Date.now(); +} +t.prototype.Reset = function() { +this.m_start = Date.now(); +return this; +}; +t.prototype.GetMilliseconds = function() { +return Date.now() - this.m_start; +}; +return t; +})(), j = (function() { +function t() { +this.m_count = 0; +this.m_min_count = 0; +this.m_max_count = 0; +} +t.prototype.GetCount = function() { +return this.m_count; +}; +t.prototype.GetMinCount = function() { +return this.m_min_count; +}; +t.prototype.GetMaxCount = function() { +return this.m_max_count; +}; +t.prototype.ResetCount = function() { +var t = this.m_count; +this.m_count = 0; +return t; +}; +t.prototype.ResetMinCount = function() { +this.m_min_count = 0; +}; +t.prototype.ResetMaxCount = function() { +this.m_max_count = 0; +}; +t.prototype.Increment = function() { +this.m_count++; +this.m_max_count < this.m_count && (this.m_max_count = this.m_count); +}; +t.prototype.Decrement = function() { +this.m_count--; +this.m_min_count > this.m_count && (this.m_min_count = this.m_count); +}; +return t; +})(), W = (function() { +function t(t) { +this.m_stack = []; +this.m_count = 0; +this.m_stack = d(t, (function(t) { +return null; +})); +this.m_count = 0; +} +t.prototype.Reset = function() { +this.m_count = 0; +return this; +}; +t.prototype.Push = function(t) { +this.m_stack[this.m_count] = t; +this.m_count++; +}; +t.prototype.Pop = function() { +this.m_count--; +var t = this.m_stack[this.m_count]; +this.m_stack[this.m_count] = null; +if (null === t) throw new Error(); +return t; +}; +t.prototype.GetCount = function() { +return this.m_count; +}; +return t; +})(), H = (function() { +return function() {}; +})(), q = (function() { +return function() {}; +})(), X = (function() { +function t() { +this.m_buffer = P.MakeArray(2); +this.m_vertices = this.m_buffer; +this.m_count = 0; +this.m_radius = 0; +} +t.prototype.Copy = function(t) { +if (t.m_vertices === t.m_buffer) { +this.m_vertices = this.m_buffer; +this.m_buffer[0].Copy(t.m_buffer[0]); +this.m_buffer[1].Copy(t.m_buffer[1]); +} else this.m_vertices = t.m_vertices; +this.m_count = t.m_count; +this.m_radius = t.m_radius; +return this; +}; +t.prototype.Reset = function() { +this.m_vertices = this.m_buffer; +this.m_count = 0; +this.m_radius = 0; +return this; +}; +t.prototype.SetShape = function(t, e) { +t.SetupDistanceProxy(this, e); +}; +t.prototype.SetVerticesRadius = function(t, e, i) { +this.m_vertices = t; +this.m_count = e; +this.m_radius = i; +}; +t.prototype.GetSupport = function(t) { +for (var e = 0, i = P.DotVV(this.m_vertices[0], t), n = 1; n < this.m_count; ++n) { +var r = P.DotVV(this.m_vertices[n], t); +if (r > i) { +e = n; +i = r; +} +} +return e; +}; +t.prototype.GetSupportVertex = function(t) { +for (var e = 0, i = P.DotVV(this.m_vertices[0], t), n = 1; n < this.m_count; ++n) { +var r = P.DotVV(this.m_vertices[n], t); +if (r > i) { +e = n; +i = r; +} +} +return this.m_vertices[e]; +}; +t.prototype.GetVertexCount = function() { +return this.m_count; +}; +t.prototype.GetVertex = function(t) { +return this.m_vertices[t]; +}; +return t; +})(), Y = (function() { +function t() { +this.metric = 0; +this.count = 0; +this.indexA = [ 0, 0, 0 ]; +this.indexB = [ 0, 0, 0 ]; +} +t.prototype.Reset = function() { +this.metric = 0; +this.count = 0; +return this; +}; +return t; +})(), J = (function() { +function t() { +this.proxyA = new X(); +this.proxyB = new X(); +this.transformA = new N(); +this.transformB = new N(); +this.useRadii = !1; +} +t.prototype.Reset = function() { +this.proxyA.Reset(); +this.proxyB.Reset(); +this.transformA.SetIdentity(); +this.transformB.SetIdentity(); +this.useRadii = !1; +return this; +}; +return t; +})(), Z = (function() { +function t() { +this.pointA = new P(); +this.pointB = new P(); +this.distance = 0; +this.iterations = 0; +} +t.prototype.Reset = function() { +this.pointA.SetZero(); +this.pointB.SetZero(); +this.distance = 0; +this.iterations = 0; +return this; +}; +return t; +})(), K = (function() { +return function() { +this.proxyA = new X(); +this.proxyB = new X(); +this.transformA = new N(); +this.transformB = new N(); +this.translationB = new P(); +}; +})(), Q = (function() { +return function() { +this.point = new P(); +this.normal = new P(); +this.lambda = 0; +this.iterations = 0; +}; +})(); +t.b2_gjkCalls = 0; +t.b2_gjkIters = 0; +t.b2_gjkMaxIters = 0; +var $ = (function() { +function t() { +this.wA = new P(); +this.wB = new P(); +this.w = new P(); +this.a = 0; +this.indexA = 0; +this.indexB = 0; +} +t.prototype.Copy = function(t) { +this.wA.Copy(t.wA); +this.wB.Copy(t.wB); +this.w.Copy(t.w); +this.a = t.a; +this.indexA = t.indexA; +this.indexB = t.indexB; +return this; +}; +return t; +})(), tt = (function() { +function t() { +this.m_v1 = new $(); +this.m_v2 = new $(); +this.m_v3 = new $(); +this.m_vertices = []; +this.m_count = 0; +this.m_vertices[0] = this.m_v1; +this.m_vertices[1] = this.m_v2; +this.m_vertices[2] = this.m_v3; +} +t.prototype.ReadCache = function(t, e, i, r, s) { +this.m_count = t.count; +for (var o = this.m_vertices, a = 0; a < this.m_count; ++a) { +(_ = o[a]).indexA = t.indexA[a]; +_.indexB = t.indexB[a]; +var c = e.GetVertex(_.indexA), l = r.GetVertex(_.indexB); +N.MulXV(i, c, _.wA); +N.MulXV(s, l, _.wB); +P.SubVV(_.wB, _.wA, _.w); +_.a = 0; +} +if (this.m_count > 1) { +var h = t.metric, u = this.GetMetric(); +(u < .5 * h || 2 * h < u || u < n) && (this.m_count = 0); +} +if (0 === this.m_count) { +var _; +(_ = o[0]).indexA = 0; +_.indexB = 0; +c = e.GetVertex(0), l = r.GetVertex(0); +N.MulXV(i, c, _.wA); +N.MulXV(s, l, _.wB); +P.SubVV(_.wB, _.wA, _.w); +_.a = 1; +this.m_count = 1; +} +}; +t.prototype.WriteCache = function(t) { +t.metric = this.GetMetric(); +t.count = this.m_count; +for (var e = this.m_vertices, i = 0; i < this.m_count; ++i) { +t.indexA[i] = e[i].indexA; +t.indexB[i] = e[i].indexB; +} +}; +t.prototype.GetSearchDirection = function(t) { +switch (this.m_count) { +case 1: +return P.NegV(this.m_v1.w, t); + +case 2: +var e = P.SubVV(this.m_v2.w, this.m_v1.w, t); +return P.CrossVV(e, P.NegV(this.m_v1.w, P.s_t0)) > 0 ? P.CrossOneV(e, t) : P.CrossVOne(e, t); + +default: +return t.SetZero(); +} +}; +t.prototype.GetClosestPoint = function(t) { +switch (this.m_count) { +case 0: +return t.SetZero(); + +case 1: +return t.Copy(this.m_v1.w); + +case 2: +return t.Set(this.m_v1.a * this.m_v1.w.x + this.m_v2.a * this.m_v2.w.x, this.m_v1.a * this.m_v1.w.y + this.m_v2.a * this.m_v2.w.y); + +case 3: +default: +return t.SetZero(); +} +}; +t.prototype.GetWitnessPoints = function(t, e) { +switch (this.m_count) { +case 0: +break; + +case 1: +t.Copy(this.m_v1.wA); +e.Copy(this.m_v1.wB); +break; + +case 2: +t.x = this.m_v1.a * this.m_v1.wA.x + this.m_v2.a * this.m_v2.wA.x; +t.y = this.m_v1.a * this.m_v1.wA.y + this.m_v2.a * this.m_v2.wA.y; +e.x = this.m_v1.a * this.m_v1.wB.x + this.m_v2.a * this.m_v2.wB.x; +e.y = this.m_v1.a * this.m_v1.wB.y + this.m_v2.a * this.m_v2.wB.y; +break; + +case 3: +e.x = t.x = this.m_v1.a * this.m_v1.wA.x + this.m_v2.a * this.m_v2.wA.x + this.m_v3.a * this.m_v3.wA.x; +e.y = t.y = this.m_v1.a * this.m_v1.wA.y + this.m_v2.a * this.m_v2.wA.y + this.m_v3.a * this.m_v3.wA.y; +} +}; +t.prototype.GetMetric = function() { +switch (this.m_count) { +case 0: +case 1: +return 0; + +case 2: +return P.DistanceVV(this.m_v1.w, this.m_v2.w); + +case 3: +return P.CrossVV(P.SubVV(this.m_v2.w, this.m_v1.w, P.s_t0), P.SubVV(this.m_v3.w, this.m_v1.w, P.s_t1)); + +default: +return 0; +} +}; +t.prototype.Solve2 = function() { +var e = this.m_v1.w, i = this.m_v2.w, n = P.SubVV(i, e, t.s_e12), r = -P.DotVV(e, n); +if (r <= 0) { +this.m_v1.a = 1; +this.m_count = 1; +} else { +var s = P.DotVV(i, n); +if (s <= 0) { +this.m_v2.a = 1; +this.m_count = 1; +this.m_v1.Copy(this.m_v2); +} else { +var o = 1 / (s + r); +this.m_v1.a = s * o; +this.m_v2.a = r * o; +this.m_count = 2; +} +} +}; +t.prototype.Solve3 = function() { +var e = this.m_v1.w, i = this.m_v2.w, n = this.m_v3.w, r = P.SubVV(i, e, t.s_e12), s = P.DotVV(e, r), o = P.DotVV(i, r), a = -s, c = P.SubVV(n, e, t.s_e13), l = P.DotVV(e, c), h = P.DotVV(n, c), u = -l, _ = P.SubVV(n, i, t.s_e23), f = P.DotVV(i, _), d = P.DotVV(n, _), m = -f, p = P.CrossVV(r, c), v = p * P.CrossVV(i, n), y = p * P.CrossVV(n, e), g = p * P.CrossVV(e, i); +if (a <= 0 && u <= 0) { +this.m_v1.a = 1; +this.m_count = 1; +} else if (o > 0 && a > 0 && g <= 0) { +var x = 1 / (o + a); +this.m_v1.a = o * x; +this.m_v2.a = a * x; +this.m_count = 2; +} else if (h > 0 && u > 0 && y <= 0) { +var C = 1 / (h + u); +this.m_v1.a = h * C; +this.m_v3.a = u * C; +this.m_count = 2; +this.m_v2.Copy(this.m_v3); +} else if (o <= 0 && m <= 0) { +this.m_v2.a = 1; +this.m_count = 1; +this.m_v1.Copy(this.m_v2); +} else if (h <= 0 && d <= 0) { +this.m_v3.a = 1; +this.m_count = 1; +this.m_v1.Copy(this.m_v3); +} else if (d > 0 && m > 0 && v <= 0) { +var b = 1 / (d + m); +this.m_v2.a = d * b; +this.m_v3.a = m * b; +this.m_count = 2; +this.m_v1.Copy(this.m_v3); +} else { +var A = 1 / (v + y + g); +this.m_v1.a = v * A; +this.m_v2.a = y * A; +this.m_v3.a = g * A; +this.m_count = 3; +} +}; +t.s_e12 = new P(); +t.s_e13 = new P(); +t.s_e23 = new P(); +return t; +})(), et = new tt(), it = [ 0, 0, 0 ], nt = [ 0, 0, 0 ], rt = new P(), st = new P(), ot = new P(), at = new P(), ct = new P(); +function lt(e, i, s) { +++t.b2_gjkCalls; +var o = s.proxyA, a = s.proxyB, c = s.transformA, l = s.transformB, h = et; +h.ReadCache(i, o, c, a, l); +for (var u = h.m_vertices, _ = it, f = nt, d = 0, m = 0; m < 20; ) { +d = h.m_count; +for (var p = 0; p < d; ++p) { +_[p] = u[p].indexA; +f[p] = u[p].indexB; +} +switch (h.m_count) { +case 1: +break; + +case 2: +h.Solve2(); +break; + +case 3: +h.Solve3(); +} +if (3 === h.m_count) break; +var v = h.GetSearchDirection(st); +if (v.LengthSquared() < r) break; +var y = u[h.m_count]; +y.indexA = o.GetSupport(V.MulTRV(c.q, P.NegV(v, P.s_t0), at)); +N.MulXV(c, o.GetVertex(y.indexA), y.wA); +y.indexB = a.GetSupport(V.MulTRV(l.q, v, ct)); +N.MulXV(l, a.GetVertex(y.indexB), y.wB); +P.SubVV(y.wB, y.wA, y.w); +++m; +++t.b2_gjkIters; +var g = !1; +for (p = 0; p < d; ++p) if (y.indexA === _[p] && y.indexB === f[p]) { +g = !0; +break; +} +if (g) break; +++h.m_count; +} +t.b2_gjkMaxIters = x(t.b2_gjkMaxIters, m); +h.GetWitnessPoints(e.pointA, e.pointB); +e.distance = P.DistanceVV(e.pointA, e.pointB); +e.iterations = m; +h.WriteCache(i); +if (s.useRadii) { +var C = o.m_radius, b = a.m_radius; +if (e.distance > C + b && e.distance > n) { +e.distance -= C + b; +var A = P.SubVV(e.pointB, e.pointA, ot); +A.Normalize(); +e.pointA.SelfMulAdd(C, A); +e.pointB.SelfMulSub(b, A); +} else { +var S = P.MidVV(e.pointA, e.pointB, rt); +e.pointA.Copy(S); +e.pointB.Copy(S); +e.distance = 0; +} +} +} +var ht = new P(), ut = new tt(), _t = new P(), ft = new P(), dt = new P(), mt = new P(), pt = new P(), vt = new P(); +(function(t) { +t[t.e_vertex = 0] = "e_vertex"; +t[t.e_face = 1] = "e_face"; +})(t.b2ContactFeatureType || (t.b2ContactFeatureType = {})); +var yt = (function() { +function t() { +this._key = 0; +this._key_invalid = !1; +this._indexA = 0; +this._indexB = 0; +this._typeA = 0; +this._typeB = 0; +} +Object.defineProperty(t.prototype, "key", { +get: function() { +if (this._key_invalid) { +this._key_invalid = !1; +this._key = this._indexA | this._indexB << 8 | this._typeA << 16 | this._typeB << 24; +} +return this._key; +}, +set: function(t) { +this._key = t; +this._key_invalid = !1; +this._indexA = 255 & this._key; +this._indexB = this._key >> 8 & 255; +this._typeA = this._key >> 16 & 255; +this._typeB = this._key >> 24 & 255; +}, +enumerable: !0, +configurable: !0 +}); +Object.defineProperty(t.prototype, "indexA", { +get: function() { +return this._indexA; +}, +set: function(t) { +this._indexA = t; +this._key_invalid = !0; +}, +enumerable: !0, +configurable: !0 +}); +Object.defineProperty(t.prototype, "indexB", { +get: function() { +return this._indexB; +}, +set: function(t) { +this._indexB = t; +this._key_invalid = !0; +}, +enumerable: !0, +configurable: !0 +}); +Object.defineProperty(t.prototype, "typeA", { +get: function() { +return this._typeA; +}, +set: function(t) { +this._typeA = t; +this._key_invalid = !0; +}, +enumerable: !0, +configurable: !0 +}); +Object.defineProperty(t.prototype, "typeB", { +get: function() { +return this._typeB; +}, +set: function(t) { +this._typeB = t; +this._key_invalid = !0; +}, +enumerable: !0, +configurable: !0 +}); +return t; +})(), gt = (function() { +function t() { +this.cf = new yt(); +} +t.prototype.Copy = function(t) { +this.key = t.key; +return this; +}; +t.prototype.Clone = function() { +return new t().Copy(this); +}; +Object.defineProperty(t.prototype, "key", { +get: function() { +return this.cf.key; +}, +set: function(t) { +this.cf.key = t; +}, +enumerable: !0, +configurable: !0 +}); +return t; +})(), xt = (function() { +function t() { +this.localPoint = new P(); +this.normalImpulse = 0; +this.tangentImpulse = 0; +this.id = new gt(); +} +t.MakeArray = function(e) { +return d(e, (function(e) { +return new t(); +})); +}; +t.prototype.Reset = function() { +this.localPoint.SetZero(); +this.normalImpulse = 0; +this.tangentImpulse = 0; +this.id.key = 0; +}; +t.prototype.Copy = function(t) { +this.localPoint.Copy(t.localPoint); +this.normalImpulse = t.normalImpulse; +this.tangentImpulse = t.tangentImpulse; +this.id.Copy(t.id); +return this; +}; +return t; +})(); +(function(t) { +t[t.e_unknown = -1] = "e_unknown"; +t[t.e_circles = 0] = "e_circles"; +t[t.e_faceA = 1] = "e_faceA"; +t[t.e_faceB = 2] = "e_faceB"; +})(t.b2ManifoldType || (t.b2ManifoldType = {})); +var Ct = (function() { +function e() { +this.points = xt.MakeArray(o); +this.localNormal = new P(); +this.localPoint = new P(); +this.type = t.b2ManifoldType.e_unknown; +this.pointCount = 0; +} +e.prototype.Reset = function() { +for (var e = 0; e < o; ++e) this.points[e].Reset(); +this.localNormal.SetZero(); +this.localPoint.SetZero(); +this.type = t.b2ManifoldType.e_unknown; +this.pointCount = 0; +}; +e.prototype.Copy = function(t) { +this.pointCount = t.pointCount; +for (var e = 0; e < o; ++e) this.points[e].Copy(t.points[e]); +this.localNormal.Copy(t.localNormal); +this.localPoint.Copy(t.localPoint); +this.type = t.type; +return this; +}; +e.prototype.Clone = function() { +return new e().Copy(this); +}; +return e; +})(), bt = (function() { +function e() { +this.normal = new P(); +this.points = P.MakeArray(o); +this.separations = m(o); +} +e.prototype.Initialize = function(i, n, s, o, a) { +if (0 !== i.pointCount) switch (i.type) { +case t.b2ManifoldType.e_circles: +this.normal.Set(1, 0); +var c = N.MulXV(n, i.localPoint, e.Initialize_s_pointA), l = N.MulXV(o, i.points[0].localPoint, e.Initialize_s_pointB); +P.DistanceSquaredVV(c, l) > r && P.SubVV(l, c, this.normal).SelfNormalize(); +var h = P.AddVMulSV(c, s, this.normal, e.Initialize_s_cA), u = P.SubVMulSV(l, a, this.normal, e.Initialize_s_cB); +P.MidVV(h, u, this.points[0]); +this.separations[0] = P.DotVV(P.SubVV(u, h, P.s_t0), this.normal); +break; + +case t.b2ManifoldType.e_faceA: +V.MulRV(n.q, i.localNormal, this.normal); +for (var _ = N.MulXV(n, i.localPoint, e.Initialize_s_planePoint), f = 0; f < i.pointCount; ++f) { +var d = N.MulXV(o, i.points[f].localPoint, e.Initialize_s_clipPoint), m = s - P.DotVV(P.SubVV(d, _, P.s_t0), this.normal); +h = P.AddVMulSV(d, m, this.normal, e.Initialize_s_cA), u = P.SubVMulSV(d, a, this.normal, e.Initialize_s_cB); +P.MidVV(h, u, this.points[f]); +this.separations[f] = P.DotVV(P.SubVV(u, h, P.s_t0), this.normal); +} +break; + +case t.b2ManifoldType.e_faceB: +V.MulRV(o.q, i.localNormal, this.normal); +for (_ = N.MulXV(o, i.localPoint, e.Initialize_s_planePoint), f = 0; f < i.pointCount; ++f) { +d = N.MulXV(n, i.points[f].localPoint, e.Initialize_s_clipPoint), m = a - P.DotVV(P.SubVV(d, _, P.s_t0), this.normal), +u = P.AddVMulSV(d, m, this.normal, e.Initialize_s_cB), h = P.SubVMulSV(d, s, this.normal, e.Initialize_s_cA); +P.MidVV(h, u, this.points[f]); +this.separations[f] = P.DotVV(P.SubVV(h, u, P.s_t0), this.normal); +} +this.normal.SelfNeg(); +} +}; +e.Initialize_s_pointA = new P(); +e.Initialize_s_pointB = new P(); +e.Initialize_s_cA = new P(); +e.Initialize_s_cB = new P(); +e.Initialize_s_planePoint = new P(); +e.Initialize_s_clipPoint = new P(); +return e; +})(); +(function(t) { +t[t.b2_nullState = 0] = "b2_nullState"; +t[t.b2_addState = 1] = "b2_addState"; +t[t.b2_persistState = 2] = "b2_persistState"; +t[t.b2_removeState = 3] = "b2_removeState"; +})(t.b2PointState || (t.b2PointState = {})); +var At = (function() { +function t() { +this.v = new P(); +this.id = new gt(); +} +t.MakeArray = function(e) { +return d(e, (function(e) { +return new t(); +})); +}; +t.prototype.Copy = function(t) { +this.v.Copy(t.v); +this.id.Copy(t.id); +return this; +}; +return t; +})(), St = (function() { +function t() { +this.p1 = new P(); +this.p2 = new P(); +this.maxFraction = 1; +} +t.prototype.Copy = function(t) { +this.p1.Copy(t.p1); +this.p2.Copy(t.p2); +this.maxFraction = t.maxFraction; +return this; +}; +return t; +})(), wt = (function() { +function t() { +this.normal = new P(); +this.fraction = 0; +} +t.prototype.Copy = function(t) { +this.normal.Copy(t.normal); +this.fraction = t.fraction; +return this; +}; +return t; +})(), Tt = (function() { +function t() { +this.lowerBound = new P(); +this.upperBound = new P(); +this.m_cache_center = new P(); +this.m_cache_extent = new P(); +} +t.prototype.Copy = function(t) { +this.lowerBound.Copy(t.lowerBound); +this.upperBound.Copy(t.upperBound); +return this; +}; +t.prototype.IsValid = function() { +var t = this.upperBound.x - this.lowerBound.x, e = this.upperBound.y - this.lowerBound.y, i = t >= 0 && e >= 0; +return i = i && this.lowerBound.IsValid() && this.upperBound.IsValid(); +}; +t.prototype.GetCenter = function() { +return P.MidVV(this.lowerBound, this.upperBound, this.m_cache_center); +}; +t.prototype.GetExtents = function() { +return P.ExtVV(this.lowerBound, this.upperBound, this.m_cache_extent); +}; +t.prototype.GetPerimeter = function() { +return 2 * (this.upperBound.x - this.lowerBound.x + (this.upperBound.y - this.lowerBound.y)); +}; +t.prototype.Combine1 = function(t) { +this.lowerBound.x = g(this.lowerBound.x, t.lowerBound.x); +this.lowerBound.y = g(this.lowerBound.y, t.lowerBound.y); +this.upperBound.x = x(this.upperBound.x, t.upperBound.x); +this.upperBound.y = x(this.upperBound.y, t.upperBound.y); +return this; +}; +t.prototype.Combine2 = function(t, e) { +this.lowerBound.x = g(t.lowerBound.x, e.lowerBound.x); +this.lowerBound.y = g(t.lowerBound.y, e.lowerBound.y); +this.upperBound.x = x(t.upperBound.x, e.upperBound.x); +this.upperBound.y = x(t.upperBound.y, e.upperBound.y); +return this; +}; +t.Combine = function(t, e, i) { +i.Combine2(t, e); +return i; +}; +t.prototype.Contains = function(t) { +var e = !0; +return e = (e = (e = (e = e && this.lowerBound.x <= t.lowerBound.x) && this.lowerBound.y <= t.lowerBound.y) && t.upperBound.x <= this.upperBound.x) && t.upperBound.y <= this.upperBound.y; +}; +t.prototype.RayCast = function(t, e) { +var r = -i, s = i, o = e.p1.x, a = e.p1.y, c = e.p2.x - e.p1.x, l = e.p2.y - e.p1.y, h = y(c), u = y(l), _ = t.normal; +if (h < n) { +if (o < this.lowerBound.x || this.upperBound.x < o) return !1; +} else { +var f = 1 / c, d = -1; +if ((p = (this.lowerBound.x - o) * f) > (v = (this.upperBound.x - o) * f)) { +var m = p; +p = v; +v = m; +d = 1; +} +if (p > r) { +_.x = d; +_.y = 0; +r = p; +} +if (r > (s = g(s, v))) return !1; +} +if (u < n) { +if (a < this.lowerBound.y || this.upperBound.y < a) return !1; +} else { +var p, v; +f = 1 / l, d = -1; +if ((p = (this.lowerBound.y - a) * f) > (v = (this.upperBound.y - a) * f)) { +m = p; +p = v; +v = m; +d = 1; +} +if (p > r) { +_.x = 0; +_.y = d; +r = p; +} +if (r > (s = g(s, v))) return !1; +} +if (r < 0 || e.maxFraction < r) return !1; +t.fraction = r; +return !0; +}; +t.prototype.TestContain = function(t) { +return !(t.x < this.lowerBound.x || this.upperBound.x < t.x) && !(t.y < this.lowerBound.y || this.upperBound.y < t.y); +}; +t.prototype.TestOverlap = function(t) { +var e = t.lowerBound.x - this.upperBound.x, i = t.lowerBound.y - this.upperBound.y, n = this.lowerBound.x - t.upperBound.x, r = this.lowerBound.y - t.upperBound.y; +return !(e > 0 || i > 0) && !(n > 0 || r > 0); +}; +return t; +})(); +function Et(t, e) { +var i = e.lowerBound.x - t.upperBound.x, n = e.lowerBound.y - t.upperBound.y, r = t.lowerBound.x - e.upperBound.x, s = t.lowerBound.y - e.upperBound.y; +return !(i > 0 || n > 0) && !(r > 0 || s > 0); +} +function Mt(e, i, n, r, s) { +var o = 0, a = i[0], c = i[1], l = P.DotVV(n, a.v) - r, h = P.DotVV(n, c.v) - r; +l <= 0 && e[o++].Copy(a); +h <= 0 && e[o++].Copy(c); +if (l * h < 0) { +var u = l / (l - h), _ = e[o].v; +_.x = a.v.x + u * (c.v.x - a.v.x); +_.y = a.v.y + u * (c.v.y - a.v.y); +var f = e[o].id; +f.cf.indexA = s; +f.cf.indexB = a.id.cf.indexB; +f.cf.typeA = t.b2ContactFeatureType.e_vertex; +f.cf.typeB = t.b2ContactFeatureType.e_face; +++o; +} +return o; +} +var Bt = new J(), Dt = new Y(), It = new Z(); +function Pt(t, e, i, r, s, o) { +var a = Bt.Reset(); +a.proxyA.SetShape(t, e); +a.proxyB.SetShape(i, r); +a.transformA.Copy(s); +a.transformB.Copy(o); +a.useRadii = !0; +var c = Dt.Reset(); +c.count = 0; +var l = It.Reset(); +lt(l, c, a); +return l.distance < 10 * n; +} +function Rt(t) { +if (null === t) throw new Error(); +return t; +} +var Lt = (function() { +function t(t) { +void 0 === t && (t = 0); +this.m_id = 0; +this.aabb = new Tt(); +this.parent = null; +this.child1 = null; +this.child2 = null; +this.height = 0; +this.m_id = t; +} +t.prototype.IsLeaf = function() { +return null === this.child1; +}; +return t; +})(), Ft = (function() { +function t() { +this.m_root = null; +this.m_freeList = null; +this.m_path = 0; +this.m_insertionCount = 0; +this.m_stack = new W(256); +} +t.prototype.Query = function(t, e) { +if (null !== this.m_root) { +var i = this.m_stack.Reset(); +i.Push(this.m_root); +for (;i.GetCount() > 0; ) { +var n = i.Pop(); +if (n.aabb.TestOverlap(t)) if (n.IsLeaf()) { +if (!e(n)) return; +} else { +i.Push(Rt(n.child1)); +i.Push(Rt(n.child2)); +} +} +} +}; +t.prototype.QueryPoint = function(t, e) { +if (null !== this.m_root) { +var i = this.m_stack.Reset(); +i.Push(this.m_root); +for (;i.GetCount() > 0; ) { +var n = i.Pop(); +if (n.aabb.TestContain(t)) if (n.IsLeaf()) { +if (!e(n)) return; +} else { +i.Push(Rt(n.child1)); +i.Push(Rt(n.child2)); +} +} +} +}; +t.prototype.RayCast = function(e, i) { +if (null !== this.m_root) { +var n = e.p1, r = e.p2, s = P.SubVV(r, n, t.s_r); +s.Normalize(); +var o = P.CrossOneV(s, t.s_v), a = P.AbsV(o, t.s_abs_v), c = e.maxFraction, l = t.s_segmentAABB, h = n.x + c * (r.x - n.x), u = n.y + c * (r.y - n.y); +l.lowerBound.x = g(n.x, h); +l.lowerBound.y = g(n.y, u); +l.upperBound.x = x(n.x, h); +l.upperBound.y = x(n.y, u); +var _ = this.m_stack.Reset(); +_.Push(this.m_root); +for (;_.GetCount() > 0; ) { +var f = _.Pop(); +if (Et(f.aabb, l)) { +var d = f.aabb.GetCenter(), m = f.aabb.GetExtents(); +if (!(y(P.DotVV(o, P.SubVV(n, d, P.s_t0))) - P.DotVV(a, m) > 0)) if (f.IsLeaf()) { +var p = t.s_subInput; +p.p1.Copy(e.p1); +p.p2.Copy(e.p2); +p.maxFraction = c; +var v = i(p, f); +if (0 === v) return; +if (v > 0) { +c = v; +h = n.x + c * (r.x - n.x); +u = n.y + c * (r.y - n.y); +l.lowerBound.x = g(n.x, h); +l.lowerBound.y = g(n.y, u); +l.upperBound.x = x(n.x, h); +l.upperBound.y = x(n.y, u); +} +} else { +_.Push(Rt(f.child1)); +_.Push(Rt(f.child2)); +} +} +} +} +}; +t.prototype.AllocateNode = function() { +if (this.m_freeList) { +var e = this.m_freeList; +this.m_freeList = e.parent; +e.parent = null; +e.child1 = null; +e.child2 = null; +e.height = 0; +delete e.userData; +return e; +} +return new Lt(t.s_node_id++); +}; +t.prototype.FreeNode = function(t) { +t.parent = this.m_freeList; +t.child1 = null; +t.child2 = null; +t.height = -1; +delete t.userData; +this.m_freeList = t; +}; +t.prototype.CreateProxy = function(t, e) { +var i = this.AllocateNode(); +i.aabb.lowerBound.x = t.lowerBound.x - .1; +i.aabb.lowerBound.y = t.lowerBound.y - .1; +i.aabb.upperBound.x = t.upperBound.x + .1; +i.aabb.upperBound.y = t.upperBound.y + .1; +i.userData = e; +i.height = 0; +this.InsertLeaf(i); +return i; +}; +t.prototype.DestroyProxy = function(t) { +this.RemoveLeaf(t); +this.FreeNode(t); +}; +t.prototype.MoveProxy = function(t, e, i) { +if (t.aabb.Contains(e)) return !1; +this.RemoveLeaf(t); +var n = .1 + 2 * (i.x > 0 ? i.x : -i.x), r = .1 + 2 * (i.y > 0 ? i.y : -i.y); +t.aabb.lowerBound.x = e.lowerBound.x - n; +t.aabb.lowerBound.y = e.lowerBound.y - r; +t.aabb.upperBound.x = e.upperBound.x + n; +t.aabb.upperBound.y = e.upperBound.y + r; +this.InsertLeaf(t); +return !0; +}; +t.prototype.InsertLeaf = function(e) { +++this.m_insertionCount; +if (null !== this.m_root) { +for (var i = e.aabb, n = this.m_root; !n.IsLeaf(); ) { +var r = Rt(n.child1), s = Rt(n.child2), o = n.aabb.GetPerimeter(), a = t.s_combinedAABB; +a.Combine2(n.aabb, i); +var c = a.GetPerimeter(), l = 2 * c, h = 2 * (c - o), u = void 0, _ = t.s_aabb, f = void 0; +if (r.IsLeaf()) { +_.Combine2(i, r.aabb); +u = _.GetPerimeter() + h; +} else { +_.Combine2(i, r.aabb); +f = r.aabb.GetPerimeter(); +u = _.GetPerimeter() - f + h; +} +var d = void 0; +if (s.IsLeaf()) { +_.Combine2(i, s.aabb); +d = _.GetPerimeter() + h; +} else { +_.Combine2(i, s.aabb); +f = s.aabb.GetPerimeter(); +d = _.GetPerimeter() - f + h; +} +if (l < u && l < d) break; +n = u < d ? r : s; +} +var m = n, p = m.parent, v = this.AllocateNode(); +v.parent = p; +delete v.userData; +v.aabb.Combine2(i, m.aabb); +v.height = m.height + 1; +if (p) { +p.child1 === m ? p.child1 = v : p.child2 = v; +v.child1 = m; +v.child2 = e; +m.parent = v; +e.parent = v; +} else { +v.child1 = m; +v.child2 = e; +m.parent = v; +e.parent = v; +this.m_root = v; +} +for (var y = e.parent; null !== y; ) { +r = Rt((y = this.Balance(y)).child1), s = Rt(y.child2); +y.height = 1 + x(r.height, s.height); +y.aabb.Combine2(r.aabb, s.aabb); +y = y.parent; +} +} else { +this.m_root = e; +this.m_root.parent = null; +} +}; +t.prototype.RemoveLeaf = function(t) { +if (t !== this.m_root) { +var e, i = Rt(t.parent), n = i && i.parent; +e = i.child1 === t ? Rt(i.child2) : Rt(i.child1); +if (n) { +n.child1 === i ? n.child1 = e : n.child2 = e; +e.parent = n; +this.FreeNode(i); +for (var r = n; r; ) { +var s = Rt((r = this.Balance(r)).child1), o = Rt(r.child2); +r.aabb.Combine2(s.aabb, o.aabb); +r.height = 1 + x(s.height, o.height); +r = r.parent; +} +} else { +this.m_root = e; +e.parent = null; +this.FreeNode(i); +} +} else this.m_root = null; +}; +t.prototype.Balance = function(t) { +if (t.IsLeaf() || t.height < 2) return t; +var e = Rt(t.child1), i = Rt(t.child2), n = i.height - e.height; +if (n > 1) { +var r = Rt(i.child1), s = Rt(i.child2); +i.child1 = t; +i.parent = t.parent; +t.parent = i; +null !== i.parent ? i.parent.child1 === t ? i.parent.child1 = i : i.parent.child2 = i : this.m_root = i; +if (r.height > s.height) { +i.child2 = r; +t.child2 = s; +s.parent = t; +t.aabb.Combine2(e.aabb, s.aabb); +i.aabb.Combine2(t.aabb, r.aabb); +t.height = 1 + x(e.height, s.height); +i.height = 1 + x(t.height, r.height); +} else { +i.child2 = s; +t.child2 = r; +r.parent = t; +t.aabb.Combine2(e.aabb, r.aabb); +i.aabb.Combine2(t.aabb, s.aabb); +t.height = 1 + x(e.height, r.height); +i.height = 1 + x(t.height, s.height); +} +return i; +} +if (n < -1) { +var o = Rt(e.child1), a = Rt(e.child2); +e.child1 = t; +e.parent = t.parent; +t.parent = e; +null !== e.parent ? e.parent.child1 === t ? e.parent.child1 = e : e.parent.child2 = e : this.m_root = e; +if (o.height > a.height) { +e.child2 = o; +t.child1 = a; +a.parent = t; +t.aabb.Combine2(i.aabb, a.aabb); +e.aabb.Combine2(t.aabb, o.aabb); +t.height = 1 + x(i.height, a.height); +e.height = 1 + x(t.height, o.height); +} else { +e.child2 = a; +t.child1 = o; +o.parent = t; +t.aabb.Combine2(i.aabb, o.aabb); +e.aabb.Combine2(t.aabb, a.aabb); +t.height = 1 + x(i.height, o.height); +e.height = 1 + x(t.height, a.height); +} +return e; +} +return t; +}; +t.prototype.GetHeight = function() { +return null === this.m_root ? 0 : this.m_root.height; +}; +t.GetAreaNode = function(e) { +if (null === e) return 0; +if (e.IsLeaf()) return 0; +var i = e.aabb.GetPerimeter(); +i += t.GetAreaNode(e.child1); +return i += t.GetAreaNode(e.child2); +}; +t.prototype.GetAreaRatio = function() { +if (null === this.m_root) return 0; +var e = this.m_root.aabb.GetPerimeter(); +return t.GetAreaNode(this.m_root) / e; +}; +t.prototype.ComputeHeightNode = function(t) { +if (!t || t.IsLeaf()) return 0; +var e = this.ComputeHeightNode(t.child1), i = this.ComputeHeightNode(t.child2); +return 1 + x(e, i); +}; +t.prototype.ComputeHeight = function() { +return this.ComputeHeightNode(this.m_root); +}; +t.prototype.ValidateStructure = function(t) { +if (null !== t) { +this.m_root; +var e = t; +if (!e.IsLeaf()) { +var i = Rt(e.child1), n = Rt(e.child2); +this.ValidateStructure(i); +this.ValidateStructure(n); +} +} +}; +t.prototype.ValidateMetrics = function(e) { +if (null !== e) { +var i = e; +if (!i.IsLeaf()) { +var n = Rt(i.child1), r = Rt(i.child2); +t.s_aabb.Combine2(n.aabb, r.aabb); +this.ValidateMetrics(n); +this.ValidateMetrics(r); +} +} +}; +t.prototype.Validate = function() {}; +t.GetMaxBalanceNode = function(t, e) { +if (null === t) return e; +if (t.height <= 1) return e; +var i = Rt(t.child1), n = Rt(t.child2), r = y(n.height - i.height); +return x(e, r); +}; +t.prototype.GetMaxBalance = function() { +return t.GetMaxBalanceNode(this.m_root, 0); +}; +t.prototype.RebuildBottomUp = function() { +this.Validate(); +}; +t.ShiftOriginNode = function(e, i) { +if (null !== e && !(e.height <= 1)) { +var n = e.child1, r = e.child2; +t.ShiftOriginNode(n, i); +t.ShiftOriginNode(r, i); +e.aabb.lowerBound.SelfSub(i); +e.aabb.upperBound.SelfSub(i); +} +}; +t.prototype.ShiftOrigin = function(e) { +t.ShiftOriginNode(this.m_root, e); +}; +t.s_r = new P(); +t.s_v = new P(); +t.s_abs_v = new P(); +t.s_segmentAABB = new Tt(); +t.s_subInput = new St(); +t.s_combinedAABB = new Tt(); +t.s_aabb = new Tt(); +t.s_node_id = 0; +return t; +})(), Ot = (function() { +return function(t, e) { +this.proxyA = t; +this.proxyB = e; +}; +})(), Vt = (function() { +function t() { +this.m_tree = new Ft(); +this.m_proxyCount = 0; +this.m_moveCount = 0; +this.m_moveBuffer = []; +this.m_pairCount = 0; +this.m_pairBuffer = []; +} +t.prototype.CreateProxy = function(t, e) { +var i = this.m_tree.CreateProxy(t, e); +++this.m_proxyCount; +this.BufferMove(i); +return i; +}; +t.prototype.DestroyProxy = function(t) { +this.UnBufferMove(t); +--this.m_proxyCount; +this.m_tree.DestroyProxy(t); +}; +t.prototype.MoveProxy = function(t, e, i) { +this.m_tree.MoveProxy(t, e, i) && this.BufferMove(t); +}; +t.prototype.TouchProxy = function(t) { +this.BufferMove(t); +}; +t.prototype.GetProxyCount = function() { +return this.m_proxyCount; +}; +t.prototype.UpdatePairs = function(t) { +var e = this; +this.m_pairCount = 0; +for (var i = function(t) { +var i = n.m_moveBuffer[t]; +if (null === i) return "continue"; +var r = i.aabb; +n.m_tree.Query(r, (function(t) { +if (t.m_id === i.m_id) return !0; +var n, r; +if (t.m_id < i.m_id) { +n = t; +r = i; +} else { +n = i; +r = t; +} +if (e.m_pairCount === e.m_pairBuffer.length) e.m_pairBuffer[e.m_pairCount] = new Ot(n, r); else { +var s = e.m_pairBuffer[e.m_pairCount]; +s.proxyA = n; +s.proxyB = r; +} +++e.m_pairCount; +return !0; +})); +}, n = this, r = 0; r < this.m_moveCount; ++r) i(r); +this.m_moveCount = 0; +this.m_pairBuffer.length = this.m_pairCount; +this.m_pairBuffer.sort(Nt); +for (var s = 0; s < this.m_pairCount; ) { +var o = this.m_pairBuffer[s], a = o.proxyA.userData, c = o.proxyB.userData; +a && c && t(a, c); +++s; +for (;s < this.m_pairCount; ) { +var l = this.m_pairBuffer[s]; +if (l.proxyA.m_id !== o.proxyA.m_id || l.proxyB.m_id !== o.proxyB.m_id) break; +++s; +} +} +}; +t.prototype.Query = function(t, e) { +this.m_tree.Query(t, e); +}; +t.prototype.QueryPoint = function(t, e) { +this.m_tree.QueryPoint(t, e); +}; +t.prototype.RayCast = function(t, e) { +this.m_tree.RayCast(t, e); +}; +t.prototype.GetTreeHeight = function() { +return this.m_tree.GetHeight(); +}; +t.prototype.GetTreeBalance = function() { +return this.m_tree.GetMaxBalance(); +}; +t.prototype.GetTreeQuality = function() { +return this.m_tree.GetAreaRatio(); +}; +t.prototype.ShiftOrigin = function(t) { +this.m_tree.ShiftOrigin(t); +}; +t.prototype.BufferMove = function(t) { +this.m_moveBuffer[this.m_moveCount] = t; +++this.m_moveCount; +}; +t.prototype.UnBufferMove = function(t) { +var e = this.m_moveBuffer.indexOf(t); +this.m_moveBuffer[e] = null; +}; +return t; +})(); +function Nt(t, e) { +return t.proxyA.m_id === e.proxyA.m_id ? t.proxyB.m_id - e.proxyB.m_id : t.proxyA.m_id - e.proxyA.m_id; +} +t.b2_toiTime = 0; +t.b2_toiMaxTime = 0; +t.b2_toiCalls = 0; +t.b2_toiIters = 0; +t.b2_toiMaxIters = 0; +t.b2_toiRootIters = 0; +t.b2_toiMaxRootIters = 0; +var kt = new N(), zt = new N(), Gt = new P(), Ut = new P(), jt = new P(), Wt = new P(), Ht = new P(), qt = (function() { +return function() { +this.proxyA = new X(); +this.proxyB = new X(); +this.sweepA = new k(); +this.sweepB = new k(); +this.tMax = 0; +}; +})(); +(function(t) { +t[t.e_unknown = 0] = "e_unknown"; +t[t.e_failed = 1] = "e_failed"; +t[t.e_overlapped = 2] = "e_overlapped"; +t[t.e_touching = 3] = "e_touching"; +t[t.e_separated = 4] = "e_separated"; +})(t.b2TOIOutputState || (t.b2TOIOutputState = {})); +var Xt = (function() { +return function() { +this.state = t.b2TOIOutputState.e_unknown; +this.t = 0; +}; +})(); +(function(t) { +t[t.e_unknown = -1] = "e_unknown"; +t[t.e_points = 0] = "e_points"; +t[t.e_faceA = 1] = "e_faceA"; +t[t.e_faceB = 2] = "e_faceB"; +})(t.b2SeparationFunctionType || (t.b2SeparationFunctionType = {})); +var Yt = (function() { +function e() { +this.m_sweepA = new k(); +this.m_sweepB = new k(); +this.m_type = t.b2SeparationFunctionType.e_unknown; +this.m_localPoint = new P(); +this.m_axis = new P(); +} +e.prototype.Initialize = function(e, i, n, r, s, o) { +this.m_proxyA = i; +this.m_proxyB = r; +var a = e.count; +this.m_sweepA.Copy(n); +this.m_sweepB.Copy(s); +var c = kt, l = zt; +this.m_sweepA.GetTransform(c, o); +this.m_sweepB.GetTransform(l, o); +if (1 === a) { +this.m_type = t.b2SeparationFunctionType.e_points; +var h = this.m_proxyA.GetVertex(e.indexA[0]), u = this.m_proxyB.GetVertex(e.indexB[0]), _ = N.MulXV(c, h, Gt), f = N.MulXV(l, u, Ut); +P.SubVV(f, _, this.m_axis); +var d = this.m_axis.Normalize(); +this.m_localPoint.SetZero(); +return d; +} +if (e.indexA[0] === e.indexA[1]) { +this.m_type = t.b2SeparationFunctionType.e_faceB; +var m = this.m_proxyB.GetVertex(e.indexB[0]), p = this.m_proxyB.GetVertex(e.indexB[1]); +P.CrossVOne(P.SubVV(p, m, P.s_t0), this.m_axis).SelfNormalize(); +var v = V.MulRV(l.q, this.m_axis, jt); +P.MidVV(m, p, this.m_localPoint); +f = N.MulXV(l, this.m_localPoint, Ut), h = this.m_proxyA.GetVertex(e.indexA[0]), +_ = N.MulXV(c, h, Gt); +if ((d = P.DotVV(P.SubVV(_, f, P.s_t0), v)) < 0) { +this.m_axis.SelfNeg(); +d = -d; +} +return d; +} +this.m_type = t.b2SeparationFunctionType.e_faceA; +var y = this.m_proxyA.GetVertex(e.indexA[0]), g = this.m_proxyA.GetVertex(e.indexA[1]); +P.CrossVOne(P.SubVV(g, y, P.s_t0), this.m_axis).SelfNormalize(); +v = V.MulRV(c.q, this.m_axis, jt); +P.MidVV(y, g, this.m_localPoint); +_ = N.MulXV(c, this.m_localPoint, Gt), u = this.m_proxyB.GetVertex(e.indexB[0]), +f = N.MulXV(l, u, Ut); +if ((d = P.DotVV(P.SubVV(f, _, P.s_t0), v)) < 0) { +this.m_axis.SelfNeg(); +d = -d; +} +return d; +}; +e.prototype.FindMinSeparation = function(e, i, n) { +var r = kt, s = zt; +this.m_sweepA.GetTransform(r, n); +this.m_sweepB.GetTransform(s, n); +switch (this.m_type) { +case t.b2SeparationFunctionType.e_points: +var o = V.MulTRV(r.q, this.m_axis, Wt), a = V.MulTRV(s.q, P.NegV(this.m_axis, P.s_t0), Ht); +e[0] = this.m_proxyA.GetSupport(o); +i[0] = this.m_proxyB.GetSupport(a); +var c = this.m_proxyA.GetVertex(e[0]), l = this.m_proxyB.GetVertex(i[0]), h = N.MulXV(r, c, Gt), u = N.MulXV(s, l, Ut); +return P.DotVV(P.SubVV(u, h, P.s_t0), this.m_axis); + +case t.b2SeparationFunctionType.e_faceA: +var _ = V.MulRV(r.q, this.m_axis, jt); +h = N.MulXV(r, this.m_localPoint, Gt), a = V.MulTRV(s.q, P.NegV(_, P.s_t0), Ht); +e[0] = -1; +i[0] = this.m_proxyB.GetSupport(a); +l = this.m_proxyB.GetVertex(i[0]), u = N.MulXV(s, l, Ut); +return P.DotVV(P.SubVV(u, h, P.s_t0), _); + +case t.b2SeparationFunctionType.e_faceB: +_ = V.MulRV(s.q, this.m_axis, jt), u = N.MulXV(s, this.m_localPoint, Ut), o = V.MulTRV(r.q, P.NegV(_, P.s_t0), Wt); +i[0] = -1; +e[0] = this.m_proxyA.GetSupport(o); +c = this.m_proxyA.GetVertex(e[0]), h = N.MulXV(r, c, Gt); +return P.DotVV(P.SubVV(h, u, P.s_t0), _); + +default: +e[0] = -1; +i[0] = -1; +return 0; +} +}; +e.prototype.Evaluate = function(e, i, n) { +var r = kt, s = zt; +this.m_sweepA.GetTransform(r, n); +this.m_sweepB.GetTransform(s, n); +switch (this.m_type) { +case t.b2SeparationFunctionType.e_points: +var o = this.m_proxyA.GetVertex(e), a = this.m_proxyB.GetVertex(i), c = N.MulXV(r, o, Gt), l = N.MulXV(s, a, Ut); +return P.DotVV(P.SubVV(l, c, P.s_t0), this.m_axis); + +case t.b2SeparationFunctionType.e_faceA: +var h = V.MulRV(r.q, this.m_axis, jt); +c = N.MulXV(r, this.m_localPoint, Gt), a = this.m_proxyB.GetVertex(i), l = N.MulXV(s, a, Ut); +return P.DotVV(P.SubVV(l, c, P.s_t0), h); + +case t.b2SeparationFunctionType.e_faceB: +h = V.MulRV(s.q, this.m_axis, jt), l = N.MulXV(s, this.m_localPoint, Ut), o = this.m_proxyA.GetVertex(e), +c = N.MulXV(r, o, Gt); +return P.DotVV(P.SubVV(c, l, P.s_t0), h); + +default: +return 0; +} +}; +return e; +})(), Jt = new U(), Zt = new Y(), Kt = new J(), Qt = new Z(), $t = new Yt(), te = [ 0 ], ee = [ 0 ], ie = new k(), ne = new k(); +function re(e, i) { +var n = Jt.Reset(); +++t.b2_toiCalls; +e.state = t.b2TOIOutputState.e_unknown; +e.t = i.tMax; +var r = i.proxyA, s = i.proxyB, o = ie.Copy(i.sweepA), l = ne.Copy(i.sweepB); +o.Normalize(); +l.Normalize(); +var h = i.tMax, u = r.m_radius + s.m_radius, _ = x(c, u - 3 * c), f = .25 * c, d = 0, m = 0, p = Zt; +p.count = 0; +var v = Kt; +v.proxyA.Copy(i.proxyA); +v.proxyB.Copy(i.proxyB); +v.useRadii = !1; +for (;;) { +var g = kt, C = zt; +o.GetTransform(g, d); +l.GetTransform(C, d); +v.transformA.Copy(g); +v.transformB.Copy(C); +var b = Qt; +lt(b, p, v); +if (b.distance <= 0) { +e.state = t.b2TOIOutputState.e_overlapped; +e.t = 0; +break; +} +if (b.distance < _ + f) { +e.state = t.b2TOIOutputState.e_touching; +e.t = d; +break; +} +var A = $t; +A.Initialize(p, r, o, s, l, d); +for (var S = !1, w = h, T = 0; ;) { +var E = te, M = ee, B = A.FindMinSeparation(E, M, w); +if (B > _ + f) { +e.state = t.b2TOIOutputState.e_separated; +e.t = h; +S = !0; +break; +} +if (B > _ - f) { +d = w; +break; +} +var D = A.Evaluate(E[0], M[0], d); +if (D < _ - f) { +e.state = t.b2TOIOutputState.e_failed; +e.t = d; +S = !0; +break; +} +if (D <= _ + f) { +e.state = t.b2TOIOutputState.e_touching; +e.t = d; +S = !0; +break; +} +for (var I = 0, P = d, R = w; ;) { +var L = 0; +L = 1 & I ? P + (_ - D) * (R - P) / (B - D) : .5 * (P + R); +++I; +++t.b2_toiRootIters; +var F = A.Evaluate(E[0], M[0], L); +if (y(F - _) < f) { +w = L; +break; +} +if (F > _) { +P = L; +D = F; +} else { +R = L; +B = F; +} +if (50 === I) break; +} +t.b2_toiMaxRootIters = x(t.b2_toiMaxRootIters, I); +if (++T === a) break; +} +++m; +++t.b2_toiIters; +if (S) break; +if (20 === m) { +e.state = t.b2TOIOutputState.e_failed; +e.t = d; +break; +} +} +t.b2_toiMaxIters = x(t.b2_toiMaxIters, m); +var O = n.GetMilliseconds(); +t.b2_toiMaxTime = x(t.b2_toiMaxTime, O); +t.b2_toiTime += O; +} +var se = new P(), oe = new P(); +function ae(e, i, n, r, s) { +e.pointCount = 0; +var o = N.MulXV(n, i.m_p, se), a = N.MulXV(s, r.m_p, oe), c = P.DistanceSquaredVV(o, a), l = i.m_radius + r.m_radius; +if (!(c > l * l)) { +e.type = t.b2ManifoldType.e_circles; +e.localPoint.Copy(i.m_p); +e.localNormal.SetZero(); +e.pointCount = 1; +e.points[0].localPoint.Copy(r.m_p); +e.points[0].id.key = 0; +} +} +var ce = new P(), le = new P(), he = new P(); +function ue(e, r, s, o, a) { +e.pointCount = 0; +for (var c = N.MulXV(a, o.m_p, ce), l = N.MulTXV(s, c, le), h = 0, u = -i, _ = r.m_radius + o.m_radius, f = r.m_count, d = r.m_vertices, m = r.m_normals, p = 0; p < f; ++p) { +var v = P.DotVV(m[p], P.SubVV(l, d[p], P.s_t0)); +if (v > _) return; +if (v > u) { +u = v; +h = p; +} +} +var y = h, g = (y + 1) % f, x = d[y], C = d[g]; +if (u < n) { +e.pointCount = 1; +e.type = t.b2ManifoldType.e_faceA; +e.localNormal.Copy(m[h]); +P.MidVV(x, C, e.localPoint); +e.points[0].localPoint.Copy(o.m_p); +e.points[0].id.key = 0; +} else { +var b = P.DotVV(P.SubVV(l, x, P.s_t0), P.SubVV(C, x, P.s_t1)), A = P.DotVV(P.SubVV(l, C, P.s_t0), P.SubVV(x, C, P.s_t1)); +if (b <= 0) { +if (P.DistanceSquaredVV(l, x) > _ * _) return; +e.pointCount = 1; +e.type = t.b2ManifoldType.e_faceA; +P.SubVV(l, x, e.localNormal).SelfNormalize(); +e.localPoint.Copy(x); +e.points[0].localPoint.Copy(o.m_p); +e.points[0].id.key = 0; +} else if (A <= 0) { +if (P.DistanceSquaredVV(l, C) > _ * _) return; +e.pointCount = 1; +e.type = t.b2ManifoldType.e_faceA; +P.SubVV(l, C, e.localNormal).SelfNormalize(); +e.localPoint.Copy(C); +e.points[0].localPoint.Copy(o.m_p); +e.points[0].id.key = 0; +} else { +var S = P.MidVV(x, C, he); +if (P.DotVV(P.SubVV(l, S, P.s_t1), m[y]) > _) return; +e.pointCount = 1; +e.type = t.b2ManifoldType.e_faceA; +e.localNormal.Copy(m[y]).SelfNormalize(); +e.localPoint.Copy(S); +e.points[0].localPoint.Copy(o.m_p); +e.points[0].id.key = 0; +} +} +} +var _e = new P(), fe = new P(), de = new P(), me = new P(); +function pe(t, e, n, r, s) { +for (var o = t.m_vertices, a = t.m_normals, c = r.m_count, l = r.m_vertices, h = V.MulRV(e.q, a[n], _e), u = V.MulTRV(s.q, h, fe), _ = 0, f = i, d = 0; d < c; ++d) { +var m = P.DotVV(l[d], u); +if (m < f) { +f = m; +_ = d; +} +} +var p = N.MulXV(e, o[n], de), v = N.MulXV(s, l[_], me); +return P.DotVV(P.SubVV(v, p, P.s_t0), h); +} +var ve = new P(), ye = new P(); +function ge(t, e, n, r, s) { +for (var o = e.m_count, a = e.m_normals, c = P.SubVV(N.MulXV(s, r.m_centroid, P.s_t0), N.MulXV(n, e.m_centroid, P.s_t1), ve), l = V.MulTRV(n.q, c, ye), h = 0, u = -i, _ = 0; _ < o; ++_) { +var f = P.DotVV(a[_], l); +if (f > u) { +u = f; +h = _; +} +} +var d = pe(e, n, h, r, s), m = (h + o - 1) % o, p = pe(e, n, m, r, s), v = (h + 1) % o, y = pe(e, n, v, r, s), g = 0, x = 0, C = 0; +if (p > d && p > y) { +C = -1; +g = m; +x = p; +} else { +if (!(y > d)) { +t[0] = h; +return d; +} +C = 1; +g = v; +x = y; +} +for (;(d = pe(e, n, h = -1 === C ? (g + o - 1) % o : (g + 1) % o, r, s)) > x; ) { +g = h; +x = d; +} +t[0] = g; +return x; +} +var xe = new P(); +function Ce(e, n, r, s, o, a) { +for (var c = n.m_normals, l = o.m_count, h = o.m_vertices, u = o.m_normals, _ = V.MulTRV(a.q, V.MulRV(r.q, c[s], P.s_t0), xe), f = 0, d = i, m = 0; m < l; ++m) { +var p = P.DotVV(_, u[m]); +if (p < d) { +d = p; +f = m; +} +} +var v = f, y = (v + 1) % l, g = e[0]; +N.MulXV(a, h[v], g.v); +var x = g.id.cf; +x.indexA = s; +x.indexB = v; +x.typeA = t.b2ContactFeatureType.e_face; +x.typeB = t.b2ContactFeatureType.e_vertex; +var C = e[1]; +N.MulXV(a, h[y], C.v); +var b = C.id.cf; +b.indexA = s; +b.indexB = y; +b.typeA = t.b2ContactFeatureType.e_face; +b.typeB = t.b2ContactFeatureType.e_vertex; +} +var be = At.MakeArray(2), Ae = At.MakeArray(2), Se = At.MakeArray(2), we = [ 0 ], Te = [ 0 ], Ee = new P(), Me = new P(), Be = new P(), De = new P(), Ie = new P(), Pe = new P(), Re = new P(), Le = new P(); +function Fe(e, i, n, r, s) { +e.pointCount = 0; +var a = i.m_radius + r.m_radius, c = we; +c[0] = 0; +var l = ge(c, i, n, r, s); +if (!(l > a)) { +var h = Te; +h[0] = 0; +var u = ge(h, r, s, i, n); +if (!(u > a)) { +var _, f, d, m, p = 0, v = 0; +if (u > .98 * l + .001) { +_ = r; +f = i; +d = s; +m = n; +p = h[0]; +e.type = t.b2ManifoldType.e_faceB; +v = 1; +} else { +_ = i; +f = r; +d = n; +m = s; +p = c[0]; +e.type = t.b2ManifoldType.e_faceA; +v = 0; +} +var y = be; +Ce(y, _, d, p, f, m); +var g = _.m_count, x = _.m_vertices, C = p, b = (p + 1) % g, A = x[C], S = x[b], w = P.SubVV(S, A, Ee); +w.Normalize(); +var T = P.CrossVOne(w, Me), E = P.MidVV(A, S, Be), M = V.MulRV(d.q, w, Ie), B = P.CrossVOne(M, De), D = N.MulXV(d, A, Re), I = N.MulXV(d, S, Le), R = P.DotVV(B, D), L = -P.DotVV(M, D) + a, F = P.DotVV(M, I) + a, O = Ae, k = Se; +if (!(Mt(O, y, P.NegV(M, Pe), L, C) < 2 || Mt(k, O, M, F, b) < 2)) { +e.localNormal.Copy(T); +e.localPoint.Copy(E); +for (var z = 0, G = 0; G < o; ++G) { +var U = k[G]; +if (P.DotVV(B, U.v) - R <= a) { +var j = e.points[z]; +N.MulTXV(m, U.v, j.localPoint); +j.id.Copy(U.id); +if (v) { +var W = j.id.cf; +j.id.cf.indexA = W.indexB; +j.id.cf.indexB = W.indexA; +j.id.cf.typeA = W.typeB; +j.id.cf.typeB = W.typeA; +} +++z; +} +} +e.pointCount = z; +} +} +} +} +var Oe = new P(), Ve = new P(), Ne = new P(), ke = new P(), ze = new P(), Ge = new P(), Ue = new P(), je = new gt(); +function We(e, i, n, r, s) { +e.pointCount = 0; +var o = N.MulTXV(n, N.MulXV(s, r.m_p, P.s_t0), Oe), a = i.m_vertex1, c = i.m_vertex2, l = P.SubVV(c, a, Ve), h = P.DotVV(l, P.SubVV(c, o, P.s_t0)), u = P.DotVV(l, P.SubVV(o, a, P.s_t0)), _ = i.m_radius + r.m_radius, f = je; +f.cf.indexB = 0; +f.cf.typeB = t.b2ContactFeatureType.e_vertex; +if (u <= 0) { +var d = a, m = P.SubVV(o, d, Ne); +if (P.DotVV(m, m) > _ * _) return; +if (i.m_hasVertex0) { +var p = i.m_vertex0, v = a, y = P.SubVV(v, p, ke); +if (P.DotVV(y, P.SubVV(v, o, P.s_t0)) > 0) return; +} +f.cf.indexA = 0; +f.cf.typeA = t.b2ContactFeatureType.e_vertex; +e.pointCount = 1; +e.type = t.b2ManifoldType.e_circles; +e.localNormal.SetZero(); +e.localPoint.Copy(d); +e.points[0].id.Copy(f); +e.points[0].localPoint.Copy(r.m_p); +} else if (h <= 0) { +var g = c, x = P.SubVV(o, g, Ne); +if (P.DotVV(x, x) > _ * _) return; +if (i.m_hasVertex3) { +var C = i.m_vertex3, b = c, A = P.SubVV(C, b, ze); +if (P.DotVV(A, P.SubVV(o, b, P.s_t0)) > 0) return; +} +f.cf.indexA = 1; +f.cf.typeA = t.b2ContactFeatureType.e_vertex; +e.pointCount = 1; +e.type = t.b2ManifoldType.e_circles; +e.localNormal.SetZero(); +e.localPoint.Copy(g); +e.points[0].id.Copy(f); +e.points[0].localPoint.Copy(r.m_p); +} else { +var S = P.DotVV(l, l), w = Ge; +w.x = 1 / S * (h * a.x + u * c.x); +w.y = 1 / S * (h * a.y + u * c.y); +var T = P.SubVV(o, w, Ne); +if (!(P.DotVV(T, T) > _ * _)) { +var E = Ue.Set(-l.y, l.x); +P.DotVV(E, P.SubVV(o, a, P.s_t0)) < 0 && E.Set(-E.x, -E.y); +E.Normalize(); +f.cf.indexA = 0; +f.cf.typeA = t.b2ContactFeatureType.e_face; +e.pointCount = 1; +e.type = t.b2ManifoldType.e_faceA; +e.localNormal.Copy(E); +e.localPoint.Copy(a); +e.points[0].id.Copy(f); +e.points[0].localPoint.Copy(r.m_p); +} +} +} +var He = (function() { +return function() { +this.type = 0; +this.index = 0; +this.separation = 0; +}; +})(), qe = (function() { +return function() { +this.vertices = P.MakeArray(a); +this.normals = P.MakeArray(a); +this.count = 0; +}; +})(), Xe = (function() { +return function() { +this.i1 = 0; +this.i2 = 0; +this.v1 = new P(); +this.v2 = new P(); +this.normal = new P(); +this.sideNormal1 = new P(); +this.sideOffset1 = 0; +this.sideNormal2 = new P(); +this.sideOffset2 = 0; +}; +})(), Ye = new (function() { +function e() { +this.m_polygonB = new qe(); +this.m_xf = new N(); +this.m_centroidB = new P(); +this.m_v0 = new P(); +this.m_v1 = new P(); +this.m_v2 = new P(); +this.m_v3 = new P(); +this.m_normal0 = new P(); +this.m_normal1 = new P(); +this.m_normal2 = new P(); +this.m_normal = new P(); +this.m_type1 = 0; +this.m_type2 = 0; +this.m_lowerLimit = new P(); +this.m_upperLimit = new P(); +this.m_radius = 0; +this.m_front = !1; +} +e.prototype.Collide = function(i, n, r, s, a) { +N.MulTXX(r, a, this.m_xf); +N.MulXV(this.m_xf, s.m_centroid, this.m_centroidB); +this.m_v0.Copy(n.m_vertex0); +this.m_v1.Copy(n.m_vertex1); +this.m_v2.Copy(n.m_vertex2); +this.m_v3.Copy(n.m_vertex3); +var c = n.m_hasVertex0, l = n.m_hasVertex3, h = P.SubVV(this.m_v2, this.m_v1, e.s_edge1); +h.Normalize(); +this.m_normal1.Set(h.y, -h.x); +var u = P.DotVV(this.m_normal1, P.SubVV(this.m_centroidB, this.m_v1, P.s_t0)), _ = 0, f = 0, d = !1, m = !1; +if (c) { +var p = P.SubVV(this.m_v1, this.m_v0, e.s_edge0); +p.Normalize(); +this.m_normal0.Set(p.y, -p.x); +d = P.CrossVV(p, h) >= 0; +_ = P.DotVV(this.m_normal0, P.SubVV(this.m_centroidB, this.m_v0, P.s_t0)); +} +if (l) { +var v = P.SubVV(this.m_v3, this.m_v2, e.s_edge2); +v.Normalize(); +this.m_normal2.Set(v.y, -v.x); +m = P.CrossVV(h, v) > 0; +f = P.DotVV(this.m_normal2, P.SubVV(this.m_centroidB, this.m_v2, P.s_t0)); +} +if (c && l) if (d && m) { +this.m_front = _ >= 0 || u >= 0 || f >= 0; +if (this.m_front) { +this.m_normal.Copy(this.m_normal1); +this.m_lowerLimit.Copy(this.m_normal0); +this.m_upperLimit.Copy(this.m_normal2); +} else { +this.m_normal.Copy(this.m_normal1).SelfNeg(); +this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(); +this.m_upperLimit.Copy(this.m_normal1).SelfNeg(); +} +} else if (d) { +this.m_front = _ >= 0 || u >= 0 && f >= 0; +if (this.m_front) { +this.m_normal.Copy(this.m_normal1); +this.m_lowerLimit.Copy(this.m_normal0); +this.m_upperLimit.Copy(this.m_normal1); +} else { +this.m_normal.Copy(this.m_normal1).SelfNeg(); +this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(); +this.m_upperLimit.Copy(this.m_normal1).SelfNeg(); +} +} else if (m) { +this.m_front = f >= 0 || _ >= 0 && u >= 0; +if (this.m_front) { +this.m_normal.Copy(this.m_normal1); +this.m_lowerLimit.Copy(this.m_normal1); +this.m_upperLimit.Copy(this.m_normal2); +} else { +this.m_normal.Copy(this.m_normal1).SelfNeg(); +this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(); +this.m_upperLimit.Copy(this.m_normal0).SelfNeg(); +} +} else { +this.m_front = _ >= 0 && u >= 0 && f >= 0; +if (this.m_front) { +this.m_normal.Copy(this.m_normal1); +this.m_lowerLimit.Copy(this.m_normal1); +this.m_upperLimit.Copy(this.m_normal1); +} else { +this.m_normal.Copy(this.m_normal1).SelfNeg(); +this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(); +this.m_upperLimit.Copy(this.m_normal0).SelfNeg(); +} +} else if (c) if (d) { +this.m_front = _ >= 0 || u >= 0; +if (this.m_front) { +this.m_normal.Copy(this.m_normal1); +this.m_lowerLimit.Copy(this.m_normal0); +this.m_upperLimit.Copy(this.m_normal1).SelfNeg(); +} else { +this.m_normal.Copy(this.m_normal1).SelfNeg(); +this.m_lowerLimit.Copy(this.m_normal1); +this.m_upperLimit.Copy(this.m_normal1).SelfNeg(); +} +} else { +this.m_front = _ >= 0 && u >= 0; +if (this.m_front) { +this.m_normal.Copy(this.m_normal1); +this.m_lowerLimit.Copy(this.m_normal1); +this.m_upperLimit.Copy(this.m_normal1).SelfNeg(); +} else { +this.m_normal.Copy(this.m_normal1).SelfNeg(); +this.m_lowerLimit.Copy(this.m_normal1); +this.m_upperLimit.Copy(this.m_normal0).SelfNeg(); +} +} else if (l) if (m) { +this.m_front = u >= 0 || f >= 0; +if (this.m_front) { +this.m_normal.Copy(this.m_normal1); +this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(); +this.m_upperLimit.Copy(this.m_normal2); +} else { +this.m_normal.Copy(this.m_normal1).SelfNeg(); +this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(); +this.m_upperLimit.Copy(this.m_normal1); +} +} else { +this.m_front = u >= 0 && f >= 0; +if (this.m_front) { +this.m_normal.Copy(this.m_normal1); +this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(); +this.m_upperLimit.Copy(this.m_normal1); +} else { +this.m_normal.Copy(this.m_normal1).SelfNeg(); +this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(); +this.m_upperLimit.Copy(this.m_normal1); +} +} else { +this.m_front = u >= 0; +if (this.m_front) { +this.m_normal.Copy(this.m_normal1); +this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(); +this.m_upperLimit.Copy(this.m_normal1).SelfNeg(); +} else { +this.m_normal.Copy(this.m_normal1).SelfNeg(); +this.m_lowerLimit.Copy(this.m_normal1); +this.m_upperLimit.Copy(this.m_normal1); +} +} +this.m_polygonB.count = s.m_count; +for (var y = 0; y < s.m_count; ++y) { +N.MulXV(this.m_xf, s.m_vertices[y], this.m_polygonB.vertices[y]); +V.MulRV(this.m_xf.q, s.m_normals[y], this.m_polygonB.normals[y]); +} +this.m_radius = s.m_radius + n.m_radius; +i.pointCount = 0; +var g = this.ComputeEdgeSeparation(e.s_edgeAxis); +if (0 !== g.type && !(g.separation > this.m_radius)) { +var x = this.ComputePolygonSeparation(e.s_polygonAxis); +if (!(0 !== x.type && x.separation > this.m_radius)) { +var C; +C = 0 === x.type ? g : x.separation > .98 * g.separation + .001 ? x : g; +var b = e.s_ie, A = e.s_rf; +if (1 === C.type) { +i.type = t.b2ManifoldType.e_faceA; +var S = 0, w = P.DotVV(this.m_normal, this.m_polygonB.normals[0]); +for (y = 1; y < this.m_polygonB.count; ++y) { +var T = P.DotVV(this.m_normal, this.m_polygonB.normals[y]); +if (T < w) { +w = T; +S = y; +} +} +var E = S, M = (E + 1) % this.m_polygonB.count; +(B = b[0]).v.Copy(this.m_polygonB.vertices[E]); +B.id.cf.indexA = 0; +B.id.cf.indexB = E; +B.id.cf.typeA = t.b2ContactFeatureType.e_face; +B.id.cf.typeB = t.b2ContactFeatureType.e_vertex; +(D = b[1]).v.Copy(this.m_polygonB.vertices[M]); +D.id.cf.indexA = 0; +D.id.cf.indexB = M; +D.id.cf.typeA = t.b2ContactFeatureType.e_face; +D.id.cf.typeB = t.b2ContactFeatureType.e_vertex; +if (this.m_front) { +A.i1 = 0; +A.i2 = 1; +A.v1.Copy(this.m_v1); +A.v2.Copy(this.m_v2); +A.normal.Copy(this.m_normal1); +} else { +A.i1 = 1; +A.i2 = 0; +A.v1.Copy(this.m_v2); +A.v2.Copy(this.m_v1); +A.normal.Copy(this.m_normal1).SelfNeg(); +} +} else { +i.type = t.b2ManifoldType.e_faceB; +var B, D; +(B = b[0]).v.Copy(this.m_v1); +B.id.cf.indexA = 0; +B.id.cf.indexB = C.index; +B.id.cf.typeA = t.b2ContactFeatureType.e_vertex; +B.id.cf.typeB = t.b2ContactFeatureType.e_face; +(D = b[1]).v.Copy(this.m_v2); +D.id.cf.indexA = 0; +D.id.cf.indexB = C.index; +D.id.cf.typeA = t.b2ContactFeatureType.e_vertex; +D.id.cf.typeB = t.b2ContactFeatureType.e_face; +A.i1 = C.index; +A.i2 = (A.i1 + 1) % this.m_polygonB.count; +A.v1.Copy(this.m_polygonB.vertices[A.i1]); +A.v2.Copy(this.m_polygonB.vertices[A.i2]); +A.normal.Copy(this.m_polygonB.normals[A.i1]); +} +A.sideNormal1.Set(A.normal.y, -A.normal.x); +A.sideNormal2.Copy(A.sideNormal1).SelfNeg(); +A.sideOffset1 = P.DotVV(A.sideNormal1, A.v1); +A.sideOffset2 = P.DotVV(A.sideNormal2, A.v2); +var I = e.s_clipPoints1, R = e.s_clipPoints2; +if (!(Mt(I, b, A.sideNormal1, A.sideOffset1, A.i1) < o || Mt(R, I, A.sideNormal2, A.sideOffset2, A.i2) < o)) { +if (1 === C.type) { +i.localNormal.Copy(A.normal); +i.localPoint.Copy(A.v1); +} else { +i.localNormal.Copy(s.m_normals[A.i1]); +i.localPoint.Copy(s.m_vertices[A.i1]); +} +var L = 0; +for (y = 0; y < o; ++y) { +if (P.DotVV(A.normal, P.SubVV(R[y].v, A.v1, P.s_t0)) <= this.m_radius) { +var F = i.points[L]; +if (1 === C.type) { +N.MulTXV(this.m_xf, R[y].v, F.localPoint); +F.id = R[y].id; +} else { +F.localPoint.Copy(R[y].v); +F.id.cf.typeA = R[y].id.cf.typeB; +F.id.cf.typeB = R[y].id.cf.typeA; +F.id.cf.indexA = R[y].id.cf.indexB; +F.id.cf.indexB = R[y].id.cf.indexA; +} +++L; +} +} +i.pointCount = L; +} +} +} +}; +e.prototype.ComputeEdgeSeparation = function(t) { +var e = t; +e.type = 1; +e.index = this.m_front ? 0 : 1; +e.separation = i; +for (var n = 0; n < this.m_polygonB.count; ++n) { +var r = P.DotVV(this.m_normal, P.SubVV(this.m_polygonB.vertices[n], this.m_v1, P.s_t0)); +r < e.separation && (e.separation = r); +} +return e; +}; +e.prototype.ComputePolygonSeparation = function(t) { +var n = t; +n.type = 0; +n.index = -1; +n.separation = -i; +for (var r = e.s_perp.Set(-this.m_normal.y, this.m_normal.x), s = 0; s < this.m_polygonB.count; ++s) { +var o = P.NegV(this.m_polygonB.normals[s], e.s_n), a = P.DotVV(o, P.SubVV(this.m_polygonB.vertices[s], this.m_v1, P.s_t0)), c = P.DotVV(o, P.SubVV(this.m_polygonB.vertices[s], this.m_v2, P.s_t0)), h = g(a, c); +if (h > this.m_radius) { +n.type = 2; +n.index = s; +n.separation = h; +return n; +} +if (P.DotVV(o, r) >= 0) { +if (P.DotVV(P.SubVV(o, this.m_upperLimit, P.s_t0), this.m_normal) < -l) continue; +} else if (P.DotVV(P.SubVV(o, this.m_lowerLimit, P.s_t0), this.m_normal) < -l) continue; +if (h > n.separation) { +n.type = 2; +n.index = s; +n.separation = h; +} +} +return n; +}; +e.s_edge1 = new P(); +e.s_edge0 = new P(); +e.s_edge2 = new P(); +e.s_ie = At.MakeArray(2); +e.s_rf = new Xe(); +e.s_clipPoints1 = At.MakeArray(2); +e.s_clipPoints2 = At.MakeArray(2); +e.s_edgeAxis = new He(); +e.s_polygonAxis = new He(); +e.s_n = new P(); +e.s_perp = new P(); +return e; +}())(); +function Je(t, e, i, n, r) { +Ye.Collide(t, e, i, n, r); +} +var Ze = (function() { +return function() { +this.mass = 0; +this.center = new P(0, 0); +this.I = 0; +}; +})(); +(function(t) { +t[t.e_unknown = -1] = "e_unknown"; +t[t.e_circleShape = 0] = "e_circleShape"; +t[t.e_edgeShape = 1] = "e_edgeShape"; +t[t.e_polygonShape = 2] = "e_polygonShape"; +t[t.e_chainShape = 3] = "e_chainShape"; +t[t.e_shapeTypeCount = 4] = "e_shapeTypeCount"; +})(t.b2ShapeType || (t.b2ShapeType = {})); +var Ke = (function() { +function e(e, i) { +this.m_type = t.b2ShapeType.e_unknown; +this.m_radius = 0; +this.m_type = e; +this.m_radius = i; +} +e.prototype.Copy = function(t) { +this.m_radius = t.m_radius; +return this; +}; +e.prototype.GetType = function() { +return this.m_type; +}; +return e; +})(), Qe = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(t, e) { +t.__proto__ = e; +} || function(t, e) { +for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); +}; +function $e(t, e) { +Qe(t, e); +function i() { +this.constructor = t; +} +t.prototype = null === e ? Object.create(e) : (i.prototype = e.prototype, new i()); +} +var ti = (function(e) { +$e(i, e); +function i(i) { +void 0 === i && (i = 0); +var n = e.call(this, t.b2ShapeType.e_circleShape, i) || this; +n.m_p = new P(); +return n; +} +i.prototype.Set = function(t, e) { +void 0 === e && (e = this.m_radius); +this.m_p.Copy(t); +this.m_radius = e; +return this; +}; +i.prototype.Clone = function() { +return new i().Copy(this); +}; +i.prototype.Copy = function(t) { +e.prototype.Copy.call(this, t); +this.m_p.Copy(t.m_p); +return this; +}; +i.prototype.GetChildCount = function() { +return 1; +}; +i.prototype.TestPoint = function(t, e) { +var n = N.MulXV(t, this.m_p, i.TestPoint_s_center), r = P.SubVV(e, n, i.TestPoint_s_d); +return P.DotVV(r, r) <= A(this.m_radius); +}; +i.prototype.ComputeDistance = function(t, e, n, r) { +var s = N.MulXV(t, this.m_p, i.ComputeDistance_s_center); +P.SubVV(e, s, n); +return n.Normalize() - this.m_radius; +}; +i.prototype.RayCast = function(t, e, r, s) { +var o = N.MulXV(r, this.m_p, i.RayCast_s_position), a = P.SubVV(e.p1, o, i.RayCast_s_s), c = P.DotVV(a, a) - A(this.m_radius), l = P.SubVV(e.p2, e.p1, i.RayCast_s_r), h = P.DotVV(a, l), u = P.DotVV(l, l), _ = h * h - u * c; +if (_ < 0 || u < n) return !1; +var f = -(h + w(_)); +if (0 <= f && f <= e.maxFraction * u) { +f /= u; +t.fraction = f; +P.AddVMulSV(a, f, l, t.normal).SelfNormalize(); +return !0; +} +return !1; +}; +i.prototype.ComputeAABB = function(t, e, n) { +var r = N.MulXV(e, this.m_p, i.ComputeAABB_s_p); +t.lowerBound.Set(r.x - this.m_radius, r.y - this.m_radius); +t.upperBound.Set(r.x + this.m_radius, r.y + this.m_radius); +}; +i.prototype.ComputeMass = function(t, e) { +var i = A(this.m_radius); +t.mass = e * s * i; +t.center.Copy(this.m_p); +t.I = t.mass * (.5 * i + P.DotVV(this.m_p, this.m_p)); +}; +i.prototype.SetupDistanceProxy = function(t, e) { +t.m_vertices = t.m_buffer; +t.m_vertices[0].Copy(this.m_p); +t.m_count = 1; +t.m_radius = this.m_radius; +}; +i.prototype.ComputeSubmergedArea = function(t, e, i, r) { +var o = N.MulXV(i, this.m_p, new P()), a = -(P.DotVV(t, o) - e); +if (a < -this.m_radius + n) return 0; +if (a > this.m_radius) { +r.Copy(o); +return s * this.m_radius * this.m_radius; +} +var c = this.m_radius * this.m_radius, l = a * a, h = c * (D(a / this.m_radius) + s / 2) + a * w(c - l), u = -2 / 3 * T(c - l, 1.5) / h; +r.x = o.x + t.x * u; +r.y = o.y + t.y * u; +return h; +}; +i.prototype.Dump = function(t) { +t(" const shape: b2CircleShape = new b2CircleShape();\n"); +t(" shape.m_radius = %.15f;\n", this.m_radius); +t(" shape.m_p.Set(%.15f, %.15f);\n", this.m_p.x, this.m_p.y); +}; +i.TestPoint_s_center = new P(); +i.TestPoint_s_d = new P(); +i.ComputeDistance_s_center = new P(); +i.RayCast_s_position = new P(); +i.RayCast_s_s = new P(); +i.RayCast_s_r = new P(); +i.ComputeAABB_s_p = new P(); +return i; +})(Ke), ei = (function(e) { +$e(r, e); +function r() { +var i = e.call(this, t.b2ShapeType.e_polygonShape, h) || this; +i.m_centroid = new P(0, 0); +i.m_vertices = []; +i.m_normals = []; +i.m_count = 0; +return i; +} +r.prototype.Clone = function() { +return new r().Copy(this); +}; +r.prototype.Copy = function(t) { +e.prototype.Copy.call(this, t); +this.m_centroid.Copy(t.m_centroid); +this.m_count = t.m_count; +this.m_vertices = P.MakeArray(this.m_count); +this.m_normals = P.MakeArray(this.m_count); +for (var i = 0; i < this.m_count; ++i) { +this.m_vertices[i].Copy(t.m_vertices[i]); +this.m_normals[i].Copy(t.m_normals[i]); +} +return this; +}; +r.prototype.GetChildCount = function() { +return 1; +}; +r.prototype.Set = function(t, e, i) { +void 0 === e && (e = t.length); +void 0 === i && (i = 0); +if (e < 3) return this.SetAsBox(1, 1); +for (var n = g(e, a), s = r.Set_s_ps, o = 0, l = 0; l < n; ++l) { +for (var h = t[i + l], u = !0, _ = 0; _ < o; ++_) if (P.DistanceSquaredVV(h, s[_]) < .5 * c * (.5 * c)) { +u = !1; +break; +} +u && s[o++].Copy(h); +} +if ((n = o) < 3) return this.SetAsBox(1, 1); +var f = 0, d = s[0].x; +for (l = 1; l < n; ++l) { +var m = s[l].x; +if (m > d || m === d && s[l].y < s[f].y) { +f = l; +d = m; +} +} +for (var p = r.Set_s_hull, v = 0, y = f; ;) { +p[v] = y; +var x = 0; +for (_ = 1; _ < n; ++_) if (x !== y) { +var C = P.SubVV(s[x], s[p[v]], r.Set_s_r), b = (h = P.SubVV(s[_], s[p[v]], r.Set_s_v), +P.CrossVV(C, h)); +b < 0 && (x = _); +0 === b && h.LengthSquared() > C.LengthSquared() && (x = _); +} else x = _; +++v; +y = x; +if (x === f) break; +} +this.m_count = v; +this.m_vertices = P.MakeArray(this.m_count); +this.m_normals = P.MakeArray(this.m_count); +for (l = 0; l < v; ++l) this.m_vertices[l].Copy(s[p[l]]); +for (l = 0; l < v; ++l) { +var A = this.m_vertices[l], S = this.m_vertices[(l + 1) % v], w = P.SubVV(S, A, P.s_t0); +P.CrossVOne(w, this.m_normals[l]).SelfNormalize(); +} +r.ComputeCentroid(this.m_vertices, v, this.m_centroid); +return this; +}; +r.prototype.SetAsArray = function(t, e) { +void 0 === e && (e = t.length); +return this.Set(t, e); +}; +r.prototype.SetAsBox = function(t, e, i, n) { +void 0 === n && (n = 0); +this.m_count = 4; +this.m_vertices = P.MakeArray(this.m_count); +this.m_normals = P.MakeArray(this.m_count); +this.m_vertices[0].Set(-t, -e); +this.m_vertices[1].Set(t, -e); +this.m_vertices[2].Set(t, e); +this.m_vertices[3].Set(-t, e); +this.m_normals[0].Set(0, -1); +this.m_normals[1].Set(1, 0); +this.m_normals[2].Set(0, 1); +this.m_normals[3].Set(-1, 0); +this.m_centroid.SetZero(); +if (i) { +this.m_centroid.Copy(i); +var r = new N(); +r.SetPosition(i); +r.SetRotationAngle(n); +for (var s = 0; s < this.m_count; ++s) { +N.MulXV(r, this.m_vertices[s], this.m_vertices[s]); +V.MulRV(r.q, this.m_normals[s], this.m_normals[s]); +} +} +return this; +}; +r.prototype.TestPoint = function(t, e) { +for (var i = N.MulTXV(t, e, r.TestPoint_s_pLocal), n = 0; n < this.m_count; ++n) { +if (P.DotVV(this.m_normals[n], P.SubVV(i, this.m_vertices[n], P.s_t0)) > 0) return !1; +} +return !0; +}; +r.prototype.ComputeDistance = function(t, e, n, s) { +for (var o = N.MulTXV(t, e, r.ComputeDistance_s_pLocal), a = -i, c = r.ComputeDistance_s_normalForMaxDistance.Copy(o), l = 0; l < this.m_count; ++l) { +var h = P.DotVV(this.m_normals[l], P.SubVV(o, this.m_vertices[l], P.s_t0)); +if (h > a) { +a = h; +c.Copy(this.m_normals[l]); +} +} +if (a > 0) { +var u = r.ComputeDistance_s_minDistance.Copy(c), _ = a * a; +for (l = 0; l < this.m_count; ++l) { +var f = P.SubVV(o, this.m_vertices[l], r.ComputeDistance_s_distance), d = f.LengthSquared(); +if (_ > d) { +u.Copy(f); +_ = d; +} +} +V.MulRV(t.q, u, n); +n.Normalize(); +return Math.sqrt(_); +} +V.MulRV(t.q, c, n); +return a; +}; +r.prototype.RayCast = function(t, e, i, n) { +for (var s = N.MulTXV(i, e.p1, r.RayCast_s_p1), o = N.MulTXV(i, e.p2, r.RayCast_s_p2), a = P.SubVV(o, s, r.RayCast_s_d), c = 0, l = e.maxFraction, h = -1, u = 0; u < this.m_count; ++u) { +var _ = P.DotVV(this.m_normals[u], P.SubVV(this.m_vertices[u], s, P.s_t0)), f = P.DotVV(this.m_normals[u], a); +if (0 === f) { +if (_ < 0) return !1; +} else if (f < 0 && _ < c * f) { +c = _ / f; +h = u; +} else f > 0 && _ < l * f && (l = _ / f); +if (l < c) return !1; +} +if (h >= 0) { +t.fraction = c; +V.MulRV(i.q, this.m_normals[h], t.normal); +return !0; +} +return !1; +}; +r.prototype.ComputeAABB = function(t, e, i) { +for (var n = N.MulXV(e, this.m_vertices[0], t.lowerBound), s = t.upperBound.Copy(n), o = 0; o < this.m_count; ++o) { +var a = N.MulXV(e, this.m_vertices[o], r.ComputeAABB_s_v); +P.MinV(a, n, n); +P.MaxV(a, s, s); +} +var c = this.m_radius; +n.SelfSubXY(c, c); +s.SelfAddXY(c, c); +}; +r.prototype.ComputeMass = function(t, e) { +for (var i = r.ComputeMass_s_center.SetZero(), n = 0, s = 0, o = r.ComputeMass_s_s.SetZero(), a = 0; a < this.m_count; ++a) o.SelfAdd(this.m_vertices[a]); +o.SelfMul(1 / this.m_count); +for (a = 0; a < this.m_count; ++a) { +var c = P.SubVV(this.m_vertices[a], o, r.ComputeMass_s_e1), l = P.SubVV(this.m_vertices[(a + 1) % this.m_count], o, r.ComputeMass_s_e2), h = P.CrossVV(c, l), u = .5 * h; +n += u; +i.SelfAdd(P.MulSV(u * (1 / 3), P.AddVV(c, l, P.s_t0), P.s_t1)); +var _ = c.x, f = c.y, d = l.x, m = l.y; +s += 1 / 3 * .25 * h * (_ * _ + d * _ + d * d + (f * f + m * f + m * m)); +} +t.mass = e * n; +i.SelfMul(1 / n); +P.AddVV(i, o, t.center); +t.I = e * s; +t.I += t.mass * (P.DotVV(t.center, t.center) - P.DotVV(i, i)); +}; +r.prototype.Validate = function() { +for (var t = 0; t < this.m_count; ++t) for (var e = t, i = (t + 1) % this.m_count, n = this.m_vertices[e], s = P.SubVV(this.m_vertices[i], n, r.Validate_s_e), o = 0; o < this.m_count; ++o) if (o !== e && o !== i) { +var a = P.SubVV(this.m_vertices[o], n, r.Validate_s_v); +if (P.CrossVV(s, a) < 0) return !1; +} +return !0; +}; +r.prototype.SetupDistanceProxy = function(t, e) { +t.m_vertices = this.m_vertices; +t.m_count = this.m_count; +t.m_radius = this.m_radius; +}; +r.prototype.ComputeSubmergedArea = function(t, e, i, s) { +for (var o = V.MulTRV(i.q, t, r.ComputeSubmergedArea_s_normalL), a = e - P.DotVV(t, i.p), c = r.ComputeSubmergedArea_s_depths, l = 0, h = -1, u = -1, _ = !1, f = 0; f < this.m_count; ++f) { +c[f] = P.DotVV(o, this.m_vertices[f]) - a; +var d = c[f] < -n; +if (f > 0) if (d) { +if (!_) { +h = f - 1; +l++; +} +} else if (_) { +u = f - 1; +l++; +} +_ = d; +} +switch (l) { +case 0: +if (_) { +var m = r.ComputeSubmergedArea_s_md; +this.ComputeMass(m, 1); +N.MulXV(i, m.center, s); +return m.mass; +} +return 0; + +case 1: +-1 === h ? h = this.m_count - 1 : u = this.m_count - 1; +} +for (var p, v = (h + 1) % this.m_count, y = (u + 1) % this.m_count, g = (0 - c[h]) / (c[v] - c[h]), x = (0 - c[u]) / (c[y] - c[u]), C = r.ComputeSubmergedArea_s_intoVec.Set(this.m_vertices[h].x * (1 - g) + this.m_vertices[v].x * g, this.m_vertices[h].y * (1 - g) + this.m_vertices[v].y * g), b = r.ComputeSubmergedArea_s_outoVec.Set(this.m_vertices[u].x * (1 - x) + this.m_vertices[y].x * x, this.m_vertices[u].y * (1 - x) + this.m_vertices[y].y * x), A = 0, S = r.ComputeSubmergedArea_s_center.SetZero(), w = this.m_vertices[v], T = v; T !== y; ) { +p = (T = (T + 1) % this.m_count) === y ? b : this.m_vertices[T]; +var E = .5 * ((w.x - C.x) * (p.y - C.y) - (w.y - C.y) * (p.x - C.x)); +A += E; +S.x += E * (C.x + w.x + p.x) / 3; +S.y += E * (C.y + w.y + p.y) / 3; +w = p; +} +S.SelfMul(1 / A); +N.MulXV(i, S, s); +return A; +}; +r.prototype.Dump = function(t) { +t(" const shape: b2PolygonShape = new b2PolygonShape();\n"); +t(" const vs: b2Vec2[] = b2Vec2.MakeArray(%d);\n", a); +for (var e = 0; e < this.m_count; ++e) t(" vs[%d].Set(%.15f, %.15f);\n", e, this.m_vertices[e].x, this.m_vertices[e].y); +t(" shape.Set(vs, %d);\n", this.m_count); +}; +r.ComputeCentroid = function(t, e, i) { +var n = i; +n.SetZero(); +for (var s = 0, o = r.ComputeCentroid_s_pRef.SetZero(), a = 0; a < e; ++a) { +var c = o, l = t[a], h = t[(a + 1) % e], u = P.SubVV(l, c, r.ComputeCentroid_s_e1), _ = P.SubVV(h, c, r.ComputeCentroid_s_e2), f = .5 * P.CrossVV(u, _); +s += f; +n.x += f * (1 / 3) * (c.x + l.x + h.x); +n.y += f * (1 / 3) * (c.y + l.y + h.y); +} +n.SelfMul(1 / s); +return n; +}; +r.Set_s_ps = P.MakeArray(a); +r.Set_s_hull = m(a); +r.Set_s_r = new P(); +r.Set_s_v = new P(); +r.TestPoint_s_pLocal = new P(); +r.ComputeDistance_s_pLocal = new P(); +r.ComputeDistance_s_normalForMaxDistance = new P(); +r.ComputeDistance_s_minDistance = new P(); +r.ComputeDistance_s_distance = new P(); +r.RayCast_s_p1 = new P(); +r.RayCast_s_p2 = new P(); +r.RayCast_s_d = new P(); +r.ComputeAABB_s_v = new P(); +r.ComputeMass_s_center = new P(); +r.ComputeMass_s_s = new P(); +r.ComputeMass_s_e1 = new P(); +r.ComputeMass_s_e2 = new P(); +r.Validate_s_e = new P(); +r.Validate_s_v = new P(); +r.ComputeSubmergedArea_s_normalL = new P(); +r.ComputeSubmergedArea_s_depths = m(a); +r.ComputeSubmergedArea_s_md = new Ze(); +r.ComputeSubmergedArea_s_intoVec = new P(); +r.ComputeSubmergedArea_s_outoVec = new P(); +r.ComputeSubmergedArea_s_center = new P(); +r.ComputeCentroid_s_pRef = new P(); +r.ComputeCentroid_s_e1 = new P(); +r.ComputeCentroid_s_e2 = new P(); +return r; +})(Ke), ii = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2ShapeType.e_edgeShape, h) || this; +i.m_vertex1 = new P(); +i.m_vertex2 = new P(); +i.m_vertex0 = new P(); +i.m_vertex3 = new P(); +i.m_hasVertex0 = !1; +i.m_hasVertex3 = !1; +return i; +} +i.prototype.Set = function(t, e) { +this.m_vertex1.Copy(t); +this.m_vertex2.Copy(e); +this.m_hasVertex0 = !1; +this.m_hasVertex3 = !1; +return this; +}; +i.prototype.Clone = function() { +return new i().Copy(this); +}; +i.prototype.Copy = function(t) { +e.prototype.Copy.call(this, t); +this.m_vertex1.Copy(t.m_vertex1); +this.m_vertex2.Copy(t.m_vertex2); +this.m_vertex0.Copy(t.m_vertex0); +this.m_vertex3.Copy(t.m_vertex3); +this.m_hasVertex0 = t.m_hasVertex0; +this.m_hasVertex3 = t.m_hasVertex3; +return this; +}; +i.prototype.GetChildCount = function() { +return 1; +}; +i.prototype.TestPoint = function(t, e) { +return !1; +}; +i.prototype.ComputeDistance = function(t, e, n, r) { +var s = N.MulXV(t, this.m_vertex1, i.ComputeDistance_s_v1), o = N.MulXV(t, this.m_vertex2, i.ComputeDistance_s_v2), a = P.SubVV(e, s, i.ComputeDistance_s_d), c = P.SubVV(o, s, i.ComputeDistance_s_s), l = P.DotVV(a, c); +if (l > 0) { +var h = P.DotVV(c, c); +l > h ? P.SubVV(e, o, a) : a.SelfMulSub(l / h, c); +} +n.Copy(a); +return n.Normalize(); +}; +i.prototype.RayCast = function(t, e, n, r) { +var s = N.MulTXV(n, e.p1, i.RayCast_s_p1), o = N.MulTXV(n, e.p2, i.RayCast_s_p2), a = P.SubVV(o, s, i.RayCast_s_d), c = this.m_vertex1, l = this.m_vertex2, h = P.SubVV(l, c, i.RayCast_s_e), u = t.normal.Set(h.y, -h.x).SelfNormalize(), _ = P.DotVV(u, P.SubVV(c, s, P.s_t0)), f = P.DotVV(u, a); +if (0 === f) return !1; +var d = _ / f; +if (d < 0 || e.maxFraction < d) return !1; +var m = P.AddVMulSV(s, d, a, i.RayCast_s_q), p = P.SubVV(l, c, i.RayCast_s_r), v = P.DotVV(p, p); +if (0 === v) return !1; +var y = P.DotVV(P.SubVV(m, c, P.s_t0), p) / v; +if (y < 0 || 1 < y) return !1; +t.fraction = d; +V.MulRV(n.q, t.normal, t.normal); +_ > 0 && t.normal.SelfNeg(); +return !0; +}; +i.prototype.ComputeAABB = function(t, e, n) { +var r = N.MulXV(e, this.m_vertex1, i.ComputeAABB_s_v1), s = N.MulXV(e, this.m_vertex2, i.ComputeAABB_s_v2); +P.MinV(r, s, t.lowerBound); +P.MaxV(r, s, t.upperBound); +var o = this.m_radius; +t.lowerBound.SelfSubXY(o, o); +t.upperBound.SelfAddXY(o, o); +}; +i.prototype.ComputeMass = function(t, e) { +t.mass = 0; +P.MidVV(this.m_vertex1, this.m_vertex2, t.center); +t.I = 0; +}; +i.prototype.SetupDistanceProxy = function(t, e) { +t.m_vertices = t.m_buffer; +t.m_vertices[0].Copy(this.m_vertex1); +t.m_vertices[1].Copy(this.m_vertex2); +t.m_count = 2; +t.m_radius = this.m_radius; +}; +i.prototype.ComputeSubmergedArea = function(t, e, i, n) { +n.SetZero(); +return 0; +}; +i.prototype.Dump = function(t) { +t(" const shape: b2EdgeShape = new b2EdgeShape();\n"); +t(" shape.m_radius = %.15f;\n", this.m_radius); +t(" shape.m_vertex0.Set(%.15f, %.15f);\n", this.m_vertex0.x, this.m_vertex0.y); +t(" shape.m_vertex1.Set(%.15f, %.15f);\n", this.m_vertex1.x, this.m_vertex1.y); +t(" shape.m_vertex2.Set(%.15f, %.15f);\n", this.m_vertex2.x, this.m_vertex2.y); +t(" shape.m_vertex3.Set(%.15f, %.15f);\n", this.m_vertex3.x, this.m_vertex3.y); +t(" shape.m_hasVertex0 = %s;\n", this.m_hasVertex0); +t(" shape.m_hasVertex3 = %s;\n", this.m_hasVertex3); +}; +i.ComputeDistance_s_v1 = new P(); +i.ComputeDistance_s_v2 = new P(); +i.ComputeDistance_s_d = new P(); +i.ComputeDistance_s_s = new P(); +i.RayCast_s_p1 = new P(); +i.RayCast_s_p2 = new P(); +i.RayCast_s_d = new P(); +i.RayCast_s_e = new P(); +i.RayCast_s_q = new P(); +i.RayCast_s_r = new P(); +i.ComputeAABB_s_v1 = new P(); +i.ComputeAABB_s_v2 = new P(); +return i; +})(Ke), ni = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2ShapeType.e_chainShape, h) || this; +i.m_vertices = []; +i.m_count = 0; +i.m_prevVertex = new P(); +i.m_nextVertex = new P(); +i.m_hasPrevVertex = !1; +i.m_hasNextVertex = !1; +return i; +} +i.prototype.CreateLoop = function(t, e, i) { +void 0 === e && (e = t.length); +void 0 === i && (i = 0); +if (e < 3) return this; +this.m_count = e + 1; +this.m_vertices = P.MakeArray(this.m_count); +for (var n = 0; n < e; ++n) this.m_vertices[n].Copy(t[i + n]); +this.m_vertices[e].Copy(this.m_vertices[0]); +this.m_prevVertex.Copy(this.m_vertices[this.m_count - 2]); +this.m_nextVertex.Copy(this.m_vertices[1]); +this.m_hasPrevVertex = !0; +this.m_hasNextVertex = !0; +return this; +}; +i.prototype.CreateChain = function(t, e, i) { +void 0 === e && (e = t.length); +void 0 === i && (i = 0); +this.m_count = e; +this.m_vertices = P.MakeArray(e); +for (var n = 0; n < e; ++n) this.m_vertices[n].Copy(t[i + n]); +this.m_hasPrevVertex = !1; +this.m_hasNextVertex = !1; +this.m_prevVertex.SetZero(); +this.m_nextVertex.SetZero(); +return this; +}; +i.prototype.SetPrevVertex = function(t) { +this.m_prevVertex.Copy(t); +this.m_hasPrevVertex = !0; +return this; +}; +i.prototype.SetNextVertex = function(t) { +this.m_nextVertex.Copy(t); +this.m_hasNextVertex = !0; +return this; +}; +i.prototype.Clone = function() { +return new i().Copy(this); +}; +i.prototype.Copy = function(t) { +e.prototype.Copy.call(this, t); +this.CreateChain(t.m_vertices, t.m_count); +this.m_prevVertex.Copy(t.m_prevVertex); +this.m_nextVertex.Copy(t.m_nextVertex); +this.m_hasPrevVertex = t.m_hasPrevVertex; +this.m_hasNextVertex = t.m_hasNextVertex; +return this; +}; +i.prototype.GetChildCount = function() { +return this.m_count - 1; +}; +i.prototype.GetChildEdge = function(e, i) { +e.m_type = t.b2ShapeType.e_edgeShape; +e.m_radius = this.m_radius; +e.m_vertex1.Copy(this.m_vertices[i]); +e.m_vertex2.Copy(this.m_vertices[i + 1]); +if (i > 0) { +e.m_vertex0.Copy(this.m_vertices[i - 1]); +e.m_hasVertex0 = !0; +} else { +e.m_vertex0.Copy(this.m_prevVertex); +e.m_hasVertex0 = this.m_hasPrevVertex; +} +if (i < this.m_count - 2) { +e.m_vertex3.Copy(this.m_vertices[i + 2]); +e.m_hasVertex3 = !0; +} else { +e.m_vertex3.Copy(this.m_nextVertex); +e.m_hasVertex3 = this.m_hasNextVertex; +} +}; +i.prototype.TestPoint = function(t, e) { +return !1; +}; +i.prototype.ComputeDistance = function(t, e, n, r) { +var s = i.ComputeDistance_s_edgeShape; +this.GetChildEdge(s, r); +return s.ComputeDistance(t, e, n, 0); +}; +i.prototype.RayCast = function(t, e, n, r) { +var s = i.RayCast_s_edgeShape; +s.m_vertex1.Copy(this.m_vertices[r]); +s.m_vertex2.Copy(this.m_vertices[(r + 1) % this.m_count]); +return s.RayCast(t, e, n, 0); +}; +i.prototype.ComputeAABB = function(t, e, n) { +var r = this.m_vertices[n], s = this.m_vertices[(n + 1) % this.m_count], o = N.MulXV(e, r, i.ComputeAABB_s_v1), a = N.MulXV(e, s, i.ComputeAABB_s_v2); +P.MinV(o, a, t.lowerBound); +P.MaxV(o, a, t.upperBound); +}; +i.prototype.ComputeMass = function(t, e) { +t.mass = 0; +t.center.SetZero(); +t.I = 0; +}; +i.prototype.SetupDistanceProxy = function(t, e) { +t.m_vertices = t.m_buffer; +t.m_vertices[0].Copy(this.m_vertices[e]); +e + 1 < this.m_count ? t.m_vertices[1].Copy(this.m_vertices[e + 1]) : t.m_vertices[1].Copy(this.m_vertices[0]); +t.m_count = 2; +t.m_radius = this.m_radius; +}; +i.prototype.ComputeSubmergedArea = function(t, e, i, n) { +n.SetZero(); +return 0; +}; +i.prototype.Dump = function(t) { +t(" const shape: b2ChainShape = new b2ChainShape();\n"); +t(" const vs: b2Vec2[] = b2Vec2.MakeArray(%d);\n", a); +for (var e = 0; e < this.m_count; ++e) t(" vs[%d].Set(%.15f, %.15f);\n", e, this.m_vertices[e].x, this.m_vertices[e].y); +t(" shape.CreateChain(vs, %d);\n", this.m_count); +t(" shape.m_prevVertex.Set(%.15f, %.15f);\n", this.m_prevVertex.x, this.m_prevVertex.y); +t(" shape.m_nextVertex.Set(%.15f, %.15f);\n", this.m_nextVertex.x, this.m_nextVertex.y); +t(" shape.m_hasPrevVertex = %s;\n", this.m_hasPrevVertex ? "true" : "false"); +t(" shape.m_hasNextVertex = %s;\n", this.m_hasNextVertex ? "true" : "false"); +}; +i.ComputeDistance_s_edgeShape = new ii(); +i.RayCast_s_edgeShape = new ii(); +i.ComputeAABB_s_v1 = new P(); +i.ComputeAABB_s_v2 = new P(); +return i; +})(Ke), ri = (function() { +function t() { +this.categoryBits = 1; +this.maskBits = 65535; +this.groupIndex = 0; +} +t.prototype.Clone = function() { +return new t().Copy(this); +}; +t.prototype.Copy = function(t) { +this.categoryBits = t.categoryBits; +this.maskBits = t.maskBits; +this.groupIndex = t.groupIndex || 0; +return this; +}; +t.DEFAULT = new t(); +return t; +})(), si = (function() { +return function() { +this.userData = null; +this.friction = .2; +this.restitution = 0; +this.density = 0; +this.isSensor = !1; +this.filter = new ri(); +}; +})(), oi = (function() { +return function(t) { +this.aabb = new Tt(); +this.childIndex = 0; +this.fixture = t; +}; +})(), ai = (function() { +function t(t, e) { +this.m_density = 0; +this.m_next = null; +this.m_friction = 0; +this.m_restitution = 0; +this.m_proxies = []; +this.m_proxyCount = 0; +this.m_filter = new ri(); +this.m_isSensor = !1; +this.m_userData = null; +this.m_body = e; +this.m_shape = t.shape.Clone(); +} +t.prototype.GetType = function() { +return this.m_shape.GetType(); +}; +t.prototype.GetShape = function() { +return this.m_shape; +}; +t.prototype.SetSensor = function(t) { +if (t !== this.m_isSensor) { +this.m_body.SetAwake(!0); +this.m_isSensor = t; +} +}; +t.prototype.IsSensor = function() { +return this.m_isSensor; +}; +t.prototype.SetFilterData = function(t) { +this.m_filter.Copy(t); +this.Refilter(); +}; +t.prototype.GetFilterData = function() { +return this.m_filter; +}; +t.prototype.Refilter = function() { +for (var t = this.m_body.GetContactList(); t; ) { +var e = t.contact, i = e.GetFixtureA(), n = e.GetFixtureB(); +i !== this && n !== this || e.FlagForFiltering(); +t = t.next; +} +var r = this.m_body.GetWorld(); +if (null !== r) for (var s = r.m_contactManager.m_broadPhase, o = 0; o < this.m_proxyCount; ++o) s.TouchProxy(this.m_proxies[o].treeNode); +}; +t.prototype.GetBody = function() { +return this.m_body; +}; +t.prototype.GetNext = function() { +return this.m_next; +}; +t.prototype.GetUserData = function() { +return this.m_userData; +}; +t.prototype.SetUserData = function(t) { +this.m_userData = t; +}; +t.prototype.TestPoint = function(t) { +return this.m_shape.TestPoint(this.m_body.GetTransform(), t); +}; +t.prototype.ComputeDistance = function(t, e, i) { +return this.m_shape.ComputeDistance(this.m_body.GetTransform(), t, e, i); +}; +t.prototype.RayCast = function(t, e, i) { +return this.m_shape.RayCast(t, e, this.m_body.GetTransform(), i); +}; +t.prototype.GetMassData = function(t) { +void 0 === t && (t = new Ze()); +this.m_shape.ComputeMass(t, this.m_density); +return t; +}; +t.prototype.SetDensity = function(t) { +this.m_density = t; +}; +t.prototype.GetDensity = function() { +return this.m_density; +}; +t.prototype.GetFriction = function() { +return this.m_friction; +}; +t.prototype.SetFriction = function(t) { +this.m_friction = t; +}; +t.prototype.GetRestitution = function() { +return this.m_restitution; +}; +t.prototype.SetRestitution = function(t) { +this.m_restitution = t; +}; +t.prototype.GetAABB = function(t) { +return this.m_proxies[t].aabb; +}; +t.prototype.Dump = function(t, e) { +t(" const fd: b2FixtureDef = new b2FixtureDef();\n"); +t(" fd.friction = %.15f;\n", this.m_friction); +t(" fd.restitution = %.15f;\n", this.m_restitution); +t(" fd.density = %.15f;\n", this.m_density); +t(" fd.isSensor = %s;\n", this.m_isSensor ? "true" : "false"); +t(" fd.filter.categoryBits = %d;\n", this.m_filter.categoryBits); +t(" fd.filter.maskBits = %d;\n", this.m_filter.maskBits); +t(" fd.filter.groupIndex = %d;\n", this.m_filter.groupIndex); +this.m_shape.Dump(t); +t("\n"); +t(" fd.shape = shape;\n"); +t("\n"); +t(" bodies[%d].CreateFixture(fd);\n", e); +}; +t.prototype.Create = function(t) { +var i = this; +this.m_userData = t.userData; +this.m_friction = e(t.friction, .2); +this.m_restitution = e(t.restitution, 0); +this.m_next = null; +this.m_filter.Copy(e(t.filter, ri.DEFAULT)); +this.m_isSensor = e(t.isSensor, !1); +this.m_proxies = d(this.m_shape.GetChildCount(), (function(t) { +return new oi(i); +})); +this.m_proxyCount = 0; +this.m_density = e(t.density, 0); +}; +t.prototype.Destroy = function() {}; +t.prototype.CreateProxies = function(t) { +var e = this.m_body.m_world.m_contactManager.m_broadPhase; +this.m_proxyCount = this.m_shape.GetChildCount(); +for (var i = 0; i < this.m_proxyCount; ++i) { +var n = this.m_proxies[i] = new oi(this); +this.m_shape.ComputeAABB(n.aabb, t, i); +n.treeNode = e.CreateProxy(n.aabb, n); +n.childIndex = i; +} +}; +t.prototype.DestroyProxies = function() { +for (var t = this.m_body.m_world.m_contactManager.m_broadPhase, e = 0; e < this.m_proxyCount; ++e) { +var i = this.m_proxies[e]; +delete i.treeNode.userData; +t.DestroyProxy(i.treeNode); +delete i.treeNode; +} +this.m_proxyCount = 0; +}; +t.prototype.TouchProxies = function() { +for (var t = this.m_body.m_world.m_contactManager.m_broadPhase, e = this.m_proxyCount, i = 0; i < e; ++i) t.TouchProxy(this.m_proxies[i].treeNode); +}; +t.prototype.Synchronize = function(e, i) { +if (0 !== this.m_proxyCount) for (var n = this.m_body.m_world.m_contactManager.m_broadPhase, r = 0; r < this.m_proxyCount; ++r) { +var s = this.m_proxies[r], o = t.Synchronize_s_aabb1, a = t.Synchronize_s_aabb2; +this.m_shape.ComputeAABB(o, e, r); +this.m_shape.ComputeAABB(a, i, r); +s.aabb.Combine2(o, a); +var c = P.SubVV(i.p, e.p, t.Synchronize_s_displacement); +n.MoveProxy(s.treeNode, s.aabb, c); +} +}; +t.Synchronize_s_aabb1 = new Tt(); +t.Synchronize_s_aabb2 = new Tt(); +t.Synchronize_s_displacement = new P(); +return t; +})(); +(function(t) { +t[t.b2_unknown = -1] = "b2_unknown"; +t[t.b2_staticBody = 0] = "b2_staticBody"; +t[t.b2_kinematicBody = 1] = "b2_kinematicBody"; +t[t.b2_dynamicBody = 2] = "b2_dynamicBody"; +})(t.b2BodyType || (t.b2BodyType = {})); +var ci = (function() { +return function() { +this.type = t.b2BodyType.b2_staticBody; +this.position = new P(0, 0); +this.angle = 0; +this.linearVelocity = new P(0, 0); +this.angularVelocity = 0; +this.linearDamping = 0; +this.angularDamping = 0; +this.allowSleep = !0; +this.awake = !0; +this.fixedRotation = !1; +this.bullet = !1; +this.active = !0; +this.userData = null; +this.gravityScale = 1; +}; +})(), li = (function() { +function i(i, n) { +this.m_type = t.b2BodyType.b2_staticBody; +this.m_islandFlag = !1; +this.m_awakeFlag = !1; +this.m_autoSleepFlag = !1; +this.m_bulletFlag = !1; +this.m_fixedRotationFlag = !1; +this.m_activeFlag = !1; +this.m_toiFlag = !1; +this.m_islandIndex = 0; +this.m_xf = new N(); +this.m_xf0 = new N(); +this.m_sweep = new k(); +this.m_linearVelocity = new P(); +this.m_angularVelocity = 0; +this.m_force = new P(); +this.m_torque = 0; +this.m_prev = null; +this.m_next = null; +this.m_fixtureList = null; +this.m_fixtureCount = 0; +this.m_jointList = null; +this.m_contactList = null; +this.m_mass = 1; +this.m_invMass = 1; +this.m_I = 0; +this.m_invI = 0; +this.m_linearDamping = 0; +this.m_angularDamping = 0; +this.m_gravityScale = 1; +this.m_sleepTime = 0; +this.m_userData = null; +this.m_controllerList = null; +this.m_controllerCount = 0; +this.m_bulletFlag = e(i.bullet, !1); +this.m_fixedRotationFlag = e(i.fixedRotation, !1); +this.m_autoSleepFlag = e(i.allowSleep, !0); +this.m_awakeFlag = e(i.awake, !0); +this.m_activeFlag = e(i.active, !0); +this.m_world = n; +this.m_xf.p.Copy(e(i.position, P.ZERO)); +this.m_xf.q.SetAngle(e(i.angle, 0)); +this.m_xf0.Copy(this.m_xf); +this.m_sweep.localCenter.SetZero(); +this.m_sweep.c0.Copy(this.m_xf.p); +this.m_sweep.c.Copy(this.m_xf.p); +this.m_sweep.a0 = this.m_sweep.a = this.m_xf.q.GetAngle(); +this.m_sweep.alpha0 = 0; +this.m_linearVelocity.Copy(e(i.linearVelocity, P.ZERO)); +this.m_angularVelocity = e(i.angularVelocity, 0); +this.m_linearDamping = e(i.linearDamping, 0); +this.m_angularDamping = e(i.angularDamping, 0); +this.m_gravityScale = e(i.gravityScale, 1); +this.m_force.SetZero(); +this.m_torque = 0; +this.m_sleepTime = 0; +this.m_type = e(i.type, t.b2BodyType.b2_staticBody); +if (i.type === t.b2BodyType.b2_dynamicBody) { +this.m_mass = 1; +this.m_invMass = 1; +} else { +this.m_mass = 0; +this.m_invMass = 0; +} +this.m_I = 0; +this.m_invI = 0; +this.m_userData = i.userData; +this.m_fixtureList = null; +this.m_fixtureCount = 0; +this.m_controllerList = null; +this.m_controllerCount = 0; +} +i.prototype.CreateFixture = function(t, e) { +void 0 === e && (e = 0); +return t instanceof Ke ? this.CreateFixtureShapeDensity(t, e) : this.CreateFixtureDef(t); +}; +i.prototype.CreateFixtureDef = function(t) { +if (this.m_world.IsLocked()) throw new Error(); +var e = new ai(t, this); +e.Create(t); +this.m_activeFlag && e.CreateProxies(this.m_xf); +e.m_next = this.m_fixtureList; +this.m_fixtureList = e; +++this.m_fixtureCount; +e.m_density > 0 && this.ResetMassData(); +this.m_world.m_newFixture = !0; +return e; +}; +i.prototype.CreateFixtureShapeDensity = function(t, e) { +void 0 === e && (e = 0); +var n = i.CreateFixtureShapeDensity_s_def; +n.shape = t; +n.density = e; +return this.CreateFixtureDef(n); +}; +i.prototype.DestroyFixture = function(t) { +if (this.m_world.IsLocked()) throw new Error(); +for (var e = this.m_fixtureList, i = null; null !== e; ) { +if (e === t) { +i ? i.m_next = t.m_next : this.m_fixtureList = t.m_next; +break; +} +i = e; +e = e.m_next; +} +for (var n = this.m_contactList; n; ) { +var r = n.contact; +n = n.next; +var s = r.GetFixtureA(), o = r.GetFixtureB(); +t !== s && t !== o || this.m_world.m_contactManager.Destroy(r); +} +this.m_activeFlag && t.DestroyProxies(); +t.m_next = null; +t.Destroy(); +--this.m_fixtureCount; +this.ResetMassData(); +}; +i.prototype.SetTransformVec = function(t, e) { +this.SetTransformXY(t.x, t.y, e); +}; +i.prototype.SetTransformXY = function(t, e, i) { +if (this.m_world.IsLocked()) throw new Error(); +this.m_xf.q.SetAngle(i); +this.m_xf.p.Set(t, e); +this.m_xf0.Copy(this.m_xf); +N.MulXV(this.m_xf, this.m_sweep.localCenter, this.m_sweep.c); +this.m_sweep.a = i; +this.m_sweep.c0.Copy(this.m_sweep.c); +this.m_sweep.a0 = i; +for (var n = this.m_fixtureList; n; n = n.m_next) n.Synchronize(this.m_xf, this.m_xf); +this.m_world.m_contactManager.FindNewContacts(); +}; +i.prototype.SetTransform = function(t) { +this.SetTransformVec(t.p, t.GetAngle()); +}; +i.prototype.GetTransform = function() { +return this.m_xf; +}; +i.prototype.GetPosition = function() { +return this.m_xf.p; +}; +i.prototype.SetPosition = function(t) { +this.SetTransformVec(t, this.GetAngle()); +}; +i.prototype.SetPositionXY = function(t, e) { +this.SetTransformXY(t, e, this.GetAngle()); +}; +i.prototype.GetAngle = function() { +return this.m_sweep.a; +}; +i.prototype.SetAngle = function(t) { +this.SetTransformVec(this.GetPosition(), t); +}; +i.prototype.GetWorldCenter = function() { +return this.m_sweep.c; +}; +i.prototype.GetLocalCenter = function() { +return this.m_sweep.localCenter; +}; +i.prototype.SetLinearVelocity = function(e) { +if (this.m_type !== t.b2BodyType.b2_staticBody) { +P.DotVV(e, e) > 0 && this.SetAwake(!0); +this.m_linearVelocity.Copy(e); +} +}; +i.prototype.GetLinearVelocity = function() { +return this.m_linearVelocity; +}; +i.prototype.SetAngularVelocity = function(e) { +if (this.m_type !== t.b2BodyType.b2_staticBody) { +e * e > 0 && this.SetAwake(!0); +this.m_angularVelocity = e; +} +}; +i.prototype.GetAngularVelocity = function() { +return this.m_angularVelocity; +}; +i.prototype.GetDefinition = function(t) { +t.type = this.GetType(); +t.allowSleep = this.m_autoSleepFlag; +t.angle = this.GetAngle(); +t.angularDamping = this.m_angularDamping; +t.gravityScale = this.m_gravityScale; +t.angularVelocity = this.m_angularVelocity; +t.fixedRotation = this.m_fixedRotationFlag; +t.bullet = this.m_bulletFlag; +t.awake = this.m_awakeFlag; +t.linearDamping = this.m_linearDamping; +t.linearVelocity.Copy(this.GetLinearVelocity()); +t.position.Copy(this.GetPosition()); +t.userData = this.GetUserData(); +return t; +}; +i.prototype.ApplyForce = function(e, i, n) { +void 0 === n && (n = !0); +if (this.m_type === t.b2BodyType.b2_dynamicBody) { +n && !this.m_awakeFlag && this.SetAwake(!0); +if (this.m_awakeFlag) { +this.m_force.x += e.x; +this.m_force.y += e.y; +this.m_torque += (i.x - this.m_sweep.c.x) * e.y - (i.y - this.m_sweep.c.y) * e.x; +} +} +}; +i.prototype.ApplyForceToCenter = function(e, i) { +void 0 === i && (i = !0); +if (this.m_type === t.b2BodyType.b2_dynamicBody) { +i && !this.m_awakeFlag && this.SetAwake(!0); +if (this.m_awakeFlag) { +this.m_force.x += e.x; +this.m_force.y += e.y; +} +} +}; +i.prototype.ApplyTorque = function(e, i) { +void 0 === i && (i = !0); +if (this.m_type === t.b2BodyType.b2_dynamicBody) { +i && !this.m_awakeFlag && this.SetAwake(!0); +this.m_awakeFlag && (this.m_torque += e); +} +}; +i.prototype.ApplyLinearImpulse = function(e, i, n) { +void 0 === n && (n = !0); +if (this.m_type === t.b2BodyType.b2_dynamicBody) { +n && !this.m_awakeFlag && this.SetAwake(!0); +if (this.m_awakeFlag) { +this.m_linearVelocity.x += this.m_invMass * e.x; +this.m_linearVelocity.y += this.m_invMass * e.y; +this.m_angularVelocity += this.m_invI * ((i.x - this.m_sweep.c.x) * e.y - (i.y - this.m_sweep.c.y) * e.x); +} +} +}; +i.prototype.ApplyLinearImpulseToCenter = function(e, i) { +void 0 === i && (i = !0); +if (this.m_type === t.b2BodyType.b2_dynamicBody) { +i && !this.m_awakeFlag && this.SetAwake(!0); +if (this.m_awakeFlag) { +this.m_linearVelocity.x += this.m_invMass * e.x; +this.m_linearVelocity.y += this.m_invMass * e.y; +} +} +}; +i.prototype.ApplyAngularImpulse = function(e, i) { +void 0 === i && (i = !0); +if (this.m_type === t.b2BodyType.b2_dynamicBody) { +i && !this.m_awakeFlag && this.SetAwake(!0); +this.m_awakeFlag && (this.m_angularVelocity += this.m_invI * e); +} +}; +i.prototype.GetMass = function() { +return this.m_mass; +}; +i.prototype.GetInertia = function() { +return this.m_I + this.m_mass * P.DotVV(this.m_sweep.localCenter, this.m_sweep.localCenter); +}; +i.prototype.GetMassData = function(t) { +t.mass = this.m_mass; +t.I = this.m_I + this.m_mass * P.DotVV(this.m_sweep.localCenter, this.m_sweep.localCenter); +t.center.Copy(this.m_sweep.localCenter); +return t; +}; +i.prototype.SetMassData = function(e) { +if (this.m_world.IsLocked()) throw new Error(); +if (this.m_type === t.b2BodyType.b2_dynamicBody) { +this.m_invMass = 0; +this.m_I = 0; +this.m_invI = 0; +this.m_mass = e.mass; +this.m_mass <= 0 && (this.m_mass = 1); +this.m_invMass = 1 / this.m_mass; +if (e.I > 0 && !this.m_fixedRotationFlag) { +this.m_I = e.I - this.m_mass * P.DotVV(e.center, e.center); +this.m_invI = 1 / this.m_I; +} +var n = i.SetMassData_s_oldCenter.Copy(this.m_sweep.c); +this.m_sweep.localCenter.Copy(e.center); +N.MulXV(this.m_xf, this.m_sweep.localCenter, this.m_sweep.c); +this.m_sweep.c0.Copy(this.m_sweep.c); +P.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, P.SubVV(this.m_sweep.c, n, P.s_t0), this.m_linearVelocity); +} +}; +i.prototype.ResetMassData = function() { +this.m_mass = 0; +this.m_invMass = 0; +this.m_I = 0; +this.m_invI = 0; +this.m_sweep.localCenter.SetZero(); +if (this.m_type !== t.b2BodyType.b2_staticBody && this.m_type !== t.b2BodyType.b2_kinematicBody) { +for (var e = i.ResetMassData_s_localCenter.SetZero(), n = this.m_fixtureList; n; n = n.m_next) if (0 !== n.m_density) { +var r = n.GetMassData(i.ResetMassData_s_massData); +this.m_mass += r.mass; +e.x += r.center.x * r.mass; +e.y += r.center.y * r.mass; +this.m_I += r.I; +} +if (this.m_mass > 0) { +this.m_invMass = 1 / this.m_mass; +e.x *= this.m_invMass; +e.y *= this.m_invMass; +} else { +this.m_mass = 1; +this.m_invMass = 1; +} +if (this.m_I > 0 && !this.m_fixedRotationFlag) { +this.m_I -= this.m_mass * P.DotVV(e, e); +this.m_invI = 1 / this.m_I; +} else { +this.m_I = 0; +this.m_invI = 0; +} +var s = i.ResetMassData_s_oldCenter.Copy(this.m_sweep.c); +this.m_sweep.localCenter.Copy(e); +N.MulXV(this.m_xf, this.m_sweep.localCenter, this.m_sweep.c); +this.m_sweep.c0.Copy(this.m_sweep.c); +P.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, P.SubVV(this.m_sweep.c, s, P.s_t0), this.m_linearVelocity); +} else { +this.m_sweep.c0.Copy(this.m_xf.p); +this.m_sweep.c.Copy(this.m_xf.p); +this.m_sweep.a0 = this.m_sweep.a; +} +}; +i.prototype.GetWorldPoint = function(t, e) { +return N.MulXV(this.m_xf, t, e); +}; +i.prototype.GetWorldVector = function(t, e) { +return V.MulRV(this.m_xf.q, t, e); +}; +i.prototype.GetLocalPoint = function(t, e) { +return N.MulTXV(this.m_xf, t, e); +}; +i.prototype.GetLocalVector = function(t, e) { +return V.MulTRV(this.m_xf.q, t, e); +}; +i.prototype.GetLinearVelocityFromWorldPoint = function(t, e) { +return P.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, P.SubVV(t, this.m_sweep.c, P.s_t0), e); +}; +i.prototype.GetLinearVelocityFromLocalPoint = function(t, e) { +return this.GetLinearVelocityFromWorldPoint(this.GetWorldPoint(t, e), e); +}; +i.prototype.GetLinearDamping = function() { +return this.m_linearDamping; +}; +i.prototype.SetLinearDamping = function(t) { +this.m_linearDamping = t; +}; +i.prototype.GetAngularDamping = function() { +return this.m_angularDamping; +}; +i.prototype.SetAngularDamping = function(t) { +this.m_angularDamping = t; +}; +i.prototype.GetGravityScale = function() { +return this.m_gravityScale; +}; +i.prototype.SetGravityScale = function(t) { +this.m_gravityScale = t; +}; +i.prototype.SetType = function(e) { +if (this.m_world.IsLocked()) throw new Error(); +if (this.m_type !== e) { +this.m_type = e; +this.ResetMassData(); +if (this.m_type === t.b2BodyType.b2_staticBody) { +this.m_linearVelocity.SetZero(); +this.m_angularVelocity = 0; +this.m_sweep.a0 = this.m_sweep.a; +this.m_sweep.c0.Copy(this.m_sweep.c); +this.SynchronizeFixtures(); +} +this.SetAwake(!0); +this.m_force.SetZero(); +this.m_torque = 0; +for (var i = this.m_contactList; i; ) { +var n = i; +i = i.next; +this.m_world.m_contactManager.Destroy(n.contact); +} +this.m_contactList = null; +for (var r = this.m_fixtureList; r; r = r.m_next) r.TouchProxies(); +} +}; +i.prototype.GetType = function() { +return this.m_type; +}; +i.prototype.SetBullet = function(t) { +this.m_bulletFlag = t; +}; +i.prototype.IsBullet = function() { +return this.m_bulletFlag; +}; +i.prototype.SetSleepingAllowed = function(t) { +this.m_autoSleepFlag = t; +t || this.SetAwake(!0); +}; +i.prototype.IsSleepingAllowed = function() { +return this.m_autoSleepFlag; +}; +i.prototype.SetAwake = function(t) { +if (t) { +this.m_awakeFlag = !0; +this.m_sleepTime = 0; +} else { +this.m_awakeFlag = !1; +this.m_sleepTime = 0; +this.m_linearVelocity.SetZero(); +this.m_angularVelocity = 0; +this.m_force.SetZero(); +this.m_torque = 0; +} +}; +i.prototype.IsAwake = function() { +return this.m_awakeFlag; +}; +i.prototype.SetActive = function(t) { +if (this.m_world.IsLocked()) throw new Error(); +if (t !== this.IsActive()) { +this.m_activeFlag = t; +if (t) for (var e = this.m_fixtureList; e; e = e.m_next) e.CreateProxies(this.m_xf); else { +for (e = this.m_fixtureList; e; e = e.m_next) e.DestroyProxies(); +for (var i = this.m_contactList; i; ) { +var n = i; +i = i.next; +this.m_world.m_contactManager.Destroy(n.contact); +} +this.m_contactList = null; +} +} +}; +i.prototype.IsActive = function() { +return this.m_activeFlag; +}; +i.prototype.SetFixedRotation = function(t) { +if (this.m_fixedRotationFlag !== t) { +this.m_fixedRotationFlag = t; +this.m_angularVelocity = 0; +this.ResetMassData(); +} +}; +i.prototype.IsFixedRotation = function() { +return this.m_fixedRotationFlag; +}; +i.prototype.GetFixtureList = function() { +return this.m_fixtureList; +}; +i.prototype.GetJointList = function() { +return this.m_jointList; +}; +i.prototype.GetContactList = function() { +return this.m_contactList; +}; +i.prototype.GetNext = function() { +return this.m_next; +}; +i.prototype.GetUserData = function() { +return this.m_userData; +}; +i.prototype.SetUserData = function(t) { +this.m_userData = t; +}; +i.prototype.GetWorld = function() { +return this.m_world; +}; +i.prototype.Dump = function(e) { +var i = this.m_islandIndex; +e("{\n"); +e(" const bd: b2BodyDef = new b2BodyDef();\n"); +var n = ""; +switch (this.m_type) { +case t.b2BodyType.b2_staticBody: +n = "b2BodyType.b2_staticBody"; +break; + +case t.b2BodyType.b2_kinematicBody: +n = "b2BodyType.b2_kinematicBody"; +break; + +case t.b2BodyType.b2_dynamicBody: +n = "b2BodyType.b2_dynamicBody"; +} +e(" bd.type = %s;\n", n); +e(" bd.position.Set(%.15f, %.15f);\n", this.m_xf.p.x, this.m_xf.p.y); +e(" bd.angle = %.15f;\n", this.m_sweep.a); +e(" bd.linearVelocity.Set(%.15f, %.15f);\n", this.m_linearVelocity.x, this.m_linearVelocity.y); +e(" bd.angularVelocity = %.15f;\n", this.m_angularVelocity); +e(" bd.linearDamping = %.15f;\n", this.m_linearDamping); +e(" bd.angularDamping = %.15f;\n", this.m_angularDamping); +e(" bd.allowSleep = %s;\n", this.m_autoSleepFlag ? "true" : "false"); +e(" bd.awake = %s;\n", this.m_awakeFlag ? "true" : "false"); +e(" bd.fixedRotation = %s;\n", this.m_fixedRotationFlag ? "true" : "false"); +e(" bd.bullet = %s;\n", this.m_bulletFlag ? "true" : "false"); +e(" bd.active = %s;\n", this.m_activeFlag ? "true" : "false"); +e(" bd.gravityScale = %.15f;\n", this.m_gravityScale); +e("\n"); +e(" bodies[%d] = this.m_world.CreateBody(bd);\n", this.m_islandIndex); +e("\n"); +for (var r = this.m_fixtureList; r; r = r.m_next) { +e(" {\n"); +r.Dump(e, i); +e(" }\n"); +} +e("}\n"); +}; +i.prototype.SynchronizeFixtures = function() { +var t = i.SynchronizeFixtures_s_xf1; +t.q.SetAngle(this.m_sweep.a0); +V.MulRV(t.q, this.m_sweep.localCenter, t.p); +P.SubVV(this.m_sweep.c0, t.p, t.p); +for (var e = this.m_fixtureList; e; e = e.m_next) e.Synchronize(t, this.m_xf); +}; +i.prototype.SynchronizeTransform = function() { +this.m_xf.q.SetAngle(this.m_sweep.a); +V.MulRV(this.m_xf.q, this.m_sweep.localCenter, this.m_xf.p); +P.SubVV(this.m_sweep.c, this.m_xf.p, this.m_xf.p); +}; +i.prototype.ShouldCollide = function(e) { +return (this.m_type !== t.b2BodyType.b2_staticBody || e.m_type !== t.b2BodyType.b2_staticBody) && this.ShouldCollideConnected(e); +}; +i.prototype.ShouldCollideConnected = function(t) { +for (var e = this.m_jointList; e; e = e.next) if (e.other === t && !e.joint.m_collideConnected) return !1; +return !0; +}; +i.prototype.Advance = function(t) { +this.m_sweep.Advance(t); +this.m_sweep.c.Copy(this.m_sweep.c0); +this.m_sweep.a = this.m_sweep.a0; +this.m_xf.q.SetAngle(this.m_sweep.a); +V.MulRV(this.m_xf.q, this.m_sweep.localCenter, this.m_xf.p); +P.SubVV(this.m_sweep.c, this.m_xf.p, this.m_xf.p); +}; +i.prototype.GetControllerList = function() { +return this.m_controllerList; +}; +i.prototype.GetControllerCount = function() { +return this.m_controllerCount; +}; +i.CreateFixtureShapeDensity_s_def = new si(); +i.SetMassData_s_oldCenter = new P(); +i.ResetMassData_s_localCenter = new P(); +i.ResetMassData_s_oldCenter = new P(); +i.ResetMassData_s_massData = new Ze(); +i.SynchronizeFixtures_s_xf1 = new N(); +return i; +})(); +(function(t) { +t[t.e_unknownJoint = 0] = "e_unknownJoint"; +t[t.e_revoluteJoint = 1] = "e_revoluteJoint"; +t[t.e_prismaticJoint = 2] = "e_prismaticJoint"; +t[t.e_distanceJoint = 3] = "e_distanceJoint"; +t[t.e_pulleyJoint = 4] = "e_pulleyJoint"; +t[t.e_mouseJoint = 5] = "e_mouseJoint"; +t[t.e_gearJoint = 6] = "e_gearJoint"; +t[t.e_wheelJoint = 7] = "e_wheelJoint"; +t[t.e_weldJoint = 8] = "e_weldJoint"; +t[t.e_frictionJoint = 9] = "e_frictionJoint"; +t[t.e_ropeJoint = 10] = "e_ropeJoint"; +t[t.e_motorJoint = 11] = "e_motorJoint"; +t[t.e_areaJoint = 12] = "e_areaJoint"; +})(t.b2JointType || (t.b2JointType = {})); +(function(t) { +t[t.e_inactiveLimit = 0] = "e_inactiveLimit"; +t[t.e_atLowerLimit = 1] = "e_atLowerLimit"; +t[t.e_atUpperLimit = 2] = "e_atUpperLimit"; +t[t.e_equalLimits = 3] = "e_equalLimits"; +})(t.b2LimitState || (t.b2LimitState = {})); +var hi = (function() { +function t() { +this.linear = new P(); +this.angularA = 0; +this.angularB = 0; +} +t.prototype.SetZero = function() { +this.linear.SetZero(); +this.angularA = 0; +this.angularB = 0; +return this; +}; +t.prototype.Set = function(t, e, i) { +this.linear.Copy(t); +this.angularA = e; +this.angularB = i; +return this; +}; +return t; +})(), ui = (function() { +return function(t, e) { +this.prev = null; +this.next = null; +this.joint = t; +this.other = e; +}; +})(), _i = (function() { +return function(e) { +this.type = t.b2JointType.e_unknownJoint; +this.userData = null; +this.collideConnected = !1; +this.type = e; +}; +})(), fi = (function() { +function i(i) { +this.m_type = t.b2JointType.e_unknownJoint; +this.m_prev = null; +this.m_next = null; +this.m_index = 0; +this.m_islandFlag = !1; +this.m_collideConnected = !1; +this.m_userData = null; +this.m_type = i.type; +this.m_edgeA = new ui(this, i.bodyB); +this.m_edgeB = new ui(this, i.bodyA); +this.m_bodyA = i.bodyA; +this.m_bodyB = i.bodyB; +this.m_collideConnected = e(i.collideConnected, !1); +this.m_userData = i.userData; +} +i.prototype.GetType = function() { +return this.m_type; +}; +i.prototype.GetBodyA = function() { +return this.m_bodyA; +}; +i.prototype.GetBodyB = function() { +return this.m_bodyB; +}; +i.prototype.GetNext = function() { +return this.m_next; +}; +i.prototype.GetUserData = function() { +return this.m_userData; +}; +i.prototype.SetUserData = function(t) { +this.m_userData = t; +}; +i.prototype.IsActive = function() { +return this.m_bodyA.IsActive() && this.m_bodyB.IsActive(); +}; +i.prototype.GetCollideConnected = function() { +return this.m_collideConnected; +}; +i.prototype.Dump = function(t) { +t("// Dump is not supported for this joint type.\n"); +}; +i.prototype.ShiftOrigin = function(t) {}; +return i; +})(), di = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2JointType.e_distanceJoint) || this; +i.localAnchorA = new P(); +i.localAnchorB = new P(); +i.length = 1; +i.frequencyHz = 0; +i.dampingRatio = 0; +return i; +} +i.prototype.Initialize = function(t, e, i, n) { +this.bodyA = t; +this.bodyB = e; +this.bodyA.GetLocalPoint(i, this.localAnchorA); +this.bodyB.GetLocalPoint(n, this.localAnchorB); +this.length = P.DistanceVV(i, n); +this.frequencyHz = 0; +this.dampingRatio = 0; +}; +return i; +})(_i), mi = (function(t) { +$e(i, t); +function i(i) { +var n = t.call(this, i) || this; +n.m_frequencyHz = 0; +n.m_dampingRatio = 0; +n.m_bias = 0; +n.m_localAnchorA = new P(); +n.m_localAnchorB = new P(); +n.m_gamma = 0; +n.m_impulse = 0; +n.m_length = 0; +n.m_indexA = 0; +n.m_indexB = 0; +n.m_u = new P(); +n.m_rA = new P(); +n.m_rB = new P(); +n.m_localCenterA = new P(); +n.m_localCenterB = new P(); +n.m_invMassA = 0; +n.m_invMassB = 0; +n.m_invIA = 0; +n.m_invIB = 0; +n.m_mass = 0; +n.m_qA = new V(); +n.m_qB = new V(); +n.m_lalcA = new P(); +n.m_lalcB = new P(); +n.m_frequencyHz = e(i.frequencyHz, 0); +n.m_dampingRatio = e(i.dampingRatio, 0); +n.m_localAnchorA.Copy(i.localAnchorA); +n.m_localAnchorB.Copy(i.localAnchorB); +n.m_length = i.length; +return n; +} +i.prototype.GetAnchorA = function(t) { +return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); +}; +i.prototype.GetAnchorB = function(t) { +return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); +}; +i.prototype.GetReactionForce = function(t, e) { +e.x = t * this.m_impulse * this.m_u.x; +e.y = t * this.m_impulse * this.m_u.y; +return e; +}; +i.prototype.GetReactionTorque = function(t) { +return 0; +}; +i.prototype.GetLocalAnchorA = function() { +return this.m_localAnchorA; +}; +i.prototype.GetLocalAnchorB = function() { +return this.m_localAnchorB; +}; +i.prototype.SetLength = function(t) { +this.m_length = t; +}; +i.prototype.Length = function() { +return this.m_length; +}; +i.prototype.SetFrequency = function(t) { +this.m_frequencyHz = t; +}; +i.prototype.GetFrequency = function() { +return this.m_frequencyHz; +}; +i.prototype.SetDampingRatio = function(t) { +this.m_dampingRatio = t; +}; +i.prototype.GetDampingRatio = function() { +return this.m_dampingRatio; +}; +i.prototype.Dump = function(t) { +var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; +t(" const jd: b2DistanceJointDef = new b2DistanceJointDef();\n"); +t(" jd.bodyA = bodies[%d];\n", e); +t(" jd.bodyB = bodies[%d];\n", i); +t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); +t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); +t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); +t(" jd.length = %.15f;\n", this.m_length); +t(" jd.frequencyHz = %.15f;\n", this.m_frequencyHz); +t(" jd.dampingRatio = %.15f;\n", this.m_dampingRatio); +t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); +}; +i.prototype.InitVelocityConstraints = function(t) { +this.m_indexA = this.m_bodyA.m_islandIndex; +this.m_indexB = this.m_bodyB.m_islandIndex; +this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); +this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); +this.m_invMassA = this.m_bodyA.m_invMass; +this.m_invMassB = this.m_bodyB.m_invMass; +this.m_invIA = this.m_bodyA.m_invI; +this.m_invIB = this.m_bodyB.m_invI; +var e = t.positions[this.m_indexA].c, n = t.positions[this.m_indexA].a, r = t.velocities[this.m_indexA].v, o = t.velocities[this.m_indexA].w, a = t.positions[this.m_indexB].c, l = t.positions[this.m_indexB].a, h = t.velocities[this.m_indexB].v, u = t.velocities[this.m_indexB].w, _ = this.m_qA.SetAngle(n), f = this.m_qB.SetAngle(l); +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +V.MulRV(_, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +V.MulRV(f, this.m_lalcB, this.m_rB); +this.m_u.x = a.x + this.m_rB.x - e.x - this.m_rA.x; +this.m_u.y = a.y + this.m_rB.y - e.y - this.m_rA.y; +var d = this.m_u.Length(); +d > c ? this.m_u.SelfMul(1 / d) : this.m_u.SetZero(); +var m = P.CrossVV(this.m_rA, this.m_u), p = P.CrossVV(this.m_rB, this.m_u), v = this.m_invMassA + this.m_invIA * m * m + this.m_invMassB + this.m_invIB * p * p; +this.m_mass = 0 !== v ? 1 / v : 0; +if (this.m_frequencyHz > 0) { +var y = d - this.m_length, g = 2 * s * this.m_frequencyHz, x = 2 * this.m_mass * this.m_dampingRatio * g, C = this.m_mass * g * g, b = t.step.dt; +this.m_gamma = b * (x + b * C); +this.m_gamma = 0 !== this.m_gamma ? 1 / this.m_gamma : 0; +this.m_bias = y * b * C * this.m_gamma; +v += this.m_gamma; +this.m_mass = 0 !== v ? 1 / v : 0; +} else { +this.m_gamma = 0; +this.m_bias = 0; +} +if (t.step.warmStarting) { +this.m_impulse *= t.step.dtRatio; +var A = P.MulSV(this.m_impulse, this.m_u, i.InitVelocityConstraints_s_P); +r.SelfMulSub(this.m_invMassA, A); +o -= this.m_invIA * P.CrossVV(this.m_rA, A); +h.SelfMulAdd(this.m_invMassB, A); +u += this.m_invIB * P.CrossVV(this.m_rB, A); +} else this.m_impulse = 0; +t.velocities[this.m_indexA].w = o; +t.velocities[this.m_indexB].w = u; +}; +i.prototype.SolveVelocityConstraints = function(t) { +var e = t.velocities[this.m_indexA].v, n = t.velocities[this.m_indexA].w, r = t.velocities[this.m_indexB].v, s = t.velocities[this.m_indexB].w, o = P.AddVCrossSV(e, n, this.m_rA, i.SolveVelocityConstraints_s_vpA), a = P.AddVCrossSV(r, s, this.m_rB, i.SolveVelocityConstraints_s_vpB), c = P.DotVV(this.m_u, P.SubVV(a, o, P.s_t0)), l = -this.m_mass * (c + this.m_bias + this.m_gamma * this.m_impulse); +this.m_impulse += l; +var h = P.MulSV(l, this.m_u, i.SolveVelocityConstraints_s_P); +e.SelfMulSub(this.m_invMassA, h); +n -= this.m_invIA * P.CrossVV(this.m_rA, h); +r.SelfMulAdd(this.m_invMassB, h); +s += this.m_invIB * P.CrossVV(this.m_rB, h); +t.velocities[this.m_indexA].w = n; +t.velocities[this.m_indexB].w = s; +}; +i.prototype.SolvePositionConstraints = function(t) { +if (this.m_frequencyHz > 0) return !0; +var e = t.positions[this.m_indexA].c, n = t.positions[this.m_indexA].a, r = t.positions[this.m_indexB].c, s = t.positions[this.m_indexB].a, o = this.m_qA.SetAngle(n), a = this.m_qB.SetAngle(s), l = V.MulRV(o, this.m_lalcA, this.m_rA), h = V.MulRV(a, this.m_lalcB, this.m_rB), u = this.m_u; +u.x = r.x + h.x - e.x - l.x; +u.y = r.y + h.y - e.y - l.y; +var _ = this.m_u.Normalize() - this.m_length; +_ = C(_, -.2, .2); +var f = -this.m_mass * _, d = P.MulSV(f, u, i.SolvePositionConstraints_s_P); +e.SelfMulSub(this.m_invMassA, d); +n -= this.m_invIA * P.CrossVV(l, d); +r.SelfMulAdd(this.m_invMassB, d); +s += this.m_invIB * P.CrossVV(h, d); +t.positions[this.m_indexA].a = n; +t.positions[this.m_indexB].a = s; +return y(_) < c; +}; +i.InitVelocityConstraints_s_P = new P(); +i.SolveVelocityConstraints_s_vpA = new P(); +i.SolveVelocityConstraints_s_vpB = new P(); +i.SolveVelocityConstraints_s_P = new P(); +i.SolvePositionConstraints_s_P = new P(); +return i; +})(fi), pi = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2JointType.e_areaJoint) || this; +i.bodies = []; +i.frequencyHz = 0; +i.dampingRatio = 0; +return i; +} +i.prototype.AddBody = function(t) { +this.bodies.push(t); +1 === this.bodies.length ? this.bodyA = t : 2 === this.bodies.length && (this.bodyB = t); +}; +return i; +})(_i), vi = (function(t) { +$e(i, t); +function i(i) { +var n = t.call(this, i) || this; +n.m_frequencyHz = 0; +n.m_dampingRatio = 0; +n.m_impulse = 0; +n.m_targetArea = 0; +n.m_bodies = i.bodies; +n.m_frequencyHz = e(i.frequencyHz, 0); +n.m_dampingRatio = e(i.dampingRatio, 0); +n.m_targetLengths = m(i.bodies.length); +n.m_normals = P.MakeArray(i.bodies.length); +n.m_joints = []; +n.m_deltas = P.MakeArray(i.bodies.length); +n.m_delta = new P(); +var r = new di(); +r.frequencyHz = n.m_frequencyHz; +r.dampingRatio = n.m_dampingRatio; +n.m_targetArea = 0; +for (var s = 0; s < n.m_bodies.length; ++s) { +var o = n.m_bodies[s], a = n.m_bodies[(s + 1) % n.m_bodies.length], c = o.GetWorldCenter(), l = a.GetWorldCenter(); +n.m_targetLengths[s] = P.DistanceVV(c, l); +n.m_targetArea += P.CrossVV(c, l); +r.Initialize(o, a, c, l); +n.m_joints[s] = o.GetWorld().CreateJoint(r); +} +n.m_targetArea *= .5; +return n; +} +i.prototype.GetAnchorA = function(t) { +return t; +}; +i.prototype.GetAnchorB = function(t) { +return t; +}; +i.prototype.GetReactionForce = function(t, e) { +return e; +}; +i.prototype.GetReactionTorque = function(t) { +return 0; +}; +i.prototype.SetFrequency = function(t) { +this.m_frequencyHz = t; +for (var e = 0; e < this.m_joints.length; ++e) this.m_joints[e].SetFrequency(t); +}; +i.prototype.GetFrequency = function() { +return this.m_frequencyHz; +}; +i.prototype.SetDampingRatio = function(t) { +this.m_dampingRatio = t; +for (var e = 0; e < this.m_joints.length; ++e) this.m_joints[e].SetDampingRatio(t); +}; +i.prototype.GetDampingRatio = function() { +return this.m_dampingRatio; +}; +i.prototype.Dump = function(t) { +t("Area joint dumping is not supported.\n"); +}; +i.prototype.InitVelocityConstraints = function(t) { +for (var e = 0; e < this.m_bodies.length; ++e) { +var i = this.m_bodies[(e + this.m_bodies.length - 1) % this.m_bodies.length], n = this.m_bodies[(e + 1) % this.m_bodies.length], r = t.positions[i.m_islandIndex].c, s = t.positions[n.m_islandIndex].c, o = this.m_deltas[e]; +P.SubVV(s, r, o); +} +if (t.step.warmStarting) { +this.m_impulse *= t.step.dtRatio; +for (e = 0; e < this.m_bodies.length; ++e) { +var a = this.m_bodies[e], c = t.velocities[a.m_islandIndex].v; +o = this.m_deltas[e]; +c.x += a.m_invMass * o.y * .5 * this.m_impulse; +c.y += a.m_invMass * -o.x * .5 * this.m_impulse; +} +} else this.m_impulse = 0; +}; +i.prototype.SolveVelocityConstraints = function(t) { +for (var e = 0, i = 0, n = 0; n < this.m_bodies.length; ++n) { +var r = this.m_bodies[n], s = t.velocities[r.m_islandIndex].v; +e += (a = this.m_deltas[n]).LengthSquared() / r.GetMass(); +i += P.CrossVV(s, a); +} +var o = -2 * i / e; +this.m_impulse += o; +for (n = 0; n < this.m_bodies.length; ++n) { +r = this.m_bodies[n], s = t.velocities[r.m_islandIndex].v; +var a = this.m_deltas[n]; +s.x += r.m_invMass * a.y * .5 * o; +s.y += r.m_invMass * -a.x * .5 * o; +} +}; +i.prototype.SolvePositionConstraints = function(t) { +for (var e = 0, i = 0, r = 0; r < this.m_bodies.length; ++r) { +var s = this.m_bodies[r], o = this.m_bodies[(r + 1) % this.m_bodies.length], a = t.positions[s.m_islandIndex].c, l = t.positions[o.m_islandIndex].c, h = (f = P.SubVV(l, a, this.m_delta)).Length(); +h < n && (h = 1); +this.m_normals[r].x = f.y / h; +this.m_normals[r].y = -f.x / h; +e += h; +i += P.CrossVV(a, l); +} +i *= .5; +var u = .5 * (this.m_targetArea - i) / e, _ = !0; +for (r = 0; r < this.m_bodies.length; ++r) { +s = this.m_bodies[r], a = t.positions[s.m_islandIndex].c; +var f, d = (r + 1) % this.m_bodies.length; +(f = P.AddVV(this.m_normals[r], this.m_normals[d], this.m_delta)).SelfMul(u); +var m = f.LengthSquared(); +m > A(.2) && f.SelfMul(.2 / w(m)); +m > A(c) && (_ = !1); +a.x += f.x; +a.y += f.y; +} +return _; +}; +return i; +})(fi), yi = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2JointType.e_frictionJoint) || this; +i.localAnchorA = new P(); +i.localAnchorB = new P(); +i.maxForce = 0; +i.maxTorque = 0; +return i; +} +i.prototype.Initialize = function(t, e, i) { +this.bodyA = t; +this.bodyB = e; +this.bodyA.GetLocalPoint(i, this.localAnchorA); +this.bodyB.GetLocalPoint(i, this.localAnchorB); +}; +return i; +})(_i), gi = (function(t) { +$e(i, t); +function i(i) { +var n = t.call(this, i) || this; +n.m_localAnchorA = new P(); +n.m_localAnchorB = new P(); +n.m_linearImpulse = new P(); +n.m_angularImpulse = 0; +n.m_maxForce = 0; +n.m_maxTorque = 0; +n.m_indexA = 0; +n.m_indexB = 0; +n.m_rA = new P(); +n.m_rB = new P(); +n.m_localCenterA = new P(); +n.m_localCenterB = new P(); +n.m_invMassA = 0; +n.m_invMassB = 0; +n.m_invIA = 0; +n.m_invIB = 0; +n.m_linearMass = new F(); +n.m_angularMass = 0; +n.m_qA = new V(); +n.m_qB = new V(); +n.m_lalcA = new P(); +n.m_lalcB = new P(); +n.m_K = new F(); +n.m_localAnchorA.Copy(i.localAnchorA); +n.m_localAnchorB.Copy(i.localAnchorB); +n.m_linearImpulse.SetZero(); +n.m_maxForce = e(i.maxForce, 0); +n.m_maxTorque = e(i.maxTorque, 0); +n.m_linearMass.SetZero(); +return n; +} +i.prototype.InitVelocityConstraints = function(t) { +this.m_indexA = this.m_bodyA.m_islandIndex; +this.m_indexB = this.m_bodyB.m_islandIndex; +this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); +this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); +this.m_invMassA = this.m_bodyA.m_invMass; +this.m_invMassB = this.m_bodyB.m_invMass; +this.m_invIA = this.m_bodyA.m_invI; +this.m_invIB = this.m_bodyB.m_invI; +var e = t.positions[this.m_indexA].a, i = t.velocities[this.m_indexA].v, n = t.velocities[this.m_indexA].w, r = t.positions[this.m_indexB].a, s = t.velocities[this.m_indexB].v, o = t.velocities[this.m_indexB].w, a = this.m_qA.SetAngle(e), c = this.m_qB.SetAngle(r); +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +var l = V.MulRV(a, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +var h = V.MulRV(c, this.m_lalcB, this.m_rB), u = this.m_invMassA, _ = this.m_invMassB, f = this.m_invIA, d = this.m_invIB, m = this.m_K; +m.ex.x = u + _ + f * l.y * l.y + d * h.y * h.y; +m.ex.y = -f * l.x * l.y - d * h.x * h.y; +m.ey.x = m.ex.y; +m.ey.y = u + _ + f * l.x * l.x + d * h.x * h.x; +m.GetInverse(this.m_linearMass); +this.m_angularMass = f + d; +this.m_angularMass > 0 && (this.m_angularMass = 1 / this.m_angularMass); +if (t.step.warmStarting) { +this.m_linearImpulse.SelfMul(t.step.dtRatio); +this.m_angularImpulse *= t.step.dtRatio; +var p = this.m_linearImpulse; +i.SelfMulSub(u, p); +n -= f * (P.CrossVV(this.m_rA, p) + this.m_angularImpulse); +s.SelfMulAdd(_, p); +o += d * (P.CrossVV(this.m_rB, p) + this.m_angularImpulse); +} else { +this.m_linearImpulse.SetZero(); +this.m_angularImpulse = 0; +} +t.velocities[this.m_indexA].w = n; +t.velocities[this.m_indexB].w = o; +}; +i.prototype.SolveVelocityConstraints = function(t) { +var e = t.velocities[this.m_indexA].v, n = t.velocities[this.m_indexA].w, r = t.velocities[this.m_indexB].v, s = t.velocities[this.m_indexB].w, o = this.m_invMassA, a = this.m_invMassB, c = this.m_invIA, l = this.m_invIB, h = t.step.dt, u = s - n, _ = -this.m_angularMass * u, f = this.m_angularImpulse, d = h * this.m_maxTorque; +this.m_angularImpulse = C(this.m_angularImpulse + _, -d, d); +n -= c * (_ = this.m_angularImpulse - f); +s += l * _; +var m = P.SubVV(P.AddVCrossSV(r, s, this.m_rB, P.s_t0), P.AddVCrossSV(e, n, this.m_rA, P.s_t1), i.SolveVelocityConstraints_s_Cdot_v2), p = F.MulMV(this.m_linearMass, m, i.SolveVelocityConstraints_s_impulseV).SelfNeg(), v = i.SolveVelocityConstraints_s_oldImpulseV.Copy(this.m_linearImpulse); +this.m_linearImpulse.SelfAdd(p); +d = h * this.m_maxForce; +if (this.m_linearImpulse.LengthSquared() > d * d) { +this.m_linearImpulse.Normalize(); +this.m_linearImpulse.SelfMul(d); +} +P.SubVV(this.m_linearImpulse, v, p); +e.SelfMulSub(o, p); +n -= c * P.CrossVV(this.m_rA, p); +r.SelfMulAdd(a, p); +s += l * P.CrossVV(this.m_rB, p); +t.velocities[this.m_indexA].w = n; +t.velocities[this.m_indexB].w = s; +}; +i.prototype.SolvePositionConstraints = function(t) { +return !0; +}; +i.prototype.GetAnchorA = function(t) { +return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); +}; +i.prototype.GetAnchorB = function(t) { +return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); +}; +i.prototype.GetReactionForce = function(t, e) { +e.x = t * this.m_linearImpulse.x; +e.y = t * this.m_linearImpulse.y; +return e; +}; +i.prototype.GetReactionTorque = function(t) { +return t * this.m_angularImpulse; +}; +i.prototype.GetLocalAnchorA = function() { +return this.m_localAnchorA; +}; +i.prototype.GetLocalAnchorB = function() { +return this.m_localAnchorB; +}; +i.prototype.SetMaxForce = function(t) { +this.m_maxForce = t; +}; +i.prototype.GetMaxForce = function() { +return this.m_maxForce; +}; +i.prototype.SetMaxTorque = function(t) { +this.m_maxTorque = t; +}; +i.prototype.GetMaxTorque = function() { +return this.m_maxTorque; +}; +i.prototype.Dump = function(t) { +var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; +t(" const jd: b2FrictionJointDef = new b2FrictionJointDef();\n"); +t(" jd.bodyA = bodies[%d];\n", e); +t(" jd.bodyB = bodies[%d];\n", i); +t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); +t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); +t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); +t(" jd.maxForce = %.15f;\n", this.m_maxForce); +t(" jd.maxTorque = %.15f;\n", this.m_maxTorque); +t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); +}; +i.SolveVelocityConstraints_s_Cdot_v2 = new P(); +i.SolveVelocityConstraints_s_impulseV = new P(); +i.SolveVelocityConstraints_s_oldImpulseV = new P(); +return i; +})(fi), xi = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2JointType.e_gearJoint) || this; +i.ratio = 1; +return i; +} +return i; +})(_i), Ci = (function(i) { +$e(n, i); +function n(n) { +var r, s, o = i.call(this, n) || this; +o.m_typeA = t.b2JointType.e_unknownJoint; +o.m_typeB = t.b2JointType.e_unknownJoint; +o.m_localAnchorA = new P(); +o.m_localAnchorB = new P(); +o.m_localAnchorC = new P(); +o.m_localAnchorD = new P(); +o.m_localAxisC = new P(); +o.m_localAxisD = new P(); +o.m_referenceAngleA = 0; +o.m_referenceAngleB = 0; +o.m_constant = 0; +o.m_ratio = 0; +o.m_impulse = 0; +o.m_indexA = 0; +o.m_indexB = 0; +o.m_indexC = 0; +o.m_indexD = 0; +o.m_lcA = new P(); +o.m_lcB = new P(); +o.m_lcC = new P(); +o.m_lcD = new P(); +o.m_mA = 0; +o.m_mB = 0; +o.m_mC = 0; +o.m_mD = 0; +o.m_iA = 0; +o.m_iB = 0; +o.m_iC = 0; +o.m_iD = 0; +o.m_JvAC = new P(); +o.m_JvBD = new P(); +o.m_JwA = 0; +o.m_JwB = 0; +o.m_JwC = 0; +o.m_JwD = 0; +o.m_mass = 0; +o.m_qA = new V(); +o.m_qB = new V(); +o.m_qC = new V(); +o.m_qD = new V(); +o.m_lalcA = new P(); +o.m_lalcB = new P(); +o.m_lalcC = new P(); +o.m_lalcD = new P(); +o.m_joint1 = n.joint1; +o.m_joint2 = n.joint2; +o.m_typeA = o.m_joint1.GetType(); +o.m_typeB = o.m_joint2.GetType(); +o.m_bodyC = o.m_joint1.GetBodyA(); +o.m_bodyA = o.m_joint1.GetBodyB(); +var a = o.m_bodyA.m_xf, c = o.m_bodyA.m_sweep.a, l = o.m_bodyC.m_xf, h = o.m_bodyC.m_sweep.a; +if (o.m_typeA === t.b2JointType.e_revoluteJoint) { +var u = n.joint1; +o.m_localAnchorC.Copy(u.m_localAnchorA); +o.m_localAnchorA.Copy(u.m_localAnchorB); +o.m_referenceAngleA = u.m_referenceAngle; +o.m_localAxisC.SetZero(); +r = c - h - o.m_referenceAngleA; +} else { +var _ = n.joint1; +o.m_localAnchorC.Copy(_.m_localAnchorA); +o.m_localAnchorA.Copy(_.m_localAnchorB); +o.m_referenceAngleA = _.m_referenceAngle; +o.m_localAxisC.Copy(_.m_localXAxisA); +var f = o.m_localAnchorC, d = V.MulTRV(l.q, P.AddVV(V.MulRV(a.q, o.m_localAnchorA, P.s_t0), P.SubVV(a.p, l.p, P.s_t1), P.s_t0), P.s_t0); +r = P.DotVV(P.SubVV(d, f, P.s_t0), o.m_localAxisC); +} +o.m_bodyD = o.m_joint2.GetBodyA(); +o.m_bodyB = o.m_joint2.GetBodyB(); +var m = o.m_bodyB.m_xf, p = o.m_bodyB.m_sweep.a, v = o.m_bodyD.m_xf, y = o.m_bodyD.m_sweep.a; +if (o.m_typeB === t.b2JointType.e_revoluteJoint) { +u = n.joint2; +o.m_localAnchorD.Copy(u.m_localAnchorA); +o.m_localAnchorB.Copy(u.m_localAnchorB); +o.m_referenceAngleB = u.m_referenceAngle; +o.m_localAxisD.SetZero(); +s = p - y - o.m_referenceAngleB; +} else { +_ = n.joint2; +o.m_localAnchorD.Copy(_.m_localAnchorA); +o.m_localAnchorB.Copy(_.m_localAnchorB); +o.m_referenceAngleB = _.m_referenceAngle; +o.m_localAxisD.Copy(_.m_localXAxisA); +var g = o.m_localAnchorD, x = V.MulTRV(v.q, P.AddVV(V.MulRV(m.q, o.m_localAnchorB, P.s_t0), P.SubVV(m.p, v.p, P.s_t1), P.s_t0), P.s_t0); +s = P.DotVV(P.SubVV(x, g, P.s_t0), o.m_localAxisD); +} +o.m_ratio = e(n.ratio, 1); +o.m_constant = r + o.m_ratio * s; +o.m_impulse = 0; +return o; +} +n.prototype.InitVelocityConstraints = function(e) { +this.m_indexA = this.m_bodyA.m_islandIndex; +this.m_indexB = this.m_bodyB.m_islandIndex; +this.m_indexC = this.m_bodyC.m_islandIndex; +this.m_indexD = this.m_bodyD.m_islandIndex; +this.m_lcA.Copy(this.m_bodyA.m_sweep.localCenter); +this.m_lcB.Copy(this.m_bodyB.m_sweep.localCenter); +this.m_lcC.Copy(this.m_bodyC.m_sweep.localCenter); +this.m_lcD.Copy(this.m_bodyD.m_sweep.localCenter); +this.m_mA = this.m_bodyA.m_invMass; +this.m_mB = this.m_bodyB.m_invMass; +this.m_mC = this.m_bodyC.m_invMass; +this.m_mD = this.m_bodyD.m_invMass; +this.m_iA = this.m_bodyA.m_invI; +this.m_iB = this.m_bodyB.m_invI; +this.m_iC = this.m_bodyC.m_invI; +this.m_iD = this.m_bodyD.m_invI; +var i = e.positions[this.m_indexA].a, r = e.velocities[this.m_indexA].v, s = e.velocities[this.m_indexA].w, o = e.positions[this.m_indexB].a, a = e.velocities[this.m_indexB].v, c = e.velocities[this.m_indexB].w, l = e.positions[this.m_indexC].a, h = e.velocities[this.m_indexC].v, u = e.velocities[this.m_indexC].w, _ = e.positions[this.m_indexD].a, f = e.velocities[this.m_indexD].v, d = e.velocities[this.m_indexD].w, m = this.m_qA.SetAngle(i), p = this.m_qB.SetAngle(o), v = this.m_qC.SetAngle(l), y = this.m_qD.SetAngle(_); +this.m_mass = 0; +if (this.m_typeA === t.b2JointType.e_revoluteJoint) { +this.m_JvAC.SetZero(); +this.m_JwA = 1; +this.m_JwC = 1; +this.m_mass += this.m_iA + this.m_iC; +} else { +var g = V.MulRV(v, this.m_localAxisC, n.InitVelocityConstraints_s_u); +P.SubVV(this.m_localAnchorC, this.m_lcC, this.m_lalcC); +var x = V.MulRV(v, this.m_lalcC, n.InitVelocityConstraints_s_rC); +P.SubVV(this.m_localAnchorA, this.m_lcA, this.m_lalcA); +var C = V.MulRV(m, this.m_lalcA, n.InitVelocityConstraints_s_rA); +this.m_JvAC.Copy(g); +this.m_JwC = P.CrossVV(x, g); +this.m_JwA = P.CrossVV(C, g); +this.m_mass += this.m_mC + this.m_mA + this.m_iC * this.m_JwC * this.m_JwC + this.m_iA * this.m_JwA * this.m_JwA; +} +if (this.m_typeB === t.b2JointType.e_revoluteJoint) { +this.m_JvBD.SetZero(); +this.m_JwB = this.m_ratio; +this.m_JwD = this.m_ratio; +this.m_mass += this.m_ratio * this.m_ratio * (this.m_iB + this.m_iD); +} else { +g = V.MulRV(y, this.m_localAxisD, n.InitVelocityConstraints_s_u); +P.SubVV(this.m_localAnchorD, this.m_lcD, this.m_lalcD); +var b = V.MulRV(y, this.m_lalcD, n.InitVelocityConstraints_s_rD); +P.SubVV(this.m_localAnchorB, this.m_lcB, this.m_lalcB); +var A = V.MulRV(p, this.m_lalcB, n.InitVelocityConstraints_s_rB); +P.MulSV(this.m_ratio, g, this.m_JvBD); +this.m_JwD = this.m_ratio * P.CrossVV(b, g); +this.m_JwB = this.m_ratio * P.CrossVV(A, g); +this.m_mass += this.m_ratio * this.m_ratio * (this.m_mD + this.m_mB) + this.m_iD * this.m_JwD * this.m_JwD + this.m_iB * this.m_JwB * this.m_JwB; +} +this.m_mass = this.m_mass > 0 ? 1 / this.m_mass : 0; +if (e.step.warmStarting) { +r.SelfMulAdd(this.m_mA * this.m_impulse, this.m_JvAC); +s += this.m_iA * this.m_impulse * this.m_JwA; +a.SelfMulAdd(this.m_mB * this.m_impulse, this.m_JvBD); +c += this.m_iB * this.m_impulse * this.m_JwB; +h.SelfMulSub(this.m_mC * this.m_impulse, this.m_JvAC); +u -= this.m_iC * this.m_impulse * this.m_JwC; +f.SelfMulSub(this.m_mD * this.m_impulse, this.m_JvBD); +d -= this.m_iD * this.m_impulse * this.m_JwD; +} else this.m_impulse = 0; +e.velocities[this.m_indexA].w = s; +e.velocities[this.m_indexB].w = c; +e.velocities[this.m_indexC].w = u; +e.velocities[this.m_indexD].w = d; +}; +n.prototype.SolveVelocityConstraints = function(t) { +var e = t.velocities[this.m_indexA].v, i = t.velocities[this.m_indexA].w, n = t.velocities[this.m_indexB].v, r = t.velocities[this.m_indexB].w, s = t.velocities[this.m_indexC].v, o = t.velocities[this.m_indexC].w, a = t.velocities[this.m_indexD].v, c = t.velocities[this.m_indexD].w, l = P.DotVV(this.m_JvAC, P.SubVV(e, s, P.s_t0)) + P.DotVV(this.m_JvBD, P.SubVV(n, a, P.s_t0)); +l += this.m_JwA * i - this.m_JwC * o + (this.m_JwB * r - this.m_JwD * c); +var h = -this.m_mass * l; +this.m_impulse += h; +e.SelfMulAdd(this.m_mA * h, this.m_JvAC); +i += this.m_iA * h * this.m_JwA; +n.SelfMulAdd(this.m_mB * h, this.m_JvBD); +r += this.m_iB * h * this.m_JwB; +s.SelfMulSub(this.m_mC * h, this.m_JvAC); +o -= this.m_iC * h * this.m_JwC; +a.SelfMulSub(this.m_mD * h, this.m_JvBD); +c -= this.m_iD * h * this.m_JwD; +t.velocities[this.m_indexA].w = i; +t.velocities[this.m_indexB].w = r; +t.velocities[this.m_indexC].w = o; +t.velocities[this.m_indexD].w = c; +}; +n.prototype.SolvePositionConstraints = function(e) { +var i, r, s, o, a, l, h = e.positions[this.m_indexA].c, u = e.positions[this.m_indexA].a, _ = e.positions[this.m_indexB].c, f = e.positions[this.m_indexB].a, d = e.positions[this.m_indexC].c, m = e.positions[this.m_indexC].a, p = e.positions[this.m_indexD].c, v = e.positions[this.m_indexD].a, y = this.m_qA.SetAngle(u), g = this.m_qB.SetAngle(f), x = this.m_qC.SetAngle(m), C = this.m_qD.SetAngle(v), b = this.m_JvAC, A = this.m_JvBD, S = 0; +if (this.m_typeA === t.b2JointType.e_revoluteJoint) { +b.SetZero(); +s = 1; +a = 1; +S += this.m_iA + this.m_iC; +i = u - m - this.m_referenceAngleA; +} else { +var w = V.MulRV(x, this.m_localAxisC, n.SolvePositionConstraints_s_u), T = V.MulRV(x, this.m_lalcC, n.SolvePositionConstraints_s_rC), E = V.MulRV(y, this.m_lalcA, n.SolvePositionConstraints_s_rA); +b.Copy(w); +a = P.CrossVV(T, w); +s = P.CrossVV(E, w); +S += this.m_mC + this.m_mA + this.m_iC * a * a + this.m_iA * s * s; +var M = this.m_lalcC, B = V.MulTRV(x, P.AddVV(E, P.SubVV(h, d, P.s_t0), P.s_t0), P.s_t0); +i = P.DotVV(P.SubVV(B, M, P.s_t0), this.m_localAxisC); +} +if (this.m_typeB === t.b2JointType.e_revoluteJoint) { +A.SetZero(); +o = this.m_ratio; +l = this.m_ratio; +S += this.m_ratio * this.m_ratio * (this.m_iB + this.m_iD); +r = f - v - this.m_referenceAngleB; +} else { +w = V.MulRV(C, this.m_localAxisD, n.SolvePositionConstraints_s_u); +var D = V.MulRV(C, this.m_lalcD, n.SolvePositionConstraints_s_rD), I = V.MulRV(g, this.m_lalcB, n.SolvePositionConstraints_s_rB); +P.MulSV(this.m_ratio, w, A); +l = this.m_ratio * P.CrossVV(D, w); +o = this.m_ratio * P.CrossVV(I, w); +S += this.m_ratio * this.m_ratio * (this.m_mD + this.m_mB) + this.m_iD * l * l + this.m_iB * o * o; +var R = this.m_lalcD, L = V.MulTRV(C, P.AddVV(I, P.SubVV(_, p, P.s_t0), P.s_t0), P.s_t0); +r = P.DotVV(P.SubVV(L, R, P.s_t0), this.m_localAxisD); +} +var F = i + this.m_ratio * r - this.m_constant, O = 0; +S > 0 && (O = -F / S); +h.SelfMulAdd(this.m_mA * O, b); +u += this.m_iA * O * s; +_.SelfMulAdd(this.m_mB * O, A); +f += this.m_iB * O * o; +d.SelfMulSub(this.m_mC * O, b); +m -= this.m_iC * O * a; +p.SelfMulSub(this.m_mD * O, A); +v -= this.m_iD * O * l; +e.positions[this.m_indexA].a = u; +e.positions[this.m_indexB].a = f; +e.positions[this.m_indexC].a = m; +e.positions[this.m_indexD].a = v; +return 0 < c; +}; +n.prototype.GetAnchorA = function(t) { +return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); +}; +n.prototype.GetAnchorB = function(t) { +return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); +}; +n.prototype.GetReactionForce = function(t, e) { +return P.MulSV(t * this.m_impulse, this.m_JvAC, e); +}; +n.prototype.GetReactionTorque = function(t) { +return t * this.m_impulse * this.m_JwA; +}; +n.prototype.GetJoint1 = function() { +return this.m_joint1; +}; +n.prototype.GetJoint2 = function() { +return this.m_joint2; +}; +n.prototype.GetRatio = function() { +return this.m_ratio; +}; +n.prototype.SetRatio = function(t) { +this.m_ratio = t; +}; +n.prototype.Dump = function(t) { +var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex, n = this.m_joint1.m_index, r = this.m_joint2.m_index; +t(" const jd: b2GearJointDef = new b2GearJointDef();\n"); +t(" jd.bodyA = bodies[%d];\n", e); +t(" jd.bodyB = bodies[%d];\n", i); +t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); +t(" jd.joint1 = joints[%d];\n", n); +t(" jd.joint2 = joints[%d];\n", r); +t(" jd.ratio = %.15f;\n", this.m_ratio); +t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); +}; +n.InitVelocityConstraints_s_u = new P(); +n.InitVelocityConstraints_s_rA = new P(); +n.InitVelocityConstraints_s_rB = new P(); +n.InitVelocityConstraints_s_rC = new P(); +n.InitVelocityConstraints_s_rD = new P(); +n.SolvePositionConstraints_s_u = new P(); +n.SolvePositionConstraints_s_rA = new P(); +n.SolvePositionConstraints_s_rB = new P(); +n.SolvePositionConstraints_s_rC = new P(); +n.SolvePositionConstraints_s_rD = new P(); +return n; +})(fi), bi = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2JointType.e_motorJoint) || this; +i.linearOffset = new P(0, 0); +i.angularOffset = 0; +i.maxForce = 1; +i.maxTorque = 1; +i.correctionFactor = .3; +return i; +} +i.prototype.Initialize = function(t, e) { +this.bodyA = t; +this.bodyB = e; +this.bodyA.GetLocalPoint(this.bodyB.GetPosition(), this.linearOffset); +var i = this.bodyA.GetAngle(), n = this.bodyB.GetAngle(); +this.angularOffset = n - i; +}; +return i; +})(_i), Ai = (function(t) { +$e(i, t); +function i(i) { +var n = t.call(this, i) || this; +n.m_linearOffset = new P(); +n.m_angularOffset = 0; +n.m_linearImpulse = new P(); +n.m_angularImpulse = 0; +n.m_maxForce = 0; +n.m_maxTorque = 0; +n.m_correctionFactor = .3; +n.m_indexA = 0; +n.m_indexB = 0; +n.m_rA = new P(); +n.m_rB = new P(); +n.m_localCenterA = new P(); +n.m_localCenterB = new P(); +n.m_linearError = new P(); +n.m_angularError = 0; +n.m_invMassA = 0; +n.m_invMassB = 0; +n.m_invIA = 0; +n.m_invIB = 0; +n.m_linearMass = new F(); +n.m_angularMass = 0; +n.m_qA = new V(); +n.m_qB = new V(); +n.m_K = new F(); +n.m_linearOffset.Copy(e(i.linearOffset, P.ZERO)); +n.m_linearImpulse.SetZero(); +n.m_maxForce = e(i.maxForce, 0); +n.m_maxTorque = e(i.maxTorque, 0); +n.m_correctionFactor = e(i.correctionFactor, .3); +return n; +} +i.prototype.GetAnchorA = function(t) { +var e = this.m_bodyA.GetPosition(); +t.x = e.x; +t.y = e.y; +return t; +}; +i.prototype.GetAnchorB = function(t) { +var e = this.m_bodyB.GetPosition(); +t.x = e.x; +t.y = e.y; +return t; +}; +i.prototype.GetReactionForce = function(t, e) { +return P.MulSV(t, this.m_linearImpulse, e); +}; +i.prototype.GetReactionTorque = function(t) { +return t * this.m_angularImpulse; +}; +i.prototype.SetLinearOffset = function(t) { +if (!P.IsEqualToV(t, this.m_linearOffset)) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_linearOffset.Copy(t); +} +}; +i.prototype.GetLinearOffset = function() { +return this.m_linearOffset; +}; +i.prototype.SetAngularOffset = function(t) { +if (t !== this.m_angularOffset) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_angularOffset = t; +} +}; +i.prototype.GetAngularOffset = function() { +return this.m_angularOffset; +}; +i.prototype.SetMaxForce = function(t) { +this.m_maxForce = t; +}; +i.prototype.GetMaxForce = function() { +return this.m_maxForce; +}; +i.prototype.SetMaxTorque = function(t) { +this.m_maxTorque = t; +}; +i.prototype.GetMaxTorque = function() { +return this.m_maxTorque; +}; +i.prototype.InitVelocityConstraints = function(t) { +this.m_indexA = this.m_bodyA.m_islandIndex; +this.m_indexB = this.m_bodyB.m_islandIndex; +this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); +this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); +this.m_invMassA = this.m_bodyA.m_invMass; +this.m_invMassB = this.m_bodyB.m_invMass; +this.m_invIA = this.m_bodyA.m_invI; +this.m_invIB = this.m_bodyB.m_invI; +var e = t.positions[this.m_indexA].c, i = t.positions[this.m_indexA].a, n = t.velocities[this.m_indexA].v, r = t.velocities[this.m_indexA].w, s = t.positions[this.m_indexB].c, o = t.positions[this.m_indexB].a, a = t.velocities[this.m_indexB].v, c = t.velocities[this.m_indexB].w, l = this.m_qA.SetAngle(i), h = this.m_qB.SetAngle(o), u = V.MulRV(l, P.SubVV(this.m_linearOffset, this.m_localCenterA, P.s_t0), this.m_rA), _ = V.MulRV(h, P.NegV(this.m_localCenterB, P.s_t0), this.m_rB), f = this.m_invMassA, d = this.m_invMassB, m = this.m_invIA, p = this.m_invIB, v = this.m_K; +v.ex.x = f + d + m * u.y * u.y + p * _.y * _.y; +v.ex.y = -m * u.x * u.y - p * _.x * _.y; +v.ey.x = v.ex.y; +v.ey.y = f + d + m * u.x * u.x + p * _.x * _.x; +v.GetInverse(this.m_linearMass); +this.m_angularMass = m + p; +this.m_angularMass > 0 && (this.m_angularMass = 1 / this.m_angularMass); +P.SubVV(P.AddVV(s, _, P.s_t0), P.AddVV(e, u, P.s_t1), this.m_linearError); +this.m_angularError = o - i - this.m_angularOffset; +if (t.step.warmStarting) { +this.m_linearImpulse.SelfMul(t.step.dtRatio); +this.m_angularImpulse *= t.step.dtRatio; +var y = this.m_linearImpulse; +n.SelfMulSub(f, y); +r -= m * (P.CrossVV(u, y) + this.m_angularImpulse); +a.SelfMulAdd(d, y); +c += p * (P.CrossVV(_, y) + this.m_angularImpulse); +} else { +this.m_linearImpulse.SetZero(); +this.m_angularImpulse = 0; +} +t.velocities[this.m_indexA].w = r; +t.velocities[this.m_indexB].w = c; +}; +i.prototype.SolveVelocityConstraints = function(t) { +var e = t.velocities[this.m_indexA].v, n = t.velocities[this.m_indexA].w, r = t.velocities[this.m_indexB].v, s = t.velocities[this.m_indexB].w, o = this.m_invMassA, a = this.m_invMassB, c = this.m_invIA, l = this.m_invIB, h = t.step.dt, u = t.step.inv_dt, _ = s - n + u * this.m_correctionFactor * this.m_angularError, f = -this.m_angularMass * _, d = this.m_angularImpulse, m = h * this.m_maxTorque; +this.m_angularImpulse = C(this.m_angularImpulse + f, -m, m); +n -= c * (f = this.m_angularImpulse - d); +s += l * f; +var p = this.m_rA, v = this.m_rB, y = P.AddVV(P.SubVV(P.AddVV(r, P.CrossSV(s, v, P.s_t0), P.s_t0), P.AddVV(e, P.CrossSV(n, p, P.s_t1), P.s_t1), P.s_t2), P.MulSV(u * this.m_correctionFactor, this.m_linearError, P.s_t3), i.SolveVelocityConstraints_s_Cdot_v2), g = F.MulMV(this.m_linearMass, y, i.SolveVelocityConstraints_s_impulse_v2).SelfNeg(), x = i.SolveVelocityConstraints_s_oldImpulse_v2.Copy(this.m_linearImpulse); +this.m_linearImpulse.SelfAdd(g); +m = h * this.m_maxForce; +if (this.m_linearImpulse.LengthSquared() > m * m) { +this.m_linearImpulse.Normalize(); +this.m_linearImpulse.SelfMul(m); +} +P.SubVV(this.m_linearImpulse, x, g); +e.SelfMulSub(o, g); +n -= c * P.CrossVV(p, g); +r.SelfMulAdd(a, g); +s += l * P.CrossVV(v, g); +t.velocities[this.m_indexA].w = n; +t.velocities[this.m_indexB].w = s; +}; +i.prototype.SolvePositionConstraints = function(t) { +return !0; +}; +i.prototype.Dump = function(t) { +var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; +t(" const jd: b2MotorJointDef = new b2MotorJointDef();\n"); +t(" jd.bodyA = bodies[%d];\n", e); +t(" jd.bodyB = bodies[%d];\n", i); +t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); +t(" jd.linearOffset.Set(%.15f, %.15f);\n", this.m_linearOffset.x, this.m_linearOffset.y); +t(" jd.angularOffset = %.15f;\n", this.m_angularOffset); +t(" jd.maxForce = %.15f;\n", this.m_maxForce); +t(" jd.maxTorque = %.15f;\n", this.m_maxTorque); +t(" jd.correctionFactor = %.15f;\n", this.m_correctionFactor); +t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); +}; +i.SolveVelocityConstraints_s_Cdot_v2 = new P(); +i.SolveVelocityConstraints_s_impulse_v2 = new P(); +i.SolveVelocityConstraints_s_oldImpulse_v2 = new P(); +return i; +})(fi), Si = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2JointType.e_mouseJoint) || this; +i.target = new P(); +i.maxForce = 0; +i.frequencyHz = 5; +i.dampingRatio = .7; +return i; +} +return i; +})(_i), wi = (function(t) { +$e(i, t); +function i(i) { +var n = t.call(this, i) || this; +n.m_localAnchorB = new P(); +n.m_targetA = new P(); +n.m_frequencyHz = 0; +n.m_dampingRatio = 0; +n.m_beta = 0; +n.m_impulse = new P(); +n.m_maxForce = 0; +n.m_gamma = 0; +n.m_indexA = 0; +n.m_indexB = 0; +n.m_rB = new P(); +n.m_localCenterB = new P(); +n.m_invMassB = 0; +n.m_invIB = 0; +n.m_mass = new F(); +n.m_C = new P(); +n.m_qB = new V(); +n.m_lalcB = new P(); +n.m_K = new F(); +n.m_targetA.Copy(e(i.target, P.ZERO)); +N.MulTXV(n.m_bodyB.GetTransform(), n.m_targetA, n.m_localAnchorB); +n.m_maxForce = e(i.maxForce, 0); +n.m_impulse.SetZero(); +n.m_frequencyHz = e(i.frequencyHz, 0); +n.m_dampingRatio = e(i.dampingRatio, 0); +n.m_beta = 0; +n.m_gamma = 0; +return n; +} +i.prototype.SetTarget = function(t) { +this.m_bodyB.IsAwake() || this.m_bodyB.SetAwake(!0); +this.m_targetA.Copy(t); +}; +i.prototype.GetTarget = function() { +return this.m_targetA; +}; +i.prototype.SetMaxForce = function(t) { +this.m_maxForce = t; +}; +i.prototype.GetMaxForce = function() { +return this.m_maxForce; +}; +i.prototype.SetFrequency = function(t) { +this.m_frequencyHz = t; +}; +i.prototype.GetFrequency = function() { +return this.m_frequencyHz; +}; +i.prototype.SetDampingRatio = function(t) { +this.m_dampingRatio = t; +}; +i.prototype.GetDampingRatio = function() { +return this.m_dampingRatio; +}; +i.prototype.InitVelocityConstraints = function(t) { +this.m_indexB = this.m_bodyB.m_islandIndex; +this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); +this.m_invMassB = this.m_bodyB.m_invMass; +this.m_invIB = this.m_bodyB.m_invI; +var e = t.positions[this.m_indexB].c, i = t.positions[this.m_indexB].a, n = t.velocities[this.m_indexB].v, r = t.velocities[this.m_indexB].w, o = this.m_qB.SetAngle(i), a = this.m_bodyB.GetMass(), c = 2 * s * this.m_frequencyHz, l = 2 * a * this.m_dampingRatio * c, h = a * (c * c), u = t.step.dt; +this.m_gamma = u * (l + u * h); +0 !== this.m_gamma && (this.m_gamma = 1 / this.m_gamma); +this.m_beta = u * h * this.m_gamma; +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +V.MulRV(o, this.m_lalcB, this.m_rB); +var _ = this.m_K; +_.ex.x = this.m_invMassB + this.m_invIB * this.m_rB.y * this.m_rB.y + this.m_gamma; +_.ex.y = -this.m_invIB * this.m_rB.x * this.m_rB.y; +_.ey.x = _.ex.y; +_.ey.y = this.m_invMassB + this.m_invIB * this.m_rB.x * this.m_rB.x + this.m_gamma; +_.GetInverse(this.m_mass); +this.m_C.x = e.x + this.m_rB.x - this.m_targetA.x; +this.m_C.y = e.y + this.m_rB.y - this.m_targetA.y; +this.m_C.SelfMul(this.m_beta); +r *= .98; +if (t.step.warmStarting) { +this.m_impulse.SelfMul(t.step.dtRatio); +n.x += this.m_invMassB * this.m_impulse.x; +n.y += this.m_invMassB * this.m_impulse.y; +r += this.m_invIB * P.CrossVV(this.m_rB, this.m_impulse); +} else this.m_impulse.SetZero(); +t.velocities[this.m_indexB].w = r; +}; +i.prototype.SolveVelocityConstraints = function(t) { +var e = t.velocities[this.m_indexB].v, n = t.velocities[this.m_indexB].w, r = P.AddVCrossSV(e, n, this.m_rB, i.SolveVelocityConstraints_s_Cdot), s = F.MulMV(this.m_mass, P.AddVV(r, P.AddVV(this.m_C, P.MulSV(this.m_gamma, this.m_impulse, P.s_t0), P.s_t0), P.s_t0).SelfNeg(), i.SolveVelocityConstraints_s_impulse), o = i.SolveVelocityConstraints_s_oldImpulse.Copy(this.m_impulse); +this.m_impulse.SelfAdd(s); +var a = t.step.dt * this.m_maxForce; +this.m_impulse.LengthSquared() > a * a && this.m_impulse.SelfMul(a / this.m_impulse.Length()); +P.SubVV(this.m_impulse, o, s); +e.SelfMulAdd(this.m_invMassB, s); +n += this.m_invIB * P.CrossVV(this.m_rB, s); +t.velocities[this.m_indexB].w = n; +}; +i.prototype.SolvePositionConstraints = function(t) { +return !0; +}; +i.prototype.GetAnchorA = function(t) { +t.x = this.m_targetA.x; +t.y = this.m_targetA.y; +return t; +}; +i.prototype.GetAnchorB = function(t) { +return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); +}; +i.prototype.GetReactionForce = function(t, e) { +return P.MulSV(t, this.m_impulse, e); +}; +i.prototype.GetReactionTorque = function(t) { +return 0; +}; +i.prototype.Dump = function(t) { +t("Mouse joint dumping is not supported.\n"); +}; +i.prototype.ShiftOrigin = function(t) { +this.m_targetA.SelfSub(t); +}; +i.SolveVelocityConstraints_s_Cdot = new P(); +i.SolveVelocityConstraints_s_impulse = new P(); +i.SolveVelocityConstraints_s_oldImpulse = new P(); +return i; +})(fi), Ti = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2JointType.e_prismaticJoint) || this; +i.localAnchorA = new P(); +i.localAnchorB = new P(); +i.localAxisA = new P(1, 0); +i.referenceAngle = 0; +i.enableLimit = !1; +i.lowerTranslation = 0; +i.upperTranslation = 0; +i.enableMotor = !1; +i.maxMotorForce = 0; +i.motorSpeed = 0; +return i; +} +i.prototype.Initialize = function(t, e, i, n) { +this.bodyA = t; +this.bodyB = e; +this.bodyA.GetLocalPoint(i, this.localAnchorA); +this.bodyB.GetLocalPoint(i, this.localAnchorB); +this.bodyA.GetLocalVector(n, this.localAxisA); +this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle(); +}; +return i; +})(_i), Ei = (function(i) { +$e(n, i); +function n(n) { +var r = i.call(this, n) || this; +r.m_localAnchorA = new P(); +r.m_localAnchorB = new P(); +r.m_localXAxisA = new P(); +r.m_localYAxisA = new P(); +r.m_referenceAngle = 0; +r.m_impulse = new L(0, 0, 0); +r.m_motorImpulse = 0; +r.m_lowerTranslation = 0; +r.m_upperTranslation = 0; +r.m_maxMotorForce = 0; +r.m_motorSpeed = 0; +r.m_enableLimit = !1; +r.m_enableMotor = !1; +r.m_limitState = t.b2LimitState.e_inactiveLimit; +r.m_indexA = 0; +r.m_indexB = 0; +r.m_localCenterA = new P(); +r.m_localCenterB = new P(); +r.m_invMassA = 0; +r.m_invMassB = 0; +r.m_invIA = 0; +r.m_invIB = 0; +r.m_axis = new P(0, 0); +r.m_perp = new P(0, 0); +r.m_s1 = 0; +r.m_s2 = 0; +r.m_a1 = 0; +r.m_a2 = 0; +r.m_K = new O(); +r.m_K3 = new O(); +r.m_K2 = new F(); +r.m_motorMass = 0; +r.m_qA = new V(); +r.m_qB = new V(); +r.m_lalcA = new P(); +r.m_lalcB = new P(); +r.m_rA = new P(); +r.m_rB = new P(); +r.m_localAnchorA.Copy(e(n.localAnchorA, P.ZERO)); +r.m_localAnchorB.Copy(e(n.localAnchorB, P.ZERO)); +r.m_localXAxisA.Copy(e(n.localAxisA, new P(1, 0))).SelfNormalize(); +P.CrossOneV(r.m_localXAxisA, r.m_localYAxisA); +r.m_referenceAngle = e(n.referenceAngle, 0); +r.m_lowerTranslation = e(n.lowerTranslation, 0); +r.m_upperTranslation = e(n.upperTranslation, 0); +r.m_maxMotorForce = e(n.maxMotorForce, 0); +r.m_motorSpeed = e(n.motorSpeed, 0); +r.m_enableLimit = e(n.enableLimit, !1); +r.m_enableMotor = e(n.enableMotor, !1); +return r; +} +n.prototype.InitVelocityConstraints = function(e) { +this.m_indexA = this.m_bodyA.m_islandIndex; +this.m_indexB = this.m_bodyB.m_islandIndex; +this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); +this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); +this.m_invMassA = this.m_bodyA.m_invMass; +this.m_invMassB = this.m_bodyB.m_invMass; +this.m_invIA = this.m_bodyA.m_invI; +this.m_invIB = this.m_bodyB.m_invI; +var i = e.positions[this.m_indexA].c, r = e.positions[this.m_indexA].a, s = e.velocities[this.m_indexA].v, o = e.velocities[this.m_indexA].w, a = e.positions[this.m_indexB].c, l = e.positions[this.m_indexB].a, h = e.velocities[this.m_indexB].v, u = e.velocities[this.m_indexB].w, _ = this.m_qA.SetAngle(r), f = this.m_qB.SetAngle(l); +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +var d = V.MulRV(_, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +var m = V.MulRV(f, this.m_lalcB, this.m_rB), p = P.AddVV(P.SubVV(a, i, P.s_t0), P.SubVV(m, d, P.s_t1), n.InitVelocityConstraints_s_d), v = this.m_invMassA, g = this.m_invMassB, x = this.m_invIA, C = this.m_invIB; +V.MulRV(_, this.m_localXAxisA, this.m_axis); +this.m_a1 = P.CrossVV(P.AddVV(p, d, P.s_t0), this.m_axis); +this.m_a2 = P.CrossVV(m, this.m_axis); +this.m_motorMass = v + g + x * this.m_a1 * this.m_a1 + C * this.m_a2 * this.m_a2; +this.m_motorMass > 0 && (this.m_motorMass = 1 / this.m_motorMass); +V.MulRV(_, this.m_localYAxisA, this.m_perp); +this.m_s1 = P.CrossVV(P.AddVV(p, d, P.s_t0), this.m_perp); +this.m_s2 = P.CrossVV(m, this.m_perp); +this.m_K.ex.x = v + g + x * this.m_s1 * this.m_s1 + C * this.m_s2 * this.m_s2; +this.m_K.ex.y = x * this.m_s1 + C * this.m_s2; +this.m_K.ex.z = x * this.m_s1 * this.m_a1 + C * this.m_s2 * this.m_a2; +this.m_K.ey.x = this.m_K.ex.y; +this.m_K.ey.y = x + C; +0 === this.m_K.ey.y && (this.m_K.ey.y = 1); +this.m_K.ey.z = x * this.m_a1 + C * this.m_a2; +this.m_K.ez.x = this.m_K.ex.z; +this.m_K.ez.y = this.m_K.ey.z; +this.m_K.ez.z = v + g + x * this.m_a1 * this.m_a1 + C * this.m_a2 * this.m_a2; +if (this.m_enableLimit) { +var b = P.DotVV(this.m_axis, p); +if (y(this.m_upperTranslation - this.m_lowerTranslation) < 2 * c) this.m_limitState = t.b2LimitState.e_equalLimits; else if (b <= this.m_lowerTranslation) { +if (this.m_limitState !== t.b2LimitState.e_atLowerLimit) { +this.m_limitState = t.b2LimitState.e_atLowerLimit; +this.m_impulse.z = 0; +} +} else if (b >= this.m_upperTranslation) { +if (this.m_limitState !== t.b2LimitState.e_atUpperLimit) { +this.m_limitState = t.b2LimitState.e_atUpperLimit; +this.m_impulse.z = 0; +} +} else { +this.m_limitState = t.b2LimitState.e_inactiveLimit; +this.m_impulse.z = 0; +} +} else { +this.m_limitState = t.b2LimitState.e_inactiveLimit; +this.m_impulse.z = 0; +} +this.m_enableMotor || (this.m_motorImpulse = 0); +if (e.step.warmStarting) { +this.m_impulse.SelfMul(e.step.dtRatio); +this.m_motorImpulse *= e.step.dtRatio; +var A = P.AddVV(P.MulSV(this.m_impulse.x, this.m_perp, P.s_t0), P.MulSV(this.m_motorImpulse + this.m_impulse.z, this.m_axis, P.s_t1), n.InitVelocityConstraints_s_P), S = this.m_impulse.x * this.m_s1 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a1, w = this.m_impulse.x * this.m_s2 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a2; +s.SelfMulSub(v, A); +o -= x * S; +h.SelfMulAdd(g, A); +u += C * w; +} else { +this.m_impulse.SetZero(); +this.m_motorImpulse = 0; +} +e.velocities[this.m_indexA].w = o; +e.velocities[this.m_indexB].w = u; +}; +n.prototype.SolveVelocityConstraints = function(e) { +var i = e.velocities[this.m_indexA].v, r = e.velocities[this.m_indexA].w, s = e.velocities[this.m_indexB].v, o = e.velocities[this.m_indexB].w, a = this.m_invMassA, c = this.m_invMassB, l = this.m_invIA, h = this.m_invIB; +if (this.m_enableMotor && this.m_limitState !== t.b2LimitState.e_equalLimits) { +var u = P.DotVV(this.m_axis, P.SubVV(s, i, P.s_t0)) + this.m_a2 * o - this.m_a1 * r, _ = this.m_motorMass * (this.m_motorSpeed - u), f = this.m_motorImpulse, d = e.step.dt * this.m_maxMotorForce; +this.m_motorImpulse = C(this.m_motorImpulse + _, -d, d); +_ = this.m_motorImpulse - f; +var m = P.MulSV(_, this.m_axis, n.SolveVelocityConstraints_s_P), p = _ * this.m_a1, v = _ * this.m_a2; +i.SelfMulSub(a, m); +r -= l * p; +s.SelfMulAdd(c, m); +o += h * v; +} +var y = P.DotVV(this.m_perp, P.SubVV(s, i, P.s_t0)) + this.m_s2 * o - this.m_s1 * r, b = o - r; +if (this.m_enableLimit && this.m_limitState !== t.b2LimitState.e_inactiveLimit) { +var A = P.DotVV(this.m_axis, P.SubVV(s, i, P.s_t0)) + this.m_a2 * o - this.m_a1 * r, S = n.SolveVelocityConstraints_s_f1.Copy(this.m_impulse), w = this.m_K.Solve33(-y, -b, -A, n.SolveVelocityConstraints_s_df3); +this.m_impulse.SelfAdd(w); +this.m_limitState === t.b2LimitState.e_atLowerLimit ? this.m_impulse.z = x(this.m_impulse.z, 0) : this.m_limitState === t.b2LimitState.e_atUpperLimit && (this.m_impulse.z = g(this.m_impulse.z, 0)); +var T = -y - (this.m_impulse.z - S.z) * this.m_K.ez.x, E = -b - (this.m_impulse.z - S.z) * this.m_K.ez.y, M = this.m_K.Solve22(T, E, n.SolveVelocityConstraints_s_f2r); +M.x += S.x; +M.y += S.y; +this.m_impulse.x = M.x; +this.m_impulse.y = M.y; +w.x = this.m_impulse.x - S.x; +w.y = this.m_impulse.y - S.y; +w.z = this.m_impulse.z - S.z; +m = P.AddVV(P.MulSV(w.x, this.m_perp, P.s_t0), P.MulSV(w.z, this.m_axis, P.s_t1), n.SolveVelocityConstraints_s_P), +p = w.x * this.m_s1 + w.y + w.z * this.m_a1, v = w.x * this.m_s2 + w.y + w.z * this.m_a2; +i.SelfMulSub(a, m); +r -= l * p; +s.SelfMulAdd(c, m); +o += h * v; +} else { +var B = this.m_K.Solve22(-y, -b, n.SolveVelocityConstraints_s_df2); +this.m_impulse.x += B.x; +this.m_impulse.y += B.y; +m = P.MulSV(B.x, this.m_perp, n.SolveVelocityConstraints_s_P), p = B.x * this.m_s1 + B.y, +v = B.x * this.m_s2 + B.y; +i.SelfMulSub(a, m); +r -= l * p; +s.SelfMulAdd(c, m); +o += h * v; +} +e.velocities[this.m_indexA].w = r; +e.velocities[this.m_indexB].w = o; +}; +n.prototype.SolvePositionConstraints = function(t) { +var e = t.positions[this.m_indexA].c, i = t.positions[this.m_indexA].a, r = t.positions[this.m_indexB].c, s = t.positions[this.m_indexB].a, o = this.m_qA.SetAngle(i), a = this.m_qB.SetAngle(s), h = this.m_invMassA, u = this.m_invMassB, _ = this.m_invIA, f = this.m_invIB, d = V.MulRV(o, this.m_lalcA, this.m_rA), m = V.MulRV(a, this.m_lalcB, this.m_rB), p = P.SubVV(P.AddVV(r, m, P.s_t0), P.AddVV(e, d, P.s_t1), n.SolvePositionConstraints_s_d), v = V.MulRV(o, this.m_localXAxisA, this.m_axis), g = P.CrossVV(P.AddVV(p, d, P.s_t0), v), b = P.CrossVV(m, v), A = V.MulRV(o, this.m_localYAxisA, this.m_perp), S = P.CrossVV(P.AddVV(p, d, P.s_t0), A), w = P.CrossVV(m, A), T = n.SolvePositionConstraints_s_impulse, E = P.DotVV(A, p), M = s - i - this.m_referenceAngle, B = y(E), D = y(M), I = !1, R = 0; +if (this.m_enableLimit) { +var L = P.DotVV(v, p); +if (y(this.m_upperTranslation - this.m_lowerTranslation) < 2 * c) { +R = C(L, -.2, .2); +B = x(B, y(L)); +I = !0; +} else if (L <= this.m_lowerTranslation) { +R = C(L - this.m_lowerTranslation + c, -.2, 0); +B = x(B, this.m_lowerTranslation - L); +I = !0; +} else if (L >= this.m_upperTranslation) { +R = C(L - this.m_upperTranslation - c, 0, .2); +B = x(B, L - this.m_upperTranslation); +I = !0; +} +} +if (I) { +var F = h + u + _ * S * S + f * w * w, O = _ * S + f * w, N = _ * S * g + f * w * b; +0 === (U = _ + f) && (U = 1); +var k = _ * g + f * b, z = h + u + _ * g * g + f * b * b, G = this.m_K3; +G.ex.SetXYZ(F, O, N); +G.ey.SetXYZ(O, U, k); +G.ez.SetXYZ(N, k, z); +T = G.Solve33(-E, -M, -R, T); +} else { +var U; +F = h + u + _ * S * S + f * w * w, O = _ * S + f * w; +0 === (U = _ + f) && (U = 1); +var j = this.m_K2; +j.ex.Set(F, O); +j.ey.Set(O, U); +var W = j.Solve(-E, -M, n.SolvePositionConstraints_s_impulse1); +T.x = W.x; +T.y = W.y; +T.z = 0; +} +var H = P.AddVV(P.MulSV(T.x, A, P.s_t0), P.MulSV(T.z, v, P.s_t1), n.SolvePositionConstraints_s_P), q = T.x * S + T.y + T.z * g, X = T.x * w + T.y + T.z * b; +e.SelfMulSub(h, H); +i -= _ * q; +r.SelfMulAdd(u, H); +s += f * X; +t.positions[this.m_indexA].a = i; +t.positions[this.m_indexB].a = s; +return B <= c && D <= l; +}; +n.prototype.GetAnchorA = function(t) { +return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); +}; +n.prototype.GetAnchorB = function(t) { +return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); +}; +n.prototype.GetReactionForce = function(t, e) { +e.x = t * (this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.x); +e.y = t * (this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.y); +return e; +}; +n.prototype.GetReactionTorque = function(t) { +return t * this.m_impulse.y; +}; +n.prototype.GetLocalAnchorA = function() { +return this.m_localAnchorA; +}; +n.prototype.GetLocalAnchorB = function() { +return this.m_localAnchorB; +}; +n.prototype.GetLocalAxisA = function() { +return this.m_localXAxisA; +}; +n.prototype.GetReferenceAngle = function() { +return this.m_referenceAngle; +}; +n.prototype.GetJointTranslation = function() { +var t = this.m_bodyA.GetWorldPoint(this.m_localAnchorA, n.GetJointTranslation_s_pA), e = this.m_bodyB.GetWorldPoint(this.m_localAnchorB, n.GetJointTranslation_s_pB), i = P.SubVV(e, t, n.GetJointTranslation_s_d), r = this.m_bodyA.GetWorldVector(this.m_localXAxisA, n.GetJointTranslation_s_axis); +return P.DotVV(i, r); +}; +n.prototype.GetJointSpeed = function() { +var t = this.m_bodyA, e = this.m_bodyB; +P.SubVV(this.m_localAnchorA, t.m_sweep.localCenter, this.m_lalcA); +var i = V.MulRV(t.m_xf.q, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, e.m_sweep.localCenter, this.m_lalcB); +var n = V.MulRV(e.m_xf.q, this.m_lalcB, this.m_rB), r = P.AddVV(t.m_sweep.c, i, P.s_t0), s = P.AddVV(e.m_sweep.c, n, P.s_t1), o = P.SubVV(s, r, P.s_t2), a = t.GetWorldVector(this.m_localXAxisA, this.m_axis), c = t.m_linearVelocity, l = e.m_linearVelocity, h = t.m_angularVelocity, u = e.m_angularVelocity; +return P.DotVV(o, P.CrossSV(h, a, P.s_t0)) + P.DotVV(a, P.SubVV(P.AddVCrossSV(l, u, n, P.s_t0), P.AddVCrossSV(c, h, i, P.s_t1), P.s_t0)); +}; +n.prototype.IsLimitEnabled = function() { +return this.m_enableLimit; +}; +n.prototype.EnableLimit = function(t) { +if (t !== this.m_enableLimit) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_enableLimit = t; +this.m_impulse.z = 0; +} +}; +n.prototype.GetLowerLimit = function() { +return this.m_lowerTranslation; +}; +n.prototype.GetUpperLimit = function() { +return this.m_upperTranslation; +}; +n.prototype.SetLimits = function(t, e) { +if (t !== this.m_lowerTranslation || e !== this.m_upperTranslation) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_lowerTranslation = t; +this.m_upperTranslation = e; +this.m_impulse.z = 0; +} +}; +n.prototype.IsMotorEnabled = function() { +return this.m_enableMotor; +}; +n.prototype.EnableMotor = function(t) { +if (t !== this.m_enableMotor) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_enableMotor = t; +} +}; +n.prototype.SetMotorSpeed = function(t) { +if (t !== this.m_motorSpeed) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_motorSpeed = t; +} +}; +n.prototype.GetMotorSpeed = function() { +return this.m_motorSpeed; +}; +n.prototype.SetMaxMotorForce = function(t) { +if (t !== this.m_maxMotorForce) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_maxMotorForce = t; +} +}; +n.prototype.GetMaxMotorForce = function() { +return this.m_maxMotorForce; +}; +n.prototype.GetMotorForce = function(t) { +return t * this.m_motorImpulse; +}; +n.prototype.Dump = function(t) { +var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; +t(" const jd: b2PrismaticJointDef = new b2PrismaticJointDef();\n"); +t(" jd.bodyA = bodies[%d];\n", e); +t(" jd.bodyB = bodies[%d];\n", i); +t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); +t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); +t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); +t(" jd.localAxisA.Set(%.15f, %.15f);\n", this.m_localXAxisA.x, this.m_localXAxisA.y); +t(" jd.referenceAngle = %.15f;\n", this.m_referenceAngle); +t(" jd.enableLimit = %s;\n", this.m_enableLimit ? "true" : "false"); +t(" jd.lowerTranslation = %.15f;\n", this.m_lowerTranslation); +t(" jd.upperTranslation = %.15f;\n", this.m_upperTranslation); +t(" jd.enableMotor = %s;\n", this.m_enableMotor ? "true" : "false"); +t(" jd.motorSpeed = %.15f;\n", this.m_motorSpeed); +t(" jd.maxMotorForce = %.15f;\n", this.m_maxMotorForce); +t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); +}; +n.InitVelocityConstraints_s_d = new P(); +n.InitVelocityConstraints_s_P = new P(); +n.SolveVelocityConstraints_s_P = new P(); +n.SolveVelocityConstraints_s_f2r = new P(); +n.SolveVelocityConstraints_s_f1 = new L(); +n.SolveVelocityConstraints_s_df3 = new L(); +n.SolveVelocityConstraints_s_df2 = new P(); +n.SolvePositionConstraints_s_d = new P(); +n.SolvePositionConstraints_s_impulse = new L(); +n.SolvePositionConstraints_s_impulse1 = new P(); +n.SolvePositionConstraints_s_P = new P(); +n.GetJointTranslation_s_pA = new P(); +n.GetJointTranslation_s_pB = new P(); +n.GetJointTranslation_s_d = new P(); +n.GetJointTranslation_s_axis = new P(); +return n; +})(fi), Mi = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2JointType.e_pulleyJoint) || this; +i.groundAnchorA = new P(-1, 1); +i.groundAnchorB = new P(1, 1); +i.localAnchorA = new P(-1, 0); +i.localAnchorB = new P(1, 0); +i.lengthA = 0; +i.lengthB = 0; +i.ratio = 1; +i.collideConnected = !0; +return i; +} +i.prototype.Initialize = function(t, e, i, n, r, s, o) { +this.bodyA = t; +this.bodyB = e; +this.groundAnchorA.Copy(i); +this.groundAnchorB.Copy(n); +this.bodyA.GetLocalPoint(r, this.localAnchorA); +this.bodyB.GetLocalPoint(s, this.localAnchorB); +this.lengthA = P.DistanceVV(r, i); +this.lengthB = P.DistanceVV(s, n); +this.ratio = o; +}; +return i; +})(_i), Bi = (function(t) { +$e(i, t); +function i(i) { +var n = t.call(this, i) || this; +n.m_groundAnchorA = new P(); +n.m_groundAnchorB = new P(); +n.m_lengthA = 0; +n.m_lengthB = 0; +n.m_localAnchorA = new P(); +n.m_localAnchorB = new P(); +n.m_constant = 0; +n.m_ratio = 0; +n.m_impulse = 0; +n.m_indexA = 0; +n.m_indexB = 0; +n.m_uA = new P(); +n.m_uB = new P(); +n.m_rA = new P(); +n.m_rB = new P(); +n.m_localCenterA = new P(); +n.m_localCenterB = new P(); +n.m_invMassA = 0; +n.m_invMassB = 0; +n.m_invIA = 0; +n.m_invIB = 0; +n.m_mass = 0; +n.m_qA = new V(); +n.m_qB = new V(); +n.m_lalcA = new P(); +n.m_lalcB = new P(); +n.m_groundAnchorA.Copy(e(i.groundAnchorA, new P(-1, 1))); +n.m_groundAnchorB.Copy(e(i.groundAnchorB, new P(1, 0))); +n.m_localAnchorA.Copy(e(i.localAnchorA, new P(-1, 0))); +n.m_localAnchorB.Copy(e(i.localAnchorB, new P(1, 0))); +n.m_lengthA = e(i.lengthA, 0); +n.m_lengthB = e(i.lengthB, 0); +n.m_ratio = e(i.ratio, 1); +n.m_constant = e(i.lengthA, 0) + n.m_ratio * e(i.lengthB, 0); +n.m_impulse = 0; +return n; +} +i.prototype.InitVelocityConstraints = function(t) { +this.m_indexA = this.m_bodyA.m_islandIndex; +this.m_indexB = this.m_bodyB.m_islandIndex; +this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); +this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); +this.m_invMassA = this.m_bodyA.m_invMass; +this.m_invMassB = this.m_bodyB.m_invMass; +this.m_invIA = this.m_bodyA.m_invI; +this.m_invIB = this.m_bodyB.m_invI; +var e = t.positions[this.m_indexA].c, n = t.positions[this.m_indexA].a, r = t.velocities[this.m_indexA].v, s = t.velocities[this.m_indexA].w, o = t.positions[this.m_indexB].c, a = t.positions[this.m_indexB].a, l = t.velocities[this.m_indexB].v, h = t.velocities[this.m_indexB].w, u = this.m_qA.SetAngle(n), _ = this.m_qB.SetAngle(a); +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +V.MulRV(u, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +V.MulRV(_, this.m_lalcB, this.m_rB); +this.m_uA.Copy(e).SelfAdd(this.m_rA).SelfSub(this.m_groundAnchorA); +this.m_uB.Copy(o).SelfAdd(this.m_rB).SelfSub(this.m_groundAnchorB); +var f = this.m_uA.Length(), d = this.m_uB.Length(); +f > 10 * c ? this.m_uA.SelfMul(1 / f) : this.m_uA.SetZero(); +d > 10 * c ? this.m_uB.SelfMul(1 / d) : this.m_uB.SetZero(); +var m = P.CrossVV(this.m_rA, this.m_uA), p = P.CrossVV(this.m_rB, this.m_uB), v = this.m_invMassA + this.m_invIA * m * m, y = this.m_invMassB + this.m_invIB * p * p; +this.m_mass = v + this.m_ratio * this.m_ratio * y; +this.m_mass > 0 && (this.m_mass = 1 / this.m_mass); +if (t.step.warmStarting) { +this.m_impulse *= t.step.dtRatio; +var g = P.MulSV(-this.m_impulse, this.m_uA, i.InitVelocityConstraints_s_PA), x = P.MulSV(-this.m_ratio * this.m_impulse, this.m_uB, i.InitVelocityConstraints_s_PB); +r.SelfMulAdd(this.m_invMassA, g); +s += this.m_invIA * P.CrossVV(this.m_rA, g); +l.SelfMulAdd(this.m_invMassB, x); +h += this.m_invIB * P.CrossVV(this.m_rB, x); +} else this.m_impulse = 0; +t.velocities[this.m_indexA].w = s; +t.velocities[this.m_indexB].w = h; +}; +i.prototype.SolveVelocityConstraints = function(t) { +var e = t.velocities[this.m_indexA].v, n = t.velocities[this.m_indexA].w, r = t.velocities[this.m_indexB].v, s = t.velocities[this.m_indexB].w, o = P.AddVCrossSV(e, n, this.m_rA, i.SolveVelocityConstraints_s_vpA), a = P.AddVCrossSV(r, s, this.m_rB, i.SolveVelocityConstraints_s_vpB), c = -P.DotVV(this.m_uA, o) - this.m_ratio * P.DotVV(this.m_uB, a), l = -this.m_mass * c; +this.m_impulse += l; +var h = P.MulSV(-l, this.m_uA, i.SolveVelocityConstraints_s_PA), u = P.MulSV(-this.m_ratio * l, this.m_uB, i.SolveVelocityConstraints_s_PB); +e.SelfMulAdd(this.m_invMassA, h); +n += this.m_invIA * P.CrossVV(this.m_rA, h); +r.SelfMulAdd(this.m_invMassB, u); +s += this.m_invIB * P.CrossVV(this.m_rB, u); +t.velocities[this.m_indexA].w = n; +t.velocities[this.m_indexB].w = s; +}; +i.prototype.SolvePositionConstraints = function(t) { +var e = t.positions[this.m_indexA].c, n = t.positions[this.m_indexA].a, r = t.positions[this.m_indexB].c, s = t.positions[this.m_indexB].a, o = this.m_qA.SetAngle(n), a = this.m_qB.SetAngle(s); +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +var l = V.MulRV(o, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +var h = V.MulRV(a, this.m_lalcB, this.m_rB), u = this.m_uA.Copy(e).SelfAdd(l).SelfSub(this.m_groundAnchorA), _ = this.m_uB.Copy(r).SelfAdd(h).SelfSub(this.m_groundAnchorB), f = u.Length(), d = _.Length(); +f > 10 * c ? u.SelfMul(1 / f) : u.SetZero(); +d > 10 * c ? _.SelfMul(1 / d) : _.SetZero(); +var m = P.CrossVV(l, u), p = P.CrossVV(h, _), v = this.m_invMassA + this.m_invIA * m * m, g = this.m_invMassB + this.m_invIB * p * p, x = v + this.m_ratio * this.m_ratio * g; +x > 0 && (x = 1 / x); +var C = this.m_constant - f - this.m_ratio * d, b = y(C), A = -x * C, S = P.MulSV(-A, u, i.SolvePositionConstraints_s_PA), w = P.MulSV(-this.m_ratio * A, _, i.SolvePositionConstraints_s_PB); +e.SelfMulAdd(this.m_invMassA, S); +n += this.m_invIA * P.CrossVV(l, S); +r.SelfMulAdd(this.m_invMassB, w); +s += this.m_invIB * P.CrossVV(h, w); +t.positions[this.m_indexA].a = n; +t.positions[this.m_indexB].a = s; +return b < c; +}; +i.prototype.GetAnchorA = function(t) { +return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); +}; +i.prototype.GetAnchorB = function(t) { +return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); +}; +i.prototype.GetReactionForce = function(t, e) { +e.x = t * this.m_impulse * this.m_uB.x; +e.y = t * this.m_impulse * this.m_uB.y; +return e; +}; +i.prototype.GetReactionTorque = function(t) { +return 0; +}; +i.prototype.GetGroundAnchorA = function() { +return this.m_groundAnchorA; +}; +i.prototype.GetGroundAnchorB = function() { +return this.m_groundAnchorB; +}; +i.prototype.GetLengthA = function() { +return this.m_lengthA; +}; +i.prototype.GetLengthB = function() { +return this.m_lengthB; +}; +i.prototype.GetRatio = function() { +return this.m_ratio; +}; +i.prototype.GetCurrentLengthA = function() { +var t = this.m_bodyA.GetWorldPoint(this.m_localAnchorA, i.GetCurrentLengthA_s_p), e = this.m_groundAnchorA; +return P.DistanceVV(t, e); +}; +i.prototype.GetCurrentLengthB = function() { +var t = this.m_bodyB.GetWorldPoint(this.m_localAnchorB, i.GetCurrentLengthB_s_p), e = this.m_groundAnchorB; +return P.DistanceVV(t, e); +}; +i.prototype.Dump = function(t) { +var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; +t(" const jd: b2PulleyJointDef = new b2PulleyJointDef();\n"); +t(" jd.bodyA = bodies[%d];\n", e); +t(" jd.bodyB = bodies[%d];\n", i); +t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); +t(" jd.groundAnchorA.Set(%.15f, %.15f);\n", this.m_groundAnchorA.x, this.m_groundAnchorA.y); +t(" jd.groundAnchorB.Set(%.15f, %.15f);\n", this.m_groundAnchorB.x, this.m_groundAnchorB.y); +t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); +t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); +t(" jd.lengthA = %.15f;\n", this.m_lengthA); +t(" jd.lengthB = %.15f;\n", this.m_lengthB); +t(" jd.ratio = %.15f;\n", this.m_ratio); +t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); +}; +i.prototype.ShiftOrigin = function(t) { +this.m_groundAnchorA.SelfSub(t); +this.m_groundAnchorB.SelfSub(t); +}; +i.InitVelocityConstraints_s_PA = new P(); +i.InitVelocityConstraints_s_PB = new P(); +i.SolveVelocityConstraints_s_vpA = new P(); +i.SolveVelocityConstraints_s_vpB = new P(); +i.SolveVelocityConstraints_s_PA = new P(); +i.SolveVelocityConstraints_s_PB = new P(); +i.SolvePositionConstraints_s_PA = new P(); +i.SolvePositionConstraints_s_PB = new P(); +i.GetCurrentLengthA_s_p = new P(); +i.GetCurrentLengthB_s_p = new P(); +return i; +})(fi), Di = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2JointType.e_revoluteJoint) || this; +i.localAnchorA = new P(0, 0); +i.localAnchorB = new P(0, 0); +i.referenceAngle = 0; +i.enableLimit = !1; +i.lowerAngle = 0; +i.upperAngle = 0; +i.enableMotor = !1; +i.motorSpeed = 0; +i.maxMotorTorque = 0; +return i; +} +i.prototype.Initialize = function(t, e, i) { +this.bodyA = t; +this.bodyB = e; +this.bodyA.GetLocalPoint(i, this.localAnchorA); +this.bodyB.GetLocalPoint(i, this.localAnchorB); +this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle(); +}; +return i; +})(_i), Ii = (function(i) { +$e(n, i); +function n(n) { +var r = i.call(this, n) || this; +r.m_localAnchorA = new P(); +r.m_localAnchorB = new P(); +r.m_impulse = new L(); +r.m_motorImpulse = 0; +r.m_enableMotor = !1; +r.m_maxMotorTorque = 0; +r.m_motorSpeed = 0; +r.m_enableLimit = !1; +r.m_referenceAngle = 0; +r.m_lowerAngle = 0; +r.m_upperAngle = 0; +r.m_indexA = 0; +r.m_indexB = 0; +r.m_rA = new P(); +r.m_rB = new P(); +r.m_localCenterA = new P(); +r.m_localCenterB = new P(); +r.m_invMassA = 0; +r.m_invMassB = 0; +r.m_invIA = 0; +r.m_invIB = 0; +r.m_mass = new O(); +r.m_motorMass = 0; +r.m_limitState = t.b2LimitState.e_inactiveLimit; +r.m_qA = new V(); +r.m_qB = new V(); +r.m_lalcA = new P(); +r.m_lalcB = new P(); +r.m_K = new F(); +r.m_localAnchorA.Copy(e(n.localAnchorA, P.ZERO)); +r.m_localAnchorB.Copy(e(n.localAnchorB, P.ZERO)); +r.m_referenceAngle = e(n.referenceAngle, 0); +r.m_impulse.SetZero(); +r.m_motorImpulse = 0; +r.m_lowerAngle = e(n.lowerAngle, 0); +r.m_upperAngle = e(n.upperAngle, 0); +r.m_maxMotorTorque = e(n.maxMotorTorque, 0); +r.m_motorSpeed = e(n.motorSpeed, 0); +r.m_enableLimit = e(n.enableLimit, !1); +r.m_enableMotor = e(n.enableMotor, !1); +r.m_limitState = t.b2LimitState.e_inactiveLimit; +return r; +} +n.prototype.InitVelocityConstraints = function(e) { +this.m_indexA = this.m_bodyA.m_islandIndex; +this.m_indexB = this.m_bodyB.m_islandIndex; +this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); +this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); +this.m_invMassA = this.m_bodyA.m_invMass; +this.m_invMassB = this.m_bodyB.m_invMass; +this.m_invIA = this.m_bodyA.m_invI; +this.m_invIB = this.m_bodyB.m_invI; +var i = e.positions[this.m_indexA].a, r = e.velocities[this.m_indexA].v, s = e.velocities[this.m_indexA].w, o = e.positions[this.m_indexB].a, a = e.velocities[this.m_indexB].v, c = e.velocities[this.m_indexB].w, h = this.m_qA.SetAngle(i), u = this.m_qB.SetAngle(o); +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +V.MulRV(h, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +V.MulRV(u, this.m_lalcB, this.m_rB); +var _ = this.m_invMassA, f = this.m_invMassB, d = this.m_invIA, m = this.m_invIB, p = d + m === 0; +this.m_mass.ex.x = _ + f + this.m_rA.y * this.m_rA.y * d + this.m_rB.y * this.m_rB.y * m; +this.m_mass.ey.x = -this.m_rA.y * this.m_rA.x * d - this.m_rB.y * this.m_rB.x * m; +this.m_mass.ez.x = -this.m_rA.y * d - this.m_rB.y * m; +this.m_mass.ex.y = this.m_mass.ey.x; +this.m_mass.ey.y = _ + f + this.m_rA.x * this.m_rA.x * d + this.m_rB.x * this.m_rB.x * m; +this.m_mass.ez.y = this.m_rA.x * d + this.m_rB.x * m; +this.m_mass.ex.z = this.m_mass.ez.x; +this.m_mass.ey.z = this.m_mass.ez.y; +this.m_mass.ez.z = d + m; +this.m_motorMass = d + m; +this.m_motorMass > 0 && (this.m_motorMass = 1 / this.m_motorMass); +this.m_enableMotor && !p || (this.m_motorImpulse = 0); +if (this.m_enableLimit && !p) { +var v = o - i - this.m_referenceAngle; +if (y(this.m_upperAngle - this.m_lowerAngle) < 2 * l) this.m_limitState = t.b2LimitState.e_equalLimits; else if (v <= this.m_lowerAngle) { +this.m_limitState !== t.b2LimitState.e_atLowerLimit && (this.m_impulse.z = 0); +this.m_limitState = t.b2LimitState.e_atLowerLimit; +} else if (v >= this.m_upperAngle) { +this.m_limitState !== t.b2LimitState.e_atUpperLimit && (this.m_impulse.z = 0); +this.m_limitState = t.b2LimitState.e_atUpperLimit; +} else { +this.m_limitState = t.b2LimitState.e_inactiveLimit; +this.m_impulse.z = 0; +} +} else this.m_limitState = t.b2LimitState.e_inactiveLimit; +if (e.step.warmStarting) { +this.m_impulse.SelfMul(e.step.dtRatio); +this.m_motorImpulse *= e.step.dtRatio; +var g = n.InitVelocityConstraints_s_P.Set(this.m_impulse.x, this.m_impulse.y); +r.SelfMulSub(_, g); +s -= d * (P.CrossVV(this.m_rA, g) + this.m_motorImpulse + this.m_impulse.z); +a.SelfMulAdd(f, g); +c += m * (P.CrossVV(this.m_rB, g) + this.m_motorImpulse + this.m_impulse.z); +} else { +this.m_impulse.SetZero(); +this.m_motorImpulse = 0; +} +e.velocities[this.m_indexA].w = s; +e.velocities[this.m_indexB].w = c; +}; +n.prototype.SolveVelocityConstraints = function(e) { +var i = e.velocities[this.m_indexA].v, r = e.velocities[this.m_indexA].w, s = e.velocities[this.m_indexB].v, o = e.velocities[this.m_indexB].w, a = this.m_invMassA, c = this.m_invMassB, l = this.m_invIA, h = this.m_invIB, u = l + h === 0; +if (this.m_enableMotor && this.m_limitState !== t.b2LimitState.e_equalLimits && !u) { +var _ = o - r - this.m_motorSpeed, f = -this.m_motorMass * _, d = this.m_motorImpulse, m = e.step.dt * this.m_maxMotorTorque; +this.m_motorImpulse = C(this.m_motorImpulse + f, -m, m); +r -= l * (f = this.m_motorImpulse - d); +o += h * f; +} +if (this.m_enableLimit && this.m_limitState !== t.b2LimitState.e_inactiveLimit && !u) { +var p = P.SubVV(P.AddVCrossSV(s, o, this.m_rB, P.s_t0), P.AddVCrossSV(i, r, this.m_rA, P.s_t1), n.SolveVelocityConstraints_s_Cdot1), v = o - r, y = this.m_mass.Solve33(p.x, p.y, v, n.SolveVelocityConstraints_s_impulse_v3).SelfNeg(); +if (this.m_limitState === t.b2LimitState.e_equalLimits) this.m_impulse.SelfAdd(y); else if (this.m_limitState === t.b2LimitState.e_atLowerLimit) { +if (this.m_impulse.z + y.z < 0) { +var g = -p.x + this.m_impulse.z * this.m_mass.ez.x, x = -p.y + this.m_impulse.z * this.m_mass.ez.y, b = this.m_mass.Solve22(g, x, n.SolveVelocityConstraints_s_reduced_v2); +y.x = b.x; +y.y = b.y; +y.z = -this.m_impulse.z; +this.m_impulse.x += b.x; +this.m_impulse.y += b.y; +this.m_impulse.z = 0; +} else this.m_impulse.SelfAdd(y); +} else if (this.m_limitState === t.b2LimitState.e_atUpperLimit) { +if (this.m_impulse.z + y.z > 0) { +g = -p.x + this.m_impulse.z * this.m_mass.ez.x, x = -p.y + this.m_impulse.z * this.m_mass.ez.y, +b = this.m_mass.Solve22(g, x, n.SolveVelocityConstraints_s_reduced_v2); +y.x = b.x; +y.y = b.y; +y.z = -this.m_impulse.z; +this.m_impulse.x += b.x; +this.m_impulse.y += b.y; +this.m_impulse.z = 0; +} else this.m_impulse.SelfAdd(y); +} +var A = n.SolveVelocityConstraints_s_P.Set(y.x, y.y); +i.SelfMulSub(a, A); +r -= l * (P.CrossVV(this.m_rA, A) + y.z); +s.SelfMulAdd(c, A); +o += h * (P.CrossVV(this.m_rB, A) + y.z); +} else { +var S = P.SubVV(P.AddVCrossSV(s, o, this.m_rB, P.s_t0), P.AddVCrossSV(i, r, this.m_rA, P.s_t1), n.SolveVelocityConstraints_s_Cdot_v2), w = this.m_mass.Solve22(-S.x, -S.y, n.SolveVelocityConstraints_s_impulse_v2); +this.m_impulse.x += w.x; +this.m_impulse.y += w.y; +i.SelfMulSub(a, w); +r -= l * P.CrossVV(this.m_rA, w); +s.SelfMulAdd(c, w); +o += h * P.CrossVV(this.m_rB, w); +} +e.velocities[this.m_indexA].w = r; +e.velocities[this.m_indexB].w = o; +}; +n.prototype.SolvePositionConstraints = function(e) { +var i, r = e.positions[this.m_indexA].c, s = e.positions[this.m_indexA].a, o = e.positions[this.m_indexB].c, a = e.positions[this.m_indexB].a, h = this.m_qA.SetAngle(s), u = this.m_qB.SetAngle(a), _ = 0, f = this.m_invIA + this.m_invIB === 0; +if (this.m_enableLimit && this.m_limitState !== t.b2LimitState.e_inactiveLimit && !f) { +var d = a - s - this.m_referenceAngle, m = 0; +if (this.m_limitState === t.b2LimitState.e_equalLimits) { +var p = C(d - this.m_lowerAngle, -.13962634015955555, .13962634015955555); +m = -this.m_motorMass * p; +_ = y(p); +} else if (this.m_limitState === t.b2LimitState.e_atLowerLimit) { +_ = -(p = d - this.m_lowerAngle); +p = C(p + l, -.13962634015955555, 0); +m = -this.m_motorMass * p; +} else if (this.m_limitState === t.b2LimitState.e_atUpperLimit) { +_ = p = d - this.m_upperAngle; +p = C(p - l, 0, .13962634015955555); +m = -this.m_motorMass * p; +} +s -= this.m_invIA * m; +a += this.m_invIB * m; +} +h.SetAngle(s); +u.SetAngle(a); +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +var v = V.MulRV(h, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +var g = V.MulRV(u, this.m_lalcB, this.m_rB), x = P.SubVV(P.AddVV(o, g, P.s_t0), P.AddVV(r, v, P.s_t1), n.SolvePositionConstraints_s_C_v2); +i = x.Length(); +var b = this.m_invMassA, A = this.m_invMassB, S = this.m_invIA, w = this.m_invIB, T = this.m_K; +T.ex.x = b + A + S * v.y * v.y + w * g.y * g.y; +T.ex.y = -S * v.x * v.y - w * g.x * g.y; +T.ey.x = T.ex.y; +T.ey.y = b + A + S * v.x * v.x + w * g.x * g.x; +var E = T.Solve(x.x, x.y, n.SolvePositionConstraints_s_impulse).SelfNeg(); +r.SelfMulSub(b, E); +s -= S * P.CrossVV(v, E); +o.SelfMulAdd(A, E); +a += w * P.CrossVV(g, E); +e.positions[this.m_indexA].a = s; +e.positions[this.m_indexB].a = a; +return i <= c && _ <= l; +}; +n.prototype.GetAnchorA = function(t) { +return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); +}; +n.prototype.GetAnchorB = function(t) { +return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); +}; +n.prototype.GetReactionForce = function(t, e) { +e.x = t * this.m_impulse.x; +e.y = t * this.m_impulse.y; +return e; +}; +n.prototype.GetReactionTorque = function(t) { +return t * this.m_impulse.z; +}; +n.prototype.GetLocalAnchorA = function() { +return this.m_localAnchorA; +}; +n.prototype.GetLocalAnchorB = function() { +return this.m_localAnchorB; +}; +n.prototype.GetReferenceAngle = function() { +return this.m_referenceAngle; +}; +n.prototype.GetJointAngle = function() { +return this.m_bodyB.m_sweep.a - this.m_bodyA.m_sweep.a - this.m_referenceAngle; +}; +n.prototype.GetJointSpeed = function() { +return this.m_bodyB.m_angularVelocity - this.m_bodyA.m_angularVelocity; +}; +n.prototype.IsMotorEnabled = function() { +return this.m_enableMotor; +}; +n.prototype.EnableMotor = function(t) { +if (t !== this.m_enableMotor) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_enableMotor = t; +} +}; +n.prototype.GetMotorTorque = function(t) { +return t * this.m_motorImpulse; +}; +n.prototype.GetMotorSpeed = function() { +return this.m_motorSpeed; +}; +n.prototype.SetMaxMotorTorque = function(t) { +if (t !== this.m_maxMotorTorque) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_maxMotorTorque = t; +} +}; +n.prototype.GetMaxMotorTorque = function() { +return this.m_maxMotorTorque; +}; +n.prototype.IsLimitEnabled = function() { +return this.m_enableLimit; +}; +n.prototype.EnableLimit = function(t) { +if (t !== this.m_enableLimit) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_enableLimit = t; +this.m_impulse.z = 0; +} +}; +n.prototype.GetLowerLimit = function() { +return this.m_lowerAngle; +}; +n.prototype.GetUpperLimit = function() { +return this.m_upperAngle; +}; +n.prototype.SetLimits = function(t, e) { +if (t !== this.m_lowerAngle || e !== this.m_upperAngle) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_impulse.z = 0; +this.m_lowerAngle = t; +this.m_upperAngle = e; +} +}; +n.prototype.SetMotorSpeed = function(t) { +if (t !== this.m_motorSpeed) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_motorSpeed = t; +} +}; +n.prototype.Dump = function(t) { +var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; +t(" const jd: b2RevoluteJointDef = new b2RevoluteJointDef();\n"); +t(" jd.bodyA = bodies[%d];\n", e); +t(" jd.bodyB = bodies[%d];\n", i); +t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); +t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); +t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); +t(" jd.referenceAngle = %.15f;\n", this.m_referenceAngle); +t(" jd.enableLimit = %s;\n", this.m_enableLimit ? "true" : "false"); +t(" jd.lowerAngle = %.15f;\n", this.m_lowerAngle); +t(" jd.upperAngle = %.15f;\n", this.m_upperAngle); +t(" jd.enableMotor = %s;\n", this.m_enableMotor ? "true" : "false"); +t(" jd.motorSpeed = %.15f;\n", this.m_motorSpeed); +t(" jd.maxMotorTorque = %.15f;\n", this.m_maxMotorTorque); +t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); +}; +n.InitVelocityConstraints_s_P = new P(); +n.SolveVelocityConstraints_s_P = new P(); +n.SolveVelocityConstraints_s_Cdot_v2 = new P(); +n.SolveVelocityConstraints_s_Cdot1 = new P(); +n.SolveVelocityConstraints_s_impulse_v3 = new L(); +n.SolveVelocityConstraints_s_reduced_v2 = new P(); +n.SolveVelocityConstraints_s_impulse_v2 = new P(); +n.SolvePositionConstraints_s_C_v2 = new P(); +n.SolvePositionConstraints_s_impulse = new P(); +return n; +})(fi), Pi = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2JointType.e_ropeJoint) || this; +i.localAnchorA = new P(-1, 0); +i.localAnchorB = new P(1, 0); +i.maxLength = 0; +return i; +} +return i; +})(_i), Ri = (function(i) { +$e(n, i); +function n(n) { +var r = i.call(this, n) || this; +r.m_localAnchorA = new P(); +r.m_localAnchorB = new P(); +r.m_maxLength = 0; +r.m_length = 0; +r.m_impulse = 0; +r.m_indexA = 0; +r.m_indexB = 0; +r.m_u = new P(); +r.m_rA = new P(); +r.m_rB = new P(); +r.m_localCenterA = new P(); +r.m_localCenterB = new P(); +r.m_invMassA = 0; +r.m_invMassB = 0; +r.m_invIA = 0; +r.m_invIB = 0; +r.m_mass = 0; +r.m_state = t.b2LimitState.e_inactiveLimit; +r.m_qA = new V(); +r.m_qB = new V(); +r.m_lalcA = new P(); +r.m_lalcB = new P(); +r.m_localAnchorA.Copy(e(n.localAnchorA, new P(-1, 0))); +r.m_localAnchorB.Copy(e(n.localAnchorB, new P(1, 0))); +r.m_maxLength = e(n.maxLength, 0); +return r; +} +n.prototype.InitVelocityConstraints = function(e) { +this.m_indexA = this.m_bodyA.m_islandIndex; +this.m_indexB = this.m_bodyB.m_islandIndex; +this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); +this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); +this.m_invMassA = this.m_bodyA.m_invMass; +this.m_invMassB = this.m_bodyB.m_invMass; +this.m_invIA = this.m_bodyA.m_invI; +this.m_invIB = this.m_bodyB.m_invI; +var i = e.positions[this.m_indexA].c, r = e.positions[this.m_indexA].a, s = e.velocities[this.m_indexA].v, o = e.velocities[this.m_indexA].w, a = e.positions[this.m_indexB].c, l = e.positions[this.m_indexB].a, h = e.velocities[this.m_indexB].v, u = e.velocities[this.m_indexB].w, _ = this.m_qA.SetAngle(r), f = this.m_qB.SetAngle(l); +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +V.MulRV(_, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +V.MulRV(f, this.m_lalcB, this.m_rB); +this.m_u.Copy(a).SelfAdd(this.m_rB).SelfSub(i).SelfSub(this.m_rA); +this.m_length = this.m_u.Length(); +var d = this.m_length - this.m_maxLength; +this.m_state = d > 0 ? t.b2LimitState.e_atUpperLimit : t.b2LimitState.e_inactiveLimit; +if (this.m_length > c) { +this.m_u.SelfMul(1 / this.m_length); +var m = P.CrossVV(this.m_rA, this.m_u), p = P.CrossVV(this.m_rB, this.m_u), v = this.m_invMassA + this.m_invIA * m * m + this.m_invMassB + this.m_invIB * p * p; +this.m_mass = 0 !== v ? 1 / v : 0; +if (e.step.warmStarting) { +this.m_impulse *= e.step.dtRatio; +var y = P.MulSV(this.m_impulse, this.m_u, n.InitVelocityConstraints_s_P); +s.SelfMulSub(this.m_invMassA, y); +o -= this.m_invIA * P.CrossVV(this.m_rA, y); +h.SelfMulAdd(this.m_invMassB, y); +u += this.m_invIB * P.CrossVV(this.m_rB, y); +} else this.m_impulse = 0; +e.velocities[this.m_indexA].w = o; +e.velocities[this.m_indexB].w = u; +} else { +this.m_u.SetZero(); +this.m_mass = 0; +this.m_impulse = 0; +} +}; +n.prototype.SolveVelocityConstraints = function(t) { +var e = t.velocities[this.m_indexA].v, i = t.velocities[this.m_indexA].w, r = t.velocities[this.m_indexB].v, s = t.velocities[this.m_indexB].w, o = P.AddVCrossSV(e, i, this.m_rA, n.SolveVelocityConstraints_s_vpA), a = P.AddVCrossSV(r, s, this.m_rB, n.SolveVelocityConstraints_s_vpB), c = this.m_length - this.m_maxLength, l = P.DotVV(this.m_u, P.SubVV(a, o, P.s_t0)); +c < 0 && (l += t.step.inv_dt * c); +var h = -this.m_mass * l, u = this.m_impulse; +this.m_impulse = g(0, this.m_impulse + h); +h = this.m_impulse - u; +var _ = P.MulSV(h, this.m_u, n.SolveVelocityConstraints_s_P); +e.SelfMulSub(this.m_invMassA, _); +i -= this.m_invIA * P.CrossVV(this.m_rA, _); +r.SelfMulAdd(this.m_invMassB, _); +s += this.m_invIB * P.CrossVV(this.m_rB, _); +t.velocities[this.m_indexA].w = i; +t.velocities[this.m_indexB].w = s; +}; +n.prototype.SolvePositionConstraints = function(t) { +var e = t.positions[this.m_indexA].c, i = t.positions[this.m_indexA].a, r = t.positions[this.m_indexB].c, s = t.positions[this.m_indexB].a, o = this.m_qA.SetAngle(i), a = this.m_qB.SetAngle(s); +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +var l = V.MulRV(o, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +var h = V.MulRV(a, this.m_lalcB, this.m_rB), u = this.m_u.Copy(r).SelfAdd(h).SelfSub(e).SelfSub(l), _ = u.Normalize(), f = _ - this.m_maxLength; +f = C(f, 0, .2); +var d = -this.m_mass * f, m = P.MulSV(d, u, n.SolvePositionConstraints_s_P); +e.SelfMulSub(this.m_invMassA, m); +i -= this.m_invIA * P.CrossVV(l, m); +r.SelfMulAdd(this.m_invMassB, m); +s += this.m_invIB * P.CrossVV(h, m); +t.positions[this.m_indexA].a = i; +t.positions[this.m_indexB].a = s; +return _ - this.m_maxLength < c; +}; +n.prototype.GetAnchorA = function(t) { +return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); +}; +n.prototype.GetAnchorB = function(t) { +return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); +}; +n.prototype.GetReactionForce = function(t, e) { +return P.MulSV(t * this.m_impulse, this.m_u, e); +}; +n.prototype.GetReactionTorque = function(t) { +return 0; +}; +n.prototype.GetLocalAnchorA = function() { +return this.m_localAnchorA; +}; +n.prototype.GetLocalAnchorB = function() { +return this.m_localAnchorB; +}; +n.prototype.SetMaxLength = function(t) { +this.m_maxLength = t; +}; +n.prototype.GetMaxLength = function() { +return this.m_maxLength; +}; +n.prototype.GetLimitState = function() { +return this.m_state; +}; +n.prototype.Dump = function(t) { +var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; +t(" const jd: b2RopeJointDef = new b2RopeJointDef();\n"); +t(" jd.bodyA = bodies[%d];\n", e); +t(" jd.bodyB = bodies[%d];\n", i); +t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); +t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); +t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); +t(" jd.maxLength = %.15f;\n", this.m_maxLength); +t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); +}; +n.InitVelocityConstraints_s_P = new P(); +n.SolveVelocityConstraints_s_vpA = new P(); +n.SolveVelocityConstraints_s_vpB = new P(); +n.SolveVelocityConstraints_s_P = new P(); +n.SolvePositionConstraints_s_P = new P(); +return n; +})(fi), Li = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2JointType.e_weldJoint) || this; +i.localAnchorA = new P(); +i.localAnchorB = new P(); +i.referenceAngle = 0; +i.frequencyHz = 0; +i.dampingRatio = 0; +return i; +} +i.prototype.Initialize = function(t, e, i) { +this.bodyA = t; +this.bodyB = e; +this.bodyA.GetLocalPoint(i, this.localAnchorA); +this.bodyB.GetLocalPoint(i, this.localAnchorB); +this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle(); +}; +return i; +})(_i), Fi = (function(t) { +$e(i, t); +function i(i) { +var n = t.call(this, i) || this; +n.m_frequencyHz = 0; +n.m_dampingRatio = 0; +n.m_bias = 0; +n.m_localAnchorA = new P(); +n.m_localAnchorB = new P(); +n.m_referenceAngle = 0; +n.m_gamma = 0; +n.m_impulse = new L(0, 0, 0); +n.m_indexA = 0; +n.m_indexB = 0; +n.m_rA = new P(); +n.m_rB = new P(); +n.m_localCenterA = new P(); +n.m_localCenterB = new P(); +n.m_invMassA = 0; +n.m_invMassB = 0; +n.m_invIA = 0; +n.m_invIB = 0; +n.m_mass = new O(); +n.m_qA = new V(); +n.m_qB = new V(); +n.m_lalcA = new P(); +n.m_lalcB = new P(); +n.m_K = new O(); +n.m_frequencyHz = e(i.frequencyHz, 0); +n.m_dampingRatio = e(i.dampingRatio, 0); +n.m_localAnchorA.Copy(e(i.localAnchorA, P.ZERO)); +n.m_localAnchorB.Copy(e(i.localAnchorB, P.ZERO)); +n.m_referenceAngle = e(i.referenceAngle, 0); +n.m_impulse.SetZero(); +return n; +} +i.prototype.InitVelocityConstraints = function(t) { +this.m_indexA = this.m_bodyA.m_islandIndex; +this.m_indexB = this.m_bodyB.m_islandIndex; +this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); +this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); +this.m_invMassA = this.m_bodyA.m_invMass; +this.m_invMassB = this.m_bodyB.m_invMass; +this.m_invIA = this.m_bodyA.m_invI; +this.m_invIB = this.m_bodyB.m_invI; +var e = t.positions[this.m_indexA].a, n = t.velocities[this.m_indexA].v, r = t.velocities[this.m_indexA].w, o = t.positions[this.m_indexB].a, a = t.velocities[this.m_indexB].v, c = t.velocities[this.m_indexB].w, l = this.m_qA.SetAngle(e), h = this.m_qB.SetAngle(o); +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +V.MulRV(l, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +V.MulRV(h, this.m_lalcB, this.m_rB); +var u = this.m_invMassA, _ = this.m_invMassB, f = this.m_invIA, d = this.m_invIB, m = this.m_K; +m.ex.x = u + _ + this.m_rA.y * this.m_rA.y * f + this.m_rB.y * this.m_rB.y * d; +m.ey.x = -this.m_rA.y * this.m_rA.x * f - this.m_rB.y * this.m_rB.x * d; +m.ez.x = -this.m_rA.y * f - this.m_rB.y * d; +m.ex.y = m.ey.x; +m.ey.y = u + _ + this.m_rA.x * this.m_rA.x * f + this.m_rB.x * this.m_rB.x * d; +m.ez.y = this.m_rA.x * f + this.m_rB.x * d; +m.ex.z = m.ez.x; +m.ey.z = m.ez.y; +m.ez.z = f + d; +if (this.m_frequencyHz > 0) { +m.GetInverse22(this.m_mass); +var p = f + d, v = p > 0 ? 1 / p : 0, y = o - e - this.m_referenceAngle, g = 2 * s * this.m_frequencyHz, x = 2 * v * this.m_dampingRatio * g, C = v * g * g, b = t.step.dt; +this.m_gamma = b * (x + b * C); +this.m_gamma = 0 !== this.m_gamma ? 1 / this.m_gamma : 0; +this.m_bias = y * b * C * this.m_gamma; +p += this.m_gamma; +this.m_mass.ez.z = 0 !== p ? 1 / p : 0; +} else { +m.GetSymInverse33(this.m_mass); +this.m_gamma = 0; +this.m_bias = 0; +} +if (t.step.warmStarting) { +this.m_impulse.SelfMul(t.step.dtRatio); +var A = i.InitVelocityConstraints_s_P.Set(this.m_impulse.x, this.m_impulse.y); +n.SelfMulSub(u, A); +r -= f * (P.CrossVV(this.m_rA, A) + this.m_impulse.z); +a.SelfMulAdd(_, A); +c += d * (P.CrossVV(this.m_rB, A) + this.m_impulse.z); +} else this.m_impulse.SetZero(); +t.velocities[this.m_indexA].w = r; +t.velocities[this.m_indexB].w = c; +}; +i.prototype.SolveVelocityConstraints = function(t) { +var e = t.velocities[this.m_indexA].v, n = t.velocities[this.m_indexA].w, r = t.velocities[this.m_indexB].v, s = t.velocities[this.m_indexB].w, o = this.m_invMassA, a = this.m_invMassB, c = this.m_invIA, l = this.m_invIB; +if (this.m_frequencyHz > 0) { +var h = s - n, u = -this.m_mass.ez.z * (h + this.m_bias + this.m_gamma * this.m_impulse.z); +this.m_impulse.z += u; +n -= c * u; +s += l * u; +var _ = P.SubVV(P.AddVCrossSV(r, s, this.m_rB, P.s_t0), P.AddVCrossSV(e, n, this.m_rA, P.s_t1), i.SolveVelocityConstraints_s_Cdot1), f = O.MulM33XY(this.m_mass, _.x, _.y, i.SolveVelocityConstraints_s_impulse1).SelfNeg(); +this.m_impulse.x += f.x; +this.m_impulse.y += f.y; +var d = f; +e.SelfMulSub(o, d); +n -= c * P.CrossVV(this.m_rA, d); +r.SelfMulAdd(a, d); +s += l * P.CrossVV(this.m_rB, d); +} else { +_ = P.SubVV(P.AddVCrossSV(r, s, this.m_rB, P.s_t0), P.AddVCrossSV(e, n, this.m_rA, P.s_t1), i.SolveVelocityConstraints_s_Cdot1), +h = s - n; +var m = O.MulM33XYZ(this.m_mass, _.x, _.y, h, i.SolveVelocityConstraints_s_impulse).SelfNeg(); +this.m_impulse.SelfAdd(m); +d = i.SolveVelocityConstraints_s_P.Set(m.x, m.y); +e.SelfMulSub(o, d); +n -= c * (P.CrossVV(this.m_rA, d) + m.z); +r.SelfMulAdd(a, d); +s += l * (P.CrossVV(this.m_rB, d) + m.z); +} +t.velocities[this.m_indexA].w = n; +t.velocities[this.m_indexB].w = s; +}; +i.prototype.SolvePositionConstraints = function(t) { +var e = t.positions[this.m_indexA].c, n = t.positions[this.m_indexA].a, r = t.positions[this.m_indexB].c, s = t.positions[this.m_indexB].a, o = this.m_qA.SetAngle(n), a = this.m_qB.SetAngle(s), h = this.m_invMassA, u = this.m_invMassB, _ = this.m_invIA, f = this.m_invIB; +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +var d = V.MulRV(o, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +var m, p, v = V.MulRV(a, this.m_lalcB, this.m_rB), g = this.m_K; +g.ex.x = h + u + d.y * d.y * _ + v.y * v.y * f; +g.ey.x = -d.y * d.x * _ - v.y * v.x * f; +g.ez.x = -d.y * _ - v.y * f; +g.ex.y = g.ey.x; +g.ey.y = h + u + d.x * d.x * _ + v.x * v.x * f; +g.ez.y = d.x * _ + v.x * f; +g.ex.z = g.ez.x; +g.ey.z = g.ez.y; +g.ez.z = _ + f; +if (this.m_frequencyHz > 0) { +m = (C = P.SubVV(P.AddVV(r, v, P.s_t0), P.AddVV(e, d, P.s_t1), i.SolvePositionConstraints_s_C1)).Length(); +p = 0; +var x = g.Solve22(C.x, C.y, i.SolvePositionConstraints_s_P).SelfNeg(); +e.SelfMulSub(h, x); +n -= _ * P.CrossVV(d, x); +r.SelfMulAdd(u, x); +s += f * P.CrossVV(v, x); +} else { +var C = P.SubVV(P.AddVV(r, v, P.s_t0), P.AddVV(e, d, P.s_t1), i.SolvePositionConstraints_s_C1), b = s - n - this.m_referenceAngle; +m = C.Length(); +p = y(b); +var A = g.Solve33(C.x, C.y, b, i.SolvePositionConstraints_s_impulse).SelfNeg(); +x = i.SolvePositionConstraints_s_P.Set(A.x, A.y); +e.SelfMulSub(h, x); +n -= _ * (P.CrossVV(this.m_rA, x) + A.z); +r.SelfMulAdd(u, x); +s += f * (P.CrossVV(this.m_rB, x) + A.z); +} +t.positions[this.m_indexA].a = n; +t.positions[this.m_indexB].a = s; +return m <= c && p <= l; +}; +i.prototype.GetAnchorA = function(t) { +return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); +}; +i.prototype.GetAnchorB = function(t) { +return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); +}; +i.prototype.GetReactionForce = function(t, e) { +e.x = t * this.m_impulse.x; +e.y = t * this.m_impulse.y; +return e; +}; +i.prototype.GetReactionTorque = function(t) { +return t * this.m_impulse.z; +}; +i.prototype.GetLocalAnchorA = function() { +return this.m_localAnchorA; +}; +i.prototype.GetLocalAnchorB = function() { +return this.m_localAnchorB; +}; +i.prototype.GetReferenceAngle = function() { +return this.m_referenceAngle; +}; +i.prototype.SetFrequency = function(t) { +this.m_frequencyHz = t; +}; +i.prototype.GetFrequency = function() { +return this.m_frequencyHz; +}; +i.prototype.SetDampingRatio = function(t) { +this.m_dampingRatio = t; +}; +i.prototype.GetDampingRatio = function() { +return this.m_dampingRatio; +}; +i.prototype.Dump = function(t) { +var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; +t(" const jd: b2WeldJointDef = new b2WeldJointDef();\n"); +t(" jd.bodyA = bodies[%d];\n", e); +t(" jd.bodyB = bodies[%d];\n", i); +t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); +t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); +t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); +t(" jd.referenceAngle = %.15f;\n", this.m_referenceAngle); +t(" jd.frequencyHz = %.15f;\n", this.m_frequencyHz); +t(" jd.dampingRatio = %.15f;\n", this.m_dampingRatio); +t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); +}; +i.InitVelocityConstraints_s_P = new P(); +i.SolveVelocityConstraints_s_Cdot1 = new P(); +i.SolveVelocityConstraints_s_impulse1 = new P(); +i.SolveVelocityConstraints_s_impulse = new L(); +i.SolveVelocityConstraints_s_P = new P(); +i.SolvePositionConstraints_s_C1 = new P(); +i.SolvePositionConstraints_s_P = new P(); +i.SolvePositionConstraints_s_impulse = new L(); +return i; +})(fi), Oi = (function(e) { +$e(i, e); +function i() { +var i = e.call(this, t.b2JointType.e_wheelJoint) || this; +i.localAnchorA = new P(0, 0); +i.localAnchorB = new P(0, 0); +i.localAxisA = new P(1, 0); +i.enableMotor = !1; +i.maxMotorTorque = 0; +i.motorSpeed = 0; +i.frequencyHz = 2; +i.dampingRatio = .7; +return i; +} +i.prototype.Initialize = function(t, e, i, n) { +this.bodyA = t; +this.bodyB = e; +this.bodyA.GetLocalPoint(i, this.localAnchorA); +this.bodyB.GetLocalPoint(i, this.localAnchorB); +this.bodyA.GetLocalVector(n, this.localAxisA); +}; +return i; +})(_i), Vi = (function(t) { +$e(i, t); +function i(i) { +var n = t.call(this, i) || this; +n.m_frequencyHz = 0; +n.m_dampingRatio = 0; +n.m_localAnchorA = new P(); +n.m_localAnchorB = new P(); +n.m_localXAxisA = new P(); +n.m_localYAxisA = new P(); +n.m_impulse = 0; +n.m_motorImpulse = 0; +n.m_springImpulse = 0; +n.m_maxMotorTorque = 0; +n.m_motorSpeed = 0; +n.m_enableMotor = !1; +n.m_indexA = 0; +n.m_indexB = 0; +n.m_localCenterA = new P(); +n.m_localCenterB = new P(); +n.m_invMassA = 0; +n.m_invMassB = 0; +n.m_invIA = 0; +n.m_invIB = 0; +n.m_ax = new P(); +n.m_ay = new P(); +n.m_sAx = 0; +n.m_sBx = 0; +n.m_sAy = 0; +n.m_sBy = 0; +n.m_mass = 0; +n.m_motorMass = 0; +n.m_springMass = 0; +n.m_bias = 0; +n.m_gamma = 0; +n.m_qA = new V(); +n.m_qB = new V(); +n.m_lalcA = new P(); +n.m_lalcB = new P(); +n.m_rA = new P(); +n.m_rB = new P(); +n.m_frequencyHz = e(i.frequencyHz, 2); +n.m_dampingRatio = e(i.dampingRatio, .7); +n.m_localAnchorA.Copy(e(i.localAnchorA, P.ZERO)); +n.m_localAnchorB.Copy(e(i.localAnchorB, P.ZERO)); +n.m_localXAxisA.Copy(e(i.localAxisA, P.UNITX)); +P.CrossOneV(n.m_localXAxisA, n.m_localYAxisA); +n.m_maxMotorTorque = e(i.maxMotorTorque, 0); +n.m_motorSpeed = e(i.motorSpeed, 0); +n.m_enableMotor = e(i.enableMotor, !1); +n.m_ax.SetZero(); +n.m_ay.SetZero(); +return n; +} +i.prototype.GetMotorSpeed = function() { +return this.m_motorSpeed; +}; +i.prototype.GetMaxMotorTorque = function() { +return this.m_maxMotorTorque; +}; +i.prototype.SetSpringFrequencyHz = function(t) { +this.m_frequencyHz = t; +}; +i.prototype.GetSpringFrequencyHz = function() { +return this.m_frequencyHz; +}; +i.prototype.SetSpringDampingRatio = function(t) { +this.m_dampingRatio = t; +}; +i.prototype.GetSpringDampingRatio = function() { +return this.m_dampingRatio; +}; +i.prototype.InitVelocityConstraints = function(t) { +this.m_indexA = this.m_bodyA.m_islandIndex; +this.m_indexB = this.m_bodyB.m_islandIndex; +this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); +this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); +this.m_invMassA = this.m_bodyA.m_invMass; +this.m_invMassB = this.m_bodyB.m_invMass; +this.m_invIA = this.m_bodyA.m_invI; +this.m_invIB = this.m_bodyB.m_invI; +var e = this.m_invMassA, n = this.m_invMassB, r = this.m_invIA, o = this.m_invIB, a = t.positions[this.m_indexA].c, c = t.positions[this.m_indexA].a, l = t.velocities[this.m_indexA].v, h = t.velocities[this.m_indexA].w, u = t.positions[this.m_indexB].c, _ = t.positions[this.m_indexB].a, f = t.velocities[this.m_indexB].v, d = t.velocities[this.m_indexB].w, m = this.m_qA.SetAngle(c), p = this.m_qB.SetAngle(_); +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +var v = V.MulRV(m, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +var y = V.MulRV(p, this.m_lalcB, this.m_rB), g = P.SubVV(P.AddVV(u, y, P.s_t0), P.AddVV(a, v, P.s_t1), i.InitVelocityConstraints_s_d); +V.MulRV(m, this.m_localYAxisA, this.m_ay); +this.m_sAy = P.CrossVV(P.AddVV(g, v, P.s_t0), this.m_ay); +this.m_sBy = P.CrossVV(y, this.m_ay); +this.m_mass = e + n + r * this.m_sAy * this.m_sAy + o * this.m_sBy * this.m_sBy; +this.m_mass > 0 && (this.m_mass = 1 / this.m_mass); +this.m_springMass = 0; +this.m_bias = 0; +this.m_gamma = 0; +if (this.m_frequencyHz > 0) { +V.MulRV(m, this.m_localXAxisA, this.m_ax); +this.m_sAx = P.CrossVV(P.AddVV(g, v, P.s_t0), this.m_ax); +this.m_sBx = P.CrossVV(y, this.m_ax); +var x = e + n + r * this.m_sAx * this.m_sAx + o * this.m_sBx * this.m_sBx; +if (x > 0) { +this.m_springMass = 1 / x; +var C = P.DotVV(g, this.m_ax), b = 2 * s * this.m_frequencyHz, A = 2 * this.m_springMass * this.m_dampingRatio * b, S = this.m_springMass * b * b, w = t.step.dt; +this.m_gamma = w * (A + w * S); +this.m_gamma > 0 && (this.m_gamma = 1 / this.m_gamma); +this.m_bias = C * w * S * this.m_gamma; +this.m_springMass = x + this.m_gamma; +this.m_springMass > 0 && (this.m_springMass = 1 / this.m_springMass); +} +} else this.m_springImpulse = 0; +if (this.m_enableMotor) { +this.m_motorMass = r + o; +this.m_motorMass > 0 && (this.m_motorMass = 1 / this.m_motorMass); +} else { +this.m_motorMass = 0; +this.m_motorImpulse = 0; +} +if (t.step.warmStarting) { +this.m_impulse *= t.step.dtRatio; +this.m_springImpulse *= t.step.dtRatio; +this.m_motorImpulse *= t.step.dtRatio; +var T = P.AddVV(P.MulSV(this.m_impulse, this.m_ay, P.s_t0), P.MulSV(this.m_springImpulse, this.m_ax, P.s_t1), i.InitVelocityConstraints_s_P), E = this.m_impulse * this.m_sAy + this.m_springImpulse * this.m_sAx + this.m_motorImpulse, M = this.m_impulse * this.m_sBy + this.m_springImpulse * this.m_sBx + this.m_motorImpulse; +l.SelfMulSub(this.m_invMassA, T); +h -= this.m_invIA * E; +f.SelfMulAdd(this.m_invMassB, T); +d += this.m_invIB * M; +} else { +this.m_impulse = 0; +this.m_springImpulse = 0; +this.m_motorImpulse = 0; +} +t.velocities[this.m_indexA].w = h; +t.velocities[this.m_indexB].w = d; +}; +i.prototype.SolveVelocityConstraints = function(t) { +var e = this.m_invMassA, n = this.m_invMassB, r = this.m_invIA, s = this.m_invIB, o = t.velocities[this.m_indexA].v, a = t.velocities[this.m_indexA].w, c = t.velocities[this.m_indexB].v, l = t.velocities[this.m_indexB].w, h = P.DotVV(this.m_ax, P.SubVV(c, o, P.s_t0)) + this.m_sBx * l - this.m_sAx * a, u = -this.m_springMass * (h + this.m_bias + this.m_gamma * this.m_springImpulse); +this.m_springImpulse += u; +var _ = P.MulSV(u, this.m_ax, i.SolveVelocityConstraints_s_P), f = u * this.m_sAx, d = u * this.m_sBx; +o.SelfMulSub(e, _); +a -= r * f; +c.SelfMulAdd(n, _); +h = (l += s * d) - a - this.m_motorSpeed, u = -this.m_motorMass * h; +var m = this.m_motorImpulse, p = t.step.dt * this.m_maxMotorTorque; +this.m_motorImpulse = C(this.m_motorImpulse + u, -p, p); +a -= r * (u = this.m_motorImpulse - m); +l += s * u; +h = P.DotVV(this.m_ay, P.SubVV(c, o, P.s_t0)) + this.m_sBy * l - this.m_sAy * a, +u = -this.m_mass * h; +this.m_impulse += u; +_ = P.MulSV(u, this.m_ay, i.SolveVelocityConstraints_s_P), f = u * this.m_sAy, d = u * this.m_sBy; +o.SelfMulSub(e, _); +a -= r * f; +c.SelfMulAdd(n, _); +l += s * d; +t.velocities[this.m_indexA].w = a; +t.velocities[this.m_indexB].w = l; +}; +i.prototype.SolvePositionConstraints = function(t) { +var e = t.positions[this.m_indexA].c, n = t.positions[this.m_indexA].a, r = t.positions[this.m_indexB].c, s = t.positions[this.m_indexB].a, o = this.m_qA.SetAngle(n), a = this.m_qB.SetAngle(s); +P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); +var l = V.MulRV(o, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); +var h, u = V.MulRV(a, this.m_lalcB, this.m_rB), _ = P.AddVV(P.SubVV(r, e, P.s_t0), P.SubVV(u, l, P.s_t1), i.SolvePositionConstraints_s_d), f = V.MulRV(o, this.m_localYAxisA, this.m_ay), d = P.CrossVV(P.AddVV(_, l, P.s_t0), f), m = P.CrossVV(u, f), p = P.DotVV(_, this.m_ay), v = this.m_invMassA + this.m_invMassB + this.m_invIA * this.m_sAy * this.m_sAy + this.m_invIB * this.m_sBy * this.m_sBy; +h = 0 !== v ? -p / v : 0; +var g = P.MulSV(h, f, i.SolvePositionConstraints_s_P), x = h * d, C = h * m; +e.SelfMulSub(this.m_invMassA, g); +n -= this.m_invIA * x; +r.SelfMulAdd(this.m_invMassB, g); +s += this.m_invIB * C; +t.positions[this.m_indexA].a = n; +t.positions[this.m_indexB].a = s; +return y(p) <= c; +}; +i.prototype.GetDefinition = function(t) { +return t; +}; +i.prototype.GetAnchorA = function(t) { +return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); +}; +i.prototype.GetAnchorB = function(t) { +return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); +}; +i.prototype.GetReactionForce = function(t, e) { +e.x = t * (this.m_impulse * this.m_ay.x + this.m_springImpulse * this.m_ax.x); +e.y = t * (this.m_impulse * this.m_ay.y + this.m_springImpulse * this.m_ax.y); +return e; +}; +i.prototype.GetReactionTorque = function(t) { +return t * this.m_motorImpulse; +}; +i.prototype.GetLocalAnchorA = function() { +return this.m_localAnchorA; +}; +i.prototype.GetLocalAnchorB = function() { +return this.m_localAnchorB; +}; +i.prototype.GetLocalAxisA = function() { +return this.m_localXAxisA; +}; +i.prototype.GetJointTranslation = function() { +return this.GetPrismaticJointTranslation(); +}; +i.prototype.GetJointLinearSpeed = function() { +return this.GetPrismaticJointSpeed(); +}; +i.prototype.GetJointAngle = function() { +return this.GetRevoluteJointAngle(); +}; +i.prototype.GetJointAngularSpeed = function() { +return this.GetRevoluteJointSpeed(); +}; +i.prototype.GetPrismaticJointTranslation = function() { +var t = this.m_bodyA, e = this.m_bodyB, i = t.GetWorldPoint(this.m_localAnchorA, new P()), n = e.GetWorldPoint(this.m_localAnchorB, new P()), r = P.SubVV(n, i, new P()), s = t.GetWorldVector(this.m_localXAxisA, new P()); +return P.DotVV(r, s); +}; +i.prototype.GetPrismaticJointSpeed = function() { +var t = this.m_bodyA, e = this.m_bodyB; +P.SubVV(this.m_localAnchorA, t.m_sweep.localCenter, this.m_lalcA); +var i = V.MulRV(t.m_xf.q, this.m_lalcA, this.m_rA); +P.SubVV(this.m_localAnchorB, e.m_sweep.localCenter, this.m_lalcB); +var n = V.MulRV(e.m_xf.q, this.m_lalcB, this.m_rB), r = P.AddVV(t.m_sweep.c, i, P.s_t0), s = P.AddVV(e.m_sweep.c, n, P.s_t1), o = P.SubVV(s, r, P.s_t2), a = t.GetWorldVector(this.m_localXAxisA, new P()), c = t.m_linearVelocity, l = e.m_linearVelocity, h = t.m_angularVelocity, u = e.m_angularVelocity; +return P.DotVV(o, P.CrossSV(h, a, P.s_t0)) + P.DotVV(a, P.SubVV(P.AddVCrossSV(l, u, n, P.s_t0), P.AddVCrossSV(c, h, i, P.s_t1), P.s_t0)); +}; +i.prototype.GetRevoluteJointAngle = function() { +return this.m_bodyB.m_sweep.a - this.m_bodyA.m_sweep.a; +}; +i.prototype.GetRevoluteJointSpeed = function() { +var t = this.m_bodyA.m_angularVelocity; +return this.m_bodyB.m_angularVelocity - t; +}; +i.prototype.IsMotorEnabled = function() { +return this.m_enableMotor; +}; +i.prototype.EnableMotor = function(t) { +if (t !== this.m_enableMotor) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_enableMotor = t; +} +}; +i.prototype.SetMotorSpeed = function(t) { +if (t !== this.m_motorSpeed) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_motorSpeed = t; +} +}; +i.prototype.SetMaxMotorTorque = function(t) { +if (t !== this.m_maxMotorTorque) { +this.m_bodyA.SetAwake(!0); +this.m_bodyB.SetAwake(!0); +this.m_maxMotorTorque = t; +} +}; +i.prototype.GetMotorTorque = function(t) { +return t * this.m_motorImpulse; +}; +i.prototype.Dump = function(t) { +var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; +t(" const jd: b2WheelJointDef = new b2WheelJointDef();\n"); +t(" jd.bodyA = bodies[%d];\n", e); +t(" jd.bodyB = bodies[%d];\n", i); +t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); +t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); +t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); +t(" jd.localAxisA.Set(%.15f, %.15f);\n", this.m_localXAxisA.x, this.m_localXAxisA.y); +t(" jd.enableMotor = %s;\n", this.m_enableMotor ? "true" : "false"); +t(" jd.motorSpeed = %.15f;\n", this.m_motorSpeed); +t(" jd.maxMotorTorque = %.15f;\n", this.m_maxMotorTorque); +t(" jd.frequencyHz = %.15f;\n", this.m_frequencyHz); +t(" jd.dampingRatio = %.15f;\n", this.m_dampingRatio); +t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); +}; +i.InitVelocityConstraints_s_d = new P(); +i.InitVelocityConstraints_s_P = new P(); +i.SolveVelocityConstraints_s_P = new P(); +i.SolvePositionConstraints_s_d = new P(); +i.SolvePositionConstraints_s_P = new P(); +return i; +})(fi); +function Ni(t, e) { +return w(t * e); +} +function ki(t, e) { +return t > e ? t : e; +} +var zi = (function() { +return function(t) { +this.prev = null; +this.next = null; +this.contact = t; +}; +})(), Gi = (function() { +function t() { +this.m_islandFlag = !1; +this.m_touchingFlag = !1; +this.m_enabledFlag = !1; +this.m_filterFlag = !1; +this.m_bulletHitFlag = !1; +this.m_toiFlag = !1; +this.m_prev = null; +this.m_next = null; +this.m_indexA = 0; +this.m_indexB = 0; +this.m_manifold = new Ct(); +this.m_toiCount = 0; +this.m_toi = 0; +this.m_friction = 0; +this.m_restitution = 0; +this.m_tangentSpeed = 0; +this.m_oldManifold = new Ct(); +this.m_nodeA = new zi(this); +this.m_nodeB = new zi(this); +} +t.prototype.GetManifold = function() { +return this.m_manifold; +}; +t.prototype.GetWorldManifold = function(t) { +var e = this.m_fixtureA.GetBody(), i = this.m_fixtureB.GetBody(), n = this.m_fixtureA.GetShape(), r = this.m_fixtureB.GetShape(); +t.Initialize(this.m_manifold, e.GetTransform(), n.m_radius, i.GetTransform(), r.m_radius); +}; +t.prototype.IsTouching = function() { +return this.m_touchingFlag; +}; +t.prototype.SetEnabled = function(t) { +this.m_enabledFlag = t; +}; +t.prototype.IsEnabled = function() { +return this.m_enabledFlag; +}; +t.prototype.GetNext = function() { +return this.m_next; +}; +t.prototype.GetFixtureA = function() { +return this.m_fixtureA; +}; +t.prototype.GetChildIndexA = function() { +return this.m_indexA; +}; +t.prototype.GetFixtureB = function() { +return this.m_fixtureB; +}; +t.prototype.GetChildIndexB = function() { +return this.m_indexB; +}; +t.prototype.FlagForFiltering = function() { +this.m_filterFlag = !0; +}; +t.prototype.SetFriction = function(t) { +this.m_friction = t; +}; +t.prototype.GetFriction = function() { +return this.m_friction; +}; +t.prototype.ResetFriction = function() { +this.m_friction = Ni(this.m_fixtureA.m_friction, this.m_fixtureB.m_friction); +}; +t.prototype.SetRestitution = function(t) { +this.m_restitution = t; +}; +t.prototype.GetRestitution = function() { +return this.m_restitution; +}; +t.prototype.ResetRestitution = function() { +this.m_restitution = ki(this.m_fixtureA.m_restitution, this.m_fixtureB.m_restitution); +}; +t.prototype.SetTangentSpeed = function(t) { +this.m_tangentSpeed = t; +}; +t.prototype.GetTangentSpeed = function() { +return this.m_tangentSpeed; +}; +t.prototype.Reset = function(t, e, i, n) { +this.m_islandFlag = !1; +this.m_touchingFlag = !1; +this.m_enabledFlag = !0; +this.m_filterFlag = !1; +this.m_bulletHitFlag = !1; +this.m_toiFlag = !1; +this.m_fixtureA = t; +this.m_fixtureB = i; +this.m_indexA = e; +this.m_indexB = n; +this.m_manifold.pointCount = 0; +this.m_prev = null; +this.m_next = null; +delete this.m_nodeA.contact; +this.m_nodeA.prev = null; +this.m_nodeA.next = null; +delete this.m_nodeA.other; +delete this.m_nodeB.contact; +this.m_nodeB.prev = null; +this.m_nodeB.next = null; +delete this.m_nodeB.other; +this.m_toiCount = 0; +this.m_friction = Ni(this.m_fixtureA.m_friction, this.m_fixtureB.m_friction); +this.m_restitution = ki(this.m_fixtureA.m_restitution, this.m_fixtureB.m_restitution); +}; +t.prototype.Update = function(t) { +var e = this.m_oldManifold; +this.m_oldManifold = this.m_manifold; +this.m_manifold = e; +this.m_enabledFlag = !0; +var i = !1, n = this.m_touchingFlag, r = this.m_fixtureA.IsSensor(), s = this.m_fixtureB.IsSensor(), o = r || s, a = this.m_fixtureA.GetBody(), c = this.m_fixtureB.GetBody(), l = a.GetTransform(), h = c.GetTransform(); +if (o) { +var u = this.m_fixtureA.GetShape(), _ = this.m_fixtureB.GetShape(); +i = Pt(u, this.m_indexA, _, this.m_indexB, l, h); +this.m_manifold.pointCount = 0; +} else { +this.Evaluate(this.m_manifold, l, h); +i = this.m_manifold.pointCount > 0; +for (var f = 0; f < this.m_manifold.pointCount; ++f) { +var d = this.m_manifold.points[f]; +d.normalImpulse = 0; +d.tangentImpulse = 0; +for (var m = d.id, p = 0; p < this.m_oldManifold.pointCount; ++p) { +var v = this.m_oldManifold.points[p]; +if (v.id.key === m.key) { +d.normalImpulse = v.normalImpulse; +d.tangentImpulse = v.tangentImpulse; +break; +} +} +} +if (i !== n) { +a.SetAwake(!0); +c.SetAwake(!0); +} +} +this.m_touchingFlag = i; +!n && i && t && t.BeginContact(this); +n && !i && t && t.EndContact(this); +!o && i && t && t.PreSolve(this, this.m_oldManifold); +}; +t.prototype.ComputeTOI = function(e, i) { +var n = t.ComputeTOI_s_input; +n.proxyA.SetShape(this.m_fixtureA.GetShape(), this.m_indexA); +n.proxyB.SetShape(this.m_fixtureB.GetShape(), this.m_indexB); +n.sweepA.Copy(e); +n.sweepB.Copy(i); +n.tMax = c; +var r = t.ComputeTOI_s_output; +re(r, n); +return r.t; +}; +t.ComputeTOI_s_input = new qt(); +t.ComputeTOI_s_output = new Xt(); +return t; +})(), Ui = (function(t) { +$e(e, t); +function e() { +return t.call(this) || this; +} +e.Create = function(t) { +return new e(); +}; +e.Destroy = function(t, e) {}; +e.prototype.Reset = function(e, i, n, r) { +t.prototype.Reset.call(this, e, i, n, r); +}; +e.prototype.Evaluate = function(t, e, i) { +ae(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i); +}; +return e; +})(Gi), ji = (function(t) { +$e(e, t); +function e() { +return t.call(this) || this; +} +e.Create = function(t) { +return new e(); +}; +e.Destroy = function(t, e) {}; +e.prototype.Reset = function(e, i, n, r) { +t.prototype.Reset.call(this, e, i, n, r); +}; +e.prototype.Evaluate = function(t, e, i) { +Fe(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i); +}; +return e; +})(Gi), Wi = (function(t) { +$e(e, t); +function e() { +return t.call(this) || this; +} +e.Create = function(t) { +return new e(); +}; +e.Destroy = function(t, e) {}; +e.prototype.Reset = function(e, i, n, r) { +t.prototype.Reset.call(this, e, i, n, r); +}; +e.prototype.Evaluate = function(t, e, i) { +ue(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i); +}; +return e; +})(Gi), Hi = (function(t) { +$e(e, t); +function e() { +return t.call(this) || this; +} +e.Create = function(t) { +return new e(); +}; +e.Destroy = function(t, e) {}; +e.prototype.Reset = function(e, i, n, r) { +t.prototype.Reset.call(this, e, i, n, r); +}; +e.prototype.Evaluate = function(t, e, i) { +We(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i); +}; +return e; +})(Gi), qi = (function(t) { +$e(e, t); +function e() { +return t.call(this) || this; +} +e.Create = function(t) { +return new e(); +}; +e.Destroy = function(t, e) {}; +e.prototype.Reset = function(e, i, n, r) { +t.prototype.Reset.call(this, e, i, n, r); +}; +e.prototype.Evaluate = function(t, e, i) { +Je(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i); +}; +return e; +})(Gi), Xi = (function(t) { +$e(e, t); +function e() { +return t.call(this) || this; +} +e.Create = function(t) { +return new e(); +}; +e.Destroy = function(t, e) {}; +e.prototype.Reset = function(e, i, n, r) { +t.prototype.Reset.call(this, e, i, n, r); +}; +e.prototype.Evaluate = function(t, i, n) { +var r = this.m_fixtureA.GetShape(), s = this.m_fixtureB.GetShape(), o = r, a = e.Evaluate_s_edge; +o.GetChildEdge(a, this.m_indexA); +We(t, a, i, s, n); +}; +e.Evaluate_s_edge = new ii(); +return e; +})(Gi), Yi = (function(t) { +$e(e, t); +function e() { +return t.call(this) || this; +} +e.Create = function(t) { +return new e(); +}; +e.Destroy = function(t, e) {}; +e.prototype.Reset = function(e, i, n, r) { +t.prototype.Reset.call(this, e, i, n, r); +}; +e.prototype.Evaluate = function(t, i, n) { +var r = this.m_fixtureA.GetShape(), s = this.m_fixtureB.GetShape(), o = r, a = e.Evaluate_s_edge; +o.GetChildEdge(a, this.m_indexA); +Je(t, a, i, s, n); +}; +e.Evaluate_s_edge = new ii(); +return e; +})(Gi), Ji = (function() { +return function() { +this.createFcn = null; +this.destroyFcn = null; +this.primary = !1; +}; +})(), Zi = (function() { +function e(t) { +this.m_allocator = null; +this.m_allocator = t; +this.InitializeRegisters(); +} +e.prototype.AddType = function(t, e, i, n) { +var r = this, s = d(256, (function(e) { +return t(r.m_allocator); +})); +function o(e) { +return s.pop() || t(e); +} +function a(t, e) { +s.push(t); +} +this.m_registers[i][n].createFcn = o; +this.m_registers[i][n].destroyFcn = a; +this.m_registers[i][n].primary = !0; +if (i !== n) { +this.m_registers[n][i].createFcn = o; +this.m_registers[n][i].destroyFcn = a; +this.m_registers[n][i].primary = !1; +} +}; +e.prototype.InitializeRegisters = function() { +this.m_registers = []; +for (var e = 0; e < t.b2ShapeType.e_shapeTypeCount; e++) { +this.m_registers[e] = []; +for (var i = 0; i < t.b2ShapeType.e_shapeTypeCount; i++) this.m_registers[e][i] = new Ji(); +} +this.AddType(Ui.Create, Ui.Destroy, t.b2ShapeType.e_circleShape, t.b2ShapeType.e_circleShape); +this.AddType(Wi.Create, Wi.Destroy, t.b2ShapeType.e_polygonShape, t.b2ShapeType.e_circleShape); +this.AddType(ji.Create, ji.Destroy, t.b2ShapeType.e_polygonShape, t.b2ShapeType.e_polygonShape); +this.AddType(Hi.Create, Hi.Destroy, t.b2ShapeType.e_edgeShape, t.b2ShapeType.e_circleShape); +this.AddType(qi.Create, qi.Destroy, t.b2ShapeType.e_edgeShape, t.b2ShapeType.e_polygonShape); +this.AddType(Xi.Create, Xi.Destroy, t.b2ShapeType.e_chainShape, t.b2ShapeType.e_circleShape); +this.AddType(Yi.Create, Yi.Destroy, t.b2ShapeType.e_chainShape, t.b2ShapeType.e_polygonShape); +}; +e.prototype.Create = function(t, e, i, n) { +var r = t.GetType(), s = i.GetType(), o = this.m_registers[r][s]; +if (o.createFcn) { +var a = o.createFcn(this.m_allocator); +o.primary ? a.Reset(t, e, i, n) : a.Reset(i, n, t, e); +return a; +} +return null; +}; +e.prototype.Destroy = function(t) { +var e = t.m_fixtureA, i = t.m_fixtureB; +if (t.m_manifold.pointCount > 0 && !e.IsSensor() && !i.IsSensor()) { +e.GetBody().SetAwake(!0); +i.GetBody().SetAwake(!0); +} +var n = e.GetType(), r = i.GetType(), s = this.m_registers[n][r]; +s.destroyFcn && s.destroyFcn(t, this.m_allocator); +}; +return e; +})(), Ki = (function() { +function t() {} +t.prototype.SayGoodbyeJoint = function(t) {}; +t.prototype.SayGoodbyeFixture = function(t) {}; +t.prototype.SayGoodbyeParticleGroup = function(t) {}; +t.prototype.SayGoodbyeParticle = function(t, e) {}; +return t; +})(), Qi = (function() { +function e() {} +e.prototype.ShouldCollide = function(e, i) { +var n = e.GetBody(), r = i.GetBody(); +if (r.GetType() === t.b2BodyType.b2_staticBody && n.GetType() === t.b2BodyType.b2_staticBody) return !1; +if (!r.ShouldCollideConnected(n)) return !1; +var s = e.GetFilterData(), o = i.GetFilterData(); +return s.groupIndex === o.groupIndex && 0 !== s.groupIndex ? s.groupIndex > 0 : 0 != (s.maskBits & o.categoryBits) && 0 != (s.categoryBits & o.maskBits); +}; +e.prototype.ShouldCollideFixtureParticle = function(t, e, i) { +return !0; +}; +e.prototype.ShouldCollideParticleParticle = function(t, e, i) { +return !0; +}; +e.b2_defaultFilter = new e(); +return e; +})(), $i = (function() { +return function() { +this.normalImpulses = m(o); +this.tangentImpulses = m(o); +this.count = 0; +}; +})(), tn = (function() { +function t() {} +t.prototype.BeginContact = function(t) {}; +t.prototype.EndContact = function(t) {}; +t.prototype.BeginContactFixtureParticle = function(t, e) {}; +t.prototype.EndContactFixtureParticle = function(t, e) {}; +t.prototype.BeginContactParticleParticle = function(t, e) {}; +t.prototype.EndContactParticleParticle = function(t, e) {}; +t.prototype.PreSolve = function(t, e) {}; +t.prototype.PostSolve = function(t, e) {}; +t.b2_defaultListener = new t(); +return t; +})(), en = (function() { +function t() {} +t.prototype.ReportFixture = function(t) { +return !0; +}; +t.prototype.ReportParticle = function(t, e) { +return !1; +}; +t.prototype.ShouldQueryParticleSystem = function(t) { +return !0; +}; +return t; +})(), nn = (function() { +function t() {} +t.prototype.ReportFixture = function(t, e, i, n) { +return n; +}; +t.prototype.ReportParticle = function(t, e, i, n, r) { +return 0; +}; +t.prototype.ShouldQueryParticleSystem = function(t) { +return !0; +}; +return t; +})(), rn = (function() { +function e() { +this.m_broadPhase = new Vt(); +this.m_contactList = null; +this.m_contactCount = 0; +this.m_contactFilter = Qi.b2_defaultFilter; +this.m_contactListener = tn.b2_defaultListener; +this.m_allocator = null; +this.m_contactFactory = new Zi(this.m_allocator); +} +e.prototype.AddPair = function(t, e) { +var i = t.fixture, n = e.fixture, r = t.childIndex, s = e.childIndex, o = i.GetBody(), a = n.GetBody(); +if (o !== a) { +for (var c = a.GetContactList(); c; ) { +if (c.other === o) { +var l = c.contact.GetFixtureA(), h = c.contact.GetFixtureB(), u = c.contact.GetChildIndexA(), _ = c.contact.GetChildIndexB(); +if (l === i && h === n && u === r && _ === s) return; +if (l === n && h === i && u === s && _ === r) return; +} +c = c.next; +} +if (!this.m_contactFilter || this.m_contactFilter.ShouldCollide(i, n)) { +var f = this.m_contactFactory.Create(i, r, n, s); +if (null !== f) { +i = f.GetFixtureA(); +n = f.GetFixtureB(); +r = f.GetChildIndexA(); +s = f.GetChildIndexB(); +o = i.m_body; +a = n.m_body; +f.m_prev = null; +f.m_next = this.m_contactList; +null !== this.m_contactList && (this.m_contactList.m_prev = f); +this.m_contactList = f; +f.m_nodeA.contact = f; +f.m_nodeA.other = a; +f.m_nodeA.prev = null; +f.m_nodeA.next = o.m_contactList; +null !== o.m_contactList && (o.m_contactList.prev = f.m_nodeA); +o.m_contactList = f.m_nodeA; +f.m_nodeB.contact = f; +f.m_nodeB.other = o; +f.m_nodeB.prev = null; +f.m_nodeB.next = a.m_contactList; +null !== a.m_contactList && (a.m_contactList.prev = f.m_nodeB); +a.m_contactList = f.m_nodeB; +if (!i.IsSensor() && !n.IsSensor()) { +o.SetAwake(!0); +a.SetAwake(!0); +} +++this.m_contactCount; +} +} +} +}; +e.prototype.FindNewContacts = function() { +var t = this; +this.m_broadPhase.UpdatePairs((function(e, i) { +t.AddPair(e, i); +})); +}; +e.prototype.Destroy = function(t) { +var e = t.GetFixtureA(), i = t.GetFixtureB(), n = e.GetBody(), r = i.GetBody(); +this.m_contactListener && t.IsTouching() && this.m_contactListener.EndContact(t); +t.m_prev && (t.m_prev.m_next = t.m_next); +t.m_next && (t.m_next.m_prev = t.m_prev); +t === this.m_contactList && (this.m_contactList = t.m_next); +t.m_nodeA.prev && (t.m_nodeA.prev.next = t.m_nodeA.next); +t.m_nodeA.next && (t.m_nodeA.next.prev = t.m_nodeA.prev); +t.m_nodeA === n.m_contactList && (n.m_contactList = t.m_nodeA.next); +t.m_nodeB.prev && (t.m_nodeB.prev.next = t.m_nodeB.next); +t.m_nodeB.next && (t.m_nodeB.next.prev = t.m_nodeB.prev); +t.m_nodeB === r.m_contactList && (r.m_contactList = t.m_nodeB.next); +this.m_contactFactory.Destroy(t); +--this.m_contactCount; +}; +e.prototype.Collide = function() { +for (var e = this.m_contactList; e; ) { +var i = e.GetFixtureA(), n = e.GetFixtureB(), r = e.GetChildIndexA(), s = e.GetChildIndexB(), o = i.GetBody(), a = n.GetBody(); +if (e.m_filterFlag) { +if (this.m_contactFilter && !this.m_contactFilter.ShouldCollide(i, n)) { +e = (_ = e).m_next; +this.Destroy(_); +continue; +} +e.m_filterFlag = !1; +} +var c = o.IsAwake() && o.m_type !== t.b2BodyType.b2_staticBody, l = a.IsAwake() && a.m_type !== t.b2BodyType.b2_staticBody; +if (c || l) { +var h = i.m_proxies[r].treeNode, u = n.m_proxies[s].treeNode; +if (Et(h.aabb, u.aabb)) { +e.Update(this.m_contactListener); +e = e.m_next; +} else { +var _; +e = (_ = e).m_next; +this.Destroy(_); +} +} else e = e.m_next; +} +}; +return e; +})(), sn = (function() { +function t() { +this.step = 0; +this.collide = 0; +this.solve = 0; +this.solveInit = 0; +this.solveVelocity = 0; +this.solvePosition = 0; +this.broadphase = 0; +this.solveTOI = 0; +} +t.prototype.Reset = function() { +this.step = 0; +this.collide = 0; +this.solve = 0; +this.solveInit = 0; +this.solveVelocity = 0; +this.solvePosition = 0; +this.broadphase = 0; +this.solveTOI = 0; +return this; +}; +return t; +})(), on = (function() { +function t() { +this.dt = 0; +this.inv_dt = 0; +this.dtRatio = 0; +this.velocityIterations = 0; +this.positionIterations = 0; +this.particleIterations = 0; +this.warmStarting = !1; +} +t.prototype.Copy = function(t) { +this.dt = t.dt; +this.inv_dt = t.inv_dt; +this.dtRatio = t.dtRatio; +this.positionIterations = t.positionIterations; +this.velocityIterations = t.velocityIterations; +this.particleIterations = t.particleIterations; +this.warmStarting = t.warmStarting; +return this; +}; +return t; +})(), an = (function() { +function t() { +this.c = new P(); +this.a = 0; +} +t.MakeArray = function(e) { +return d(e, (function(e) { +return new t(); +})); +}; +return t; +})(), cn = (function() { +function t() { +this.v = new P(); +this.w = 0; +} +t.MakeArray = function(e) { +return d(e, (function(e) { +return new t(); +})); +}; +return t; +})(), ln = (function() { +return function() { +this.step = new on(); +}; +})(), hn = (function() { +function t() { +this.rA = new P(); +this.rB = new P(); +this.normalImpulse = 0; +this.tangentImpulse = 0; +this.normalMass = 0; +this.tangentMass = 0; +this.velocityBias = 0; +} +t.MakeArray = function(e) { +return d(e, (function(e) { +return new t(); +})); +}; +return t; +})(), un = (function() { +function t() { +this.points = hn.MakeArray(o); +this.normal = new P(); +this.tangent = new P(); +this.normalMass = new F(); +this.K = new F(); +this.indexA = 0; +this.indexB = 0; +this.invMassA = 0; +this.invMassB = 0; +this.invIA = 0; +this.invIB = 0; +this.friction = 0; +this.restitution = 0; +this.tangentSpeed = 0; +this.pointCount = 0; +this.contactIndex = 0; +} +t.MakeArray = function(e) { +return d(e, (function(e) { +return new t(); +})); +}; +return t; +})(), _n = (function() { +function e() { +this.localPoints = P.MakeArray(o); +this.localNormal = new P(); +this.localPoint = new P(); +this.indexA = 0; +this.indexB = 0; +this.invMassA = 0; +this.invMassB = 0; +this.localCenterA = new P(); +this.localCenterB = new P(); +this.invIA = 0; +this.invIB = 0; +this.type = t.b2ManifoldType.e_unknown; +this.radiusA = 0; +this.radiusB = 0; +this.pointCount = 0; +} +e.MakeArray = function(t) { +return d(t, (function(t) { +return new e(); +})); +}; +return e; +})(), fn = (function() { +return function() { +this.step = new on(); +this.count = 0; +this.allocator = null; +}; +})(), dn = (function() { +function e() { +this.normal = new P(); +this.point = new P(); +this.separation = 0; +} +e.prototype.Initialize = function(i, n, r, s) { +var o = e.Initialize_s_pointA, a = e.Initialize_s_pointB, c = e.Initialize_s_planePoint, l = e.Initialize_s_clipPoint; +switch (i.type) { +case t.b2ManifoldType.e_circles: +N.MulXV(n, i.localPoint, o); +N.MulXV(r, i.localPoints[0], a); +P.SubVV(a, o, this.normal).SelfNormalize(); +P.MidVV(o, a, this.point); +this.separation = P.DotVV(P.SubVV(a, o, P.s_t0), this.normal) - i.radiusA - i.radiusB; +break; + +case t.b2ManifoldType.e_faceA: +V.MulRV(n.q, i.localNormal, this.normal); +N.MulXV(n, i.localPoint, c); +N.MulXV(r, i.localPoints[s], l); +this.separation = P.DotVV(P.SubVV(l, c, P.s_t0), this.normal) - i.radiusA - i.radiusB; +this.point.Copy(l); +break; + +case t.b2ManifoldType.e_faceB: +V.MulRV(r.q, i.localNormal, this.normal); +N.MulXV(r, i.localPoint, c); +N.MulXV(n, i.localPoints[s], l); +this.separation = P.DotVV(P.SubVV(l, c, P.s_t0), this.normal) - i.radiusA - i.radiusB; +this.point.Copy(l); +this.normal.SelfNeg(); +} +}; +e.Initialize_s_pointA = new P(); +e.Initialize_s_pointB = new P(); +e.Initialize_s_planePoint = new P(); +e.Initialize_s_clipPoint = new P(); +return e; +})(), mn = (function() { +function t() { +this.m_step = new on(); +this.m_allocator = null; +this.m_positionConstraints = _n.MakeArray(1024); +this.m_velocityConstraints = un.MakeArray(1024); +this.m_count = 0; +} +t.prototype.Initialize = function(t) { +this.m_step.Copy(t.step); +this.m_allocator = t.allocator; +this.m_count = t.count; +if (this.m_positionConstraints.length < this.m_count) for (var e = x(2 * this.m_positionConstraints.length, this.m_count); this.m_positionConstraints.length < e; ) this.m_positionConstraints[this.m_positionConstraints.length] = new _n(); +if (this.m_velocityConstraints.length < this.m_count) for (e = x(2 * this.m_velocityConstraints.length, this.m_count); this.m_velocityConstraints.length < e; ) this.m_velocityConstraints[this.m_velocityConstraints.length] = new un(); +this.m_positions = t.positions; +this.m_velocities = t.velocities; +this.m_contacts = t.contacts; +for (var i = 0; i < this.m_count; ++i) { +var n = this.m_contacts[i], r = n.m_fixtureA, s = n.m_fixtureB, o = r.GetShape(), a = s.GetShape(), c = o.m_radius, l = a.m_radius, h = r.GetBody(), u = s.GetBody(), _ = n.GetManifold(), f = _.pointCount, d = this.m_velocityConstraints[i]; +d.friction = n.m_friction; +d.restitution = n.m_restitution; +d.tangentSpeed = n.m_tangentSpeed; +d.indexA = h.m_islandIndex; +d.indexB = u.m_islandIndex; +d.invMassA = h.m_invMass; +d.invMassB = u.m_invMass; +d.invIA = h.m_invI; +d.invIB = u.m_invI; +d.contactIndex = i; +d.pointCount = f; +d.K.SetZero(); +d.normalMass.SetZero(); +var m = this.m_positionConstraints[i]; +m.indexA = h.m_islandIndex; +m.indexB = u.m_islandIndex; +m.invMassA = h.m_invMass; +m.invMassB = u.m_invMass; +m.localCenterA.Copy(h.m_sweep.localCenter); +m.localCenterB.Copy(u.m_sweep.localCenter); +m.invIA = h.m_invI; +m.invIB = u.m_invI; +m.localNormal.Copy(_.localNormal); +m.localPoint.Copy(_.localPoint); +m.pointCount = f; +m.radiusA = c; +m.radiusB = l; +m.type = _.type; +for (var p = 0; p < f; ++p) { +var v = _.points[p], y = d.points[p]; +if (this.m_step.warmStarting) { +y.normalImpulse = this.m_step.dtRatio * v.normalImpulse; +y.tangentImpulse = this.m_step.dtRatio * v.tangentImpulse; +} else { +y.normalImpulse = 0; +y.tangentImpulse = 0; +} +y.rA.SetZero(); +y.rB.SetZero(); +y.normalMass = 0; +y.tangentMass = 0; +y.velocityBias = 0; +m.localPoints[p].Copy(v.localPoint); +} +} +return this; +}; +t.prototype.InitializeVelocityConstraints = function() { +for (var e = t.InitializeVelocityConstraints_s_xfA, i = t.InitializeVelocityConstraints_s_xfB, n = t.InitializeVelocityConstraints_s_worldManifold, r = 0; r < this.m_count; ++r) { +var s = this.m_velocityConstraints[r], o = this.m_positionConstraints[r], a = o.radiusA, c = o.radiusB, l = this.m_contacts[s.contactIndex].GetManifold(), h = s.indexA, u = s.indexB, _ = s.invMassA, f = s.invMassB, d = s.invIA, m = s.invIB, p = o.localCenterA, v = o.localCenterB, y = this.m_positions[h].c, g = this.m_positions[h].a, x = this.m_velocities[h].v, C = this.m_velocities[h].w, b = this.m_positions[u].c, A = this.m_positions[u].a, S = this.m_velocities[u].v, w = this.m_velocities[u].w; +e.q.SetAngle(g); +i.q.SetAngle(A); +P.SubVV(y, V.MulRV(e.q, p, P.s_t0), e.p); +P.SubVV(b, V.MulRV(i.q, v, P.s_t0), i.p); +n.Initialize(l, e, a, i, c); +s.normal.Copy(n.normal); +P.CrossVOne(s.normal, s.tangent); +for (var T = s.pointCount, E = 0; E < T; ++E) { +var M = s.points[E]; +P.SubVV(n.points[E], y, M.rA); +P.SubVV(n.points[E], b, M.rB); +var B = P.CrossVV(M.rA, s.normal), D = P.CrossVV(M.rB, s.normal), I = _ + f + d * B * B + m * D * D; +M.normalMass = I > 0 ? 1 / I : 0; +var R = s.tangent, L = P.CrossVV(M.rA, R), F = P.CrossVV(M.rB, R), O = _ + f + d * L * L + m * F * F; +M.tangentMass = O > 0 ? 1 / O : 0; +M.velocityBias = 0; +var N = P.DotVV(s.normal, P.SubVV(P.AddVCrossSV(S, w, M.rB, P.s_t0), P.AddVCrossSV(x, C, M.rA, P.s_t1), P.s_t0)); +N < -1 && (M.velocityBias += -s.restitution * N); +} +s.pointCount; +} +}; +t.prototype.WarmStart = function() { +for (var e = t.WarmStart_s_P, i = 0; i < this.m_count; ++i) { +for (var n = this.m_velocityConstraints[i], r = n.indexA, s = n.indexB, o = n.invMassA, a = n.invIA, c = n.invMassB, l = n.invIB, h = n.pointCount, u = this.m_velocities[r].v, _ = this.m_velocities[r].w, f = this.m_velocities[s].v, d = this.m_velocities[s].w, m = n.normal, p = n.tangent, v = 0; v < h; ++v) { +var y = n.points[v]; +P.AddVV(P.MulSV(y.normalImpulse, m, P.s_t0), P.MulSV(y.tangentImpulse, p, P.s_t1), e); +_ -= a * P.CrossVV(y.rA, e); +u.SelfMulSub(o, e); +d += l * P.CrossVV(y.rB, e); +f.SelfMulAdd(c, e); +} +this.m_velocities[r].w = _; +this.m_velocities[s].w = d; +} +}; +t.prototype.SolveVelocityConstraints = function() { +for (var e = t.SolveVelocityConstraints_s_dv, i = (t.SolveVelocityConstraints_s_dv1, +t.SolveVelocityConstraints_s_dv2, t.SolveVelocityConstraints_s_P), n = (t.SolveVelocityConstraints_s_a, +t.SolveVelocityConstraints_s_b, t.SolveVelocityConstraints_s_x, t.SolveVelocityConstraints_s_d, +t.SolveVelocityConstraints_s_P1, t.SolveVelocityConstraints_s_P2, t.SolveVelocityConstraints_s_P1P2, +0); n < this.m_count; ++n) { +for (var r = this.m_velocityConstraints[n], s = r.indexA, o = r.indexB, a = r.invMassA, c = r.invIA, l = r.invMassB, h = r.invIB, u = r.pointCount, _ = this.m_velocities[s].v, f = this.m_velocities[s].w, d = this.m_velocities[o].v, m = this.m_velocities[o].w, p = r.normal, v = r.tangent, y = r.friction, g = 0; g < u; ++g) { +var b = r.points[g]; +P.SubVV(P.AddVCrossSV(d, m, b.rB, P.s_t0), P.AddVCrossSV(_, f, b.rA, P.s_t1), e); +var A = P.DotVV(e, v) - r.tangentSpeed, S = b.tangentMass * -A, w = y * b.normalImpulse; +S = (T = C(b.tangentImpulse + S, -w, w)) - b.tangentImpulse; +b.tangentImpulse = T; +P.MulSV(S, v, i); +_.SelfMulSub(a, i); +f -= c * P.CrossVV(b.rA, i); +d.SelfMulAdd(l, i); +m += h * P.CrossVV(b.rB, i); +} +r.pointCount; +for (g = 0; g < u; ++g) { +b = r.points[g]; +P.SubVV(P.AddVCrossSV(d, m, b.rB, P.s_t0), P.AddVCrossSV(_, f, b.rA, P.s_t1), e); +var T, E = P.DotVV(e, p); +S = -b.normalMass * (E - b.velocityBias); +S = (T = x(b.normalImpulse + S, 0)) - b.normalImpulse; +b.normalImpulse = T; +P.MulSV(S, p, i); +_.SelfMulSub(a, i); +f -= c * P.CrossVV(b.rA, i); +d.SelfMulAdd(l, i); +m += h * P.CrossVV(b.rB, i); +} +this.m_velocities[s].w = f; +this.m_velocities[o].w = m; +} +}; +t.prototype.StoreImpulses = function() { +for (var t = 0; t < this.m_count; ++t) for (var e = this.m_velocityConstraints[t], i = this.m_contacts[e.contactIndex].GetManifold(), n = 0; n < e.pointCount; ++n) { +i.points[n].normalImpulse = e.points[n].normalImpulse; +i.points[n].tangentImpulse = e.points[n].tangentImpulse; +} +}; +t.prototype.SolvePositionConstraints = function() { +for (var e = t.SolvePositionConstraints_s_xfA, i = t.SolvePositionConstraints_s_xfB, n = t.SolvePositionConstraints_s_psm, r = t.SolvePositionConstraints_s_rA, s = t.SolvePositionConstraints_s_rB, o = t.SolvePositionConstraints_s_P, a = 0, l = 0; l < this.m_count; ++l) { +for (var h = this.m_positionConstraints[l], u = h.indexA, _ = h.indexB, f = h.localCenterA, d = h.invMassA, m = h.invIA, p = h.localCenterB, v = h.invMassB, y = h.invIB, x = h.pointCount, b = this.m_positions[u].c, A = this.m_positions[u].a, S = this.m_positions[_].c, w = this.m_positions[_].a, T = 0; T < x; ++T) { +e.q.SetAngle(A); +i.q.SetAngle(w); +P.SubVV(b, V.MulRV(e.q, f, P.s_t0), e.p); +P.SubVV(S, V.MulRV(i.q, p, P.s_t0), i.p); +n.Initialize(h, e, i, T); +var E = n.normal, M = n.point, B = n.separation; +P.SubVV(M, b, r); +P.SubVV(M, S, s); +a = g(a, B); +var D = C(.2 * (B + c), -.2, 0), I = P.CrossVV(r, E), R = P.CrossVV(s, E), L = d + v + m * I * I + y * R * R, F = L > 0 ? -D / L : 0; +P.MulSV(F, E, o); +b.SelfMulSub(d, o); +A -= m * P.CrossVV(r, o); +S.SelfMulAdd(v, o); +w += y * P.CrossVV(s, o); +} +this.m_positions[u].a = A; +this.m_positions[_].a = w; +} +return a > -3 * c; +}; +t.prototype.SolveTOIPositionConstraints = function(e, i) { +for (var n = t.SolveTOIPositionConstraints_s_xfA, r = t.SolveTOIPositionConstraints_s_xfB, s = t.SolveTOIPositionConstraints_s_psm, o = t.SolveTOIPositionConstraints_s_rA, a = t.SolveTOIPositionConstraints_s_rB, l = t.SolveTOIPositionConstraints_s_P, h = 0, u = 0; u < this.m_count; ++u) { +var _ = this.m_positionConstraints[u], f = _.indexA, d = _.indexB, m = _.localCenterA, p = _.localCenterB, v = _.pointCount, y = 0, x = 0; +if (f === e || f === i) { +y = _.invMassA; +x = _.invIA; +} +var b = 0, A = 0; +if (d === e || d === i) { +b = _.invMassB; +A = _.invIB; +} +for (var S = this.m_positions[f].c, w = this.m_positions[f].a, T = this.m_positions[d].c, E = this.m_positions[d].a, M = 0; M < v; ++M) { +n.q.SetAngle(w); +r.q.SetAngle(E); +P.SubVV(S, V.MulRV(n.q, m, P.s_t0), n.p); +P.SubVV(T, V.MulRV(r.q, p, P.s_t0), r.p); +s.Initialize(_, n, r, M); +var B = s.normal, D = s.point, I = s.separation; +P.SubVV(D, S, o); +P.SubVV(D, T, a); +h = g(h, I); +var R = C(.75 * (I + c), -.2, 0), L = P.CrossVV(o, B), F = P.CrossVV(a, B), O = y + b + x * L * L + A * F * F, N = O > 0 ? -R / O : 0; +P.MulSV(N, B, l); +S.SelfMulSub(y, l); +w -= x * P.CrossVV(o, l); +T.SelfMulAdd(b, l); +E += A * P.CrossVV(a, l); +} +this.m_positions[f].a = w; +this.m_positions[d].a = E; +} +return h >= -1.5 * c; +}; +t.InitializeVelocityConstraints_s_xfA = new N(); +t.InitializeVelocityConstraints_s_xfB = new N(); +t.InitializeVelocityConstraints_s_worldManifold = new bt(); +t.WarmStart_s_P = new P(); +t.SolveVelocityConstraints_s_dv = new P(); +t.SolveVelocityConstraints_s_dv1 = new P(); +t.SolveVelocityConstraints_s_dv2 = new P(); +t.SolveVelocityConstraints_s_P = new P(); +t.SolveVelocityConstraints_s_a = new P(); +t.SolveVelocityConstraints_s_b = new P(); +t.SolveVelocityConstraints_s_x = new P(); +t.SolveVelocityConstraints_s_d = new P(); +t.SolveVelocityConstraints_s_P1 = new P(); +t.SolveVelocityConstraints_s_P2 = new P(); +t.SolveVelocityConstraints_s_P1P2 = new P(); +t.SolvePositionConstraints_s_xfA = new N(); +t.SolvePositionConstraints_s_xfB = new N(); +t.SolvePositionConstraints_s_psm = new dn(); +t.SolvePositionConstraints_s_rA = new P(); +t.SolvePositionConstraints_s_rB = new P(); +t.SolvePositionConstraints_s_P = new P(); +t.SolveTOIPositionConstraints_s_xfA = new N(); +t.SolveTOIPositionConstraints_s_xfB = new N(); +t.SolveTOIPositionConstraints_s_psm = new dn(); +t.SolveTOIPositionConstraints_s_rA = new P(); +t.SolveTOIPositionConstraints_s_rB = new P(); +t.SolveTOIPositionConstraints_s_P = new P(); +return t; +})(), pn = (function() { +function e() { +this.m_allocator = null; +this.m_bodies = []; +this.m_contacts = []; +this.m_joints = []; +this.m_positions = an.MakeArray(1024); +this.m_velocities = cn.MakeArray(1024); +this.m_bodyCount = 0; +this.m_jointCount = 0; +this.m_contactCount = 0; +this.m_bodyCapacity = 0; +this.m_contactCapacity = 0; +this.m_jointCapacity = 0; +} +e.prototype.Initialize = function(t, e, i, n, r) { +this.m_bodyCapacity = t; +this.m_contactCapacity = e; +this.m_jointCapacity = i; +this.m_bodyCount = 0; +this.m_contactCount = 0; +this.m_jointCount = 0; +this.m_allocator = n; +this.m_listener = r; +if (this.m_positions.length < t) for (var s = x(2 * this.m_positions.length, t); this.m_positions.length < s; ) this.m_positions[this.m_positions.length] = new an(); +if (this.m_velocities.length < t) for (s = x(2 * this.m_velocities.length, t); this.m_velocities.length < s; ) this.m_velocities[this.m_velocities.length] = new cn(); +}; +e.prototype.Clear = function() { +this.m_bodyCount = 0; +this.m_contactCount = 0; +this.m_jointCount = 0; +}; +e.prototype.AddBody = function(t) { +t.m_islandIndex = this.m_bodyCount; +this.m_bodies[this.m_bodyCount++] = t; +}; +e.prototype.AddContact = function(t) { +this.m_contacts[this.m_contactCount++] = t; +}; +e.prototype.AddJoint = function(t) { +this.m_joints[this.m_jointCount++] = t; +}; +e.prototype.Solve = function(n, r, s, o) { +for (var a = e.s_timer.Reset(), c = r.dt, l = 0; l < this.m_bodyCount; ++l) { +var h = this.m_bodies[l]; +this.m_positions[l].c.Copy(h.m_sweep.c); +var u = h.m_sweep.a, _ = this.m_velocities[l].v.Copy(h.m_linearVelocity), f = h.m_angularVelocity; +h.m_sweep.c0.Copy(h.m_sweep.c); +h.m_sweep.a0 = h.m_sweep.a; +if (h.m_type === t.b2BodyType.b2_dynamicBody) { +_.x += c * (h.m_gravityScale * s.x + h.m_invMass * h.m_force.x); +_.y += c * (h.m_gravityScale * s.y + h.m_invMass * h.m_force.y); +f += c * h.m_invI * h.m_torque; +_.SelfMul(1 / (1 + c * h.m_linearDamping)); +f *= 1 / (1 + c * h.m_angularDamping); +} +this.m_positions[l].a = u; +this.m_velocities[l].w = f; +} +a.Reset(); +var d = e.s_solverData; +d.step.Copy(r); +d.positions = this.m_positions; +d.velocities = this.m_velocities; +var m = e.s_contactSolverDef; +m.step.Copy(r); +m.contacts = this.m_contacts; +m.count = this.m_contactCount; +m.positions = this.m_positions; +m.velocities = this.m_velocities; +m.allocator = this.m_allocator; +var p = e.s_contactSolver.Initialize(m); +p.InitializeVelocityConstraints(); +r.warmStarting && p.WarmStart(); +for (l = 0; l < this.m_jointCount; ++l) this.m_joints[l].InitVelocityConstraints(d); +n.solveInit = a.GetMilliseconds(); +a.Reset(); +for (l = 0; l < r.velocityIterations; ++l) { +for (var v = 0; v < this.m_jointCount; ++v) this.m_joints[v].SolveVelocityConstraints(d); +p.SolveVelocityConstraints(); +} +p.StoreImpulses(); +n.solveVelocity = a.GetMilliseconds(); +for (l = 0; l < this.m_bodyCount; ++l) { +var x = this.m_positions[l].c, C = (u = this.m_positions[l].a, _ = this.m_velocities[l].v, +f = this.m_velocities[l].w, P.MulSV(c, _, e.s_translation)); +if (P.DotVV(C, C) > 4) { +var b = 2 / C.Length(); +_.SelfMul(b); +} +var A = c * f; +if (A * A > 2.4674011002726646) { +f *= b = 1.570796326795 / y(A); +} +x.x += c * _.x; +x.y += c * _.y; +u += c * f; +this.m_positions[l].a = u; +this.m_velocities[l].w = f; +} +a.Reset(); +var S = !1; +for (l = 0; l < r.positionIterations; ++l) { +var w = p.SolvePositionConstraints(), T = !0; +for (v = 0; v < this.m_jointCount; ++v) { +var E = this.m_joints[v].SolvePositionConstraints(d); +T = T && E; +} +if (w && T) { +S = !0; +break; +} +} +for (l = 0; l < this.m_bodyCount; ++l) { +var M = this.m_bodies[l]; +M.m_sweep.c.Copy(this.m_positions[l].c); +M.m_sweep.a = this.m_positions[l].a; +M.m_linearVelocity.Copy(this.m_velocities[l].v); +M.m_angularVelocity = this.m_velocities[l].w; +M.SynchronizeTransform(); +} +n.solvePosition = a.GetMilliseconds(); +this.Report(p.m_velocityConstraints); +if (o) { +var B = i; +for (l = 0; l < this.m_bodyCount; ++l) { +if ((h = this.m_bodies[l]).GetType() !== t.b2BodyType.b2_staticBody) if (!h.m_autoSleepFlag || h.m_angularVelocity * h.m_angularVelocity > .0012184696791469947 || P.DotVV(h.m_linearVelocity, h.m_linearVelocity) > 1e-4) { +h.m_sleepTime = 0; +B = 0; +} else { +h.m_sleepTime += c; +B = g(B, h.m_sleepTime); +} +} +if (B >= .5 && S) for (l = 0; l < this.m_bodyCount; ++l) { +(h = this.m_bodies[l]).SetAwake(!1); +} +} +}; +e.prototype.SolveTOI = function(t, i, n) { +for (var r = 0; r < this.m_bodyCount; ++r) { +var s = this.m_bodies[r]; +this.m_positions[r].c.Copy(s.m_sweep.c); +this.m_positions[r].a = s.m_sweep.a; +this.m_velocities[r].v.Copy(s.m_linearVelocity); +this.m_velocities[r].w = s.m_angularVelocity; +} +var o = e.s_contactSolverDef; +o.contacts = this.m_contacts; +o.count = this.m_contactCount; +o.allocator = this.m_allocator; +o.step.Copy(t); +o.positions = this.m_positions; +o.velocities = this.m_velocities; +var a = e.s_contactSolver.Initialize(o); +for (r = 0; r < t.positionIterations; ++r) { +if (a.SolveTOIPositionConstraints(i, n)) break; +} +this.m_bodies[i].m_sweep.c0.Copy(this.m_positions[i].c); +this.m_bodies[i].m_sweep.a0 = this.m_positions[i].a; +this.m_bodies[n].m_sweep.c0.Copy(this.m_positions[n].c); +this.m_bodies[n].m_sweep.a0 = this.m_positions[n].a; +a.InitializeVelocityConstraints(); +for (r = 0; r < t.velocityIterations; ++r) a.SolveVelocityConstraints(); +var c = t.dt; +for (r = 0; r < this.m_bodyCount; ++r) { +var l = this.m_positions[r].c, h = this.m_positions[r].a, u = this.m_velocities[r].v, _ = this.m_velocities[r].w, f = P.MulSV(c, u, e.s_translation); +if (P.DotVV(f, f) > 4) { +var d = 2 / f.Length(); +u.SelfMul(d); +} +var m = c * _; +if (m * m > 2.4674011002726646) { +_ *= d = 1.570796326795 / y(m); +} +l.SelfMulAdd(c, u); +h += c * _; +this.m_positions[r].a = h; +this.m_velocities[r].w = _; +var p = this.m_bodies[r]; +p.m_sweep.c.Copy(l); +p.m_sweep.a = h; +p.m_linearVelocity.Copy(u); +p.m_angularVelocity = _; +p.SynchronizeTransform(); +} +this.Report(a.m_velocityConstraints); +}; +e.prototype.Report = function(t) { +if (null !== this.m_listener) for (var i = 0; i < this.m_contactCount; ++i) { +var n = this.m_contacts[i]; +if (n) { +var r = t[i], s = e.s_impulse; +s.count = r.pointCount; +for (var o = 0; o < r.pointCount; ++o) { +s.normalImpulses[o] = r.points[o].normalImpulse; +s.tangentImpulses[o] = r.points[o].tangentImpulse; +} +this.m_listener.PostSolve(n, s); +} +} +}; +e.s_timer = new U(); +e.s_solverData = new ln(); +e.s_contactSolverDef = new fn(); +e.s_contactSolver = new mn(); +e.s_translation = new P(); +e.s_impulse = new $i(); +return e; +})(); +(function(t) { +t[t.b2_waterParticle = 0] = "b2_waterParticle"; +t[t.b2_zombieParticle = 2] = "b2_zombieParticle"; +t[t.b2_wallParticle = 4] = "b2_wallParticle"; +t[t.b2_springParticle = 8] = "b2_springParticle"; +t[t.b2_elasticParticle = 16] = "b2_elasticParticle"; +t[t.b2_viscousParticle = 32] = "b2_viscousParticle"; +t[t.b2_powderParticle = 64] = "b2_powderParticle"; +t[t.b2_tensileParticle = 128] = "b2_tensileParticle"; +t[t.b2_colorMixingParticle = 256] = "b2_colorMixingParticle"; +t[t.b2_destructionListenerParticle = 512] = "b2_destructionListenerParticle"; +t[t.b2_barrierParticle = 1024] = "b2_barrierParticle"; +t[t.b2_staticPressureParticle = 2048] = "b2_staticPressureParticle"; +t[t.b2_reactiveParticle = 4096] = "b2_reactiveParticle"; +t[t.b2_repulsiveParticle = 8192] = "b2_repulsiveParticle"; +t[t.b2_fixtureContactListenerParticle = 16384] = "b2_fixtureContactListenerParticle"; +t[t.b2_particleContactListenerParticle = 32768] = "b2_particleContactListenerParticle"; +t[t.b2_fixtureContactFilterParticle = 65536] = "b2_fixtureContactFilterParticle"; +t[t.b2_particleContactFilterParticle = 131072] = "b2_particleContactFilterParticle"; +})(t.b2ParticleFlag || (t.b2ParticleFlag = {})); +var vn = (function() { +return function() { +this.flags = 0; +this.position = new P(); +this.velocity = new P(); +this.color = new z(0, 0, 0, 0); +this.lifetime = 0; +this.userData = null; +this.group = null; +}; +})(); +function yn(t, e, i) { +return C(Math.ceil(Math.sqrt(t / (.01 * e)) * i), 1, 8); +} +var gn = (function() { +function t() { +this.m_index = u; +} +t.prototype.GetIndex = function() { +return this.m_index; +}; +t.prototype.SetIndex = function(t) { +this.m_index = t; +}; +return t; +})(); +(function(t) { +t[t.b2_solidParticleGroup = 1] = "b2_solidParticleGroup"; +t[t.b2_rigidParticleGroup = 2] = "b2_rigidParticleGroup"; +t[t.b2_particleGroupCanBeEmpty = 4] = "b2_particleGroupCanBeEmpty"; +t[t.b2_particleGroupWillBeDestroyed = 8] = "b2_particleGroupWillBeDestroyed"; +t[t.b2_particleGroupNeedsUpdateDepth = 16] = "b2_particleGroupNeedsUpdateDepth"; +t[t.b2_particleGroupInternalMask = 24] = "b2_particleGroupInternalMask"; +})(t.b2ParticleGroupFlag || (t.b2ParticleGroupFlag = {})); +var xn = (function() { +return function() { +this.flags = 0; +this.groupFlags = 0; +this.position = new P(); +this.angle = 0; +this.linearVelocity = new P(); +this.angularVelocity = 0; +this.color = new z(); +this.strength = 1; +this.shapeCount = 0; +this.stride = 0; +this.particleCount = 0; +this.lifetime = 0; +this.userData = null; +this.group = null; +}; +})(), Cn = (function() { +function e(t) { +this.m_firstIndex = 0; +this.m_lastIndex = 0; +this.m_groupFlags = 0; +this.m_strength = 1; +this.m_prev = null; +this.m_next = null; +this.m_timestamp = -1; +this.m_mass = 0; +this.m_inertia = 0; +this.m_center = new P(); +this.m_linearVelocity = new P(); +this.m_angularVelocity = 0; +this.m_transform = new N(); +this.m_userData = null; +this.m_system = t; +} +e.prototype.GetNext = function() { +return this.m_next; +}; +e.prototype.GetParticleSystem = function() { +return this.m_system; +}; +e.prototype.GetParticleCount = function() { +return this.m_lastIndex - this.m_firstIndex; +}; +e.prototype.GetBufferIndex = function() { +return this.m_firstIndex; +}; +e.prototype.ContainsParticle = function(t) { +return this.m_firstIndex <= t && t < this.m_lastIndex; +}; +e.prototype.GetAllParticleFlags = function() { +if (!this.m_system.m_flagsBuffer.data) throw new Error(); +for (var t = 0, e = this.m_firstIndex; e < this.m_lastIndex; e++) t |= this.m_system.m_flagsBuffer.data[e]; +return t; +}; +e.prototype.GetGroupFlags = function() { +return this.m_groupFlags; +}; +e.prototype.SetGroupFlags = function(e) { +e |= this.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupInternalMask; +this.m_system.SetGroupFlags(this, e); +}; +e.prototype.GetMass = function() { +this.UpdateStatistics(); +return this.m_mass; +}; +e.prototype.GetInertia = function() { +this.UpdateStatistics(); +return this.m_inertia; +}; +e.prototype.GetCenter = function() { +this.UpdateStatistics(); +return this.m_center; +}; +e.prototype.GetLinearVelocity = function() { +this.UpdateStatistics(); +return this.m_linearVelocity; +}; +e.prototype.GetAngularVelocity = function() { +this.UpdateStatistics(); +return this.m_angularVelocity; +}; +e.prototype.GetTransform = function() { +return this.m_transform; +}; +e.prototype.GetPosition = function() { +return this.m_transform.p; +}; +e.prototype.GetAngle = function() { +return this.m_transform.q.GetAngle(); +}; +e.prototype.GetLinearVelocityFromWorldPoint = function(t, i) { +var n = e.GetLinearVelocityFromWorldPoint_s_t0; +this.UpdateStatistics(); +return P.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, P.SubVV(t, this.m_center, n), i); +}; +e.prototype.GetUserData = function() { +return this.m_userData; +}; +e.prototype.SetUserData = function(t) { +this.m_userData = t; +}; +e.prototype.ApplyForce = function(t) { +this.m_system.ApplyForce(this.m_firstIndex, this.m_lastIndex, t); +}; +e.prototype.ApplyLinearImpulse = function(t) { +this.m_system.ApplyLinearImpulse(this.m_firstIndex, this.m_lastIndex, t); +}; +e.prototype.DestroyParticles = function(t) { +if (this.m_system.m_world.IsLocked()) throw new Error(); +for (var e = this.m_firstIndex; e < this.m_lastIndex; e++) this.m_system.DestroyParticle(e, t); +}; +e.prototype.UpdateStatistics = function() { +if (!this.m_system.m_positionBuffer.data) throw new Error(); +if (!this.m_system.m_velocityBuffer.data) throw new Error(); +var t = new P(), e = new P(); +if (this.m_timestamp !== this.m_system.m_timestamp) { +var i = this.m_system.GetParticleMass(); +this.m_mass = i * (this.m_lastIndex - this.m_firstIndex); +this.m_center.SetZero(); +this.m_linearVelocity.SetZero(); +for (var n = this.m_firstIndex; n < this.m_lastIndex; n++) { +this.m_center.SelfMulAdd(i, this.m_system.m_positionBuffer.data[n]); +this.m_linearVelocity.SelfMulAdd(i, this.m_system.m_velocityBuffer.data[n]); +} +if (this.m_mass > 0) { +var r = 1 / this.m_mass; +this.m_center.SelfMul(r); +this.m_linearVelocity.SelfMul(r); +} +this.m_inertia = 0; +this.m_angularVelocity = 0; +for (n = this.m_firstIndex; n < this.m_lastIndex; n++) { +P.SubVV(this.m_system.m_positionBuffer.data[n], this.m_center, t); +P.SubVV(this.m_system.m_velocityBuffer.data[n], this.m_linearVelocity, e); +this.m_inertia += i * P.DotVV(t, t); +this.m_angularVelocity += i * P.CrossVV(t, e); +} +this.m_inertia > 0 && (this.m_angularVelocity *= 1 / this.m_inertia); +this.m_timestamp = this.m_system.m_timestamp; +} +}; +e.GetLinearVelocityFromWorldPoint_s_t0 = new P(); +return e; +})(), bn = (function() { +function t(t) { +this.m_front = 0; +this.m_back = 0; +this.m_capacity = 0; +this.m_buffer = d(t, (function(t) { +return null; +})); +this.m_capacity = t; +} +t.prototype.Push = function(t) { +if (this.m_back >= this.m_capacity) { +for (var e = this.m_front; e < this.m_back; e++) this.m_buffer[e - this.m_front] = this.m_buffer[e]; +this.m_back -= this.m_front; +this.m_front = 0; +if (this.m_back >= this.m_capacity) if (this.m_capacity > 0) { +this.m_buffer.concat(d(this.m_capacity, (function(t) { +return null; +}))); +this.m_capacity *= 2; +} else { +this.m_buffer.concat(d(1, (function(t) { +return null; +}))); +this.m_capacity = 1; +} +} +this.m_buffer[this.m_back] = t; +this.m_back++; +}; +t.prototype.Pop = function() { +this.m_buffer[this.m_front] = null; +this.m_front++; +}; +t.prototype.Empty = function() { +return this.m_front === this.m_back; +}; +t.prototype.Front = function() { +var t = this.m_buffer[this.m_front]; +if (!t) throw new Error(); +return t; +}; +return t; +})(), An = (function() { +function t(e) { +this.m_generatorCapacity = 0; +this.m_generatorCount = 0; +this.m_countX = 0; +this.m_countY = 0; +this.m_diagram = []; +this.m_generatorBuffer = d(e, (function(e) { +return new t.Generator(); +})); +this.m_generatorCapacity = e; +} +t.prototype.AddGenerator = function(t, e, i) { +var n = this.m_generatorBuffer[this.m_generatorCount++]; +n.center.Copy(t); +n.tag = e; +n.necessary = i; +}; +t.prototype.Generate = function(e, n) { +for (var r = 1 / e, s = new P(+i, +i), o = new P(-i, -i), a = 0, c = 0; c < this.m_generatorCount; c++) { +if ((f = this.m_generatorBuffer[c]).necessary) { +P.MinV(s, f.center, s); +P.MaxV(o, f.center, o); +++a; +} +} +if (0 !== a) { +s.x -= n; +s.y -= n; +o.x += n; +o.y += n; +this.m_countX = 1 + Math.floor(r * (o.x - s.x)); +this.m_countY = 1 + Math.floor(r * (o.y - s.y)); +this.m_diagram = []; +var l = new bn(4 * this.m_countX * this.m_countY); +for (c = 0; c < this.m_generatorCount; c++) { +(f = this.m_generatorBuffer[c]).center.SelfSub(s).SelfMul(r); +var h = Math.floor(f.center.x), u = Math.floor(f.center.y); +h >= 0 && u >= 0 && h < this.m_countX && u < this.m_countY && l.Push(new t.Task(h, u, h + u * this.m_countX, f)); +} +for (;!l.Empty(); ) { +h = (d = l.Front()).m_x, u = d.m_y; +var _ = d.m_i, f = d.m_generator; +l.Pop(); +if (!this.m_diagram[_]) { +this.m_diagram[_] = f; +h > 0 && l.Push(new t.Task(h - 1, u, _ - 1, f)); +u > 0 && l.Push(new t.Task(h, u - 1, _ - this.m_countX, f)); +h < this.m_countX - 1 && l.Push(new t.Task(h + 1, u, _ + 1, f)); +u < this.m_countY - 1 && l.Push(new t.Task(h, u + 1, _ + this.m_countX, f)); +} +} +for (u = 0; u < this.m_countY; u++) for (h = 0; h < this.m_countX - 1; h++) { +_ = h + u * this.m_countX; +if ((m = this.m_diagram[_]) !== (p = this.m_diagram[_ + 1])) { +l.Push(new t.Task(h, u, _, p)); +l.Push(new t.Task(h + 1, u, _ + 1, m)); +} +} +for (u = 0; u < this.m_countY - 1; u++) for (h = 0; h < this.m_countX; h++) { +_ = h + u * this.m_countX; +if ((m = this.m_diagram[_]) !== (p = this.m_diagram[_ + this.m_countX])) { +l.Push(new t.Task(h, u, _, p)); +l.Push(new t.Task(h, u + 1, _ + this.m_countX, m)); +} +} +for (;!l.Empty(); ) { +var d, m, p; +h = (d = l.Front()).m_x, u = d.m_y, _ = d.m_i, c = d.m_generator; +l.Pop(); +if ((m = this.m_diagram[_]) !== (p = c)) { +var v = m.center.x - h, y = m.center.y - u, g = p.center.x - h, x = p.center.y - u; +if (v * v + y * y > g * g + x * x) { +this.m_diagram[_] = p; +h > 0 && l.Push(new t.Task(h - 1, u, _ - 1, p)); +u > 0 && l.Push(new t.Task(h, u - 1, _ - this.m_countX, p)); +h < this.m_countX - 1 && l.Push(new t.Task(h + 1, u, _ + 1, p)); +u < this.m_countY - 1 && l.Push(new t.Task(h, u + 1, _ + this.m_countX, p)); +} +} +} +} else { +this.m_countX = 0; +this.m_countY = 0; +} +}; +t.prototype.GetNodes = function(t) { +for (var e = 0; e < this.m_countY - 1; e++) for (var i = 0; i < this.m_countX - 1; i++) { +var n = i + e * this.m_countX, r = this.m_diagram[n], s = this.m_diagram[n + 1], o = this.m_diagram[n + this.m_countX], a = this.m_diagram[n + 1 + this.m_countX]; +if (s !== o) { +r !== s && r !== o && (r.necessary || s.necessary || o.necessary) && t(r.tag, s.tag, o.tag); +a !== s && a !== o && (r.necessary || s.necessary || o.necessary) && t(s.tag, a.tag, o.tag); +} +} +}; +return t; +})(); +(function(t) { +var e = (function() { +return function() { +this.center = new P(); +this.tag = 0; +this.necessary = !1; +}; +})(); +t.Generator = e; +var i = (function() { +return function(t, e, i, n) { +this.m_x = t; +this.m_y = e; +this.m_i = i; +this.m_generator = n; +}; +})(); +t.Task = i; +})(An || (An = {})); +function Sn(t, e, i) { +var n = t[e]; +t[e] = t[i]; +t[i] = n; +} +function wn(t, e) { +return t < e; +} +function Tn(t, e, i, n) { +void 0 === e && (e = 0); +void 0 === i && (i = t.length - e); +void 0 === n && (n = wn); +for (var r = e, s = [], o = 0; ;) { +for (;r + 1 < i; i++) { +var a = t[r + Math.floor(Math.random() * (i - r))]; +s[o++] = i; +for (var c = r - 1; ;) { +for (;n(t[++c], a); ) ; +for (;n(a, t[--i]); ) ; +if (c >= i) break; +Sn(t, c, i); +} +} +if (0 === o) break; +r = i; +i = s[--o]; +} +return t; +} +function En(t, e, i, n) { +void 0 === e && (e = 0); +void 0 === i && (i = t.length - e); +void 0 === n && (n = wn); +return Tn(t, e, i, n); +} +function Mn(t, e, i) { +void 0 === i && (i = t.length); +for (var n = 0, r = 0; r < i; ++r) e(t[r]) || (r !== n ? Sn(t, n++, r) : ++n); +return n; +} +function Bn(t, e, i, n, r) { +void 0 === r && (r = wn); +for (var s = i - e; s > 0; ) { +var o = Math.floor(s / 2), a = e + o; +if (r(t[a], n)) { +e = ++a; +s -= o + 1; +} else s = o; +} +return e; +} +function Dn(t, e, i, n, r) { +void 0 === r && (r = wn); +for (var s = i - e; s > 0; ) { +var o = Math.floor(s / 2), a = e + o; +if (r(n, t[a])) s = o; else { +e = ++a; +s -= o + 1; +} +} +return e; +} +function In(t, e, i, n) { +for (var r = i; e !== r; ) { +Sn(t, e++, r++); +r === n ? r = i : e === i && (i = r); +} +} +function Pn(t, e, i, n) { +if (e === i) return i; +for (var r = e; ++e !== i; ) n(t[r], t[e]) || Sn(t, ++r, e); +return ++r; +} +var Rn = (function() { +function t(t) { +this.data = []; +this.count = 0; +this.capacity = 0; +this.allocator = t; +} +t.prototype.Append = function() { +this.count >= this.capacity && this.Grow(); +return this.count++; +}; +t.prototype.Reserve = function(t) { +if (!(this.capacity >= t)) { +for (var e = this.capacity; e < t; ++e) this.data[e] = this.allocator(); +this.capacity = t; +} +}; +t.prototype.Grow = function() { +var t = this.capacity ? 2 * this.capacity : 256; +this.Reserve(t); +}; +t.prototype.Free = function() { +if (0 !== this.data.length) { +this.data = []; +this.capacity = 0; +this.count = 0; +} +}; +t.prototype.Shorten = function(t) {}; +t.prototype.Data = function() { +return this.data; +}; +t.prototype.GetCount = function() { +return this.count; +}; +t.prototype.SetCount = function(t) { +this.count = t; +}; +t.prototype.GetCapacity = function() { +return this.capacity; +}; +t.prototype.RemoveIf = function(t) { +this.count = Mn(this.data, t, this.count); +}; +t.prototype.Unique = function(t) { +this.count = Pn(this.data, 0, this.count, t); +}; +return t; +})(), Ln = (function(t) { +$e(e, t); +function e(e) { +var i = t.call(this) || this; +i.m_system = e; +return i; +} +e.prototype.ShouldQueryParticleSystem = function(t) { +return !1; +}; +e.prototype.ReportFixture = function(t) { +if (t.IsSensor()) return !0; +for (var e = t.GetShape().GetChildCount(), i = 0; i < e; i++) for (var n = t.GetAABB(i), r = this.m_system.GetInsideBoundsEnumerator(n), s = void 0; (s = r.GetNext()) >= 0; ) this.ReportFixtureAndParticle(t, i, s); +return !0; +}; +e.prototype.ReportParticle = function(t, e) { +return !1; +}; +e.prototype.ReportFixtureAndParticle = function(t, e, i) {}; +return e; +})(en), Fn = (function() { +function t() { +this.indexA = 0; +this.indexB = 0; +this.weight = 0; +this.normal = new P(); +this.flags = 0; +} +t.prototype.SetIndices = function(t, e) { +this.indexA = t; +this.indexB = e; +}; +t.prototype.SetWeight = function(t) { +this.weight = t; +}; +t.prototype.SetNormal = function(t) { +this.normal.Copy(t); +}; +t.prototype.SetFlags = function(t) { +this.flags = t; +}; +t.prototype.GetIndexA = function() { +return this.indexA; +}; +t.prototype.GetIndexB = function() { +return this.indexB; +}; +t.prototype.GetWeight = function() { +return this.weight; +}; +t.prototype.GetNormal = function() { +return this.normal; +}; +t.prototype.GetFlags = function() { +return this.flags; +}; +t.prototype.IsEqual = function(t) { +return this.indexA === t.indexA && this.indexB === t.indexB && this.flags === t.flags && this.weight === t.weight && this.normal.x === t.normal.x && this.normal.y === t.normal.y; +}; +t.prototype.IsNotEqual = function(t) { +return !this.IsEqual(t); +}; +t.prototype.ApproximatelyEqual = function(t) { +return this.indexA === t.indexA && this.indexB === t.indexB && this.flags === t.flags && y(this.weight - t.weight) < .01 && P.DistanceSquaredVV(this.normal, t.normal) < 1e-4; +}; +return t; +})(), On = (function() { +return function() { +this.index = 0; +this.weight = 0; +this.normal = new P(); +this.mass = 0; +}; +})(), Vn = (function() { +return function() { +this.indexA = 0; +this.indexB = 0; +this.flags = 0; +this.strength = 0; +this.distance = 0; +}; +})(), Nn = (function() { +return function() { +this.indexA = 0; +this.indexB = 0; +this.indexC = 0; +this.flags = 0; +this.strength = 0; +this.pa = new P(0, 0); +this.pb = new P(0, 0); +this.pc = new P(0, 0); +this.ka = 0; +this.kb = 0; +this.kc = 0; +this.s = 0; +}; +})(), kn = (function() { +function t() { +this.strictContactCheck = !1; +this.density = 1; +this.gravityScale = 1; +this.radius = 1; +this.maxCount = 0; +this.pressureStrength = .005; +this.dampingStrength = 1; +this.elasticStrength = .25; +this.springStrength = .25; +this.viscousStrength = .25; +this.surfaceTensionPressureStrength = .2; +this.surfaceTensionNormalStrength = .2; +this.repulsiveStrength = 1; +this.powderStrength = .5; +this.ejectionStrength = .5; +this.staticPressureStrength = .2; +this.staticPressureRelaxation = .2; +this.staticPressureIterations = 8; +this.colorMixingStrength = .5; +this.destroyByAge = !0; +this.lifetimeGranularity = 1 / 60; +} +t.prototype.Copy = function(t) { +this.strictContactCheck = t.strictContactCheck; +this.density = t.density; +this.gravityScale = t.gravityScale; +this.radius = t.radius; +this.maxCount = t.maxCount; +this.pressureStrength = t.pressureStrength; +this.dampingStrength = t.dampingStrength; +this.elasticStrength = t.elasticStrength; +this.springStrength = t.springStrength; +this.viscousStrength = t.viscousStrength; +this.surfaceTensionPressureStrength = t.surfaceTensionPressureStrength; +this.surfaceTensionNormalStrength = t.surfaceTensionNormalStrength; +this.repulsiveStrength = t.repulsiveStrength; +this.powderStrength = t.powderStrength; +this.ejectionStrength = t.ejectionStrength; +this.staticPressureStrength = t.staticPressureStrength; +this.staticPressureRelaxation = t.staticPressureRelaxation; +this.staticPressureIterations = t.staticPressureIterations; +this.colorMixingStrength = t.colorMixingStrength; +this.destroyByAge = t.destroyByAge; +this.lifetimeGranularity = t.lifetimeGranularity; +return this; +}; +t.prototype.Clone = function() { +return new t().Copy(this); +}; +return t; +})(); +t.b2ParticleSystem = (function() { +function n(t, e) { +this.m_paused = !1; +this.m_timestamp = 0; +this.m_allParticleFlags = 0; +this.m_needsUpdateAllParticleFlags = !1; +this.m_allGroupFlags = 0; +this.m_needsUpdateAllGroupFlags = !1; +this.m_hasForce = !1; +this.m_iterationIndex = 0; +this.m_inverseDensity = 0; +this.m_particleDiameter = 0; +this.m_inverseDiameter = 0; +this.m_squaredDiameter = 0; +this.m_count = 0; +this.m_internalAllocatedCapacity = 0; +this.m_handleIndexBuffer = new n.UserOverridableBuffer(); +this.m_flagsBuffer = new n.UserOverridableBuffer(); +this.m_positionBuffer = new n.UserOverridableBuffer(); +this.m_velocityBuffer = new n.UserOverridableBuffer(); +this.m_forceBuffer = []; +this.m_weightBuffer = []; +this.m_staticPressureBuffer = []; +this.m_accumulationBuffer = []; +this.m_accumulation2Buffer = []; +this.m_depthBuffer = []; +this.m_colorBuffer = new n.UserOverridableBuffer(); +this.m_groupBuffer = []; +this.m_userDataBuffer = new n.UserOverridableBuffer(); +this.m_stuckThreshold = 0; +this.m_lastBodyContactStepBuffer = new n.UserOverridableBuffer(); +this.m_bodyContactCountBuffer = new n.UserOverridableBuffer(); +this.m_consecutiveContactStepsBuffer = new n.UserOverridableBuffer(); +this.m_stuckParticleBuffer = new Rn(function() { +return 0; +}); +this.m_proxyBuffer = new Rn(function() { +return new n.Proxy(); +}); +this.m_contactBuffer = new Rn(function() { +return new Fn(); +}); +this.m_bodyContactBuffer = new Rn(function() { +return new On(); +}); +this.m_pairBuffer = new Rn(function() { +return new Vn(); +}); +this.m_triadBuffer = new Rn(function() { +return new Nn(); +}); +this.m_expirationTimeBuffer = new n.UserOverridableBuffer(); +this.m_indexByExpirationTimeBuffer = new n.UserOverridableBuffer(); +this.m_timeElapsed = 0; +this.m_expirationTimeBufferRequiresSorting = !1; +this.m_groupCount = 0; +this.m_groupList = null; +this.m_def = new kn(); +this.m_prev = null; +this.m_next = null; +this.SetStrictContactCheck(t.strictContactCheck); +this.SetDensity(t.density); +this.SetGravityScale(t.gravityScale); +this.SetRadius(t.radius); +this.SetMaxParticleCount(t.maxCount); +this.m_def = t.Clone(); +this.m_world = e; +this.SetDestructionByAge(this.m_def.destroyByAge); +} +n.computeTag = function(t, e) { +return (e + n.yOffset >>> 0 << n.yShift) + (n.xScale * t + n.xOffset >>> 0) >>> 0; +}; +n.computeRelativeTag = function(t, e, i) { +return t + (i << n.yShift) + (e << n.xShift) >>> 0; +}; +n.prototype.Drop = function() { +for (;this.m_groupList; ) this.DestroyParticleGroup(this.m_groupList); +this.FreeUserOverridableBuffer(this.m_handleIndexBuffer); +this.FreeUserOverridableBuffer(this.m_flagsBuffer); +this.FreeUserOverridableBuffer(this.m_lastBodyContactStepBuffer); +this.FreeUserOverridableBuffer(this.m_bodyContactCountBuffer); +this.FreeUserOverridableBuffer(this.m_consecutiveContactStepsBuffer); +this.FreeUserOverridableBuffer(this.m_positionBuffer); +this.FreeUserOverridableBuffer(this.m_velocityBuffer); +this.FreeUserOverridableBuffer(this.m_colorBuffer); +this.FreeUserOverridableBuffer(this.m_userDataBuffer); +this.FreeUserOverridableBuffer(this.m_expirationTimeBuffer); +this.FreeUserOverridableBuffer(this.m_indexByExpirationTimeBuffer); +this.FreeBuffer(this.m_forceBuffer, this.m_internalAllocatedCapacity); +this.FreeBuffer(this.m_weightBuffer, this.m_internalAllocatedCapacity); +this.FreeBuffer(this.m_staticPressureBuffer, this.m_internalAllocatedCapacity); +this.FreeBuffer(this.m_accumulationBuffer, this.m_internalAllocatedCapacity); +this.FreeBuffer(this.m_accumulation2Buffer, this.m_internalAllocatedCapacity); +this.FreeBuffer(this.m_depthBuffer, this.m_internalAllocatedCapacity); +this.FreeBuffer(this.m_groupBuffer, this.m_internalAllocatedCapacity); +}; +n.prototype.CreateParticle = function(t) { +if (this.m_world.IsLocked()) throw new Error(); +if (this.m_count >= this.m_internalAllocatedCapacity) { +var i = this.m_count ? 2 * this.m_count : 256; +this.ReallocateInternalAllocatedBuffers(i); +} +if (this.m_count >= this.m_internalAllocatedCapacity) { +if (!this.m_def.destroyByAge) return u; +this.DestroyOldestParticle(0, !1); +this.SolveZombie(); +} +var n = this.m_count++; +if (!this.m_flagsBuffer.data) throw new Error(); +this.m_flagsBuffer.data[n] = 0; +this.m_lastBodyContactStepBuffer.data && (this.m_lastBodyContactStepBuffer.data[n] = 0); +this.m_bodyContactCountBuffer.data && (this.m_bodyContactCountBuffer.data[n] = 0); +this.m_consecutiveContactStepsBuffer.data && (this.m_consecutiveContactStepsBuffer.data[n] = 0); +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +this.m_positionBuffer.data[n] = (this.m_positionBuffer.data[n] || new P()).Copy(e(t.position, P.ZERO)); +this.m_velocityBuffer.data[n] = (this.m_velocityBuffer.data[n] || new P()).Copy(e(t.velocity, P.ZERO)); +this.m_weightBuffer[n] = 0; +this.m_forceBuffer[n] = (this.m_forceBuffer[n] || new P()).SetZero(); +this.m_staticPressureBuffer && (this.m_staticPressureBuffer[n] = 0); +this.m_depthBuffer && (this.m_depthBuffer[n] = 0); +var r = new z().Copy(e(t.color, z.ZERO)); +if (this.m_colorBuffer.data || !r.IsZero()) { +this.m_colorBuffer.data = this.RequestBuffer(this.m_colorBuffer.data); +this.m_colorBuffer.data[n] = (this.m_colorBuffer.data[n] || new z()).Copy(r); +} +if (this.m_userDataBuffer.data || t.userData) { +this.m_userDataBuffer.data = this.RequestBuffer(this.m_userDataBuffer.data); +this.m_userDataBuffer.data[n] = t.userData; +} +this.m_handleIndexBuffer.data && (this.m_handleIndexBuffer.data[n] = null); +var s = this.m_proxyBuffer.data[this.m_proxyBuffer.Append()], o = e(t.lifetime, 0), a = o > 0; +if (this.m_expirationTimeBuffer.data || a) { +this.SetParticleLifetime(n, a ? o : this.ExpirationTimeToLifetime(-this.GetQuantizedTimeElapsed())); +if (!this.m_indexByExpirationTimeBuffer.data) throw new Error(); +this.m_indexByExpirationTimeBuffer.data[n] = n; +} +s.index = n; +var c = e(t.group, null); +this.m_groupBuffer[n] = c; +if (c) if (c.m_firstIndex < c.m_lastIndex) { +this.RotateBuffer(c.m_firstIndex, c.m_lastIndex, n); +c.m_lastIndex = n + 1; +} else { +c.m_firstIndex = n; +c.m_lastIndex = n + 1; +} +this.SetParticleFlags(n, e(t.flags, 0)); +return n; +}; +n.prototype.GetParticleHandleFromIndex = function(t) { +this.m_handleIndexBuffer.data = this.RequestBuffer(this.m_handleIndexBuffer.data); +var e = this.m_handleIndexBuffer.data[t]; +if (e) return e; +(e = new gn()).SetIndex(t); +this.m_handleIndexBuffer.data[t] = e; +return e; +}; +n.prototype.DestroyParticle = function(e, i) { +void 0 === i && (i = !1); +if (!this.m_flagsBuffer.data) throw new Error(); +var n = t.b2ParticleFlag.b2_zombieParticle; +i && (n |= t.b2ParticleFlag.b2_destructionListenerParticle); +this.SetParticleFlags(e, this.m_flagsBuffer.data[e] | n); +}; +n.prototype.DestroyOldestParticle = function(t, e) { +void 0 === e && (e = !1); +var i = this.GetParticleCount(); +if (!this.m_indexByExpirationTimeBuffer.data) throw new Error(); +if (!this.m_expirationTimeBuffer.data) throw new Error(); +var n = this.m_indexByExpirationTimeBuffer.data[i - (t + 1)], r = this.m_indexByExpirationTimeBuffer.data[t]; +this.DestroyParticle(this.m_expirationTimeBuffer.data[n] > 0 ? n : r, e); +}; +n.prototype.DestroyParticlesInShape = function(t, e, i) { +void 0 === i && (i = !1); +var r = n.DestroyParticlesInShape_s_aabb; +if (this.m_world.IsLocked()) throw new Error(); +var s = new n.DestroyParticlesInShapeCallback(this, t, e, i), o = r; +t.ComputeAABB(o, e, 0); +this.m_world.QueryAABB(s, o); +return s.Destroyed(); +}; +n.prototype.CreateParticleGroup = function(t) { +var i = n.CreateParticleGroup_s_transform; +if (this.m_world.IsLocked()) throw new Error(); +var r = i; +r.SetPositionAngle(e(t.position, P.ZERO), e(t.angle, 0)); +var s = this.m_count; +t.shape && this.CreateParticlesWithShapeForGroup(t.shape, t, r); +t.shapes && this.CreateParticlesWithShapesForGroup(t.shapes, e(t.shapeCount, t.shapes.length), t, r); +if (t.positionData) for (var o = e(t.particleCount, t.positionData.length), a = 0; a < o; a++) { +var c = t.positionData[a]; +this.CreateParticleForGroup(t, r, c); +} +var l = this.m_count, h = new Cn(this); +h.m_firstIndex = s; +h.m_lastIndex = l; +h.m_strength = e(t.strength, 1); +h.m_userData = t.userData; +h.m_transform.Copy(r); +h.m_prev = null; +h.m_next = this.m_groupList; +this.m_groupList && (this.m_groupList.m_prev = h); +this.m_groupList = h; +++this.m_groupCount; +for (a = s; a < l; a++) this.m_groupBuffer[a] = h; +this.SetGroupFlags(h, e(t.groupFlags, 0)); +var u = new n.ConnectionFilter(); +this.UpdateContacts(!0); +this.UpdatePairsAndTriads(s, l, u); +if (t.group) { +this.JoinParticleGroups(t.group, h); +h = t.group; +} +return h; +}; +n.prototype.JoinParticleGroups = function(t, e) { +if (this.m_world.IsLocked()) throw new Error(); +this.RotateBuffer(e.m_firstIndex, e.m_lastIndex, this.m_count); +this.RotateBuffer(t.m_firstIndex, t.m_lastIndex, e.m_firstIndex); +var i = new n.JoinParticleGroupsFilter(e.m_firstIndex); +this.UpdateContacts(!0); +this.UpdatePairsAndTriads(t.m_firstIndex, e.m_lastIndex, i); +for (var r = e.m_firstIndex; r < e.m_lastIndex; r++) this.m_groupBuffer[r] = t; +var s = t.m_groupFlags | e.m_groupFlags; +this.SetGroupFlags(t, s); +t.m_lastIndex = e.m_lastIndex; +e.m_firstIndex = e.m_lastIndex; +this.DestroyParticleGroup(e); +}; +n.prototype.SplitParticleGroup = function(t) { +this.UpdateContacts(!0); +var e = d(t.GetParticleCount(), (function(t) { +return new n.ParticleListNode(); +})); +n.InitializeParticleLists(t, e); +this.MergeParticleListsInContact(t, e); +var i = n.FindLongestParticleList(t, e); +this.MergeZombieParticleListNodes(t, e, i); +this.CreateParticleGroupsFromParticleList(t, e, i); +this.UpdatePairsAndTriadsWithParticleList(t, e); +}; +n.prototype.GetParticleGroupList = function() { +return this.m_groupList; +}; +n.prototype.GetParticleGroupCount = function() { +return this.m_groupCount; +}; +n.prototype.GetParticleCount = function() { +return this.m_count; +}; +n.prototype.GetMaxParticleCount = function() { +return this.m_def.maxCount; +}; +n.prototype.SetMaxParticleCount = function(t) { +this.m_def.maxCount = t; +}; +n.prototype.GetAllParticleFlags = function() { +return this.m_allParticleFlags; +}; +n.prototype.GetAllGroupFlags = function() { +return this.m_allGroupFlags; +}; +n.prototype.SetPaused = function(t) { +this.m_paused = t; +}; +n.prototype.GetPaused = function() { +return this.m_paused; +}; +n.prototype.SetDensity = function(t) { +this.m_def.density = t; +this.m_inverseDensity = 1 / this.m_def.density; +}; +n.prototype.GetDensity = function() { +return this.m_def.density; +}; +n.prototype.SetGravityScale = function(t) { +this.m_def.gravityScale = t; +}; +n.prototype.GetGravityScale = function() { +return this.m_def.gravityScale; +}; +n.prototype.SetDamping = function(t) { +this.m_def.dampingStrength = t; +}; +n.prototype.GetDamping = function() { +return this.m_def.dampingStrength; +}; +n.prototype.SetStaticPressureIterations = function(t) { +this.m_def.staticPressureIterations = t; +}; +n.prototype.GetStaticPressureIterations = function() { +return this.m_def.staticPressureIterations; +}; +n.prototype.SetRadius = function(t) { +this.m_particleDiameter = 2 * t; +this.m_squaredDiameter = this.m_particleDiameter * this.m_particleDiameter; +this.m_inverseDiameter = 1 / this.m_particleDiameter; +}; +n.prototype.GetRadius = function() { +return this.m_particleDiameter / 2; +}; +n.prototype.GetPositionBuffer = function() { +if (!this.m_positionBuffer.data) throw new Error(); +return this.m_positionBuffer.data; +}; +n.prototype.GetVelocityBuffer = function() { +if (!this.m_velocityBuffer.data) throw new Error(); +return this.m_velocityBuffer.data; +}; +n.prototype.GetColorBuffer = function() { +this.m_colorBuffer.data = this.RequestBuffer(this.m_colorBuffer.data); +return this.m_colorBuffer.data; +}; +n.prototype.GetGroupBuffer = function() { +return this.m_groupBuffer; +}; +n.prototype.GetWeightBuffer = function() { +return this.m_weightBuffer; +}; +n.prototype.GetUserDataBuffer = function() { +this.m_userDataBuffer.data = this.RequestBuffer(this.m_userDataBuffer.data); +return this.m_userDataBuffer.data; +}; +n.prototype.GetFlagsBuffer = function() { +if (!this.m_flagsBuffer.data) throw new Error(); +return this.m_flagsBuffer.data; +}; +n.prototype.SetParticleFlags = function(e, i) { +if (!this.m_flagsBuffer.data) throw new Error(); +this.m_flagsBuffer.data[e] & ~i && (this.m_needsUpdateAllParticleFlags = !0); +if (~this.m_allParticleFlags & i) { +i & t.b2ParticleFlag.b2_tensileParticle && (this.m_accumulation2Buffer = this.RequestBuffer(this.m_accumulation2Buffer)); +i & t.b2ParticleFlag.b2_colorMixingParticle && (this.m_colorBuffer.data = this.RequestBuffer(this.m_colorBuffer.data)); +this.m_allParticleFlags |= i; +} +this.m_flagsBuffer.data[e] = i; +}; +n.prototype.GetParticleFlags = function(t) { +if (!this.m_flagsBuffer.data) throw new Error(); +return this.m_flagsBuffer.data[t]; +}; +n.prototype.SetFlagsBuffer = function(t, e) { +this.SetUserOverridableBuffer(this.m_flagsBuffer, t, e); +}; +n.prototype.SetPositionBuffer = function(t, e) { +this.SetUserOverridableBuffer(this.m_positionBuffer, t, e); +}; +n.prototype.SetVelocityBuffer = function(t, e) { +this.SetUserOverridableBuffer(this.m_velocityBuffer, t, e); +}; +n.prototype.SetColorBuffer = function(t, e) { +this.SetUserOverridableBuffer(this.m_colorBuffer, t, e); +}; +n.prototype.SetUserDataBuffer = function(t, e) { +this.SetUserOverridableBuffer(this.m_userDataBuffer, t, e); +}; +n.prototype.GetContacts = function() { +return this.m_contactBuffer.data; +}; +n.prototype.GetContactCount = function() { +return this.m_contactBuffer.count; +}; +n.prototype.GetBodyContacts = function() { +return this.m_bodyContactBuffer.data; +}; +n.prototype.GetBodyContactCount = function() { +return this.m_bodyContactBuffer.count; +}; +n.prototype.GetPairs = function() { +return this.m_pairBuffer.data; +}; +n.prototype.GetPairCount = function() { +return this.m_pairBuffer.count; +}; +n.prototype.GetTriads = function() { +return this.m_triadBuffer.data; +}; +n.prototype.GetTriadCount = function() { +return this.m_triadBuffer.count; +}; +n.prototype.SetStuckThreshold = function(t) { +this.m_stuckThreshold = t; +if (t > 0) { +this.m_lastBodyContactStepBuffer.data = this.RequestBuffer(this.m_lastBodyContactStepBuffer.data); +this.m_bodyContactCountBuffer.data = this.RequestBuffer(this.m_bodyContactCountBuffer.data); +this.m_consecutiveContactStepsBuffer.data = this.RequestBuffer(this.m_consecutiveContactStepsBuffer.data); +} +}; +n.prototype.GetStuckCandidates = function() { +return this.m_stuckParticleBuffer.Data(); +}; +n.prototype.GetStuckCandidateCount = function() { +return this.m_stuckParticleBuffer.GetCount(); +}; +n.prototype.ComputeCollisionEnergy = function() { +if (!this.m_velocityBuffer.data) throw new Error(); +for (var t = n.ComputeCollisionEnergy_s_v, e = this.m_velocityBuffer.data, i = 0, r = 0; r < this.m_contactBuffer.count; r++) { +var s = this.m_contactBuffer.data[r], o = s.indexA, a = s.indexB, c = s.normal, l = P.SubVV(e[a], e[o], t), h = P.DotVV(l, c); +h < 0 && (i += h * h); +} +return .5 * this.GetParticleMass() * i; +}; +n.prototype.SetStrictContactCheck = function(t) { +this.m_def.strictContactCheck = t; +}; +n.prototype.GetStrictContactCheck = function() { +return this.m_def.strictContactCheck; +}; +n.prototype.SetParticleLifetime = function(t, e) { +var i = null === this.m_indexByExpirationTimeBuffer.data; +this.m_expirationTimeBuffer.data = this.RequestBuffer(this.m_expirationTimeBuffer.data); +this.m_indexByExpirationTimeBuffer.data = this.RequestBuffer(this.m_indexByExpirationTimeBuffer.data); +if (i) for (var n = this.GetParticleCount(), r = 0; r < n; ++r) this.m_indexByExpirationTimeBuffer.data[r] = r; +var s = e / this.m_def.lifetimeGranularity, o = s > 0 ? this.GetQuantizedTimeElapsed() + s : s; +if (o !== this.m_expirationTimeBuffer.data[t]) { +this.m_expirationTimeBuffer.data[t] = o; +this.m_expirationTimeBufferRequiresSorting = !0; +} +}; +n.prototype.GetParticleLifetime = function(t) { +return this.ExpirationTimeToLifetime(this.GetExpirationTimeBuffer()[t]); +}; +n.prototype.SetDestructionByAge = function(t) { +t && this.GetExpirationTimeBuffer(); +this.m_def.destroyByAge = t; +}; +n.prototype.GetDestructionByAge = function() { +return this.m_def.destroyByAge; +}; +n.prototype.GetExpirationTimeBuffer = function() { +this.m_expirationTimeBuffer.data = this.RequestBuffer(this.m_expirationTimeBuffer.data); +return this.m_expirationTimeBuffer.data; +}; +n.prototype.ExpirationTimeToLifetime = function(t) { +return (t > 0 ? t - this.GetQuantizedTimeElapsed() : t) * this.m_def.lifetimeGranularity; +}; +n.prototype.GetIndexByExpirationTimeBuffer = function() { +this.GetParticleCount() ? this.SetParticleLifetime(0, this.GetParticleLifetime(0)) : this.m_indexByExpirationTimeBuffer.data = this.RequestBuffer(this.m_indexByExpirationTimeBuffer.data); +if (!this.m_indexByExpirationTimeBuffer.data) throw new Error(); +return this.m_indexByExpirationTimeBuffer.data; +}; +n.prototype.ParticleApplyLinearImpulse = function(t, e) { +this.ApplyLinearImpulse(t, t + 1, e); +}; +n.prototype.ApplyLinearImpulse = function(t, e, i) { +if (!this.m_velocityBuffer.data) throw new Error(); +for (var n = this.m_velocityBuffer.data, r = (e - t) * this.GetParticleMass(), s = new P().Copy(i).SelfMul(1 / r), o = t; o < e; o++) n[o].SelfAdd(s); +}; +n.IsSignificantForce = function(t) { +return 0 !== t.x || 0 !== t.y; +}; +n.prototype.ParticleApplyForce = function(t, e) { +if (!this.m_flagsBuffer.data) throw new Error(); +if (n.IsSignificantForce(e) && this.ForceCanBeApplied(this.m_flagsBuffer.data[t])) { +this.PrepareForceBuffer(); +this.m_forceBuffer[t].SelfAdd(e); +} +}; +n.prototype.ApplyForce = function(t, e, i) { +var r = new P().Copy(i).SelfMul(1 / (e - t)); +if (n.IsSignificantForce(r)) { +this.PrepareForceBuffer(); +for (var s = t; s < e; s++) this.m_forceBuffer[s].SelfAdd(r); +} +}; +n.prototype.GetNext = function() { +return this.m_next; +}; +n.prototype.QueryAABB = function(t, e) { +if (0 !== this.m_proxyBuffer.count) { +var i = this.m_proxyBuffer.count, r = Bn(this.m_proxyBuffer.data, 0, i, n.computeTag(this.m_inverseDiameter * e.lowerBound.x, this.m_inverseDiameter * e.lowerBound.y), n.Proxy.CompareProxyTag), s = Dn(this.m_proxyBuffer.data, r, i, n.computeTag(this.m_inverseDiameter * e.upperBound.x, this.m_inverseDiameter * e.upperBound.y), n.Proxy.CompareTagProxy); +if (!this.m_positionBuffer.data) throw new Error(); +for (var o = this.m_positionBuffer.data, a = r; a < s; ++a) { +var c = this.m_proxyBuffer.data[a].index, l = o[c]; +if (e.lowerBound.x < l.x && l.x < e.upperBound.x && e.lowerBound.y < l.y && l.y < e.upperBound.y && !t.ReportParticle(this, c)) break; +} +} +}; +n.prototype.QueryShapeAABB = function(t, e, i, r) { +void 0 === r && (r = 0); +var s = n.QueryShapeAABB_s_aabb; +e.ComputeAABB(s, i, r); +this.QueryAABB(t, s); +}; +n.prototype.QueryPointAABB = function(t, e, i) { +void 0 === i && (i = c); +var r = n.QueryPointAABB_s_aabb; +r.lowerBound.Set(e.x - i, e.y - i); +r.upperBound.Set(e.x + i, e.y + i); +this.QueryAABB(t, r); +}; +n.prototype.RayCast = function(t, e, i) { +var r = n.RayCast_s_aabb, s = n.RayCast_s_p, o = n.RayCast_s_v, a = n.RayCast_s_n, c = n.RayCast_s_point; +if (0 !== this.m_proxyBuffer.count) { +if (!this.m_positionBuffer.data) throw new Error(); +var l = this.m_positionBuffer.data, h = r; +P.MinV(e, i, h.lowerBound); +P.MaxV(e, i, h.upperBound); +for (var u, _ = 1, f = P.SubVV(i, e, o), d = P.DotVV(f, f), m = this.GetInsideBoundsEnumerator(h); (u = m.GetNext()) >= 0; ) { +var p = P.SubVV(e, l[u], s), v = P.DotVV(p, f), y = v * v - d * (P.DotVV(p, p) - this.m_squaredDiameter); +if (y >= 0) { +var x = w(y), C = (-v - x) / d; +if (C > _) continue; +if (C < 0 && ((C = (-v + x) / d) < 0 || C > _)) continue; +var b = P.AddVMulSV(p, C, f, a); +b.Normalize(); +var A = t.ReportParticle(this, u, P.AddVMulSV(e, C, f, c), b, C); +if ((_ = g(_, A)) <= 0) break; +} +} +} +}; +n.prototype.ComputeAABB = function(t) { +var e = this.GetParticleCount(); +t.lowerBound.x = +i; +t.lowerBound.y = +i; +t.upperBound.x = -i; +t.upperBound.y = -i; +if (!this.m_positionBuffer.data) throw new Error(); +for (var n = this.m_positionBuffer.data, r = 0; r < e; r++) { +var s = n[r]; +P.MinV(t.lowerBound, s, t.lowerBound); +P.MaxV(t.upperBound, s, t.upperBound); +} +t.lowerBound.x -= this.m_particleDiameter; +t.lowerBound.y -= this.m_particleDiameter; +t.upperBound.x += this.m_particleDiameter; +t.upperBound.y += this.m_particleDiameter; +}; +n.prototype.FreeBuffer = function(t, e) { +null !== t && (t.length = 0); +}; +n.prototype.FreeUserOverridableBuffer = function(t) { +0 === t.userSuppliedCapacity && this.FreeBuffer(t.data, this.m_internalAllocatedCapacity); +}; +n.prototype.ReallocateBuffer3 = function(t, e, i) { +if (i <= e) throw new Error(); +var n = t ? t.slice() : []; +n.length = i; +return n; +}; +n.prototype.ReallocateBuffer5 = function(t, e, i, n, r) { +if (n <= i) throw new Error(); +if (e && !(n <= e)) throw new Error(); +r && !t || e || (t = this.ReallocateBuffer3(t, i, n)); +return t; +}; +n.prototype.ReallocateBuffer4 = function(t, e, i, n) { +return this.ReallocateBuffer5(t.data, t.userSuppliedCapacity, e, i, n); +}; +n.prototype.RequestBuffer = function(t) { +if (!t) { +0 === this.m_internalAllocatedCapacity && this.ReallocateInternalAllocatedBuffers(256); +(t = []).length = this.m_internalAllocatedCapacity; +} +return t; +}; +n.prototype.ReallocateHandleBuffers = function(t) { +this.m_handleIndexBuffer.data = this.ReallocateBuffer4(this.m_handleIndexBuffer, this.m_internalAllocatedCapacity, t, !0); +}; +n.prototype.ReallocateInternalAllocatedBuffers = function(t) { +function e(t, e) { +return e && t > e ? e : t; +} +t = e(t = e(t = e(t = e(t = e(t = e(t, this.m_def.maxCount), this.m_flagsBuffer.userSuppliedCapacity), this.m_positionBuffer.userSuppliedCapacity), this.m_velocityBuffer.userSuppliedCapacity), this.m_colorBuffer.userSuppliedCapacity), this.m_userDataBuffer.userSuppliedCapacity); +if (this.m_internalAllocatedCapacity < t) { +this.ReallocateHandleBuffers(t); +this.m_flagsBuffer.data = this.ReallocateBuffer4(this.m_flagsBuffer, this.m_internalAllocatedCapacity, t, !1); +var i = this.m_stuckThreshold > 0; +this.m_lastBodyContactStepBuffer.data = this.ReallocateBuffer4(this.m_lastBodyContactStepBuffer, this.m_internalAllocatedCapacity, t, i); +this.m_bodyContactCountBuffer.data = this.ReallocateBuffer4(this.m_bodyContactCountBuffer, this.m_internalAllocatedCapacity, t, i); +this.m_consecutiveContactStepsBuffer.data = this.ReallocateBuffer4(this.m_consecutiveContactStepsBuffer, this.m_internalAllocatedCapacity, t, i); +this.m_positionBuffer.data = this.ReallocateBuffer4(this.m_positionBuffer, this.m_internalAllocatedCapacity, t, !1); +this.m_velocityBuffer.data = this.ReallocateBuffer4(this.m_velocityBuffer, this.m_internalAllocatedCapacity, t, !1); +this.m_forceBuffer = this.ReallocateBuffer5(this.m_forceBuffer, 0, this.m_internalAllocatedCapacity, t, !1); +this.m_weightBuffer = this.ReallocateBuffer5(this.m_weightBuffer, 0, this.m_internalAllocatedCapacity, t, !1); +this.m_staticPressureBuffer = this.ReallocateBuffer5(this.m_staticPressureBuffer, 0, this.m_internalAllocatedCapacity, t, !0); +this.m_accumulationBuffer = this.ReallocateBuffer5(this.m_accumulationBuffer, 0, this.m_internalAllocatedCapacity, t, !1); +this.m_accumulation2Buffer = this.ReallocateBuffer5(this.m_accumulation2Buffer, 0, this.m_internalAllocatedCapacity, t, !0); +this.m_depthBuffer = this.ReallocateBuffer5(this.m_depthBuffer, 0, this.m_internalAllocatedCapacity, t, !0); +this.m_colorBuffer.data = this.ReallocateBuffer4(this.m_colorBuffer, this.m_internalAllocatedCapacity, t, !0); +this.m_groupBuffer = this.ReallocateBuffer5(this.m_groupBuffer, 0, this.m_internalAllocatedCapacity, t, !1); +this.m_userDataBuffer.data = this.ReallocateBuffer4(this.m_userDataBuffer, this.m_internalAllocatedCapacity, t, !0); +this.m_expirationTimeBuffer.data = this.ReallocateBuffer4(this.m_expirationTimeBuffer, this.m_internalAllocatedCapacity, t, !0); +this.m_indexByExpirationTimeBuffer.data = this.ReallocateBuffer4(this.m_indexByExpirationTimeBuffer, this.m_internalAllocatedCapacity, t, !1); +this.m_internalAllocatedCapacity = t; +} +}; +n.prototype.CreateParticleForGroup = function(t, i, n) { +var r = new vn(); +r.flags = e(t.flags, 0); +N.MulXV(i, n, r.position); +P.AddVV(e(t.linearVelocity, P.ZERO), P.CrossSV(e(t.angularVelocity, 0), P.SubVV(r.position, e(t.position, P.ZERO), P.s_t0), P.s_t0), r.velocity); +r.color.Copy(e(t.color, z.ZERO)); +r.lifetime = e(t.lifetime, 0); +r.userData = t.userData; +this.CreateParticle(r); +}; +n.prototype.CreateParticlesStrokeShapeForGroup = function(i, r, s) { +var o = n.CreateParticlesStrokeShapeForGroup_s_edge, a = n.CreateParticlesStrokeShapeForGroup_s_d, c = n.CreateParticlesStrokeShapeForGroup_s_p, l = e(r.stride, 0); +0 === l && (l = this.GetParticleStride()); +for (var h = 0, u = i.GetChildCount(), _ = 0; _ < u; _++) { +var f = null; +if (i.GetType() === t.b2ShapeType.e_edgeShape) f = i; else { +f = o; +i.GetChildEdge(f, _); +} +for (var d = P.SubVV(f.m_vertex2, f.m_vertex1, a), m = d.Length(); h < m; ) { +var p = P.AddVMulSV(f.m_vertex1, h / m, d, c); +this.CreateParticleForGroup(r, s, p); +h += l; +} +h -= m; +} +}; +n.prototype.CreateParticlesFillShapeForGroup = function(t, i, r) { +var s = n.CreateParticlesFillShapeForGroup_s_aabb, o = n.CreateParticlesFillShapeForGroup_s_p, a = e(i.stride, 0); +0 === a && (a = this.GetParticleStride()); +var c = N.IDENTITY, l = s; +t.ComputeAABB(l, c, 0); +for (var h = Math.floor(l.lowerBound.y / a) * a; h < l.upperBound.y; h += a) for (var u = Math.floor(l.lowerBound.x / a) * a; u < l.upperBound.x; u += a) { +var _ = o.Set(u, h); +t.TestPoint(c, _) && this.CreateParticleForGroup(i, r, _); +} +}; +n.prototype.CreateParticlesWithShapeForGroup = function(e, i, n) { +switch (e.GetType()) { +case t.b2ShapeType.e_edgeShape: +case t.b2ShapeType.e_chainShape: +this.CreateParticlesStrokeShapeForGroup(e, i, n); +break; + +case t.b2ShapeType.e_polygonShape: +case t.b2ShapeType.e_circleShape: +this.CreateParticlesFillShapeForGroup(e, i, n); +} +}; +n.prototype.CreateParticlesWithShapesForGroup = function(t, e, i, r) { +var s = new n.CompositeShape(t, e); +this.CreateParticlesFillShapeForGroup(s, i, r); +}; +n.prototype.CloneParticle = function(t, e) { +var i = new vn(); +if (!this.m_flagsBuffer.data) throw new Error(); +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +i.flags = this.m_flagsBuffer.data[t]; +i.position.Copy(this.m_positionBuffer.data[t]); +i.velocity.Copy(this.m_velocityBuffer.data[t]); +this.m_colorBuffer.data && i.color.Copy(this.m_colorBuffer.data[t]); +this.m_userDataBuffer.data && (i.userData = this.m_userDataBuffer.data[t]); +i.group = e; +var n = this.CreateParticle(i); +if (this.m_handleIndexBuffer.data) { +var r = this.m_handleIndexBuffer.data[t]; +r && r.SetIndex(n); +this.m_handleIndexBuffer.data[n] = r; +this.m_handleIndexBuffer.data[t] = null; +} +this.m_lastBodyContactStepBuffer.data && (this.m_lastBodyContactStepBuffer.data[n] = this.m_lastBodyContactStepBuffer.data[t]); +this.m_bodyContactCountBuffer.data && (this.m_bodyContactCountBuffer.data[n] = this.m_bodyContactCountBuffer.data[t]); +this.m_consecutiveContactStepsBuffer.data && (this.m_consecutiveContactStepsBuffer.data[n] = this.m_consecutiveContactStepsBuffer.data[t]); +this.m_hasForce && this.m_forceBuffer[n].Copy(this.m_forceBuffer[t]); +this.m_staticPressureBuffer && (this.m_staticPressureBuffer[n] = this.m_staticPressureBuffer[t]); +this.m_depthBuffer && (this.m_depthBuffer[n] = this.m_depthBuffer[t]); +this.m_expirationTimeBuffer.data && (this.m_expirationTimeBuffer.data[n] = this.m_expirationTimeBuffer.data[t]); +return n; +}; +n.prototype.DestroyParticlesInGroup = function(t, e) { +void 0 === e && (e = !1); +for (var i = t.m_firstIndex; i < t.m_lastIndex; i++) this.DestroyParticle(i, e); +}; +n.prototype.DestroyParticleGroup = function(t) { +this.m_world.m_destructionListener && this.m_world.m_destructionListener.SayGoodbyeParticleGroup(t); +this.SetGroupFlags(t, 0); +for (var e = t.m_firstIndex; e < t.m_lastIndex; e++) this.m_groupBuffer[e] = null; +t.m_prev && (t.m_prev.m_next = t.m_next); +t.m_next && (t.m_next.m_prev = t.m_prev); +t === this.m_groupList && (this.m_groupList = t.m_next); +--this.m_groupCount; +}; +n.ParticleCanBeConnected = function(e, i) { +return 0 != (e & (t.b2ParticleFlag.b2_wallParticle | t.b2ParticleFlag.b2_springParticle | t.b2ParticleFlag.b2_elasticParticle)) || null !== i && 0 != (i.GetGroupFlags() & t.b2ParticleGroupFlag.b2_rigidParticleGroup); +}; +n.prototype.UpdatePairsAndTriads = function(e, i, r) { +var s = n.UpdatePairsAndTriads_s_dab, o = n.UpdatePairsAndTriads_s_dbc, a = n.UpdatePairsAndTriads_s_dca; +if (!this.m_flagsBuffer.data) throw new Error(); +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var c = this.m_positionBuffer.data, l = 0, h = e; h < i; h++) l |= this.m_flagsBuffer.data[h]; +if (l & n.k_pairFlags) for (var u = 0; u < this.m_contactBuffer.count; u++) { +var _ = this.m_contactBuffer.data[u], f = _.indexA, d = _.indexB, m = this.m_flagsBuffer.data[f], p = this.m_flagsBuffer.data[d], v = this.m_groupBuffer[f], y = this.m_groupBuffer[d]; +if (f >= e && f < i && d >= e && d < i && !((m | p) & t.b2ParticleFlag.b2_zombieParticle) && (m | p) & n.k_pairFlags && (r.IsNecessary(f) || r.IsNecessary(d)) && n.ParticleCanBeConnected(m, v) && n.ParticleCanBeConnected(p, y) && r.ShouldCreatePair(f, d)) { +var x = this.m_pairBuffer.data[this.m_pairBuffer.Append()]; +x.indexA = f; +x.indexB = d; +x.flags = _.flags; +x.strength = g(v ? v.m_strength : 1, y ? y.m_strength : 1); +x.distance = P.DistanceVV(c[f], c[d]); +} +En(this.m_pairBuffer.data, 0, this.m_pairBuffer.count, n.ComparePairIndices); +this.m_pairBuffer.Unique(n.MatchPairIndices); +} +if (l & n.k_triadFlags) { +var C = new An(i - e); +for (h = e; h < i; h++) { +var b = this.m_flagsBuffer.data[h], A = this.m_groupBuffer[h]; +b & t.b2ParticleFlag.b2_zombieParticle || !n.ParticleCanBeConnected(b, A) || C.AddGenerator(c[h], h, r.IsNecessary(h)); +} +var S = this.GetParticleStride(); +C.Generate(S / 2, 2 * S); +var w = this; +C.GetNodes((function(t, e, i) { +if (!w.m_flagsBuffer.data) throw new Error(); +var l = w.m_flagsBuffer.data[t], h = w.m_flagsBuffer.data[e], u = w.m_flagsBuffer.data[i]; +if ((l | h | u) & n.k_triadFlags && r.ShouldCreateTriad(t, e, i)) { +var _ = c[t], f = c[e], d = c[i], m = P.SubVV(_, f, s), p = P.SubVV(f, d, o), v = P.SubVV(d, _, a), y = 4 * w.m_squaredDiameter; +if (P.DotVV(m, m) > y || P.DotVV(p, p) > y || P.DotVV(v, v) > y) return; +var x = w.m_groupBuffer[t], C = w.m_groupBuffer[e], b = w.m_groupBuffer[i], A = w.m_triadBuffer.data[w.m_triadBuffer.Append()]; +A.indexA = t; +A.indexB = e; +A.indexC = i; +A.flags = l | h | u; +A.strength = g(g(x ? x.m_strength : 1, C ? C.m_strength : 1), b ? b.m_strength : 1); +var S = (_.x + f.x + d.x) / 3, T = (_.y + f.y + d.y) / 3; +A.pa.x = _.x - S; +A.pa.y = _.y - T; +A.pb.x = f.x - S; +A.pb.y = f.y - T; +A.pc.x = d.x - S; +A.pc.y = d.y - T; +A.ka = -P.DotVV(v, m); +A.kb = -P.DotVV(m, p); +A.kc = -P.DotVV(p, v); +A.s = P.CrossVV(_, f) + P.CrossVV(f, d) + P.CrossVV(d, _); +} +})); +En(this.m_triadBuffer.data, 0, this.m_triadBuffer.count, n.CompareTriadIndices); +this.m_triadBuffer.Unique(n.MatchTriadIndices); +} +}; +n.prototype.UpdatePairsAndTriadsWithReactiveParticles = function() { +var e = new n.ReactiveFilter(this.m_flagsBuffer); +this.UpdatePairsAndTriads(0, this.m_count, e); +if (!this.m_flagsBuffer.data) throw new Error(); +for (var i = 0; i < this.m_count; i++) this.m_flagsBuffer.data[i] &= ~t.b2ParticleFlag.b2_reactiveParticle; +this.m_allParticleFlags &= ~t.b2ParticleFlag.b2_reactiveParticle; +}; +n.ComparePairIndices = function(t, e) { +var i = t.indexA - e.indexA; +return 0 !== i ? i < 0 : t.indexB < e.indexB; +}; +n.MatchPairIndices = function(t, e) { +return t.indexA === e.indexA && t.indexB === e.indexB; +}; +n.CompareTriadIndices = function(t, e) { +var i = t.indexA - e.indexA; +if (0 !== i) return i < 0; +var n = t.indexB - e.indexB; +return 0 !== n ? n < 0 : t.indexC < e.indexC; +}; +n.MatchTriadIndices = function(t, e) { +return t.indexA === e.indexA && t.indexB === e.indexB && t.indexC === e.indexC; +}; +n.InitializeParticleLists = function(t, e) { +for (var i = t.GetBufferIndex(), n = t.GetParticleCount(), r = 0; r < n; r++) { +var s = e[r]; +s.list = s; +s.next = null; +s.count = 1; +s.index = r + i; +} +}; +n.prototype.MergeParticleListsInContact = function(t, e) { +for (var i = t.GetBufferIndex(), r = 0; r < this.m_contactBuffer.count; r++) { +var s = this.m_contactBuffer.data[r], o = s.indexA, a = s.indexB; +if (t.ContainsParticle(o) && t.ContainsParticle(a)) { +var c = e[o - i].list, l = e[a - i].list; +if (c !== l) { +if (c.count < l.count) { +var h = c; +c = l; +l = h; +} +n.MergeParticleLists(c, l); +} +} +} +}; +n.MergeParticleLists = function(t, e) { +for (var i = e; ;) { +i.list = t; +var n = i.next; +if (!n) { +i.next = t.next; +break; +} +i = n; +} +t.next = e; +t.count += e.count; +e.count = 0; +}; +n.FindLongestParticleList = function(t, e) { +for (var i = t.GetParticleCount(), n = e[0], r = 0; r < i; r++) { +var s = e[r]; +n.count < s.count && (n = s); +} +return n; +}; +n.prototype.MergeZombieParticleListNodes = function(e, i, r) { +if (!this.m_flagsBuffer.data) throw new Error(); +for (var s = e.GetParticleCount(), o = 0; o < s; o++) { +var a = i[o]; +a !== r && this.m_flagsBuffer.data[a.index] & t.b2ParticleFlag.b2_zombieParticle && n.MergeParticleListAndNode(r, a); +} +}; +n.MergeParticleListAndNode = function(t, e) { +e.list = t; +e.next = t.next; +t.next = e; +t.count++; +e.count = 0; +}; +n.prototype.CreateParticleGroupsFromParticleList = function(e, i, n) { +if (!this.m_flagsBuffer.data) throw new Error(); +var r = e.GetParticleCount(), s = new xn(); +s.groupFlags = e.GetGroupFlags(); +s.userData = e.GetUserData(); +for (var o = 0; o < r; o++) { +var a = i[o]; +if (a.count && a !== n) for (var c = this.CreateParticleGroup(s), l = a; l; l = l.next) { +var h = l.index, u = this.CloneParticle(h, c); +this.m_flagsBuffer.data[h] |= t.b2ParticleFlag.b2_zombieParticle; +l.index = u; +} +} +}; +n.prototype.UpdatePairsAndTriadsWithParticleList = function(t, e) { +for (var i = t.GetBufferIndex(), n = 0; n < this.m_pairBuffer.count; n++) { +var r = this.m_pairBuffer.data[n], s = r.indexA, o = r.indexB; +t.ContainsParticle(s) && (r.indexA = e[s - i].index); +t.ContainsParticle(o) && (r.indexB = e[o - i].index); +} +for (n = 0; n < this.m_triadBuffer.count; n++) { +var a = this.m_triadBuffer.data[n], c = (s = a.indexA, o = a.indexB, a.indexC); +t.ContainsParticle(s) && (a.indexA = e[s - i].index); +t.ContainsParticle(o) && (a.indexB = e[o - i].index); +t.ContainsParticle(c) && (a.indexC = e[c - i].index); +} +}; +n.prototype.ComputeDepth = function() { +for (var e = [], n = 0, r = 0; r < this.m_contactBuffer.count; r++) { +var s = (y = this.m_contactBuffer.data[r]).indexA, o = y.indexB, a = this.m_groupBuffer[s], c = this.m_groupBuffer[o]; +a && a === c && a.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth && (e[n++] = y); +} +for (var l = [], h = 0, u = this.m_groupList; u; u = u.GetNext()) if (u.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth) { +l[h++] = u; +this.SetGroupFlags(u, u.m_groupFlags & ~t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth); +for (var _ = u.m_firstIndex; _ < u.m_lastIndex; _++) this.m_accumulationBuffer[_] = 0; +} +for (r = 0; r < n; r++) { +s = (y = e[r]).indexA, o = y.indexB; +var f = y.weight; +this.m_accumulationBuffer[s] += f; +this.m_accumulationBuffer[o] += f; +} +for (_ = 0; _ < h; _++) for (var d = (u = l[_]).m_firstIndex; d < u.m_lastIndex; d++) { +f = this.m_accumulationBuffer[d]; +this.m_depthBuffer[d] = f < .8 ? 0 : i; +} +for (var m = w(this.m_count) >> 0, p = 0; p < m; p++) { +var v = !1; +for (r = 0; r < n; r++) { +s = (y = e[r]).indexA, o = y.indexB; +var y, g = 1 - y.weight, x = this.m_depthBuffer[s], C = this.m_depthBuffer[o], b = C + g, A = x + g; +if (x > b) { +this.m_depthBuffer[s] = b; +v = !0; +} +if (C > A) { +this.m_depthBuffer[o] = A; +v = !0; +} +} +if (!v) break; +} +for (_ = 0; _ < h; _++) for (var S = (u = l[_]).m_firstIndex; S < u.m_lastIndex; S++) this.m_depthBuffer[S] < i ? this.m_depthBuffer[S] *= this.m_particleDiameter : this.m_depthBuffer[S] = 0; +}; +n.prototype.GetInsideBoundsEnumerator = function(t) { +var e = n.computeTag(this.m_inverseDiameter * t.lowerBound.x - 1, this.m_inverseDiameter * t.lowerBound.y - 1), i = n.computeTag(this.m_inverseDiameter * t.upperBound.x + 1, this.m_inverseDiameter * t.upperBound.y + 1), r = this.m_proxyBuffer.count, s = Bn(this.m_proxyBuffer.data, 0, r, e, n.Proxy.CompareProxyTag), o = Dn(this.m_proxyBuffer.data, 0, r, i, n.Proxy.CompareTagProxy); +return new n.InsideBoundsEnumerator(this, e, i, s, o); +}; +n.prototype.UpdateAllParticleFlags = function() { +if (!this.m_flagsBuffer.data) throw new Error(); +this.m_allParticleFlags = 0; +for (var t = 0; t < this.m_count; t++) this.m_allParticleFlags |= this.m_flagsBuffer.data[t]; +this.m_needsUpdateAllParticleFlags = !1; +}; +n.prototype.UpdateAllGroupFlags = function() { +this.m_allGroupFlags = 0; +for (var t = this.m_groupList; t; t = t.GetNext()) this.m_allGroupFlags |= t.m_groupFlags; +this.m_needsUpdateAllGroupFlags = !1; +}; +n.prototype.AddContact = function(t, e, i) { +if (!this.m_flagsBuffer.data) throw new Error(); +if (!this.m_positionBuffer.data) throw new Error(); +var r = n.AddContact_s_d, s = this.m_positionBuffer.data, o = P.SubVV(s[e], s[t], r), a = P.DotVV(o, o); +if (a < this.m_squaredDiameter) { +var c = S(a); +isFinite(c) || (c = 198177537e11); +var l = this.m_contactBuffer.data[this.m_contactBuffer.Append()]; +l.indexA = t; +l.indexB = e; +l.flags = this.m_flagsBuffer.data[t] | this.m_flagsBuffer.data[e]; +l.weight = 1 - a * c * this.m_inverseDiameter; +P.MulSV(c, o, l.normal); +} +}; +n.prototype.FindContacts_Reference = function(t) { +var e = this.m_proxyBuffer.count; +this.m_contactBuffer.count = 0; +for (var i = 0, r = 0; i < e; i++) { +for (var s = n.computeRelativeTag(this.m_proxyBuffer.data[i].tag, 1, 0), o = i + 1; o < e && !(s < this.m_proxyBuffer.data[o].tag); o++) this.AddContact(this.m_proxyBuffer.data[i].index, this.m_proxyBuffer.data[o].index, this.m_contactBuffer); +for (var a = n.computeRelativeTag(this.m_proxyBuffer.data[i].tag, -1, 1); r < e && !(a <= this.m_proxyBuffer.data[r].tag); r++) ; +var c = n.computeRelativeTag(this.m_proxyBuffer.data[i].tag, 1, 1); +for (o = r; o < e && !(c < this.m_proxyBuffer.data[o].tag); o++) this.AddContact(this.m_proxyBuffer.data[i].index, this.m_proxyBuffer.data[o].index, this.m_contactBuffer); +} +}; +n.prototype.FindContacts = function(t) { +this.FindContacts_Reference(t); +}; +n.prototype.UpdateProxies_Reference = function(t) { +if (!this.m_positionBuffer.data) throw new Error(); +for (var e = this.m_positionBuffer.data, i = this.m_inverseDiameter, r = 0; r < this.m_proxyBuffer.count; ++r) { +var s = this.m_proxyBuffer.data[r], o = e[s.index]; +s.tag = n.computeTag(i * o.x, i * o.y); +} +}; +n.prototype.UpdateProxies = function(t) { +this.UpdateProxies_Reference(t); +}; +n.prototype.SortProxies = function(t) { +Tn(this.m_proxyBuffer.data, 0, this.m_proxyBuffer.count, n.Proxy.CompareProxyProxy); +}; +n.prototype.FilterContacts = function(e) { +var i = this.GetParticleContactFilter(); +if (null !== i) { +var n = this; +this.m_contactBuffer.RemoveIf((function(e) { +return 0 != (e.flags & t.b2ParticleFlag.b2_particleContactFilterParticle) && !i.ShouldCollideParticleParticle(n, e.indexA, e.indexB); +})); +} +}; +n.prototype.NotifyContactListenerPreContact = function(t) { +if (null !== this.GetParticleContactListener()) { +t.Initialize(this.m_contactBuffer, this.m_flagsBuffer); +throw new Error(); +} +}; +n.prototype.NotifyContactListenerPostContact = function(t) { +var e = this.GetParticleContactListener(); +if (null !== e) { +for (var i = 0; i < this.m_contactBuffer.count; ++i) { +var n = this.m_contactBuffer.data[i]; +e.BeginContactParticleParticle(this, n); +} +throw new Error(); +} +}; +n.b2ParticleContactIsZombie = function(e) { +return (e.flags & t.b2ParticleFlag.b2_zombieParticle) === t.b2ParticleFlag.b2_zombieParticle; +}; +n.prototype.UpdateContacts = function(t) { +this.UpdateProxies(this.m_proxyBuffer); +this.SortProxies(this.m_proxyBuffer); +var e = new n.b2ParticlePairSet(); +this.NotifyContactListenerPreContact(e); +this.FindContacts(this.m_contactBuffer); +this.FilterContacts(this.m_contactBuffer); +this.NotifyContactListenerPostContact(e); +t && this.m_contactBuffer.RemoveIf(n.b2ParticleContactIsZombie); +}; +n.prototype.NotifyBodyContactListenerPreContact = function(t) { +if (null !== this.GetFixtureContactListener()) { +t.Initialize(this.m_bodyContactBuffer, this.m_flagsBuffer); +throw new Error(); +} +}; +n.prototype.NotifyBodyContactListenerPostContact = function(t) { +var e = this.GetFixtureContactListener(); +if (null !== e) { +for (var i = 0; i < this.m_bodyContactBuffer.count; i++) { +var n = this.m_bodyContactBuffer.data[i]; +e.BeginContactFixtureParticle(this, n); +} +throw new Error(); +} +}; +n.prototype.UpdateBodyContacts = function() { +var t = n.UpdateBodyContacts_s_aabb, e = new n.FixtureParticleSet(); +this.NotifyBodyContactListenerPreContact(e); +if (this.m_stuckThreshold > 0) { +if (!this.m_bodyContactCountBuffer.data) throw new Error(); +if (!this.m_lastBodyContactStepBuffer.data) throw new Error(); +if (!this.m_consecutiveContactStepsBuffer.data) throw new Error(); +for (var i = this.GetParticleCount(), r = 0; r < i; r++) { +this.m_bodyContactCountBuffer.data[r] = 0; +this.m_timestamp > this.m_lastBodyContactStepBuffer.data[r] + 1 && (this.m_consecutiveContactStepsBuffer.data[r] = 0); +} +} +this.m_bodyContactBuffer.SetCount(0); +this.m_stuckParticleBuffer.SetCount(0); +var s = t; +this.ComputeAABB(s); +var o = new n.UpdateBodyContactsCallback(this, this.GetFixtureContactFilter()); +this.m_world.QueryAABB(o, s); +this.m_def.strictContactCheck && this.RemoveSpuriousBodyContacts(); +this.NotifyBodyContactListenerPostContact(e); +}; +n.prototype.Solve = function(e) { +var i = n.Solve_s_subStep; +if (0 !== this.m_count) { +this.m_expirationTimeBuffer.data && this.SolveLifetimes(e); +this.m_allParticleFlags & t.b2ParticleFlag.b2_zombieParticle && this.SolveZombie(); +this.m_needsUpdateAllParticleFlags && this.UpdateAllParticleFlags(); +this.m_needsUpdateAllGroupFlags && this.UpdateAllGroupFlags(); +if (!this.m_paused) for (this.m_iterationIndex = 0; this.m_iterationIndex < e.particleIterations; this.m_iterationIndex++) { +++this.m_timestamp; +var r = i.Copy(e); +r.dt /= e.particleIterations; +r.inv_dt *= e.particleIterations; +this.UpdateContacts(!1); +this.UpdateBodyContacts(); +this.ComputeWeight(); +this.m_allGroupFlags & t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth && this.ComputeDepth(); +this.m_allParticleFlags & t.b2ParticleFlag.b2_reactiveParticle && this.UpdatePairsAndTriadsWithReactiveParticles(); +this.m_hasForce && this.SolveForce(r); +this.m_allParticleFlags & t.b2ParticleFlag.b2_viscousParticle && this.SolveViscous(); +this.m_allParticleFlags & t.b2ParticleFlag.b2_repulsiveParticle && this.SolveRepulsive(r); +this.m_allParticleFlags & t.b2ParticleFlag.b2_powderParticle && this.SolvePowder(r); +this.m_allParticleFlags & t.b2ParticleFlag.b2_tensileParticle && this.SolveTensile(r); +this.m_allGroupFlags & t.b2ParticleGroupFlag.b2_solidParticleGroup && this.SolveSolid(r); +this.m_allParticleFlags & t.b2ParticleFlag.b2_colorMixingParticle && this.SolveColorMixing(); +this.SolveGravity(r); +this.m_allParticleFlags & t.b2ParticleFlag.b2_staticPressureParticle && this.SolveStaticPressure(r); +this.SolvePressure(r); +this.SolveDamping(r); +this.m_allParticleFlags & n.k_extraDampingFlags && this.SolveExtraDamping(); +this.m_allParticleFlags & t.b2ParticleFlag.b2_elasticParticle && this.SolveElastic(r); +this.m_allParticleFlags & t.b2ParticleFlag.b2_springParticle && this.SolveSpring(r); +this.LimitVelocity(r); +this.m_allGroupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup && this.SolveRigidDamping(); +this.m_allParticleFlags & t.b2ParticleFlag.b2_barrierParticle && this.SolveBarrier(r); +this.SolveCollision(r); +this.m_allGroupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup && this.SolveRigid(r); +this.m_allParticleFlags & t.b2ParticleFlag.b2_wallParticle && this.SolveWall(); +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var s = 0; s < this.m_count; s++) this.m_positionBuffer.data[s].SelfMulAdd(r.dt, this.m_velocityBuffer.data[s]); +} +} +}; +n.prototype.SolveCollision = function(t) { +var e = n.SolveCollision_s_aabb; +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, o = e; +o.lowerBound.x = +i; +o.lowerBound.y = +i; +o.upperBound.x = -i; +o.upperBound.y = -i; +for (var a = 0; a < this.m_count; a++) { +var c = s[a], l = r[a], h = l.x + t.dt * c.x, u = l.y + t.dt * c.y; +o.lowerBound.x = g(o.lowerBound.x, g(l.x, h)); +o.lowerBound.y = g(o.lowerBound.y, g(l.y, u)); +o.upperBound.x = x(o.upperBound.x, x(l.x, h)); +o.upperBound.y = x(o.upperBound.y, x(l.y, u)); +} +var _ = new n.SolveCollisionCallback(this, t); +this.m_world.QueryAABB(_, o); +}; +n.prototype.LimitVelocity = function(t) { +if (!this.m_velocityBuffer.data) throw new Error(); +for (var e = this.m_velocityBuffer.data, i = this.GetCriticalVelocitySquared(t), n = 0; n < this.m_count; n++) { +var r = e[n], s = P.DotVV(r, r); +s > i && r.SelfMul(w(i / s)); +} +}; +n.prototype.SolveGravity = function(t) { +if (!this.m_velocityBuffer.data) throw new Error(); +for (var e = n.SolveGravity_s_gravity, i = this.m_velocityBuffer.data, r = P.MulSV(t.dt * this.m_def.gravityScale, this.m_world.GetGravity(), e), s = 0; s < this.m_count; s++) i[s].SelfAdd(r); +}; +n.prototype.SolveBarrier = function(e) { +var i = n.SolveBarrier_s_aabb, r = n.SolveBarrier_s_va, s = n.SolveBarrier_s_vb, o = n.SolveBarrier_s_pba, a = n.SolveBarrier_s_vba, c = n.SolveBarrier_s_vc, l = n.SolveBarrier_s_pca, h = n.SolveBarrier_s_vca, u = n.SolveBarrier_s_qba, _ = n.SolveBarrier_s_qca, f = n.SolveBarrier_s_dv, d = n.SolveBarrier_s_f; +if (!this.m_flagsBuffer.data) throw new Error(); +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var m = this.m_positionBuffer.data, p = this.m_velocityBuffer.data, v = 0; v < this.m_count; v++) { +0 != (this.m_flagsBuffer.data[v] & n.k_barrierWallFlags) && p[v].SetZero(); +} +for (var y = 2.5 * e.dt, g = this.GetParticleMass(), x = 0; x < this.m_pairBuffer.count; x++) { +var C = this.m_pairBuffer.data[x]; +if (C.flags & t.b2ParticleFlag.b2_barrierParticle) { +var b = C.indexA, A = C.indexB, S = m[b], T = m[A], E = i; +P.MinV(S, T, E.lowerBound); +P.MaxV(S, T, E.upperBound); +for (var M = this.m_groupBuffer[b], B = this.m_groupBuffer[A], D = this.GetLinearVelocity(M, b, S, r), I = this.GetLinearVelocity(B, A, T, s), R = P.SubVV(T, S, o), L = P.SubVV(I, D, a), F = this.GetInsideBoundsEnumerator(E), O = void 0; (O = F.GetNext()) >= 0; ) { +var V = m[O], N = this.m_groupBuffer[O]; +if (M !== N && B !== N) { +var k = this.GetLinearVelocity(N, O, V, c), z = P.SubVV(V, S, l), G = P.SubVV(k, D, h), U = P.CrossVV(L, G), j = P.CrossVV(R, G) - P.CrossVV(z, L), W = P.CrossVV(R, z), H = void 0, q = void 0, X = u, Y = _; +if (0 === U) { +if (0 === j) continue; +if (!((q = -W / j) >= 0 && q < y)) continue; +P.AddVMulSV(R, q, L, X); +P.AddVMulSV(z, q, G, Y); +if (!((H = P.DotVV(X, Y) / P.DotVV(X, X)) >= 0 && H <= 1)) continue; +} else { +var J = j * j - 4 * W * U; +if (J < 0) continue; +var Z = w(J), K = (-j - Z) / (2 * U), Q = (-j + Z) / (2 * U); +if (K > Q) { +var $ = K; +K = Q; +Q = $; +} +q = K; +P.AddVMulSV(R, q, L, X); +P.AddVMulSV(z, q, G, Y); +H = P.DotVV(X, Y) / P.DotVV(X, X); +if (!(q >= 0 && q < y && H >= 0 && H <= 1)) { +if (!((q = Q) >= 0 && q < y)) continue; +P.AddVMulSV(R, q, L, X); +P.AddVMulSV(z, q, G, Y); +if (!((H = P.DotVV(X, Y) / P.DotVV(X, X)) >= 0 && H <= 1)) continue; +} +} +var tt = f; +tt.x = D.x + H * L.x - k.x; +tt.y = D.y + H * L.y - k.y; +var et = P.MulSV(g, tt, d); +if (N && this.IsRigidGroup(N)) { +var it = N.GetMass(), nt = N.GetInertia(); +it > 0 && N.m_linearVelocity.SelfMulAdd(1 / it, et); +nt > 0 && (N.m_angularVelocity += P.CrossVV(P.SubVV(V, N.GetCenter(), P.s_t0), et) / nt); +} else p[O].SelfAdd(tt); +this.ParticleApplyForce(O, et.SelfMul(-e.inv_dt)); +} +} +} +} +}; +n.prototype.SolveStaticPressure = function(e) { +if (!this.m_flagsBuffer.data) throw new Error(); +this.m_staticPressureBuffer = this.RequestBuffer(this.m_staticPressureBuffer); +for (var i = this.GetCriticalPressure(e), n = this.m_def.staticPressureStrength * i, r = .25 * i, s = this.m_def.staticPressureRelaxation, o = 0; o < this.m_def.staticPressureIterations; o++) { +for (var a = 0; a < this.m_count; a++) this.m_accumulationBuffer[a] = 0; +for (var c = 0; c < this.m_contactBuffer.count; c++) { +var l = this.m_contactBuffer.data[c]; +if (l.flags & t.b2ParticleFlag.b2_staticPressureParticle) { +var h = l.indexA, u = l.indexB, _ = l.weight; +this.m_accumulationBuffer[h] += _ * this.m_staticPressureBuffer[u]; +this.m_accumulationBuffer[u] += _ * this.m_staticPressureBuffer[h]; +} +} +for (a = 0; a < this.m_count; a++) { +_ = this.m_weightBuffer[a]; +if (this.m_flagsBuffer.data[a] & t.b2ParticleFlag.b2_staticPressureParticle) { +var f = (this.m_accumulationBuffer[a] + n * (_ - 1)) / (_ + s); +this.m_staticPressureBuffer[a] = C(f, 0, r); +} else this.m_staticPressureBuffer[a] = 0; +} +} +}; +n.prototype.ComputeWeight = function() { +for (var t = 0; t < this.m_count; t++) this.m_weightBuffer[t] = 0; +for (t = 0; t < this.m_bodyContactBuffer.count; t++) { +var e = (n = this.m_bodyContactBuffer.data[t]).index, i = n.weight; +this.m_weightBuffer[e] += i; +} +for (t = 0; t < this.m_contactBuffer.count; t++) { +e = (n = this.m_contactBuffer.data[t]).indexA; +var n, r = n.indexB; +i = n.weight; +this.m_weightBuffer[e] += i; +this.m_weightBuffer[r] += i; +} +}; +n.prototype.SolvePressure = function(e) { +var i = n.SolvePressure_s_f; +if (!this.m_flagsBuffer.data) throw new Error(); +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, o = this.GetCriticalPressure(e), a = this.m_def.pressureStrength * o, c = .25 * o, l = 0; l < this.m_count; l++) { +var h = this.m_weightBuffer[l], u = a * x(0, h - 1); +this.m_accumulationBuffer[l] = g(u, c); +} +if (this.m_allParticleFlags & n.k_noPressureFlags) for (l = 0; l < this.m_count; l++) this.m_flagsBuffer.data[l] & n.k_noPressureFlags && (this.m_accumulationBuffer[l] = 0); +if (this.m_allParticleFlags & t.b2ParticleFlag.b2_staticPressureParticle) for (l = 0; l < this.m_count; l++) this.m_flagsBuffer.data[l] & t.b2ParticleFlag.b2_staticPressureParticle && (this.m_accumulationBuffer[l] += this.m_staticPressureBuffer[l]); +for (var _ = e.dt / (this.m_def.density * this.m_particleDiameter), f = this.GetParticleInvMass(), d = 0; d < this.m_bodyContactBuffer.count; d++) { +var m = (A = this.m_bodyContactBuffer.data[d]).index, p = A.body, v = (h = A.weight, +A.mass), y = A.normal, C = r[m], b = (u = this.m_accumulationBuffer[m] + a * h, +P.MulSV(_ * h * v * u, y, i)); +s[m].SelfMulSub(f, b); +p.ApplyLinearImpulse(b, C, !0); +} +for (d = 0; d < this.m_contactBuffer.count; d++) { +var A; +m = (A = this.m_contactBuffer.data[d]).indexA, p = A.indexB, h = A.weight, y = A.normal, +u = this.m_accumulationBuffer[m] + this.m_accumulationBuffer[p], b = P.MulSV(_ * h * u, y, i); +s[m].SelfSub(b); +s[p].SelfAdd(b); +} +}; +n.prototype.SolveDamping = function(t) { +var e = n.SolveDamping_s_v, i = n.SolveDamping_s_f; +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, o = this.m_def.dampingStrength, a = 1 / this.GetCriticalVelocity(t), c = this.GetParticleInvMass(), l = 0; l < this.m_bodyContactBuffer.count; l++) { +var h = (C = this.m_bodyContactBuffer.data[l]).index, u = C.body, _ = C.weight, f = C.mass, d = C.normal, m = r[h], p = P.SubVV(u.GetLinearVelocityFromWorldPoint(m, P.s_t0), s[h], e); +if ((b = P.DotVV(p, d)) < 0) { +var v = x(o * _, g(-a * b, .5)), y = P.MulSV(v * f * b, d, i); +s[h].SelfMulAdd(c, y); +u.ApplyLinearImpulse(y.SelfNeg(), m, !0); +} +} +for (l = 0; l < this.m_contactBuffer.count; l++) { +var C, b; +h = (C = this.m_contactBuffer.data[l]).indexA, u = C.indexB, _ = C.weight, d = C.normal, +p = P.SubVV(s[u], s[h], e); +if ((b = P.DotVV(p, d)) < 0) { +v = x(o * _, g(-a * b, .5)), y = P.MulSV(v * b, d, i); +s[h].SelfAdd(y); +s[u].SelfSub(y); +} +} +}; +n.prototype.SolveRigidDamping = function() { +var t = n.SolveRigidDamping_s_t0, e = n.SolveRigidDamping_s_t1, i = n.SolveRigidDamping_s_p, r = n.SolveRigidDamping_s_v, s = [ 0 ], o = [ 0 ], a = [ 0 ], c = [ 0 ], l = [ 0 ], h = [ 0 ]; +if (!this.m_positionBuffer.data) throw new Error(); +for (var u = this.m_positionBuffer.data, _ = this.m_def.dampingStrength, f = 0; f < this.m_bodyContactBuffer.count; f++) { +var d = (b = this.m_bodyContactBuffer.data[f]).index; +if ((A = this.m_groupBuffer[d]) && this.IsRigidGroup(A)) { +var m = b.body, p = b.normal, v = b.weight, y = u[d], x = P.SubVV(m.GetLinearVelocityFromWorldPoint(y, t), A.GetLinearVelocityFromWorldPoint(y, e), r); +if ((E = P.DotVV(x, p)) < 0) { +this.InitDampingParameterWithRigidGroupOrParticle(s, o, a, !0, A, d, y, p); +this.InitDampingParameter(c, l, h, m.GetMass(), m.GetInertia() - m.GetMass() * m.GetLocalCenter().LengthSquared(), m.GetWorldCenter(), y, p); +var C = _ * g(v, 1) * this.ComputeDampingImpulse(s[0], o[0], a[0], c[0], l[0], h[0], E); +this.ApplyDamping(s[0], o[0], a[0], !0, A, d, C, p); +m.ApplyLinearImpulse(P.MulSV(-C, p, P.s_t0), y, !0); +} +} +} +for (f = 0; f < this.m_contactBuffer.count; f++) { +d = (b = this.m_contactBuffer.data[f]).indexA, m = b.indexB, p = b.normal, v = b.weight; +var b, A = this.m_groupBuffer[d], S = this.m_groupBuffer[m], w = this.IsRigidGroup(A), T = this.IsRigidGroup(S); +if (A !== S && (w || T)) { +var E; +y = P.MidVV(u[d], u[m], i), x = P.SubVV(this.GetLinearVelocity(S, m, y, t), this.GetLinearVelocity(A, d, y, e), r); +if ((E = P.DotVV(x, p)) < 0) { +this.InitDampingParameterWithRigidGroupOrParticle(s, o, a, w, A, d, y, p); +this.InitDampingParameterWithRigidGroupOrParticle(c, l, h, T, S, m, y, p); +C = _ * v * this.ComputeDampingImpulse(s[0], o[0], a[0], c[0], l[0], h[0], E); +this.ApplyDamping(s[0], o[0], a[0], w, A, d, C, p); +this.ApplyDamping(c[0], l[0], h[0], T, S, m, -C, p); +} +} +} +}; +n.prototype.SolveExtraDamping = function() { +var t = n.SolveExtraDamping_s_v, e = n.SolveExtraDamping_s_f; +if (!this.m_flagsBuffer.data) throw new Error(); +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var i = this.m_velocityBuffer.data, r = this.m_positionBuffer.data, s = this.GetParticleInvMass(), o = 0; o < this.m_bodyContactBuffer.count; o++) { +var a = this.m_bodyContactBuffer.data[o], c = a.index; +if (this.m_flagsBuffer.data[c] & n.k_extraDampingFlags) { +var l = a.body, h = a.mass, u = a.normal, _ = r[c], f = P.SubVV(l.GetLinearVelocityFromWorldPoint(_, P.s_t0), i[c], t), d = P.DotVV(f, u); +if (d < 0) { +var m = P.MulSV(.5 * h * d, u, e); +i[c].SelfMulAdd(s, m); +l.ApplyLinearImpulse(m.SelfNeg(), _, !0); +} +} +} +}; +n.prototype.SolveWall = function() { +if (!this.m_flagsBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var e = this.m_velocityBuffer.data, i = 0; i < this.m_count; i++) this.m_flagsBuffer.data[i] & t.b2ParticleFlag.b2_wallParticle && e[i].SetZero(); +}; +n.prototype.SolveRigid = function(e) { +var i = n.SolveRigid_s_position, r = n.SolveRigid_s_rotation, s = n.SolveRigid_s_transform, o = n.SolveRigid_s_velocityTransform; +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var a = this.m_positionBuffer.data, c = this.m_velocityBuffer.data, l = this.m_groupList; l; l = l.GetNext()) if (l.m_groupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup) { +l.UpdateStatistics(); +var h = r; +h.SetAngle(e.dt * l.m_angularVelocity); +var u = P.AddVV(l.m_center, P.SubVV(P.MulSV(e.dt, l.m_linearVelocity, P.s_t0), V.MulRV(h, l.m_center, P.s_t1), P.s_t0), i), _ = s; +_.SetPositionRotation(u, h); +N.MulXX(_, l.m_transform, l.m_transform); +var f = o; +f.p.x = e.inv_dt * _.p.x; +f.p.y = e.inv_dt * _.p.y; +f.q.s = e.inv_dt * _.q.s; +f.q.c = e.inv_dt * (_.q.c - 1); +for (var d = l.m_firstIndex; d < l.m_lastIndex; d++) N.MulXV(f, a[d], c[d]); +} +}; +n.prototype.SolveElastic = function(e) { +var i = n.SolveElastic_s_pa, r = n.SolveElastic_s_pb, s = n.SolveElastic_s_pc, o = n.SolveElastic_s_r, a = n.SolveElastic_s_t0; +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var c = this.m_positionBuffer.data, l = this.m_velocityBuffer.data, h = e.inv_dt * this.m_def.elasticStrength, u = 0; u < this.m_triadBuffer.count; u++) { +var _ = this.m_triadBuffer.data[u]; +if (_.flags & t.b2ParticleFlag.b2_elasticParticle) { +var f = _.indexA, d = _.indexB, m = _.indexC, p = _.pa, v = _.pb, y = _.pc, g = i.Copy(c[f]), x = r.Copy(c[d]), C = s.Copy(c[m]), b = l[f], A = l[d], w = l[m]; +g.SelfMulAdd(e.dt, b); +x.SelfMulAdd(e.dt, A); +C.SelfMulAdd(e.dt, w); +var T = (g.x + x.x + C.x) / 3, E = (g.y + x.y + C.y) / 3; +g.x -= T; +g.y -= E; +x.x -= T; +x.y -= E; +C.x -= T; +C.y -= E; +var M = o; +M.s = P.CrossVV(p, g) + P.CrossVV(v, x) + P.CrossVV(y, C); +M.c = P.DotVV(p, g) + P.DotVV(v, x) + P.DotVV(y, C); +var B = S(M.s * M.s + M.c * M.c); +isFinite(B) || (B = 198177537e11); +M.s *= B; +M.c *= B; +var D = h * _.strength; +V.MulRV(M, p, a); +P.SubVV(a, g, a); +P.MulSV(D, a, a); +b.SelfAdd(a); +V.MulRV(M, v, a); +P.SubVV(a, x, a); +P.MulSV(D, a, a); +A.SelfAdd(a); +V.MulRV(M, y, a); +P.SubVV(a, C, a); +P.MulSV(D, a, a); +w.SelfAdd(a); +} +} +}; +n.prototype.SolveSpring = function(e) { +var i = n.SolveSpring_s_pa, r = n.SolveSpring_s_pb, s = n.SolveSpring_s_d, o = n.SolveSpring_s_f; +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var a = this.m_positionBuffer.data, c = this.m_velocityBuffer.data, l = e.inv_dt * this.m_def.springStrength, h = 0; h < this.m_pairBuffer.count; h++) { +var u = this.m_pairBuffer.data[h]; +if (u.flags & t.b2ParticleFlag.b2_springParticle) { +var _ = u.indexA, f = u.indexB, d = i.Copy(a[_]), m = r.Copy(a[f]), p = c[_], v = c[f]; +d.SelfMulAdd(e.dt, p); +m.SelfMulAdd(e.dt, v); +var y = P.SubVV(m, d, s), g = u.distance, x = y.Length(), C = l * u.strength, b = P.MulSV(C * (g - x) / x, y, o); +p.SelfSub(b); +v.SelfAdd(b); +} +} +}; +n.prototype.SolveTensile = function(e) { +var i = n.SolveTensile_s_weightedNormal, r = n.SolveTensile_s_s, s = n.SolveTensile_s_f; +if (!this.m_velocityBuffer.data) throw new Error(); +for (var o = this.m_velocityBuffer.data, a = 0; a < this.m_count; a++) { +this.m_accumulation2Buffer[a] = new P(); +this.m_accumulation2Buffer[a].SetZero(); +} +for (var c = 0; c < this.m_contactBuffer.count; c++) { +if ((y = this.m_contactBuffer.data[c]).flags & t.b2ParticleFlag.b2_tensileParticle) { +var l = y.indexA, h = y.indexB, u = y.weight, _ = y.normal, f = P.MulSV((1 - u) * u, _, i); +this.m_accumulation2Buffer[l].SelfSub(f); +this.m_accumulation2Buffer[h].SelfAdd(f); +} +} +var d = this.GetCriticalVelocity(e), m = this.m_def.surfaceTensionPressureStrength * d, p = this.m_def.surfaceTensionNormalStrength * d, v = .5 * d; +for (c = 0; c < this.m_contactBuffer.count; c++) { +var y; +if ((y = this.m_contactBuffer.data[c]).flags & t.b2ParticleFlag.b2_tensileParticle) { +l = y.indexA, h = y.indexB, u = y.weight, _ = y.normal; +var x = this.m_weightBuffer[l] + this.m_weightBuffer[h], C = P.SubVV(this.m_accumulation2Buffer[h], this.m_accumulation2Buffer[l], r), b = g(m * (x - 2) + p * P.DotVV(C, _), v) * u, A = P.MulSV(b, _, s); +o[l].SelfSub(A); +o[h].SelfAdd(A); +} +} +}; +n.prototype.SolveViscous = function() { +var e = n.SolveViscous_s_v, i = n.SolveViscous_s_f; +if (!this.m_flagsBuffer.data) throw new Error(); +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, o = this.m_def.viscousStrength, a = this.GetParticleInvMass(), c = 0; c < this.m_bodyContactBuffer.count; c++) { +var l = (p = this.m_bodyContactBuffer.data[c]).index; +if (this.m_flagsBuffer.data[l] & t.b2ParticleFlag.b2_viscousParticle) { +var h = p.body, u = p.weight, _ = p.mass, f = r[l], d = P.SubVV(h.GetLinearVelocityFromWorldPoint(f, P.s_t0), s[l], e), m = P.MulSV(o * _ * u, d, i); +s[l].SelfMulAdd(a, m); +h.ApplyLinearImpulse(m.SelfNeg(), f, !0); +} +} +for (c = 0; c < this.m_contactBuffer.count; c++) { +var p; +if ((p = this.m_contactBuffer.data[c]).flags & t.b2ParticleFlag.b2_viscousParticle) { +l = p.indexA, h = p.indexB, u = p.weight, d = P.SubVV(s[h], s[l], e), m = P.MulSV(o * u, d, i); +s[l].SelfAdd(m); +s[h].SelfSub(m); +} +} +}; +n.prototype.SolveRepulsive = function(e) { +var i = n.SolveRepulsive_s_f; +if (!this.m_velocityBuffer.data) throw new Error(); +for (var r = this.m_velocityBuffer.data, s = this.m_def.repulsiveStrength * this.GetCriticalVelocity(e), o = 0; o < this.m_contactBuffer.count; o++) { +var a = this.m_contactBuffer.data[o]; +if (a.flags & t.b2ParticleFlag.b2_repulsiveParticle) { +var c = a.indexA, l = a.indexB; +if (this.m_groupBuffer[c] !== this.m_groupBuffer[l]) { +var h = a.weight, u = a.normal, _ = P.MulSV(s * h, u, i); +r[c].SelfSub(_); +r[l].SelfAdd(_); +} +} +} +}; +n.prototype.SolvePowder = function(e) { +var i = n.SolvePowder_s_f; +if (!this.m_flagsBuffer.data) throw new Error(); +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, o = this.m_def.powderStrength * this.GetCriticalVelocity(e), a = this.GetParticleInvMass(), c = 0; c < this.m_bodyContactBuffer.count; c++) { +var l = (m = this.m_bodyContactBuffer.data[c]).index; +if (this.m_flagsBuffer.data[l] & t.b2ParticleFlag.b2_powderParticle) { +if ((p = m.weight) > .25) { +var h = m.body, u = m.mass, _ = r[l], f = m.normal, d = P.MulSV(o * u * (p - .25), f, i); +s[l].SelfMulSub(a, d); +h.ApplyLinearImpulse(d, _, !0); +} +} +} +for (c = 0; c < this.m_contactBuffer.count; c++) { +var m; +if ((m = this.m_contactBuffer.data[c]).flags & t.b2ParticleFlag.b2_powderParticle) { +var p; +if ((p = m.weight) > .25) { +l = m.indexA, h = m.indexB, f = m.normal, d = P.MulSV(o * (p - .25), f, i); +s[l].SelfSub(d); +s[h].SelfAdd(d); +} +} +} +}; +n.prototype.SolveSolid = function(t) { +var e = n.SolveSolid_s_f; +if (!this.m_velocityBuffer.data) throw new Error(); +var i = this.m_velocityBuffer.data; +this.m_depthBuffer = this.RequestBuffer(this.m_depthBuffer); +for (var r = t.inv_dt * this.m_def.ejectionStrength, s = 0; s < this.m_contactBuffer.count; s++) { +var o = this.m_contactBuffer.data[s], a = o.indexA, c = o.indexB; +if (this.m_groupBuffer[a] !== this.m_groupBuffer[c]) { +var l = o.weight, h = o.normal, u = this.m_depthBuffer[a] + this.m_depthBuffer[c], _ = P.MulSV(r * u * l, h, e); +i[a].SelfSub(_); +i[c].SelfAdd(_); +} +} +}; +n.prototype.SolveForce = function(t) { +if (!this.m_velocityBuffer.data) throw new Error(); +for (var e = this.m_velocityBuffer.data, i = t.dt * this.GetParticleInvMass(), n = 0; n < this.m_count; n++) e[n].SelfMulAdd(i, this.m_forceBuffer[n]); +this.m_hasForce = !1; +}; +n.prototype.SolveColorMixing = function() { +if (!this.m_flagsBuffer.data) throw new Error(); +if (!this.m_colorBuffer.data) throw new Error(); +var e = .5 * this.m_def.colorMixingStrength; +if (e) for (var i = 0; i < this.m_contactBuffer.count; i++) { +var n = this.m_contactBuffer.data[i], r = n.indexA, s = n.indexB; +if (this.m_flagsBuffer.data[r] & this.m_flagsBuffer.data[s] & t.b2ParticleFlag.b2_colorMixingParticle) { +var o = this.m_colorBuffer.data[r], a = this.m_colorBuffer.data[s]; +z.MixColors(o, a, e); +} +} +}; +n.prototype.SolveZombie = function() { +if (!this.m_flagsBuffer.data) throw new Error(); +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +for (var e = 0, i = [], n = 0; n < this.m_count; n++) i[n] = u; +var r = 0; +for (n = 0; n < this.m_count; n++) { +var s = this.m_flagsBuffer.data[n]; +if (s & t.b2ParticleFlag.b2_zombieParticle) { +var o = this.m_world.m_destructionListener; +s & t.b2ParticleFlag.b2_destructionListenerParticle && o && o.SayGoodbyeParticle(this, n); +if (this.m_handleIndexBuffer.data) { +if (a = this.m_handleIndexBuffer.data[n]) { +a.SetIndex(u); +this.m_handleIndexBuffer.data[n] = null; +} +} +i[n] = u; +} else { +i[n] = e; +if (n !== e) { +if (this.m_handleIndexBuffer.data) { +var a; +(a = this.m_handleIndexBuffer.data[n]) && a.SetIndex(e); +this.m_handleIndexBuffer.data[e] = a; +} +this.m_flagsBuffer.data[e] = this.m_flagsBuffer.data[n]; +this.m_lastBodyContactStepBuffer.data && (this.m_lastBodyContactStepBuffer.data[e] = this.m_lastBodyContactStepBuffer.data[n]); +this.m_bodyContactCountBuffer.data && (this.m_bodyContactCountBuffer.data[e] = this.m_bodyContactCountBuffer.data[n]); +this.m_consecutiveContactStepsBuffer.data && (this.m_consecutiveContactStepsBuffer.data[e] = this.m_consecutiveContactStepsBuffer.data[n]); +this.m_positionBuffer.data[e].Copy(this.m_positionBuffer.data[n]); +this.m_velocityBuffer.data[e].Copy(this.m_velocityBuffer.data[n]); +this.m_groupBuffer[e] = this.m_groupBuffer[n]; +this.m_hasForce && this.m_forceBuffer[e].Copy(this.m_forceBuffer[n]); +this.m_staticPressureBuffer && (this.m_staticPressureBuffer[e] = this.m_staticPressureBuffer[n]); +this.m_depthBuffer && (this.m_depthBuffer[e] = this.m_depthBuffer[n]); +this.m_colorBuffer.data && this.m_colorBuffer.data[e].Copy(this.m_colorBuffer.data[n]); +this.m_userDataBuffer.data && (this.m_userDataBuffer.data[e] = this.m_userDataBuffer.data[n]); +this.m_expirationTimeBuffer.data && (this.m_expirationTimeBuffer.data[e] = this.m_expirationTimeBuffer.data[n]); +} +e++; +r |= s; +} +} +for (var c = function(t) { +return t.index < 0; +}, l = function(t) { +return t.indexA < 0 || t.indexB < 0; +}, h = function(t) { +return t.index < 0; +}, _ = function(t) { +return t.indexA < 0 || t.indexB < 0; +}, f = function(t) { +return t.indexA < 0 || t.indexB < 0 || t.indexC < 0; +}, d = 0; d < this.m_proxyBuffer.count; d++) { +var m = this.m_proxyBuffer.data[d]; +m.index = i[m.index]; +} +this.m_proxyBuffer.RemoveIf(c); +for (d = 0; d < this.m_contactBuffer.count; d++) { +(p = this.m_contactBuffer.data[d]).indexA = i[p.indexA]; +p.indexB = i[p.indexB]; +} +this.m_contactBuffer.RemoveIf(l); +for (d = 0; d < this.m_bodyContactBuffer.count; d++) { +var p; +(p = this.m_bodyContactBuffer.data[d]).index = i[p.index]; +} +this.m_bodyContactBuffer.RemoveIf(h); +for (d = 0; d < this.m_pairBuffer.count; d++) { +var v = this.m_pairBuffer.data[d]; +v.indexA = i[v.indexA]; +v.indexB = i[v.indexB]; +} +this.m_pairBuffer.RemoveIf(_); +for (d = 0; d < this.m_triadBuffer.count; d++) { +var y = this.m_triadBuffer.data[d]; +y.indexA = i[y.indexA]; +y.indexB = i[y.indexB]; +y.indexC = i[y.indexC]; +} +this.m_triadBuffer.RemoveIf(f); +if (this.m_indexByExpirationTimeBuffer.data) for (var C = 0, b = 0; b < this.m_count; b++) { +var A = i[this.m_indexByExpirationTimeBuffer.data[b]]; +A !== u && (this.m_indexByExpirationTimeBuffer.data[C++] = A); +} +for (var S = this.m_groupList; S; S = S.GetNext()) { +var w = e, T = 0, E = !1; +for (n = S.m_firstIndex; n < S.m_lastIndex; n++) { +var M = i[n]; +if (M >= 0) { +w = g(w, M); +T = x(T, M + 1); +} else E = !0; +} +if (w < T) { +S.m_firstIndex = w; +S.m_lastIndex = T; +E && S.m_groupFlags & t.b2ParticleGroupFlag.b2_solidParticleGroup && this.SetGroupFlags(S, S.m_groupFlags | t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth); +} else { +S.m_firstIndex = 0; +S.m_lastIndex = 0; +S.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupCanBeEmpty || this.SetGroupFlags(S, S.m_groupFlags | t.b2ParticleGroupFlag.b2_particleGroupWillBeDestroyed); +} +} +this.m_count = e; +this.m_allParticleFlags = r; +this.m_needsUpdateAllParticleFlags = !1; +for (S = this.m_groupList; S; ) { +var B = S.GetNext(); +S.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupWillBeDestroyed && this.DestroyParticleGroup(S); +S = B; +} +}; +n.prototype.SolveLifetimes = function(t) { +if (!this.m_expirationTimeBuffer.data) throw new Error(); +if (!this.m_indexByExpirationTimeBuffer.data) throw new Error(); +this.m_timeElapsed = this.LifetimeToExpirationTime(t.dt); +var e = this.GetQuantizedTimeElapsed(), i = this.m_expirationTimeBuffer.data, n = this.m_indexByExpirationTimeBuffer.data, r = this.GetParticleCount(); +if (this.m_expirationTimeBufferRequiresSorting) { +Tn(n, 0, r, (function(t, e) { +var n = i[t], r = i[e], s = n <= 0; +return s === r <= 0 ? n > r : s; +})); +this.m_expirationTimeBufferRequiresSorting = !1; +} +for (var s = r - 1; s >= 0; --s) { +var o = n[s], a = i[o]; +if (e < a || a <= 0) break; +this.DestroyParticle(o); +} +}; +n.prototype.RotateBuffer = function(t, e, i) { +if (t !== e && e !== i) { +if (!this.m_flagsBuffer.data) throw new Error(); +if (!this.m_positionBuffer.data) throw new Error(); +if (!this.m_velocityBuffer.data) throw new Error(); +In(this.m_flagsBuffer.data, t, e, i); +this.m_lastBodyContactStepBuffer.data && In(this.m_lastBodyContactStepBuffer.data, t, e, i); +this.m_bodyContactCountBuffer.data && In(this.m_bodyContactCountBuffer.data, t, e, i); +this.m_consecutiveContactStepsBuffer.data && In(this.m_consecutiveContactStepsBuffer.data, t, e, i); +In(this.m_positionBuffer.data, t, e, i); +In(this.m_velocityBuffer.data, t, e, i); +In(this.m_groupBuffer, t, e, i); +this.m_hasForce && In(this.m_forceBuffer, t, e, i); +this.m_staticPressureBuffer && In(this.m_staticPressureBuffer, t, e, i); +this.m_depthBuffer && In(this.m_depthBuffer, t, e, i); +this.m_colorBuffer.data && In(this.m_colorBuffer.data, t, e, i); +this.m_userDataBuffer.data && In(this.m_userDataBuffer.data, t, e, i); +if (this.m_handleIndexBuffer.data) { +In(this.m_handleIndexBuffer.data, t, e, i); +for (var n = t; n < i; ++n) { +var r = this.m_handleIndexBuffer.data[n]; +r && r.SetIndex(f(r.GetIndex())); +} +} +if (this.m_expirationTimeBuffer.data) { +In(this.m_expirationTimeBuffer.data, t, e, i); +var s = this.GetParticleCount(); +if (!this.m_indexByExpirationTimeBuffer.data) throw new Error(); +var o = this.m_indexByExpirationTimeBuffer.data; +for (n = 0; n < s; ++n) o[n] = f(o[n]); +} +for (var a = 0; a < this.m_proxyBuffer.count; a++) { +var c = this.m_proxyBuffer.data[a]; +c.index = f(c.index); +} +for (a = 0; a < this.m_contactBuffer.count; a++) { +(l = this.m_contactBuffer.data[a]).indexA = f(l.indexA); +l.indexB = f(l.indexB); +} +for (a = 0; a < this.m_bodyContactBuffer.count; a++) { +var l; +(l = this.m_bodyContactBuffer.data[a]).index = f(l.index); +} +for (a = 0; a < this.m_pairBuffer.count; a++) { +var h = this.m_pairBuffer.data[a]; +h.indexA = f(h.indexA); +h.indexB = f(h.indexB); +} +for (a = 0; a < this.m_triadBuffer.count; a++) { +var u = this.m_triadBuffer.data[a]; +u.indexA = f(u.indexA); +u.indexB = f(u.indexB); +u.indexC = f(u.indexC); +} +for (var _ = this.m_groupList; _; _ = _.GetNext()) { +_.m_firstIndex = f(_.m_firstIndex); +_.m_lastIndex = f(_.m_lastIndex - 1) + 1; +} +} +function f(n) { +return n < t ? n : n < e ? n + i - e : n < i ? n + t - e : n; +} +}; +n.prototype.GetCriticalVelocity = function(t) { +return this.m_particleDiameter * t.inv_dt; +}; +n.prototype.GetCriticalVelocitySquared = function(t) { +var e = this.GetCriticalVelocity(t); +return e * e; +}; +n.prototype.GetCriticalPressure = function(t) { +return this.m_def.density * this.GetCriticalVelocitySquared(t); +}; +n.prototype.GetParticleStride = function() { +return .75 * this.m_particleDiameter; +}; +n.prototype.GetParticleMass = function() { +var t = this.GetParticleStride(); +return this.m_def.density * t * t; +}; +n.prototype.GetParticleInvMass = function() { +var t = this.m_inverseDiameter * (1 / .75); +return this.m_inverseDensity * t * t; +}; +n.prototype.GetFixtureContactFilter = function() { +return this.m_allParticleFlags & t.b2ParticleFlag.b2_fixtureContactFilterParticle ? this.m_world.m_contactManager.m_contactFilter : null; +}; +n.prototype.GetParticleContactFilter = function() { +return this.m_allParticleFlags & t.b2ParticleFlag.b2_particleContactFilterParticle ? this.m_world.m_contactManager.m_contactFilter : null; +}; +n.prototype.GetFixtureContactListener = function() { +return this.m_allParticleFlags & t.b2ParticleFlag.b2_fixtureContactListenerParticle ? this.m_world.m_contactManager.m_contactListener : null; +}; +n.prototype.GetParticleContactListener = function() { +return this.m_allParticleFlags & t.b2ParticleFlag.b2_particleContactListenerParticle ? this.m_world.m_contactManager.m_contactListener : null; +}; +n.prototype.SetUserOverridableBuffer = function(t, e, i) { +t.data = e; +t.userSuppliedCapacity = i; +}; +n.prototype.SetGroupFlags = function(e, i) { +var n = e.m_groupFlags; +(n ^ i) & t.b2ParticleGroupFlag.b2_solidParticleGroup && (i |= t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth); +n & ~i && (this.m_needsUpdateAllGroupFlags = !0); +if (~this.m_allGroupFlags & i) { +i & t.b2ParticleGroupFlag.b2_solidParticleGroup && (this.m_depthBuffer = this.RequestBuffer(this.m_depthBuffer)); +this.m_allGroupFlags |= i; +} +e.m_groupFlags = i; +}; +n.BodyContactCompare = function(t, e) { +return t.index === e.index ? t.weight > e.weight : t.index < e.index; +}; +n.prototype.RemoveSpuriousBodyContacts = function() { +Tn(this.m_bodyContactBuffer.data, 0, this.m_bodyContactBuffer.count, n.BodyContactCompare); +var t = n.RemoveSpuriousBodyContacts_s_n, e = n.RemoveSpuriousBodyContacts_s_pos, i = n.RemoveSpuriousBodyContacts_s_normal, r = this, s = -1, o = 0; +this.m_bodyContactBuffer.count = Mn(this.m_bodyContactBuffer.data, (function(n) { +if (n.index !== s) { +o = 0; +s = n.index; +} +if (o++ > 3) return !0; +var a = t.Copy(n.normal); +a.SelfMul(r.m_particleDiameter * (1 - n.weight)); +if (!r.m_positionBuffer.data) throw new Error(); +var l = P.AddVV(r.m_positionBuffer.data[n.index], a, e); +if (!n.fixture.TestPoint(l)) { +for (var h = n.fixture.GetShape().GetChildCount(), u = 0; u < h; u++) { +var _ = i; +if (n.fixture.ComputeDistance(l, _, u) < c) return !1; +} +return !0; +} +return !1; +}), this.m_bodyContactBuffer.count); +}; +n.prototype.DetectStuckParticle = function(t) { +if (!(this.m_stuckThreshold <= 0)) { +if (!this.m_bodyContactCountBuffer.data) throw new Error(); +if (!this.m_consecutiveContactStepsBuffer.data) throw new Error(); +if (!this.m_lastBodyContactStepBuffer.data) throw new Error(); +++this.m_bodyContactCountBuffer.data[t]; +if (2 === this.m_bodyContactCountBuffer.data[t]) { +++this.m_consecutiveContactStepsBuffer.data[t]; +this.m_consecutiveContactStepsBuffer.data[t] > this.m_stuckThreshold && (this.m_stuckParticleBuffer.data[this.m_stuckParticleBuffer.Append()] = t); +} +this.m_lastBodyContactStepBuffer.data[t] = this.m_timestamp; +} +}; +n.prototype.ValidateParticleIndex = function(t) { +return t >= 0 && t < this.GetParticleCount() && t !== u; +}; +n.prototype.GetQuantizedTimeElapsed = function() { +return Math.floor(this.m_timeElapsed / 4294967296); +}; +n.prototype.LifetimeToExpirationTime = function(t) { +return this.m_timeElapsed + Math.floor(t / this.m_def.lifetimeGranularity * 4294967296); +}; +n.prototype.ForceCanBeApplied = function(e) { +return !(e & t.b2ParticleFlag.b2_wallParticle); +}; +n.prototype.PrepareForceBuffer = function() { +if (!this.m_hasForce) { +for (var t = 0; t < this.m_count; t++) this.m_forceBuffer[t].SetZero(); +this.m_hasForce = !0; +} +}; +n.prototype.IsRigidGroup = function(e) { +return null !== e && 0 != (e.m_groupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup); +}; +n.prototype.GetLinearVelocity = function(t, e, i, n) { +if (t && this.IsRigidGroup(t)) return t.GetLinearVelocityFromWorldPoint(i, n); +if (!this.m_velocityBuffer.data) throw new Error(); +return n.Copy(this.m_velocityBuffer.data[e]); +}; +n.prototype.InitDampingParameter = function(t, e, i, n, r, s, o, a) { +t[0] = n > 0 ? 1 / n : 0; +e[0] = r > 0 ? 1 / r : 0; +i[0] = P.CrossVV(P.SubVV(o, s, P.s_t0), a); +}; +n.prototype.InitDampingParameterWithRigidGroupOrParticle = function(e, i, n, r, s, o, a, c) { +if (s && r) this.InitDampingParameter(e, i, n, s.GetMass(), s.GetInertia(), s.GetCenter(), a, c); else { +if (!this.m_flagsBuffer.data) throw new Error(); +var l = this.m_flagsBuffer.data[o]; +this.InitDampingParameter(e, i, n, l & t.b2ParticleFlag.b2_wallParticle ? 0 : this.GetParticleMass(), 0, a, a, c); +} +}; +n.prototype.ComputeDampingImpulse = function(t, e, i, n, r, s, o) { +var a = t + e * i * i + n + r * s * s; +return a > 0 ? o / a : 0; +}; +n.prototype.ApplyDamping = function(t, e, i, n, r, s, o, a) { +if (r && n) { +r.m_linearVelocity.SelfMulAdd(o * t, a); +r.m_angularVelocity += o * i * e; +} else { +if (!this.m_velocityBuffer.data) throw new Error(); +this.m_velocityBuffer.data[s].SelfMulAdd(o * t, a); +} +}; +n.xTruncBits = 12; +n.yTruncBits = 12; +n.tagBits = 32; +n.yOffset = 1 << n.yTruncBits - 1; +n.yShift = n.tagBits - n.yTruncBits; +n.xShift = n.tagBits - n.yTruncBits - n.xTruncBits; +n.xScale = 1 << n.xShift; +n.xOffset = n.xScale * (1 << n.xTruncBits - 1); +n.yMask = (1 << n.yTruncBits) - 1 << n.yShift; +n.xMask = ~n.yMask; +n.DestroyParticlesInShape_s_aabb = new Tt(); +n.CreateParticleGroup_s_transform = new N(); +n.ComputeCollisionEnergy_s_v = new P(); +n.QueryShapeAABB_s_aabb = new Tt(); +n.QueryPointAABB_s_aabb = new Tt(); +n.RayCast_s_aabb = new Tt(); +n.RayCast_s_p = new P(); +n.RayCast_s_v = new P(); +n.RayCast_s_n = new P(); +n.RayCast_s_point = new P(); +n.k_pairFlags = t.b2ParticleFlag.b2_springParticle; +n.k_triadFlags = t.b2ParticleFlag.b2_elasticParticle; +n.k_noPressureFlags = t.b2ParticleFlag.b2_powderParticle | t.b2ParticleFlag.b2_tensileParticle; +n.k_extraDampingFlags = t.b2ParticleFlag.b2_staticPressureParticle; +n.k_barrierWallFlags = t.b2ParticleFlag.b2_barrierParticle | t.b2ParticleFlag.b2_wallParticle; +n.CreateParticlesStrokeShapeForGroup_s_edge = new ii(); +n.CreateParticlesStrokeShapeForGroup_s_d = new P(); +n.CreateParticlesStrokeShapeForGroup_s_p = new P(); +n.CreateParticlesFillShapeForGroup_s_aabb = new Tt(); +n.CreateParticlesFillShapeForGroup_s_p = new P(); +n.UpdatePairsAndTriads_s_dab = new P(); +n.UpdatePairsAndTriads_s_dbc = new P(); +n.UpdatePairsAndTriads_s_dca = new P(); +n.AddContact_s_d = new P(); +n.UpdateBodyContacts_s_aabb = new Tt(); +n.Solve_s_subStep = new on(); +n.SolveCollision_s_aabb = new Tt(); +n.SolveGravity_s_gravity = new P(); +n.SolveBarrier_s_aabb = new Tt(); +n.SolveBarrier_s_va = new P(); +n.SolveBarrier_s_vb = new P(); +n.SolveBarrier_s_pba = new P(); +n.SolveBarrier_s_vba = new P(); +n.SolveBarrier_s_vc = new P(); +n.SolveBarrier_s_pca = new P(); +n.SolveBarrier_s_vca = new P(); +n.SolveBarrier_s_qba = new P(); +n.SolveBarrier_s_qca = new P(); +n.SolveBarrier_s_dv = new P(); +n.SolveBarrier_s_f = new P(); +n.SolvePressure_s_f = new P(); +n.SolveDamping_s_v = new P(); +n.SolveDamping_s_f = new P(); +n.SolveRigidDamping_s_t0 = new P(); +n.SolveRigidDamping_s_t1 = new P(); +n.SolveRigidDamping_s_p = new P(); +n.SolveRigidDamping_s_v = new P(); +n.SolveExtraDamping_s_v = new P(); +n.SolveExtraDamping_s_f = new P(); +n.SolveRigid_s_position = new P(); +n.SolveRigid_s_rotation = new V(); +n.SolveRigid_s_transform = new N(); +n.SolveRigid_s_velocityTransform = new N(); +n.SolveElastic_s_pa = new P(); +n.SolveElastic_s_pb = new P(); +n.SolveElastic_s_pc = new P(); +n.SolveElastic_s_r = new V(); +n.SolveElastic_s_t0 = new P(); +n.SolveSpring_s_pa = new P(); +n.SolveSpring_s_pb = new P(); +n.SolveSpring_s_d = new P(); +n.SolveSpring_s_f = new P(); +n.SolveTensile_s_weightedNormal = new P(); +n.SolveTensile_s_s = new P(); +n.SolveTensile_s_f = new P(); +n.SolveViscous_s_v = new P(); +n.SolveViscous_s_f = new P(); +n.SolveRepulsive_s_f = new P(); +n.SolvePowder_s_f = new P(); +n.SolveSolid_s_f = new P(); +n.RemoveSpuriousBodyContacts_s_n = new P(); +n.RemoveSpuriousBodyContacts_s_pos = new P(); +n.RemoveSpuriousBodyContacts_s_normal = new P(); +return n; +})(); +(function(e) { +var n = (function() { +return function() { +this.data = null; +this.userSuppliedCapacity = 0; +}; +})(); +e.UserOverridableBuffer = n; +var r = (function() { +function t() { +this.index = u; +this.tag = 0; +} +t.CompareProxyProxy = function(t, e) { +return t.tag < e.tag; +}; +t.CompareTagProxy = function(t, e) { +return t < e.tag; +}; +t.CompareProxyTag = function(t, e) { +return t.tag < e; +}; +return t; +})(); +e.Proxy = r; +var s = (function() { +function t(t, i, n, r, s) { +this.m_system = t; +this.m_xLower = (i & e.xMask) >>> 0; +this.m_xUpper = (n & e.xMask) >>> 0; +this.m_yLower = (i & e.yMask) >>> 0; +this.m_yUpper = (n & e.yMask) >>> 0; +this.m_first = r; +this.m_last = s; +} +t.prototype.GetNext = function() { +for (;this.m_first < this.m_last; ) { +var t = (this.m_system.m_proxyBuffer.data[this.m_first].tag & e.xMask) >>> 0; +if (t >= this.m_xLower && t <= this.m_xUpper) return this.m_system.m_proxyBuffer.data[this.m_first++].index; +this.m_first++; +} +return u; +}; +return t; +})(); +e.InsideBoundsEnumerator = s; +var o = (function() { +return function() { +this.next = null; +this.count = 0; +this.index = 0; +}; +})(); +e.ParticleListNode = o; +var a = (function() { +function t() {} +t.prototype.Allocate = function(t, e) { +return e; +}; +t.prototype.Clear = function() {}; +t.prototype.GetCount = function() { +return 0; +}; +t.prototype.Invalidate = function(t) {}; +t.prototype.GetValidBuffer = function() { +return []; +}; +t.prototype.GetBuffer = function() { +return []; +}; +t.prototype.SetCount = function(t) {}; +return t; +})(); +e.FixedSetAllocator = a; +var l = (function() { +return function(t, e) { +this.second = u; +this.first = t; +this.second = e; +}; +})(); +e.FixtureParticle = l; +var h = (function(t) { +$e(e, t); +function e() { +return null !== t && t.apply(this, arguments) || this; +} +e.prototype.Initialize = function(t, e) {}; +e.prototype.Find = function(t) { +return u; +}; +return e; +})(e.FixedSetAllocator); +e.FixtureParticleSet = h; +var _ = (function() { +return function(t, e) { +this.first = u; +this.second = u; +this.first = t; +this.second = e; +}; +})(); +e.ParticlePair = _; +var f = (function(t) { +$e(e, t); +function e() { +return null !== t && t.apply(this, arguments) || this; +} +e.prototype.Initialize = function(t, e) {}; +e.prototype.Find = function(t) { +return u; +}; +return e; +})(e.FixedSetAllocator); +e.b2ParticlePairSet = f; +var d = (function() { +function t() {} +t.prototype.IsNecessary = function(t) { +return !0; +}; +t.prototype.ShouldCreatePair = function(t, e) { +return !0; +}; +t.prototype.ShouldCreateTriad = function(t, e, i) { +return !0; +}; +return t; +})(); +e.ConnectionFilter = d; +var m = (function(t) { +$e(e, t); +function e(e, i, n, r) { +var s = t.call(this) || this; +s.m_callDestructionListener = !1; +s.m_destroyed = 0; +s.m_system = e; +s.m_shape = i; +s.m_xf = n; +s.m_callDestructionListener = r; +s.m_destroyed = 0; +return s; +} +e.prototype.ReportFixture = function(t) { +return !1; +}; +e.prototype.ReportParticle = function(t, e) { +if (t !== this.m_system) return !1; +if (!this.m_system.m_positionBuffer.data) throw new Error(); +if (this.m_shape.TestPoint(this.m_xf, this.m_system.m_positionBuffer.data[e])) { +this.m_system.DestroyParticle(e, this.m_callDestructionListener); +this.m_destroyed++; +} +return !0; +}; +e.prototype.Destroyed = function() { +return this.m_destroyed; +}; +return e; +})(en); +e.DestroyParticlesInShapeCallback = m; +var p = (function(t) { +$e(e, t); +function e(e) { +var i = t.call(this) || this; +i.m_threshold = 0; +i.m_threshold = e; +return i; +} +e.prototype.ShouldCreatePair = function(t, e) { +return t < this.m_threshold && this.m_threshold <= e || e < this.m_threshold && this.m_threshold <= t; +}; +e.prototype.ShouldCreateTriad = function(t, e, i) { +return (t < this.m_threshold || e < this.m_threshold || i < this.m_threshold) && (this.m_threshold <= t || this.m_threshold <= e || this.m_threshold <= i); +}; +return e; +})(e.ConnectionFilter); +e.JoinParticleGroupsFilter = p; +var v = (function(e) { +$e(n, e); +function n(i, n) { +void 0 === n && (n = i.length); +var r = e.call(this, t.b2ShapeType.e_unknown, 0) || this; +r.m_shapeCount = 0; +r.m_shapes = i; +r.m_shapeCount = n; +return r; +} +n.prototype.Clone = function() { +throw new Error(); +}; +n.prototype.GetChildCount = function() { +return 1; +}; +n.prototype.TestPoint = function(t, e) { +for (var i = 0; i < this.m_shapeCount; i++) if (this.m_shapes[i].TestPoint(t, e)) return !0; +return !1; +}; +n.prototype.ComputeDistance = function(t, e, i, n) { +return 0; +}; +n.prototype.RayCast = function(t, e, i, n) { +return !1; +}; +n.prototype.ComputeAABB = function(t, e, n) { +var r = new Tt(); +t.lowerBound.x = +i; +t.lowerBound.y = +i; +t.upperBound.x = -i; +t.upperBound.y = -i; +for (var s = 0; s < this.m_shapeCount; s++) for (var o = this.m_shapes[s].GetChildCount(), a = 0; a < o; a++) { +var c = r; +this.m_shapes[s].ComputeAABB(c, e, a); +t.Combine1(c); +} +}; +n.prototype.ComputeMass = function(t, e) {}; +n.prototype.SetupDistanceProxy = function(t, e) {}; +n.prototype.ComputeSubmergedArea = function(t, e, i, n) { +return 0; +}; +n.prototype.Dump = function(t) {}; +return n; +})(Ke); +e.CompositeShape = v; +var y = (function(e) { +$e(i, e); +function i(t) { +var i = e.call(this) || this; +i.m_flagsBuffer = t; +return i; +} +i.prototype.IsNecessary = function(e) { +if (!this.m_flagsBuffer.data) throw new Error(); +return 0 != (this.m_flagsBuffer.data[e] & t.b2ParticleFlag.b2_reactiveParticle); +}; +return i; +})(e.ConnectionFilter); +e.ReactiveFilter = y; +var g = (function(i) { +$e(n, i); +function n(t, e) { +var n = i.call(this, t) || this; +n.m_contactFilter = e; +return n; +} +n.prototype.ShouldCollideFixtureParticle = function(e, i, n) { +if (this.m_contactFilter) { +if (this.m_system.GetFlagsBuffer()[n] & t.b2ParticleFlag.b2_fixtureContactFilterParticle) return this.m_contactFilter.ShouldCollideFixtureParticle(e, this.m_system, n); +} +return !0; +}; +n.prototype.ReportFixtureAndParticle = function(i, n, r) { +var s = e.UpdateBodyContactsCallback.ReportFixtureAndParticle_s_n, o = e.UpdateBodyContactsCallback.ReportFixtureAndParticle_s_rp; +if (!this.m_system.m_flagsBuffer.data) throw new Error(); +if (!this.m_system.m_positionBuffer.data) throw new Error(); +var a = this.m_system.m_positionBuffer.data[r], c = s, l = i.ComputeDistance(a, c, n); +if (l < this.m_system.m_particleDiameter && this.ShouldCollideFixtureParticle(i, this.m_system, r)) { +var h = i.GetBody(), u = h.GetWorldCenter(), _ = h.GetMass(), f = h.GetInertia() - _ * h.GetLocalCenter().LengthSquared(), d = _ > 0 ? 1 / _ : 0, m = f > 0 ? 1 / f : 0, p = this.m_system.m_flagsBuffer.data[r] & t.b2ParticleFlag.b2_wallParticle ? 0 : this.m_system.GetParticleInvMass(), v = P.SubVV(a, u, o), y = P.CrossVV(v, c), g = p + d + m * y * y, x = this.m_system.m_bodyContactBuffer.data[this.m_system.m_bodyContactBuffer.Append()]; +x.index = r; +x.body = h; +x.fixture = i; +x.weight = 1 - l * this.m_system.m_inverseDiameter; +x.normal.Copy(c.SelfNeg()); +x.mass = g > 0 ? 1 / g : 0; +this.m_system.DetectStuckParticle(r); +} +}; +n.ReportFixtureAndParticle_s_n = new P(); +n.ReportFixtureAndParticle_s_rp = new P(); +return n; +})(Ln); +e.UpdateBodyContactsCallback = g; +var x = (function(i) { +$e(n, i); +function n(t, e) { +var n = i.call(this, t) || this; +n.m_step = e; +return n; +} +n.prototype.ReportFixtureAndParticle = function(i, n, r) { +var s = e.SolveCollisionCallback.ReportFixtureAndParticle_s_p1, o = e.SolveCollisionCallback.ReportFixtureAndParticle_s_output, a = e.SolveCollisionCallback.ReportFixtureAndParticle_s_input, l = e.SolveCollisionCallback.ReportFixtureAndParticle_s_p, h = e.SolveCollisionCallback.ReportFixtureAndParticle_s_v, u = e.SolveCollisionCallback.ReportFixtureAndParticle_s_f, _ = i.GetBody(); +if (!this.m_system.m_positionBuffer.data) throw new Error(); +if (!this.m_system.m_velocityBuffer.data) throw new Error(); +var f = this.m_system.m_positionBuffer.data[r], d = this.m_system.m_velocityBuffer.data[r], m = o, p = a; +if (0 === this.m_system.m_iterationIndex) { +var v = N.MulTXV(_.m_xf0, f, s); +if (i.GetShape().GetType() === t.b2ShapeType.e_circleShape) { +v.SelfSub(_.GetLocalCenter()); +V.MulRV(_.m_xf0.q, v, v); +V.MulTRV(_.m_xf.q, v, v); +v.SelfAdd(_.GetLocalCenter()); +} +N.MulXV(_.m_xf, v, p.p1); +} else p.p1.Copy(f); +P.AddVMulSV(f, this.m_step.dt, d, p.p2); +p.maxFraction = 1; +if (i.RayCast(m, p, n)) { +var y = m.normal, g = l; +g.x = (1 - m.fraction) * p.p1.x + m.fraction * p.p2.x + c * y.x; +g.y = (1 - m.fraction) * p.p1.y + m.fraction * p.p2.y + c * y.y; +var x = h; +x.x = this.m_step.inv_dt * (g.x - f.x); +x.y = this.m_step.inv_dt * (g.y - f.y); +this.m_system.m_velocityBuffer.data[r].Copy(x); +var C = u; +C.x = this.m_step.inv_dt * this.m_system.GetParticleMass() * (d.x - x.x); +C.y = this.m_step.inv_dt * this.m_system.GetParticleMass() * (d.y - x.y); +this.m_system.ParticleApplyForce(r, C); +} +}; +n.prototype.ReportParticle = function(t, e) { +return !1; +}; +n.ReportFixtureAndParticle_s_p1 = new P(); +n.ReportFixtureAndParticle_s_output = new wt(); +n.ReportFixtureAndParticle_s_input = new St(); +n.ReportFixtureAndParticle_s_p = new P(); +n.ReportFixtureAndParticle_s_v = new P(); +n.ReportFixtureAndParticle_s_f = new P(); +return n; +})(Ln); +e.SolveCollisionCallback = x; +})(t.b2ParticleSystem || (t.b2ParticleSystem = {})); +var zn = (function() { +function e(t) { +this.m_newFixture = !1; +this.m_locked = !1; +this.m_clearForces = !0; +this.m_contactManager = new rn(); +this.m_bodyList = null; +this.m_jointList = null; +this.m_particleSystemList = null; +this.m_bodyCount = 0; +this.m_jointCount = 0; +this.m_gravity = new P(); +this.m_allowSleep = !0; +this.m_destructionListener = null; +this.m_debugDraw = null; +this.m_inv_dt0 = 0; +this.m_warmStarting = !0; +this.m_continuousPhysics = !0; +this.m_subStepping = !1; +this.m_stepComplete = !0; +this.m_profile = new sn(); +this.m_island = new pn(); +this.s_stack = []; +this.m_controllerList = null; +this.m_controllerCount = 0; +this.m_gravity.Copy(t); +} +e.prototype.SetDestructionListener = function(t) { +this.m_destructionListener = t; +}; +e.prototype.SetContactFilter = function(t) { +this.m_contactManager.m_contactFilter = t; +}; +e.prototype.SetContactListener = function(t) { +this.m_contactManager.m_contactListener = t; +}; +e.prototype.SetDebugDraw = function(t) { +this.m_debugDraw = t; +}; +e.prototype.CreateBody = function(t) { +void 0 === t && (t = {}); +if (this.IsLocked()) throw new Error(); +var e = new li(t, this); +e.m_prev = null; +e.m_next = this.m_bodyList; +this.m_bodyList && (this.m_bodyList.m_prev = e); +this.m_bodyList = e; +++this.m_bodyCount; +return e; +}; +e.prototype.DestroyBody = function(t) { +if (this.IsLocked()) throw new Error(); +for (var e = t.m_jointList; e; ) { +var i = e; +e = e.next; +this.m_destructionListener && this.m_destructionListener.SayGoodbyeJoint(i.joint); +this.DestroyJoint(i.joint); +t.m_jointList = e; +} +t.m_jointList = null; +for (var n = t.m_controllerList; n; ) { +var r = n; +n = n.nextController; +r.controller.RemoveBody(t); +} +for (var s = t.m_contactList; s; ) { +var o = s; +s = s.next; +this.m_contactManager.Destroy(o.contact); +} +t.m_contactList = null; +for (var a = t.m_fixtureList; a; ) { +var c = a; +a = a.m_next; +this.m_destructionListener && this.m_destructionListener.SayGoodbyeFixture(c); +c.DestroyProxies(); +c.Destroy(); +t.m_fixtureList = a; +t.m_fixtureCount -= 1; +} +t.m_fixtureList = null; +t.m_fixtureCount = 0; +t.m_prev && (t.m_prev.m_next = t.m_next); +t.m_next && (t.m_next.m_prev = t.m_prev); +t === this.m_bodyList && (this.m_bodyList = t.m_next); +--this.m_bodyCount; +}; +e._Joint_Create = function(e, i) { +switch (e.type) { +case t.b2JointType.e_distanceJoint: +return new mi(e); + +case t.b2JointType.e_mouseJoint: +return new wi(e); + +case t.b2JointType.e_prismaticJoint: +return new Ei(e); + +case t.b2JointType.e_revoluteJoint: +return new Ii(e); + +case t.b2JointType.e_pulleyJoint: +return new Bi(e); + +case t.b2JointType.e_gearJoint: +return new Ci(e); + +case t.b2JointType.e_wheelJoint: +return new Vi(e); + +case t.b2JointType.e_weldJoint: +return new Fi(e); + +case t.b2JointType.e_frictionJoint: +return new gi(e); + +case t.b2JointType.e_ropeJoint: +return new Ri(e); + +case t.b2JointType.e_motorJoint: +return new Ai(e); + +case t.b2JointType.e_areaJoint: +return new vi(e); +} +throw new Error(); +}; +e._Joint_Destroy = function(t, e) {}; +e.prototype.CreateJoint = function(t) { +if (this.IsLocked()) throw new Error(); +var i = e._Joint_Create(t, null); +i.m_prev = null; +i.m_next = this.m_jointList; +this.m_jointList && (this.m_jointList.m_prev = i); +this.m_jointList = i; +++this.m_jointCount; +i.m_edgeA.prev = null; +i.m_edgeA.next = i.m_bodyA.m_jointList; +i.m_bodyA.m_jointList && (i.m_bodyA.m_jointList.prev = i.m_edgeA); +i.m_bodyA.m_jointList = i.m_edgeA; +i.m_edgeB.prev = null; +i.m_edgeB.next = i.m_bodyB.m_jointList; +i.m_bodyB.m_jointList && (i.m_bodyB.m_jointList.prev = i.m_edgeB); +i.m_bodyB.m_jointList = i.m_edgeB; +var n = t.bodyA, r = t.bodyB; +if (!t.collideConnected) for (var s = r.GetContactList(); s; ) { +s.other === n && s.contact.FlagForFiltering(); +s = s.next; +} +return i; +}; +e.prototype.DestroyJoint = function(t) { +if (this.IsLocked()) throw new Error(); +var i = t.m_collideConnected; +t.m_prev && (t.m_prev.m_next = t.m_next); +t.m_next && (t.m_next.m_prev = t.m_prev); +t === this.m_jointList && (this.m_jointList = t.m_next); +var n = t.m_bodyA, r = t.m_bodyB; +n.SetAwake(!0); +r.SetAwake(!0); +t.m_edgeA.prev && (t.m_edgeA.prev.next = t.m_edgeA.next); +t.m_edgeA.next && (t.m_edgeA.next.prev = t.m_edgeA.prev); +t.m_edgeA === n.m_jointList && (n.m_jointList = t.m_edgeA.next); +t.m_edgeA.prev = null; +t.m_edgeA.next = null; +t.m_edgeB.prev && (t.m_edgeB.prev.next = t.m_edgeB.next); +t.m_edgeB.next && (t.m_edgeB.next.prev = t.m_edgeB.prev); +t.m_edgeB === r.m_jointList && (r.m_jointList = t.m_edgeB.next); +t.m_edgeB.prev = null; +t.m_edgeB.next = null; +e._Joint_Destroy(t, null); +--this.m_jointCount; +if (!i) for (var s = r.GetContactList(); s; ) { +s.other === n && s.contact.FlagForFiltering(); +s = s.next; +} +}; +e.prototype.CreateParticleSystem = function(e) { +if (this.IsLocked()) throw new Error(); +var i = new t.b2ParticleSystem(e, this); +i.m_prev = null; +i.m_next = this.m_particleSystemList; +this.m_particleSystemList && (this.m_particleSystemList.m_prev = i); +this.m_particleSystemList = i; +return i; +}; +e.prototype.DestroyParticleSystem = function(t) { +if (this.IsLocked()) throw new Error(); +t.m_prev && (t.m_prev.m_next = t.m_next); +t.m_next && (t.m_next.m_prev = t.m_prev); +t === this.m_particleSystemList && (this.m_particleSystemList = t.m_next); +}; +e.prototype.CalculateReasonableParticleIterations = function(t) { +if (null === this.m_particleSystemList) return 1; +return yn(this.m_gravity.Length(), (function(t) { +for (var e = i, n = t.GetParticleSystemList(); null !== n; n = n.m_next) e = g(e, n.GetRadius()); +return e; +})(this), t); +}; +e.prototype.Step = function(t, i, n, r) { +void 0 === r && (r = this.CalculateReasonableParticleIterations(t)); +var s = e.Step_s_stepTimer.Reset(); +if (this.m_newFixture) { +this.m_contactManager.FindNewContacts(); +this.m_newFixture = !1; +} +this.m_locked = !0; +var o = e.Step_s_step; +o.dt = t; +o.velocityIterations = i; +o.positionIterations = n; +o.particleIterations = r; +o.inv_dt = t > 0 ? 1 / t : 0; +o.dtRatio = this.m_inv_dt0 * t; +o.warmStarting = this.m_warmStarting; +var a = e.Step_s_timer.Reset(); +this.m_contactManager.Collide(); +this.m_profile.collide = a.GetMilliseconds(); +if (this.m_stepComplete && o.dt > 0) { +for (var c = e.Step_s_timer.Reset(), l = this.m_particleSystemList; l; l = l.m_next) l.Solve(o); +this.Solve(o); +this.m_profile.solve = c.GetMilliseconds(); +} +if (this.m_continuousPhysics && o.dt > 0) { +var h = e.Step_s_timer.Reset(); +this.SolveTOI(o); +this.m_profile.solveTOI = h.GetMilliseconds(); +} +o.dt > 0 && (this.m_inv_dt0 = o.inv_dt); +this.m_clearForces && this.ClearForces(); +this.m_locked = !1; +this.m_profile.step = s.GetMilliseconds(); +}; +e.prototype.ClearForces = function() { +for (var t = this.m_bodyList; t; t = t.m_next) { +t.m_force.SetZero(); +t.m_torque = 0; +} +}; +e.prototype.DrawParticleSystem = function(t) { +if (null !== this.m_debugDraw) { +var e = t.GetParticleCount(); +if (e) { +var i = t.GetRadius(), n = t.GetPositionBuffer(); +if (t.m_colorBuffer.data) { +var r = t.GetColorBuffer(); +this.m_debugDraw.DrawParticles(n, i, r, e); +} else this.m_debugDraw.DrawParticles(n, i, null, e); +} +} +}; +e.prototype.DrawDebugData = function() { +if (null !== this.m_debugDraw) { +var i = this.m_debugDraw.GetFlags(), n = e.DrawDebugData_s_color.SetRGB(0, 0, 0); +if (i & t.b2DrawFlags.e_shapeBit) for (var r = this.m_bodyList; r; r = r.m_next) { +var s = r.m_xf; +this.m_debugDraw.PushTransform(s); +for (var o = r.GetFixtureList(); o; o = o.m_next) if (r.IsActive()) if (r.GetType() === t.b2BodyType.b2_staticBody) { +n.SetRGB(.5, .9, .5); +this.DrawShape(o, n); +} else if (r.GetType() === t.b2BodyType.b2_kinematicBody) { +n.SetRGB(.5, .5, .9); +this.DrawShape(o, n); +} else if (r.IsAwake()) { +n.SetRGB(.9, .7, .7); +this.DrawShape(o, n); +} else { +n.SetRGB(.6, .6, .6); +this.DrawShape(o, n); +} else { +n.SetRGB(.5, .5, .3); +this.DrawShape(o, n); +} +this.m_debugDraw.PopTransform(s); +} +if (i & t.b2DrawFlags.e_particleBit) for (var a = this.m_particleSystemList; a; a = a.m_next) this.DrawParticleSystem(a); +if (i & t.b2DrawFlags.e_jointBit) for (var c = this.m_jointList; c; c = c.m_next) this.DrawJoint(c); +if (i & t.b2DrawFlags.e_aabbBit) { +n.SetRGB(.9, .3, .9); +var l = e.DrawDebugData_s_vs; +for (r = this.m_bodyList; r; r = r.m_next) if (r.IsActive()) for (o = r.GetFixtureList(); o; o = o.m_next) for (var h = 0; h < o.m_proxyCount; ++h) { +var u = o.m_proxies[h].treeNode.aabb; +l[0].Set(u.lowerBound.x, u.lowerBound.y); +l[1].Set(u.upperBound.x, u.lowerBound.y); +l[2].Set(u.upperBound.x, u.upperBound.y); +l[3].Set(u.lowerBound.x, u.upperBound.y); +this.m_debugDraw.DrawPolygon(l, 4, n); +} +} +if (i & t.b2DrawFlags.e_centerOfMassBit) for (r = this.m_bodyList; r; r = r.m_next) { +(s = e.DrawDebugData_s_xf).q.Copy(r.m_xf.q); +s.p.Copy(r.GetWorldCenter()); +this.m_debugDraw.DrawTransform(s); +} +if (i & t.b2DrawFlags.e_controllerBit) for (var _ = this.m_controllerList; _; _ = _.m_next) _.Draw(this.m_debugDraw); +} +}; +e.prototype.QueryAABB = function(t, e, i) { +this.m_contactManager.m_broadPhase.Query(e, (function(e) { +var n = e.userData.fixture; +return t ? t.ReportFixture(n) : !i || i(n); +})); +if (t instanceof en) for (var n = this.m_particleSystemList; n; n = n.m_next) t.ShouldQueryParticleSystem(n) && n.QueryAABB(t, e); +}; +e.prototype.QueryAllAABB = function(t, e) { +void 0 === e && (e = []); +this.QueryAABB(null, t, (function(t) { +e.push(t); +return !0; +})); +return e; +}; +e.prototype.QueryPointAABB = function(t, e, i) { +this.m_contactManager.m_broadPhase.QueryPoint(e, (function(e) { +var n = e.userData.fixture; +return t ? t.ReportFixture(n) : !i || i(n); +})); +if (t instanceof en) for (var n = this.m_particleSystemList; n; n = n.m_next) t.ShouldQueryParticleSystem(n) && n.QueryPointAABB(t, e); +}; +e.prototype.QueryAllPointAABB = function(t, e) { +void 0 === e && (e = []); +this.QueryPointAABB(null, t, (function(t) { +e.push(t); +return !0; +})); +return e; +}; +e.prototype.QueryFixtureShape = function(t, i, n, r, s) { +var o = e.QueryFixtureShape_s_aabb; +i.ComputeAABB(o, r, n); +this.m_contactManager.m_broadPhase.Query(o, (function(e) { +var o = e.userData, a = o.fixture; +if (Pt(i, n, a.GetShape(), o.childIndex, r, a.GetBody().GetTransform())) { +if (t) return t.ReportFixture(a); +if (s) return s(a); +} +return !0; +})); +if (t instanceof en) for (var a = this.m_particleSystemList; a; a = a.m_next) t.ShouldQueryParticleSystem(a) && a.QueryAABB(t, o); +}; +e.prototype.QueryAllFixtureShape = function(t, e, i, n) { +void 0 === n && (n = []); +this.QueryFixtureShape(null, t, e, i, (function(t) { +n.push(t); +return !0; +})); +return n; +}; +e.prototype.QueryFixturePoint = function(t, e, i) { +this.m_contactManager.m_broadPhase.QueryPoint(e, (function(n) { +var r = n.userData.fixture; +if (r.TestPoint(e)) { +if (t) return t.ReportFixture(r); +if (i) return i(r); +} +return !0; +})); +if (t) for (var n = this.m_particleSystemList; n; n = n.m_next) t.ShouldQueryParticleSystem(n) && n.QueryPointAABB(t, e); +}; +e.prototype.QueryAllFixturePoint = function(t, e) { +void 0 === e && (e = []); +this.QueryFixturePoint(null, t, (function(t) { +e.push(t); +return !0; +})); +return e; +}; +e.prototype.RayCast = function(t, i, n, r) { +var s = e.RayCast_s_input; +s.maxFraction = 1; +s.p1.Copy(i); +s.p2.Copy(n); +this.m_contactManager.m_broadPhase.RayCast(s, (function(s, o) { +var a = o.userData, c = a.fixture, l = a.childIndex, h = e.RayCast_s_output; +if (c.RayCast(h, s, l)) { +var u = h.fraction, _ = e.RayCast_s_point; +_.Set((1 - u) * i.x + u * n.x, (1 - u) * i.y + u * n.y); +if (t) return t.ReportFixture(c, _, h.normal, u); +if (r) return r(c, _, h.normal, u); +} +return s.maxFraction; +})); +if (t) for (var o = this.m_particleSystemList; o; o = o.m_next) t.ShouldQueryParticleSystem(o) && o.RayCast(t, i, n); +}; +e.prototype.RayCastOne = function(t, e) { +var i = null, n = 1; +this.RayCast(null, t, e, (function(t, e, r, s) { +if (s < n) { +n = s; +i = t; +} +return n; +})); +return i; +}; +e.prototype.RayCastAll = function(t, e, i) { +void 0 === i && (i = []); +this.RayCast(null, t, e, (function(t, e, n, r) { +i.push(t); +return 1; +})); +return i; +}; +e.prototype.GetBodyList = function() { +return this.m_bodyList; +}; +e.prototype.GetJointList = function() { +return this.m_jointList; +}; +e.prototype.GetParticleSystemList = function() { +return this.m_particleSystemList; +}; +e.prototype.GetContactList = function() { +return this.m_contactManager.m_contactList; +}; +e.prototype.SetAllowSleeping = function(t) { +if (t !== this.m_allowSleep) { +this.m_allowSleep = t; +if (!this.m_allowSleep) for (var e = this.m_bodyList; e; e = e.m_next) e.SetAwake(!0); +} +}; +e.prototype.GetAllowSleeping = function() { +return this.m_allowSleep; +}; +e.prototype.SetWarmStarting = function(t) { +this.m_warmStarting = t; +}; +e.prototype.GetWarmStarting = function() { +return this.m_warmStarting; +}; +e.prototype.SetContinuousPhysics = function(t) { +this.m_continuousPhysics = t; +}; +e.prototype.GetContinuousPhysics = function() { +return this.m_continuousPhysics; +}; +e.prototype.SetSubStepping = function(t) { +this.m_subStepping = t; +}; +e.prototype.GetSubStepping = function() { +return this.m_subStepping; +}; +e.prototype.GetProxyCount = function() { +return this.m_contactManager.m_broadPhase.GetProxyCount(); +}; +e.prototype.GetBodyCount = function() { +return this.m_bodyCount; +}; +e.prototype.GetJointCount = function() { +return this.m_jointCount; +}; +e.prototype.GetContactCount = function() { +return this.m_contactManager.m_contactCount; +}; +e.prototype.GetTreeHeight = function() { +return this.m_contactManager.m_broadPhase.GetTreeHeight(); +}; +e.prototype.GetTreeBalance = function() { +return this.m_contactManager.m_broadPhase.GetTreeBalance(); +}; +e.prototype.GetTreeQuality = function() { +return this.m_contactManager.m_broadPhase.GetTreeQuality(); +}; +e.prototype.SetGravity = function(t, e) { +void 0 === e && (e = !0); +if (!P.IsEqualToV(this.m_gravity, t)) { +this.m_gravity.Copy(t); +if (e) for (var i = this.m_bodyList; i; i = i.m_next) i.SetAwake(!0); +} +}; +e.prototype.GetGravity = function() { +return this.m_gravity; +}; +e.prototype.IsLocked = function() { +return this.m_locked; +}; +e.prototype.SetAutoClearForces = function(t) { +this.m_clearForces = t; +}; +e.prototype.GetAutoClearForces = function() { +return this.m_clearForces; +}; +e.prototype.ShiftOrigin = function(t) { +if (this.IsLocked()) throw new Error(); +for (var e = this.m_bodyList; e; e = e.m_next) { +e.m_xf.p.SelfSub(t); +e.m_sweep.c0.SelfSub(t); +e.m_sweep.c.SelfSub(t); +} +for (var i = this.m_jointList; i; i = i.m_next) i.ShiftOrigin(t); +this.m_contactManager.m_broadPhase.ShiftOrigin(t); +}; +e.prototype.GetContactManager = function() { +return this.m_contactManager; +}; +e.prototype.GetProfile = function() { +return this.m_profile; +}; +e.prototype.Dump = function(e) { +if (!this.m_locked) { +e("const g: b2Vec2 = new b2Vec2(%.15f, %.15f);\n", this.m_gravity.x, this.m_gravity.y); +e("this.m_world.SetGravity(g);\n"); +e("const bodies: b2Body[] = [];\n"); +e("const joints: b2Joint[] = [];\n"); +for (var i = 0, n = this.m_bodyList; n; n = n.m_next) { +n.m_islandIndex = i; +n.Dump(e); +++i; +} +i = 0; +for (var r = this.m_jointList; r; r = r.m_next) { +r.m_index = i; +++i; +} +for (r = this.m_jointList; r; r = r.m_next) if (r.m_type !== t.b2JointType.e_gearJoint) { +e("{\n"); +r.Dump(e); +e("}\n"); +} +for (r = this.m_jointList; r; r = r.m_next) if (r.m_type === t.b2JointType.e_gearJoint) { +e("{\n"); +r.Dump(e); +e("}\n"); +} +} +}; +e.prototype.DrawJoint = function(i) { +if (null !== this.m_debugDraw) { +var n = i.GetBodyA(), r = i.GetBodyB(), s = n.m_xf, o = r.m_xf, a = s.p, c = o.p, l = i.GetAnchorA(e.DrawJoint_s_p1), h = i.GetAnchorB(e.DrawJoint_s_p2), u = e.DrawJoint_s_color.SetRGB(.5, .8, .8); +switch (i.m_type) { +case t.b2JointType.e_distanceJoint: +this.m_debugDraw.DrawSegment(l, h, u); +break; + +case t.b2JointType.e_pulleyJoint: +var _ = i, f = _.GetGroundAnchorA(), d = _.GetGroundAnchorB(); +this.m_debugDraw.DrawSegment(f, l, u); +this.m_debugDraw.DrawSegment(d, h, u); +this.m_debugDraw.DrawSegment(f, d, u); +break; + +case t.b2JointType.e_mouseJoint: +var m = e.DrawJoint_s_c; +m.Set(0, 1, 0); +this.m_debugDraw.DrawPoint(l, 4, m); +this.m_debugDraw.DrawPoint(h, 4, m); +m.Set(.8, .8, .8); +this.m_debugDraw.DrawSegment(l, h, m); +break; + +default: +this.m_debugDraw.DrawSegment(a, l, u); +this.m_debugDraw.DrawSegment(l, h, u); +this.m_debugDraw.DrawSegment(c, h, u); +} +} +}; +e.prototype.DrawShape = function(i, n) { +if (null !== this.m_debugDraw) { +var r = i.GetShape(); +switch (r.m_type) { +case t.b2ShapeType.e_circleShape: +var s = r, o = s.m_p, a = s.m_radius, c = P.UNITX; +this.m_debugDraw.DrawSolidCircle(o, a, c, n); +break; + +case t.b2ShapeType.e_edgeShape: +var l = r, h = l.m_vertex1, u = l.m_vertex2; +this.m_debugDraw.DrawSegment(h, u, n); +break; + +case t.b2ShapeType.e_chainShape: +var _ = r, f = _.m_count, d = _.m_vertices, m = e.DrawShape_s_ghostColor.SetRGBA(.75 * n.r, .75 * n.g, .75 * n.b, n.a); +h = d[0]; +this.m_debugDraw.DrawPoint(h, 4, n); +if (_.m_hasPrevVertex) { +var p = _.m_prevVertex; +this.m_debugDraw.DrawSegment(p, h, m); +this.m_debugDraw.DrawCircle(p, .1, m); +} +for (var v = 1; v < f; ++v) { +u = d[v]; +this.m_debugDraw.DrawSegment(h, u, n); +this.m_debugDraw.DrawPoint(u, 4, n); +h = u; +} +if (_.m_hasNextVertex) { +var y = _.m_nextVertex; +this.m_debugDraw.DrawSegment(y, h, m); +this.m_debugDraw.DrawCircle(y, .1, m); +} +break; + +case t.b2ShapeType.e_polygonShape: +var g = r, x = g.m_count; +d = g.m_vertices; +this.m_debugDraw.DrawSolidPolygon(d, x, n); +} +} +}; +e.prototype.Solve = function(e) { +for (var i = this.m_bodyList; i; i = i.m_next) i.m_xf0.Copy(i.m_xf); +for (var n = this.m_controllerList; n; n = n.m_next) n.Step(e); +this.m_profile.solveInit = 0; +this.m_profile.solveVelocity = 0; +this.m_profile.solvePosition = 0; +var r = this.m_island; +r.Initialize(this.m_bodyCount, this.m_contactManager.m_contactCount, this.m_jointCount, null, this.m_contactManager.m_contactListener); +for (i = this.m_bodyList; i; i = i.m_next) i.m_islandFlag = !1; +for (var s = this.m_contactManager.m_contactList; s; s = s.m_next) s.m_islandFlag = !1; +for (var o = this.m_jointList; o; o = o.m_next) o.m_islandFlag = !1; +for (var a = this.s_stack, c = this.m_bodyList; c; c = c.m_next) if (!c.m_islandFlag && c.IsAwake() && c.IsActive() && c.GetType() !== t.b2BodyType.b2_staticBody) { +r.Clear(); +var l = 0; +a[l++] = c; +c.m_islandFlag = !0; +for (;l > 0; ) { +if (!(i = a[--l])) throw new Error(); +r.AddBody(i); +i.m_awakeFlag = !0; +if (i.GetType() !== t.b2BodyType.b2_staticBody) { +for (var h = i.m_contactList; h; h = h.next) { +var u = h.contact; +if (!u.m_islandFlag && (u.IsEnabled() && u.IsTouching())) { +var _ = u.m_fixtureA.m_isSensor, f = u.m_fixtureB.m_isSensor; +if (!_ && !f) { +r.AddContact(u); +u.m_islandFlag = !0; +if (!(m = h.other)) throw new Error(); +if (!m.m_islandFlag) { +a[l++] = m; +m.m_islandFlag = !0; +} +} +} +} +for (var d = i.m_jointList; d; d = d.next) if (!d.joint.m_islandFlag) { +var m; +if ((m = d.other).IsActive()) { +r.AddJoint(d.joint); +d.joint.m_islandFlag = !0; +if (!m.m_islandFlag) { +a[l++] = m; +m.m_islandFlag = !0; +} +} +} +} +} +var p = new sn(); +r.Solve(p, e, this.m_gravity, this.m_allowSleep); +this.m_profile.solveInit += p.solveInit; +this.m_profile.solveVelocity += p.solveVelocity; +this.m_profile.solvePosition += p.solvePosition; +for (var v = 0; v < r.m_bodyCount; ++v) { +(i = r.m_bodies[v]).GetType() === t.b2BodyType.b2_staticBody && (i.m_islandFlag = !1); +} +} +for (v = 0; v < a.length && a[v]; ++v) a[v] = null; +var y = new U(); +for (i = this.m_bodyList; i; i = i.m_next) i.m_islandFlag && i.GetType() !== t.b2BodyType.b2_staticBody && i.SynchronizeFixtures(); +this.m_contactManager.FindNewContacts(); +this.m_profile.broadphase = y.GetMilliseconds(); +}; +e.prototype.SolveTOI = function(i) { +var r = this.m_island; +r.Initialize(64, 32, 0, null, this.m_contactManager.m_contactListener); +if (this.m_stepComplete) { +for (var s = this.m_bodyList; s; s = s.m_next) { +s.m_islandFlag = !1; +s.m_sweep.alpha0 = 0; +} +for (var o = this.m_contactManager.m_contactList; o; o = o.m_next) { +o.m_toiFlag = !1; +o.m_islandFlag = !1; +o.m_toiCount = 0; +o.m_toi = 1; +} +} +for (;;) { +var a = null, c = 1; +for (o = this.m_contactManager.m_contactList; o; o = o.m_next) if (o.IsEnabled() && !(o.m_toiCount > 8)) { +var l = 1; +if (o.m_toiFlag) l = o.m_toi; else { +var h = o.GetFixtureA(), u = o.GetFixtureB(); +if (h.IsSensor() || u.IsSensor()) continue; +var _ = h.GetBody(), f = u.GetBody(), d = _.m_type, m = f.m_type, p = _.IsAwake() && d !== t.b2BodyType.b2_staticBody, v = f.IsAwake() && m !== t.b2BodyType.b2_staticBody; +if (!p && !v) continue; +var y = _.IsBullet() || d !== t.b2BodyType.b2_dynamicBody, x = f.IsBullet() || m !== t.b2BodyType.b2_dynamicBody; +if (!y && !x) continue; +var C = _.m_sweep.alpha0; +if (_.m_sweep.alpha0 < f.m_sweep.alpha0) { +C = f.m_sweep.alpha0; +_.m_sweep.Advance(C); +} else if (f.m_sweep.alpha0 < _.m_sweep.alpha0) { +C = _.m_sweep.alpha0; +f.m_sweep.Advance(C); +} +var b = o.GetChildIndexA(), A = o.GetChildIndexB(), S = e.SolveTOI_s_toi_input; +S.proxyA.SetShape(h.GetShape(), b); +S.proxyB.SetShape(u.GetShape(), A); +S.sweepA.Copy(_.m_sweep); +S.sweepB.Copy(f.m_sweep); +S.tMax = 1; +var w = e.SolveTOI_s_toi_output; +re(w, S); +var T = w.t; +l = w.state === t.b2TOIOutputState.e_touching ? g(C + (1 - C) * T, 1) : 1; +o.m_toi = l; +o.m_toiFlag = !0; +} +if (l < c) { +a = o; +c = l; +} +} +if (null === a || 1 - 10 * n < c) { +this.m_stepComplete = !0; +break; +} +var E = a.GetFixtureA(), M = a.GetFixtureB(), B = E.GetBody(), D = M.GetBody(), I = e.SolveTOI_s_backup1.Copy(B.m_sweep), P = e.SolveTOI_s_backup2.Copy(D.m_sweep); +B.Advance(c); +D.Advance(c); +a.Update(this.m_contactManager.m_contactListener); +a.m_toiFlag = !1; +++a.m_toiCount; +if (a.IsEnabled() && a.IsTouching()) { +B.SetAwake(!0); +D.SetAwake(!0); +r.Clear(); +r.AddBody(B); +r.AddBody(D); +r.AddContact(a); +B.m_islandFlag = !0; +D.m_islandFlag = !0; +a.m_islandFlag = !0; +for (var R = 0; R < 2; ++R) { +if ((G = 0 === R ? B : D).m_type === t.b2BodyType.b2_dynamicBody) for (var L = G.m_contactList; L && r.m_bodyCount !== r.m_bodyCapacity && r.m_contactCount !== r.m_contactCapacity; L = L.next) { +var F = L.contact; +if (!F.m_islandFlag) { +var O = L.other; +if (O.m_type !== t.b2BodyType.b2_dynamicBody || G.IsBullet() || O.IsBullet()) { +var V = F.m_fixtureA.m_isSensor, N = F.m_fixtureB.m_isSensor; +if (!V && !N) { +var k = e.SolveTOI_s_backup.Copy(O.m_sweep); +O.m_islandFlag || O.Advance(c); +F.Update(this.m_contactManager.m_contactListener); +if (F.IsEnabled()) if (F.IsTouching()) { +F.m_islandFlag = !0; +r.AddContact(F); +if (!O.m_islandFlag) { +O.m_islandFlag = !0; +O.m_type !== t.b2BodyType.b2_staticBody && O.SetAwake(!0); +r.AddBody(O); +} +} else { +O.m_sweep.Copy(k); +O.SynchronizeTransform(); +} else { +O.m_sweep.Copy(k); +O.SynchronizeTransform(); +} +} +} +} +} +} +var z = e.SolveTOI_s_subStep; +z.dt = (1 - c) * i.dt; +z.inv_dt = 1 / z.dt; +z.dtRatio = 1; +z.positionIterations = 20; +z.velocityIterations = i.velocityIterations; +z.particleIterations = i.particleIterations; +z.warmStarting = !1; +r.SolveTOI(z, B.m_islandIndex, D.m_islandIndex); +for (R = 0; R < r.m_bodyCount; ++R) { +var G; +(G = r.m_bodies[R]).m_islandFlag = !1; +if (G.m_type === t.b2BodyType.b2_dynamicBody) { +G.SynchronizeFixtures(); +for (L = G.m_contactList; L; L = L.next) { +L.contact.m_toiFlag = !1; +L.contact.m_islandFlag = !1; +} +} +} +this.m_contactManager.FindNewContacts(); +if (this.m_subStepping) { +this.m_stepComplete = !1; +break; +} +} else { +a.SetEnabled(!1); +B.m_sweep.Copy(I); +D.m_sweep.Copy(P); +B.SynchronizeTransform(); +D.SynchronizeTransform(); +} +} +}; +e.prototype.AddController = function(t) { +t.m_next = this.m_controllerList; +t.m_prev = null; +this.m_controllerList && (this.m_controllerList.m_prev = t); +this.m_controllerList = t; +++this.m_controllerCount; +return t; +}; +e.prototype.RemoveController = function(t) { +t.m_prev && (t.m_prev.m_next = t.m_next); +t.m_next && (t.m_next.m_prev = t.m_prev); +this.m_controllerList === t && (this.m_controllerList = t.m_next); +--this.m_controllerCount; +t.m_prev = null; +t.m_next = null; +return t; +}; +e.Step_s_step = new on(); +e.Step_s_stepTimer = new U(); +e.Step_s_timer = new U(); +e.DrawDebugData_s_color = new z(0, 0, 0); +e.DrawDebugData_s_vs = P.MakeArray(4); +e.DrawDebugData_s_xf = new N(); +e.QueryFixtureShape_s_aabb = new Tt(); +e.RayCast_s_input = new St(); +e.RayCast_s_output = new wt(); +e.RayCast_s_point = new P(); +e.DrawJoint_s_p1 = new P(); +e.DrawJoint_s_p2 = new P(); +e.DrawJoint_s_color = new z(.5, .8, .8); +e.DrawJoint_s_c = new z(); +e.DrawShape_s_ghostColor = new z(); +e.SolveTOI_s_subStep = new on(); +e.SolveTOI_s_backup = new k(); +e.SolveTOI_s_backup1 = new k(); +e.SolveTOI_s_backup2 = new k(); +e.SolveTOI_s_toi_input = new qt(); +e.SolveTOI_s_toi_output = new Xt(); +return e; +})(), Gn = (function() { +return function(t, e) { +this.prevBody = null; +this.nextBody = null; +this.prevController = null; +this.nextController = null; +this.controller = t; +this.body = e; +}; +})(), Un = (function() { +function t() { +this.m_bodyList = null; +this.m_bodyCount = 0; +this.m_prev = null; +this.m_next = null; +} +t.prototype.GetNext = function() { +return this.m_next; +}; +t.prototype.GetPrev = function() { +return this.m_prev; +}; +t.prototype.GetBodyList = function() { +return this.m_bodyList; +}; +t.prototype.AddBody = function(t) { +var e = new Gn(this, t); +e.nextBody = this.m_bodyList; +e.prevBody = null; +this.m_bodyList && (this.m_bodyList.prevBody = e); +this.m_bodyList = e; +++this.m_bodyCount; +e.nextController = t.m_controllerList; +e.prevController = null; +t.m_controllerList && (t.m_controllerList.prevController = e); +t.m_controllerList = e; +++t.m_controllerCount; +}; +t.prototype.RemoveBody = function(t) { +if (this.m_bodyCount <= 0) throw new Error(); +for (var e = this.m_bodyList; e && e.body !== t; ) e = e.nextBody; +if (null === e) throw new Error(); +e.prevBody && (e.prevBody.nextBody = e.nextBody); +e.nextBody && (e.nextBody.prevBody = e.prevBody); +this.m_bodyList === e && (this.m_bodyList = e.nextBody); +--this.m_bodyCount; +e.nextController && (e.nextController.prevController = e.prevController); +e.prevController && (e.prevController.nextController = e.nextController); +t.m_controllerList === e && (t.m_controllerList = e.nextController); +--t.m_controllerCount; +}; +t.prototype.Clear = function() { +for (;this.m_bodyList; ) this.RemoveBody(this.m_bodyList.body); +this.m_bodyCount = 0; +}; +return t; +})(), jn = (function(t) { +$e(e, t); +function e() { +var e = null !== t && t.apply(this, arguments) || this; +e.normal = new P(0, 1); +e.offset = 0; +e.density = 0; +e.velocity = new P(0, 0); +e.linearDrag = 0; +e.angularDrag = 0; +e.useDensity = !1; +e.useWorldGravity = !0; +e.gravity = new P(0, 0); +return e; +} +e.prototype.Step = function(t) { +if (this.m_bodyList) { +this.useWorldGravity && this.gravity.Copy(this.m_bodyList.body.GetWorld().GetGravity()); +for (var e = this.m_bodyList; e; e = e.nextBody) { +var i = e.body; +if (i.IsAwake()) { +for (var r = new P(), s = new P(), o = 0, a = 0, c = i.GetFixtureList(); c; c = c.m_next) { +var l = new P(), h = c.GetShape().ComputeSubmergedArea(this.normal, this.offset, i.GetTransform(), l); +o += h; +r.x += h * l.x; +r.y += h * l.y; +var u = 0; +a += h * (u = this.useDensity ? c.GetDensity() : 1); +s.x += h * l.x * u; +s.y += h * l.y * u; +} +r.x /= o; +r.y /= o; +s.x /= a; +s.y /= a; +if (!(o < n)) { +var _ = this.gravity.Clone().SelfNeg(); +_.SelfMul(this.density * o); +i.ApplyForce(_, s); +var f = i.GetLinearVelocityFromWorldPoint(r, new P()); +f.SelfSub(this.velocity); +f.SelfMul(-this.linearDrag * o); +i.ApplyForce(f, r); +i.ApplyTorque(-i.GetInertia() / i.GetMass() * o * i.GetAngularVelocity() * this.angularDrag); +} +} +} +} +}; +e.prototype.Draw = function(t) { +var e = 100, i = new P(), n = new P(); +i.x = this.normal.x * this.offset + this.normal.y * e; +i.y = this.normal.y * this.offset - this.normal.x * e; +n.x = this.normal.x * this.offset - this.normal.y * e; +n.y = this.normal.y * this.offset + this.normal.x * e; +var r = new z(0, 0, .8); +t.DrawSegment(i, n, r); +}; +return e; +})(Un), Wn = (function(t) { +$e(e, t); +function e() { +var e = null !== t && t.apply(this, arguments) || this; +e.A = new P(0, 0); +return e; +} +e.prototype.Step = function(t) { +for (var i = P.MulSV(t.dt, this.A, e.Step_s_dtA), n = this.m_bodyList; n; n = n.nextBody) { +var r = n.body; +r.IsAwake() && r.SetLinearVelocity(P.AddVV(r.GetLinearVelocity(), i, P.s_t0)); +} +}; +e.prototype.Draw = function(t) {}; +e.Step_s_dtA = new P(); +return e; +})(Un), Hn = (function(t) { +$e(e, t); +function e() { +var e = null !== t && t.apply(this, arguments) || this; +e.F = new P(0, 0); +return e; +} +e.prototype.Step = function(t) { +for (var e = this.m_bodyList; e; e = e.nextBody) { +var i = e.body; +i.IsAwake() && i.ApplyForce(this.F, i.GetWorldCenter()); +} +}; +e.prototype.Draw = function(t) {}; +return e; +})(Un), qn = (function(t) { +$e(e, t); +function e() { +var e = null !== t && t.apply(this, arguments) || this; +e.G = 1; +e.invSqr = !0; +return e; +} +e.prototype.Step = function(t) { +if (this.invSqr) for (var i = this.m_bodyList; i; i = i.nextBody) for (var r = (l = i.body).GetWorldCenter(), s = l.GetMass(), o = this.m_bodyList; o && o !== i; o = o.nextBody) { +var a = (h = o.body).GetWorldCenter(), c = h.GetMass(); +if (!((f = (u = a.x - r.x) * u + (_ = a.y - r.y) * _) < n)) { +(d = e.Step_s_f.Set(u, _)).SelfMul(this.G / f / w(f) * s * c); +l.IsAwake() && l.ApplyForce(d, r); +h.IsAwake() && h.ApplyForce(d.SelfMul(-1), a); +} +} else for (i = this.m_bodyList; i; i = i.nextBody) { +var l; +for (r = (l = i.body).GetWorldCenter(), s = l.GetMass(), o = this.m_bodyList; o && o !== i; o = o.nextBody) { +var h, u, _, f; +a = (h = o.body).GetWorldCenter(), c = h.GetMass(); +if (!((f = (u = a.x - r.x) * u + (_ = a.y - r.y) * _) < n)) { +var d; +(d = e.Step_s_f.Set(u, _)).SelfMul(this.G / f * s * c); +l.IsAwake() && l.ApplyForce(d, r); +h.IsAwake() && h.ApplyForce(d.SelfMul(-1), a); +} +} +} +}; +e.prototype.Draw = function(t) {}; +e.Step_s_f = new P(); +return e; +})(Un), Xn = (function(t) { +$e(e, t); +function e() { +var e = null !== t && t.apply(this, arguments) || this; +e.T = new F(); +e.maxTimestep = 0; +return e; +} +e.prototype.Step = function(t) { +var i = t.dt; +if (!(i <= n)) { +i > this.maxTimestep && this.maxTimestep > 0 && (i = this.maxTimestep); +for (var r = this.m_bodyList; r; r = r.nextBody) { +var s = r.body; +if (s.IsAwake()) { +var o = s.GetWorldVector(F.MulMV(this.T, s.GetLocalVector(s.GetLinearVelocity(), P.s_t0), P.s_t1), e.Step_s_damping); +s.SetLinearVelocity(P.AddVV(s.GetLinearVelocity(), P.MulSV(i, o, P.s_t0), P.s_t1)); +} +} +} +}; +e.prototype.Draw = function(t) {}; +e.prototype.SetAxisAligned = function(t, e) { +this.T.ex.x = -t; +this.T.ex.y = 0; +this.T.ey.x = 0; +this.T.ey.y = -e; +this.maxTimestep = t > 0 || e > 0 ? 1 / x(t, e) : 0; +}; +e.Step_s_damping = new P(); +return e; +})(Un), Yn = (function() { +return function() { +this.vertices = []; +this.count = 0; +this.masses = []; +this.gravity = new P(0, 0); +this.damping = .1; +this.k2 = .9; +this.k3 = .1; +}; +})(), Jn = (function() { +function t() { +this.m_count = 0; +this.m_ps = []; +this.m_p0s = []; +this.m_vs = []; +this.m_ims = []; +this.m_Ls = []; +this.m_as = []; +this.m_gravity = new P(); +this.m_damping = 0; +this.m_k2 = 1; +this.m_k3 = .1; +} +t.prototype.GetVertexCount = function() { +return this.m_count; +}; +t.prototype.GetVertices = function() { +return this.m_ps; +}; +t.prototype.Initialize = function(t) { +this.m_count = t.count; +this.m_ps = P.MakeArray(this.m_count); +this.m_p0s = P.MakeArray(this.m_count); +this.m_vs = P.MakeArray(this.m_count); +this.m_ims = m(this.m_count); +for (var e = 0; e < this.m_count; ++e) { +this.m_ps[e].Copy(t.vertices[e]); +this.m_p0s[e].Copy(t.vertices[e]); +this.m_vs[e].SetZero(); +var i = t.masses[e]; +this.m_ims[e] = i > 0 ? 1 / i : 0; +} +var n = this.m_count - 1, r = this.m_count - 2; +this.m_Ls = m(n); +this.m_as = m(r); +for (e = 0; e < n; ++e) { +var s = this.m_ps[e], o = this.m_ps[e + 1]; +this.m_Ls[e] = P.DistanceVV(s, o); +} +for (e = 0; e < r; ++e) { +s = this.m_ps[e], o = this.m_ps[e + 1]; +var a = this.m_ps[e + 2], c = P.SubVV(o, s, P.s_t0), l = P.SubVV(a, o, P.s_t1), h = P.CrossVV(c, l), u = P.DotVV(c, l); +this.m_as[e] = I(h, u); +} +this.m_gravity.Copy(t.gravity); +this.m_damping = t.damping; +this.m_k2 = t.k2; +this.m_k3 = t.k3; +}; +t.prototype.Step = function(t, e) { +if (0 !== t) { +for (var i = Math.exp(-t * this.m_damping), n = 0; n < this.m_count; ++n) { +this.m_p0s[n].Copy(this.m_ps[n]); +this.m_ims[n] > 0 && this.m_vs[n].SelfMulAdd(t, this.m_gravity); +this.m_vs[n].SelfMul(i); +this.m_ps[n].SelfMulAdd(t, this.m_vs[n]); +} +for (n = 0; n < e; ++n) { +this.SolveC2(); +this.SolveC3(); +this.SolveC2(); +} +var r = 1 / t; +for (n = 0; n < this.m_count; ++n) P.MulSV(r, P.SubVV(this.m_ps[n], this.m_p0s[n], P.s_t0), this.m_vs[n]); +} +}; +t.prototype.SolveC2 = function() { +for (var e = this.m_count - 1, i = 0; i < e; ++i) { +var n = this.m_ps[i], r = this.m_ps[i + 1], s = P.SubVV(r, n, t.s_d), o = s.Normalize(), a = this.m_ims[i], c = this.m_ims[i + 1]; +if (a + c !== 0) { +var l = a / (a + c), h = c / (a + c); +n.SelfMulSub(this.m_k2 * l * (this.m_Ls[i] - o), s); +r.SelfMulAdd(this.m_k2 * h * (this.m_Ls[i] - o), s); +} +} +}; +t.prototype.SetAngle = function(t) { +for (var e = this.m_count - 2, i = 0; i < e; ++i) this.m_as[i] = t; +}; +t.prototype.SolveC3 = function() { +for (var e = this.m_count - 2, i = 0; i < e; ++i) { +var n = this.m_ps[i], r = this.m_ps[i + 1], o = this.m_ps[i + 2], a = this.m_ims[i], c = this.m_ims[i + 1], l = this.m_ims[i + 2], h = P.SubVV(r, n, t.s_d1), u = P.SubVV(o, r, t.s_d2), _ = h.LengthSquared(), f = u.LengthSquared(); +if (_ * f != 0) { +var d = P.CrossVV(h, u), m = P.DotVV(h, u), p = I(d, m), v = P.MulSV(-1 / _, h.SelfSkew(), t.s_Jd1), y = P.MulSV(1 / f, u.SelfSkew(), t.s_Jd2), g = P.NegV(v, t.s_J1), x = P.SubVV(v, y, t.s_J2), C = y, b = a * P.DotVV(g, g) + c * P.DotVV(x, x) + l * P.DotVV(C, C); +if (0 !== b) { +b = 1 / b; +for (var A = p - this.m_as[i]; A > s; ) A = (p -= 2 * s) - this.m_as[i]; +for (;A < -s; ) A = (p += 2 * s) - this.m_as[i]; +var S = -this.m_k3 * b * A; +n.SelfMulAdd(a * S, g); +r.SelfMulAdd(c * S, x); +o.SelfMulAdd(l * S, C); +} +} +} +}; +t.prototype.Draw = function(t) { +for (var e = new z(.4, .5, .7), i = 0; i < this.m_count - 1; ++i) t.DrawSegment(this.m_ps[i], this.m_ps[i + 1], e); +}; +t.s_d = new P(); +t.s_d1 = new P(); +t.s_d2 = new P(); +t.s_Jd1 = new P(); +t.s_Jd2 = new P(); +t.s_J1 = new P(); +t.s_J2 = new P(); +return t; +})(); +t.b2Assert = function(t) { +for (var e = [], i = 1; i < arguments.length; i++) e[i - 1] = arguments[i]; +if (!t) throw new (Error.bind.apply(Error, [ void 0 ].concat(e)))(); +}; +t.b2Maybe = e; +t.b2_maxFloat = i; +t.b2_epsilon = n; +t.b2_epsilon_sq = r; +t.b2_pi = s; +t.b2_maxManifoldPoints = o; +t.b2_maxPolygonVertices = a; +t.b2_aabbExtension = .1; +t.b2_aabbMultiplier = 2; +t.b2_linearSlop = c; +t.b2_angularSlop = l; +t.b2_polygonRadius = h; +t.b2_maxSubSteps = 8; +t.b2_maxTOIContacts = 32; +t.b2_velocityThreshold = 1; +t.b2_maxLinearCorrection = .2; +t.b2_maxAngularCorrection = .13962634015955555; +t.b2_maxTranslation = 2; +t.b2_maxTranslationSquared = 4; +t.b2_maxRotation = 1.570796326795; +t.b2_maxRotationSquared = 2.4674011002726646; +t.b2_baumgarte = .2; +t.b2_toiBaumgarte = .75; +t.b2_invalidParticleIndex = u; +t.b2_maxParticleIndex = 2147483647; +t.b2_particleStride = .75; +t.b2_minParticleWeight = 1; +t.b2_maxParticlePressure = .25; +t.b2_maxParticleForce = .5; +t.b2_maxTriadDistance = 2; +t.b2_maxTriadDistanceSquared = 4; +t.b2_minParticleSystemBufferCapacity = 256; +t.b2_barrierCollisionTime = 2.5; +t.b2_timeToSleep = .5; +t.b2_linearSleepTolerance = .01; +t.b2_angularSleepTolerance = .03490658503988889; +t.b2Alloc = function(t) { +return null; +}; +t.b2Free = function(t) {}; +t.b2Log = function(t) { +for (var e = [], i = 1; i < arguments.length; i++) e[i - 1] = arguments[i]; +}; +t.b2Version = _; +t.b2_version = f; +t.b2_branch = "master"; +t.b2_commit = "fbf51801d80fc389d43dc46524520e89043b6faf"; +t.b2ParseInt = function(t) { +return parseInt(t, 10); +}; +t.b2ParseUInt = function(t) { +return Math.abs(parseInt(t, 10)); +}; +t.b2MakeArray = d; +t.b2MakeNullArray = function(t) { +for (var e = [], i = 0; i < t; ++i) e.push(null); +return e; +}; +t.b2MakeNumberArray = m; +t.b2_pi_over_180 = p; +t.b2_180_over_pi = v; +t.b2_two_pi = 6.28318530718; +t.b2Abs = y; +t.b2Min = g; +t.b2Max = x; +t.b2Clamp = C; +t.b2Swap = function(t, e) { +var i = t[0]; +t[0] = e[0]; +e[0] = i; +}; +t.b2IsValid = b; +t.b2Sq = A; +t.b2InvSqrt = S; +t.b2Sqrt = w; +t.b2Pow = T; +t.b2DegToRad = function(t) { +return t * p; +}; +t.b2RadToDeg = function(t) { +return t * v; +}; +t.b2Cos = E; +t.b2Sin = M; +t.b2Acos = B; +t.b2Asin = D; +t.b2Atan2 = I; +t.b2NextPowerOfTwo = function(t) { +t |= t >> 1 & 2147483647; +t |= t >> 2 & 1073741823; +t |= t >> 4 & 268435455; +t |= t >> 8 & 16777215; +return 1 + (t |= t >> 16 & 65535); +}; +t.b2IsPowerOfTwo = function(t) { +return t > 0 && 0 == (t & t - 1); +}; +t.b2Random = function() { +return 2 * Math.random() - 1; +}; +t.b2RandomRange = function(t, e) { +return (e - t) * Math.random() + t; +}; +t.b2Vec2 = P; +t.b2Vec2_zero = R; +t.b2Vec3 = L; +t.b2Mat22 = F; +t.b2Mat33 = O; +t.b2Rot = V; +t.b2Transform = N; +t.b2Sweep = k; +t.b2Color = z; +t.b2Draw = G; +t.b2Timer = U; +t.b2Counter = j; +t.b2GrowableStack = W; +t.b2BlockAllocator = H; +t.b2StackAllocator = q; +t.b2ContactFeature = yt; +t.b2ContactID = gt; +t.b2ManifoldPoint = xt; +t.b2Manifold = Ct; +t.b2WorldManifold = bt; +t.b2GetPointStates = function(e, i, n, r) { +var s; +for (s = 0; s < n.pointCount; ++s) { +var a = n.points[s].id.key; +e[s] = t.b2PointState.b2_removeState; +for (var c = 0, l = r.pointCount; c < l; ++c) if (r.points[c].id.key === a) { +e[s] = t.b2PointState.b2_persistState; +break; +} +} +for (;s < o; ++s) e[s] = t.b2PointState.b2_nullState; +for (s = 0; s < r.pointCount; ++s) { +a = r.points[s].id.key; +i[s] = t.b2PointState.b2_addState; +for (c = 0, l = n.pointCount; c < l; ++c) if (n.points[c].id.key === a) { +i[s] = t.b2PointState.b2_persistState; +break; +} +} +for (;s < o; ++s) i[s] = t.b2PointState.b2_nullState; +}; +t.b2ClipVertex = At; +t.b2RayCastInput = St; +t.b2RayCastOutput = wt; +t.b2AABB = Tt; +t.b2TestOverlapAABB = Et; +t.b2ClipSegmentToLine = Mt; +t.b2TestOverlapShape = Pt; +t.b2DistanceProxy = X; +t.b2SimplexCache = Y; +t.b2DistanceInput = J; +t.b2DistanceOutput = Z; +t.b2ShapeCastInput = K; +t.b2ShapeCastOutput = Q; +t.b2_gjk_reset = function() { +t.b2_gjkCalls = 0; +t.b2_gjkIters = 0; +t.b2_gjkMaxIters = 0; +}; +t.b2SimplexVertex = $; +t.b2Simplex = tt; +t.b2Distance = lt; +t.b2ShapeCast = function(t, e) { +t.iterations = 0; +t.lambda = 1; +t.normal.SetZero(); +t.point.SetZero(); +var i = e.proxyA, n = e.proxyB, r = x(i.m_radius, h) + x(n.m_radius, h), s = e.transformA, o = e.transformB, a = e.translationB, l = ht.Set(0, 0), u = 0, _ = ut; +_.m_count = 0; +for (var f = _.m_vertices, d = i.GetSupport(V.MulTRV(s.q, P.NegV(a, P.s_t1), P.s_t0)), m = N.MulXV(s, i.GetVertex(d), _t), p = n.GetSupport(V.MulTRV(o.q, a, P.s_t0)), v = N.MulXV(o, n.GetVertex(p), ft), g = P.SubVV(m, v, dt), C = x(h, r - h), b = .5 * c, A = 0; A < 20 && y(g.Length() - C) > b; ) { +t.iterations += 1; +d = i.GetSupport(V.MulTRV(s.q, P.NegV(g, P.s_t1), P.s_t0)); +m = N.MulXV(s, i.GetVertex(d), _t); +p = n.GetSupport(V.MulTRV(o.q, g, P.s_t0)); +v = N.MulXV(o, n.GetVertex(p), ft); +var S = P.SubVV(m, v, mt); +g.Normalize(); +var w = P.DotVV(g, S), T = P.DotVV(g, a); +if (w - C > u * T) { +if (T <= 0) return !1; +if ((u = (w - C) / T) > 1) return !1; +l.Copy(g).SelfNeg(); +_.m_count = 0; +} +var E = f[_.m_count]; +E.indexA = p; +E.wA.Copy(v).SelfMulAdd(u, a); +E.indexB = d; +E.wB.Copy(m); +E.w.Copy(E.wB).SelfSub(E.wA); +E.a = 1; +_.m_count += 1; +switch (_.m_count) { +case 1: +break; + +case 2: +_.Solve2(); +break; + +case 3: +_.Solve3(); +} +if (3 === _.m_count) return !1; +_.GetClosestPoint(g); +++A; +} +var M = pt, B = vt; +_.GetWitnessPoints(M, B); +if (g.LengthSquared() > 0) { +l.Copy(g).SelfNeg(); +l.Normalize(); +} +t.normal.Copy(l); +t.lambda = u; +t.iterations = A; +return !0; +}; +t.b2Pair = Ot; +t.b2BroadPhase = Vt; +t.b2PairLessThan = Nt; +t.b2TreeNode = Lt; +t.b2DynamicTree = Ft; +t.b2_toi_reset = function() { +t.b2_toiTime = 0; +t.b2_toiMaxTime = 0; +t.b2_toiCalls = 0; +t.b2_toiIters = 0; +t.b2_toiMaxIters = 0; +t.b2_toiRootIters = 0; +t.b2_toiMaxRootIters = 0; +}; +t.b2TOIInput = qt; +t.b2TOIOutput = Xt; +t.b2SeparationFunction = Yt; +t.b2TimeOfImpact = re; +t.b2CollideCircles = ae; +t.b2CollidePolygonAndCircle = ue; +t.b2CollidePolygons = Fe; +t.b2CollideEdgeAndCircle = We; +t.b2CollideEdgeAndPolygon = Je; +t.b2MassData = Ze; +t.b2Shape = Ke; +t.b2CircleShape = ti; +t.b2PolygonShape = ei; +t.b2EdgeShape = ii; +t.b2ChainShape = ni; +t.b2Filter = ri; +t.b2FixtureDef = si; +t.b2FixtureProxy = oi; +t.b2Fixture = ai; +t.b2BodyDef = ci; +t.b2Body = li; +t.b2World = zn; +t.b2DestructionListener = Ki; +t.b2ContactFilter = Qi; +t.b2ContactImpulse = $i; +t.b2ContactListener = tn; +t.b2QueryCallback = en; +t.b2RayCastCallback = nn; +t.b2Island = pn; +t.b2Profile = sn; +t.b2TimeStep = on; +t.b2Position = an; +t.b2Velocity = cn; +t.b2SolverData = ln; +t.b2ContactManager = rn; +t.b2MixFriction = Ni; +t.b2MixRestitution = ki; +t.b2ContactEdge = zi; +t.b2Contact = Gi; +t.b2ContactRegister = Ji; +t.b2ContactFactory = Zi; +t.g_blockSolve = !1; +t.b2VelocityConstraintPoint = hn; +t.b2ContactVelocityConstraint = un; +t.b2ContactPositionConstraint = _n; +t.b2ContactSolverDef = fn; +t.b2PositionSolverManifold = dn; +t.b2ContactSolver = mn; +t.b2CircleContact = Ui; +t.b2PolygonContact = ji; +t.b2PolygonAndCircleContact = Wi; +t.b2EdgeAndCircleContact = Hi; +t.b2EdgeAndPolygonContact = qi; +t.b2ChainAndCircleContact = Xi; +t.b2ChainAndPolygonContact = Yi; +t.b2Jacobian = hi; +t.b2JointEdge = ui; +t.b2JointDef = _i; +t.b2Joint = fi; +t.b2AreaJointDef = pi; +t.b2AreaJoint = vi; +t.b2DistanceJointDef = di; +t.b2DistanceJoint = mi; +t.b2FrictionJointDef = yi; +t.b2FrictionJoint = gi; +t.b2GearJointDef = xi; +t.b2GearJoint = Ci; +t.b2MotorJointDef = bi; +t.b2MotorJoint = Ai; +t.b2MouseJointDef = Si; +t.b2MouseJoint = wi; +t.b2PrismaticJointDef = Ti; +t.b2PrismaticJoint = Ei; +t.b2_minPulleyLength = 2; +t.b2PulleyJointDef = Mi; +t.b2PulleyJoint = Bi; +t.b2RevoluteJointDef = Di; +t.b2RevoluteJoint = Ii; +t.b2RopeJointDef = Pi; +t.b2RopeJoint = Ri; +t.b2WeldJointDef = Li; +t.b2WeldJoint = Fi; +t.b2WheelJointDef = Oi; +t.b2WheelJoint = Vi; +t.b2ControllerEdge = Gn; +t.b2Controller = Un; +t.b2BuoyancyController = jn; +t.b2ConstantAccelController = Wn; +t.b2ConstantForceController = Hn; +t.b2GravityController = qn; +t.b2TensorDampingController = Xn; +t.b2ParticleDef = vn; +t.b2CalculateParticleIterations = yn; +t.b2ParticleHandle = gn; +t.b2ParticleGroupDef = xn; +t.b2ParticleGroup = Cn; +t.b2GrowableBuffer = Rn; +t.b2FixtureParticleQueryCallback = Ln; +t.b2ParticleContact = Fn; +t.b2ParticleBodyContact = On; +t.b2ParticlePair = Vn; +t.b2ParticleTriad = Nn; +t.b2ParticleSystemDef = kn; +t.b2RopeDef = Yn; +t.b2Rope = Jn; +Object.defineProperty(t, "__esModule", { +value: !0 +}); +})); +}), {} ], +402: [ (function(i, n, r) { +"use strict"; +var s = "undefined" === ("object" === (e = typeof window) ? t(window) : e) ? global : window; +s.cc = s.cc || {}; +s._cc = s._cc || {}; +i("./predefine"); +i("./polyfill/string"); +i("./polyfill/misc"); +i("./polyfill/array"); +i("./polyfill/object"); +i("./polyfill/array-buffer"); +i("./polyfill/number"); +i("./polyfill/typescript"); +i("./cocos2d/core/predefine"); +i("./cocos2d"); +i("./extends"); +0; +n.exports = s.cc; +}), { +"./cocos2d": 328, +"./cocos2d/core/predefine": 226, +"./extends": 388, +"./package": void 0, +"./polyfill/array": 404, +"./polyfill/array-buffer": 403, +"./polyfill/misc": 405, +"./polyfill/number": 406, +"./polyfill/object": 407, +"./polyfill/string": 408, +"./polyfill/typescript": 409, +"./predefine": 410 +} ], +403: [ (function(t, e, i) { +"use strict"; +if (!ArrayBuffer.isView) { +var n = Object.getPrototypeOf(Object.getPrototypeOf(new Uint8Array())).constructor; +ArrayBuffer.isView = function(t) { +return t instanceof n; +}; +} +}), {} ], +404: [ (function(t, e, i) { +"use strict"; +Array.isArray || (Array.isArray = function(t) { +return "[object Array]" === Object.prototype.toString.call(t); +}); +Array.prototype.find || (Array.prototype.find = function(t) { +for (var e = this.length, i = 0; i < e; i++) { +var n = this[i]; +if (t.call(this, n, i, this)) return n; +} +}); +Array.prototype.includes || (Array.prototype.includes = function(t) { +return -1 !== this.indexOf(t); +}); +}), {} ], +405: [ (function(i, n, r) { +"use strict"; +Math.sign || (Math.sign = function(t) { +return 0 === (t = +t) || isNaN(t) ? t : t > 0 ? 1 : -1; +}); +Math.log2 || (Math.log2 = function(t) { +return Math.log(t) * Math.LOG2E; +}); +Number.isInteger || (Number.isInteger = function(i) { +return "number" === ("object" === (e = typeof i) ? t(i) : e) && isFinite(i) && Math.floor(i) === i; +}); +var s = window.performance || Date, o = Object.create(null); +console.time = function(t) { +o[t] = s.now(); +}; +console.timeEnd = function(t) { +var e = o[t], i = s.now() - e; +console.log(t + ": " + i + "ms"); +}; +}), {} ], +406: [ (function(t, e, i) { +"use strict"; +Number.parseFloat = Number.parseFloat || parseFloat; +Number.parseInt = Number.parseInt || parseInt; +}), {} ], +407: [ (function(t, e, i) { +"use strict"; +Object.assign || (Object.assign = function(t, e) { +return cc.js.mixin(t, e); +}); +Object.getOwnPropertyDescriptors || (Object.getOwnPropertyDescriptors = function(t) { +var e = {}, i = Object.getOwnPropertyNames(t); +Object.getOwnPropertySymbols && (i = i.concat(Object.getOwnPropertySymbols(t))); +for (var n = 0; n < i.length; ++n) { +var r = i[n]; +e[r] = Object.getOwnPropertyDescriptor(t, r); +} +return e; +}); +}), {} ], +408: [ (function(i, n, r) { +"use strict"; +String.prototype.startsWith || (String.prototype.startsWith = function(t, e) { +e = e || 0; +return this.lastIndexOf(t, e) === e; +}); +String.prototype.endsWith || (String.prototype.endsWith = function(i, n) { +("undefined" === ("object" === (e = typeof n) ? t(n) : e) || n > this.length) && (n = this.length); +n -= i.length; +var r = this.indexOf(i, n); +return -1 !== r && r === n; +}); +String.prototype.trimLeft || (String.prototype.trimLeft = function() { +return this.replace(/^\s+/, ""); +}); +}), {} ], +409: [ (function(i, n, r) { +"use strict"; +var s = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(t, e) { +t.__proto__ = e; +} || function(t, e) { +for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); +}; +window.__extends = function(t, e) { +s(t, e); +function i() { +this.constructor = t; +} +t.prototype = null === e ? Object.create(e) : (i.prototype = e.prototype, new i()); +}; +window.__assign = Object.assign || function(t) { +for (var e, i = 1, n = arguments.length; i < n; i++) { +e = arguments[i]; +for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); +} +return t; +}; +window.__rest = function(i, n) { +var r = {}; +for (var s in i) Object.prototype.hasOwnProperty.call(i, s) && n.indexOf(s) < 0 && (r[s] = i[s]); +if (null != i && "function" === ("object" === (e = typeof Object.getOwnPropertySymbols) ? t(Object.getOwnPropertySymbols) : e)) { +var o = 0; +for (s = Object.getOwnPropertySymbols(i); o < s.length; o++) n.indexOf(s[o]) < 0 && (r[s[o]] = i[s[o]]); +} +return r; +}; +window.__decorate = function(i, n, r, s) { +var o, a = arguments.length, c = a < 3 ? n : null === s ? s = Object.getOwnPropertyDescriptor(n, r) : s; +if ("object" === ("object" === (e = typeof Reflect) ? t(Reflect) : e) && "function" === ("object" === (e = typeof Reflect.decorate) ? t(Reflect.decorate) : e)) c = Reflect.decorate(i, n, r, s); else for (var l = i.length - 1; l >= 0; l--) (o = i[l]) && (c = (a < 3 ? o(c) : a > 3 ? o(n, r, c) : o(n, r)) || c); +return a > 3 && c && Object.defineProperty(n, r, c), c; +}; +window.__param = function(t, e) { +return function(i, n) { +e(i, n, t); +}; +}; +window.__metadata = function(i, n) { +if ("object" === ("object" === (e = typeof Reflect) ? t(Reflect) : e) && "function" === ("object" === (e = typeof Reflect.metadata) ? t(Reflect.metadata) : e)) return Reflect.metadata(i, n); +}; +window.__awaiter = function(t, e, i, n) { +return new (i || (i = Promise))(function(r, s) { +function o(t) { +try { +c(n.next(t)); +} catch (t) { +s(t); +} +} +function a(t) { +try { +c(n.throw(t)); +} catch (t) { +s(t); +} +} +function c(t) { +t.done ? r(t.value) : new i(function(e) { +e(t.value); +}).then(o, a); +} +c((n = n.apply(t, e || [])).next()); +}); +}; +window.__generator = function(i, n) { +var r, s, o, a, c = { +label: 0, +sent: function() { +if (1 & o[0]) throw o[1]; +return o[1]; +}, +trys: [], +ops: [] +}; +return a = { +next: l(0), +throw: l(1), +return: l(2) +}, "function" === ("object" === (e = typeof Symbol) ? t(Symbol) : e) && (a[Symbol.iterator] = function() { +return this; +}), a; +function l(t) { +return function(e) { +return h([ t, e ]); +}; +} +function h(t) { +if (r) throw new TypeError("Generator is already executing."); +for (;c; ) try { +if (r = 1, s && (o = 2 & t[0] ? s.return : t[0] ? s.throw || ((o = s.return) && o.call(s), +0) : s.next) && !(o = o.call(s, t[1])).done) return o; +(s = 0, o) && (t = [ 2 & t[0], o.value ]); +switch (t[0]) { +case 0: +case 1: +o = t; +break; + +case 4: +c.label++; +return { +value: t[1], +done: !1 +}; + +case 5: +c.label++; +s = t[1]; +t = [ 0 ]; +continue; + +case 7: +t = c.ops.pop(); +c.trys.pop(); +continue; + +default: +if (!(o = c.trys, o = o.length > 0 && o[o.length - 1]) && (6 === t[0] || 2 === t[0])) { +c = 0; +continue; +} +if (3 === t[0] && (!o || t[1] > o[0] && t[1] < o[3])) { +c.label = t[1]; +break; +} +if (6 === t[0] && c.label < o[1]) { +c.label = o[1]; +o = t; +break; +} +if (o && c.label < o[2]) { +c.label = o[2]; +c.ops.push(t); +break; +} +o[2] && c.ops.pop(); +c.trys.pop(); +continue; +} +t = n.call(i, c); +} catch (e) { +t = [ 6, e ]; +s = 0; +} finally { +r = o = 0; +} +if (5 & t[0]) throw t[1]; +return { +value: t[0] ? t[1] : void 0, +done: !0 +}; +} +}; +window.__exportStar = function(t, e) { +for (var i in t) e.hasOwnProperty(i) || (e[i] = t[i]); +}; +window.__values = function(i) { +var n = "function" === ("object" === (e = typeof Symbol) ? t(Symbol) : e) && i[Symbol.iterator], r = 0; +return n ? n.call(i) : { +next: function() { +i && r >= i.length && (i = void 0); +return { +value: i && i[r++], +done: !i +}; +} +}; +}; +window.__read = function(i, n) { +var r = "function" === ("object" === (e = typeof Symbol) ? t(Symbol) : e) && i[Symbol.iterator]; +if (!r) return i; +var s, o, a = r.call(i), c = []; +try { +for (;(void 0 === n || n-- > 0) && !(s = a.next()).done; ) c.push(s.value); +} catch (t) { +o = { +error: t +}; +} finally { +try { +s && !s.done && (r = a.return) && r.call(a); +} finally { +if (o) throw o.error; +} +} +return c; +}; +window.__spread = function() { +for (var t = [], e = 0; e < arguments.length; e++) t = t.concat(__read(arguments[e])); +return t; +}; +window.__await = function(t) { +return this instanceof __await ? (this.v = t, this) : new __await(t); +}; +window.__asyncGenerator = function(t, e, i) { +if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); +var n, r = i.apply(t, e || []), s = []; +return n = {}, o("next"), o("throw"), o("return"), n[Symbol.asyncIterator] = function() { +return this; +}, n; +function o(t) { +r[t] && (n[t] = function(e) { +return new Promise(function(i, n) { +s.push([ t, e, i, n ]) > 1 || a(t, e); +}); +}); +} +function a(t, e) { +try { +c(r[t](e)); +} catch (t) { +u(s[0][3], t); +} +} +function c(t) { +t.value instanceof __await ? Promise.resolve(t.value.v).then(l, h) : u(s[0][2], t); +} +function l(t) { +a("next", t); +} +function h(t) { +a("throw", t); +} +function u(t, e) { +(t(e), s.shift(), s.length) && a(s[0][0], s[0][1]); +} +}; +window.__asyncDelegator = function(t) { +var e, i; +return e = {}, n("next"), n("throw", (function(t) { +throw t; +})), n("return"), e[Symbol.iterator] = function() { +return this; +}, e; +function n(n, r) { +e[n] = t[n] ? function(e) { +return (i = !i) ? { +value: __await(t[n](e)), +done: "return" === n +} : r ? r(e) : e; +} : r; +} +}; +window.__asyncValues = function(i) { +if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); +var n, r = i[Symbol.asyncIterator]; +return r ? r.call(i) : (i = "function" === ("object" === (e = typeof __values) ? t(__values) : e) ? __values(i) : i[Symbol.iterator](), +n = {}, s("next"), s("throw"), s("return"), n[Symbol.asyncIterator] = function() { +return this; +}, n); +function s(t) { +n[t] = i[t] && function(e) { +return new Promise(function(n, r) { +o(n, r, (e = i[t](e)).done, e.value); +}); +}; +} +function o(t, e, i, n) { +Promise.resolve(n).then((function(e) { +t({ +value: e, +done: i +}); +}), e); +} +}; +window.__makeTemplateObject = function(t, e) { +Object.defineProperty ? Object.defineProperty(t, "raw", { +value: e +}) : t.raw = e; +return t; +}; +window.__importStar = function(t) { +if (t && t.__esModule) return t; +var e = {}; +if (null != t) for (var i in t) Object.hasOwnProperty.call(t, i) && (e[i] = t[i]); +e.default = t; +return e; +}; +window.__importDefault = function(t) { +return t && t.__esModule ? t : { +default: t +}; +}; +}), {} ], +410: [ (function(i, n, r) { +"use strict"; +var s = "undefined" === ("object" === (e = typeof window) ? t(window) : e) ? global : window; +function o(i, n) { +"undefined" === ("object" === (e = typeof s[i]) ? t(s[i]) : e) && (s[i] = n); +} +o("CC_BUILD", !1); +s.CC_BUILD = !0; +s.CC_TEST = !1; +s.CC_EDITOR = !1; +s.CC_PREVIEW = !1; +s.CC_DEV = !1; +s.CC_DEBUG = !1; +s.CC_JSB = !0; +s.CC_WECHATGAMESUB = !1; +s.CC_WECHATGAME = !1; +s.CC_QQPLAY = !1; +s.CC_RUNTIME = !1; +s.CC_SUPPORT_JIT = !0; +0; +s.CocosEngine = cc.ENGINE_VERSION = "2.1.3"; +}), {} ] +}, {}, [ 402 ]); +function t(t) { +return t && t.toString && "[object CallbackConstructor]" === t.toString() ? "function" : "object"; +} +var e = ""; +})(); \ No newline at end of file diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/js backups (useful for debugging)/project.js b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/js backups (useful for debugging)/project.js new file mode 100644 index 0000000..9c1631b --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/js backups (useful for debugging)/project.js @@ -0,0 +1,1884 @@ +window.__require = function e(t, n, o) { +function r(i, c) { +if (!n[i]) { +if (!t[i]) { +var s = i.split("/"); +s = s[s.length - 1]; +if (!t[s]) { +var u = "function" == typeof __require && __require; +if (!c && u) return u(s, !0); +if (a) return a(s, !0); +throw new Error("Cannot find module '" + i + "'"); +} +} +var p = n[i] = { +exports: {} +}; +t[i][0].call(p.exports, function(e) { +return r(t[i][1][e] || e); +}, p, p.exports, e, t, n, o); +} +return n[i].exports; +} +for (var a = "function" == typeof __require && __require, i = 0; i < o.length; i++) r(o[i]); +return r; +}({ +AudioConst: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "cc4cfzECmFE6KabaiuKVCDw", "AudioConst"); +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var o = function() { +function e() {} +e.HomeMusic = "music_home"; +e.GameplayMusic = "music_gameplay"; +e.ButtonClick = "SFX_button"; +e.CorrectChoice = "SFX_CorrectChoice"; +e.WrongChoice = "SFX_WrongChoice"; +e.ResultScreen = "SFX_ResultScreen"; +return e; +}(); +n.default = o; +cc._RF.pop(); +}, {} ], +AudioLibrary: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "4abc9ElxBtPKqTdb14OTRsl", "AudioLibrary"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = cc._decorator, i = a.ccclass, c = a.property, s = function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.bgmKeys = []; +t.bgmClips = []; +t.sfxKeys = []; +t.sfxClips = []; +return t; +} +t.prototype.getBGClipByKey = function(e) { +var t = this.bgmKeys.indexOf(e); +return -1 !== t ? this.bgmClips[t] : null; +}; +t.prototype.getSFXClipByKey = function(e) { +var t = this.sfxKeys.indexOf(e); +return -1 !== t ? this.sfxClips[t] : null; +}; +r([ c([ cc.String ]) ], t.prototype, "bgmKeys", void 0); +r([ c({ +type: [ cc.AudioClip ] +}) ], t.prototype, "bgmClips", void 0); +r([ c([ cc.String ]) ], t.prototype, "sfxKeys", void 0); +r([ c({ +type: [ cc.AudioClip ] +}) ], t.prototype, "sfxClips", void 0); +return t = r([ i ], t); +}(cc.Component); +n.default = s; +cc._RF.pop(); +}, {} ], +AudioManager: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "123e7GGrYxDpp8bfvEJrMu6", "AudioManager"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("../events/GameEvents"), i = e("../gameState/GameState"), c = e("../interfaces/InterfaceManager"), s = e("./AudioConst"), u = e("./AudioLibrary"), p = cc._decorator, l = p.ccclass, f = p.property, h = function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.audioLibrary = null; +t.musicSource = null; +t.sfxSource = null; +t.isCrossfading = !1; +t.crossfadeDuration = 1; +t.isMuted = !1; +return t; +} +n = t; +Object.defineProperty(t, "Instance", { +get: function() { +this._instance || (this._instance = new n()); +return this._instance; +}, +enumerable: !0, +configurable: !0 +}); +t.prototype.initialise = function() { +var e = this; +c.default.Instance.registerInterface(this); +a.default.onGameStateChange.on(function(t) { +var n = t.prevState, o = t.newState, r = t.isOverlayState; +e.gameEventsOnOnGameStateChange(n, o, r); +}); +}; +t.prototype.resolveDependencies = function() {}; +t.prototype.terminate = function() {}; +t.prototype.isTypeOfBootStrapListener = function() { +return !0; +}; +t.prototype.getClassName = function() { +return "AudioManager"; +}; +t.prototype.gameEventsOnOnGameStateChange = function(e, t, n) { +switch (t) { +case i.GameState.Home: +this.playMusic(s.default.HomeMusic); +this.isMuted || this.updateMusicVolume(1); +break; + +case i.GameState.Gameplay: +this.isMuted || this.updateMusicVolume(.25); +break; + +case i.GameState.Result: +this.playSFX(s.default.ResultScreen); +this.isMuted || this.updateMusicVolume(1); +} +}; +t.prototype.playMusic = function(e) { +if (!this.isMuted) { +var t = this.audioLibrary.getBGClipByKey(e); +if (t) { +if (!this.musicSource.clip || this.musicSource.clip.name !== t.name) if (this.musicSource.clip) this.crossFadeMusic(t); else { +this.musicSource.clip = t; +this.musicSource.volume = 1; +this.musicSource.loop = !0; +this.musicSource.play(); +} +} else console.error("No background music found for key: " + e); +} +}; +t.prototype.crossFadeMusic = function(e) { +var t = this; +if (!this.isCrossfading && !this.isMuted) { +this.isCrossfading = !0; +var n = this.musicSource.volume, o = this.node.addComponent(cc.AudioSource); +o.clip = e; +o.volume = 0; +o.loop = !0; +o.play(); +var r = this.crossfadeDuration / 30, a = 0; +this.schedule(function() { +var e = ++a / 30; +t.musicSource.volume = n * (1 - e); +o.volume = n * e; +if (a >= 30) { +t.unscheduleAllCallbacks(); +t.musicSource.stop(); +t.node.removeComponent(t.musicSource); +t.musicSource = o; +t.isCrossfading = !1; +} +}, r, 29); +} +}; +t.prototype.playSFX = function(e) { +if (!this.isMuted) { +var t = this.audioLibrary.getSFXClipByKey(e); +t ? cc.audioEngine.playEffect(t, !1) : console.error("No sound effect found for key: " + e); +} +}; +t.prototype.updateSFXVolume = function(e) { +this.sfxSource.volume = e; +}; +t.prototype.updateMusicVolume = function(e) { +this.musicSource.volume = e; +}; +t.prototype.mute = function(e) { +this.updateMusicVolume(e ? 0 : 1); +this.updateMusicVolume(e ? 0 : 1); +this.isMuted = e; +}; +var n; +r([ f(u.default) ], t.prototype, "audioLibrary", void 0); +r([ f(cc.AudioSource) ], t.prototype, "musicSource", void 0); +r([ f(cc.AudioSource) ], t.prototype, "sfxSource", void 0); +return t = n = r([ l ], t); +}(cc.Component); +n.default = h; +cc._RF.pop(); +}, { +"../events/GameEvents": "GameEvents", +"../gameState/GameState": "GameState", +"../interfaces/InterfaceManager": "InterfaceManager", +"./AudioConst": "AudioConst", +"./AudioLibrary": "AudioLibrary" +} ], +BaseScreen: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "511fbIIVa9CebljzOLcL/fA", "BaseScreen"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = cc._decorator, i = a.ccclass, c = (a.property, function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.gameState = null; +return t; +} +t.prototype.initialize = function() { +this.onInit(); +}; +t.prototype.onInit = function() {}; +t.prototype.activate = function() { +for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; +this.node.active = !0; +this.onShow(); +}; +t.prototype.onShow = function() {}; +t.prototype.deactivate = function() { +this.node.active = !1; +this.onHide(); +}; +t.prototype.onHide = function() {}; +return t = r([ i ], t); +}(cc.Component)); +n.default = c; +cc._RF.pop(); +}, {} ], +BaseTile: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "763ffnFveVAp4lAJSM2TP7h", "BaseTile"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("../../core/events/GameEvents"), i = cc._decorator, c = i.ccclass, s = i.property, u = function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.tileSprite = null; +t.tileType = null; +t.isInteractive = !1; +return t; +} +t.prototype.onLoad = function() { +this.node.on(cc.Node.EventType.TOUCH_END, this.onTapped, this); +}; +t.prototype.reset = function() { +this.node.opacity = 255; +this.node.scale = 1; +this.setInteractive(!0); +}; +t.prototype.setInteractive = function(e) { +this.isInteractive = e; +e ? this.node.on(cc.Node.EventType.TOUCH_END, this.onTapped, this) : this.node.off(cc.Node.EventType.TOUCH_END, this.onTapped, this); +}; +t.prototype.onTapped = function() { +if (this.isInteractive) { +a.default.dispatchTileTapped(this.tileType, this.node); +a.default.dispatchScoreChange(this.tileType); +} +}; +t.prototype.onDisable = function() { +this.setInteractive(!1); +}; +t.prototype.onDestroy = function() { +this.node.off(cc.Node.EventType.TOUCH_END, this.onTapped, this); +}; +r([ s(cc.Sprite) ], t.prototype, "tileSprite", void 0); +return t = r([ c ], t); +}(cc.Component); +n.default = u; +cc._RF.pop(); +}, { +"../../core/events/GameEvents": "GameEvents" +} ], +BootStrap: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "c39f3uvHeRPyrJQZ40wJjgQ", "BootStrap"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = cc._decorator, i = a.ccclass, c = a.property, s = function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.allManagers = []; +return t; +} +t.prototype.onLoad = function() { +var e = this; +this.allManagers.forEach(function(t) { +e.getBootStrapListenerComponent(t).initialise(); +}); +}; +t.prototype.start = function() { +var e = this; +this.allManagers.forEach(function(t) { +e.getBootStrapListenerComponent(t).resolveDependencies(); +}); +}; +t.prototype.onDestroy = function() { +var e = this; +this && this.allManagers && this.allManagers.forEach(function(t) { +if (t && t.isValid) try { +e.getBootStrapListenerComponent(t).terminate(); +} catch (e) { +console.error("Error processing manager:", t, e); +} +}); +}; +t.prototype.isBootStrapListener = function(e) { +return "function" == typeof e.isTypeOfBootStrapListener; +}; +t.prototype.getBootStrapListenerComponent = function(e) { +for (var t = 0, n = e.getComponents(cc.Component); t < n.length; t++) { +var o = n[t]; +if (this.isBootStrapListener(o)) return o; +} +return null; +}; +r([ c([ cc.Node ]) ], t.prototype, "allManagers", void 0); +return t = r([ i ], t); +}(cc.Component); +n.default = s; +cc._RF.pop(); +}, {} ], +CameraShake: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "ce9a6vcwhtKCr4quEQn2A0R", "CameraShake"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("../../core/events/GameEvents"), i = e("../Tile/TileType"), c = cc._decorator, s = c.ccclass, u = (c.property, +function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.duration = .2; +t.strength = 10; +t.originalPosition = cc.v2(); +return t; +} +t.prototype.onLoad = function() { +this.originalPosition = this.node.getPosition(); +}; +t.prototype.start = function() { +var e = this; +a.default.onTileTapped.on(function(t) { +var n = t.tiletype; +e.gameEventsOnOnTileTapped(n); +}); +}; +t.prototype.onDestroy = function() { +var e = this; +a.default.onTileTapped.off(function(t) { +var n = t.tiletype; +e.gameEventsOnOnTileTapped(n); +}); +}; +t.prototype.triggerShake = function() { +this.node.stopAllActions(); +this.node.setPosition(this.originalPosition); +for (var e = this.duration / 5, t = [], n = 0; n < 5; n++) { +var o = (2 * Math.random() - 1) * this.strength, r = (2 * Math.random() - 1) * this.strength, a = cc.v2(this.originalPosition.x + o, this.originalPosition.y + r); +t.push(cc.moveTo(e, a)); +} +t.push(cc.moveTo(e, this.originalPosition)); +var i = cc.sequence(t); +this.node.runAction(i); +}; +t.prototype.gameEventsOnOnTileTapped = function(e) { +switch (e) { +case i.TileType.BonePile: +case i.TileType.SpikedCrystal: +case i.TileType.Skull: +this.triggerShake(); +} +}; +return t = r([ s ], t); +}(cc.Component)); +n.default = u; +cc._RF.pop(); +}, { +"../../core/events/GameEvents": "GameEvents", +"../Tile/TileType": "TileType" +} ], +CountdownTimer: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "3e77dpWWNBM6KZlOMZ7J8JB", "CountdownTimer"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("../../core/events/GameEvents"), i = cc._decorator, c = i.ccclass, s = i.property, u = function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.startTime = 60; +t.timeLeft = 0; +t.isTimerRunning = !1; +return t; +} +t.prototype.onLoad = function() { +this.resetTimer(); +}; +t.prototype.update = function(e) { +if (this.isTimerRunning) { +this.timeLeft -= e; +if (this.timeLeft <= 0) { +this.timeLeft = 0; +this.isTimerRunning = !1; +a.default.dispatchonGameTimerComplete(); +} +} +}; +t.prototype.startTimer = function() { +this.timeLeft = this.startTime; +this.isTimerRunning = !0; +}; +t.prototype.pauseTimer = function() { +this.isTimerRunning = !1; +}; +t.prototype.resumeTimer = function() { +this.timeLeft > 0 && (this.isTimerRunning = !0); +}; +t.prototype.resetTimer = function() { +this.timeLeft = this.startTime; +this.isTimerRunning = !1; +}; +t.prototype.getFormattedTime = function() { +var e = Math.floor(this.timeLeft), t = Math.floor(e / 60), n = e % 60; +return this.pad(t) + ":" + this.pad(n); +}; +t.prototype.pad = function(e) { +return e < 10 ? "0" + e : e.toString(); +}; +r([ s ], t.prototype, "startTime", void 0); +return t = r([ c ], t); +}(cc.Component); +n.default = u; +cc._RF.pop(); +}, { +"../../core/events/GameEvents": "GameEvents" +} ], +Dictionary: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "c3d8egeSApF2qD3c03DrzVj", "Dictionary"); +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var o = function() { +function e() { +this._keys = []; +this._values = []; +} +e.prototype.set = function(e, t) { +var n = this._keys.indexOf(e); +if (-1 === n) { +this._keys.push(e); +this._values.push(t); +} else this._values[n] = t; +}; +e.prototype.get = function(e) { +var t = this._keys.indexOf(e); +return -1 === t ? void 0 : this._values[t]; +}; +e.prototype.has = function(e) { +return -1 !== this._keys.indexOf(e); +}; +e.prototype.delete = function(e) { +var t = this._keys.indexOf(e); +if (-1 === t) return !1; +this._keys.splice(t, 1); +this._values.splice(t, 1); +return !0; +}; +e.prototype.clear = function() { +this._keys.length = 0; +this._values.length = 0; +}; +Object.defineProperty(e.prototype, "size", { +get: function() { +return this._keys.length; +}, +enumerable: !0, +configurable: !0 +}); +e.prototype.keys = function() { +return this._keys.slice(); +}; +e.prototype.values = function() { +return this._values.slice(); +}; +e.prototype.entries = function() { +var e = this; +return this._keys.map(function(t, n) { +return [ t, e._values[n] ]; +}); +}; +e.prototype.forEach = function(e) { +for (var t = 0; t < this._keys.length; t++) e(this._values[t], this._keys[t]); +}; +return e; +}(); +n.Dictionary = o; +cc._RF.pop(); +}, {} ], +EventEmitter: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "50a53O+Gm1GQruIFIBZMw35", "EventEmitter"); +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var o = function() { +function e() { +this.listeners = []; +} +e.prototype.on = function(e) { +this.listeners.push(e); +}; +e.prototype.off = function(e) { +var t = this.listeners.indexOf(e); +t > -1 && this.listeners.splice(t, 1); +}; +e.prototype.emit = function(e) { +this.listeners.forEach(function(t) { +return t(e); +}); +}; +return e; +}(); +n.default = o; +cc._RF.pop(); +}, {} ], +GameEvents: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "5f558jACx9NmpuJepW0Jte7", "GameEvents"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("./EventEmitter"), i = cc._decorator.ccclass, c = function(e) { +o(t, e); +function t() { +return null !== e && e.apply(this, arguments) || this; +} +t.dispatchGameStateChanged = function(e, t, n) { +this.onGameStateChange.emit({ +prevState: e, +newState: t, +isOverlayState: n +}); +}; +t.dispatchTileTapped = function(e, t) { +this.onTileTapped.emit({ +tiletype: e, +tile: t +}); +}; +t.dispatchScoreChange = function(e) { +this.onScoreChange.emit({ +tiletype: e +}); +}; +t.dispatchonGameTimerComplete = function() { +this.onGameTimerComplete.emit({}); +}; +t.dispatchonGameChanceOver = function() { +this.onGameChanceOver.emit({}); +}; +t.onGameStateChange = new a.default(); +t.onTileTapped = new a.default(); +t.onScoreChange = new a.default(); +t.onGameTimerComplete = new a.default(); +t.onGameChanceOver = new a.default(); +return t = r([ i ], t); +}(cc.Component); +n.default = c; +cc._RF.pop(); +}, { +"./EventEmitter": "EventEmitter" +} ], +GameStateManager: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "05dc9k0flZMrqJhcCjlTz8F", "GameStateManager"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = cc._decorator, i = a.ccclass, c = (a.property, e("../events/GameEvents")), s = e("../interfaces/InterfaceManager"), u = e("./GameState"), p = function(e) { +o(t, e); +function t() { +return null !== e && e.apply(this, arguments) || this; +} +t.prototype.forceChangeGameState = function(e) { +this.setGameState(e); +}; +t.prototype.initialise = function() { +s.default.Instance.registerInterface(this); +}; +t.prototype.resolveDependencies = function() { +this.setGameStateToHomeScreen(); +}; +t.prototype.terminate = function() {}; +t.prototype.isTypeOfBootStrapListener = function() { +return !0; +}; +t.prototype.getClassName = function() { +return "GameStateManager"; +}; +t.prototype.setGameStateToHomeScreen = function() { +this.setGameState(u.GameState.Home); +}; +t.prototype.setGameState = function(e, t) { +void 0 === t && (t = !1); +if (this.currentGameState !== e) { +c.default.dispatchGameStateChanged(this.currentGameState, e, t); +this.currentGameState = e; +} +}; +return t = r([ i ], t); +}(cc.Component); +n.GameStateManager = p; +cc._RF.pop(); +}, { +"../events/GameEvents": "GameEvents", +"../interfaces/InterfaceManager": "InterfaceManager", +"./GameState": "GameState" +} ], +GameState: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "b499bRqYS9GprB2LP+Gi5OV", "GameState"); +Object.defineProperty(n, "__esModule", { +value: !0 +}); +(function(e) { +e[e.None = 0] = "None"; +e[e.Splash = 1] = "Splash"; +e[e.Home = 2] = "Home"; +e[e.Gameplay = 3] = "Gameplay"; +e[e.Result = 4] = "Result"; +e[e.Tutorial = 5] = "Tutorial"; +})(n.GameState || (n.GameState = {})); +cc._RF.pop(); +}, {} ], +GameplayManager: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "4f558Cn335P4bZ3Hbw0scsX", "GameplayManager"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("../../core/events/GameEvents"), i = e("../../core/gameState/GameState"), c = e("../../core/interfaces/InterfaceManager"), s = e("../Tile/TileType"), u = cc._decorator, p = u.ccclass, l = (u.property, +function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.gameStateManager = null; +t.tileGridManager = null; +t.scoreManager = null; +return t; +} +t.prototype.initialise = function() { +var e = this; +c.default.Instance.registerInterface(this); +a.default.onGameStateChange.on(function(t) { +var n = t.prevState, o = t.newState, r = t.isOverlayState; +e.gameEventsOnOnGameStateChange(n, o, r); +}); +a.default.onTileTapped.on(function(t) { +var n = t.tiletype; +e.gameEventsOnOnTileTapped(n); +}); +}; +t.prototype.resolveDependencies = function() { +this.gameStateManager = c.default.Instance.getInterface("GameStateManager"); +this.tileGridManager = c.default.Instance.getInterface("TileGridManager"); +this.scoreManager = c.default.Instance.getInterface("ScoreManager"); +}; +t.prototype.terminate = function() { +var e = this; +a.default.onGameStateChange.off(function(t) { +var n = t.prevState, o = t.newState, r = t.isOverlayState; +e.gameEventsOnOnGameStateChange(n, o, r); +}); +a.default.onTileTapped.off(function(t) { +var n = t.tiletype; +e.gameEventsOnOnTileTapped(n); +}); +}; +t.prototype.isTypeOfBootStrapListener = function() { +return !0; +}; +t.prototype.getClassName = function() { +return "GameplayManager"; +}; +t.prototype.setGameStatus = function(e) { +this.isGameWon = e; +this.gameStateManager.forceChangeGameState(i.GameState.Result); +}; +t.prototype.gameEventsOnOnGameStateChange = function(e, t, n) { +switch (t) { +case i.GameState.Gameplay: +this.startGamePlay(); +break; + +case i.GameState.Result: +case i.GameState.Home: +e == i.GameState.Gameplay && this.endGameplay(); +} +}; +t.prototype.startGamePlay = function() { +this.resetVars(); +this.tileGridManager.loadGame(); +}; +t.prototype.endGameplay = function() { +this.tileGridManager.resetGame(); +this.resetVars(); +}; +t.prototype.resetVars = function() { +this.chances = 5; +this.scoreManager.resetScore(); +}; +t.prototype.gameEventsOnOnTileTapped = function(e) { +switch (e) { +case s.TileType.BonePile: +this.chances = Math.max(0, this.chances - 2); +0 == this.chances && a.default.dispatchonGameChanceOver(); +break; + +case s.TileType.SpikedCrystal: +this.chances = Math.max(0, this.chances - 1); +0 == this.chances && a.default.dispatchonGameChanceOver(); +break; + +case s.TileType.Skull: +this.chances = 0; +} +}; +t.prototype.getChanceCount = function() { +return this.chances; +}; +return t = r([ p ], t); +}(cc.Component)); +n.default = l; +cc._RF.pop(); +}, { +"../../core/events/GameEvents": "GameEvents", +"../../core/gameState/GameState": "GameState", +"../../core/interfaces/InterfaceManager": "InterfaceManager", +"../Tile/TileType": "TileType" +} ], +GameplayScreen: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "084d0cAw0xEOISLUCZvr16o", "GameplayScreen"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("../../core/events/GameEvents"), i = e("../../core/gameState/GameState"), c = e("../../core/interfaces/InterfaceManager"), s = e("../../core/ui/BaseScreen"), u = e("../utils/CountdownTimer"), p = cc._decorator, l = p.ccclass, f = p.property, h = function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.timer = null; +t.score = null; +t.chance = null; +t.remainingtime = null; +t.gamePlayManager = null; +t.scoreManager = null; +return t; +} +t.prototype.onInit = function() { +this.gameState = i.GameState.Gameplay; +}; +t.prototype.start = function() { +var e = this; +a.default.onScoreChange.on(function(t) { +var n = t.tiletype; +e.gameEventsOnScoreChange(n); +}); +}; +t.prototype.onDestroy = function() { +var e = this; +a.default.onScoreChange.off(function(t) { +var n = t.tiletype; +e.gameEventsOnScoreChange(n); +}); +}; +t.prototype.onShow = function() { +e.prototype.onShow.call(this); +this.gamePlayManager = c.default.Instance.getInterface("GameplayManager"); +this.scoreManager = c.default.Instance.getInterface("ScoreManager"); +}; +t.prototype.onHide = function() { +e.prototype.onHide.call(this); +}; +t.prototype.update = function() { +this.remainingtime && this.remainingtime && (this.remainingtime.string = this.timer.getFormattedTime()); +}; +t.prototype.gameEventsOnScoreChange = function(e) { +this.score.string = this.scoreManager.getScore().toString(); +this.chance.string = this.gamePlayManager.getChanceCount().toString(); +var t = parseInt(localStorage.getItem("score") || "0"); +this.scoreManager.getScore() > t && localStorage.setItem("score", String(this.scoreManager.getScore())); +}; +r([ f(u.default) ], t.prototype, "timer", void 0); +r([ f(cc.Label) ], t.prototype, "score", void 0); +r([ f(cc.Label) ], t.prototype, "chance", void 0); +r([ f(cc.Label) ], t.prototype, "remainingtime", void 0); +return t = r([ l ], t); +}(s.default); +n.default = h; +cc._RF.pop(); +}, { +"../../core/events/GameEvents": "GameEvents", +"../../core/gameState/GameState": "GameState", +"../../core/interfaces/InterfaceManager": "InterfaceManager", +"../../core/ui/BaseScreen": "BaseScreen", +"../utils/CountdownTimer": "CountdownTimer" +} ], +HomeScreen: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "04adavy3RlObLhlz4N2sw1s", "HomeScreen"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("../../core/audio/AudioConst"), i = e("../../core/gameState/GameState"), c = e("../../core/interfaces/InterfaceManager"), s = e("../../core/ui/BaseScreen"), u = cc._decorator, p = u.ccclass, l = u.property, f = function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.playButton = null; +t.tutorialButton = null; +t.musicButton = null; +return t; +} +t.prototype.onInit = function() { +this.gameState = i.GameState.Home; +}; +t.prototype.onShow = function() { +e.prototype.onShow.call(this); +this.gameStateManager = c.default.Instance.getInterface("GameStateManager"); +this.audioManager = c.default.Instance.getInterface("AudioManager"); +this.playButton && this.playButton.node.on(cc.Node.EventType.TOUCH_END, this.onPlayClicked, this); +this.tutorialButton && this.tutorialButton.node.on(cc.Node.EventType.TOUCH_END, this.onTutorialClicked, this); +this.musicButton && this.musicButton.node.on("toggle", this.onMusicClicked, this); +}; +t.prototype.onHide = function() { +e.prototype.onHide.call(this); +this.playButton && this.playButton.node.off(cc.Node.EventType.TOUCH_END, this.onPlayClicked, this); +this.tutorialButton && this.tutorialButton.node.off(cc.Node.EventType.TOUCH_END, this.onTutorialClicked, this); +this.musicButton && this.musicButton.node.off("toggle", this.onMusicClicked, this); +}; +t.prototype.onPlayClicked = function() { +this.audioManager.playSFX(a.default.ButtonClick); +this.gameStateManager.forceChangeGameState(i.GameState.Gameplay); +}; +t.prototype.onTutorialClicked = function() { +this.audioManager.playSFX(a.default.ButtonClick); +this.gameStateManager.forceChangeGameState(i.GameState.Tutorial); +}; +t.prototype.onMusicClicked = function() { +this.audioManager.playSFX(a.default.ButtonClick); +this.audioManager.mute(this.musicButton.isChecked); +}; +r([ l(cc.Button) ], t.prototype, "playButton", void 0); +r([ l(cc.Button) ], t.prototype, "tutorialButton", void 0); +r([ l(cc.Toggle) ], t.prototype, "musicButton", void 0); +return t = r([ p ], t); +}(s.default); +n.default = f; +cc._RF.pop(); +}, { +"../../core/audio/AudioConst": "AudioConst", +"../../core/gameState/GameState": "GameState", +"../../core/interfaces/InterfaceManager": "InterfaceManager", +"../../core/ui/BaseScreen": "BaseScreen" +} ], +IAudioManager: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "c86d8FXez5BR6H1FiYw3pUl", "IAudioManager"); +Object.defineProperty(n, "__esModule", { +value: !0 +}); +cc._RF.pop(); +}, {} ], +IBase: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "1b478SQijZCV7HKlAmUK4Zt", "IBase"); +Object.defineProperty(n, "__esModule", { +value: !0 +}); +cc._RF.pop(); +}, {} ], +IBootStrapListener: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "534fbcXoblEkoYuof6y+CZw", "IBootStrapListener"); +Object.defineProperty(n, "__esModule", { +value: !0 +}); +cc._RF.pop(); +}, {} ], +IGameStateManager: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "05b35K8gPFEw7HR2ZcoDQW9", "IGameStateManager"); +Object.defineProperty(n, "__esModule", { +value: !0 +}); +cc._RF.pop(); +}, {} ], +IGameplayManager: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "b6139LaAmVJdqK+MdIjKMKH", "IGameplayManager"); +Object.defineProperty(n, "__esModule", { +value: !0 +}); +cc._RF.pop(); +}, {} ], +IUiManager: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "15e5ecY7UVBdYFow6lz/pI5", "IUiManager"); +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var o = cc._decorator; +o.ccclass, o.property; +cc._RF.pop(); +}, {} ], +InterfaceManager: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "561d9eA/2hP/oADKkeMcX4e", "InterfaceManager"); +var o = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var r = e("../utils/Dictionary"), a = cc._decorator, i = a.ccclass, c = (a.property, +function() { +function e() { +this._interfaceDictionary = new r.Dictionary(); +} +t = e; +Object.defineProperty(e, "Instance", { +get: function() { +this._instance || (this._instance = new t()); +return this._instance; +}, +enumerable: !0, +configurable: !0 +}); +e.prototype.registerInterface = function(e) { +var t = e.getClassName(); +this._interfaceDictionary.has(t) || this._interfaceDictionary.set(t, e); +}; +e.prototype.getInterface = function(e) { +var t = this._interfaceDictionary.get(e); +if (t) return t; +}; +var t; +return e = t = o([ i ], e); +}()); +n.default = c; +cc._RF.pop(); +}, { +"../utils/Dictionary": "Dictionary" +} ], +ResultScreen: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "6af31PJ8dxKwKdl4byG6WMF", "ResultScreen"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("../../core/audio/AudioConst"), i = e("../../core/gameState/GameState"), c = e("../../core/interfaces/InterfaceManager"), s = e("../../core/ui/BaseScreen"), u = cc._decorator, p = u.ccclass, l = u.property, f = function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.homeButton = null; +t.restartButton = null; +t.score = null; +t.bestScore = null; +t.gameStateManager = null; +t.audioManager = null; +t.scoreManager = null; +return t; +} +t.prototype.onInit = function() { +this.gameState = i.GameState.Result; +}; +t.prototype.onShow = function() { +e.prototype.onShow.call(this); +this.gameStateManager = c.default.Instance.getInterface("GameStateManager"); +this.audioManager = c.default.Instance.getInterface("AudioManager"); +this.scoreManager = c.default.Instance.getInterface("ScoreManager"); +this.homeButton && this.homeButton.node.on(cc.Node.EventType.TOUCH_END, this.onHomeClicked, this); +this.restartButton && this.restartButton.node.on(cc.Node.EventType.TOUCH_END, this.onRestartClicked, this); +this.score.string = this.scoreManager.getScore().toString(); +this.bestScore.string = parseInt(localStorage.getItem("score") || "0").toString(); +}; +t.prototype.onHide = function() { +e.prototype.onHide.call(this); +this.homeButton && this.homeButton.node.off(cc.Node.EventType.TOUCH_END, this.onHomeClicked, this); +this.restartButton && this.restartButton.node.off(cc.Node.EventType.TOUCH_END, this.onRestartClicked, this); +}; +t.prototype.onHomeClicked = function() { +this.audioManager.playSFX(a.default.ButtonClick); +this.gameStateManager.forceChangeGameState(i.GameState.Home); +}; +t.prototype.onRestartClicked = function() { +this.audioManager.playSFX(a.default.ButtonClick); +this.gameStateManager.forceChangeGameState(i.GameState.Gameplay); +}; +r([ l(cc.Button) ], t.prototype, "homeButton", void 0); +r([ l(cc.Button) ], t.prototype, "restartButton", void 0); +r([ l(cc.Label) ], t.prototype, "score", void 0); +r([ l(cc.Label) ], t.prototype, "bestScore", void 0); +return t = r([ p ], t); +}(s.default); +n.default = f; +cc._RF.pop(); +}, { +"../../core/audio/AudioConst": "AudioConst", +"../../core/gameState/GameState": "GameState", +"../../core/interfaces/InterfaceManager": "InterfaceManager", +"../../core/ui/BaseScreen": "BaseScreen" +} ], +ScoreManager: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "4fcc8dmW45JLbzvA09Xw0iM", "ScoreManager"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("../../core/events/GameEvents"), i = e("../../core/interfaces/InterfaceManager"), c = e("../Tile/TileType"), s = cc._decorator, u = s.ccclass, p = (s.property, +function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.score = 0; +return t; +} +t.prototype.initialise = function() { +var e = this; +i.default.Instance.registerInterface(this); +a.default.onScoreChange.on(function(t) { +var n = t.tiletype; +e.gameEventsOnScoreChange(n); +}); +}; +t.prototype.resolveDependencies = function() {}; +t.prototype.terminate = function() { +var e = this; +a.default.onScoreChange.on(function(t) { +var n = t.tiletype; +e.gameEventsOnScoreChange(n); +}); +}; +t.prototype.isTypeOfBootStrapListener = function() { +return !0; +}; +t.prototype.getClassName = function() { +return "ScoreManager"; +}; +t.prototype.gameEventsOnScoreChange = function(e) { +switch (e) { +case c.TileType.Diamond: +this.updateScore(500); +break; + +case c.TileType.GreenStone: +this.updateScore(100); +break; + +case c.TileType.BonePile: +case c.TileType.GreenStone: +this.updateScore(-50); +break; + +case c.TileType.SpikedCrystal: +case c.TileType.Skull: +} +}; +t.prototype.updateScore = function(e) { +this.score = Math.max(0, this.score + e); +}; +t.prototype.resetScore = function() { +this.score = 0; +}; +t.prototype.getScore = function() { +return this.score; +}; +return t = r([ u ], t); +}(cc.Component)); +n.default = p; +cc._RF.pop(); +}, { +"../../core/events/GameEvents": "GameEvents", +"../../core/interfaces/InterfaceManager": "InterfaceManager", +"../Tile/TileType": "TileType" +} ], +TileGridManager: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "813151XGj9NzpXno+dgpkMi", "TileGridManager"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("./TilePoolManager"), i = e("./BaseTile"), c = e("./TileType"), s = e("../../core/events/GameEvents"), u = e("../../core/interfaces/InterfaceManager"), p = e("../../core/gameState/GameState"), l = e("../utils/CountdownTimer"), f = e("../../core/audio/AudioConst"), h = cc._decorator, y = h.ccclass, d = h.property, m = function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.tilePoolManager = null; +t.timer = null; +t.gridRoot = null; +t.columns = 4; +t.rows = 5; +t.tileSize = new cc.Vec2(150, 150); +t.grid = []; +t.rowTappedFlags = []; +t.inputLocked = !1; +t.gameOver = !1; +t.gameStateManager = null; +t.audioManager = null; +return t; +} +t.prototype.initialise = function() { +var e = this; +u.default.Instance.registerInterface(this); +s.default.onTileTapped.on(function(t) { +var n = t.tiletype, o = t.tile; +e.onTileTapped(n, o); +}); +s.default.onGameTimerComplete.on(function() { +e.onGameTimerComplete(); +}); +s.default.onGameChanceOver.on(function() { +e.onGameTimerComplete(); +}); +}; +t.prototype.resolveDependencies = function() { +this.tilePoolManager = u.default.Instance.getInterface("TilePoolManager"); +this.gameStateManager = u.default.Instance.getInterface("GameStateManager"); +this.audioManager = u.default.Instance.getInterface("AudioManager"); +}; +t.prototype.terminate = function() { +var e = this; +s.default.onTileTapped.off(function(t) { +var n = t.tiletype, o = t.tile; +e.onTileTapped(n, o); +}); +s.default.onGameTimerComplete.off(function() { +e.onGameTimerComplete(); +}); +s.default.onGameChanceOver.off(function() { +e.onGameTimerComplete(); +}); +}; +t.prototype.isTypeOfBootStrapListener = function() { +return !0; +}; +t.prototype.getClassName = function() { +return "TileGridManager"; +}; +t.prototype.loadGame = function() { +this.resetGame(); +this.spawnInitialGrid(); +this.updateRowInteractions(); +this.gameOver = !1; +this.timer.startTimer(); +}; +t.prototype.spawnInitialGrid = function() { +for (var e = 0; e < this.rows; e++) this.spawnRowAt(e); +}; +t.prototype.spawnRowAt = function(e) { +for (var t = [ c.TileType.GreenStone, c.TileType.Diamond ], n = [ c.TileType.Skull, c.TileType.BonePile, c.TileType.SpikedCrystal ], o = t[Math.floor(Math.random() * t.length)], r = Math.floor(Math.random() * this.columns), a = [], s = 0; s < this.columns; s++) { +var u = s === r ? o : n[Math.floor(Math.random() * n.length)], p = this.tilePoolManager.getTile(u); +p.parent = this.gridRoot; +var l = (s - (this.columns - 1) / 2) * this.tileSize.x, f = e * this.tileSize.y; +p.setPosition(l, f); +var h = p.getComponent(i.default); +h.tileType = u; +h.reset(); +a.push(p); +} +this.grid[e] = a; +this.rowTappedFlags[e] = !1; +}; +t.prototype.onTileTapped = function(e, t) { +var n = this; +if (!this.inputLocked && !this.gameOver) { +if (!this.rowTappedFlags[0]) { +this.rowTappedFlags[0] = !0; +this.updateRowInteractions(); +var o = cc.sequence(cc.scaleTo(.05, 1.1), cc.scaleTo(.05, 1)); +t.runAction(o); +for (var r = 0, a = this.grid[0]; r < a.length; r++) { +a[r].getComponent(i.default).setInteractive(!1); +} +e === c.TileType.GreenStone || e === c.TileType.Diamond ? this.audioManager.playSFX(f.default.CorrectChoice) : this.audioManager.playSFX(f.default.WrongChoice); +if (e !== c.TileType.Skull) { +this.inputLocked = !0; +this.fadeAndRemoveRow(0, function() { +n.shiftGridReferencesDown(); +n.spawnRowAt(n.rows - 1); +n.updateRowInteractions(); +n.inputLocked = !1; +}); +} else { +this.gameStateManager.forceChangeGameState(p.GameState.Result); +this.gameOver = !0; +} +} +} +}; +t.prototype.fadeAndRemoveRow = function(e, t) { +for (var n = this, o = this.grid[e], r = 0, a = function(a) { +var s = cc.fadeOut(.2), u = cc.sequence(s, cc.callFunc(function() { +var c = a.getComponent(i.default); +n.tilePoolManager.putTile(a, c.tileType); +if (++r === o.length) { +n.grid.splice(e, 1); +n.rowTappedFlags.splice(e, 1); +t(); +} +}, c)); +a.runAction(u); +}, c = this, s = 0, u = o; s < u.length; s++) { +a(u[s]); +} +}; +t.prototype.shiftGridReferencesDown = function() { +for (var e = 0; e < this.grid.length; e++) for (var t = 0, n = this.grid[e]; t < n.length; t++) { +var o = n[t], r = o.x, a = e * this.tileSize.y; +o.setPosition(r, a); +} +}; +t.prototype.updateRowInteractions = function() { +for (var e = 0; e < this.grid.length; e++) for (var t = 0 === e, n = this.rowTappedFlags[e], o = 0, r = this.grid[e]; o < r.length; o++) { +r[o].getComponent(i.default).setInteractive(t && !n); +} +}; +t.prototype.resetGame = function() { +for (var e = 0, t = this.grid; e < t.length; e++) for (var n = 0, o = t[e]; n < o.length; n++) { +var r = o[n]; +r.stopAllActions(); +var a = r.getComponent(i.default); +this.tilePoolManager.putTile(r, a.tileType); +} +this.grid = []; +this.rowTappedFlags = []; +this.inputLocked = !1; +}; +t.prototype.onGameTimerComplete = function() { +this.gameOver = !0; +this.inputLocked = !0; +for (var e = 0, t = this.grid; e < t.length; e++) for (var n = 0, o = t[e]; n < o.length; n++) { +var r = o[n]; +r.stopAllActions(); +r.getComponent(i.default).setInteractive(!1); +} +this.gameStateManager.forceChangeGameState(p.GameState.Result); +}; +r([ d(a.default) ], t.prototype, "tilePoolManager", void 0); +r([ d(l.default) ], t.prototype, "timer", void 0); +r([ d(cc.Node) ], t.prototype, "gridRoot", void 0); +r([ d ], t.prototype, "columns", void 0); +r([ d ], t.prototype, "rows", void 0); +r([ d(cc.Vec2) ], t.prototype, "tileSize", void 0); +return t = r([ y ], t); +}(cc.Component); +n.default = m; +cc._RF.pop(); +}, { +"../../core/audio/AudioConst": "AudioConst", +"../../core/events/GameEvents": "GameEvents", +"../../core/gameState/GameState": "GameState", +"../../core/interfaces/InterfaceManager": "InterfaceManager", +"../utils/CountdownTimer": "CountdownTimer", +"./BaseTile": "BaseTile", +"./TilePoolManager": "TilePoolManager", +"./TileType": "TileType" +} ], +TilePoolManager: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "ffc47yK4EFJ9J6T6TaBT+fZ", "TilePoolManager"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("../../core/interfaces/InterfaceManager"), i = cc._decorator, c = i.ccclass, s = i.property, u = function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.tilePrefabs = []; +t.pools = []; +return t; +} +t.prototype.initialise = function() { +a.default.Instance.registerInterface(this); +this.createPool(); +}; +t.prototype.resolveDependencies = function() {}; +t.prototype.terminate = function() {}; +t.prototype.isTypeOfBootStrapListener = function() { +return !0; +}; +t.prototype.getClassName = function() { +return "TilePoolManager"; +}; +t.prototype.createPool = function() { +for (var e = 0; e < this.tilePrefabs.length; e++) { +for (var t = new cc.NodePool(), n = 0; n < 10; n++) { +var o = cc.instantiate(this.tilePrefabs[e]); +t.put(o); +} +this.pools[e] = t; +} +}; +t.prototype.getTile = function(e) { +var t = this.pools[e]; +return t && t.size() > 0 ? t.get() : cc.instantiate(this.tilePrefabs[e]); +}; +t.prototype.putTile = function(e, t) { +var n = this.pools[t]; +if (n) { +e.removeFromParent(!1); +n.put(e); +} else e.destroy(); +}; +r([ s({ +type: [ cc.Prefab ] +}) ], t.prototype, "tilePrefabs", void 0); +return t = r([ c ], t); +}(cc.Component); +n.default = u; +cc._RF.pop(); +}, { +"../../core/interfaces/InterfaceManager": "InterfaceManager" +} ], +TileType: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "af4adITxspHgJDpCoJTJP7e", "TileType"); +Object.defineProperty(n, "__esModule", { +value: !0 +}); +(function(e) { +e[e.GreenStone = 0] = "GreenStone"; +e[e.Diamond = 1] = "Diamond"; +e[e.SpikedCrystal = 2] = "SpikedCrystal"; +e[e.BonePile = 3] = "BonePile"; +e[e.Skull = 4] = "Skull"; +})(n.TileType || (n.TileType = {})); +cc._RF.pop(); +}, {} ], +TutorialScreen: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "f400are055HoI5MVT5w+0HO", "TutorialScreen"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("../../core/audio/AudioConst"), i = e("../../core/gameState/GameState"), c = e("../../core/interfaces/InterfaceManager"), s = e("../../core/ui/BaseScreen"), u = cc._decorator, p = u.ccclass, l = u.property, f = function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.homeButton = null; +return t; +} +t.prototype.onInit = function() { +this.gameState = i.GameState.Tutorial; +}; +t.prototype.onShow = function() { +e.prototype.onShow.call(this); +this.gameStateManager = c.default.Instance.getInterface("GameStateManager"); +this.audioManager = c.default.Instance.getInterface("AudioManager"); +this.homeButton && this.homeButton.node.on(cc.Node.EventType.TOUCH_END, this.onHomeClicked, this); +}; +t.prototype.onHide = function() { +e.prototype.onHide.call(this); +this.homeButton && this.homeButton.node.off(cc.Node.EventType.TOUCH_END, this.onHomeClicked, this); +}; +t.prototype.onHomeClicked = function() { +this.audioManager.playSFX(a.default.ButtonClick); +this.gameStateManager.forceChangeGameState(i.GameState.Home); +}; +r([ l(cc.Button) ], t.prototype, "homeButton", void 0); +return t = r([ p ], t); +}(s.default); +n.default = f; +cc._RF.pop(); +}, { +"../../core/audio/AudioConst": "AudioConst", +"../../core/gameState/GameState": "GameState", +"../../core/interfaces/InterfaceManager": "InterfaceManager", +"../../core/ui/BaseScreen": "BaseScreen" +} ], +UiManager: [ function(e, t, n) { +"use strict"; +cc._RF.push(t, "0bb0b9bOGBLjJ8OHGVHG16B", "UiManager"); +var o = this && this.__extends || function() { +var e = function(t, n) { +return (e = Object.setPrototypeOf || { +__proto__: [] +} instanceof Array && function(e, t) { +e.__proto__ = t; +} || function(e, t) { +for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); +})(t, n); +}; +return function(t, n) { +e(t, n); +function o() { +this.constructor = t; +} +t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o()); +}; +}(), r = this && this.__decorate || function(e, t, n, o) { +var r, a = arguments.length, i = a < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o; +if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) i = Reflect.decorate(e, t, n, o); else for (var c = e.length - 1; c >= 0; c--) (r = e[c]) && (i = (a < 3 ? r(i) : a > 3 ? r(t, n, i) : r(t, n)) || i); +return a > 3 && i && Object.defineProperty(t, n, i), i; +}; +Object.defineProperty(n, "__esModule", { +value: !0 +}); +var a = e("../events/GameEvents"), i = e("../gameState/GameState"), c = e("../interfaces/InterfaceManager"), s = e("../utils/Dictionary"), u = e("./BaseScreen"), p = cc._decorator, l = p.ccclass, f = p.property, h = function(e) { +o(t, e); +function t() { +var t = null !== e && e.apply(this, arguments) || this; +t.assignableScreens = []; +t.availableScreens = new s.Dictionary(); +t.stateScreenMap = new s.Dictionary(); +t.wasOverlayState = !1; +return t; +} +t.prototype.initialise = function() { +var e = this; +this.configure(); +c.default.Instance.registerInterface(this); +this.stateScreenMap.set(i.GameState.Home, this.getScreen(i.GameState.Home)); +this.stateScreenMap.set(i.GameState.Gameplay, this.getScreen(i.GameState.Gameplay)); +this.stateScreenMap.set(i.GameState.Result, this.getScreen(i.GameState.Result)); +this.stateScreenMap.set(i.GameState.Tutorial, this.getScreen(i.GameState.Tutorial)); +a.default.onGameStateChange.on(function(t) { +var n = t.prevState, o = t.newState, r = t.isOverlayState; +e.gameEventsOnOnGameStateChange(n, o, r); +}); +}; +t.prototype.resolveDependencies = function() {}; +t.prototype.terminate = function() { +var e = this; +a.default.onGameStateChange.off(function(t) { +var n = t.prevState, o = t.newState, r = t.isOverlayState; +e.gameEventsOnOnGameStateChange(n, o, r); +}); +}; +t.prototype.isTypeOfBootStrapListener = function() { +return !0; +}; +t.prototype.getClassName = function() { +return "UiManager"; +}; +t.prototype.activate = function(e) { +this.availableScreens.get(e).activate(); +}; +t.prototype.deactivate = function(e) { +this.availableScreens.get(e).deactivate(); +}; +t.prototype.getScreen = function(e) { +return this.availableScreens.get(e); +}; +t.prototype.configure = function() { +var e = this; +this.availableScreens = new s.Dictionary(); +this.assignableScreens.forEach(function(t) { +var n = t.getComponent(u.default); +n.deactivate(); +n.initialize(); +e.availableScreens.set(n.gameState, n); +}); +}; +t.prototype.gameEventsOnOnGameStateChange = function(e, t, n) { +if (!n) { +var o = this.stateScreenMap.get(e); +o && o.deactivate(); +} +if (!this.wasOverlayState) { +var r = this.stateScreenMap.get(t); +r && r.activate(); +} +this.wasOverlayState = n; +}; +r([ f([ cc.Node ]) ], t.prototype, "assignableScreens", void 0); +return t = r([ l ], t); +}(cc.Component); +n.default = h; +cc._RF.pop(); +}, { +"../events/GameEvents": "GameEvents", +"../gameState/GameState": "GameState", +"../interfaces/InterfaceManager": "InterfaceManager", +"../utils/Dictionary": "Dictionary", +"./BaseScreen": "BaseScreen" +} ] +}, {}, [ "AudioConst", "AudioLibrary", "AudioManager", "IAudioManager", "BootStrap", "IBootStrapListener", "EventEmitter", "GameEvents", "GameState", "GameStateManager", "IGameStateManager", "IBase", "InterfaceManager", "BaseScreen", "IUiManager", "UiManager", "Dictionary", "BaseTile", "TileGridManager", "TilePoolManager", "TileType", "GameplayManager", "IGameplayManager", "ScoreManager", "GameplayScreen", "HomeScreen", "ResultScreen", "TutorialScreen", "CameraShake", "CountdownTimer" ]); \ No newline at end of file diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/js backups (useful for debugging)/settings.js b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/js backups (useful for debugging)/settings.js new file mode 100644 index 0000000..986aabf --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/js backups (useful for debugging)/settings.js @@ -0,0 +1 @@ +window._CCSettings={platform:"ios",groupList:["default"],collisionMatrix:[[true]],rawAssets:{assets:{},internal:{"14TDKXr2NJ6LjvHPops74o":["effects/builtin-2d-gray-sprite.effect",0],"0ek66qC1NOQLjgYmi04HvX":["effects/builtin-2d-spine.effect",0],"28dPjdQWxEQIG3VVl1Qm6T":["effects/builtin-2d-sprite.effect",0],c0BAyVxX9JzZy8EjFrc9DU:["effects/builtin-clear-stencil.effect",0],"796vrvt+9F2Zw/WR3INvx6":["effects/builtin-unlit-transparent.effect",0],"6dkeWRTOBGXICfYQ7JUBnG":["effects/builtin-unlit.effect",0],"6fgBCSDDdPMInvyNlggls2":["materials/builtin-2d-base.mtl",1],"3ae7efMv1CLq2ilvUY/tQi":["materials/builtin-2d-gray-sprite.mtl",1],"7a/QZLET9IDreTiBfRn2PD":["materials/builtin-2d-spine.mtl",1],"ecpdLyjvZBwrvm+cedCcQy":["materials/builtin-2d-sprite.mtl",1],cffgu4qBxEqa150o1DmRAy:["materials/builtin-clear-stencil.mtl",1],"2aKWBXJHxKHLvrBUi2yYZQ":["materials/builtin-unlit.mtl",1]}},assetTypes:["cc.EffectAsset","cc.Material"],launchScene:"db://assets/Artifacts/Scene/StepOfDoom.fire",scenes:[{url:"db://assets/Artifacts/Scene/StepOfDoom.fire",uuid:0}],packedAssets:{"013fee4c6":["9ch7dfxwFAjJtmqFZlEczL",4],"03509fa71":["02delMVqdBD70a/HSD99FK","25CVJHuldK3qRGNH8mEf1N","272qL8GtxL+K2zJQcf6t/9","393UR9K4NHxIHRZkRgnU90","3e32iPfRVK0ZN+p/UW6mTj","45TnYhEcRJWqJt2bJwcSAY","4bBOApOT9PPpM539BGVWbG","5eVio4JPRBG5V9axGICIeZ","71VhFCTINJM6/Ky3oX9nBT","79WgtFfS5GWIaGDterE4Rh","7b7MQnWIBPJI+AD6Nxmlrm","8ft9ixM1tKrbNVrj+FIpm8","b4P/PCArtIdIH38t6mlw8Y","b5Y42G+SBE3LY8wWNc6CTq","c4BNbuIKVH/I0CF0Ccf9nv","c6XjAC+TdHAa1AfKLS3Ktc","d8HsitJHxOYqo801xBk8ev","deU2NBkaFP/7F/HyYWWL2J","e8Ueib+qJEhL6mXAHdnwbi","ebq3dnF5hNSYJKQ0u3223c","f5SgcmqmxBMpqponAHCr5q","f8QPG+4ypFvrlknDxXyVgW"],"05b8387d4":["49UV4iAkFNJqgzP2bFjcx8",1],"07bf3f1e8":[3,"f4AdwTj2pCd5nbAqQzirGN"],"07f75f594":["30rwV39bFPl5vxjQXwvewJ",2],"0a2fc7fe9":["06/R3oIf5IuLKgS09DkfQ1","0cuVnu4/1Iw5sdljl4hHzw","29FYIk+N1GYaeWH/q1NxQO","4dOVMpuapC14EgLzRwnDz9","4fgzxTFtRLvKTQpMimZh7B","72J8arbXJOW7lmTtqizsU2",0,1,"8bctp+O/dJH4PKdG0PN+b7","8eYYdH8pNEoqTjDDRz7yGa","90H0qyJrJAFrruOD/dPEya","9bvaMerUlDyary99mJa6xp","a2MjXRFdtLlYQ5ouAFv/+R",5,2,3,"c7FjGs6JZAWYNXFWB+YeKI","d44ALIR9xKGLBN4dA33OOG","e97GVMl6JHh5Ml5qEDdSGa",4,"edrT2jT5BHwrSKFxvJ2QtF","f0BIwQ8D5Ml7nTNQbh1YlS","f141HWxi5EOpGhMei8RSbj"],"0d3585312":["2d0axDjqRAyK16dy6NQSHv",5]},md5AssetsMap:{},orientation:"",debug:false,subpackages:{},uuids:["76ZbKpK9dHqIaIIS7A9PsN","88g2KF+RNMUr1ElanxVnIs","bcG/DYWUpDU7Gqv3wdsjgd","bfZmvjxg5NGY+JKnpSLTgY","ea9gdg70hAzoIygF94ys/K","af/oGJlNZNg6OKH0Stj3ce"]}; \ No newline at end of file diff --git a/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/jsb-adapter/jsb-builtin.js b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/jsb-adapter/jsb-builtin.js new file mode 100644 index 0000000..8a2d868 --- /dev/null +++ b/GameUploadDocuments/2.StepOfDoom/Build/jsb-link/jsb-adapter/jsb-builtin.js @@ -0,0 +1,8227 @@ +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 1 ? end : this.data.length), type, this.encoding); + }; + FB_proto.toString = function () { + return "[object Blob]"; + }; + FB_proto.close = function () { + this.size = 0; + delete this.data; + }; + return FakeBlobBuilder; + }(); + + exports.Blob = function (blobParts, options) { + var type = options ? options.type || "" : ""; + var builder = new BlobBuilder(); + if (blobParts) { + for (var i = 0, len = blobParts.length; i < len; i++) { + if (Uint8Array && blobParts[i] instanceof Uint8Array) { + builder.append(blobParts[i].buffer); + } else { + builder.append(blobParts[i]); + } + } + } + var blob = builder.getBlob(type); + if (!blob.slice && blob.webkitSlice) { + blob.slice = blob.webkitSlice; + } + return blob; + }; + + var getPrototypeOf = Object.getPrototypeOf || function (object) { + return object.__proto__; + }; + exports.Blob.prototype = getPrototypeOf(new exports.Blob()); + }); +})(typeof self !== "undefined" && self || typeof window !== "undefined" && window || typeof global !== "undefined" && global || undefined.content || undefined); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],2:[function(require,module,exports){ +"use strict"; + +!function () { + function e(e) { + this.message = e; + }var t = "undefined" != typeof exports ? exports : "undefined" != typeof self ? self : $.global, + r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.prototype = new Error(), e.prototype.name = "InvalidCharacterError", t.btoa || (t.btoa = function (t) { + for (var o, n, a = String(t), i = 0, f = r, c = ""; a.charAt(0 | i) || (f = "=", i % 1); c += f.charAt(63 & o >> 8 - i % 1 * 8)) { + if (n = a.charCodeAt(i += .75), n > 255) throw new e("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");o = o << 8 | n; + }return c; + }), t.atob || (t.atob = function (t) { + var o = String(t).replace(/[=]+$/, "");if (o.length % 4 == 1) throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for (var n, a, i = 0, f = 0, c = ""; a = o.charAt(f++); ~a && (n = i % 4 ? 64 * n + a : a, i++ % 4) ? c += String.fromCharCode(255 & n >> (-2 * i & 6)) : 0) { + a = r.indexOf(a); + }return c; + }); +}(); + +},{}],3:[function(require,module,exports){ +'use strict'; + +var GL_COMMAND_ACTIVE_TEXTURE = 0; +var GL_COMMAND_ATTACH_SHADER = 1; +var GL_COMMAND_BIND_ATTRIB_LOCATION = 2; +var GL_COMMAND_BIND_BUFFER = 3; +var GL_COMMAND_BIND_FRAME_BUFFER = 4; +var GL_COMMAND_BIND_RENDER_BUFFER = 5; +var GL_COMMAND_BIND_TEXTURE = 6; +var GL_COMMAND_BLEND_COLOR = 7; +var GL_COMMAND_BLEND_EQUATION = 8; +var GL_COMMAND_BLEND_EQUATION_SEPARATE = 9; +var GL_COMMAND_BLEND_FUNC = 10; +var GL_COMMAND_BLEND_FUNC_SEPARATE = 11; +var GL_COMMAND_BUFFER_DATA = 12; +var GL_COMMAND_BUFFER_SUB_DATA = 13; +var GL_COMMAND_CLEAR = 14; +var GL_COMMAND_CLEAR_COLOR = 15; +var GL_COMMAND_CLEAR_DEPTH = 16; +var GL_COMMAND_CLEAR_STENCIL = 17; +var GL_COMMAND_COLOR_MASK = 18; +var GL_COMMAND_COMMIT = 19; +var GL_COMMAND_COMPILE_SHADER = 20; +var GL_COMMAND_COMPRESSED_TEX_IMAGE_2D = 21; +var GL_COMMAND_COMPRESSED_TEX_SUB_IMAGE_2D = 22; +var GL_COMMAND_COPY_TEX_IMAGE_2D = 23; +var GL_COMMAND_COPY_TEX_SUB_IMAGE_2D = 24; +var GL_COMMAND_CULL_FACE = 25; +var GL_COMMAND_DELETE_BUFFER = 26; +var GL_COMMAND_DELETE_FRAME_BUFFER = 27; +var GL_COMMAND_DELETE_PROGRAM = 28; +var GL_COMMAND_DELETE_RENDER_BUFFER = 29; +var GL_COMMAND_DELETE_SHADER = 30; +var GL_COMMAND_DELETE_TEXTURE = 31; +var GL_COMMAND_DEPTH_FUNC = 32; +var GL_COMMAND_DEPTH_MASK = 33; +var GL_COMMAND_DEPTH_RANGE = 34; +var GL_COMMAND_DETACH_SHADER = 35; +var GL_COMMAND_DISABLE = 36; +var GL_COMMAND_DISABLE_VERTEX_ATTRIB_ARRAY = 37; +var GL_COMMAND_DRAW_ARRAYS = 38; +var GL_COMMAND_DRAW_ELEMENTS = 39; +var GL_COMMAND_ENABLE = 40; +var GL_COMMAND_ENABLE_VERTEX_ATTRIB_ARRAY = 41; +var GL_COMMAND_FINISH = 42; +var GL_COMMAND_FLUSH = 43; +var GL_COMMAND_FRAME_BUFFER_RENDER_BUFFER = 44; +var GL_COMMAND_FRAME_BUFFER_TEXTURE_2D = 45; +var GL_COMMAND_FRONT_FACE = 46; +var GL_COMMAND_GENERATE_MIPMAP = 47; +var GL_COMMAND_HINT = 48; +var GL_COMMAND_LINE_WIDTH = 49; +var GL_COMMAND_LINK_PROGRAM = 50; +var GL_COMMAND_PIXEL_STOREI = 51; +var GL_COMMAND_POLYGON_OFFSET = 52; +var GL_COMMAND_RENDER_BUFFER_STORAGE = 53; +var GL_COMMAND_SAMPLE_COVERAGE = 54; +var GL_COMMAND_SCISSOR = 55; +var GL_COMMAND_SHADER_SOURCE = 56; +var GL_COMMAND_STENCIL_FUNC = 57; +var GL_COMMAND_STENCIL_FUNC_SEPARATE = 58; +var GL_COMMAND_STENCIL_MASK = 59; +var GL_COMMAND_STENCIL_MASK_SEPARATE = 60; +var GL_COMMAND_STENCIL_OP = 61; +var GL_COMMAND_STENCIL_OP_SEPARATE = 62; +var GL_COMMAND_TEX_IMAGE_2D = 63; +var GL_COMMAND_TEX_PARAMETER_F = 64; +var GL_COMMAND_TEX_PARAMETER_I = 65; +var GL_COMMAND_TEX_SUB_IMAGE_2D = 66; +var GL_COMMAND_UNIFORM_1F = 67; +var GL_COMMAND_UNIFORM_1FV = 68; +var GL_COMMAND_UNIFORM_1I = 69; +var GL_COMMAND_UNIFORM_1IV = 70; +var GL_COMMAND_UNIFORM_2F = 71; +var GL_COMMAND_UNIFORM_2FV = 72; +var GL_COMMAND_UNIFORM_2I = 73; +var GL_COMMAND_UNIFORM_2IV = 74; +var GL_COMMAND_UNIFORM_3F = 75; +var GL_COMMAND_UNIFORM_3FV = 76; +var GL_COMMAND_UNIFORM_3I = 77; +var GL_COMMAND_UNIFORM_3IV = 78; +var GL_COMMAND_UNIFORM_4F = 79; +var GL_COMMAND_UNIFORM_4FV = 80; +var GL_COMMAND_UNIFORM_4I = 81; +var GL_COMMAND_UNIFORM_4IV = 82; +var GL_COMMAND_UNIFORM_MATRIX_2FV = 83; +var GL_COMMAND_UNIFORM_MATRIX_3FV = 84; +var GL_COMMAND_UNIFORM_MATRIX_4FV = 85; +var GL_COMMAND_USE_PROGRAM = 86; +var GL_COMMAND_VALIDATE_PROGRAM = 87; +var GL_COMMAND_VERTEX_ATTRIB_1F = 88; +var GL_COMMAND_VERTEX_ATTRIB_2F = 89; +var GL_COMMAND_VERTEX_ATTRIB_3F = 90; +var GL_COMMAND_VERTEX_ATTRIB_4F = 91; +var GL_COMMAND_VERTEX_ATTRIB_1FV = 92; +var GL_COMMAND_VERTEX_ATTRIB_2FV = 93; +var GL_COMMAND_VERTEX_ATTRIB_3FV = 94; +var GL_COMMAND_VERTEX_ATTRIB_4FV = 95; +var GL_COMMAND_VERTEX_ATTRIB_POINTER = 96; +var GL_COMMAND_VIEW_PORT = 97; + +var gl = __gl; + +// _gl save the orignal gl functions. +var _gl = {}; +for (var k in gl) { + _gl[k] = gl[k]; +} + +var total_size = 100000; +var next_index = 0; +var buffer_data; +var commandCount = 0; + +// Batch GL commands is enabled by default. +function batchGLCommandsToNative() { + if (gl._flushCommands) { + if (isSupportTypeArray()) { + console.log('Enable batch GL commands optimization!'); + attachMethodOpt(); + buffer_data = new Float32Array(total_size); + } else { + console.log('Disable batch GL commands, TypedArray Native API isn\'t supported!'); + } + } else { + console.log('Disable batch GL commands, _flushCommands isn\'t binded!'); + } +} + +function disableBatchGLCommandsToNative() { + // Reset __gl variable to the default one. + flushCommands(); + for (var k in _gl) { + __gl[k] = _gl[k]; + } + console.log('Disable batch GL commands optimization!'); + jsb.disableBatchGLCommandsToNative(); +} + +function flushCommands() { + if (next_index > 0) { + gl._flushCommands(next_index, buffer_data, commandCount); + next_index = 0; + commandCount = 0; + } +} + +function activeTextureOpt(texture) { + // console.log('GLOpt: activeTexture'); + if (next_index + 2 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_ACTIVE_TEXTURE; + buffer_data[next_index + 1] = texture; + next_index += 2; + ++commandCount; +} + +function attachShaderOpt(program, shader) { + // console.log('GLOpt: attachShader'); + if (next_index + 3 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_ATTACH_SHADER; + buffer_data[next_index + 1] = program ? program._id : 0; + buffer_data[next_index + 2] = shader ? shader._id : 0; + next_index += 3; + ++commandCount; +} + +function bindAttribLocationOpt(program, index, name) { + // console.log('GLOpt: bindAttribLocation'); + flushCommands(); + _gl.bindAttribLocation(program, index, name); +} + +function bindBufferOpt(target, buffer) { + // console.log('GLOpt: bindBuffer: ' + (buffer? buffer._id : null)); + if (next_index + 3 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_BIND_BUFFER; + buffer_data[next_index + 1] = target; + buffer_data[next_index + 2] = buffer ? buffer._id : 0; + next_index += 3; + ++commandCount; +} + +function bindFramebufferOpt(target, framebuffer) { + // console.log('GLOpt: bindFramebuffer'); + if (next_index + 3 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_BIND_FRAME_BUFFER; + buffer_data[next_index + 1] = target; + buffer_data[next_index + 2] = framebuffer ? framebuffer._id : 0; + next_index += 3; + ++commandCount; +} + +function bindRenderbufferOpt(target, renderbuffer) { + // console.log('GLOpt: bindRenderbuffer'); + if (next_index + 3 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_BIND_RENDER_BUFFER; + buffer_data[next_index + 1] = target; + buffer_data[next_index + 2] = renderbuffer ? renderbuffer._id : 0; + next_index += 3; + ++commandCount; +} + +function bindTextureOpt(target, texture) { + // console.log('GLOpt: bindTexture'); + if (next_index + 3 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_BIND_TEXTURE; + buffer_data[next_index + 1] = target; + buffer_data[next_index + 2] = texture ? texture._id : 0; + next_index += 3; + ++commandCount; +} + +function blendColorOpt(red, green, blue, alpha) { + // console.log('GLOpt: blendColor'); + if (next_index + 5 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_BLEND_COLOR; + buffer_data[next_index + 1] = red; + buffer_data[next_index + 2] = green; + buffer_data[next_index + 3] = blue; + buffer_data[next_index + 4] = alpha; + next_index += 5; + ++commandCount; +} + +function blendEquationOpt(mode) { + // console.log('GLOpt: blendEquation'); + if (next_index + 2 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_BLEND_EQUATION; + buffer_data[next_index + 1] = mode; + next_index += 2; + ++commandCount; +} + +function blendEquationSeparateOpt(modeRGB, modeAlpha) { + // console.log('GLOpt: blendEquationSeparate'); + if (next_index + 3 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_BLEND_EQUATION_SEPARATE; + buffer_data[next_index + 1] = modeRGB; + buffer_data[next_index + 2] = modeAlpha; + next_index += 3; + ++commandCount; +} + +function blendFuncOpt(sfactor, dfactor) { + // console.log('GLOpt: blendFunc'); + if (next_index + 3 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_BLEND_FUNC; + buffer_data[next_index + 1] = sfactor; + buffer_data[next_index + 2] = dfactor; + next_index += 3; + ++commandCount; +} + +function blendFuncSeparateOpt(srcRGB, dstRGB, srcAlpha, dstAlpha) { + // console.log('GLOpt: blendFuncSeparate'); + if (next_index + 5 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_BLEND_FUNC_SEPARATE; + buffer_data[next_index + 1] = srcRGB; + buffer_data[next_index + 2] = dstRGB; + buffer_data[next_index + 3] = srcAlpha; + buffer_data[next_index + 4] = dstAlpha; + next_index += 5; + ++commandCount; +} + +function bufferDataOpt(target, data, usage) { + flushCommands(); + // console.log('GLOpt: bufferData'); + _gl.bufferData(target, data, usage); +} + +function bufferSubDataOpt(target, offset, data) { + flushCommands(); + // console.log('GLOpt: bufferSubData'); + _gl.bufferSubData(target, offset, data); +} + +function checkFramebufferStatusOpt(target) { + flushCommands(); + // console.log('GLOpt: checkFramebufferStatus'); + return _gl.checkFramebufferStatus(target); +} + +function clearOpt(mask) { + // console.log('GLOpt: clear'); + if (next_index + 2 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_CLEAR; + buffer_data[next_index + 1] = mask; + next_index += 2; + ++commandCount; +} + +function clearColorOpt(red, green, blue, alpha) { + // console.log('GLOpt: clearColor'); + if (next_index + 5 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_CLEAR_COLOR; + buffer_data[next_index + 1] = red; + buffer_data[next_index + 2] = green; + buffer_data[next_index + 3] = blue; + buffer_data[next_index + 4] = alpha; + next_index += 5; + ++commandCount; +} + +function clearDepthOpt(depth) { + // console.log('GLOpt: clearDepth'); + if (next_index + 2 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_CLEAR_DEPTH; + buffer_data[next_index + 1] = depth; + next_index += 2; + ++commandCount; +} + +function clearStencilOpt(s) { + // console.log('GLOpt: clearStencil'); + if (next_index + 2 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_CLEAR_STENCIL; + buffer_data[next_index + 1] = s; + next_index += 2; + ++commandCount; +} + +function colorMaskOpt(red, green, blue, alpha) { + // console.log('GLOpt: colorMask'); + if (next_index + 5 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_COLOR_MASK; + buffer_data[next_index + 1] = red ? 1 : 0; + buffer_data[next_index + 2] = green ? 1 : 0; + buffer_data[next_index + 3] = blue ? 1 : 0; + buffer_data[next_index + 4] = alpha ? 1 : 0; + next_index += 5; + ++commandCount; +} + +function compileShaderOpt(shader) { + // console.log('GLOpt: compileShader'); + if (next_index + 2 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_COMPILE_SHADER; + buffer_data[next_index + 1] = shader ? shader._id : 0; + next_index += 2; + ++commandCount; +} + +function compressedTexImage2DOpt(target, level, internalformat, width, height, border, data) { + // console.log('GLOpt: compressedTexImage2D'); + flushCommands(); + _gl.compressedTexImage2D(target, level, internalformat, width, height, border, data); +} + +function compressedTexSubImage2DOpt(target, level, xoffset, yoffset, width, height, format, data) { + // console.log('GLOpt: compressedTexSubImage2D'); + flushCommands(); + _gl.compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, data); +} + +function copyTexImage2DOpt(target, level, internalformat, x, y, width, height, border) { + // console.log('GLOpt: copyTexImage2D'); + if (next_index + 9 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_COPY_TEX_IMAGE_2D; + buffer_data[next_index + 1] = target; + buffer_data[next_index + 2] = level; + buffer_data[next_index + 3] = internalformat; + buffer_data[next_index + 4] = x; + buffer_data[next_index + 5] = y; + buffer_data[next_index + 6] = width; + buffer_data[next_index + 7] = height; + buffer_data[next_index + 8] = border; + next_index += 9; + ++commandCount; +} + +function copyTexSubImage2DOpt(target, level, xoffset, yoffset, x, y, width, height) { + // console.log('GLOpt: copyTexSubImage2D'); + if (next_index + 9 > total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_COPY_TEX_SUB_IMAGE_2D; + buffer_data[next_index + 1] = target; + buffer_data[next_index + 2] = level; + buffer_data[next_index + 3] = xoffset; + buffer_data[next_index + 4] = yoffset; + buffer_data[next_index + 5] = x; + buffer_data[next_index + 6] = y; + buffer_data[next_index + 7] = width; + buffer_data[next_index + 8] = height; + next_index += 9; + ++commandCount; +} + +function createBufferOpt() { + flushCommands(); + + var ret = _gl.createBuffer(); + // console.log('GLOpt: createBuffer: ' + ret._id); + return ret; +} + +function createFramebufferOpt() { + flushCommands(); + // console.log('GLOpt: createFramebuffer'); + return _gl.createFramebuffer(); +} + +function createProgramOpt() { + flushCommands(); + // console.log('GLOpt: createProgram'); + return _gl.createProgram(); +} + +function createRenderbufferOpt() { + flushCommands(); + // console.log('GLOpt: createRenderbuffer'); + return _gl.createRenderbuffer(); +} + +function createShaderOpt(type) { + // console.log('GLOpt: createShader'); + flushCommands(); + return _gl.createShader(type); +} + +function createTextureOpt() { + flushCommands(); + // console.log('GLOpt: createTexture'); + return _gl.createTexture(); +} + +function cullFaceOpt(mode) { + // console.log('GLOpt: cullFace'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_CULL_FACE; + buffer_data[next_index + 1] = mode; + next_index += 2; + ++commandCount; +} + +function deleteBufferOpt(buffer) { + // console.log('GLOpt: deleteBuffer'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DELETE_BUFFER; + buffer_data[next_index + 1] = buffer ? buffer._id : 0; + next_index += 2; + ++commandCount; +} + +function deleteFramebufferOpt(framebuffer) { + // console.log('GLOpt: deleteFramebuffer'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DELETE_FRAME_BUFFER; + buffer_data[next_index + 1] = framebuffer ? framebuffer._id : 0; + next_index += 2; + ++commandCount; +} + +function deleteProgramOpt(program) { + // console.log('GLOpt: deleteProgram'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DELETE_PROGRAM; + buffer_data[next_index + 1] = program ? program._id : 0; + next_index += 2; + ++commandCount; +} + +function deleteRenderbufferOpt(renderbuffer) { + // console.log('GLOpt: deleteRenderbuffer'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DELETE_RENDER_BUFFER; + buffer_data[next_index + 1] = renderbuffer ? renderbuffer._id : 0; + next_index += 2; + ++commandCount; +} + +function deleteShaderOpt(shader) { + // console.log('GLOpt: deleteShader'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DELETE_SHADER; + buffer_data[next_index + 1] = shader ? shader._id : 0; + next_index += 2; + ++commandCount; +} + +function deleteTextureOpt(texture) { + // console.log('GLOpt: deleteTexture'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DELETE_TEXTURE; + buffer_data[next_index + 1] = texture ? texture._id : 0; + next_index += 2; + ++commandCount; +} + +function depthFuncOpt(func) { + // console.log('GLOpt: depthFunc'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DEPTH_FUNC; + buffer_data[next_index + 1] = func; + next_index += 2; + ++commandCount; +} + +function depthMaskOpt(flag) { + // console.log('GLOpt: depthMask'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DEPTH_MASK; + buffer_data[next_index + 1] = flag ? 1 : 0; + next_index += 2; + ++commandCount; +} + +function depthRangeOpt(zNear, zFar) { + // console.log('GLOpt: depthRange'); + if (next_index + 3 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DEPTH_RANGE; + buffer_data[next_index + 1] = zNear; + buffer_data[next_index + 2] = zFar; + next_index += 3; + ++commandCount; +} + +function detachShaderOpt(program, shader) { + // console.log('GLOpt: detachShader'); + if (next_index + 3 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DETACH_SHADER; + buffer_data[next_index + 1] = program ? program._id : 0; + buffer_data[next_index + 2] = shader ? shader._id : 0; + next_index += 3; + ++commandCount; +} + +function disableOpt(cap) { + // console.log('GLOpt: disable'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DISABLE; + buffer_data[next_index + 1] = cap; + next_index += 2; + ++commandCount; +} + +function disableVertexAttribArrayOpt(index) { + // console.log('GLOpt: disableVertexAttribArray'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DISABLE_VERTEX_ATTRIB_ARRAY; + buffer_data[next_index + 1] = index; + next_index += 2; + ++commandCount; +} + +function drawArraysOpt(mode, first, count) { + // console.log('GLOpt: drawArrays'); + if (next_index + 4 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DRAW_ARRAYS; + buffer_data[next_index + 1] = mode; + buffer_data[next_index + 2] = first; + buffer_data[next_index + 3] = count; + next_index += 4; + ++commandCount; +} + +function drawElementsOpt(mode, count, type, offset) { + // console.log('GLOpt: drawElements'); + if (next_index + 5 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_DRAW_ELEMENTS; + buffer_data[next_index + 1] = mode; + buffer_data[next_index + 2] = count; + buffer_data[next_index + 3] = type; + buffer_data[next_index + 4] = offset ? offset : 0; + next_index += 5; + ++commandCount; +} + +function enableOpt(cap) { + // console.log('GLOpt: enable'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_ENABLE; + buffer_data[next_index + 1] = cap; + next_index += 2; + ++commandCount; +} + +function enableVertexAttribArrayOpt(index) { + // console.log('GLOpt: enableVertexAttribArray'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_ENABLE_VERTEX_ATTRIB_ARRAY; + buffer_data[next_index + 1] = index; + next_index += 2; + ++commandCount; +} + +function finishOpt() { + // console.log('GLOpt: finish'); + if (next_index + 1 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_FINISH; + next_index += 1; + ++commandCount; +} + +function flushOpt() { + // console.log('GLOpt: flush'); + if (next_index + 1 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_FLUSH; + next_index += 1; + ++commandCount; +} + +function framebufferRenderbufferOpt(target, attachment, renderbuffertarget, renderbuffer) { + // console.log('GLOpt: framebufferRenderbuffer'); + if (next_index + 5 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_FRAME_BUFFER_RENDER_BUFFER; + buffer_data[next_index + 1] = target; + buffer_data[next_index + 2] = attachment; + buffer_data[next_index + 3] = renderbuffertarget; + buffer_data[next_index + 4] = renderbuffer ? renderbuffer._id : 0; + next_index += 5; + ++commandCount; +} + +function framebufferTexture2DOpt(target, attachment, textarget, texture, level) { + // console.log('GLOpt: framebufferTexture2D'); + if (next_index + 6 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_FRAME_BUFFER_TEXTURE_2D; + buffer_data[next_index + 1] = target; + buffer_data[next_index + 2] = attachment; + buffer_data[next_index + 3] = textarget; + buffer_data[next_index + 4] = texture ? texture._id : 0; + buffer_data[next_index + 5] = level; + next_index += 6; + ++commandCount; +} + +function frontFaceOpt(mode) { + // console.log('GLOpt: frontFace'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_FRONT_FACE; + buffer_data[next_index + 1] = mode; + next_index += 2; + ++commandCount; +} + +function generateMipmapOpt(target) { + // console.log('GLOpt: generateMipmap'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_GENERATE_MIPMAP; + buffer_data[next_index + 1] = target; + next_index += 2; + ++commandCount; +} + +function getActiveAttribOpt(program, index) { + // console.log('GLOpt: getActiveAttrib'); + flushCommands(); + return _gl.getActiveAttrib(program, index); +} + +function getActiveUniformOpt(program, index) { + // console.log('GLOpt: getActiveUniform'); + flushCommands(); + return _gl.getActiveUniform(program, index); +} + +function getAttachedShadersOpt(program) { + // console.log('GLOpt: getAttachedShaders'); + flushCommands(); + return _gl.getAttachedShaders(program); +} + +function getAttribLocationOpt(program, name) { + // console.log('GLOpt: getAttribLocation'); + flushCommands(); + return _gl.getAttribLocation(program, name); +} + +function getBufferParameterOpt(target, pname) { + // console.log('GLOpt: getBufferParameter'); + flushCommands(); + return _gl.getBufferParameter(target, pname); +} + +function getParameterOpt(pname) { + // console.log('GLOpt: getParameter'); + flushCommands(); + return _gl.getParameter(pname); +} + +function getErrorOpt() { + // console.log('GLOpt: getError'); + flushCommands(); + return _gl.getError(); +} + +function getFramebufferAttachmentParameterOpt(target, attachment, pname) { + // console.log('GLOpt: getFramebufferAttachmentParameter'); + flushCommands(); + return _gl.getFramebufferAttachmentParameter(target, attachment, pname); +} + +function getProgramParameterOpt(program, pname) { + // console.log('GLOpt: getProgramParameter'); + flushCommands(); + return _gl.getProgramParameter(program, pname); +} + +function getProgramInfoLogOpt(program) { + // console.log('GLOpt: getProgramInfoLog'); + flushCommands(); + return _gl.getProgramInfoLog(program); +} + +function getRenderbufferParameterOpt(target, pname) { + // console.log('GLOpt: getRenderbufferParameter'); + flushCommands(); + return _gl.getRenderbufferParameter(target, pname); +} + +function getShaderParameterOpt(shader, pname) { + // console.log('GLOpt: getShaderParameter'); + flushCommands(); + return _gl.getShaderParameter(shader, pname); +} + +function getShaderPrecisionFormatOpt(shadertype, precisiontype) { + // console.log('GLOpt: getShaderPrecisionFormat'); + flushCommands(); + return _gl.getShaderPrecisionFormat(shadertype, precisiontype); +} + +function getShaderInfoLogOpt(shader) { + // console.log('GLOpt: getShaderInfoLog'); + flushCommands(); + return _gl.getShaderInfoLog(shader); +} + +function getShaderSourceOpt(shader) { + // console.log('GLOpt: getShaderSource'); + flushCommands(); + return _gl.getShaderSource(shader); +} + +function getTexParameterOpt(target, pname) { + // console.log('GLOpt: getTexParameter'); + flushCommands(); + return _gl.getTexParameter(target, pname); +} + +function getUniformOpt(program, location) { + // console.log('GLOpt: getUniform'); + flushCommands(); + return _gl.getUniform(program, location); +} + +function getUniformLocationOpt(program, name) { + // console.log('GLOpt: getUniformLocation'); + flushCommands(); + return _gl.getUniformLocation(program, name); +} + +function getVertexAttribOpt(index, pname) { + // console.log('GLOpt: getVertexAttrib'); + flushCommands(); + return _gl.getVertexAttrib(index, pname); +} + +function getVertexAttribOffsetOpt(index, pname) { + // console.log('GLOpt: getVertexAttribOffset'); + flushCommands(); + return _gl.getVertexAttribOffset(index, pname); +} + +function hintOpt(target, mode) { + // console.log('GLOpt: hint'); + if (next_index + 3 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_HINT; + buffer_data[next_index + 1] = target; + buffer_data[next_index + 2] = mode; + next_index += 3; + ++commandCount; +} + +function isBufferOpt(buffer) { + // console.log('GLOpt: isBuffer'); + flushCommands(); + return _gl.isBuffer(buffer); +} + +function isEnabledOpt(cap) { + // console.log('GLOpt: isEnabled'); + flushCommands(); + return _gl.isEnabled(cap); +} + +function isFramebufferOpt(framebuffer) { + // console.log('GLOpt: isFramebuffer'); + flushCommands(); + return _gl.isFramebuffer(framebuffer); +} + +function isProgramOpt(program) { + // console.log('GLOpt: isProgram'); + flushCommands(); + return _gl.isProgram(program); +} + +function isRenderbufferOpt(renderbuffer) { + // console.log('GLOpt: isRenderbuffer'); + flushCommands(); + return _gl.isRenderbuffer(renderbuffer); +} + +function isShaderOpt(shader) { + // console.log('GLOpt: isShader'); + flushCommands(); + return _gl.isShader(shader); +} + +function isTextureOpt(texture) { + // console.log('GLOpt: isTexture'); + flushCommands(); + return _gl.isTexture(texture); +} + +function lineWidthOpt(width) { + // console.log('GLOpt: lineWidth'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_LINE_WIDTH; + buffer_data[next_index + 1] = width; + next_index += 2; + ++commandCount; +} + +function linkProgramOpt(program) { + // console.log('GLOpt: linkProgram'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_LINK_PROGRAM; + buffer_data[next_index + 1] = program ? program._id : 0; + next_index += 2; + ++commandCount; +} + +function pixelStoreiOpt(pname, param) { + // console.log('GLOpt: pixelStorei'); + if (next_index + 3 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_PIXEL_STOREI; + buffer_data[next_index + 1] = pname; + buffer_data[next_index + 2] = param; + next_index += 3; + ++commandCount; +} + +function polygonOffsetOpt(factor, units) { + // console.log('GLOpt: polygonOffset'); + if (next_index + 3 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_POLYGON_OFFSET; + buffer_data[next_index + 1] = factor; + buffer_data[next_index + 2] = units; + next_index += 3; + ++commandCount; +} + +function readPixelsOpt(x, y, width, height, format, type, pixels) { + // console.log('GLOpt: readPixels'); + flushCommands(); + _gl.readPixels(x, y, width, height, format, type, pixels); +} + +function renderbufferStorageOpt(target, internalFormat, width, height) { + // console.log('GLOpt: renderbufferStorage'); + if (next_index + 5 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_RENDER_BUFFER_STORAGE; + buffer_data[next_index + 1] = target; + buffer_data[next_index + 2] = internalFormat; + buffer_data[next_index + 3] = width; + buffer_data[next_index + 4] = height; + next_index += 5; + ++commandCount; +} + +function sampleCoverageOpt(value, invert) { + // console.log('GLOpt: sampleCoverage'); + if (next_index + 3 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_SAMPLE_COVERAGE; + buffer_data[next_index + 1] = value; + buffer_data[next_index + 2] = invert ? 1 : 0; + next_index += 3; + ++commandCount; +} + +function scissorOpt(x, y, width, height) { + // console.log('GLOpt: scissor'); + if (next_index + 5 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_SCISSOR; + buffer_data[next_index + 1] = x; + buffer_data[next_index + 2] = y; + buffer_data[next_index + 3] = width; + buffer_data[next_index + 4] = height; + next_index += 5; + ++commandCount; +} + +function shaderSourceOpt(shader, source) { + // console.log('GLOpt: shaderSource'); + flushCommands(); + _gl.shaderSource(shader, source); +} + +function stencilFuncOpt(func, ref, mask) { + // console.log('GLOpt: stencilFunc'); + if (next_index + 4 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_STENCIL_FUNC; + buffer_data[next_index + 1] = func; + buffer_data[next_index + 2] = ref; + buffer_data[next_index + 3] = mask; + next_index += 4; + ++commandCount; +} + +function stencilFuncSeparateOpt(face, func, ref, mask) { + // console.log('GLOpt: stencilFuncSeparate'); + if (next_index + 5 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_STENCIL_FUNC_SEPARATE; + buffer_data[next_index + 1] = face; + buffer_data[next_index + 2] = func; + buffer_data[next_index + 3] = ref; + buffer_data[next_index + 4] = mask; + next_index += 5; + ++commandCount; +} + +function stencilMaskOpt(mask) { + // console.log('GLOpt: stencilMask'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_STENCIL_MASK; + buffer_data[next_index + 1] = mask; + next_index += 2; + ++commandCount; +} + +function stencilMaskSeparateOpt(face, mask) { + // console.log('GLOpt: stencilMaskSeparate'); + if (next_index + 3 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_STENCIL_MASK_SEPARATE; + buffer_data[next_index + 1] = face; + buffer_data[next_index + 2] = mask; + next_index += 3; + ++commandCount; +} + +function stencilOpOpt(fail, zfail, zpass) { + // console.log('GLOpt: stencilOp'); + if (next_index + 4 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_STENCIL_OP; + buffer_data[next_index + 1] = fail; + buffer_data[next_index + 2] = zfail; + buffer_data[next_index + 3] = zpass; + next_index += 4; + ++commandCount; +} + +function stencilOpSeparateOpt(face, fail, zfail, zpass) { + // console.log('GLOpt: stencilOpSeparate'); + if (next_index + 5 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_STENCIL_OP_SEPARATE; + buffer_data[next_index + 1] = face; + buffer_data[next_index + 2] = fail; + buffer_data[next_index + 3] = zfail; + buffer_data[next_index + 4] = zpass; + next_index += 5; + ++commandCount; +} + +function texImage2DOpt() { + flushCommands(); + // console.log('GLOpt: texImage2D'); + var argCount = arguments.length; + if (argCount === 6) { + _gl.texImage2D(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]); + } else if (argCount === 9) { + _gl.texImage2D(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8]); + } else { + console.log('texImage2DOpt: Wrong number of arguments, expected 6 or 9 but got ' + argCount); + } +} + +function texParameterfOpt(target, pname, param) { + // console.log('GLOpt: texParameterf'); + if (next_index + 4 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_TEX_PARAMETER_F; + buffer_data[next_index + 1] = target; + buffer_data[next_index + 2] = pname; + buffer_data[next_index + 3] = param; + next_index += 4; + ++commandCount; +} + +function texParameteriOpt(target, pname, param) { + // console.log('GLOpt: texParameteri'); + if (next_index + 4 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_TEX_PARAMETER_I; + buffer_data[next_index + 1] = target; + buffer_data[next_index + 2] = pname; + buffer_data[next_index + 3] = param; + next_index += 4; + ++commandCount; +} + +function texSubImage2DOpt(target, level, xoffset, yoffset, width, height, format, type, pixels) { + flushCommands(); + // console.log('GLOpt: texSubImage2D'); + var argCount = arguments.length; + if (argCount === 7) { + _gl.texSubImage2D(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6]); + } else if (argCount === 9) { + _gl.texSubImage2D(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8]); + } else { + console.log('texSubImage2DOpt: Wrong number of arguments, expected 7 or 9 but got ' + argCount); + } +} + +function uniform1fOpt(location, x) { + // console.log('GLOpt: uniform1f'); + if (next_index + 3 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_1F; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = x; + next_index += 3; + ++commandCount; +} + +function uniform2fOpt(location, x, y) { + // console.log('GLOpt: uniform2f'); + if (next_index + 4 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_2F; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = x; + buffer_data[next_index + 3] = y; + next_index += 4; + ++commandCount; +} + +function uniform3fOpt(location, x, y, z) { + // console.log('GLOpt: uniform3f'); + if (next_index + 5 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_3F; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = x; + buffer_data[next_index + 3] = y; + buffer_data[next_index + 4] = z; + next_index += 5; + ++commandCount; +} + +function uniform4fOpt(location, x, y, z, w) { + // console.log('GLOpt: uniform4f'); + if (next_index + 6 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_4F; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = x; + buffer_data[next_index + 3] = y; + buffer_data[next_index + 4] = z; + buffer_data[next_index + 5] = w; + next_index += 6; + ++commandCount; +} + +function uniform1iOpt(location, x) { + // console.log('GLOpt: uniform1i'); + if (next_index + 3 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_1I; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = x; + next_index += 3; + ++commandCount; +} + +function uniform2iOpt(location, x, y) { + // console.log('GLOpt: uniform2i'); + if (next_index + 4 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_2I; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = x; + buffer_data[next_index + 3] = y; + next_index += 4; + ++commandCount; +} + +function uniform3iOpt(location, x, y, z) { + // console.log('GLOpt: uniform3i'); + if (next_index + 5 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_3I; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = x; + buffer_data[next_index + 3] = y; + buffer_data[next_index + 4] = z; + next_index += 5; + ++commandCount; +} + +function uniform4iOpt(location, x, y, z, w) { + // console.log('GLOpt: uniform4i'); + if (next_index + 6 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_4I; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = x; + buffer_data[next_index + 3] = y; + buffer_data[next_index + 4] = z; + buffer_data[next_index + 5] = w; + next_index += 6; + ++commandCount; +} + +function uniform1fvOpt(location, value) { + // console.log('GLOpt: uniform1fv'); + if (next_index + 3 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_1FV; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = value.length; + buffer_data.set(value, next_index + 3); + next_index += 3 + value.length; + ++commandCount; +} + +function uniform2fvOpt(location, value) { + // console.log('GLOpt: uniform2fv'); + if (next_index + 3 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_2FV; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = value.length; + buffer_data.set(value, next_index + 3); + next_index += 3 + value.length; + ++commandCount; +} + +function uniform3fvOpt(location, value) { + // console.log('GLOpt: uniform3fv'); + if (next_index + 3 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_3FV; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = value.length; + buffer_data.set(value, next_index + 3); + next_index += 3 + value.length; + ++commandCount; +} + +function uniform4fvOpt(location, value) { + // console.log('GLOpt: uniform4fv'); + if (next_index + 3 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_4FV; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = value.length; + buffer_data.set(value, next_index + 3); + next_index += 3 + value.length; + ++commandCount; +} + +function uniform1ivOpt(location, value) { + // console.log('GLOpt: uniform1iv'); + if (next_index + 3 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_1IV; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = value.length; + buffer_data.set(value, next_index + 3); + next_index += 3 + value.length; + ++commandCount; +} + +function uniform2ivOpt(location, value) { + // console.log('GLOpt: uniform2iv'); + if (next_index + 3 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_2IV; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = value.length; + buffer_data.set(value, next_index + 3); + next_index += 3 + value.length; + ++commandCount; +} + +function uniform3ivOpt(location, value) { + // console.log('GLOpt: uniform3iv'); + if (next_index + 3 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_3IV; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = value.length; + buffer_data.set(value, next_index + 3); + next_index += 3 + value.length; + ++commandCount; +} + +function uniform4ivOpt(location, value) { + // console.log('GLOpt: uniform4iv'); + if (next_index + 3 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_4IV; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = value.length; + buffer_data.set(value, next_index + 3); + next_index += 3 + value.length; + ++commandCount; +} + +function uniformMatrix2fvOpt(location, transpose, value) { + // console.log('GLOpt: uniformMatrix2fv'); + if (next_index + 4 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_MATRIX_2FV; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = transpose; + buffer_data[next_index + 3] = value.length; + buffer_data.set(value, next_index + 4); + next_index += 4 + value.length; + ++commandCount; +} + +function uniformMatrix3fvOpt(location, transpose, value) { + // console.log('GLOpt: uniformMatrix3fv'); + if (next_index + 4 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_MATRIX_3FV; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = transpose; + buffer_data[next_index + 3] = value.length; + buffer_data.set(value, next_index + 4); + next_index += 4 + value.length; + ++commandCount; +} + +function uniformMatrix4fvOpt(location, transpose, value) { + // console.log('GLOpt: uniformMatrix4fv'); + if (next_index + 4 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_UNIFORM_MATRIX_4FV; + buffer_data[next_index + 1] = location; + buffer_data[next_index + 2] = transpose; + buffer_data[next_index + 3] = value.length; + buffer_data.set(value, next_index + 4); + next_index += 4 + value.length; + ++commandCount; +} + +function useProgramOpt(program) { + // console.log('GLOpt: useProgram'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_USE_PROGRAM; + buffer_data[next_index + 1] = program ? program._id : 0; + next_index += 2; + ++commandCount; +} + +function validateProgramOpt(program) { + // console.log('GLOpt: validateProgram'); + if (next_index + 2 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_VALIDATE_PROGRAM; + buffer_data[next_index + 1] = program ? program._id : 0; + next_index += 2; + ++commandCount; +} + +function vertexAttrib1fOpt(index, x) { + // console.log('GLOpt: vertexAttrib1f'); + if (next_index + 3 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_VERTEX_ATTRIB_1F; + buffer_data[next_index + 1] = index; + buffer_data[next_index + 2] = x; + next_index += 3; + ++commandCount; +} + +function vertexAttrib2fOpt(index, x, y) { + // console.log('GLOpt: vertexAttrib2f'); + if (next_index + 4 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_VERTEX_ATTRIB_2F; + buffer_data[next_index + 1] = index; + buffer_data[next_index + 2] = x; + buffer_data[next_index + 3] = y; + next_index += 4; + ++commandCount; +} + +function vertexAttrib3fOpt(index, x, y, z) { + // console.log('GLOpt: vertexAttrib3f'); + if (next_index + 5 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_VERTEX_ATTRIB_3F; + buffer_data[next_index + 1] = index; + buffer_data[next_index + 2] = x; + buffer_data[next_index + 3] = y; + buffer_data[next_index + 4] = z; + next_index += 5; + ++commandCount; +} + +function vertexAttrib4fOpt(index, x, y, z, w) { + // console.log('GLOpt: vertexAttrib4f'); + if (next_index + 6 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_VERTEX_ATTRIB_4F; + buffer_data[next_index + 1] = index; + buffer_data[next_index + 2] = x; + buffer_data[next_index + 3] = y; + buffer_data[next_index + 4] = z; + buffer_data[next_index + 5] = w; + next_index += 6; + ++commandCount; +} + +function vertexAttrib1fvOpt(index, value) { + // console.log('GLOpt: vertexAttrib1fv'); + if (next_index + 3 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_VERTEX_ATTRIB_1FV; + buffer_data[next_index + 1] = index; + buffer_data[next_index + 2] = value.length; + buffer_data.set(value, next_index + 3); + next_index += 3 + value.length; + ++commandCount; +} + +function vertexAttrib2fvOpt(index, value) { + // console.log('GLOpt: vertexAttrib2fv'); + if (next_index + 3 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_VERTEX_ATTRIB_2FV; + buffer_data[next_index + 1] = index; + buffer_data[next_index + 2] = value.length; + buffer_data.set(value, next_index + 3); + next_index += 3 + value.length; + ++commandCount; +} + +function vertexAttrib3fvOpt(index, value) { + // console.log('GLOpt: vertexAttrib3fv'); + if (next_index + 3 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_VERTEX_ATTRIB_3FV; + buffer_data[next_index + 1] = index; + buffer_data[next_index + 2] = value.length; + buffer_data.set(value, next_index + 3); + next_index += 3 + value.length; + ++commandCount; +} + +function vertexAttrib4fvOpt(index, value) { + // console.log('GLOpt: vertexAttrib4fv'); + if (next_index + 3 + value.length >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_VERTEX_ATTRIB_4FV; + buffer_data[next_index + 1] = index; + buffer_data[next_index + 2] = value.length; + buffer_data.set(value, next_index + 3); + next_index += 3 + value.length; + ++commandCount; +} + +function vertexAttribPointerOpt(index, size, type, normalized, stride, offset) { + // console.log('GLOpt: vertexAttribPointer'); + if (next_index + 7 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_VERTEX_ATTRIB_POINTER; + buffer_data[next_index + 1] = index; + buffer_data[next_index + 2] = size; + buffer_data[next_index + 3] = type; + buffer_data[next_index + 4] = normalized ? 1 : 0; + buffer_data[next_index + 5] = stride; + buffer_data[next_index + 6] = offset; + next_index += 7; + ++commandCount; +} + +function viewportOpt(x, y, width, height) { + // console.log('GLOpt: viewport'); + if (next_index + 5 >= total_size) { + flushCommands(); + } + buffer_data[next_index] = GL_COMMAND_VIEW_PORT; + buffer_data[next_index + 1] = x; + buffer_data[next_index + 2] = y; + buffer_data[next_index + 3] = width; + buffer_data[next_index + 4] = height; + next_index += 5; + ++commandCount; +} + +function isSupportTypeArray() { + //FIXME: + // if (GameStatusInfo.platform == 'android') { + return true; + // } + // var info = BK.Director.queryDeviceInfo(); + // var vers = info.version.split('.'); + // if (info.platform == 'ios' && Number(vers[0]) >= 10) { + // return true; + // } + // return false; +} + +function attachMethodOpt() { + gl.activeTexture = activeTextureOpt; + gl.attachShader = attachShaderOpt; + gl.bindAttribLocation = bindAttribLocationOpt; + gl.bindBuffer = bindBufferOpt; + gl.bindFramebuffer = bindFramebufferOpt; + gl.bindRenderbuffer = bindRenderbufferOpt; + gl.bindTexture = bindTextureOpt; + gl.blendColor = blendColorOpt; + gl.blendEquation = blendEquationOpt; + gl.blendEquationSeparate = blendEquationSeparateOpt; + gl.blendFunc = blendFuncOpt; + gl.blendFuncSeparate = blendFuncSeparateOpt; + gl.bufferData = bufferDataOpt; + gl.bufferSubData = bufferSubDataOpt; + gl.checkFramebufferStatus = checkFramebufferStatusOpt; + gl.clear = clearOpt; + gl.clearColor = clearColorOpt; + gl.clearDepth = clearDepthOpt; + gl.clearStencil = clearStencilOpt; + gl.colorMask = colorMaskOpt; + gl.compileShader = compileShaderOpt; + gl.compressedTexImage2D = compressedTexImage2DOpt; + gl.compressedTexSubImage2D = compressedTexSubImage2DOpt; + gl.copyTexImage2D = copyTexImage2DOpt; + gl.copyTexSubImage2D = copyTexSubImage2DOpt; + gl.createBuffer = createBufferOpt; + gl.createFramebuffer = createFramebufferOpt; + gl.createProgram = createProgramOpt; + gl.createRenderbuffer = createRenderbufferOpt; + gl.createShader = createShaderOpt; + gl.createTexture = createTextureOpt; + gl.cullFace = cullFaceOpt; + gl.deleteBuffer = deleteBufferOpt; + gl.deleteFramebuffer = deleteFramebufferOpt; + gl.deleteProgram = deleteProgramOpt; + gl.deleteRenderbuffer = deleteRenderbufferOpt; + gl.deleteShader = deleteShaderOpt; + gl.deleteTexture = deleteTextureOpt; + gl.depthFunc = depthFuncOpt; + gl.depthMask = depthMaskOpt; + gl.depthRange = depthRangeOpt; + gl.detachShader = detachShaderOpt; + gl.disable = disableOpt; + gl.disableVertexAttribArray = disableVertexAttribArrayOpt; + gl.drawArrays = drawArraysOpt; + gl.drawElements = drawElementsOpt; + gl.enable = enableOpt; + gl.enableVertexAttribArray = enableVertexAttribArrayOpt; + gl.finish = finishOpt; + gl.flush = flushOpt; + gl.framebufferRenderbuffer = framebufferRenderbufferOpt; + gl.framebufferTexture2D = framebufferTexture2DOpt; + gl.frontFace = frontFaceOpt; + gl.generateMipmap = generateMipmapOpt; + gl.getActiveAttrib = getActiveAttribOpt; + gl.getActiveUniform = getActiveUniformOpt; + gl.getAttachedShaders = getAttachedShadersOpt; + gl.getAttribLocation = getAttribLocationOpt; + gl.getBufferParameter = getBufferParameterOpt; + gl.getParameter = getParameterOpt; + gl.getError = getErrorOpt; + gl.getFramebufferAttachmentParameter = getFramebufferAttachmentParameterOpt; + gl.getProgramParameter = getProgramParameterOpt; + gl.getProgramInfoLog = getProgramInfoLogOpt; + gl.getRenderbufferParameter = getRenderbufferParameterOpt; + gl.getShaderParameter = getShaderParameterOpt; + gl.getShaderPrecisionFormat = getShaderPrecisionFormatOpt; + gl.getShaderInfoLog = getShaderInfoLogOpt; + gl.getShaderSource = getShaderSourceOpt; + gl.getTexParameter = getTexParameterOpt; + gl.getUniform = getUniformOpt; + gl.getUniformLocation = getUniformLocationOpt; + gl.getVertexAttrib = getVertexAttribOpt; + gl.getVertexAttribOffset = getVertexAttribOffsetOpt; + gl.hint = hintOpt; + gl.isBuffer = isBufferOpt; + gl.isEnabled = isEnabledOpt; + gl.isFramebuffer = isFramebufferOpt; + gl.isProgram = isProgramOpt; + gl.isRenderbuffer = isRenderbufferOpt; + gl.isShader = isShaderOpt; + gl.isTexture = isTextureOpt; + gl.lineWidth = lineWidthOpt; + gl.linkProgram = linkProgramOpt; + gl.pixelStorei = pixelStoreiOpt; + gl.polygonOffset = polygonOffsetOpt; + gl.readPixels = readPixelsOpt; + gl.renderbufferStorage = renderbufferStorageOpt; + gl.sampleCoverage = sampleCoverageOpt; + gl.scissor = scissorOpt; + gl.shaderSource = shaderSourceOpt; + gl.stencilFunc = stencilFuncOpt; + gl.stencilFuncSeparate = stencilFuncSeparateOpt; + gl.stencilMask = stencilMaskOpt; + gl.stencilMaskSeparate = stencilMaskSeparateOpt; + gl.stencilOp = stencilOpOpt; + gl.stencilOpSeparate = stencilOpSeparateOpt; + gl.texImage2D = texImage2DOpt; + gl.texParameterf = texParameterfOpt; + gl.texParameteri = texParameteriOpt; + gl.texSubImage2D = texSubImage2DOpt; + gl.uniform1f = uniform1fOpt; + gl.uniform2f = uniform2fOpt; + gl.uniform3f = uniform3fOpt; + gl.uniform4f = uniform4fOpt; + gl.uniform1i = uniform1iOpt; + gl.uniform2i = uniform2iOpt; + gl.uniform3i = uniform3iOpt; + gl.uniform4i = uniform4iOpt; + gl.uniform1fv = uniform1fvOpt; + gl.uniform2fv = uniform2fvOpt; + gl.uniform3fv = uniform3fvOpt; + gl.uniform4fv = uniform4fvOpt; + gl.uniform1iv = uniform1ivOpt; + gl.uniform2iv = uniform2ivOpt; + gl.uniform3iv = uniform3ivOpt; + gl.uniform4iv = uniform4ivOpt; + gl.uniformMatrix2fv = uniformMatrix2fvOpt; + gl.uniformMatrix3fv = uniformMatrix3fvOpt; + gl.uniformMatrix4fv = uniformMatrix4fvOpt; + gl.useProgram = useProgramOpt; + gl.validateProgram = validateProgramOpt; + gl.vertexAttrib1f = vertexAttrib1fOpt; + gl.vertexAttrib2f = vertexAttrib2fOpt; + gl.vertexAttrib3f = vertexAttrib3fOpt; + gl.vertexAttrib4f = vertexAttrib4fOpt; + gl.vertexAttrib1fv = vertexAttrib1fvOpt; + gl.vertexAttrib2fv = vertexAttrib2fvOpt; + gl.vertexAttrib3fv = vertexAttrib3fvOpt; + gl.vertexAttrib4fv = vertexAttrib4fvOpt; + gl.vertexAttribPointer = vertexAttribPointerOpt; + gl.viewport = viewportOpt; +} + +batchGLCommandsToNative(); + +module.exports = { + disableBatchGLCommandsToNative: disableBatchGLCommandsToNative, + flushCommands: flushCommands +}; + +},{}],4:[function(require,module,exports){ +'use strict'; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +window.CanvasRenderingContext2D = jsb.CanvasRenderingContext2D; +delete jsb.CanvasRenderingContext2D; + +jsb.device = jsb.Device; // cc namespace will be reset to {} in creator, use jsb namespace instead. + +var _require = require('./base64/base64.min'), + btoa = _require.btoa, + atob = _require.atob; + +window.btoa = btoa; +window.atob = atob; + +var _require2 = require('./Blob'), + Blob = _require2.Blob, + URL = _require2.URL; + +window.Blob = Blob; +window.URL = URL; +window.DOMParser = require('./xmldom/dom-parser').DOMParser; + +require('./jsb_prepare'); +require('./jsb_opengl'); +require('./jsb-adapter'); +require('./jsb_audioengine'); +require('./jsb_input'); + +var _oldRequestFrameCallback = null; +var _requestAnimationFrameID = 0; +var _requestAnimationFrameCallbacks = {}; +var _firstTick = true; + +window.requestAnimationFrame = function (cb) { + var id = ++_requestAnimationFrameID; + _requestAnimationFrameCallbacks[id] = cb; + return id; +}; + +window.cancelAnimationFrame = function (id) { + delete _requestAnimationFrameCallbacks[id]; +}; + +var _require3 = require('./glOptMode'), + disableBatchGLCommandsToNative = _require3.disableBatchGLCommandsToNative, + flushCommands = _require3.flushCommands; + +window.optConfig = { + disableBatchGLCommandsToNative: disableBatchGLCommandsToNative +}; + +function tick(nowMilliSeconds) { + if (_firstTick) { + _firstTick = false; + if (window.onload) { + var event = new Event('load'); + event._target = window; + window.onload(event); + } + } + fireTimeout(nowMilliSeconds); + + for (var id in _requestAnimationFrameCallbacks) { + _oldRequestFrameCallback = _requestAnimationFrameCallbacks[id]; + if (_oldRequestFrameCallback) { + delete _requestAnimationFrameCallbacks[id]; + _oldRequestFrameCallback(nowMilliSeconds); + } + } + flushCommands(); +} + +var _timeoutIDIndex = 0; + +var TimeoutInfo = function TimeoutInfo(cb, delay, isRepeat, target, args) { + _classCallCheck(this, TimeoutInfo); + + this.cb = cb; + this.id = ++_timeoutIDIndex; + this.start = performance.now(); + this.delay = delay; + this.isRepeat = isRepeat; + this.target = target; + this.args = args; +}; + +var _timeoutInfos = {}; + +function fireTimeout(nowMilliSeconds) { + var info = void 0; + for (var id in _timeoutInfos) { + info = _timeoutInfos[id]; + if (info && info.cb) { + if (nowMilliSeconds - info.start >= info.delay) { + // console.log(`fireTimeout: id ${id}, start: ${info.start}, delay: ${info.delay}, now: ${nowMilliSeconds}`); + if (typeof info.cb === 'string') { + Function(info.cb)(); + } else if (typeof info.cb === 'function') { + info.cb.apply(info.target, info.args); + } + if (info.isRepeat) { + info.start = nowMilliSeconds; + } else { + delete _timeoutInfos[id]; + } + } + } + } +} + +function createTimeoutInfo(prevFuncArgs, isRepeat) { + var cb = prevFuncArgs[0]; + if (!cb) { + console.error("createTimeoutInfo doesn't pass a callback ..."); + return 0; + } + + var delay = prevFuncArgs.length > 1 ? prevFuncArgs[1] : 0; + var args = void 0; + + if (prevFuncArgs.length > 2) { + args = Array.prototype.slice.call(prevFuncArgs, 2); + } + + var info = new TimeoutInfo(cb, delay, isRepeat, this, args); + _timeoutInfos[info.id] = info; + return info.id; +} + +window.setTimeout = function (cb) { + return createTimeoutInfo(arguments, false); +}; + +window.clearTimeout = function (id) { + delete _timeoutInfos[id]; +}; + +window.setInterval = function (cb) { + return createTimeoutInfo(arguments, true); +}; + +window.clearInterval = window.clearTimeout; +window.alert = console.error.bind(console); + +var __motionCallbackID = 0; +var __motionEnabled = false; +var __motionInterval = 16.6; // milliseconds + +jsb.device.setMotionInterval = function (milliseconds) { + __motionInterval = milliseconds; + // convert to seconds + jsb.device.setAccelerometerInterval(__motionInterval / 1000); + if (__motionEnabled) { + jsb.device.setMotionEnabled(false); + jsb.device.setMotionEnabled(true); + } +}; + +jsb.device.setMotionEnabled = function (enabled) { + if (__motionEnabled === enabled) return; + + if (enabled) { + jsb.device.setAccelerometerEnabled(enabled); + var motionValue; + var event = new DeviceMotionEvent(); + __motionCallbackID = window.setInterval(function () { + motionValue = jsb.device.getDeviceMotionValue(); + + event._acceleration.x = motionValue[0]; + event._acceleration.y = motionValue[1]; + event._acceleration.z = motionValue[2]; + + event._accelerationIncludingGravity.x = motionValue[3]; + event._accelerationIncludingGravity.y = motionValue[4]; + event._accelerationIncludingGravity.z = motionValue[5]; + + event._rotationRate.alpha = motionValue[6]; + event._rotationRate.beta = motionValue[7]; + event._rotationRate.gamma = motionValue[8]; + + event._interval = __motionInterval; + + jsb.device.dispatchDeviceMotionEvent(event); + }, __motionInterval); + } else { + window.clearInterval(__motionCallbackID); + __motionCallbackID = 0; + } + + __motionEnabled = enabled; +}; + +// File utils (Temporary, won't be accessible) +if (typeof jsb.FileUtils !== 'undefined') { + jsb.fileUtils = jsb.FileUtils.getInstance(); + delete jsb.FileUtils; +} + +XMLHttpRequest.prototype.addEventListener = function (eventName, listener, options) { + this['on' + eventName] = listener; +}; + +XMLHttpRequest.prototype.removeEventListener = function (eventName, listener, options) { + this['on' + eventName] = null; +}; + +// SocketIO +if (window.SocketIO) { + window.io = window.SocketIO; + SocketIO.prototype._Emit = SocketIO.prototype.emit; + SocketIO.prototype.emit = function (uri, delegate) { + if ((typeof delegate === 'undefined' ? 'undefined' : _typeof(delegate)) === 'object') { + delegate = JSON.stringify(delegate); + } + this._Emit(uri, delegate); + }; +} + +window.gameTick = tick; + +// promise polyfill relies on setTimeout implementation +require('./promise.min'); + +},{"./Blob":1,"./base64/base64.min":2,"./glOptMode":3,"./jsb-adapter":27,"./jsb_audioengine":32,"./jsb_input":33,"./jsb_opengl":34,"./jsb_prepare":36,"./promise.min":37,"./xmldom/dom-parser":38}],5:[function(require,module,exports){ +"use strict"; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var DOMRect = function DOMRect(x, y, width, height) { + _classCallCheck(this, DOMRect); + + this.x = x ? x : 0; + this.y = y ? y : 0; + this.width = width ? width : 0; + this.height = height ? height : 0; + this.left = this.x; + this.top = this.y; + this.right = this.x + this.width; + this.bottom = this.y + this.height; +}; + +module.exports = DOMRect; + +},{}],6:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Event = require('./Event'); + +var DeviceMotionEvent = function (_Event) { + _inherits(DeviceMotionEvent, _Event); + + function DeviceMotionEvent(initArgs) { + _classCallCheck(this, DeviceMotionEvent); + + var _this = _possibleConstructorReturn(this, (DeviceMotionEvent.__proto__ || Object.getPrototypeOf(DeviceMotionEvent)).call(this, 'devicemotion')); + + if (initArgs) { + _this._acceleration = initArgs.acceleration ? initArgs.acceleration : { x: 0, y: 0, z: 0 }; + _this._accelerationIncludingGravity = initArgs.accelerationIncludingGravity ? initArgs.accelerationIncludingGravity : { x: 0, y: 0, z: 0 }; + _this._rotationRate = initArgs.rotationRate ? initArgs.rotationRate : { alpha: 0, beta: 0, gamma: 0 }; + _this._interval = initArgs.interval; + } else { + _this._acceleration = { x: 0, y: 0, z: 0 }; + _this._accelerationIncludingGravity = { x: 0, y: 0, z: 0 }; + _this._rotationRate = { alpha: 0, beta: 0, gamma: 0 }; + _this._interval = 0; + } + return _this; + } + + _createClass(DeviceMotionEvent, [{ + key: 'acceleration', + get: function get() { + return this._acceleration; + } + }, { + key: 'accelerationIncludingGravity', + get: function get() { + return this._accelerationIncludingGravity; + } + }, { + key: 'rotationRate', + get: function get() { + return this._rotationRate; + } + }, { + key: 'interval', + get: function get() { + return this._interval; + } + }]); + + return DeviceMotionEvent; +}(Event); + +module.exports = DeviceMotionEvent; + +},{"./Event":8}],7:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Node = require('./Node'); +var DOMRect = require('./DOMRect'); + +var Element = function (_Node) { + _inherits(Element, _Node); + + function Element() { + _classCallCheck(this, Element); + + var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this)); + + _this.className = ''; + _this.children = []; + _this.clientLeft = 0; + _this.clientTop = 0; + _this.scrollLeft = 0; + _this.scrollTop = 0; + return _this; + } + + _createClass(Element, [{ + key: 'getBoundingClientRect', + value: function getBoundingClientRect() { + return new DOMRect(0, 0, window.innerWidth, window.innerHeight); + } + + // attrName is a string that names the attribute to be removed from element. + + }, { + key: 'removeAttribute', + value: function removeAttribute(attrName) {} + }, { + key: 'clientWidth', + get: function get() { + return 0; + } + }, { + key: 'clientHeight', + get: function get() { + return 0; + } + }]); + + return Element; +}(Node); + +module.exports = Element; + +},{"./DOMRect":5,"./Node":24}],8:[function(require,module,exports){ +"use strict"; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * @see https://dom.spec.whatwg.org/#interface-event + * @private + */ +/** + * The event wrapper. + * @constructor + * @param {EventTarget} eventTarget The event target of this dispatching. + * @param {Event|{type:string}} event The original event to wrap. + */ +var Event = function () { + function Event(type, eventInit) { + _classCallCheck(this, Event); + + this._type = type; + this._target = null; + this._eventPhase = 2; + this._currentTarget = null; + this._canceled = false; + this._stopped = false; // The flag to stop propagation immediately. + this._passiveListener = null; + this._timeStamp = Date.now(); + } + + /** + * The type of this event. + * @type {string} + */ + + + _createClass(Event, [{ + key: "composedPath", + + + /** + * @returns {EventTarget[]} The composed path of this event. + */ + value: function composedPath() { + var currentTarget = this._currentTarget; + if (currentTarget === null) { + return []; + } + return [currentTarget]; + } + + /** + * The target of this event. + * @type {number} + */ + + }, { + key: "stopPropagation", + + + /** + * Stop event bubbling. + * @returns {void} + */ + value: function stopPropagation() {} + + /** + * Stop event bubbling. + * @returns {void} + */ + + }, { + key: "stopImmediatePropagation", + value: function stopImmediatePropagation() { + this._stopped = true; + } + + /** + * The flag to be bubbling. + * @type {boolean} + */ + + }, { + key: "preventDefault", + + + /** + * Cancel this event. + * @returns {void} + */ + value: function preventDefault() { + if (this._passiveListener !== null) { + console.warn("Event#preventDefault() was called from a passive listener:", this._passiveListener); + return; + } + if (!this.cancelable) { + return; + } + + this._canceled = true; + } + + /** + * The flag to indicate cancellation state. + * @type {boolean} + */ + + }, { + key: "type", + get: function get() { + return this._type; + } + + /** + * The target of this event. + * @type {EventTarget} + */ + + }, { + key: "target", + get: function get() { + return this._target; + } + + /** + * The target of this event. + * @type {EventTarget} + */ + + }, { + key: "currentTarget", + get: function get() { + return this._currentTarget; + } + }, { + key: "isTrusted", + get: function get() { + // https://heycam.github.io/webidl/#Unforgeable + return false; + } + }, { + key: "timeStamp", + + + /** + * The unix time of this event. + * @type {number} + */ + get: function get() { + return this._timeStamp; + } + }, { + key: "eventPhase", + get: function get() { + return this._eventPhase; + } + }, { + key: "bubbles", + get: function get() { + return false; + } + + /** + * The flag to be cancelable. + * @type {boolean} + */ + + }, { + key: "cancelable", + get: function get() { + return true; + } + }, { + key: "defaultPrevented", + get: function get() { + return this._canceled; + } + + /** + * The flag to be composed. + * @type {boolean} + */ + + }, { + key: "composed", + get: function get() { + return false; + } + }]); + + return Event; +}(); + +/** + * Constant of NONE. + * @type {number} + */ + + +Event.NONE = 0; + +/** + * Constant of CAPTURING_PHASE. + * @type {number} + */ +Event.CAPTURING_PHASE = 1; + +/** + * Constant of AT_TARGET. + * @type {number} + */ +Event.AT_TARGET = 2; + +/** + * Constant of BUBBLING_PHASE. + * @type {number} + */ +Event.BUBBLING_PHASE = 3; + +module.exports = Event; + +},{}],9:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var __targetID = 0; + +var __listenerMap = { + touch: {}, + mouse: {}, + keyboard: {}, + devicemotion: {} +}; + +var __listenerCountMap = { + touch: 0, + mouse: 0, + keyboard: 0, + devicemotion: 0 +}; + +var __enableCallbackMap = { + touch: null, + mouse: null, + keyboard: null, + //FIXME: Cocos Creator invokes addEventListener('devicemotion') when engine initializes, it will active sensor hardware. + // In that case, CPU and temperature cost will increase. Therefore, we require developer to invoke 'jsb.device.setMotionEnabled(true)' + // on native platforms since most games will not listen motion event. + devicemotion: null + // devicemotion: function() { + // jsb.device.setMotionEnabled(true); + // } +}; + +var __disableCallbackMap = { + touch: null, + mouse: null, + //FIXME: Cocos Creator invokes addEventListener('devicemotion') when engine initializes, it will active sensor hardware. + // In that case, CPU and temperature cost will increase. Therefore, we require developer to invoke 'jsb.device.setMotionEnabled(true)' + // on native platforms since most games will not listen motion event. + keyboard: null, + devicemotion: null + // devicemotion: function() { + // jsb.device.setMotionEnabled(false); + // } +}; + +var __handleEventNames = { + touch: ['touchstart', 'touchmove', 'touchend', 'touchcancel'], + mouse: ['mousedown', 'mousemove', 'mouseup', 'mousewheel'], + keyboard: ['keydown', 'keyup', 'keypress'], + devicemotion: ['devicemotion'] + + // Listener types +};var CAPTURE = 1; +var BUBBLE = 2; +var ATTRIBUTE = 3; + +/** + * Check whether a given value is an object or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if the value is an object. + */ +function isObject(x) { + return x && (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === "object"; //eslint-disable-line no-restricted-syntax +} + +/** + * EventTarget. + * + * - This is constructor if no arguments. + * - This is a function which returns a CustomEventTarget constructor if there are arguments. + * + * For example: + * + * class A extends EventTarget {} + */ + +var EventTarget = function () { + function EventTarget() { + _classCallCheck(this, EventTarget); + + this._targetID = ++__targetID; + this._listenerCount = { + touch: 0, + mouse: 0, + keyboard: 0, + devicemotion: 0 + }; + this._listeners = new Map(); + } + + _createClass(EventTarget, [{ + key: '_associateSystemEventListener', + value: function _associateSystemEventListener(eventName) { + var handleEventNames; + for (var key in __handleEventNames) { + handleEventNames = __handleEventNames[key]; + if (handleEventNames.indexOf(eventName) > -1) { + if (__enableCallbackMap[key] && __listenerCountMap[key] === 0) { + __enableCallbackMap[key](); + } + + if (this._listenerCount[key] === 0) __listenerMap[key][this._targetID] = this; + ++this._listenerCount[key]; + ++__listenerCountMap[key]; + break; + } + } + } + }, { + key: '_dissociateSystemEventListener', + value: function _dissociateSystemEventListener(eventName) { + var handleEventNames; + for (var key in __handleEventNames) { + handleEventNames = __handleEventNames[key]; + if (handleEventNames.indexOf(eventName) > -1) { + if (this._listenerCount[key] <= 0) delete __listenerMap[key][this._targetID]; + --__listenerCountMap[key]; + + if (__disableCallbackMap[key] && __listenerCountMap[key] === 0) { + __disableCallbackMap[key](); + } + break; + } + } + } + + /** + * Add a given listener to this event target. + * @param {string} eventName The event name to add. + * @param {Function} listener The listener to add. + * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener. + * @returns {boolean} `true` if the listener was added actually. + */ + + }, { + key: 'addEventListener', + value: function addEventListener(eventName, listener, options) { + if (!listener) { + return false; + } + if (typeof listener !== "function" && !isObject(listener)) { + throw new TypeError("'listener' should be a function or an object."); + } + + var listeners = this._listeners; + var optionsIsObj = isObject(options); + var capture = optionsIsObj ? Boolean(options.capture) : Boolean(options); + var listenerType = capture ? CAPTURE : BUBBLE; + var newNode = { + listener: listener, + listenerType: listenerType, + passive: optionsIsObj && Boolean(options.passive), + once: optionsIsObj && Boolean(options.once), + next: null + + // Set it as the first node if the first node is null. + };var node = listeners.get(eventName); + if (node === undefined) { + listeners.set(eventName, newNode); + this._associateSystemEventListener(eventName); + return true; + } + + // Traverse to the tail while checking duplication.. + var prev = null; + while (node) { + if (node.listener === listener && node.listenerType === listenerType) { + // Should ignore duplication. + return false; + } + prev = node; + node = node.next; + } + + // Add it. + prev.next = newNode; + this._associateSystemEventListener(eventName); + return true; + } + + /** + * Remove a given listener from this event target. + * @param {string} eventName The event name to remove. + * @param {Function} listener The listener to remove. + * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener. + * @returns {boolean} `true` if the listener was removed actually. + */ + + }, { + key: 'removeEventListener', + value: function removeEventListener(eventName, listener, options) { + if (!listener) { + return false; + } + + var listeners = this._listeners; + var capture = isObject(options) ? Boolean(options.capture) : Boolean(options); + var listenerType = capture ? CAPTURE : BUBBLE; + + var prev = null; + var node = listeners.get(eventName); + while (node) { + if (node.listener === listener && node.listenerType === listenerType) { + if (prev) { + prev.next = node.next; + } else if (node.next) { + listeners.set(eventName, node.next); + } else { + listeners.delete(eventName); + } + + this._dissociateSystemEventListener(eventName); + + return true; + } + + prev = node; + node = node.next; + } + + return false; + } + + /** + * Dispatch a given event. + * @param {Event|{type:string}} event The event to dispatch. + * @returns {boolean} `false` if canceled. + */ + + }, { + key: 'dispatchEvent', + value: function dispatchEvent(event) { + if (!event || typeof event.type !== "string") { + throw new TypeError("\"event.type\" should be a string."); + } + + var eventName = event.type; + var onFunc = this['on' + eventName]; + if (onFunc && typeof onFunc === 'function') { + event._target = event._currentTarget = this; + onFunc.call(this, event); + event._target = event._currentTarget = null; + event._eventPhase = 0; + event._passiveListener = null; + + if (event.defaultPrevented) return false; + } + + // If listeners aren't registered, terminate. + var listeners = this._listeners; + + var node = listeners.get(eventName); + if (!node) { + return true; + } + + event._target = event._currentTarget = this; + + // This doesn't process capturing phase and bubbling phase. + // This isn't participating in a tree. + var prev = null; + while (node) { + // Remove this listener if it's once + if (node.once) { + if (prev) { + prev.next = node.next; + } else if (node.next) { + listeners.set(eventName, node.next); + } else { + listeners.delete(eventName); + } + } else { + prev = node; + } + + // Call this listener + event._passiveListener = node.passive ? node.listener : null; + if (typeof node.listener === "function") { + node.listener.call(this, event); + } + + // Break if `event.stopImmediatePropagation` was called. + if (event._stopped) { + break; + } + + node = node.next; + } + event._target = event._currentTarget = null; + event._eventPhase = 0; + event._passiveListener = null; + + return !event.defaultPrevented; + } + }]); + + return EventTarget; +}(); + +function touchEventHandlerFactory(type) { + return function (touches) { + var touchEvent = new TouchEvent(type); + + touchEvent.touches = touches; + touchEvent.targetTouches = Array.prototype.slice.call(touchEvent.touches); + touchEvent.changedTouches = touches; //event.changedTouches + // touchEvent.timeStamp = event.timeStamp + + var i = 0, + touchCount = touches.length; + var target; + var touchListenerMap = __listenerMap.touch; + for (var key in touchListenerMap) { + target = touchListenerMap[key]; + for (i = 0; i < touchCount; ++i) { + touches[i].target = target; + } + target.dispatchEvent(touchEvent); + } + }; +} + +jsb.onTouchStart = touchEventHandlerFactory('touchstart'); +jsb.onTouchMove = touchEventHandlerFactory('touchmove'); +jsb.onTouchEnd = touchEventHandlerFactory('touchend'); +jsb.onTouchCancel = touchEventHandlerFactory('touchcancel'); + +function mouseEventHandlerFactory(type) { + return function (event) { + var button = event.button; + var x = event.x; + var y = event.y; + + var mouseEvent = new MouseEvent(type, { + button: button, + which: button + 1, + wheelDelta: event.wheelDeltaY, + clientX: x, + clientY: y, + screenX: x, + screenY: y, + pageX: x, + pageY: y + }); + + var target; + var mouseListenerMap = __listenerMap.mouse; + for (var key in mouseListenerMap) { + target = mouseListenerMap[key]; + target.dispatchEvent(mouseEvent); + } + }; +} + +jsb.onMouseDown = mouseEventHandlerFactory('mousedown'); +jsb.onMouseMove = mouseEventHandlerFactory('mousemove'); +jsb.onMouseUp = mouseEventHandlerFactory('mouseup'); +jsb.onMouseWheel = mouseEventHandlerFactory('mousewheel'); + +function keyboardEventHandlerFactory(type) { + return function (event) { + var keyboardEvent = new KeyboardEvent(type, { + altKey: event.altKey, + ctrlKey: event.ctrlKey, + metaKey: event.metaKey, + shiftKey: event.shiftKey, + repeat: event.repeat, + keyCode: event.keyCode + }); + var target; + var keyboardListenerMap = __listenerMap.keyboard; + for (var key in keyboardListenerMap) { + target = keyboardListenerMap[key]; + target.dispatchEvent(keyboardEvent); + } + }; +} + +jsb.onKeyDown = keyboardEventHandlerFactory('keydown'); +jsb.onKeyUp = keyboardEventHandlerFactory('keyup'); + +jsb.device.dispatchDeviceMotionEvent = function (event) { + var target; + var devicemotionListenerMap = __listenerMap.devicemotion; + for (var key in devicemotionListenerMap) { + target = devicemotionListenerMap[key]; + target.dispatchEvent(event); + } +}; + +module.exports = EventTarget; + +},{}],10:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var EventTarget = require('./EventTarget'); + +var FileReader = function (_EventTarget) { + _inherits(FileReader, _EventTarget); + + function FileReader() { + _classCallCheck(this, FileReader); + + return _possibleConstructorReturn(this, (FileReader.__proto__ || Object.getPrototypeOf(FileReader)).apply(this, arguments)); + } + + _createClass(FileReader, [{ + key: 'construct', + value: function construct() { + this.result = null; + } + + // Aborts the read operation. Upon return, the readyState will be DONE. + + }, { + key: 'abort', + value: function abort() {} + + // Starts reading the contents of the specified Blob, once finished, the result attribute contains an ArrayBuffer representing the file's data. + + }, { + key: 'readAsArrayBuffer', + value: function readAsArrayBuffer() {} + + // Starts reading the contents of the specified Blob, once finished, the result attribute contains a data: URL representing the file's data. + + }, { + key: 'readAsDataURL', + value: function readAsDataURL(blob) { + this.result = 'data:image/png;base64,' + window.btoa(blob); + var event = new Event('load'); + this.dispatchEvent(event); + } + + // Starts reading the contents of the specified Blob, once finished, the result attribute contains the contents of the file as a text string. + + }, { + key: 'readAsText', + value: function readAsText() {} + }]); + + return FileReader; +}(EventTarget); + +module.exports = FileReader; + +},{"./EventTarget":9}],11:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var FontFace = function () { + function FontFace(family, source, descriptors) { + var _this = this; + + _classCallCheck(this, FontFace); + + this.family = family; + this.source = source; + this.descriptors = descriptors; + + this._status = 'unloaded'; + + this._loaded = new Promise(function (resolve, reject) { + _this._resolveCB = resolve; + _this._rejectCB = reject; + }); + } + + _createClass(FontFace, [{ + key: 'load', + value: function load() { + // class FontFaceSet, add(fontFace) have done the load work + } + }, { + key: 'status', + get: function get() { + return this._status; + } + }, { + key: 'loaded', + get: function get() { + return this._loaded; + } + }]); + + return FontFace; +}(); + +module.exports = FontFace; + +},{}],12:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var EventTarget = require('./EventTarget'); +var Event = require('./Event'); + +var FontFaceSet = function (_EventTarget) { + _inherits(FontFaceSet, _EventTarget); + + function FontFaceSet() { + _classCallCheck(this, FontFaceSet); + + var _this = _possibleConstructorReturn(this, (FontFaceSet.__proto__ || Object.getPrototypeOf(FontFaceSet)).call(this)); + + _this._status = 'loading'; + return _this; + } + + _createClass(FontFaceSet, [{ + key: 'add', + value: function add(fontFace) { + var _this2 = this; + + this._status = fontFace._status = 'loading'; + this.dispatchEvent(new Event('loading')); + // Call native binding method to set the ttf font to native platform. + var family = jsb.loadFont(fontFace.family, fontFace.source); + setTimeout(function () { + if (family) { + fontFace._status = _this2._status = 'loaded'; + fontFace._resolveCB(); + _this2.dispatchEvent(new Event('loadingdone')); + } else { + fontFace._status = _this2._status = 'error'; + fontFace._rejectCB(); + _this2.dispatchEvent(new Event('loadingerror')); + } + }, 0); + } + }, { + key: 'clear', + value: function clear() {} + }, { + key: 'delete', + value: function _delete() {} + }, { + key: 'load', + value: function load() {} + }, { + key: 'ready', + value: function ready() {} + }, { + key: 'status', + get: function get() { + return this._status; + } + }, { + key: 'onloading', + set: function set(listener) { + this.addEventListener('loading', listener); + } + }, { + key: 'onloadingdone', + set: function set(listener) { + this.addEventListener('loadingdone', listener); + } + }, { + key: 'onloadingerror', + set: function set(listener) { + this.addEventListener('loadingerror', listener); + } + }]); + + return FontFaceSet; +}(EventTarget); + +module.exports = FontFaceSet; + +},{"./Event":8,"./EventTarget":9}],13:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var HTMLElement = require('./HTMLElement'); +var ImageData = require('./ImageData'); +var DOMRect = require('./DOMRect'); + +var clamp = function clamp(value) { + value = Math.round(value); + return value < 0 ? 0 : value < 255 ? value : 255; +}; + +var CanvasGradient = function () { + function CanvasGradient() { + _classCallCheck(this, CanvasGradient); + + console.log("==> CanvasGradient constructor"); + } + + _createClass(CanvasGradient, [{ + key: 'addColorStop', + value: function addColorStop(offset, color) { + console.log("==> CanvasGradient addColorStop"); + } + }]); + + return CanvasGradient; +}(); + +var TextMetrics = function () { + function TextMetrics(width) { + _classCallCheck(this, TextMetrics); + + this._width = width; + } + + _createClass(TextMetrics, [{ + key: 'width', + get: function get() { + return this._width; + } + }]); + + return TextMetrics; +}(); + +var HTMLCanvasElement = function (_HTMLElement) { + _inherits(HTMLCanvasElement, _HTMLElement); + + function HTMLCanvasElement(width, height) { + _classCallCheck(this, HTMLCanvasElement); + + var _this = _possibleConstructorReturn(this, (HTMLCanvasElement.__proto__ || Object.getPrototypeOf(HTMLCanvasElement)).call(this, 'canvas')); + + _this.id = 'glcanvas'; + _this.type = 'canvas'; + + _this.top = 0; + _this.left = 0; + _this._width = width ? Math.ceil(width) : 0; + _this._height = height ? Math.ceil(height) : 0; + _this._context2D = null; + _this._data = null; + _this._alignment = 4; // Canvas is used for rendering text only and we make sure the data format is RGBA. + // Whether the pixel data is premultiplied. + _this._premultiplied = false; + return _this; + } + + //REFINE: implement opts. + + + _createClass(HTMLCanvasElement, [{ + key: 'getContext', + value: function getContext(name, opts) { + var self = this; + // console.log(`==> Canvas getContext(${name})`); + if (name === 'webgl' || name === 'experimental-webgl') { + if (this === window.__canvas) return window.__gl;else return null; + } else if (name === '2d') { + if (!this._context2D) { + this._context2D = new CanvasRenderingContext2D(this._width, this._height); + this._data = new ImageData(this._width, this._height); + this._context2D._canvas = this; + this._context2D._setCanvasBufferUpdatedCallback(function (data) { + // FIXME: Canvas's data will take 2x memory size, one in C++, another is obtained by Uint8Array here. + self._data = new ImageData(data, self._width, self._height); + // If the width of canvas could be divided by 2, it means that the bytes per row could be divided by 8. + self._alignment = self._width % 2 === 0 ? 8 : 4; + }); + } + return this._context2D; + } + + return null; + } + }, { + key: 'getBoundingClientRect', + value: function getBoundingClientRect() { + return new DOMRect(0, 0, this._width, this._height); + } + }, { + key: 'width', + set: function set(width) { + width = Math.ceil(width); + if (this._width !== width) { + this._width = width; + if (this._context2D) { + this._context2D._width = width; + } + } + }, + get: function get() { + return this._width; + } + }, { + key: 'height', + set: function set(height) { + height = Math.ceil(height); + if (this._height !== height) { + this._height = height; + if (this._context2D) { + this._context2D._height = height; + } + } + }, + get: function get() { + return this._height; + } + }, { + key: 'clientWidth', + get: function get() { + return this._width; + } + }, { + key: 'clientHeight', + get: function get() { + return this._height; + } + }, { + key: 'data', + get: function get() { + if (this._data) { + return this._data.data; + } + return null; + } + }]); + + return HTMLCanvasElement; +}(HTMLElement); + +var ctx2DProto = CanvasRenderingContext2D.prototype; + +// ImageData ctx.createImageData(imagedata); +// ImageData ctx.createImageData(width, height); +ctx2DProto.createImageData = function (args1, args2) { + if (typeof args1 === 'number' && typeof args2 == 'number') { + return new ImageData(args1, args2); + } else if (args1 instanceof ImageData) { + return new ImageData(args1.data, args1.width, args1.height); + } +}; + +// void ctx.putImageData(imagedata, dx, dy); +// void ctx.putImageData(imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight); +ctx2DProto.putImageData = function (imageData, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) { + this._canvas._data = imageData; +}; + +// ImageData ctx.getImageData(sx, sy, sw, sh); +ctx2DProto.getImageData = function (sx, sy, sw, sh) { + var canvasWidth = this._canvas._width; + var canvasHeight = this._canvas._height; + var canvasBuffer = this._canvas._data.data; + // image rect may bigger that canvas rect + var maxValidSH = sh + sy < canvasHeight ? sh : canvasHeight - sy; + var maxValidSW = sw + sx < canvasWidth ? sw : canvasWidth - sx; + var imgBuffer = new Uint8ClampedArray(sw * sh * 4); + for (var y = 0; y < maxValidSH; y++) { + for (var x = 0; x < maxValidSW; x++) { + var canvasPos = (y + sy) * canvasWidth + (x + sx); + var imgPos = y * sw + x; + imgBuffer[imgPos * 4 + 0] = canvasBuffer[canvasPos * 4 + 0]; + imgBuffer[imgPos * 4 + 1] = canvasBuffer[canvasPos * 4 + 1]; + imgBuffer[imgPos * 4 + 2] = canvasBuffer[canvasPos * 4 + 2]; + imgBuffer[imgPos * 4 + 3] = canvasBuffer[canvasPos * 4 + 3]; + } + } + return new ImageData(imgBuffer, sw, sh); +}; + +module.exports = HTMLCanvasElement; + +},{"./DOMRect":5,"./HTMLElement":14,"./ImageData":20}],14:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Element = require('./Element'); + +var _require = require('./util'), + noop = _require.noop; + +var HTMLElement = function (_Element) { + _inherits(HTMLElement, _Element); + + function HTMLElement() { + var tagName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + + _classCallCheck(this, HTMLElement); + + var _this = _possibleConstructorReturn(this, (HTMLElement.__proto__ || Object.getPrototypeOf(HTMLElement)).call(this)); + + _this.tagName = tagName.toUpperCase(); + + _this.className = ''; + _this.children = []; + _this.style = { + width: window.innerWidth + 'px', + height: window.innerHeight + 'px' + }; + + _this.innerHTML = ''; + _this.parentElement = window.__canvas; + return _this; + } + + _createClass(HTMLElement, [{ + key: 'setAttribute', + value: function setAttribute(name, value) { + this[name] = value; + } + }, { + key: 'getAttribute', + value: function getAttribute(name) { + return this[name]; + } + }, { + key: 'focus', + value: function focus() {} + }]); + + return HTMLElement; +}(Element); + +module.exports = HTMLElement; + +},{"./Element":7,"./util":30}],15:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var HTMLElement = require('./HTMLElement'); +var Event = require('./Event'); +var gl = window.__gl; + +var HTMLImageElement = function (_HTMLElement) { + _inherits(HTMLImageElement, _HTMLElement); + + function HTMLImageElement(width, height, isCalledFromImage) { + _classCallCheck(this, HTMLImageElement); + + if (!isCalledFromImage) { + throw new TypeError("Illegal constructor, use 'new Image(w, h); instead!'"); + return _possibleConstructorReturn(_this); + } + + var _this = _possibleConstructorReturn(this, (HTMLImageElement.__proto__ || Object.getPrototypeOf(HTMLImageElement)).call(this, 'img')); + + _this.width = width ? width : 0; + _this.height = height ? height : 0; + _this._data = null; + _this._src = null; + _this.complete = false; + _this._glFormat = _this._glInternalFormat = gl.RGBA; + _this.crossOrigin = null; + return _this; + } + + _createClass(HTMLImageElement, [{ + key: 'getBoundingClientRect', + value: function getBoundingClientRect() { + return new DOMRect(0, 0, this.width, this.height); + } + }, { + key: 'src', + set: function set(src) { + var _this2 = this; + + this._src = src; + jsb.loadImage(src, function (info) { + if (!info) { + _this2._data = null; + var event = new Event('error'); + _this2.dispatchEvent(event); + return; + } + _this2.width = _this2.naturalWidth = info.width; + _this2.height = _this2.naturalHeight = info.height; + _this2._data = info.data; + // console.log(`glFormat: ${info.glFormat}, glInternalFormat: ${info.glInternalFormat}, glType: ${info.glType}`); + _this2._glFormat = info.glFormat; + _this2._glInternalFormat = info.glInternalFormat; + _this2._glType = info.glType; + _this2._numberOfMipmaps = info.numberOfMipmaps; + _this2._compressed = info.compressed; + _this2._bpp = info.bpp; + _this2._premultiplyAlpha = info.premultiplyAlpha; + + _this2._alignment = 1; + // Set the row align only when mipmapsNum == 1 and the data is uncompressed + if ((_this2._numberOfMipmaps == 0 || _this2._numberOfMipmaps == 1) && !_this2._compressed) { + var bytesPerRow = _this2.width * _this2._bpp / 8; + if (bytesPerRow % 8 == 0) _this2._alignment = 8;else if (bytesPerRow % 4 == 0) _this2._alignment = 4;else if (bytesPerRow % 2 == 0) _this2._alignment = 2; + } + + _this2.complete = true; + + var event = new Event('load'); + _this2.dispatchEvent(event); + }); + }, + get: function get() { + return this._src; + } + }, { + key: 'clientWidth', + get: function get() { + return this.width; + } + }, { + key: 'clientHeight', + get: function get() { + return this.height; + } + }]); + + return HTMLImageElement; +}(HTMLElement); + +module.exports = HTMLImageElement; + +},{"./Event":8,"./HTMLElement":14}],16:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var HTMLElement = require('./HTMLElement'); +var MediaError = require('./MediaError'); + +var HAVE_NOTHING = 0; +var HAVE_METADATA = 1; +var HAVE_CURRENT_DATA = 2; +var HAVE_FUTURE_DATA = 3; +var HAVE_ENOUGH_DATA = 4; + +var HTMLMediaElement = function (_HTMLElement) { + _inherits(HTMLMediaElement, _HTMLElement); + + function HTMLMediaElement(type) { + _classCallCheck(this, HTMLMediaElement); + + var _this = _possibleConstructorReturn(this, (HTMLMediaElement.__proto__ || Object.getPrototypeOf(HTMLMediaElement)).call(this, type)); + + _this._volume = 1.0; + _this._duration = 0; + _this._isEnded = false; + _this._isMute = false; + _this._readyState = HAVE_NOTHING; + _this._error = new MediaError(); + return _this; + } + + _createClass(HTMLMediaElement, [{ + key: 'addTextTrack', + value: function addTextTrack() {} + }, { + key: 'captureStream', + value: function captureStream() {} + }, { + key: 'fastSeek', + value: function fastSeek() {} + }, { + key: 'load', + value: function load() {} + }, { + key: 'pause', + value: function pause() {} + }, { + key: 'play', + value: function play() {} + }, { + key: 'canPlayType', + value: function canPlayType(mediaType) { + return ''; + } + }, { + key: 'volume', + set: function set(volume) { + this._volume = volume; + }, + get: function get() { + return this._volume; + } + }, { + key: 'duration', + get: function get() { + return this._duration; + } + }, { + key: 'ended', + get: function get() { + return this._isEnded; + } + }, { + key: 'muted', + get: function get() { + return this._isMute; + } + }, { + key: 'readyState', + get: function get() { + return this._readyState; + } + }, { + key: 'error', + get: function get() { + return this._error; + } + }, { + key: 'currentTime', + get: function get() { + return 0; + } + }]); + + return HTMLMediaElement; +}(HTMLElement); + +module.exports = HTMLMediaElement; + +},{"./HTMLElement":14,"./MediaError":22}],17:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var HTMLElement = require('./HTMLElement'); +var Event = require('./Event'); + +var HTMLScriptElement = function (_HTMLElement) { + _inherits(HTMLScriptElement, _HTMLElement); + + function HTMLScriptElement(width, height) { + _classCallCheck(this, HTMLScriptElement); + + return _possibleConstructorReturn(this, (HTMLScriptElement.__proto__ || Object.getPrototypeOf(HTMLScriptElement)).call(this, 'script')); + } + + _createClass(HTMLScriptElement, [{ + key: 'src', + set: function set(url) { + var _this2 = this; + + setTimeout(function () { + require(url); + _this2.dispatchEvent(new Event('load')); + }, 0); + } + }]); + + return HTMLScriptElement; +}(HTMLElement); + +module.exports = HTMLScriptElement; + +},{"./Event":8,"./HTMLElement":14}],18:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var HTMLMediaElement = require('./HTMLMediaElement'); + +var HTMLVideoElement = function (_HTMLMediaElement) { + _inherits(HTMLVideoElement, _HTMLMediaElement); + + function HTMLVideoElement() { + _classCallCheck(this, HTMLVideoElement); + + return _possibleConstructorReturn(this, (HTMLVideoElement.__proto__ || Object.getPrototypeOf(HTMLVideoElement)).call(this, 'video')); + } + + _createClass(HTMLVideoElement, [{ + key: 'canPlayType', + value: function canPlayType(type) { + if (type === 'video/mp4') return true; + return false; + } + }]); + + return HTMLVideoElement; +}(HTMLMediaElement); + +module.exports = HTMLVideoElement; + +},{"./HTMLMediaElement":16}],19:[function(require,module,exports){ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var HTMLImageElement = require('./HTMLImageElement'); + +var Image = function (_HTMLImageElement) { + _inherits(Image, _HTMLImageElement); + + function Image(width, height) { + _classCallCheck(this, Image); + + return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).call(this, width, height, true)); + } + + return Image; +}(HTMLImageElement); + +module.exports = Image; + +},{"./HTMLImageElement":15}],20:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var ImageData = function () { + + // var imageData = new ImageData(array, width, height); + // var imageData = new ImageData(width, height); + function ImageData(array, width, height) { + _classCallCheck(this, ImageData); + + if (typeof array === 'number' && typeof width == 'number') { + height = width; + width = array; + array = null; + } + if (array === null) { + this._data = new Uint8ClampedArray(width * height * 4); + } else { + this._data = array; + } + this._width = width; + this._height = height; + } + + _createClass(ImageData, [{ + key: 'data', + get: function get() { + return this._data; + } + }, { + key: 'width', + get: function get() { + return this._width; + } + }, { + key: 'height', + get: function get() { + return this._height; + } + }]); + + return ImageData; +}(); + +module.exports = ImageData; + +},{}],21:[function(require,module,exports){ +'use strict'; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Event = require('./Event'); + +var __numberShiftMap = { + '48': ')', // 0 + '49': '!', // 1 + '50': '@', // 2 + '51': '#', // 3 + '52': '$', // 4 + '53': '%', // 5 + '54': '^', // 6 + '55': '&', // 7 + '56': '*', // 8 + '57': '(' // 9 +}; + +var __capsLockActive = false; + +var KeyboardEvent = function (_Event) { + _inherits(KeyboardEvent, _Event); + + function KeyboardEvent(type, KeyboardEventInit) { + _classCallCheck(this, KeyboardEvent); + + var _this = _possibleConstructorReturn(this, (KeyboardEvent.__proto__ || Object.getPrototypeOf(KeyboardEvent)).call(this, type)); + + if ((typeof KeyboardEventInit === 'undefined' ? 'undefined' : _typeof(KeyboardEventInit)) === 'object') { + _this._altKeyActive = KeyboardEventInit.altKey ? KeyboardEventInit.altKey : false; + _this._ctrlKeyActive = KeyboardEventInit.ctrlKey ? KeyboardEventInit.ctrlKey : false; + _this._metaKeyActive = KeyboardEventInit.metaKey ? KeyboardEventInit.metaKey : false; + _this._shiftKeyActive = KeyboardEventInit.shiftKey ? KeyboardEventInit.shiftKey : false; + _this._keyCode = KeyboardEventInit.keyCode ? KeyboardEventInit.keyCode : -1; + _this._repeat = KeyboardEventInit.repeat ? KeyboardEventInit.repeat : false; + } else { + _this._altKeyActive = false; + _this._ctrlKeyActive = false; + _this._metaKeyActive = false; + _this._shiftKeyActive = false; + _this._keyCode = -1; + _this._repeat = false; + } + + var keyCode = _this._keyCode; + if (keyCode >= 48 && keyCode <= 57) { + // 0 ~ 9 + var number = keyCode - 48; + _this._code = 'Digit' + number; + _this._key = _this._shiftKeyActive ? __numberShiftMap[keyCode] : '' + number; + } else if (keyCode >= 10048 && keyCode <= 10057) { + // Numberpad 0 ~ 9 + // reset to web keyCode since it's a hack in C++ for distinguish numbers in Numberpad. + keyCode = _this._keyCode = keyCode - 10000; + var number = keyCode - 48; + _this._code = 'Numpad' + number; + _this._key = '' + number; + } else if (keyCode >= 65 && keyCode <= 90) { + // A ~ Z + var charCode = String.fromCharCode(keyCode); + _this._code = 'Key' + charCode; + _this._key = _this._shiftKeyActive || __capsLockActive ? charCode : charCode.toLowerCase(); + } else if (keyCode >= 112 && keyCode <= 123) { + // F1 ~ F12 + _this._code = _this._key = 'F' + (keyCode - 111); + } else if (keyCode === 27) { + _this._code = _this._key = 'Escape'; + } else if (keyCode === 189) { + _this._code = 'Minus'; + _this._key = _this._shiftKeyActive ? '_' : '-'; + } else if (keyCode === 187) { + _this._code = 'Equal'; + _this._key = _this._shiftKeyActive ? '+' : '='; + } else if (keyCode === 220) { + _this._code = 'Backslash'; + _this._key = _this._shiftKeyActive ? '|' : '\\'; + } else if (keyCode === 192) { + _this._code = 'Backquote'; + _this._key = _this._shiftKeyActive ? '~' : '`'; + } else if (keyCode === 8) { + _this._code = _this._key = 'Backspace'; + } else if (keyCode === 13) { + _this._code = _this._key = 'Enter'; + } else if (keyCode === 219) { + _this._code = 'BracketLeft'; + _this._key = _this._shiftKeyActive ? '{' : '['; + } else if (keyCode === 221) { + _this._code = 'BracketRight'; + _this._key = _this._shiftKeyActive ? '}' : ']'; + } else if (keyCode === 186) { + _this._code = 'Semicolon'; + _this._key = _this._shiftKeyActive ? ':' : ';'; + } else if (keyCode === 222) { + _this._code = 'Quote'; + _this._key = _this._shiftKeyActive ? '"' : "'"; + } else if (keyCode === 9) { + _this._code = _this._key = 'Tab'; + } else if (keyCode === 17) { + _this._code = 'ControlLeft'; + _this._key = 'Control'; + } else if (keyCode === 20017) { + _this._keyCode = 17; // Reset to the real value. + _this._code = 'ControlRight'; + _this._key = 'Control'; + } else if (keyCode === 16) { + _this._code = 'ShiftLeft'; + _this._key = 'Shift'; + } else if (keyCode === 20016) { + _this._keyCode = 16; // Reset to the real value. + _this._code = 'ShiftRight'; + _this._key = 'Shift'; + } else if (keyCode === 18) { + _this._code = 'AltLeft'; + _this._key = 'Alt'; + } else if (keyCode === 20018) { + _this._keyCode = 18; // Reset to the real value. + _this._code = 'AltRight'; + _this._key = 'Alt'; + } else if (keyCode === 91) { + _this._code = 'MetaLeft'; + _this._key = 'Meta'; + } else if (keyCode === 93) { + _this._code = 'MetaRight'; + _this._key = 'Meta'; + } else if (keyCode === 37) { + _this._code = _this._key = 'ArrowLeft'; + } else if (keyCode === 38) { + _this._code = _this._key = 'ArrowUp'; + } else if (keyCode === 39) { + _this._code = _this._key = 'ArrowRight'; + } else if (keyCode === 40) { + _this._code = _this._key = 'ArrowDown'; + } else if (keyCode === 20093) { + _this._keyCode = 93; // Bug of brower since its keycode is the same as MetaRight. + _this._code = _this._key = 'ContextMenu'; + } else if (keyCode === 20013) { + _this._keyCode = 13; + _this._code = 'NumpadEnter'; + _this._key = 'Enter'; + } else if (keyCode === 107) { + _this._code = 'NumpadAdd'; + _this._key = '+'; + } else if (keyCode === 109) { + _this._code = 'NumpadSubtract'; + _this._key = '-'; + } else if (keyCode === 106) { + _this._code = 'NumpadMultiply'; + _this._key = '*'; + } else if (keyCode === 111) { + _this._code = 'NumpadDivide'; + _this._key = '/'; + } else if (keyCode === 12) { + _this._code = 'NumLock'; + _this._key = 'Clear'; + } else if (keyCode === 124) { + _this._code = _this._key = 'F13'; + } else if (keyCode === 36) { + _this._code = _this._key = 'Home'; + } else if (keyCode === 33) { + _this._code = _this._key = 'PageUp'; + } else if (keyCode === 34) { + _this._code = _this._key = 'PageDown'; + } else if (keyCode === 35) { + _this._code = _this._key = 'End'; + } else if (keyCode === 188) { + _this._code = 'Comma'; + _this._key = _this._shiftKeyActive ? '<' : ','; + } else if (keyCode === 190) { + _this._code = 'Period'; + _this._key = _this._shiftKeyActive ? '>' : '.'; + } else if (keyCode === 191) { + _this._code = 'Slash'; + _this._key = _this._shiftKeyActive ? '?' : '/'; + } else if (keyCode === 32) { + _this._code = 'Space'; + _this._key = ' '; + } else if (keyCode === 46) { + _this._code = _this._key = 'Delete'; + } else if (keyCode === 110) { + _this._code = 'NumpadDecimal'; + _this._key = '.'; + } else if (keyCode === 20) { + _this._code = _this._key = 'CapsLock'; + if (type === 'keyup') { + __capsLockActive = !__capsLockActive; + } + } else { + console.log("Unknown keyCode: " + _this._keyCode); + } + return _this; + } + + // Returns a Boolean indicating if the modifier key, like Alt, Shift, Ctrl, or Meta, was pressed when the event was created. + + + _createClass(KeyboardEvent, [{ + key: 'getModifierState', + value: function getModifierState() { + return false; + } + + // Returns a Boolean that is true if the Alt ( Option or ⌥ on OS X) key was active when the key event was generated. + + }, { + key: 'altKey', + get: function get() { + return this._altKeyActive; + } + + // Returns a DOMString with the code value of the key represented by the event. + + }, { + key: 'code', + get: function get() { + return this._code; + } + + // Returns a Boolean that is true if the Ctrl key was active when the key event was generated. + + }, { + key: 'ctrlKey', + get: function get() { + return this._ctrlKeyActive; + } + + // Returns a Boolean that is true if the event is fired between after compositionstart and before compositionend. + + }, { + key: 'isComposing', + get: function get() { + return false; + } + + // Returns a DOMString representing the key value of the key represented by the event. + + }, { + key: 'key', + get: function get() { + return this._key; + } + }, { + key: 'keyCode', + get: function get() { + return this._keyCode; + } + + // Returns a Number representing the location of the key on the keyboard or other input device. + + }, { + key: 'location', + get: function get() { + return 0; + } + + // Returns a Boolean that is true if the Meta key (on Mac keyboards, the ⌘ Command key; on Windows keyboards, the Windows key (⊞)) was active when the key event was generated. + + }, { + key: 'metaKey', + get: function get() { + return this._metaKeyActive; + } + + // Returns a Boolean that is true if the key is being held down such that it is automatically repeating. + + }, { + key: 'repeat', + get: function get() { + return this._repeat; + } + + // Returns a Boolean that is true if the Shift key was active when the key event was generated. + + }, { + key: 'shiftKey', + get: function get() { + return this._shiftKeyActive; + } + }]); + + return KeyboardEvent; +}(Event); + +module.exports = KeyboardEvent; + +},{"./Event":8}],22:[function(require,module,exports){ +"use strict"; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var MEDIA_ERR_ABORTED = 1; +var MEDIA_ERR_NETWORK = 2; +var MEDIA_ERR_DECODE = 3; +var MEDIA_ERR_SRC_NOT_SUPPORTED = 4; + +var MediaError = function () { + function MediaError() { + _classCallCheck(this, MediaError); + } + + _createClass(MediaError, [{ + key: "code", + get: function get() { + return MEDIA_ERR_ABORTED; + } + }, { + key: "message", + get: function get() { + return ""; + } + }]); + + return MediaError; +}(); + +module.exports = MediaError; + +},{}],23:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Event = require('./Event'); + +var MouseEvent = function (_Event) { + _inherits(MouseEvent, _Event); + + function MouseEvent(type, initArgs) { + _classCallCheck(this, MouseEvent); + + var _this = _possibleConstructorReturn(this, (MouseEvent.__proto__ || Object.getPrototypeOf(MouseEvent)).call(this, type)); + + _this._button = initArgs.button; + _this._which = initArgs.which; + _this._wheelDelta = initArgs.wheelDelta; + _this._clientX = initArgs.clientX; + _this._clientY = initArgs.clientY; + _this._screenX = initArgs.screenX; + _this._screenY = initArgs.screenY; + _this._pageX = initArgs.pageX; + _this._pageY = initArgs.pageY; + return _this; + } + + _createClass(MouseEvent, [{ + key: 'button', + get: function get() { + return this._button; + } + }, { + key: 'which', + get: function get() { + return this._which; + } + }, { + key: 'wheelDelta', + get: function get() { + return this._wheelDelta; + } + }, { + key: 'clientX', + get: function get() { + return this._clientX; + } + }, { + key: 'clientY', + get: function get() { + return this._clientY; + } + }, { + key: 'screenX', + get: function get() { + return this._screenX; + } + }, { + key: 'screenY', + get: function get() { + return this._screenY; + } + }, { + key: 'pageX', + get: function get() { + return this._pageX; + } + }, { + key: 'pageY', + get: function get() { + return this._pageY; + } + }]); + + return MouseEvent; +}(Event); + +module.exports = MouseEvent; + +},{"./Event":8}],24:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var EventTarget = require('./EventTarget'); + +var Node = function (_EventTarget) { + _inherits(Node, _EventTarget); + + function Node() { + _classCallCheck(this, Node); + + var _this = _possibleConstructorReturn(this, (Node.__proto__ || Object.getPrototypeOf(Node)).call(this)); + + _this.childNodes = []; + _this.parentNode = window.__canvas; + return _this; + } + + _createClass(Node, [{ + key: 'appendChild', + value: function appendChild(node) { + if (node instanceof Node) { + this.childNodes.push(node); + } else { + throw new TypeError('Failed to executed \'appendChild\' on \'Node\': parameter 1 is not of type \'Node\'.'); + } + } + }, { + key: 'insertBefore', + value: function insertBefore(newNode, referenceNode) { + //REFINE: + return newNode; + } + }, { + key: 'replaceChild', + value: function replaceChild(newChild, oldChild) { + //REFINE: + return oldChild; + } + }, { + key: 'cloneNode', + value: function cloneNode() { + var copyNode = Object.create(this); + + Object.assign(copyNode, this); + return copyNode; + } + }, { + key: 'removeChild', + value: function removeChild(node) { + var index = this.childNodes.findIndex(function (child) { + return child === node; + }); + + if (index > -1) { + return this.childNodes.splice(index, 1); + } + return null; + } + }, { + key: 'contains', + value: function contains(node) { + return this.childNodes.indexOf(node) > -1; + } + }]); + + return Node; +}(EventTarget); + +module.exports = Node; + +},{"./EventTarget":9}],25:[function(require,module,exports){ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Event = require('./Event'); + +var TouchEvent = function (_Event) { + _inherits(TouchEvent, _Event); + + function TouchEvent(type, touchEventInit) { + _classCallCheck(this, TouchEvent); + + var _this = _possibleConstructorReturn(this, (TouchEvent.__proto__ || Object.getPrototypeOf(TouchEvent)).call(this, type)); + + _this.touches = []; + _this.targetTouches = []; + _this.changedTouches = []; + return _this; + } + + return TouchEvent; +}(Event); + +module.exports = TouchEvent; + +},{"./Event":8}],26:[function(require,module,exports){ +'use strict'; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var HTMLElement = require('./HTMLElement'); +var Image = require('./Image'); +var HTMLCanvasElement = require('./HTMLCanvasElement'); +var HTMLVideoElement = require('./HTMLVideoElement'); +var HTMLScriptElement = require('./HTMLScriptElement'); +var Node = require('./Node'); +var FontFaceSet = require('./FontFaceSet'); + +var Document = function (_Node) { + _inherits(Document, _Node); + + function Document() { + _classCallCheck(this, Document); + + var _this = _possibleConstructorReturn(this, (Document.__proto__ || Object.getPrototypeOf(Document)).call(this)); + + _this.readyState = 'complete'; + _this.visibilityState = 'visible'; + _this.documentElement = window; + _this.hidden = false; + _this.style = {}; + _this.location = require('./location'); + + _this.head = new HTMLElement('head'); + _this.body = new HTMLElement('body'); + + _this.fonts = new FontFaceSet(); + + _this.scripts = []; + return _this; + } + + _createClass(Document, [{ + key: 'createElementNS', + value: function createElementNS(namespaceURI, qualifiedName, options) { + return this.createElement(qualifiedName); + } + }, { + key: 'createElement', + value: function createElement(tagName) { + if (tagName === 'canvas') { + return new HTMLCanvasElement(); + } else if (tagName === 'img') { + return new Image(); + } else if (tagName === 'video') { + return new HTMLVideoElement(); + } else if (tagName === 'script') { + return new HTMLScriptElement(); + } + + return new HTMLElement(tagName); + } + }, { + key: 'getElementById', + value: function getElementById(id) { + if (id === window.__canvas.id || id === 'canvas') { + return window.__canvas; + } + return new HTMLElement(id); + } + }, { + key: 'getElementsByTagName', + value: function getElementsByTagName(tagName) { + if (tagName === 'head') { + return [document.head]; + } else if (tagName === 'body') { + return [document.body]; + } else if (tagName === 'canvas') { + return [window.__canvas]; + } + return [new HTMLElement(tagName)]; + } + }, { + key: 'getElementsByName', + value: function getElementsByName(tagName) { + if (tagName === 'head') { + return [document.head]; + } else if (tagName === 'body') { + return [document.body]; + } else if (tagName === 'canvas') { + return [window.__canvas]; + } + return [new HTMLElement(tagName)]; + } + }, { + key: 'querySelector', + value: function querySelector(query) { + if (query === 'head') { + return document.head; + } else if (query === 'body') { + return document.body; + } else if (query === 'canvas') { + return window.__canvas; + } else if (query === '#' + window.__canvas.id) { + return window.__canvas; + } + return new HTMLElement(query); + } + }, { + key: 'querySelectorAll', + value: function querySelectorAll(query) { + if (query === 'head') { + return [document.head]; + } else if (query === 'body') { + return [document.body]; + } else if (query === 'canvas') { + return [window.__canvas]; + } + return [new HTMLElement(query)]; + } + }, { + key: 'createTextNode', + value: function createTextNode() { + return new HTMLElement('text'); + } + }, { + key: 'elementFromPoint', + value: function elementFromPoint() { + return window.canvas; + } + }, { + key: 'createEvent', + value: function createEvent(type) { + if (window[type]) { + return new window[type](); + } + return null; + } + }]); + + return Document; +}(Node); + +var document = new Document(); + +module.exports = document; + +},{"./FontFaceSet":12,"./HTMLCanvasElement":13,"./HTMLElement":14,"./HTMLScriptElement":17,"./HTMLVideoElement":18,"./Image":19,"./Node":24,"./location":28}],27:[function(require,module,exports){ +'use strict'; + +require('./window'); + +},{"./window":31}],28:[function(require,module,exports){ +'use strict'; + +var location = { + href: 'game.js', + pathname: 'game.js', + search: '', + hash: '', + reload: function reload() {} +}; + +module.exports = location; + +},{}],29:[function(require,module,exports){ +'use strict'; + +var _require = require('./util'), + noop = _require.noop; + +var navigator = { + platform: __getOS(), + language: __getCurrentLanguage(), + appVersion: '5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1', + userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Mobile/14E8301 NetType/WIFI Language/zh_CN', + onLine: true, //FIXME: + + geolocation: { + getCurrentPosition: noop, + watchPosition: noop, + clearWatch: noop + }, + + maxTouchPoints: 10 //FIXME: getting the number from OS. +}; + +module.exports = navigator; + +},{"./util":30}],30:[function(require,module,exports){ +"use strict"; + +function noop() {} + +module.exports = noop; + +},{}],31:[function(require,module,exports){ +'use strict'; + +function inject() { + window.top = window.parent = window; + + window.ontouchstart = null; + window.ontouchmove = null; + window.ontouchend = null; + window.ontouchcancel = null; + + window.pageXOffset = window.pageYOffset = window.clientTop = window.clientLeft = 0; + window.outerWidth = window.innerWidth; + window.outerHeight = window.innerHeight; + + window.location = require('./location'); + window.document = require('./document'); + window.Element = require('./Element'); + window.HTMLElement = require('./HTMLElement'); + window.HTMLCanvasElement = require('./HTMLCanvasElement'); + window.HTMLImageElement = require('./HTMLImageElement'); + window.HTMLMediaElement = require('./HTMLMediaElement'); + window.HTMLVideoElement = require('./HTMLVideoElement'); + window.HTMLScriptElement = require('./HTMLScriptElement'); + window.__canvas = new HTMLCanvasElement(); + window.__canvas._width = window.innerWidth; + window.__canvas._height = window.innerHeight; + window.__gl.canvas = window.__canvas; + window.navigator = require('./navigator'); + window.Image = require('./Image'); + window.FileReader = require('./FileReader'); + window.FontFace = require('./FontFace'); + window.FontFaceSet = require('./FontFaceSet'); + window.EventTarget = require('./EventTarget'); + window.Event = require('./Event'); + window.TouchEvent = require('./TouchEvent'); + window.MouseEvent = require('./MouseEvent'); + window.KeyboardEvent = require('./KeyboardEvent'); + window.DeviceMotionEvent = require('./DeviceMotionEvent'); + + var ROTATION_0 = 0; + var ROTATION_90 = 1; + var ROTATION_180 = 2; + var ROTATION_270 = 3; + var orientation = 0; + var rotation = jsb.device.getDeviceRotation(); + switch (rotation) { + case ROTATION_90: + orientation = 90; + break; + case ROTATION_180: + orientation = 180; + break; + case ROTATION_270: + orientation = -90; + break; + default: + break; + } + + //FIXME: The value needs to be updated when device orientation changes. + window.orientation = orientation; + + window.devicePixelRatio = 1.0; + window.screen = { + availTop: 0, + availLeft: 0, + availHeight: window.innerWidth, + availWidth: window.innerHeight, + colorDepth: 8, + pixelDepth: 8, + left: 0, + top: 0, + width: window.innerWidth, + height: window.innerHeight, + orientation: { //FIXME:cjh + type: 'portrait-primary' // portrait-primary, portrait-secondary, landscape-primary, landscape-secondary + }, + onorientationchange: function onorientationchange(event) {} + }; + + window.addEventListener = function (eventName, listener, options) { + window.__canvas.addEventListener(eventName, listener, options); + }; + + window.removeEventListener = function (eventName, listener, options) { + window.__canvas.removeEventListener(eventName, listener, options); + }; + + window.dispatchEvent = function (event) { + window.__canvas.dispatchEvent(event); + }; + + window.getComputedStyle = function (element) { + return { + position: 'absolute', + left: '0px', + top: '0px', + height: '0px' + }; + }; + + window.resize = function (width, height) { + window.innerWidth = width; + window.innerHeight = height; + window.outerWidth = window.innerWidth; + window.outerHeight = window.innerHeight; + window.__canvas._width = window.innerWidth; + window.__canvas._height = window.innerHeight; + window.screen.availWidth = window.innerWidth; + window.screen.availHeight = window.innerHeight; + window.screen.width = window.innerWidth; + window.screen.height = window.innerHeight; + }; + + window.focus = function () {}; + window.scroll = function () {}; + + window._isInjected = true; +} + +if (!window._isInjected) { + inject(); +} + +window.localStorage = sys.localStorage; + +},{"./DeviceMotionEvent":6,"./Element":7,"./Event":8,"./EventTarget":9,"./FileReader":10,"./FontFace":11,"./FontFaceSet":12,"./HTMLCanvasElement":13,"./HTMLElement":14,"./HTMLImageElement":15,"./HTMLMediaElement":16,"./HTMLScriptElement":17,"./HTMLVideoElement":18,"./Image":19,"./KeyboardEvent":21,"./MouseEvent":23,"./TouchEvent":25,"./document":26,"./location":28,"./navigator":29}],32:[function(require,module,exports){ +"use strict"; + +(function (jsb) { + + if (!jsb || !jsb.AudioEngine) return; + + jsb.AudioEngine.AudioState = { + ERROR: -1, + INITIALZING: 0, + PLAYING: 1, + PAUSED: 2, + STOPPED: 3 + }; + + jsb.AudioEngine.INVALID_AUDIO_ID = -1; + jsb.AudioEngine.TIME_UNKNOWN = -1; +})(jsb); + +},{}],33:[function(require,module,exports){ +'use strict'; + +var EventTarget = require('./jsb-adapter/EventTarget'); +var Event = require('./jsb-adapter/Event'); + +var eventTarget = new EventTarget(); + +var callbackWrappers = {}; +var callbacks = {}; +var index = 1; +var callbackWrapper = function callbackWrapper(cb) { + if (!cb) return null; + + var func = function func(event) { + cb({ value: event.text }); + }; + cb.___index = index++; + callbackWrappers[cb.___index] = func; + + return func; +}; +var getCallbackWrapper = function getCallbackWrapper(cb) { + if (cb && cb.___index) { + var ret = callbackWrappers[cb.___index]; + delete callbackWrappers[cb.___index]; + return ret; + } else return null; +}; +var removeListener = function removeListener(name, cb) { + if (cb) eventTarget.removeEventListener(name, getCallbackWrapper(cb));else { + // remove all listeners of name + var cbs = callbacks[name]; + if (!cbs) return; + + for (var i = 0, len = cbs.length; i < len; ++i) { + eventTarget.removeEventListener(name, cbs[i]); + }delete callbacks[name]; + } +}; +var recordCallback = function recordCallback(name, cb) { + if (!cb || !name || name === '') return; + + if (!callbacks[name]) callbacks[name] = []; + + callbacks[name].push(cb); +}; + +jsb.inputBox = { + onConfirm: function onConfirm(cb) { + var newCb = callbackWrapper(cb); + eventTarget.addEventListener('confirm', newCb); + recordCallback('confirm', newCb); + }, + offConfirm: function offConfirm(cb) { + removeListener('confirm', cb); + }, + + onComplete: function onComplete(cb) { + var newCb = callbackWrapper(cb); + eventTarget.addEventListener('complete', newCb); + recordCallback('complete', newCb); + }, + offComplete: function offComplete(cb) { + removeListener('complete', cb); + }, + + onInput: function onInput(cb) { + var newCb = callbackWrapper(cb); + eventTarget.addEventListener('input', newCb); + recordCallback('input', newCb); + }, + offInput: function offInput(cb) { + removeListener('input', cb); + }, + + /** + * @param {string} options.defaultValue + * @param {number} options.maxLength + * @param {bool} options.multiple + * @param {bool} options.confirmHold + * @param {string} options.confirmType + * @param {string} options.inputType + * + * Values of options.confirmType can be [done|next|search|go|send]. + * Values of options.inputType can be [text|email|number|phone|password]. + */ + show: function show(options) { + jsb.showInputBox(options); + }, + hide: function hide() { + jsb.hideInputBox(); + } +}; + +jsb.onTextInput = function (eventName, text) { + var event = new Event(eventName); + event.text = text; + eventTarget.dispatchEvent(event); +}; + +},{"./jsb-adapter/Event":8,"./jsb-adapter/EventTarget":9}],34:[function(require,module,exports){ +'use strict'; + +require('./jsb_opengl_constants'); + +var gl = __gl; + +gl.drawingBufferWidth = window.innerWidth; +gl.drawingBufferHeight = window.innerHeight; + +// +// Extensions +// + +var WebGLCompressedTextureS3TC = { + COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83F0, // A DXT1-compressed image in an RGB image format. + COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83F1, // A DXT1-compressed image in an RGB image format with a simple on/off alpha value. + COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83F2, // A DXT3-compressed image in an RGBA image format. Compared to a 32-bit RGBA texture, it offers 4:1 compression. + COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83F3 // A DXT5-compressed image in an RGBA image format. It also provides a 4:1 compression, but differs to the DXT3 compression in how the alpha compression is done. +}; + +var WebGLCompressedTextureETC1 = { + COMPRESSED_RGB_ETC1_WEBGL: 0x8D64 // Compresses 24-bit RGB data with no alpha channel. +}; + +var WebGLCompressedTexturePVRTC = { + COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 0x8C00, // RGB compression in 4-bit mode. One block for each 4×4 pixels. + COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 0x8C02, // RGBA compression in 4-bit mode. One block for each 4×4 pixels. + COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 0x8C01, // RGB compression in 2-bit mode. One block for each 8×4 pixels. + COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 0x8C03 // RGBA compression in 2-bit mode. One block for each 8×4 pixe +}; + +var extensionPrefixArr = ['MOZ_', 'WEBKIT_']; + +var extensionMap = { + WEBGL_compressed_texture_s3tc: WebGLCompressedTextureS3TC, + WEBGL_compressed_texture_pvrtc: WebGLCompressedTexturePVRTC, + WEBGL_compressed_texture_etc1: WebGLCompressedTextureETC1 +}; + +// From the WebGL spec: +// Returns an object if, and only if, name is an ASCII case-insensitive match [HTML] for one of the names returned from getSupportedExtensions; +// otherwise, returns null. The object returned from getExtension contains any constants or functions provided by the extension. +// A returned object may have no constants or functions if the extension does not define any, but a unique object must still be returned. +// That object is used to indicate that the extension has been enabled. +// XXX: The returned object must return the functions and constants. + +var supportedExtensions = gl.getSupportedExtensions(); + +gl.getExtension = function (extension) { + var prefix; + for (var i = 0, len = extensionPrefixArr.length; i < len; ++i) { + prefix = extensionPrefixArr[i]; + if (extension.startsWith(prefix)) { + extension = extension.substring(prefix.length); + break; + } + } + + if (supportedExtensions.indexOf(extension) > -1) { + if (extension in extensionMap) { + return extensionMap[extension]; + } + return {}; //REFINE: Return an empty object to indicate this platform supports the extension. But we should not return an empty object actually. + } + + return null; +}; + +var HTMLCanvasElement = require('./jsb-adapter/HTMLCanvasElement'); +var HTMLImageElement = require('./jsb-adapter/HTMLImageElement'); +var ImageData = require('./jsb-adapter/ImageData'); + +var _glTexImage2D = gl.texImage2D; + +/* +// WebGL1: +void gl.texImage2D(target, level, internalformat, width, height, border, format, type, ArrayBufferView? pixels); +void gl.texImage2D(target, level, internalformat, format, type, ImageData? pixels); +void gl.texImage2D(target, level, internalformat, format, type, HTMLImageElement? pixels); +void gl.texImage2D(target, level, internalformat, format, type, HTMLCanvasElement? pixels); +void gl.texImage2D(target, level, internalformat, format, type, HTMLVideoElement? pixels); +void gl.texImage2D(target, level, internalformat, format, type, ImageBitmap? pixels); +*/ +gl.texImage2D = function (target, level, internalformat, width, height, border, format, type, pixels) { + var argCount = arguments.length; + if (argCount == 6) { + + var image = border; + type = height; + format = width; + + if (image instanceof HTMLImageElement) { + _glTexImage2D(target, level, image._glInternalFormat, image.width, image.height, 0, image._glFormat, image._glType, image._data, image._alignment); + } else if (image instanceof HTMLCanvasElement) { + var data = image.data; + _glTexImage2D(target, level, internalformat, image.width, image.height, 0, format, type, data, image._alignment); + } else if (image instanceof ImageData) { + _glTexImage2D(target, level, internalformat, image.width, image.height, 0, format, type, image._data, 0); + } else { + console.error("Invalid pixel argument passed to gl.texImage2D!"); + } + } else if (argCount == 9) { + _glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels, 0); + } else { + console.error("gl.texImage2D: invalid argument count!"); + } +}; + +var _glTexSubImage2D = gl.texSubImage2D; +/* + // WebGL 1: + void gl.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, ArrayBufferView? pixels); + void gl.texSubImage2D(target, level, xoffset, yoffset, format, type, ImageData? pixels); + void gl.texSubImage2D(target, level, xoffset, yoffset, format, type, HTMLImageElement? pixels); + void gl.texSubImage2D(target, level, xoffset, yoffset, format, type, HTMLCanvasElement? pixels); + void gl.texSubImage2D(target, level, xoffset, yoffset, format, type, HTMLVideoElement? pixels); + void gl.texSubImage2D(target, level, xoffset, yoffset, format, type, ImageBitmap? pixels); + */ +gl.texSubImage2D = function (target, level, xoffset, yoffset, width, height, format, type, pixels) { + var argCount = arguments.length; + if (argCount == 7) { + var image = format; + type = height; + format = width; + + if (image instanceof HTMLImageElement) { + _glTexSubImage2D(target, level, xoffset, yoffset, image.width, image.height, image._glFormat, image._glType, image._data, image._alignment); + } else if (image instanceof HTMLCanvasElement) { + var data = image.data; + _glTexSubImage2D(target, level, xoffset, yoffset, image.width, image.height, format, type, data, image._alignment); + } else if (image instanceof ImageData) { + _glTexSubImage2D(target, level, xoffset, yoffset, image.width, image.height, format, type, image._data, 0); + } else { + console.error("Invalid pixel argument passed to gl.texImage2D!"); + } + } else if (argCount == 9) { + _glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels, 0); + } else { + console.error(new Error("gl.texImage2D: invalid argument count!").stack); + } +}; + +//REFINE:cjh get the real value +gl.getContextAttributes = function () { + return { + alpha: true, + antialias: false, + depth: true, + failIfMajorPerformanceCaveat: false, + premultipliedAlpha: true, + preserveDrawingBuffer: false, + stencil: true + }; +}; + +gl.isContextLost = function () { + return false; +}; + +},{"./jsb-adapter/HTMLCanvasElement":13,"./jsb-adapter/HTMLImageElement":15,"./jsb-adapter/ImageData":20,"./jsb_opengl_constants":35}],35:[function(require,module,exports){ +"use strict"; + +var gl = __gl; + +gl.GCCSO_SHADER_BINARY_FJ = 0x9260; +gl._3DC_XY_AMD = 0x87fa; +gl._3DC_X_AMD = 0x87f9; +gl.ACTIVE_ATTRIBUTES = 0x8b89; +gl.ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8b8a; +gl.ACTIVE_PROGRAM_EXT = 0x8259; +gl.ACTIVE_TEXTURE = 0x84e0; +gl.ACTIVE_UNIFORMS = 0x8b86; +gl.ACTIVE_UNIFORM_MAX_LENGTH = 0x8b87; +gl.ALIASED_LINE_WIDTH_RANGE = 0x846e; +gl.ALIASED_POINT_SIZE_RANGE = 0x846d; +gl.ALL_COMPLETED_NV = 0x84f2; +gl.ALL_SHADER_BITS_EXT = 0xffffffff; +gl.ALPHA = 0x1906; +gl.ALPHA16F_EXT = 0x881c; +gl.ALPHA32F_EXT = 0x8816; +gl.ALPHA8_EXT = 0x803c; +gl.ALPHA8_OES = 0x803c; +gl.ALPHA_BITS = 0xd55; +gl.ALPHA_TEST_FUNC_QCOM = 0xbc1; +gl.ALPHA_TEST_QCOM = 0xbc0; +gl.ALPHA_TEST_REF_QCOM = 0xbc2; +gl.ALREADY_SIGNALED_APPLE = 0x911a; +gl.ALWAYS = 0x207; +gl.AMD_compressed_3DC_texture = 0x1; +gl.AMD_compressed_ATC_texture = 0x1; +gl.AMD_performance_monitor = 0x1; +gl.AMD_program_binary_Z400 = 0x1; +gl.ANGLE_depth_texture = 0x1; +gl.ANGLE_framebuffer_blit = 0x1; +gl.ANGLE_framebuffer_multisample = 0x1; +gl.ANGLE_instanced_arrays = 0x1; +gl.ANGLE_pack_reverse_row_order = 0x1; +gl.ANGLE_program_binary = 0x1; +gl.ANGLE_texture_compression_dxt3 = 0x1; +gl.ANGLE_texture_compression_dxt5 = 0x1; +gl.ANGLE_texture_usage = 0x1; +gl.ANGLE_translated_shader_source = 0x1; +gl.ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8d6a; +gl.ANY_SAMPLES_PASSED_EXT = 0x8c2f; +gl.APPLE_copy_texture_levels = 0x1; +gl.APPLE_framebuffer_multisample = 0x1; +gl.APPLE_rgb_422 = 0x1; +gl.APPLE_sync = 0x1; +gl.APPLE_texture_format_BGRA8888 = 0x1; +gl.APPLE_texture_max_level = 0x1; +gl.ARM_mali_program_binary = 0x1; +gl.ARM_mali_shader_binary = 0x1; +gl.ARM_rgba8 = 0x1; +gl.ARRAY_BUFFER = 0x8892; +gl.ARRAY_BUFFER_BINDING = 0x8894; +gl.ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8c93; +gl.ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87ee; +gl.ATC_RGB_AMD = 0x8c92; +gl.ATTACHED_SHADERS = 0x8b85; +gl.BACK = 0x405; +gl.BGRA8_EXT = 0x93a1; +gl.BGRA_EXT = 0x80e1; +gl.BGRA_IMG = 0x80e1; +gl.BINNING_CONTROL_HINT_QCOM = 0x8fb0; +gl.BLEND = 0xbe2; +gl.BLEND_COLOR = 0x8005; +gl.BLEND_DST_ALPHA = 0x80ca; +gl.BLEND_DST_RGB = 0x80c8; +gl.BLEND_EQUATION = 0x8009; +gl.BLEND_EQUATION_ALPHA = 0x883d; +gl.BLEND_EQUATION_RGB = 0x8009; +gl.BLEND_SRC_ALPHA = 0x80cb; +gl.BLEND_SRC_RGB = 0x80c9; +gl.BLUE_BITS = 0xd54; +gl.BOOL = 0x8b56; +gl.BOOL_VEC2 = 0x8b57; +gl.BOOL_VEC3 = 0x8b58; +gl.BOOL_VEC4 = 0x8b59; +gl.BUFFER = 0x82e0; +gl.BUFFER_ACCESS_OES = 0x88bb; +gl.BUFFER_MAPPED_OES = 0x88bc; +gl.BUFFER_MAP_POINTER_OES = 0x88bd; +gl.BUFFER_OBJECT_EXT = 0x9151; +gl.BUFFER_SIZE = 0x8764; +gl.BUFFER_USAGE = 0x8765; +gl.BYTE = 0x1400; +gl.CCW = 0x901; +gl.CLAMP_TO_BORDER_NV = 0x812d; +gl.CLAMP_TO_EDGE = 0x812f; +gl.COLOR_ATTACHMENT0 = 0x8ce0; +gl.COLOR_ATTACHMENT0_NV = 0x8ce0; +gl.COLOR_ATTACHMENT10_NV = 0x8cea; +gl.COLOR_ATTACHMENT11_NV = 0x8ceb; +gl.COLOR_ATTACHMENT12_NV = 0x8cec; +gl.COLOR_ATTACHMENT13_NV = 0x8ced; +gl.COLOR_ATTACHMENT14_NV = 0x8cee; +gl.COLOR_ATTACHMENT15_NV = 0x8cef; +gl.COLOR_ATTACHMENT1_NV = 0x8ce1; +gl.COLOR_ATTACHMENT2_NV = 0x8ce2; +gl.COLOR_ATTACHMENT3_NV = 0x8ce3; +gl.COLOR_ATTACHMENT4_NV = 0x8ce4; +gl.COLOR_ATTACHMENT5_NV = 0x8ce5; +gl.COLOR_ATTACHMENT6_NV = 0x8ce6; +gl.COLOR_ATTACHMENT7_NV = 0x8ce7; +gl.COLOR_ATTACHMENT8_NV = 0x8ce8; +gl.COLOR_ATTACHMENT9_NV = 0x8ce9; +gl.COLOR_ATTACHMENT_EXT = 0x90f0; +gl.COLOR_BUFFER_BIT = 0x4000; +gl.COLOR_BUFFER_BIT0_QCOM = 0x1; +gl.COLOR_BUFFER_BIT1_QCOM = 0x2; +gl.COLOR_BUFFER_BIT2_QCOM = 0x4; +gl.COLOR_BUFFER_BIT3_QCOM = 0x8; +gl.COLOR_BUFFER_BIT4_QCOM = 0x10; +gl.COLOR_BUFFER_BIT5_QCOM = 0x20; +gl.COLOR_BUFFER_BIT6_QCOM = 0x40; +gl.COLOR_BUFFER_BIT7_QCOM = 0x80; +gl.COLOR_CLEAR_VALUE = 0xc22; +gl.COLOR_EXT = 0x1800; +gl.COLOR_WRITEMASK = 0xc23; +gl.COMPARE_REF_TO_TEXTURE_EXT = 0x884e; +gl.COMPILE_STATUS = 0x8b81; +gl.COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93bb; +gl.COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93b8; +gl.COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93b9; +gl.COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93ba; +gl.COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93bc; +gl.COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93bd; +gl.COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93b0; +gl.COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93b1; +gl.COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93b2; +gl.COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93b3; +gl.COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93b4; +gl.COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93b5; +gl.COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93b6; +gl.COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93b7; +gl.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8c03; +gl.COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = 0x9137; +gl.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8c02; +gl.COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = 0x9138; +gl.COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83f1; +gl.COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83f2; +gl.COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83f3; +gl.COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8c01; +gl.COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8c00; +gl.COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83f0; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93db; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93d8; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93d9; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93da; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93dc; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93dd; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93d0; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93d1; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93d2; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93d3; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93d4; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93d5; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93d6; +gl.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93d7; +gl.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = 0x8c4d; +gl.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = 0x8c4e; +gl.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = 0x8c4f; +gl.COMPRESSED_SRGB_S3TC_DXT1_NV = 0x8c4c; +gl.COMPRESSED_TEXTURE_FORMATS = 0x86a3; +gl.CONDITION_SATISFIED_APPLE = 0x911c; +gl.CONSTANT_ALPHA = 0x8003; +gl.CONSTANT_COLOR = 0x8001; +gl.CONTEXT_FLAG_DEBUG_BIT = 0x2; +gl.CONTEXT_ROBUST_ACCESS_EXT = 0x90f3; +gl.COUNTER_RANGE_AMD = 0x8bc1; +gl.COUNTER_TYPE_AMD = 0x8bc0; +gl.COVERAGE_ALL_FRAGMENTS_NV = 0x8ed5; +gl.COVERAGE_ATTACHMENT_NV = 0x8ed2; +gl.COVERAGE_AUTOMATIC_NV = 0x8ed7; +gl.COVERAGE_BUFFERS_NV = 0x8ed3; +gl.COVERAGE_BUFFER_BIT_NV = 0x8000; +gl.COVERAGE_COMPONENT4_NV = 0x8ed1; +gl.COVERAGE_COMPONENT_NV = 0x8ed0; +gl.COVERAGE_EDGE_FRAGMENTS_NV = 0x8ed6; +gl.COVERAGE_SAMPLES_NV = 0x8ed4; +gl.CPU_OPTIMIZED_QCOM = 0x8fb1; +gl.CULL_FACE = 0xb44; +gl.CULL_FACE_MODE = 0xb45; +gl.CURRENT_PROGRAM = 0x8b8d; +gl.CURRENT_QUERY_EXT = 0x8865; +gl.CURRENT_VERTEX_ATTRIB = 0x8626; +gl.CW = 0x900; +gl.DEBUG_CALLBACK_FUNCTION = 0x8244; +gl.DEBUG_CALLBACK_USER_PARAM = 0x8245; +gl.DEBUG_GROUP_STACK_DEPTH = 0x826d; +gl.DEBUG_LOGGED_MESSAGES = 0x9145; +gl.DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243; +gl.DEBUG_OUTPUT = 0x92e0; +gl.DEBUG_OUTPUT_SYNCHRONOUS = 0x8242; +gl.DEBUG_SEVERITY_HIGH = 0x9146; +gl.DEBUG_SEVERITY_LOW = 0x9148; +gl.DEBUG_SEVERITY_MEDIUM = 0x9147; +gl.DEBUG_SEVERITY_NOTIFICATION = 0x826b; +gl.DEBUG_SOURCE_API = 0x8246; +gl.DEBUG_SOURCE_APPLICATION = 0x824a; +gl.DEBUG_SOURCE_OTHER = 0x824b; +gl.DEBUG_SOURCE_SHADER_COMPILER = 0x8248; +gl.DEBUG_SOURCE_THIRD_PARTY = 0x8249; +gl.DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247; +gl.DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824d; +gl.DEBUG_TYPE_ERROR = 0x824c; +gl.DEBUG_TYPE_MARKER = 0x8268; +gl.DEBUG_TYPE_OTHER = 0x8251; +gl.DEBUG_TYPE_PERFORMANCE = 0x8250; +gl.DEBUG_TYPE_POP_GROUP = 0x826a; +gl.DEBUG_TYPE_PORTABILITY = 0x824f; +gl.DEBUG_TYPE_PUSH_GROUP = 0x8269; +gl.DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824e; +gl.DECR = 0x1e03; +gl.DECR_WRAP = 0x8508; +gl.DELETE_STATUS = 0x8b80; +gl.DEPTH24_STENCIL8_OES = 0x88f0; +gl.DEPTH_ATTACHMENT = 0x8d00; +gl.DEPTH_STENCIL_ATTACHMENT = 0x821a; +gl.DEPTH_BITS = 0xd56; +gl.DEPTH_BUFFER_BIT = 0x100; +gl.DEPTH_BUFFER_BIT0_QCOM = 0x100; +gl.DEPTH_BUFFER_BIT1_QCOM = 0x200; +gl.DEPTH_BUFFER_BIT2_QCOM = 0x400; +gl.DEPTH_BUFFER_BIT3_QCOM = 0x800; +gl.DEPTH_BUFFER_BIT4_QCOM = 0x1000; +gl.DEPTH_BUFFER_BIT5_QCOM = 0x2000; +gl.DEPTH_BUFFER_BIT6_QCOM = 0x4000; +gl.DEPTH_BUFFER_BIT7_QCOM = 0x8000; +gl.DEPTH_CLEAR_VALUE = 0xb73; +gl.DEPTH_COMPONENT = 0x1902; +gl.DEPTH_COMPONENT16 = 0x81a5; +gl.DEPTH_COMPONENT16_NONLINEAR_NV = 0x8e2c; +gl.DEPTH_COMPONENT16_OES = 0x81a5; +gl.DEPTH_COMPONENT24_OES = 0x81a6; +gl.DEPTH_COMPONENT32_OES = 0x81a7; +gl.DEPTH_EXT = 0x1801; +gl.DEPTH_FUNC = 0xb74; +gl.DEPTH_RANGE = 0xb70; +gl.DEPTH_STENCIL = 0x84f9; +gl.DEPTH_STENCIL_OES = 0x84f9; +gl.DEPTH_TEST = 0xb71; +gl.DEPTH_WRITEMASK = 0xb72; +gl.DITHER = 0xbd0; +gl.DMP_shader_binary = 0x1; +gl.DONT_CARE = 0x1100; +gl.DRAW_BUFFER0_NV = 0x8825; +gl.DRAW_BUFFER10_NV = 0x882f; +gl.DRAW_BUFFER11_NV = 0x8830; +gl.DRAW_BUFFER12_NV = 0x8831; +gl.DRAW_BUFFER13_NV = 0x8832; +gl.DRAW_BUFFER14_NV = 0x8833; +gl.DRAW_BUFFER15_NV = 0x8834; +gl.DRAW_BUFFER1_NV = 0x8826; +gl.DRAW_BUFFER2_NV = 0x8827; +gl.DRAW_BUFFER3_NV = 0x8828; +gl.DRAW_BUFFER4_NV = 0x8829; +gl.DRAW_BUFFER5_NV = 0x882a; +gl.DRAW_BUFFER6_NV = 0x882b; +gl.DRAW_BUFFER7_NV = 0x882c; +gl.DRAW_BUFFER8_NV = 0x882d; +gl.DRAW_BUFFER9_NV = 0x882e; +gl.DRAW_BUFFER_EXT = 0xc01; +gl.DRAW_FRAMEBUFFER_ANGLE = 0x8ca9; +gl.DRAW_FRAMEBUFFER_APPLE = 0x8ca9; +gl.DRAW_FRAMEBUFFER_BINDING_ANGLE = 0x8ca6; +gl.DRAW_FRAMEBUFFER_BINDING_APPLE = 0x8ca6; +gl.DRAW_FRAMEBUFFER_BINDING_NV = 0x8ca6; +gl.DRAW_FRAMEBUFFER_NV = 0x8ca9; +gl.DST_ALPHA = 0x304; +gl.DST_COLOR = 0x306; +gl.DYNAMIC_DRAW = 0x88e8; +gl.ELEMENT_ARRAY_BUFFER = 0x8893; +gl.ELEMENT_ARRAY_BUFFER_BINDING = 0x8895; +gl.EQUAL = 0x202; +gl.ES_VERSION_2_0 = 0x1; +gl.ETC1_RGB8_OES = 0x8d64; +gl.ETC1_SRGB8_NV = 0x88ee; +gl.EXTENSIONS = 0x1f03; +gl.EXT_blend_minmax = 0x1; +gl.EXT_color_buffer_half_float = 0x1; +gl.EXT_debug_label = 0x1; +gl.EXT_debug_marker = 0x1; +gl.EXT_discard_framebuffer = 0x1; +gl.EXT_map_buffer_range = 0x1; +gl.EXT_multi_draw_arrays = 0x1; +gl.EXT_multisampled_render_to_texture = 0x1; +gl.EXT_multiview_draw_buffers = 0x1; +gl.EXT_occlusion_query_boolean = 0x1; +gl.EXT_read_format_bgra = 0x1; +gl.EXT_robustness = 0x1; +gl.EXT_sRGB = 0x1; +gl.EXT_separate_shader_objects = 0x1; +gl.EXT_shader_framebuffer_fetch = 0x1; +gl.EXT_shader_texture_lod = 0x1; +gl.EXT_shadow_samplers = 0x1; +gl.EXT_texture_compression_dxt1 = 0x1; +gl.EXT_texture_filter_anisotropic = 0x1; +gl.EXT_texture_format_BGRA8888 = 0x1; +gl.EXT_texture_rg = 0x1; +gl.EXT_texture_storage = 0x1; +gl.EXT_texture_type_2_10_10_10_REV = 0x1; +gl.EXT_unpack_subimage = 0x1; +gl.FALSE = 0x0; +gl.FASTEST = 0x1101; +gl.FENCE_CONDITION_NV = 0x84f4; +gl.FENCE_STATUS_NV = 0x84f3; +gl.FIXED = 0x140c; +gl.FJ_shader_binary_GCCSO = 0x1; +gl.FLOAT = 0x1406; +gl.FLOAT_MAT2 = 0x8b5a; +gl.FLOAT_MAT3 = 0x8b5b; +gl.FLOAT_MAT4 = 0x8b5c; +gl.FLOAT_VEC2 = 0x8b50; +gl.FLOAT_VEC3 = 0x8b51; +gl.FLOAT_VEC4 = 0x8b52; +gl.FRAGMENT_SHADER = 0x8b30; +gl.FRAGMENT_SHADER_BIT_EXT = 0x2; +gl.FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8b8b; +gl.FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8a52; +gl.FRAMEBUFFER = 0x8d40; +gl.FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93a3; +gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210; +gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211; +gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8cd1; +gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8cd0; +gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8cd4; +gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8cd3; +gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8cd2; +gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = 0x8d6c; +gl.FRAMEBUFFER_BINDING = 0x8ca6; +gl.FRAMEBUFFER_COMPLETE = 0x8cd5; +gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8cd6; +gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8cd9; +gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8cd7; +gl.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = 0x8d56; +gl.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = 0x8d56; +gl.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8d56; +gl.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = 0x9134; +gl.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = 0x8d56; +gl.FRAMEBUFFER_UNDEFINED_OES = 0x8219; +gl.FRAMEBUFFER_UNSUPPORTED = 0x8cdd; +gl.FRONT = 0x404; +gl.FRONT_AND_BACK = 0x408; +gl.FRONT_FACE = 0xb46; +gl.FUNC_ADD = 0x8006; +gl.FUNC_REVERSE_SUBTRACT = 0x800b; +gl.FUNC_SUBTRACT = 0x800a; +gl.GENERATE_MIPMAP_HINT = 0x8192; +gl.GEQUAL = 0x206; +gl.GPU_OPTIMIZED_QCOM = 0x8fb2; +gl.GREATER = 0x204; +gl.GREEN_BITS = 0xd53; +gl.GUILTY_CONTEXT_RESET_EXT = 0x8253; +gl.HALF_FLOAT_OES = 0x8d61; +gl.HIGH_FLOAT = 0x8df2; +gl.HIGH_INT = 0x8df5; +gl.IMG_multisampled_render_to_texture = 0x1; +gl.IMG_program_binary = 0x1; +gl.IMG_read_format = 0x1; +gl.IMG_shader_binary = 0x1; +gl.IMG_texture_compression_pvrtc = 0x1; +gl.IMG_texture_compression_pvrtc2 = 0x1; +gl.IMPLEMENTATION_COLOR_READ_FORMAT = 0x8b9b; +gl.IMPLEMENTATION_COLOR_READ_TYPE = 0x8b9a; +gl.INCR = 0x1e02; +gl.INCR_WRAP = 0x8507; +gl.INFO_LOG_LENGTH = 0x8b84; +gl.INNOCENT_CONTEXT_RESET_EXT = 0x8254; +gl.INT = 0x1404; +gl.INT_10_10_10_2_OES = 0x8df7; +gl.INT_VEC2 = 0x8b53; +gl.INT_VEC3 = 0x8b54; +gl.INT_VEC4 = 0x8b55; +gl.INVALID_ENUM = 0x500; +gl.INVALID_FRAMEBUFFER_OPERATION = 0x506; +gl.INVALID_OPERATION = 0x502; +gl.INVALID_VALUE = 0x501; +gl.INVERT = 0x150a; +gl.KEEP = 0x1e00; +gl.KHR_debug = 0x1; +gl.KHR_texture_compression_astc_ldr = 0x1; +gl.LEFT = 0x0406; +gl.LEQUAL = 0x203; +gl.LESS = 0x201; +gl.LINEAR = 0x2601; +gl.LINEAR_MIPMAP_LINEAR = 0x2703; +gl.LINEAR_MIPMAP_NEAREST = 0x2701; +gl.LINES = 0x1; +gl.LINE_LOOP = 0x2; +gl.LINE_STRIP = 0x3; +gl.LINE_WIDTH = 0xb21; +gl.LINK_STATUS = 0x8b82; +gl.LOSE_CONTEXT_ON_RESET_EXT = 0x8252; +gl.LOW_FLOAT = 0x8df0; +gl.LOW_INT = 0x8df3; +gl.LUMINANCE = 0x1909; +gl.LUMINANCE16F_EXT = 0x881e; +gl.LUMINANCE32F_EXT = 0x8818; +gl.LUMINANCE4_ALPHA4_OES = 0x8043; +gl.LUMINANCE8_ALPHA8_EXT = 0x8045; +gl.LUMINANCE8_ALPHA8_OES = 0x8045; +gl.LUMINANCE8_EXT = 0x8040; +gl.LUMINANCE8_OES = 0x8040; +gl.LUMINANCE_ALPHA = 0x190a; +gl.LUMINANCE_ALPHA16F_EXT = 0x881f; +gl.LUMINANCE_ALPHA32F_EXT = 0x8819; +gl.MALI_PROGRAM_BINARY_ARM = 0x8f61; +gl.MALI_SHADER_BINARY_ARM = 0x8f60; +gl.MAP_FLUSH_EXPLICIT_BIT_EXT = 0x10; +gl.MAP_INVALIDATE_BUFFER_BIT_EXT = 0x8; +gl.MAP_INVALIDATE_RANGE_BIT_EXT = 0x4; +gl.MAP_READ_BIT_EXT = 0x1; +gl.MAP_UNSYNCHRONIZED_BIT_EXT = 0x20; +gl.MAP_WRITE_BIT_EXT = 0x2; +gl.MAX_3D_TEXTURE_SIZE_OES = 0x8073; +gl.MAX_COLOR_ATTACHMENTS_NV = 0x8cdf; +gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8b4d; +gl.MAX_CUBE_MAP_TEXTURE_SIZE = 0x851c; +gl.MAX_DEBUG_GROUP_STACK_DEPTH = 0x826c; +gl.MAX_DEBUG_LOGGED_MESSAGES = 0x9144; +gl.MAX_DEBUG_MESSAGE_LENGTH = 0x9143; +gl.MAX_DRAW_BUFFERS_NV = 0x8824; +gl.MAX_EXT = 0x8008; +gl.MAX_FRAGMENT_UNIFORM_VECTORS = 0x8dfd; +gl.MAX_LABEL_LENGTH = 0x82e8; +gl.MAX_MULTIVIEW_BUFFERS_EXT = 0x90f2; +gl.MAX_RENDERBUFFER_SIZE = 0x84e8; +gl.MAX_SAMPLES_ANGLE = 0x8d57; +gl.MAX_SAMPLES_APPLE = 0x8d57; +gl.MAX_SAMPLES_EXT = 0x8d57; +gl.MAX_SAMPLES_IMG = 0x9135; +gl.MAX_SAMPLES_NV = 0x8d57; +gl.MAX_SERVER_WAIT_TIMEOUT_APPLE = 0x9111; +gl.MAX_TEXTURE_IMAGE_UNITS = 0x8872; +gl.MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84ff; +gl.MAX_TEXTURE_SIZE = 0xd33; +gl.MAX_VARYING_VECTORS = 0x8dfc; +gl.MAX_VERTEX_ATTRIBS = 0x8869; +gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8b4c; +gl.MAX_VERTEX_UNIFORM_VECTORS = 0x8dfb; +gl.MAX_VIEWPORT_DIMS = 0xd3a; +gl.MEDIUM_FLOAT = 0x8df1; +gl.MEDIUM_INT = 0x8df4; +gl.MIN_EXT = 0x8007; +gl.MIRRORED_REPEAT = 0x8370; +gl.MULTISAMPLE_BUFFER_BIT0_QCOM = 0x1000000; +gl.MULTISAMPLE_BUFFER_BIT1_QCOM = 0x2000000; +gl.MULTISAMPLE_BUFFER_BIT2_QCOM = 0x4000000; +gl.MULTISAMPLE_BUFFER_BIT3_QCOM = 0x8000000; +gl.MULTISAMPLE_BUFFER_BIT4_QCOM = 0x10000000; +gl.MULTISAMPLE_BUFFER_BIT5_QCOM = 0x20000000; +gl.MULTISAMPLE_BUFFER_BIT6_QCOM = 0x40000000; +gl.MULTISAMPLE_BUFFER_BIT7_QCOM = 0x80000000; +gl.MULTIVIEW_EXT = 0x90f1; +gl.NEAREST = 0x2600; +gl.NEAREST_MIPMAP_LINEAR = 0x2702; +gl.NEAREST_MIPMAP_NEAREST = 0x2700; +gl.NEVER = 0x200; +gl.NICEST = 0x1102; +gl.NONE = 0x0; +gl.NOTEQUAL = 0x205; +gl.NO_ERROR = 0x0; +gl.NO_RESET_NOTIFICATION_EXT = 0x8261; +gl.NUM_COMPRESSED_TEXTURE_FORMATS = 0x86a2; +gl.NUM_PROGRAM_BINARY_FORMATS_OES = 0x87fe; +gl.NUM_SHADER_BINARY_FORMATS = 0x8df9; +gl.NV_coverage_sample = 0x1; +gl.NV_depth_nonlinear = 0x1; +gl.NV_draw_buffers = 0x1; +gl.NV_draw_instanced = 0x1; +gl.NV_fbo_color_attachments = 0x1; +gl.NV_fence = 0x1; +gl.NV_framebuffer_blit = 0x1; +gl.NV_framebuffer_multisample = 0x1; +gl.NV_generate_mipmap_sRGB = 0x1; +gl.NV_instanced_arrays = 0x1; +gl.NV_read_buffer = 0x1; +gl.NV_read_buffer_front = 0x1; +gl.NV_read_depth = 0x1; +gl.NV_read_depth_stencil = 0x1; +gl.NV_read_stencil = 0x1; +gl.NV_sRGB_formats = 0x1; +gl.NV_shadow_samplers_array = 0x1; +gl.NV_shadow_samplers_cube = 0x1; +gl.NV_texture_border_clamp = 0x1; +gl.NV_texture_compression_s3tc_update = 0x1; +gl.NV_texture_npot_2D_mipmap = 0x1; +gl.OBJECT_TYPE_APPLE = 0x9112; +gl.OES_EGL_image = 0x1; +gl.OES_EGL_image_external = 0x1; +gl.OES_compressed_ETC1_RGB8_texture = 0x1; +gl.OES_compressed_paletted_texture = 0x1; +gl.OES_depth24 = 0x1; +gl.OES_depth32 = 0x1; +gl.OES_depth_texture = 0x1; +gl.OES_element_index_uint = 0x1; +gl.OES_fbo_render_mipmap = 0x1; +gl.OES_fragment_precision_high = 0x1; +gl.OES_get_program_binary = 0x1; +gl.OES_mapbuffer = 0x1; +gl.OES_packed_depth_stencil = 0x1; +gl.OES_required_internalformat = 0x1; +gl.OES_rgb8_rgba8 = 0x1; +gl.OES_standard_derivatives = 0x1; +gl.OES_stencil1 = 0x1; +gl.OES_stencil4 = 0x1; +gl.OES_surfaceless_context = 0x1; +gl.OES_texture_3D = 0x1; +gl.OES_texture_float = 0x1; +gl.OES_texture_float_linear = 0x1; +gl.OES_texture_half_float = 0x1; +gl.OES_texture_half_float_linear = 0x1; +gl.OES_texture_npot = 0x1; +gl.OES_vertex_array_object = 0x1; +gl.OES_vertex_half_float = 0x1; +gl.OES_vertex_type_10_10_10_2 = 0x1; +gl.ONE = 0x1; +gl.ONE_MINUS_CONSTANT_ALPHA = 0x8004; +gl.ONE_MINUS_CONSTANT_COLOR = 0x8002; +gl.ONE_MINUS_DST_ALPHA = 0x305; +gl.ONE_MINUS_DST_COLOR = 0x307; +gl.ONE_MINUS_SRC_ALPHA = 0x303; +gl.ONE_MINUS_SRC_COLOR = 0x301; +gl.OUT_OF_MEMORY = 0x505; +gl.PACK_ALIGNMENT = 0xd05; +gl.PACK_REVERSE_ROW_ORDER_ANGLE = 0x93a4; +gl.PALETTE4_R5_G6_B5_OES = 0x8b92; +gl.PALETTE4_RGB5_A1_OES = 0x8b94; +gl.PALETTE4_RGB8_OES = 0x8b90; +gl.PALETTE4_RGBA4_OES = 0x8b93; +gl.PALETTE4_RGBA8_OES = 0x8b91; +gl.PALETTE8_R5_G6_B5_OES = 0x8b97; +gl.PALETTE8_RGB5_A1_OES = 0x8b99; +gl.PALETTE8_RGB8_OES = 0x8b95; +gl.PALETTE8_RGBA4_OES = 0x8b98; +gl.PALETTE8_RGBA8_OES = 0x8b96; +gl.PERCENTAGE_AMD = 0x8bc3; +gl.PERFMON_GLOBAL_MODE_QCOM = 0x8fa0; +gl.PERFMON_RESULT_AMD = 0x8bc6; +gl.PERFMON_RESULT_AVAILABLE_AMD = 0x8bc4; +gl.PERFMON_RESULT_SIZE_AMD = 0x8bc5; +gl.POINTS = 0x0; +gl.POLYGON_OFFSET_FACTOR = 0x8038; +gl.POLYGON_OFFSET_FILL = 0x8037; +gl.POLYGON_OFFSET_UNITS = 0x2a00; +gl.PROGRAM = 0x82e2; +gl.PROGRAM_BINARY_ANGLE = 0x93a6; +gl.PROGRAM_BINARY_FORMATS_OES = 0x87ff; +gl.PROGRAM_BINARY_LENGTH_OES = 0x8741; +gl.PROGRAM_OBJECT_EXT = 0x8b40; +gl.PROGRAM_PIPELINE_BINDING_EXT = 0x825a; +gl.PROGRAM_PIPELINE_OBJECT_EXT = 0x8a4f; +gl.PROGRAM_SEPARABLE_EXT = 0x8258; +gl.QCOM_alpha_test = 0x1; +gl.QCOM_binning_control = 0x1; +gl.QCOM_driver_control = 0x1; +gl.QCOM_extended_get = 0x1; +gl.QCOM_extended_get2 = 0x1; +gl.QCOM_perfmon_global_mode = 0x1; +gl.QCOM_tiled_rendering = 0x1; +gl.QCOM_writeonly_rendering = 0x1; +gl.QUERY = 0x82e3; +gl.QUERY_OBJECT_EXT = 0x9153; +gl.QUERY_RESULT_AVAILABLE_EXT = 0x8867; +gl.QUERY_RESULT_EXT = 0x8866; +gl.R16F_EXT = 0x822d; +gl.R32F_EXT = 0x822e; +gl.R8_EXT = 0x8229; +gl.READ_BUFFER_EXT = 0xc02; +gl.READ_BUFFER_NV = 0xc02; +gl.READ_FRAMEBUFFER_ANGLE = 0x8ca8; +gl.READ_FRAMEBUFFER_APPLE = 0x8ca8; +gl.READ_FRAMEBUFFER_BINDING_ANGLE = 0x8caa; +gl.READ_FRAMEBUFFER_BINDING_APPLE = 0x8caa; +gl.READ_FRAMEBUFFER_BINDING_NV = 0x8caa; +gl.READ_FRAMEBUFFER_NV = 0x8ca8; +gl.RED_BITS = 0xd52; +gl.RED_EXT = 0x1903; +gl.RENDERBUFFER = 0x8d41; +gl.RENDERBUFFER_ALPHA_SIZE = 0x8d53; +gl.RENDERBUFFER_BINDING = 0x8ca7; +gl.RENDERBUFFER_BLUE_SIZE = 0x8d52; +gl.RENDERBUFFER_DEPTH_SIZE = 0x8d54; +gl.RENDERBUFFER_GREEN_SIZE = 0x8d51; +gl.RENDERBUFFER_HEIGHT = 0x8d43; +gl.RENDERBUFFER_INTERNAL_FORMAT = 0x8d44; +gl.RENDERBUFFER_RED_SIZE = 0x8d50; +gl.RENDERBUFFER_SAMPLES_ANGLE = 0x8cab; +gl.RENDERBUFFER_SAMPLES_APPLE = 0x8cab; +gl.RENDERBUFFER_SAMPLES_EXT = 0x8cab; +gl.RENDERBUFFER_SAMPLES_IMG = 0x9133; +gl.RENDERBUFFER_SAMPLES_NV = 0x8cab; +gl.RENDERBUFFER_STENCIL_SIZE = 0x8d55; +gl.RENDERBUFFER_WIDTH = 0x8d42; +gl.RENDERER = 0x1f01; +gl.RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = 0x8fb3; +gl.REPEAT = 0x2901; +gl.REPLACE = 0x1e01; +gl.REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8d68; +gl.RESET_NOTIFICATION_STRATEGY_EXT = 0x8256; +gl.RG16F_EXT = 0x822f; +gl.RG32F_EXT = 0x8230; +gl.RG8_EXT = 0x822b; +gl.RGB = 0x1907; +gl.RGB10_A2_EXT = 0x8059; +gl.RGB10_EXT = 0x8052; +gl.RGB16F_EXT = 0x881b; +gl.RGB32F_EXT = 0x8815; +gl.RGB565 = 0x8d62; +gl.RGB565_OES = 0x8d62; +gl.RGB5_A1 = 0x8057; +gl.RGB5_A1_OES = 0x8057; +gl.RGB8_OES = 0x8051; +gl.RGBA = 0x1908; +gl.RGBA16F_EXT = 0x881a; +gl.RGBA32F_EXT = 0x8814; +gl.RGBA4 = 0x8056; +gl.RGBA4_OES = 0x8056; +gl.RGBA8_OES = 0x8058; +gl.RGB_422_APPLE = 0x8a1f; +gl.RG_EXT = 0x8227; +gl.RIGHT = 0x0407; +gl.SAMPLER = 0x82e6; +gl.SAMPLER_2D = 0x8b5e; +gl.SAMPLER_2D_ARRAY_SHADOW_NV = 0x8dc4; +gl.SAMPLER_2D_SHADOW_EXT = 0x8b62; +gl.SAMPLER_3D_OES = 0x8b5f; +gl.SAMPLER_CUBE = 0x8b60; +gl.SAMPLER_CUBE_SHADOW_NV = 0x8dc5; +gl.SAMPLER_EXTERNAL_OES = 0x8d66; +gl.SAMPLES = 0x80a9; +gl.SAMPLE_ALPHA_TO_COVERAGE = 0x809e; +gl.SAMPLE_BUFFERS = 0x80a8; +gl.SAMPLE_COVERAGE = 0x80a0; +gl.SAMPLE_COVERAGE_INVERT = 0x80ab; +gl.SAMPLE_COVERAGE_VALUE = 0x80aa; +gl.SCISSOR_BOX = 0xc10; +gl.SCISSOR_TEST = 0xc11; +gl.SGX_BINARY_IMG = 0x8c0a; +gl.SGX_PROGRAM_BINARY_IMG = 0x9130; +gl.SHADER = 0x82e1; +gl.SHADER_BINARY_DMP = 0x9250; +gl.SHADER_BINARY_FORMATS = 0x8df8; +gl.SHADER_BINARY_VIV = 0x8fc4; +gl.SHADER_COMPILER = 0x8dfa; +gl.SHADER_OBJECT_EXT = 0x8b48; +gl.SHADER_SOURCE_LENGTH = 0x8b88; +gl.SHADER_TYPE = 0x8b4f; +gl.SHADING_LANGUAGE_VERSION = 0x8b8c; +gl.SHORT = 0x1402; +gl.SIGNALED_APPLE = 0x9119; +gl.SLUMINANCE8_ALPHA8_NV = 0x8c45; +gl.SLUMINANCE8_NV = 0x8c47; +gl.SLUMINANCE_ALPHA_NV = 0x8c44; +gl.SLUMINANCE_NV = 0x8c46; +gl.SRC_ALPHA = 0x302; +gl.SRC_ALPHA_SATURATE = 0x308; +gl.SRC_COLOR = 0x300; +gl.SRGB8_ALPHA8_EXT = 0x8c43; +gl.SRGB8_NV = 0x8c41; +gl.SRGB_ALPHA_EXT = 0x8c42; +gl.SRGB_EXT = 0x8c40; +gl.STACK_OVERFLOW = 0x503; +gl.STACK_UNDERFLOW = 0x504; +gl.STATE_RESTORE = 0x8bdc; +gl.STATIC_DRAW = 0x88e4; +gl.STENCIL_ATTACHMENT = 0x8d20; +gl.STENCIL_BACK_FAIL = 0x8801; +gl.STENCIL_BACK_FUNC = 0x8800; +gl.STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802; +gl.STENCIL_BACK_PASS_DEPTH_PASS = 0x8803; +gl.STENCIL_BACK_REF = 0x8ca3; +gl.STENCIL_BACK_VALUE_MASK = 0x8ca4; +gl.STENCIL_BACK_WRITEMASK = 0x8ca5; +gl.STENCIL_BITS = 0xd57; +gl.STENCIL_BUFFER_BIT = 0x400; +gl.STENCIL_BUFFER_BIT0_QCOM = 0x10000; +gl.STENCIL_BUFFER_BIT1_QCOM = 0x20000; +gl.STENCIL_BUFFER_BIT2_QCOM = 0x40000; +gl.STENCIL_BUFFER_BIT3_QCOM = 0x80000; +gl.STENCIL_BUFFER_BIT4_QCOM = 0x100000; +gl.STENCIL_BUFFER_BIT5_QCOM = 0x200000; +gl.STENCIL_BUFFER_BIT6_QCOM = 0x400000; +gl.STENCIL_BUFFER_BIT7_QCOM = 0x800000; +gl.STENCIL_CLEAR_VALUE = 0xb91; +gl.STENCIL_EXT = 0x1802; +gl.STENCIL_FAIL = 0xb94; +gl.STENCIL_FUNC = 0xb92; +gl.STENCIL_INDEX1_OES = 0x8d46; +gl.STENCIL_INDEX4_OES = 0x8d47; +gl.STENCIL_INDEX = 0x1901; +gl.STENCIL_INDEX8 = 0x8d48; +gl.STENCIL_PASS_DEPTH_FAIL = 0xb95; +gl.STENCIL_PASS_DEPTH_PASS = 0xb96; +gl.STENCIL_REF = 0xb97; +gl.STENCIL_TEST = 0xb90; +gl.STENCIL_VALUE_MASK = 0xb93; +gl.STENCIL_WRITEMASK = 0xb98; +gl.STREAM_DRAW = 0x88e0; +gl.SUBPIXEL_BITS = 0xd50; +gl.SYNC_CONDITION_APPLE = 0x9113; +gl.SYNC_FENCE_APPLE = 0x9116; +gl.SYNC_FLAGS_APPLE = 0x9115; +gl.SYNC_FLUSH_COMMANDS_BIT_APPLE = 0x1; +gl.SYNC_GPU_COMMANDS_COMPLETE_APPLE = 0x9117; +gl.SYNC_OBJECT_APPLE = 0x8a53; +gl.SYNC_STATUS_APPLE = 0x9114; +gl.TEXTURE = 0x1702; +gl.TEXTURE0 = 0x84c0; +gl.TEXTURE1 = 0x84c1; +gl.TEXTURE10 = 0x84ca; +gl.TEXTURE11 = 0x84cb; +gl.TEXTURE12 = 0x84cc; +gl.TEXTURE13 = 0x84cd; +gl.TEXTURE14 = 0x84ce; +gl.TEXTURE15 = 0x84cf; +gl.TEXTURE16 = 0x84d0; +gl.TEXTURE17 = 0x84d1; +gl.TEXTURE18 = 0x84d2; +gl.TEXTURE19 = 0x84d3; +gl.TEXTURE2 = 0x84c2; +gl.TEXTURE20 = 0x84d4; +gl.TEXTURE21 = 0x84d5; +gl.TEXTURE22 = 0x84d6; +gl.TEXTURE23 = 0x84d7; +gl.TEXTURE24 = 0x84d8; +gl.TEXTURE25 = 0x84d9; +gl.TEXTURE26 = 0x84da; +gl.TEXTURE27 = 0x84db; +gl.TEXTURE28 = 0x84dc; +gl.TEXTURE29 = 0x84dd; +gl.TEXTURE3 = 0x84c3; +gl.TEXTURE30 = 0x84de; +gl.TEXTURE31 = 0x84df; +gl.TEXTURE4 = 0x84c4; +gl.TEXTURE5 = 0x84c5; +gl.TEXTURE6 = 0x84c6; +gl.TEXTURE7 = 0x84c7; +gl.TEXTURE8 = 0x84c8; +gl.TEXTURE9 = 0x84c9; +gl.TEXTURE_2D = 0xde1; +gl.TEXTURE_3D_OES = 0x806f; +gl.TEXTURE_BINDING_2D = 0x8069; +gl.TEXTURE_BINDING_3D_OES = 0x806a; +gl.TEXTURE_BINDING_CUBE_MAP = 0x8514; +gl.TEXTURE_BINDING_EXTERNAL_OES = 0x8d67; +gl.TEXTURE_BORDER_COLOR_NV = 0x1004; +gl.TEXTURE_COMPARE_FUNC_EXT = 0x884d; +gl.TEXTURE_COMPARE_MODE_EXT = 0x884c; +gl.TEXTURE_CUBE_MAP = 0x8513; +gl.TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516; +gl.TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518; +gl.TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851a; +gl.TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515; +gl.TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517; +gl.TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519; +gl.TEXTURE_DEPTH_QCOM = 0x8bd4; +gl.TEXTURE_EXTERNAL_OES = 0x8d65; +gl.TEXTURE_FORMAT_QCOM = 0x8bd6; +gl.TEXTURE_HEIGHT_QCOM = 0x8bd3; +gl.TEXTURE_IMAGE_VALID_QCOM = 0x8bd8; +gl.TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912f; +gl.TEXTURE_INTERNAL_FORMAT_QCOM = 0x8bd5; +gl.TEXTURE_MAG_FILTER = 0x2800; +gl.TEXTURE_MAX_ANISOTROPY_EXT = 0x84fe; +gl.TEXTURE_MAX_LEVEL_APPLE = 0x813d; +gl.TEXTURE_MIN_FILTER = 0x2801; +gl.TEXTURE_NUM_LEVELS_QCOM = 0x8bd9; +gl.TEXTURE_OBJECT_VALID_QCOM = 0x8bdb; +gl.TEXTURE_SAMPLES_IMG = 0x9136; +gl.TEXTURE_TARGET_QCOM = 0x8bda; +gl.TEXTURE_TYPE_QCOM = 0x8bd7; +gl.TEXTURE_USAGE_ANGLE = 0x93a2; +gl.TEXTURE_WIDTH_QCOM = 0x8bd2; +gl.TEXTURE_WRAP_R_OES = 0x8072; +gl.TEXTURE_WRAP_S = 0x2802; +gl.TEXTURE_WRAP_T = 0x2803; +gl.TIMEOUT_EXPIRED_APPLE = 0x911b; +gl.TIMEOUT_IGNORED_APPLE = 0xffffffffffffffff; +gl.TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93a0; +gl.TRIANGLES = 0x4; +gl.TRIANGLE_FAN = 0x6; +gl.TRIANGLE_STRIP = 0x5; +gl.TRUE = 0x1; +gl.UNKNOWN_CONTEXT_RESET_EXT = 0x8255; +gl.UNPACK_ALIGNMENT = 0xcf5; +gl.UNPACK_ROW_LENGTH = 0xcf2; +gl.UNPACK_SKIP_PIXELS = 0xcf4; +gl.UNPACK_SKIP_ROWS = 0xcf3; +gl.UNSIGNALED_APPLE = 0x9118; +gl.UNSIGNED_BYTE = 0x1401; +gl.UNSIGNED_INT = 0x1405; +gl.UNSIGNED_INT64_AMD = 0x8bc2; +gl.UNSIGNED_INT_10_10_10_2_OES = 0x8df6; +gl.UNSIGNED_INT_24_8_OES = 0x84fa; +gl.UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368; +gl.UNSIGNED_NORMALIZED_EXT = 0x8c17; +gl.UNSIGNED_SHORT = 0x1403; +gl.UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366; +gl.UNSIGNED_SHORT_4_4_4_4 = 0x8033; +gl.UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365; +gl.UNSIGNED_SHORT_4_4_4_4_REV_IMG = 0x8365; +gl.UNSIGNED_SHORT_5_5_5_1 = 0x8034; +gl.UNSIGNED_SHORT_5_6_5 = 0x8363; +gl.UNSIGNED_SHORT_8_8_APPLE = 0x85ba; +gl.UNSIGNED_SHORT_8_8_REV_APPLE = 0x85bb; +gl.VALIDATE_STATUS = 0x8b83; +gl.VENDOR = 0x1f00; +gl.VERSION = 0x1f02; +gl.VERTEX_ARRAY_BINDING_OES = 0x85b5; +gl.VERTEX_ARRAY_OBJECT_EXT = 0x9154; +gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889f; +gl.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88fe; +gl.VERTEX_ATTRIB_ARRAY_DIVISOR_NV = 0x88fe; +gl.VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622; +gl.VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886a; +gl.VERTEX_ATTRIB_ARRAY_POINTER = 0x8645; +gl.VERTEX_ATTRIB_ARRAY_SIZE = 0x8623; +gl.VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624; +gl.VERTEX_ATTRIB_ARRAY_TYPE = 0x8625; +gl.VERTEX_SHADER = 0x8b31; +gl.VERTEX_SHADER_BIT_EXT = 0x1; +gl.VIEWPORT = 0xba2; +gl.VIV_shader_binary = 0x1; +gl.WAIT_FAILED_APPLE = 0x911d; +gl.WRITEONLY_RENDERING_QCOM = 0x8823; +gl.WRITE_ONLY_OES = 0x88b9; +gl.Z400_BINARY_AMD = 0x8740; +gl.ZERO = 0x0; + +gl.RASTERIZER_DISCARD = 0x8C89; +gl.UNPACK_FLIP_Y_WEBGL = 0x9240; +gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241; +gl.CONTEXT_LOST_WEBGL = 0x9242; +gl.UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243; +gl.BROWSER_DEFAULT_WEBGL = 0x9244; + +},{}],36:[function(require,module,exports){ +"use strict"; + +jsb.__obj_ref_id = 0; + +jsb.registerNativeRef = function (owner, target) { + if (owner && target && owner !== target) { + var targetID = target.__jsb_ref_id; + if (targetID === undefined) targetID = target.__jsb_ref_id = jsb.__obj_ref_id++; + + var refs = owner.__nativeRefs; + if (!refs) { + refs = owner.__nativeRefs = {}; + } + + refs[targetID] = target; + } +}; + +jsb.unregisterNativeRef = function (owner, target) { + if (owner && target && owner !== target) { + var targetID = target.__jsb_ref_id; + if (targetID === undefined) return; + + var refs = owner.__nativeRefs; + if (!refs) { + return; + } + + delete refs[targetID]; + } +}; + +jsb.unregisterAllNativeRefs = function (owner) { + if (!owner) return; + delete owner.__nativeRefs; +}; + +jsb.unregisterChildRefsForNode = function (node, recursive) { + recursive = !!recursive; + var children = node.getChildren(), + i = void 0, + l = void 0, + child = void 0; + for (i = 0, l = children.length; i < l; ++i) { + child = children[i]; + jsb.unregisterNativeRef(node, child); + if (recursive) { + jsb.unregisterChildRefsForNode(child, recursive); + } + } +}; + +},{}],37:[function(require,module,exports){ +(function (global){ +"use strict"; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +/* promise.min.js + * A Promise polyfill implementation. + * 2018-11-16 + * + * By taylorhakes, https://github.com/taylorhakes + * License: MIT + * See https://github.com/taylorhakes/promise-polyfill/blob/master/LICENSE + */ + +/*! @source https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.js */ +!function (e, n) { + "object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports)) && "undefined" != typeof module ? n() : "function" == typeof define && define.amd ? define(n) : n(); +}(0, function () { + "use strict"; + function e(e) { + var n = this.constructor;return this.then(function (t) { + return n.resolve(e()).then(function () { + return t; + }); + }, function (t) { + return n.resolve(e()).then(function () { + return n.reject(t); + }); + }); + }function n() {}function t(e) { + if (!(this instanceof t)) throw new TypeError("Promises must be constructed via new");if ("function" != typeof e) throw new TypeError("not a function");this._state = 0, this._handled = !1, this._value = undefined, this._deferreds = [], u(e, this); + }function o(e, n) { + for (; 3 === e._state;) { + e = e._value; + }0 !== e._state ? (e._handled = !0, t._immediateFn(function () { + var t = 1 === e._state ? n.onFulfilled : n.onRejected;if (null !== t) { + var o;try { + o = t(e._value); + } catch (f) { + return void i(n.promise, f); + }r(n.promise, o); + } else (1 === e._state ? r : i)(n.promise, e._value); + })) : e._deferreds.push(n); + }function r(e, n) { + try { + if (n === e) throw new TypeError("A promise cannot be resolved with itself.");if (n && ("object" == (typeof n === "undefined" ? "undefined" : _typeof(n)) || "function" == typeof n)) { + var o = n.then;if (n instanceof t) return e._state = 3, e._value = n, void f(e);if ("function" == typeof o) return void u(function (e, n) { + return function () { + e.apply(n, arguments); + }; + }(o, n), e); + }e._state = 1, e._value = n, f(e); + } catch (r) { + i(e, r); + } + }function i(e, n) { + e._state = 2, e._value = n, f(e); + }function f(e) { + 2 === e._state && 0 === e._deferreds.length && t._immediateFn(function () { + e._handled || t._unhandledRejectionFn(e._value); + });for (var n = 0, r = e._deferreds.length; r > n; n++) { + o(e, e._deferreds[n]); + }e._deferreds = null; + }function u(e, n) { + var t = !1;try { + e(function (e) { + t || (t = !0, r(n, e)); + }, function (e) { + t || (t = !0, i(n, e)); + }); + } catch (o) { + if (t) return;t = !0, i(n, o); + } + }var c = setTimeout;t.prototype["catch"] = function (e) { + return this.then(null, e); + }, t.prototype.then = function (e, t) { + var r = new this.constructor(n);return o(this, new function (e, n, t) { + this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof n ? n : null, this.promise = t; + }(e, t, r)), r; + }, t.prototype["finally"] = e, t.all = function (e) { + return new t(function (n, t) { + function o(e, f) { + try { + if (f && ("object" == (typeof f === "undefined" ? "undefined" : _typeof(f)) || "function" == typeof f)) { + var u = f.then;if ("function" == typeof u) return void u.call(f, function (n) { + o(e, n); + }, t); + }r[e] = f, 0 == --i && n(r); + } catch (c) { + t(c); + } + }if (!e || "undefined" == typeof e.length) throw new TypeError("Promise.all accepts an array");var r = Array.prototype.slice.call(e);if (0 === r.length) return n([]);for (var i = r.length, f = 0; r.length > f; f++) { + o(f, r[f]); + } + }); + }, t.resolve = function (e) { + return e && "object" == (typeof e === "undefined" ? "undefined" : _typeof(e)) && e.constructor === t ? e : new t(function (n) { + n(e); + }); + }, t.reject = function (e) { + return new t(function (n, t) { + t(e); + }); + }, t.race = function (e) { + return new t(function (n, t) { + for (var o = 0, r = e.length; r > o; o++) { + e[o].then(n, t); + } + }); + }, t._immediateFn = "function" == typeof setImmediate && function (e) { + setImmediate(e); + } || function (e) { + c(e, 0); + }, t._unhandledRejectionFn = function (e) { + void 0 !== console && console && console.warn("Possible Unhandled Promise Rejection:", e); + };var l = function () { + if ("undefined" != typeof self) return self;if ("undefined" != typeof window) return window;if ("undefined" != typeof global) return global;throw Error("unable to locate global object"); + }();"Promise" in l ? l.Promise.prototype["finally"] || (l.Promise.prototype["finally"] = e) : l.Promise = t; +}); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],38:[function(require,module,exports){ +'use strict'; + +function DOMParser(options) { + this.options = options || { locator: {} }; +} + +DOMParser.prototype.parseFromString = function (source, mimeType) { + var options = this.options; + var sax = new XMLReader(); + var domBuilder = options.domBuilder || new DOMHandler(); //contentHandler and LexicalHandler + var errorHandler = options.errorHandler; + var locator = options.locator; + var defaultNSMap = options.xmlns || {}; + var isHTML = /\/x?html?$/.test(mimeType); //mimeType.toLowerCase().indexOf('html') > -1; + var entityMap = isHTML ? htmlEntity.entityMap : { 'lt': '<', 'gt': '>', 'amp': '&', 'quot': '"', 'apos': "'" }; + if (locator) { + domBuilder.setDocumentLocator(locator); + } + + sax.errorHandler = buildErrorHandler(errorHandler, domBuilder, locator); + sax.domBuilder = options.domBuilder || domBuilder; + if (isHTML) { + defaultNSMap[''] = 'http://www.w3.org/1999/xhtml'; + } + defaultNSMap.xml = defaultNSMap.xml || 'http://www.w3.org/XML/1998/namespace'; + if (source) { + sax.parse(source, defaultNSMap, entityMap); + } else { + sax.errorHandler.error("invalid doc source"); + } + return domBuilder.doc; +}; +function buildErrorHandler(errorImpl, domBuilder, locator) { + if (!errorImpl) { + if (domBuilder instanceof DOMHandler) { + return domBuilder; + } + errorImpl = domBuilder; + } + var errorHandler = {}; + var isCallback = errorImpl instanceof Function; + locator = locator || {}; + function build(key) { + var fn = errorImpl[key]; + if (!fn && isCallback) { + fn = errorImpl.length == 2 ? function (msg) { + errorImpl(key, msg); + } : errorImpl; + } + errorHandler[key] = fn && function (msg) { + fn('[xmldom ' + key + ']\t' + msg + _locator(locator)); + } || function () {}; + } + build('warning'); + build('error'); + build('fatalError'); + return errorHandler; +} + +//console.log('#\n\n\n\n\n\n\n####') +/** + * +ContentHandler+ErrorHandler + * +LexicalHandler+EntityResolver2 + * -DeclHandler-DTDHandler + * + * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler + * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2 + * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html + */ +function DOMHandler() { + this.cdata = false; +} +function position(locator, node) { + node.lineNumber = locator.lineNumber; + node.columnNumber = locator.columnNumber; +} +/** + * @see org.xml.sax.ContentHandler#startDocument + * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html + */ +DOMHandler.prototype = { + startDocument: function startDocument() { + this.doc = new DOMImplementation().createDocument(null, null, null); + if (this.locator) { + this.doc.documentURI = this.locator.systemId; + } + }, + startElement: function startElement(namespaceURI, localName, qName, attrs) { + var doc = this.doc; + var el = doc.createElementNS(namespaceURI, qName || localName); + var len = attrs.length; + appendElement(this, el); + this.currentElement = el; + + this.locator && position(this.locator, el); + for (var i = 0; i < len; i++) { + var namespaceURI = attrs.getURI(i); + var value = attrs.getValue(i); + var qName = attrs.getQName(i); + var attr = doc.createAttributeNS(namespaceURI, qName); + this.locator && position(attrs.getLocator(i), attr); + attr.value = attr.nodeValue = value; + el.setAttributeNode(attr); + } + }, + endElement: function endElement(namespaceURI, localName, qName) { + var current = this.currentElement; + var tagName = current.tagName; + this.currentElement = current.parentNode; + }, + startPrefixMapping: function startPrefixMapping(prefix, uri) {}, + endPrefixMapping: function endPrefixMapping(prefix) {}, + processingInstruction: function processingInstruction(target, data) { + var ins = this.doc.createProcessingInstruction(target, data); + this.locator && position(this.locator, ins); + appendElement(this, ins); + }, + ignorableWhitespace: function ignorableWhitespace(ch, start, length) {}, + characters: function characters(chars, start, length) { + chars = _toString.apply(this, arguments); + //console.log(chars) + if (chars) { + if (this.cdata) { + var charNode = this.doc.createCDATASection(chars); + } else { + var charNode = this.doc.createTextNode(chars); + } + if (this.currentElement) { + this.currentElement.appendChild(charNode); + } else if (/^\s*$/.test(chars)) { + this.doc.appendChild(charNode); + //process xml + } + this.locator && position(this.locator, charNode); + } + }, + skippedEntity: function skippedEntity(name) {}, + endDocument: function endDocument() { + this.doc.normalize(); + }, + setDocumentLocator: function setDocumentLocator(locator) { + if (this.locator = locator) { + // && !('lineNumber' in locator)){ + locator.lineNumber = 0; + } + }, + //LexicalHandler + comment: function comment(chars, start, length) { + chars = _toString.apply(this, arguments); + var comm = this.doc.createComment(chars); + this.locator && position(this.locator, comm); + appendElement(this, comm); + }, + + startCDATA: function startCDATA() { + //used in characters() methods + this.cdata = true; + }, + endCDATA: function endCDATA() { + this.cdata = false; + }, + + startDTD: function startDTD(name, publicId, systemId) { + var impl = this.doc.implementation; + if (impl && impl.createDocumentType) { + var dt = impl.createDocumentType(name, publicId, systemId); + this.locator && position(this.locator, dt); + appendElement(this, dt); + } + }, + /** + * @see org.xml.sax.ErrorHandler + * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html + */ + warning: function warning(error) { + console.warn('[xmldom warning]\t' + error, _locator(this.locator)); + }, + error: function error(_error) { + console.error('[xmldom error]\t' + _error, _locator(this.locator)); + }, + fatalError: function fatalError(error) { + console.error('[xmldom fatalError]\t' + error, _locator(this.locator)); + throw error; + } +}; +function _locator(l) { + if (l) { + return '\n@' + (l.systemId || '') + '#[line:' + l.lineNumber + ',col:' + l.columnNumber + ']'; + } +} +function _toString(chars, start, length) { + if (typeof chars == 'string') { + return chars.substr(start, length); + } else { + //java sax connect width xmldom on rhino(what about: "? && !(chars instanceof String)") + if (chars.length >= start + length || start) { + return new java.lang.String(chars, start, length) + ''; + } + return chars; + } +} + +/* + * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html + * used method of org.xml.sax.ext.LexicalHandler: + * #comment(chars, start, length) + * #startCDATA() + * #endCDATA() + * #startDTD(name, publicId, systemId) + * + * + * IGNORED method of org.xml.sax.ext.LexicalHandler: + * #endDTD() + * #startEntity(name) + * #endEntity(name) + * + * + * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html + * IGNORED method of org.xml.sax.ext.DeclHandler + * #attributeDecl(eName, aName, type, mode, value) + * #elementDecl(name, model) + * #externalEntityDecl(name, publicId, systemId) + * #internalEntityDecl(name, value) + * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html + * IGNORED method of org.xml.sax.EntityResolver2 + * #resolveEntity(String name,String publicId,String baseURI,String systemId) + * #resolveEntity(publicId, systemId) + * #getExternalSubset(name, baseURI) + * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html + * IGNORED method of org.xml.sax.DTDHandler + * #notationDecl(name, publicId, systemId) {}; + * #unparsedEntityDecl(name, publicId, systemId, notationName) {}; + */ +"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g, function (key) { + DOMHandler.prototype[key] = function () { + return null; + }; +}); + +/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */ +function appendElement(hander, node) { + if (!hander.currentElement) { + hander.doc.appendChild(node); + } else { + hander.currentElement.appendChild(node); + } +} //appendChild and setAttributeNS are preformance key + +//if(typeof require == 'function'){ +var htmlEntity = require('./entities'); +var XMLReader = require('./sax').XMLReader; +var DOMImplementation = exports.DOMImplementation = require('./dom').DOMImplementation; +exports.XMLSerializer = require('./dom').XMLSerializer; +exports.DOMParser = DOMParser; +//} + +},{"./dom":39,"./entities":40,"./sax":41}],39:[function(require,module,exports){ +'use strict'; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +/* + * DOM Level 2 + * Object DOMException + * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html + * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html + */ + +function copy(src, dest) { + for (var p in src) { + dest[p] = src[p]; + } +} +/** +^\w+\.prototype\.([_\w]+)\s*=\s*((?:.*\{\s*?[\r\n][\s\S]*?^})|\S.*?(?=[;\r\n]));? +^\w+\.prototype\.([_\w]+)\s*=\s*(\S.*?(?=[;\r\n]));? + */ +function _extends(Class, Super) { + var pt = Class.prototype; + if (!(pt instanceof Super)) { + var t = function t() {}; + + ; + t.prototype = Super.prototype; + t = new t(); + copy(pt, t); + Class.prototype = pt = t; + } + if (pt.constructor != Class) { + if (typeof Class != 'function') { + console.error("unknow Class:" + Class); + } + pt.constructor = Class; + } +} +var htmlns = 'http://www.w3.org/1999/xhtml'; +// Node Types +var NodeType = {}; +var ELEMENT_NODE = NodeType.ELEMENT_NODE = 1; +var ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2; +var TEXT_NODE = NodeType.TEXT_NODE = 3; +var CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4; +var ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5; +var ENTITY_NODE = NodeType.ENTITY_NODE = 6; +var PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7; +var COMMENT_NODE = NodeType.COMMENT_NODE = 8; +var DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9; +var DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10; +var DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11; +var NOTATION_NODE = NodeType.NOTATION_NODE = 12; + +// ExceptionCode +var ExceptionCode = {}; +var ExceptionMessage = {}; +var INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = (ExceptionMessage[1] = "Index size error", 1); +var DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = (ExceptionMessage[2] = "DOMString size error", 2); +var HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = (ExceptionMessage[3] = "Hierarchy request error", 3); +var WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = (ExceptionMessage[4] = "Wrong document", 4); +var INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = (ExceptionMessage[5] = "Invalid character", 5); +var NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = (ExceptionMessage[6] = "No data allowed", 6); +var NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = (ExceptionMessage[7] = "No modification allowed", 7); +var NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = (ExceptionMessage[8] = "Not found", 8); +var NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = (ExceptionMessage[9] = "Not supported", 9); +var INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = (ExceptionMessage[10] = "Attribute in use", 10); +//level2 +var INVALID_STATE_ERR = ExceptionCode.INVALID_STATE_ERR = (ExceptionMessage[11] = "Invalid state", 11); +var SYNTAX_ERR = ExceptionCode.SYNTAX_ERR = (ExceptionMessage[12] = "Syntax error", 12); +var INVALID_MODIFICATION_ERR = ExceptionCode.INVALID_MODIFICATION_ERR = (ExceptionMessage[13] = "Invalid modification", 13); +var NAMESPACE_ERR = ExceptionCode.NAMESPACE_ERR = (ExceptionMessage[14] = "Invalid namespace", 14); +var INVALID_ACCESS_ERR = ExceptionCode.INVALID_ACCESS_ERR = (ExceptionMessage[15] = "Invalid access", 15); + +function DOMException(code, message) { + if (message instanceof Error) { + var error = message; + } else { + error = this; + Error.call(this, ExceptionMessage[code]); + this.message = ExceptionMessage[code]; + if (Error.captureStackTrace) Error.captureStackTrace(this, DOMException); + } + error.code = code; + if (message) this.message = this.message + ": " + message; + return error; +}; +DOMException.prototype = Error.prototype; +copy(ExceptionCode, DOMException); +/** + * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177 + * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live. + * The items in the NodeList are accessible via an integral index, starting from 0. + */ +function NodeList() {}; +NodeList.prototype = { + /** + * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive. + * @standard level1 + */ + length: 0, + /** + * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null. + * @standard level1 + * @param index unsigned long + * Index into the collection. + * @return Node + * The node at the indexth position in the NodeList, or null if that is not a valid index. + */ + item: function item(index) { + return this[index] || null; + }, + toString: function toString(isHTML, nodeFilter) { + for (var buf = [], i = 0; i < this.length; i++) { + serializeToString(this[i], buf, isHTML, nodeFilter); + } + return buf.join(''); + } +}; +function LiveNodeList(node, refresh) { + this._node = node; + this._refresh = refresh; + _updateLiveList(this); +} +function _updateLiveList(list) { + var inc = list._node._inc || list._node.ownerDocument._inc; + if (list._inc != inc) { + var ls = list._refresh(list._node); + //console.log(ls.length) + __set__(list, 'length', ls.length); + copy(ls, list); + list._inc = inc; + } +} +LiveNodeList.prototype.item = function (i) { + _updateLiveList(this); + return this[i]; +}; + +_extends(LiveNodeList, NodeList); +/** + * + * Objects implementing the NamedNodeMap interface are used to represent collections of nodes that can be accessed by name. Note that NamedNodeMap does not inherit from NodeList; NamedNodeMaps are not maintained in any particular order. Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index, but this is simply to allow convenient enumeration of the contents of a NamedNodeMap, and does not imply that the DOM specifies an order to these Nodes. + * NamedNodeMap objects in the DOM are live. + * used for attributes or DocumentType entities + */ +function NamedNodeMap() {}; + +function _findNodeIndex(list, node) { + var i = list.length; + while (i--) { + if (list[i] === node) { + return i; + } + } +} + +function _addNamedNode(el, list, newAttr, oldAttr) { + if (oldAttr) { + list[_findNodeIndex(list, oldAttr)] = newAttr; + } else { + list[list.length++] = newAttr; + } + if (el) { + newAttr.ownerElement = el; + var doc = el.ownerDocument; + if (doc) { + oldAttr && _onRemoveAttribute(doc, el, oldAttr); + _onAddAttribute(doc, el, newAttr); + } + } +} +function _removeNamedNode(el, list, attr) { + //console.log('remove attr:'+attr) + var i = _findNodeIndex(list, attr); + if (i >= 0) { + var lastIndex = list.length - 1; + while (i < lastIndex) { + list[i] = list[++i]; + } + list.length = lastIndex; + if (el) { + var doc = el.ownerDocument; + if (doc) { + _onRemoveAttribute(doc, el, attr); + attr.ownerElement = null; + } + } + } else { + throw DOMException(NOT_FOUND_ERR, new Error(el.tagName + '@' + attr)); + } +} +NamedNodeMap.prototype = { + length: 0, + item: NodeList.prototype.item, + getNamedItem: function getNamedItem(key) { + // if(key.indexOf(':')>0 || key == 'xmlns'){ + // return null; + // } + //console.log() + var i = this.length; + while (i--) { + var attr = this[i]; + //console.log(attr.nodeName,key) + if (attr.nodeName == key) { + return attr; + } + } + }, + setNamedItem: function setNamedItem(attr) { + var el = attr.ownerElement; + if (el && el != this._ownerElement) { + throw new DOMException(INUSE_ATTRIBUTE_ERR); + } + var oldAttr = this.getNamedItem(attr.nodeName); + _addNamedNode(this._ownerElement, this, attr, oldAttr); + return oldAttr; + }, + /* returns Node */ + setNamedItemNS: function setNamedItemNS(attr) { + // raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR + var el = attr.ownerElement, + oldAttr; + if (el && el != this._ownerElement) { + throw new DOMException(INUSE_ATTRIBUTE_ERR); + } + oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName); + _addNamedNode(this._ownerElement, this, attr, oldAttr); + return oldAttr; + }, + + /* returns Node */ + removeNamedItem: function removeNamedItem(key) { + var attr = this.getNamedItem(key); + _removeNamedNode(this._ownerElement, this, attr); + return attr; + }, // raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR + + //for level2 + removeNamedItemNS: function removeNamedItemNS(namespaceURI, localName) { + var attr = this.getNamedItemNS(namespaceURI, localName); + _removeNamedNode(this._ownerElement, this, attr); + return attr; + }, + getNamedItemNS: function getNamedItemNS(namespaceURI, localName) { + var i = this.length; + while (i--) { + var node = this[i]; + if (node.localName == localName && node.namespaceURI == namespaceURI) { + return node; + } + } + return null; + } +}; +/** + * @see http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 + */ +function DOMImplementation( /* Object */features) { + this._features = {}; + if (features) { + for (var feature in features) { + this._features = features[feature]; + } + } +}; + +DOMImplementation.prototype = { + hasFeature: function hasFeature( /* string */feature, /* string */version) { + var versions = this._features[feature.toLowerCase()]; + if (versions && (!version || version in versions)) { + return true; + } else { + return false; + } + }, + // Introduced in DOM Level 2: + createDocument: function createDocument(namespaceURI, qualifiedName, doctype) { + // raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR,WRONG_DOCUMENT_ERR + var doc = new Document(); + doc.implementation = this; + doc.childNodes = new NodeList(); + doc.doctype = doctype; + if (doctype) { + doc.appendChild(doctype); + } + if (qualifiedName) { + var root = doc.createElementNS(namespaceURI, qualifiedName); + doc.appendChild(root); + } + return doc; + }, + // Introduced in DOM Level 2: + createDocumentType: function createDocumentType(qualifiedName, publicId, systemId) { + // raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR + var node = new DocumentType(); + node.name = qualifiedName; + node.nodeName = qualifiedName; + node.publicId = publicId; + node.systemId = systemId; + // Introduced in DOM Level 2: + //readonly attribute DOMString internalSubset; + + //REFINE:.. + // readonly attribute NamedNodeMap entities; + // readonly attribute NamedNodeMap notations; + return node; + } +}; + +/** + * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247 + */ + +function Node() {}; + +Node.prototype = { + firstChild: null, + lastChild: null, + previousSibling: null, + nextSibling: null, + attributes: null, + parentNode: null, + childNodes: null, + ownerDocument: null, + nodeValue: null, + namespaceURI: null, + prefix: null, + localName: null, + // Modified in DOM Level 2: + insertBefore: function insertBefore(newChild, refChild) { + //raises + return _insertBefore(this, newChild, refChild); + }, + replaceChild: function replaceChild(newChild, oldChild) { + //raises + this.insertBefore(newChild, oldChild); + if (oldChild) { + this.removeChild(oldChild); + } + }, + removeChild: function removeChild(oldChild) { + return _removeChild(this, oldChild); + }, + appendChild: function appendChild(newChild) { + return this.insertBefore(newChild, null); + }, + hasChildNodes: function hasChildNodes() { + return this.firstChild != null; + }, + cloneNode: function cloneNode(deep) { + return _cloneNode(this.ownerDocument || this, this, deep); + }, + // Modified in DOM Level 2: + normalize: function normalize() { + var child = this.firstChild; + while (child) { + var next = child.nextSibling; + if (next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE) { + this.removeChild(next); + child.appendData(next.data); + } else { + child.normalize(); + child = next; + } + } + }, + // Introduced in DOM Level 2: + isSupported: function isSupported(feature, version) { + return this.ownerDocument.implementation.hasFeature(feature, version); + }, + // Introduced in DOM Level 2: + hasAttributes: function hasAttributes() { + return this.attributes.length > 0; + }, + lookupPrefix: function lookupPrefix(namespaceURI) { + var el = this; + while (el) { + var map = el._nsMap; + //console.dir(map) + if (map) { + for (var n in map) { + if (map[n] == namespaceURI) { + return n; + } + } + } + el = el.nodeType == ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode; + } + return null; + }, + // Introduced in DOM Level 3: + lookupNamespaceURI: function lookupNamespaceURI(prefix) { + var el = this; + while (el) { + var map = el._nsMap; + //console.dir(map) + if (map) { + if (prefix in map) { + return map[prefix]; + } + } + el = el.nodeType == ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode; + } + return null; + }, + // Introduced in DOM Level 3: + isDefaultNamespace: function isDefaultNamespace(namespaceURI) { + var prefix = this.lookupPrefix(namespaceURI); + return prefix == null; + } +}; + +function _xmlEncoder(c) { + return c == '<' && '<' || c == '>' && '>' || c == '&' && '&' || c == '"' && '"' || '&#' + c.charCodeAt() + ';'; +} + +copy(NodeType, Node); +copy(NodeType, Node.prototype); + +/** + * @param callback return true for continue,false for break + * @return boolean true: break visit; + */ +function _visitNode(node, callback) { + if (callback(node)) { + return true; + } + if (node = node.firstChild) { + do { + if (_visitNode(node, callback)) { + return true; + } + } while (node = node.nextSibling); + } +} + +function Document() {} +function _onAddAttribute(doc, el, newAttr) { + doc && doc._inc++; + var ns = newAttr.namespaceURI; + if (ns == 'http://www.w3.org/2000/xmlns/') { + //update namespace + el._nsMap[newAttr.prefix ? newAttr.localName : ''] = newAttr.value; + } +} +function _onRemoveAttribute(doc, el, newAttr, remove) { + doc && doc._inc++; + var ns = newAttr.namespaceURI; + if (ns == 'http://www.w3.org/2000/xmlns/') { + //update namespace + delete el._nsMap[newAttr.prefix ? newAttr.localName : '']; + } +} +function _onUpdateChild(doc, el, newChild) { + if (doc && doc._inc) { + doc._inc++; + //update childNodes + var cs = el.childNodes; + if (newChild) { + cs[cs.length++] = newChild; + } else { + //console.log(1) + var child = el.firstChild; + var i = 0; + while (child) { + cs[i++] = child; + child = child.nextSibling; + } + cs.length = i; + } + } +} + +/** + * attributes; + * children; + * + * writeable properties: + * nodeValue,Attr:value,CharacterData:data + * prefix + */ +function _removeChild(parentNode, child) { + var previous = child.previousSibling; + var next = child.nextSibling; + if (previous) { + previous.nextSibling = next; + } else { + parentNode.firstChild = next; + } + if (next) { + next.previousSibling = previous; + } else { + parentNode.lastChild = previous; + } + _onUpdateChild(parentNode.ownerDocument, parentNode); + return child; +} +/** + * preformance key(refChild == null) + */ +function _insertBefore(parentNode, newChild, nextChild) { + var cp = newChild.parentNode; + if (cp) { + cp.removeChild(newChild); //remove and update + } + if (newChild.nodeType === DOCUMENT_FRAGMENT_NODE) { + var newFirst = newChild.firstChild; + if (newFirst == null) { + return newChild; + } + var newLast = newChild.lastChild; + } else { + newFirst = newLast = newChild; + } + var pre = nextChild ? nextChild.previousSibling : parentNode.lastChild; + + newFirst.previousSibling = pre; + newLast.nextSibling = nextChild; + + if (pre) { + pre.nextSibling = newFirst; + } else { + parentNode.firstChild = newFirst; + } + if (nextChild == null) { + parentNode.lastChild = newLast; + } else { + nextChild.previousSibling = newLast; + } + do { + newFirst.parentNode = parentNode; + } while (newFirst !== newLast && (newFirst = newFirst.nextSibling)); + _onUpdateChild(parentNode.ownerDocument || parentNode, parentNode); + //console.log(parentNode.lastChild.nextSibling == null) + if (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) { + newChild.firstChild = newChild.lastChild = null; + } + return newChild; +} +function _appendSingleChild(parentNode, newChild) { + var cp = newChild.parentNode; + if (cp) { + var pre = parentNode.lastChild; + cp.removeChild(newChild); //remove and update + var pre = parentNode.lastChild; + } + var pre = parentNode.lastChild; + newChild.parentNode = parentNode; + newChild.previousSibling = pre; + newChild.nextSibling = null; + if (pre) { + pre.nextSibling = newChild; + } else { + parentNode.firstChild = newChild; + } + parentNode.lastChild = newChild; + _onUpdateChild(parentNode.ownerDocument, parentNode, newChild); + return newChild; + //console.log("__aa",parentNode.lastChild.nextSibling == null) +} +Document.prototype = { + //implementation : null, + nodeName: '#document', + nodeType: DOCUMENT_NODE, + doctype: null, + documentElement: null, + _inc: 1, + + insertBefore: function insertBefore(newChild, refChild) { + //raises + if (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) { + var child = newChild.firstChild; + while (child) { + var next = child.nextSibling; + this.insertBefore(child, refChild); + child = next; + } + return newChild; + } + if (this.documentElement == null && newChild.nodeType == ELEMENT_NODE) { + this.documentElement = newChild; + } + + return _insertBefore(this, newChild, refChild), newChild.ownerDocument = this, newChild; + }, + removeChild: function removeChild(oldChild) { + if (this.documentElement == oldChild) { + this.documentElement = null; + } + return _removeChild(this, oldChild); + }, + // Introduced in DOM Level 2: + importNode: function importNode(importedNode, deep) { + return _importNode(this, importedNode, deep); + }, + // Introduced in DOM Level 2: + getElementById: function getElementById(id) { + var rtv = null; + _visitNode(this.documentElement, function (node) { + if (node.nodeType == ELEMENT_NODE) { + if (node.getAttribute('id') == id) { + rtv = node; + return true; + } + } + }); + return rtv; + }, + + //document factory method: + createElement: function createElement(tagName) { + var node = new Element(); + node.ownerDocument = this; + node.nodeName = tagName; + node.tagName = tagName; + node.childNodes = new NodeList(); + var attrs = node.attributes = new NamedNodeMap(); + attrs._ownerElement = node; + return node; + }, + createDocumentFragment: function createDocumentFragment() { + var node = new DocumentFragment(); + node.ownerDocument = this; + node.childNodes = new NodeList(); + return node; + }, + createTextNode: function createTextNode(data) { + var node = new Text(); + node.ownerDocument = this; + node.appendData(data); + return node; + }, + createComment: function createComment(data) { + var node = new Comment(); + node.ownerDocument = this; + node.appendData(data); + return node; + }, + createCDATASection: function createCDATASection(data) { + var node = new CDATASection(); + node.ownerDocument = this; + node.appendData(data); + return node; + }, + createProcessingInstruction: function createProcessingInstruction(target, data) { + var node = new ProcessingInstruction(); + node.ownerDocument = this; + node.tagName = node.target = target; + node.nodeValue = node.data = data; + return node; + }, + createAttribute: function createAttribute(name) { + var node = new Attr(); + node.ownerDocument = this; + node.name = name; + node.nodeName = name; + node.localName = name; + node.specified = true; + return node; + }, + createEntityReference: function createEntityReference(name) { + var node = new EntityReference(); + node.ownerDocument = this; + node.nodeName = name; + return node; + }, + // Introduced in DOM Level 2: + createElementNS: function createElementNS(namespaceURI, qualifiedName) { + var node = new Element(); + var pl = qualifiedName.split(':'); + var attrs = node.attributes = new NamedNodeMap(); + node.childNodes = new NodeList(); + node.ownerDocument = this; + node.nodeName = qualifiedName; + node.tagName = qualifiedName; + node.namespaceURI = namespaceURI; + if (pl.length == 2) { + node.prefix = pl[0]; + node.localName = pl[1]; + } else { + //el.prefix = null; + node.localName = qualifiedName; + } + attrs._ownerElement = node; + return node; + }, + // Introduced in DOM Level 2: + createAttributeNS: function createAttributeNS(namespaceURI, qualifiedName) { + var node = new Attr(); + var pl = qualifiedName.split(':'); + node.ownerDocument = this; + node.nodeName = qualifiedName; + node.name = qualifiedName; + node.namespaceURI = namespaceURI; + node.specified = true; + if (pl.length == 2) { + node.prefix = pl[0]; + node.localName = pl[1]; + } else { + //el.prefix = null; + node.localName = qualifiedName; + } + return node; + } +}; +_extends(Document, Node); + +function Element() { + this._nsMap = {}; +}; +Element.prototype = { + nodeType: ELEMENT_NODE, + hasAttribute: function hasAttribute(name) { + return this.getAttributeNode(name) != null; + }, + getAttribute: function getAttribute(name) { + var attr = this.getAttributeNode(name); + return attr && attr.value || ''; + }, + getAttributeNode: function getAttributeNode(name) { + return this.attributes.getNamedItem(name); + }, + setAttribute: function setAttribute(name, value) { + var attr = this.ownerDocument.createAttribute(name); + attr.value = attr.nodeValue = "" + value; + this.setAttributeNode(attr); + }, + removeAttribute: function removeAttribute(name) { + var attr = this.getAttributeNode(name); + attr && this.removeAttributeNode(attr); + }, + + //four real opeartion method + appendChild: function appendChild(newChild) { + if (newChild.nodeType === DOCUMENT_FRAGMENT_NODE) { + return this.insertBefore(newChild, null); + } else { + return _appendSingleChild(this, newChild); + } + }, + setAttributeNode: function setAttributeNode(newAttr) { + return this.attributes.setNamedItem(newAttr); + }, + setAttributeNodeNS: function setAttributeNodeNS(newAttr) { + return this.attributes.setNamedItemNS(newAttr); + }, + removeAttributeNode: function removeAttributeNode(oldAttr) { + //console.log(this == oldAttr.ownerElement) + return this.attributes.removeNamedItem(oldAttr.nodeName); + }, + //get real attribute name,and remove it by removeAttributeNode + removeAttributeNS: function removeAttributeNS(namespaceURI, localName) { + var old = this.getAttributeNodeNS(namespaceURI, localName); + old && this.removeAttributeNode(old); + }, + + hasAttributeNS: function hasAttributeNS(namespaceURI, localName) { + return this.getAttributeNodeNS(namespaceURI, localName) != null; + }, + getAttributeNS: function getAttributeNS(namespaceURI, localName) { + var attr = this.getAttributeNodeNS(namespaceURI, localName); + return attr && attr.value || ''; + }, + setAttributeNS: function setAttributeNS(namespaceURI, qualifiedName, value) { + var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName); + attr.value = attr.nodeValue = "" + value; + this.setAttributeNode(attr); + }, + getAttributeNodeNS: function getAttributeNodeNS(namespaceURI, localName) { + return this.attributes.getNamedItemNS(namespaceURI, localName); + }, + + getElementsByTagName: function getElementsByTagName(tagName) { + return new LiveNodeList(this, function (base) { + var ls = []; + _visitNode(base, function (node) { + if (node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)) { + ls.push(node); + } + }); + return ls; + }); + }, + getElementsByTagNameNS: function getElementsByTagNameNS(namespaceURI, localName) { + return new LiveNodeList(this, function (base) { + var ls = []; + _visitNode(base, function (node) { + if (node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)) { + ls.push(node); + } + }); + return ls; + }); + } +}; +Document.prototype.getElementsByTagName = Element.prototype.getElementsByTagName; +Document.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS; + +_extends(Element, Node); +function Attr() {}; +Attr.prototype.nodeType = ATTRIBUTE_NODE; +_extends(Attr, Node); + +function CharacterData() {}; +CharacterData.prototype = { + data: '', + substringData: function substringData(offset, count) { + return this.data.substring(offset, offset + count); + }, + appendData: function appendData(text) { + text = this.data + text; + this.nodeValue = this.data = text; + this.length = text.length; + }, + insertData: function insertData(offset, text) { + this.replaceData(offset, 0, text); + }, + appendChild: function appendChild(newChild) { + throw new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR]); + }, + deleteData: function deleteData(offset, count) { + this.replaceData(offset, count, ""); + }, + replaceData: function replaceData(offset, count, text) { + var start = this.data.substring(0, offset); + var end = this.data.substring(offset + count); + text = start + text + end; + this.nodeValue = this.data = text; + this.length = text.length; + } +}; +_extends(CharacterData, Node); +function Text() {}; +Text.prototype = { + nodeName: "#text", + nodeType: TEXT_NODE, + splitText: function splitText(offset) { + var text = this.data; + var newText = text.substring(offset); + text = text.substring(0, offset); + this.data = this.nodeValue = text; + this.length = text.length; + var newNode = this.ownerDocument.createTextNode(newText); + if (this.parentNode) { + this.parentNode.insertBefore(newNode, this.nextSibling); + } + return newNode; + } +}; +_extends(Text, CharacterData); +function Comment() {}; +Comment.prototype = { + nodeName: "#comment", + nodeType: COMMENT_NODE +}; +_extends(Comment, CharacterData); + +function CDATASection() {}; +CDATASection.prototype = { + nodeName: "#cdata-section", + nodeType: CDATA_SECTION_NODE +}; +_extends(CDATASection, CharacterData); + +function DocumentType() {}; +DocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE; +_extends(DocumentType, Node); + +function Notation() {}; +Notation.prototype.nodeType = NOTATION_NODE; +_extends(Notation, Node); + +function Entity() {}; +Entity.prototype.nodeType = ENTITY_NODE; +_extends(Entity, Node); + +function EntityReference() {}; +EntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE; +_extends(EntityReference, Node); + +function DocumentFragment() {}; +DocumentFragment.prototype.nodeName = "#document-fragment"; +DocumentFragment.prototype.nodeType = DOCUMENT_FRAGMENT_NODE; +_extends(DocumentFragment, Node); + +function ProcessingInstruction() {} +ProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE; +_extends(ProcessingInstruction, Node); +function XMLSerializer() {} +XMLSerializer.prototype.serializeToString = function (node, isHtml, nodeFilter) { + return nodeSerializeToString.call(node, isHtml, nodeFilter); +}; +Node.prototype.toString = nodeSerializeToString; +function nodeSerializeToString(isHtml, nodeFilter) { + var buf = []; + var refNode = this.nodeType == 9 && this.documentElement || this; + var prefix = refNode.prefix; + var uri = refNode.namespaceURI; + + if (uri && prefix == null) { + //console.log(prefix) + var prefix = refNode.lookupPrefix(uri); + if (prefix == null) { + //isHTML = true; + var visibleNamespaces = [{ namespace: uri, prefix: null + //{namespace:uri,prefix:''} + }]; + } + } + serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces); + //console.log('###',this.nodeType,uri,prefix,buf.join('')) + return buf.join(''); +} +function needNamespaceDefine(node, isHTML, visibleNamespaces) { + var prefix = node.prefix || ''; + var uri = node.namespaceURI; + if (!prefix && !uri) { + return false; + } + if (prefix === "xml" && uri === "http://www.w3.org/XML/1998/namespace" || uri == 'http://www.w3.org/2000/xmlns/') { + return false; + } + + var i = visibleNamespaces.length; + //console.log('@@@@',node.tagName,prefix,uri,visibleNamespaces) + while (i--) { + var ns = visibleNamespaces[i]; + // get namespace prefix + //console.log(node.nodeType,node.tagName,ns.prefix,prefix) + if (ns.prefix == prefix) { + return ns.namespace != uri; + } + } + //console.log(isHTML,uri,prefix=='') + //if(isHTML && prefix ==null && uri == 'http://www.w3.org/1999/xhtml'){ + // return false; + //} + //node.flag = '11111' + //console.error(3,true,node.flag,node.prefix,node.namespaceURI) + return true; +} +function serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces) { + if (nodeFilter) { + node = nodeFilter(node); + if (node) { + if (typeof node == 'string') { + buf.push(node); + return; + } + } else { + return; + } + //buf.sort.apply(attrs, attributeSorter); + } + switch (node.nodeType) { + case ELEMENT_NODE: + if (!visibleNamespaces) visibleNamespaces = []; + var startVisibleNamespaces = visibleNamespaces.length; + var attrs = node.attributes; + var len = attrs.length; + var child = node.firstChild; + var nodeName = node.tagName; + + isHTML = htmlns === node.namespaceURI || isHTML; + buf.push('<', nodeName); + + for (var i = 0; i < len; i++) { + // add namespaces for attributes + var attr = attrs.item(i); + if (attr.prefix == 'xmlns') { + visibleNamespaces.push({ prefix: attr.localName, namespace: attr.value }); + } else if (attr.nodeName == 'xmlns') { + visibleNamespaces.push({ prefix: '', namespace: attr.value }); + } + } + for (var i = 0; i < len; i++) { + var attr = attrs.item(i); + if (needNamespaceDefine(attr, isHTML, visibleNamespaces)) { + var prefix = attr.prefix || ''; + var uri = attr.namespaceURI; + var ns = prefix ? ' xmlns:' + prefix : " xmlns"; + buf.push(ns, '="', uri, '"'); + visibleNamespaces.push({ prefix: prefix, namespace: uri }); + } + serializeToString(attr, buf, isHTML, nodeFilter, visibleNamespaces); + } + // add namespace for current node + if (needNamespaceDefine(node, isHTML, visibleNamespaces)) { + var prefix = node.prefix || ''; + var uri = node.namespaceURI; + var ns = prefix ? ' xmlns:' + prefix : " xmlns"; + buf.push(ns, '="', uri, '"'); + visibleNamespaces.push({ prefix: prefix, namespace: uri }); + } + + if (child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) { + buf.push('>'); + //if is cdata child node + if (isHTML && /^script$/i.test(nodeName)) { + while (child) { + if (child.data) { + buf.push(child.data); + } else { + serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces); + } + child = child.nextSibling; + } + } else { + while (child) { + serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces); + child = child.nextSibling; + } + } + buf.push(''); + } else { + buf.push('/>'); + } + // remove added visible namespaces + //visibleNamespaces.length = startVisibleNamespaces; + return; + case DOCUMENT_NODE: + case DOCUMENT_FRAGMENT_NODE: + var child = node.firstChild; + while (child) { + serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces); + child = child.nextSibling; + } + return; + case ATTRIBUTE_NODE: + return buf.push(' ', node.name, '="', node.value.replace(/[<&"]/g, _xmlEncoder), '"'); + case TEXT_NODE: + return buf.push(node.data.replace(/[<&]/g, _xmlEncoder)); + case CDATA_SECTION_NODE: + return buf.push(''); + case COMMENT_NODE: + return buf.push(""); + case DOCUMENT_TYPE_NODE: + var pubid = node.publicId; + var sysid = node.systemId; + buf.push(''); + } else if (sysid && sysid != '.') { + buf.push(' SYSTEM "', sysid, '">'); + } else { + var sub = node.internalSubset; + if (sub) { + buf.push(" [", sub, "]"); + } + buf.push(">"); + } + return; + case PROCESSING_INSTRUCTION_NODE: + return buf.push(""); + case ENTITY_REFERENCE_NODE: + return buf.push('&', node.nodeName, ';'); + //case ENTITY_NODE: + //case NOTATION_NODE: + default: + buf.push('??', node.nodeName); + } +} +function _importNode(doc, node, deep) { + var node2; + switch (node.nodeType) { + case ELEMENT_NODE: + node2 = node.cloneNode(false); + node2.ownerDocument = doc; + //var attrs = node2.attributes; + //var len = attrs.length; + //for(var i=0;i', + amp: '&', + quot: '"', + apos: "'", + Agrave: "À", + Aacute: "Á", + Acirc: "Â", + Atilde: "Ã", + Auml: "Ä", + Aring: "Å", + AElig: "Æ", + Ccedil: "Ç", + Egrave: "È", + Eacute: "É", + Ecirc: "Ê", + Euml: "Ë", + Igrave: "Ì", + Iacute: "Í", + Icirc: "Î", + Iuml: "Ï", + ETH: "Ð", + Ntilde: "Ñ", + Ograve: "Ò", + Oacute: "Ó", + Ocirc: "Ô", + Otilde: "Õ", + Ouml: "Ö", + Oslash: "Ø", + Ugrave: "Ù", + Uacute: "Ú", + Ucirc: "Û", + Uuml: "Ü", + Yacute: "Ý", + THORN: "Þ", + szlig: "ß", + agrave: "à", + aacute: "á", + acirc: "â", + atilde: "ã", + auml: "ä", + aring: "å", + aelig: "æ", + ccedil: "ç", + egrave: "è", + eacute: "é", + ecirc: "ê", + euml: "ë", + igrave: "ì", + iacute: "í", + icirc: "î", + iuml: "ï", + eth: "ð", + ntilde: "ñ", + ograve: "ò", + oacute: "ó", + ocirc: "ô", + otilde: "õ", + ouml: "ö", + oslash: "ø", + ugrave: "ù", + uacute: "ú", + ucirc: "û", + uuml: "ü", + yacute: "ý", + thorn: "þ", + yuml: "ÿ", + nbsp: " ", + iexcl: "¡", + cent: "¢", + pound: "£", + curren: "¤", + yen: "¥", + brvbar: "¦", + sect: "§", + uml: "¨", + copy: "©", + ordf: "ª", + laquo: "«", + not: "¬", + shy: "­­", + reg: "®", + macr: "¯", + deg: "°", + plusmn: "±", + sup2: "²", + sup3: "³", + acute: "´", + micro: "µ", + para: "¶", + middot: "·", + cedil: "¸", + sup1: "¹", + ordm: "º", + raquo: "»", + frac14: "¼", + frac12: "½", + frac34: "¾", + iquest: "¿", + times: "×", + divide: "÷", + forall: "∀", + part: "∂", + exist: "∃", + empty: "∅", + nabla: "∇", + isin: "∈", + notin: "∉", + ni: "∋", + prod: "∏", + sum: "∑", + minus: "−", + lowast: "∗", + radic: "√", + prop: "∝", + infin: "∞", + ang: "∠", + and: "∧", + or: "∨", + cap: "∩", + cup: "∪", + 'int': "∫", + there4: "∴", + sim: "∼", + cong: "≅", + asymp: "≈", + ne: "≠", + equiv: "≡", + le: "≤", + ge: "≥", + sub: "⊂", + sup: "⊃", + nsub: "⊄", + sube: "⊆", + supe: "⊇", + oplus: "⊕", + otimes: "⊗", + perp: "⊥", + sdot: "⋅", + Alpha: "Α", + Beta: "Β", + Gamma: "Γ", + Delta: "Δ", + Epsilon: "Ε", + Zeta: "Ζ", + Eta: "Η", + Theta: "Θ", + Iota: "Ι", + Kappa: "Κ", + Lambda: "Λ", + Mu: "Μ", + Nu: "Ν", + Xi: "Ξ", + Omicron: "Ο", + Pi: "Π", + Rho: "Ρ", + Sigma: "Σ", + Tau: "Τ", + Upsilon: "Υ", + Phi: "Φ", + Chi: "Χ", + Psi: "Ψ", + Omega: "Ω", + alpha: "α", + beta: "β", + gamma: "γ", + delta: "δ", + epsilon: "ε", + zeta: "ζ", + eta: "η", + theta: "θ", + iota: "ι", + kappa: "κ", + lambda: "λ", + mu: "μ", + nu: "ν", + xi: "ξ", + omicron: "ο", + pi: "π", + rho: "ρ", + sigmaf: "ς", + sigma: "σ", + tau: "τ", + upsilon: "υ", + phi: "φ", + chi: "χ", + psi: "ψ", + omega: "ω", + thetasym: "ϑ", + upsih: "ϒ", + piv: "ϖ", + OElig: "Œ", + oelig: "œ", + Scaron: "Š", + scaron: "š", + Yuml: "Ÿ", + fnof: "ƒ", + circ: "ˆ", + tilde: "˜", + ensp: " ", + emsp: " ", + thinsp: " ", + zwnj: "‌", + zwj: "‍", + lrm: "‎", + rlm: "‏", + ndash: "–", + mdash: "—", + lsquo: "‘", + rsquo: "’", + sbquo: "‚", + ldquo: "“", + rdquo: "”", + bdquo: "„", + dagger: "†", + Dagger: "‡", + bull: "•", + hellip: "…", + permil: "‰", + prime: "′", + Prime: "″", + lsaquo: "‹", + rsaquo: "›", + oline: "‾", + euro: "€", + trade: "™", + larr: "←", + uarr: "↑", + rarr: "→", + darr: "↓", + harr: "↔", + crarr: "↵", + lceil: "⌈", + rceil: "⌉", + lfloor: "⌊", + rfloor: "⌋", + loz: "◊", + spades: "♠", + clubs: "♣", + hearts: "♥", + diams: "♦" +}; +//for(var n in exports.entityMap){console.log(exports.entityMap[n].charCodeAt())} + +},{}],41:[function(require,module,exports){ +"use strict"; + +//[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] +//[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] +//[5] Name ::= NameStartChar (NameChar)* +var nameStartChar = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/; //\u10000-\uEFFFF +var nameChar = new RegExp("[\\-\\.0-9" + nameStartChar.source.slice(1, -1) + "\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"); +var tagNamePattern = new RegExp('^' + nameStartChar.source + nameChar.source + '*(?:\:' + nameStartChar.source + nameChar.source + '*)?$'); +//var tagNamePattern = /^[a-zA-Z_][\w\-\.]*(?:\:[a-zA-Z_][\w\-\.]*)?$/ +//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',') + +//S_TAG, S_ATTR, S_EQ, S_ATTR_NOQUOT_VALUE +//S_ATTR_SPACE, S_ATTR_END, S_TAG_SPACE, S_TAG_CLOSE +var S_TAG = 0; //tag name offerring +var S_ATTR = 1; //attr name offerring +var S_ATTR_SPACE = 2; //attr name end and space offer +var S_EQ = 3; //=space? +var S_ATTR_NOQUOT_VALUE = 4; //attr value(no quot value only) +var S_ATTR_END = 5; //attr value end and no space(quot end) +var S_TAG_SPACE = 6; //(attr value end || tag end ) && (space offer) +var S_TAG_CLOSE = 7; //closed el + +function XMLReader() {} + +XMLReader.prototype = { + parse: function parse(source, defaultNSMap, entityMap) { + var domBuilder = this.domBuilder; + domBuilder.startDocument(); + _copy(defaultNSMap, defaultNSMap = {}); + _parse(source, defaultNSMap, entityMap, domBuilder, this.errorHandler); + domBuilder.endDocument(); + } +}; +function _parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) { + function fixedFromCharCode(code) { + // String.prototype.fromCharCode does not supports + // > 2 bytes unicode chars directly + if (code > 0xffff) { + code -= 0x10000; + var surrogate1 = 0xd800 + (code >> 10), + surrogate2 = 0xdc00 + (code & 0x3ff); + + return String.fromCharCode(surrogate1, surrogate2); + } else { + return String.fromCharCode(code); + } + } + function entityReplacer(a) { + var k = a.slice(1, -1); + if (k in entityMap) { + return entityMap[k]; + } else if (k.charAt(0) === '#') { + return fixedFromCharCode(parseInt(k.substr(1).replace('x', '0x'))); + } else { + errorHandler.error('entity not found:' + a); + return a; + } + } + function appendText(end) { + //has some bugs + if (end > start) { + var xt = source.substring(start, end).replace(/&#?\w+;/g, entityReplacer); + locator && position(start); + domBuilder.characters(xt, 0, end - start); + start = end; + } + } + function position(p, m) { + while (p >= lineEnd && (m = linePattern.exec(source))) { + lineStart = m.index; + lineEnd = lineStart + m[0].length; + locator.lineNumber++; + //console.log('line++:',locator,startPos,endPos) + } + locator.columnNumber = p - lineStart + 1; + } + var lineStart = 0; + var lineEnd = 0; + var linePattern = /.*(?:\r\n?|\n)|.*$/g; + var locator = domBuilder.locator; + + var parseStack = [{ currentNSMap: defaultNSMapCopy }]; + var closeMap = {}; + var start = 0; + while (true) { + try { + var tagStart = source.indexOf('<', start); + if (tagStart < 0) { + if (!source.substr(start).match(/^\s*$/)) { + var doc = domBuilder.doc; + var text = doc.createTextNode(source.substr(start)); + doc.appendChild(text); + domBuilder.currentElement = text; + } + return; + } + if (tagStart > start) { + appendText(tagStart); + } + switch (source.charAt(tagStart + 1)) { + case '/': + var end = source.indexOf('>', tagStart + 3); + var tagName = source.substring(tagStart + 2, end); + var config = parseStack.pop(); + if (end < 0) { + + tagName = source.substring(tagStart + 2).replace(/[\s<].*/, ''); + //console.error('#@@@@@@'+tagName) + errorHandler.error("end tag name: " + tagName + ' is not complete:' + config.tagName); + end = tagStart + 1 + tagName.length; + } else if (tagName.match(/\s + locator && position(tagStart); + end = parseInstruction(source, tagStart, domBuilder); + break; + case '!': + // start) { + start = end; + } else { + //REFINE: 这里有可能sax回退,有位置错误风险 + appendText(Math.max(tagStart, start) + 1); + } + } +} +function copyLocator(f, t) { + t.lineNumber = f.lineNumber; + t.columnNumber = f.columnNumber; + return t; +} + +/** + * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack); + * @return end of the elementStartPart(end of elementEndPart for selfClosed el) + */ +function parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler) { + var attrName; + var value; + var p = ++start; + var s = S_TAG; //status + while (true) { + var c = source.charAt(p); + switch (c) { + case '=': + if (s === S_ATTR) { + //attrName + attrName = source.slice(start, p); + s = S_EQ; + } else if (s === S_ATTR_SPACE) { + s = S_EQ; + } else { + //fatalError: equal must after attrName or space after attrName + throw new Error('attribute equal must after attrName'); + } + break; + case '\'': + case '"': + if (s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE + ) { + //equal + if (s === S_ATTR) { + errorHandler.warning('attribute value must after "="'); + attrName = source.slice(start, p); + } + start = p + 1; + p = source.indexOf(c, start); + if (p > 0) { + value = source.slice(start, p).replace(/&#?\w+;/g, entityReplacer); + el.add(attrName, value, start - 1); + s = S_ATTR_END; + } else { + //fatalError: no end quot match + throw new Error('attribute value no end \'' + c + '\' match'); + } + } else if (s == S_ATTR_NOQUOT_VALUE) { + value = source.slice(start, p).replace(/&#?\w+;/g, entityReplacer); + //console.log(attrName,value,start,p) + el.add(attrName, value, start); + //console.dir(el) + errorHandler.warning('attribute "' + attrName + '" missed start quot(' + c + ')!!'); + start = p + 1; + s = S_ATTR_END; + } else { + //fatalError: no equal before + throw new Error('attribute value must after "="'); + } + break; + case '/': + switch (s) { + case S_TAG: + el.setTagName(source.slice(start, p)); + case S_ATTR_END: + case S_TAG_SPACE: + case S_TAG_CLOSE: + s = S_TAG_CLOSE; + el.closed = true; + case S_ATTR_NOQUOT_VALUE: + case S_ATTR: + case S_ATTR_SPACE: + break; + //case S_EQ: + default: + throw new Error("attribute invalid close char('/')"); + } + break; + case '': + //end document + //throw new Error('unexpected end of input') + errorHandler.error('unexpected end of input'); + if (s == S_TAG) { + el.setTagName(source.slice(start, p)); + } + return p; + case '>': + switch (s) { + case S_TAG: + el.setTagName(source.slice(start, p)); + case S_ATTR_END: + case S_TAG_SPACE: + case S_TAG_CLOSE: + break; //normal + case S_ATTR_NOQUOT_VALUE: //Compatible state + case S_ATTR: + value = source.slice(start, p); + if (value.slice(-1) === '/') { + el.closed = true; + value = value.slice(0, -1); + } + case S_ATTR_SPACE: + if (s === S_ATTR_SPACE) { + value = attrName; + } + if (s == S_ATTR_NOQUOT_VALUE) { + errorHandler.warning('attribute "' + value + '" missed quot(")!!'); + el.add(attrName, value.replace(/&#?\w+;/g, entityReplacer), start); + } else { + if (currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !value.match(/^(?:disabled|checked|selected)$/i)) { + errorHandler.warning('attribute "' + value + '" missed value!! "' + value + '" instead!!'); + } + el.add(value, value, start); + } + break; + case S_EQ: + throw new Error('attribute value missed!!'); + } + // console.log(tagName,tagNamePattern,tagNamePattern.test(tagName)) + return p; + /*xml space '\x20' | #x9 | #xD | #xA; */ + case "\x80": + c = ' '; + default: + if (c <= ' ') { + //space + switch (s) { + case S_TAG: + el.setTagName(source.slice(start, p)); //tagName + s = S_TAG_SPACE; + break; + case S_ATTR: + attrName = source.slice(start, p); + s = S_ATTR_SPACE; + break; + case S_ATTR_NOQUOT_VALUE: + var value = source.slice(start, p).replace(/&#?\w+;/g, entityReplacer); + errorHandler.warning('attribute "' + value + '" missed quot(")!!'); + el.add(attrName, value, start); + case S_ATTR_END: + s = S_TAG_SPACE; + break; + //case S_TAG_SPACE: + //case S_EQ: + //case S_ATTR_SPACE: + // void();break; + //case S_TAG_CLOSE: + //ignore warning + } + } else { + //not space + //S_TAG, S_ATTR, S_EQ, S_ATTR_NOQUOT_VALUE + //S_ATTR_SPACE, S_ATTR_END, S_TAG_SPACE, S_TAG_CLOSE + switch (s) { + //case S_TAG:void();break; + //case S_ATTR:void();break; + //case S_ATTR_NOQUOT_VALUE:void();break; + case S_ATTR_SPACE: + var tagName = el.tagName; + if (currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !attrName.match(/^(?:disabled|checked|selected)$/i)) { + errorHandler.warning('attribute "' + attrName + '" missed value!! "' + attrName + '" instead2!!'); + } + el.add(attrName, attrName, start); + start = p; + s = S_ATTR; + break; + case S_ATTR_END: + errorHandler.warning('attribute space is required"' + attrName + '"!!'); + case S_TAG_SPACE: + s = S_ATTR; + start = p; + break; + case S_EQ: + s = S_ATTR_NOQUOT_VALUE; + start = p; + break; + case S_TAG_CLOSE: + throw new Error("elements closed character '/' and '>' must be connected to"); + } + } + } //end outer switch + //console.log('p++',p) + p++; + } +} +/** + * @return true if has new namespace define + */ +function appendElement(el, domBuilder, currentNSMap) { + var tagName = el.tagName; + var localNSMap = null; + //var currentNSMap = parseStack[parseStack.length-1].currentNSMap; + var i = el.length; + while (i--) { + var a = el[i]; + var qName = a.qName; + var value = a.value; + var nsp = qName.indexOf(':'); + if (nsp > 0) { + var prefix = a.prefix = qName.slice(0, nsp); + var localName = qName.slice(nsp + 1); + var nsPrefix = prefix === 'xmlns' && localName; + } else { + localName = qName; + prefix = null; + nsPrefix = qName === 'xmlns' && ''; + } + //can not set prefix,because prefix !== '' + a.localName = localName; + //prefix == null for no ns prefix attribute + if (nsPrefix !== false) { + //hack!! + if (localNSMap == null) { + localNSMap = {}; + //console.log(currentNSMap,0) + _copy(currentNSMap, currentNSMap = {}); + //console.log(currentNSMap,1) + } + currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value; + a.uri = 'http://www.w3.org/2000/xmlns/'; + domBuilder.startPrefixMapping(nsPrefix, value); + } + } + var i = el.length; + while (i--) { + a = el[i]; + var prefix = a.prefix; + if (prefix) { + //no prefix attribute has no namespace + if (prefix === 'xml') { + a.uri = 'http://www.w3.org/XML/1998/namespace'; + }if (prefix !== 'xmlns') { + a.uri = currentNSMap[prefix || '']; + + //{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)} + } + } + } + var nsp = tagName.indexOf(':'); + if (nsp > 0) { + prefix = el.prefix = tagName.slice(0, nsp); + localName = el.localName = tagName.slice(nsp + 1); + } else { + prefix = null; //important!! + localName = el.localName = tagName; + } + //no prefix element has default namespace + var ns = el.uri = currentNSMap[prefix || '']; + domBuilder.startElement(ns, localName, tagName, el); + //endPrefixMapping and startPrefixMapping have not any help for dom builder + //localNSMap = null + if (el.closed) { + domBuilder.endElement(ns, localName, tagName); + if (localNSMap) { + for (prefix in localNSMap) { + domBuilder.endPrefixMapping(prefix); + } + } + } else { + el.currentNSMap = currentNSMap; + el.localNSMap = localNSMap; + //parseStack.push(el); + return true; + } +} +function parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) { + if (/^(?:script|textarea)$/i.test(tagName)) { + var elEndStart = source.indexOf('', elStartEnd); + var text = source.substring(elStartEnd + 1, elEndStart); + if (/[&<]/.test(text)) { + if (/^script$/i.test(tagName)) { + //if(!/\]\]>/.test(text)){ + //lexHandler.startCDATA(); + domBuilder.characters(text, 0, text.length); + //lexHandler.endCDATA(); + return elEndStart; + //} + } //}else{//text area + text = text.replace(/&#?\w+;/g, entityReplacer); + domBuilder.characters(text, 0, text.length); + return elEndStart; + //} + } + } + return elStartEnd + 1; +} +function fixSelfClosed(source, elStartEnd, tagName, closeMap) { + //if(tagName in closeMap){ + var pos = closeMap[tagName]; + if (pos == null) { + //console.log(tagName) + pos = source.lastIndexOf(''); + if (pos < elStartEnd) { + //忘记闭合 + pos = source.lastIndexOf('', start + 4); + //append comment source.substring(4,end)//