Esempio n. 1
0
    def _change_entity(self, eview):
        pre = str(eview.id) + '.'
        update_parent = False

        
        in_tree = self._tree.exists(str(eview.id))
        does_pass = self._filter_fun(eview)

        if not does_pass:
            if in_tree:
                self._tree.delete(str(eview.id))
            return
        else:
            if not in_tree:
                self._add_entity(eview._e)

        for tag, value in eview._tags.items():
            if tag < 0 or tag == 49 or tag == 50:
                update_parent = True
            if eview._e[tag] is None:
                # add tag
                self._tree.insert(str(eview.id), 'end', pre + str(tag),
                                  text=tag,
                                  value=(GameTag.reverse.get(tag, ''),
                                         utils.format_tag_value(tag, value)))
            else:
                # change tag
                self._tree.item(pre + str(tag),
                                value=(GameTag.reverse.get(tag, ''),
                                       utils.format_tag_value(tag, value)))

        if update_parent:
            self._tree.item(str(eview.id),
                            value=(str(eview), ''))
Esempio n. 2
0
    def _change_entity(self, eview):
        pre = str(eview.id) + '.'
        update_parent = False


        in_tree = self._tree.exists(str(eview.id))
        does_pass = self._filter_fun(eview)

        if not does_pass:
            if in_tree:
                self._tree.delete(str(eview.id))
            return
        else:
            if not in_tree:
                self._add_entity(eview._e)

        for tag, value in eview._tags.items():
            if tag < 0 or tag == 49 or tag == 50:
                update_parent = True
            if eview._e[tag] is None:
                # add tag
                self._tree.insert(str(eview.id), 'end', pre + str(tag),
                                  text=tag,
                                  value=(GameTag.reverse.get(tag, ''),
                                         utils.format_tag_value(tag, value)))
            else:
                # change tag
                self._tree.item(pre + str(tag),
                                value=(GameTag.reverse.get(tag, ''),
                                       utils.format_tag_value(tag, value)))

        if update_parent:
            self._tree.item(str(eview.id),
                            value=(str(eview), ''))
Esempio n. 3
0
 def _apply(self, transaction):
     # XXX: Remove all debug code
     print('== Transaction Start ==')
     
     self.cb(self, 'pre_apply', transaction)
     
     for entity in transaction._e.values():
         if isinstance(entity, MutableView):
             for key, val in entity._tags.items():
                 oldval = entity._e[key]
                 if oldval:
                     print('{0} tag {1}:{2} {3} -> {4}'.format(
                         entity,
                         key,
                         GameTag.reverse.get(key, '?'),
                         format_tag_value(key, oldval),
                         format_tag_value(key, val)))
                 else:
                     print('{0} tag {1}:{2} (unset) -> {3}'.format(
                         entity,
                         key,
                         GameTag.reverse.get(key, '?'),
                         format_tag_value(key, val)))
             entity._e._tags.update(entity._tags)
         else:
             assert entity.id not in self
             print('Added new entity {0}'.format(entity))
             self._e[entity.id] = entity.freeze()
     print('== Transaction End ==')
Esempio n. 4
0
 def __str__(self):
     ret = super().__str__()
     for key, val in self._tags.items():
         oldval = self._e[key]
         ret += ('\n\ttag {1}:{2} {3} -> {4}'.format(
             self, key, GameTag.reverse.get(key, '?'),
             format_tag_value(key, oldval) if oldval else '(unset)',
             format_tag_value(key, val)))
     return ret
Esempio n. 5
0
 def __str__(self):
     ret = super().__str__()
     for key, val in self._tags.items():
         oldval = self._e[key]
         ret += ('\n\ttag {1}:{2} {3} -> {4}'.format(
                         self,
                         key,
                         format_tag_name(key),
                         format_tag_value(key, oldval) if oldval else '(unset)',
                         format_tag_value(key, val)))
     return ret
Esempio n. 6
0
    def _process_power(self, power, t):
        if power.HasField('full_entity'):
            e = power.full_entity
            taglist = [(e.name, e.value) for e in e.tags]
            taglist.append((TAG_POWER_NAME, e.name))
            new_entity = Entity(e.entity, taglist)
            t.add(new_entity)

            # logging
            logger.info('Adding new entity: {0}'.format(new_entity))
            logger.debug('With tags: \n' + '\n'.join(
                '\ttag {0}:{1} {2}'.format(tag_id, format_tag_name(tag_id),
                                           format_tag_value(tag_id, tag_val))
                for tag_id, tag_val in taglist))
        if power.HasField('show_entity'):
            e = power.show_entity
            mut = t.get_mutable(e.entity)
            mut[TAG_POWER_NAME] = e.name

            for tag in e.tags:
                mut[tag.name] = tag.value

            logger.info('Revealing entity: {0}'.format(mut))
        if power.HasField('hide_entity'):
            pass
        if power.HasField('tag_change'):
            change = power.tag_change
            e = t.get_mutable(change.entity)

            logger.info('Tag change for {0}: {1} from {2} to {3}'.format(
                Entity.__str__(e), format_tag_name(change.tag),
                format_tag_value(change.tag, e[change.tag])
                if e[change.tag] is not None else '(unset)',
                format_tag_value(change.tag, change.value)))

            e[change.tag] = change.value
        if power.HasField('create_game'):
            self._process_create_game(power.create_game, t)
        if power.HasField('power_start'):
            pass
        if power.HasField('power_end'):
            pass
        if power.HasField('meta_data'):
            pass
Esempio n. 7
0
    def _process_power(self, power, t):
        if power.HasField('full_entity'):
            e = power.full_entity
            taglist = [(e.name, e.value) for e in e.tags]
            taglist.append((TAG_POWER_NAME, e.name))
            new_entity = Entity(e.entity, taglist)
            t.add(new_entity)

            # logging
            logger.info('Adding new entity: {0}'.format(new_entity))
            logger.debug('With tags: \n' + '\n'.join(
                '\ttag {0}:{1} {2}'.format(tag_id, format_tag_name(tag_id),
                                          format_tag_value(tag_id, tag_val))
                for tag_id, tag_val in taglist))
        if power.HasField('show_entity'):
            e = power.show_entity
            mut = t.get_mutable(e.entity)
            mut[TAG_POWER_NAME] = e.name

            for tag in e.tags:
                mut[tag.name] = tag.value

            logger.info('Revealing entity: {0}'.format(mut))
        if power.HasField('hide_entity'):
            pass
        if power.HasField('tag_change'):
            change = power.tag_change
            e = t.get_mutable(change.entity)

            logger.info('Tag change for {0}: {1} from {2} to {3}'.format(
                Entity.__str__(e),
                format_tag_name(change.tag),
                format_tag_value(change.tag, e[change.tag]) if e[change.tag] is not None else '(unset)',
                format_tag_value(change.tag, change.value)))

            e[change.tag] = change.value
        if power.HasField('create_game'):
            self._process_create_game(power.create_game, t)
        if power.HasField('power_start'):
            pass
        if power.HasField('power_end'):
            pass
        if power.HasField('meta_data'):
            pass
Esempio n. 8
0
    def _add_entity(self, entity):
        name = 'Entity {0}'.format(entity.id)
        node = self._tree.insert('', 'end', str(entity.id), text=name,
                                 value=(str(entity), ''))

        pre = str(entity.id) + '.'
        for tag, value in entity._tags.items():
            self._tree.insert(node, 'end', pre + str(tag),
                              text=str(tag),
                              value=(GameTag.reverse.get(tag, ''),
                                     utils.format_tag_value(tag, value)))
Esempio n. 9
0
    def _add_entity(self, entity):
        name = 'Entity {0}'.format(entity.id)
        node = self._tree.insert('', 'end', str(entity.id), text=name,
                                 value=(str(entity), ''))

        pre = str(entity.id) + '.'
        for tag, value in entity._tags.items():
            self._tree.insert(node, 'end', pre + str(tag),
                              text=str(tag),
                              value=(GameTag.reverse.get(tag, ''),
                                     utils.format_tag_value(tag, value)))
Esempio n. 10
0
    def _process_power(self, power, t):
        if hasattr(power, 'FullEntity'):
            e = power.FullEntity
            taglist = [(e.Name, e.Value) for e in e.Tags]
            taglist.append((TAG_POWER_NAME, e.Name))
            new_entity = Entity(e.Entity, taglist)
            t.add(new_entity)

            # logging
            logger.info('Adding new entity: {0}'.format(new_entity))
            logger.debug('With tags: \n' + '\n'.join(
                '\ttag {0}:{1} {2}'.format(tag_id,
                                          GameTag.reverse.get(tag_id, '?'),
                                          format_tag_value(tag_id, tag_val))
                for tag_id, tag_val in taglist))
        if hasattr(power, 'ShowEntity'):
            e = power.ShowEntity
            mut = t.get_mutable(e.Entity)
            mut[TAG_POWER_NAME] = e.Name

            for tag in e.Tags:
                mut[tag.Name] = tag.Value

            logger.info('Revealing entity: {0}'.format(mut))
        if hasattr(power, 'HideEntity'):
            pass
        if hasattr(power, 'TagChange'):
            change = power.TagChange
            e = t.get_mutable(change.Entity)

            logger.info('Tag change for {0}: {1} from {2} to {3}'.format(
                Entity.__str__(e),
                GameTag.reverse.get(change.Tag, change.Tag),
                format_tag_value(change.Tag, e[change.Tag]) if e[change.Tag] is not None else '(unset)',
                format_tag_value(change.Tag, change.Value)))

            e[change.Tag] = change.Value
        if hasattr(power, 'CreateGame'):
            self._process_create_game(power.CreateGame, t)
Esempio n. 11
0
    def _process_power(self, power, t):
        if hasattr(power, 'FullEntity'):
            e = power.FullEntity
            taglist = [(e.Name, e.Value) for e in e.Tags]
            taglist.append((TAG_POWER_NAME, e.Name))
            new_entity = Entity(e.Entity, taglist)
            t.add(new_entity)

            # logging
            logger.info('Adding new entity: {0}'.format(new_entity))
            logger.debug('With tags: \n' +
                         '\n'.join('\ttag {0}:{1} {2}'.format(
                             tag_id, GameTag.reverse.get(tag_id, '?'),
                             format_tag_value(tag_id, tag_val))
                                   for tag_id, tag_val in taglist))
        if hasattr(power, 'ShowEntity'):
            e = power.ShowEntity
            mut = t.get_mutable(e.Entity)
            mut[TAG_POWER_NAME] = e.Name

            for tag in e.Tags:
                mut[tag.Name] = tag.Value

            logger.info('Revealing entity: {0}'.format(mut))
        if hasattr(power, 'HideEntity'):
            pass
        if hasattr(power, 'TagChange'):
            change = power.TagChange
            e = t.get_mutable(change.Entity)

            logger.info('Tag change for {0}: {1} from {2} to {3}'.format(
                Entity.__str__(e), GameTag.reverse.get(change.Tag, change.Tag),
                format_tag_value(change.Tag, e[change.Tag])
                if e[change.Tag] is not None else '(unset)',
                format_tag_value(change.Tag, change.Value)))

            e[change.Tag] = change.Value
        if hasattr(power, 'CreateGame'):
            self._process_create_game(power.CreateGame, t)