UNPKG

odin

Version:

Node.js Canvas/WebGL Javascript Game Framework

156 lines (125 loc) 6.43 kB
if (typeof(define) !== "function") { var define = require("amdefine")(module); } define( function(require) { "use strict"; var IS_SERVER = !(typeof(window) !== "undefined" && window.document), IS_CLIENT = !IS_SERVER, defineProperty = Object.defineProperty; /** * Holds all accessible Classes * @class Odin */ function Odin() { this.Phys2D = require("odin/phys2d/phys2d"); this.AudioCtx = require("odin/base/audio_ctx"); this.Class = require("odin/base/class"); this.Device = require("odin/base/device"); this.Dom = require("odin/base/dom"); this.Enum = require("odin/base/enum"); this.EventEmitter = require("odin/base/event_emitter"); this.ObjectPool = require("odin/base/object_pool"); this.requestAnimationFrame = require("odin/base/request_animation_frame"); this.io = require("odin/base/socket.io"); this.Time = require("odin/base/time"); this.util = require("odin/base/util"); this.Shader = require("odin/core/assets/shaders/shader"); this.ShaderLib = require("odin/core/assets/shaders/shader_lib"); this.Asset = require("odin/core/assets/asset"); this.AssetLoader = require("odin/core/assets/asset_loader"); this.Assets = require("odin/core/assets/assets"); this.AudioClip = require("odin/core/assets/audio_clip"); this.Bone = require("odin/core/assets/bone"); this.Material = require("odin/core/assets/material"); this.Mesh = require("odin/core/assets/mesh"); this.SpriteSheet = require("odin/core/assets/sprite_sheet"); this.Texture = require("odin/core/assets/texture"); this.TextureCube = require("odin/core/assets/texture_cube"); this.ParticleSystem = require("odin/core/components/particle_system/particle_system"); this.AudioSource = require("odin/core/components/audio_source"); this.Camera = require("odin/core/components/camera"); this.Camera2D = require("odin/core/components/camera_2d"); this.Component = require("odin/core/components/component"); this.GUIText = require("odin/core/components/gui_text"); this.GUITexture = require("odin/core/components/gui_texture"); this.Light = require("odin/core/components/light"); this.MeshFilter = require("odin/core/components/mesh_filter"); this.OrbitControl = require("odin/core/components/orbit_control"); this.RigidBody2D = require("odin/core/components/rigid_body_2d"); this.Sprite = require("odin/core/components/sprite"); this.SpriteAnimation = require("odin/core/components/sprite_animation"); this.Transform = require("odin/core/components/transform"); this.Transform2D = require("odin/core/components/transform_2d"); this.Game = require("odin/core/game/game"); this.ClientGame = require("odin/core/game/client_game"); this.Config = require("odin/core/game/config"); this.Log = require("odin/core/game/log"); this.BaseGame = require("odin/core/game/base_game"); this.GUIComponent = require("odin/core/gui/components/gui_component"); this.GUIContent = require("odin/core/gui/components/gui_content"); this.GUITransform = require("odin/core/gui/components/gui_transform"); this.GUI = require("odin/core/gui/gui"); this.GUIObject = require("odin/core/gui/gui_object"); this.GUIStyle = require("odin/core/gui/gui_style"); this.GUIStyleState = require("odin/core/gui/gui_style_state"); this.Handler = require("odin/core/input/handler"); this.Input = require("odin/core/input/input"); this.World = require("odin/core/world/world"); this.World2D = require("odin/core/world/world_2d"); this.CanvasRenderer2D = require("odin/core/rendering/canvas_renderer_2d"); this.WebGLRenderer = require("odin/core/rendering/webgl_renderer"); this.WebGLRenderer2D = require("odin/core/rendering/webgl_renderer_2d"); this.Enums = require("odin/core/enums"); this.GameObject = require("odin/core/game_object"); this.Prefab = require("odin/core/prefab"); this.Scene = require("odin/core/scene"); this.AABB2 = require("odin/math/aabb2"); this.AABB3 = require("odin/math/aabb3"); this.Color = require("odin/math/color"); this.Mat2 = require("odin/math/mat2"); this.Mat3 = require("odin/math/mat3"); this.Mat32 = require("odin/math/mat32"); this.Mat4 = require("odin/math/mat4"); this.Mathf = require("odin/math/mathf"); this.Quat = require("odin/math/quat"); this.Rect = require("odin/math/rect"); this.RectOffset = require("odin/math/rect_offset"); this.Vec2 = require("odin/math/vec2"); this.Vec3 = require("odin/math/vec3"); this.Vec4 = require("odin/math/vec4"); if (this.Device.mobile) { window.onerror = function(message, page, line) { alert("line: " + line + ", page: " + page + "\nmessage: " + message); }; } } defineProperty(Odin.prototype, "isServer", { get: function() { return IS_SERVER; } }); defineProperty(Odin.prototype, "isClient", { get: function() { return IS_CLIENT; } }); /** * attaches Odin to window/global and all subclasses */ Odin.prototype.globalize = function() { for (var key in this) window[key] = this[key]; window.Odin = this; }; /** * test function n number of times returns time it took */ Odin.prototype.test = function(name, fn, times) { times || (times = 1000); console.time(name); while (times--) fn(); console.timeEnd(name); }; return new Odin; } );