Вход Регистрация
Файл: Space race/libs/Editor_files/gamecore.js
Строк: 98
<?php
/**
 * gamecore.js - Copyright 2012 Playcraft Labs, Inc. (see licence.txt)
 * gamecore.js
 * Namespace wrappers and the base class
 */

window.gamecore = {};
gamecore.Class = $.Class;

/**
 * @class gamecore.Base
 * A base class providing logging, object counting and unique object id's
 * Examples:
 *
 * Unique ID and total objects:
 * <code>
 * var Fighter = gamecore.Base.extend('Fighter', {}, {});
 * var fighter1 = new Fighter();
 * var fighter2 = new Fighter();
 * fighter1.uniqueId;    // -> 'Fighter:0'
 * fighter2.uniqueId;    // -> 'Fighter:1'
 * Fighter.totalObjects; // -> 2
 * </code>
 *
 * Logging: (log, info, warn, error, debug)
 * <code>
 * fighter1.warn('oops'); // == console.log('Fighter:0 [WARN] oops');
 */

gamecore.Base gamecore.Class('gamecore.Base',
    
///
    /// STATIC
    ///
    
{
        
totalObjects0,
        
WARN'WARN',
        
DEBUG'DEBUG',
        
ERROR'ERROR',
        
INFO'INFO',

        
log: function(idtypemessage)
        {
            var 
idString '';
            if (
ididString ':'+id;
            
console.log(this.fullName idString ' [' type '] ' message);
        },

        
warn: function (message)
        {
            
this.log(nullthis.WARNmessage);
        },

        
debug: function (message)
        {
            
this.log(nullthis.DEBUGmessage);
        },

        
error: function (message)
        {
            
this.log(nullthis.ERRORmessage);
        },

        
info: function (message)
        {
            
this.log(nullthis.INFOmessage);
        },

        
assert: function(msgcondition)
        {
            if (!
condition)
                throw 
msg;
        }

    },
    
///
    /// INSTANCE
    ///
    
{
        
objectId0,
        
uniqueIdnull,

        
init: function()
        {
        },

        
setup: function()
        {
            
this.objectId this.Class.totalObjects++;
            
this.uniqueId this.Class.fullName ':' this.objectId;
        },

        
/**
         * @returns {String} A system-wide unique Id for this object instance
         */
        
getUniqueId: function()
        {
            
// if you see a null error here, then likely you have forgotten to call
            // this._super in a subclassed init method.
            
return this.uniqueId;
        },

        
/**
         * @returns {String} A hash matching this object. Override this to implement different
         * kinds of object hashing in derived classes.
         */
        
hashCode: function()
        {
            return 
this.getUniqueId();
        },

        
warn: function (message)
        {
            
this.Class.log(this.objectIdthis.Class.WARNmessage);
        },
        
debug: function (message)
        {
            
this.Class.log(this.objectIdthis.Class.DEBUGmessage);
        },
        
error: function (message)
        {
            
this.Class.log(this.objectIdthis.Class.ERRORmessage);
        },
        
info: function (message)
        {
            
this.Class.log(this.objectIdthis.Class.INFOmessage);
        },

        
toString: function()
        {
            return 
this.Class.fullName ' [id: ' this.objectId ']';
        }
    });
?>
Онлайн: 3
Реклама