Exemplo n.º 1
0
	def __init__(self, *args, **kwargs):
		Server.__init__(self, *args, **kwargs)
		api.server = self
		api.send_message = self.send_message
		api.send_message_to_all = self.send_message_to_all
		api.exec_chat_command = self.exec_chat_command

		self.players = WeakKeyDictionary()
		self.waiting_for_join = WeakKeyDictionary()

		self.player_stats = {'active': True}
		self.player_stats_max = {}

		self.chat_commands = api.chat_commands
		api.register_chat_command('help', self.command_help)

		self.players_count = 0

		self.object_classes = api.object_classes
		self.tile_classes = api.tile_classes

		self.install_mods()

		self.world = None
		self.load_world('default_world')

		self.last_time = sys_time()

		print("Server launched")
		start_new_thread(self.command_input, ())
Exemplo n.º 2
0
    def set(self, key, val, time=0):
        key = str(key)
        if time < 0:
            time = 0

        self._app_cache[key] = (val, sys_time(), time)
        return val
Exemplo n.º 3
0
    def set(self, key, val, time=0):
        key = str(key)
        if time < 0:
            time = 0

        self._app_cache[key] = (val, sys_time(), time)
        return val
Exemplo n.º 4
0
    def set(cls, key, value, time=None, min_compress_len=0):
        if time is None:
            time = cls.DEFAULT_TIMEOUT

        cls._prune()
        cls.mem_cache[key] = (sys_time() + time, pickle.dumps(value,
                                                          pickle.HIGHEST_PROTOCOL))
        return True
Exemplo n.º 5
0
    def set(cls, key, value, time=None, min_compress_len=0):
        if time is None:
            time = cls.DEFAULT_TIMEOUT

        cls._prune()
        cls.mem_cache[key] = (sys_time() + time, pickle.dumps(value,
                                                          pickle.HIGHEST_PROTOCOL))
        return True
Exemplo n.º 6
0
 def get(self, key):
     key = str(key)
     _store = self._app_cache.get(key, None)
     if not _store:
         return None
     value, begin, seconds = _store
     if seconds and sys_time() > begin + seconds:
         del self._app_cache[key]
         return None
     return value
Exemplo n.º 7
0
 def get(self, key):
     key = str(key)
     _store = self._app_cache.get(key, None)
     if not _store:
         return None
     value, begin, seconds = _store
     if seconds and sys_time() > begin + seconds:
         del self._app_cache[key]
         return None
     return value
Exemplo n.º 8
0
    def incr(self, key, delta=1):
        key = str(key)
        _store = self._app_cache.get(key, None)
        if not _store:
            return None

        value, begin, seconds = _store
        if seconds and sys_time() > begin + seconds:
            del self._app_cache[key]
            return None

        if isinstance(value, basestring):
            value = int(value)

        value = value + delta
        self.set(key, value)
        return value
Exemplo n.º 9
0
    def incr(self, key, delta=1):
        key = str(key)
        _store = self._app_cache.get(key, None)
        if not _store:
            return None

        value, begin, seconds = _store
        if seconds and sys_time() > begin + seconds:
            del self._app_cache[key]
            return None

        if isinstance(value, basestring):
            value = int(value)

        value = value + delta
        self.set(key, value)
        return value
Exemplo n.º 10
0
 def draw_messages(self, lifetime=5):
     if (lifetime == None):
         for i, message in enumerate(
                 list(reversed(self.messages))[self.message_show_from:]):
             if (i == self.messages_on_screen):
                 return
             pos = (10, screen_size[1] - 50 - i * 21)
             gui.fill_alpha(screen, (60, 60, 60), 0.5, rect=(*pos, 500, 21))
             screen.blit(font.render(message['text'], 1, message['color']),
                         pos)
     else:
         for i, message in enumerate(reversed(self.messages)):
             if (i == self.messages_on_screen):
                 return
             if (sys_time() - message['time'] < lifetime):
                 pos = (10, screen_size[1] - 50 - i * 21)
                 gui.fill_alpha(screen, (60, 60, 60),
                                0.5,
                                rect=(*pos, 500, 21))
                 screen.blit(
                     font.render(message['text'], 1, message['color']), pos)
Exemplo n.º 11
0
 def get(cls, key):
     expires, value = cls.mem_cache.get(key, (0, None))
     if expires > sys_time():
         return pickle.loads(value)
     return None
Exemplo n.º 12
0
 def _prune(cls):
     if len(cls.mem_cache) > cls.MAX_ITEMS:
         now = sys_time()
         for idx, (key, (expires, _)) in enumerate(cls.mem_cache.items()):
             if expires <= now or idx % 3 == 0:
                 cls.mem_cache.pop(key, None)
Exemplo n.º 13
0
 def get(cls, key):
     expires, value = cls.mem_cache.get(key, (0, None))
     if expires > sys_time():
         return pickle.loads(value)
     return None
Exemplo n.º 14
0
 def _prune(cls):
     if len(cls.mem_cache) > cls.MAX_ITEMS:
         now = sys_time()
         for idx, (key, (expires, _)) in enumerate(cls.mem_cache.items()):
             if expires <= now or idx % 3 == 0:
                 cls.mem_cache.pop(key, None)
Exemplo n.º 15
0
def patch_time(offset):
    return sys_time() + offset
Exemplo n.º 16
0
	def get_delta_time(self):
		delta_time = (sys_time() - self.last_time) * 1000
		self.last_time = sys_time()
		return delta_time
Exemplo n.º 17
0
 def __init__(self, text = None, time = None, offset = -1, length = 0):
     self.text = text
     self.time = time if time is not None else sys_time()
     self.offset = offset
     self.length = length
Exemplo n.º 18
0
 def execute(self):
     current_time: float = sys_time()
     self.state_field_registry.update(StateField.TIME, current_time)
     if self.state_field_registry.get(StateField.BOOT_TIME) == -1:
         self.state_field_registry.update(StateField.BOOT_TIME, current_time)
Exemplo n.º 19
0
def get_system_time():
    return Fraction(int(sys_time() * 1000), 1000)
Exemplo n.º 20
0
 def add_message(self, text, color=api.WHITE, player=None):
     self.messages.append({
         'text': text,
         'color': color,
         'time': sys_time()
     })