Go to the documentation of this file.00001 '''
00002 Anoria (c) Gsk 2010
00003 '''
00004
00005
00006
00007
00008
00009
00010 import GUI as SYSGUI
00011
00012 import BigWorld
00013 from Keys import *
00014 from bwdebug import *
00015
00016
00017 from config.consts import SYSTEM_VERSION
00018 from config.state import *
00019
00020 from Resources import ResourceDB as RDB
00021 __import__('__main__').RDB = RDB
00022
00023 from Helpers import PyGUI
00024 __import__('__main__').PyGUI = PyGUI
00025
00026 import AnGUI
00027 __import__('__main__').AnGUI = AnGUI
00028
00029 import AvatarModel
00030 __import__('__main__').AMM = AvatarModel.AvatarModelManager
00031
00032 import ItemManager
00033 __import__('__main__').ITM = ItemManager.ItemManager
00034
00035 import ConnectionManager
00036
00037 def _fadeOut():
00038 global loadingScreen
00039 loadingScreen.colour.alpha = loadingScreen.colour.alpha - 2
00040 if loadingScreen.colour.alpha > 0:
00041 BigWorld.callback(.1, _fadeOut)
00042 else:
00043 SYSGUI.delRoot(loadingScreen)
00044 loadingScreen=None
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 def init( scriptsConfig, engineConfig, prefs ):
00055
00056 print "------------------------------------------------"
00057 print "INIT ANORIA CLIENT %s" % (SYSTEM_VERSION)
00058 print "------------------------------------------------"
00059
00060
00061 RDB.load(isServer=False)
00062
00063 global loadingScreen
00064 loadingScreen = SYSGUI.Simple("gui/maps/anoria-logo-01.tga")
00065 loadingScreen.width = 2.0
00066 loadingScreen.height = 2.0
00067 loadingScreen.position.y = 0.5
00068
00069 SYSGUI.addRoot(loadingScreen)
00070
00071
00072
00073
00074
00075
00076 AnGUI.service.setupGUI()
00077
00078 if scriptsConfig.readBool( "server/online" ):
00079 ConnectionManager.service.doConnect(scriptsConfig.readString( "server/host" ))
00080 else:
00081 _initOffline( scriptsConfig )
00082
00083
00084 AnGUI.service.addHotkey(KEY_Q, 'AutoAttackToggle')
00085 AnGUI.service.addHotkey(KEY_P, 'ProficienciesWindowToggle')
00086
00087
00088 cc = BigWorld.CursorCamera()
00089 cc.source = BigWorld.dcursor().matrix
00090 cc.target = BigWorld.PlayerMatrix()
00091 BigWorld.dcursor().yawReference = cc.invViewMatrix
00092 BigWorld.dcursor().minYaw = -2
00093 BigWorld.dcursor().maxYaw = 2
00094
00095 cc.pivotPosition = scriptsConfig.readVector3('camera/defTargetOffset', (0.0, 1.8, 0.0))
00096 cc.pivotMaxDist = scriptsConfig.readFloat('camera/maxDistanceFromPivot', cc.pivotMaxDist)
00097 cc.pivotMinDist = scriptsConfig.readFloat('camera/minDistanceFromPivot', cc.pivotMinDist)
00098 cc.terrainMinDist = scriptsConfig.readFloat('camera/minDistanceFromTerrain', cc.terrainMinDist)
00099 cc.maxVelocity = scriptsConfig.readFloat('camera/maxVelocity', cc.maxVelocity)
00100 cc.movementHalfLife = scriptsConfig.readFloat('camera/movementHalfLife', cc.movementHalfLife)
00101 cc.turningHalfLife = scriptsConfig.readFloat('camera/turningHalfLife', cc.turningHalfLife)
00102 BigWorld.camera(cc)
00103
00104
00105 AnGUI.Cursor.showCursor(True)
00106
00107
00108 print 'Anoria client personality init() done.'
00109
00110
00111
00112
00113 def start():
00114
00115 BigWorld.callback(.1, _fadeOut)
00116
00117
00118
00119 def fini():
00120 BigWorld.savePreferences()
00121
00122
00123
00124
00125
00126 def onChangeEnvironments( inside ):
00127 pass
00128
00129
00130 def addChatMsg( msg ):
00131 global ans
00132 ans.console.addMsg(msg)
00133
00134
00135
00136 def handleKeyEvent( down, key, mods ):
00137
00138
00139
00140 if down and key == KEY_F4 and mods == MODIFIER_ALT:
00141 if BigWorld.player() != None:
00142 try:
00143 BigWorld.player().base.logOff()
00144 except: pass
00145 BigWorld.quit()
00146 return True
00147 elif down and key == KEY_RETURN and mods == MODIFIER_ALT:
00148 BigWorld.changeVideoMode( BigWorld.videoModeIndex(), not BigWorld.isVideoWindowed() )
00149 return True
00150
00151 handled = AnGUI.service.handleKeyEvent(down, key, mods)
00152
00153
00154
00155 cam = BigWorld.camera()
00156 if cam is not None and handled is False:
00157 handled = cam.handleKeyEvent((down, key, mods))
00158
00159 return handled
00160
00161
00162
00163
00164
00165
00166 def handleCharEvent( char, key, mods ):
00167 return SYSGUI.handleCharEvent( char, key, mods )
00168
00169
00170 def handleMouseEvent( dx, dy, dz ):
00171
00172 PyGUI.handleMouseEvent(dx, dy, dz)
00173 handled = SYSGUI.handleMouseEvent(dx, dy, dz)
00174 return handled
00175
00176
00177 def handleAxisEvent( axis, value, dTime ):
00178 return False
00179
00180
00181
00182
00183
00184
00185 def _initOffline( scriptsConfig ):
00186
00187 print "beginning offline startup ..."
00188
00189
00190 spaceID = BigWorld.createSpace()
00191
00192
00193 BigWorld.addSpaceGeometryMapping(
00194 spaceID, None, scriptsConfig.readString( "space" ) )
00195
00196
00197 playerID = BigWorld.createEntity(
00198 scriptsConfig.readString( "player/entityType" ),
00199 spaceID, 0,
00200 scriptsConfig.readVector3( "player/startPosition" ),
00201 scriptsConfig.readVector3( "player/startDirection" ),
00202 {} )
00203
00204 BigWorld.player( BigWorld.entities[ playerID ] )
00205