message.setTime(time.time() + delay)
        priorityQ.add(message)


def update():
    while len(priorityQ) > 0:
        current_time = time.time()
        message = priorityQ[0]

        if message.get_time() < current_time:
            receiver_id = message.get_received_id()
            receiver = EntityManager.get_entity_from_id(receiver_id)
            discharge(receiver, message)
            priorityQ.pop(0)
        time.sleep(2)


if __name__ == '__main__':
    import sys
    working_path = "%s\\%s".format(sys.path[0], "..")
    sys.path.insert(0, working_path)

    from entity.Miner import Miner
    miner1 = Miner()
    miner2 = Miner()
    dispatch_message(10, miner1.get_entity_id(), miner2.get_entity_id(), "hello 1-2", "")
    dispatch_message(0, miner2.get_entity_id(), miner1.get_entity_id(), "hello 2-1", "")

    update()

# -*- coding: utf-8 -*-
# ---------------------------负责注册管理所有的entity----------
# 1. 作为一个基础类,不关联具体的游戏功能类
# -----------------------------------------------------------
entity_map = {}


def register_entity(entity):
    entity_id = entity.get_entity_id()
    entity_map[entity_id] = entity


def un_register_entity(entity):
    entity_id = entity.get_entity_id()
    if entity_id in entity_map:
        entity_map[entity_id] = None


def get_entity_from_id(entity_id):
    return entity_map.get(entity_id, None)


if __name__ == '__main__':
    import sys
    sys.path.insert(0, "".join([sys.path[0], "\\.."]))
    from entity.Miner import Miner
    miner = Miner()
    miner_id = miner.get_entity_id()
    ret_miner = get_entity_from_id(miner_id)