-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.py
executable file
·58 lines (42 loc) · 1.23 KB
/
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/env python
import sys, os, signal, time
from modules import edicomm
os.environ["SDL_VIDEODRIVER"] = "dummy"
try:
import pygame
from pygame.locals import *
except ImportError:
sys.stderr.write("Sorry, you absolutely MUST have pygame.\r\nTry sudo apt-get install python-pygame, if you're on a deb-system.\r\n")
sys.exit(1)
pygame.display.init()
screen = pygame.display.set_mode((1,1))
print 'Server init begins.'
from modules.server import config
config.read_config()
from modules.server import auth
auth.init()
from modules.server import lobby, battle
lobby.start_server()
battle.start_server()
from modules.server import cmdline, cmdhandlers
cl = cmdline.cmdline()
for k, h in cmdhandlers.handlers.iteritems():
cl.add_command(k, h)
cl.start_listener()
def ctrlc_handler(*args):
print 'Ctrl+C recognized.'
pygame.event.post(pygame.event.Event(QUIT))
signal.signal(signal.SIGINT, ctrlc_handler)
# This guy makes sure everything ticks
pygame.time.set_timer(USEREVENT+1, 25)
while True:
time.sleep(0.01)
for event in pygame.event.get():
if event.type == USEREVENT+1:
lobby.timer_tick()
battle.timer_tick()
cl.handle_command()
elif (event.type == QUIT):
cl.post_quit()
config.write_config()
sys.exit(0)