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), ''))
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), ''))
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 ==')
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
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
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
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
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)))
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)))
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)
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)