def ScriptsType(self, scratch): """Returns a dictionary of the scripts. Keys: start events Values: another dictionary Keys: sprite names Values: that sprite's scripts for this start event .""" #initialize self.types = dict() self.types["dead"] = dict() self.types[self.HAT_GREEN_FLAG] = dict() self.types[self.HAT_WHEN_I_RECEIVE] = dict() self.types[self.HAT_KEY] = dict() self.types[self.HAT_MOUSE] = dict() for event in self.types.keys(): for morph in scratch.sprites + [scratch.stage]: self.types[event][morph.name] = { "hidden": set(), "visible": set() } #go through the visible scripts for sprite, script in KelpPlugin.iter_sprite_visible_scripts(scratch): if not script.reachable: self.types["dead"][sprite]["visible"].add(script) elif KelpPlugin.script_start_type(script) in self.types.keys(): self.types[KelpPlugin.script_start_type( script)][sprite]["visible"].add(script) #go through the hidden scripts for sprite, script in KelpPlugin.iter_sprite_hidden_scripts(scratch): if not script.reachable: self.types["dead"][sprite]["hidden"].add(script) elif KelpPlugin.script_start_type(script) in self.types.keys(): self.types[KelpPlugin.script_start_type( script)][sprite]["hidden"].add(script)
def analyze(self, scratch): if not getattr(scratch, 'kelp_prepared', False): KelpPlugin.tag_reachable_scripts(scratch) #initialize self.types = dict() self.types[self.NO_HAT] = dict() self.types[self.HAT_GREEN_FLAG] = dict() self.types[self.HAT_WHEN_I_RECEIVE] = dict() self.types[self.HAT_KEY] = dict() self.types[self.HAT_MOUSE] = dict() for event in self.types.keys(): for morph in scratch.sprites + [scratch.stage]: self.types[event][morph.name] = {"hidden": set(), "visible": set()} ### The below loop may be adding duplicate scripts ### #go through the visible scripts for sprite, script in KelpPlugin.iter_sprite_visible_scripts(scratch): if not script.reachable: #also adds un-broadcasted when I receive scripts self.types[KelpPlugin.NO_HAT][sprite]["visible"].add(script) elif KelpPlugin.script_start_type(script) in self.types.keys(): self.types[KelpPlugin.script_start_type(script)][sprite]["visible"].add(script) #go through the hidden scripts for sprite, script in KelpPlugin.iter_sprite_hidden_scripts(scratch): if not script.reachable: self.types[self.NO_HAT][sprite]["hidden"].add(script) elif KelpPlugin.script_start_type(script) in self.types.keys(): self.types[KelpPlugin.script_start_type(script)][sprite]["hidden"].add(script) return {'events': self.types, 'thumbnails': self.thumbnails(scratch)}
def ScriptsType(self, scratch): """Returns a dictionary of the scripts. Keys: start events Values: another dictionary Keys: sprite names Values: that sprite's scripts for this start event .""" #initialize self.types = dict() self.types["dead"] = dict() self.types[self.HAT_GREEN_FLAG] = dict() self.types[self.HAT_WHEN_I_RECEIVE] = dict() self.types[self.HAT_KEY] = dict() self.types[self.HAT_MOUSE] = dict() for event in self.types.keys(): for morph in scratch.sprites + [scratch.stage]: self.types[event][morph.name] = {"hidden": set(), "visible": set()} #go through the visible scripts for sprite, script in KelpPlugin.iter_sprite_visible_scripts(scratch): if not script.reachable: self.types["dead"][sprite]["visible"].add(script) elif KelpPlugin.script_start_type(script) in self.types.keys(): self.types[KelpPlugin.script_start_type(script)][sprite]["visible"].add(script) #go through the hidden scripts for sprite, script in KelpPlugin.iter_sprite_hidden_scripts(scratch): if not script.reachable: self.types["dead"][sprite]["hidden"].add(script) elif KelpPlugin.script_start_type(script) in self.types.keys(): self.types[KelpPlugin.script_start_type(script)][sprite]["hidden"].add(script)
def analyze(self, scratch, **kwargs): #initialize self.types = dict() self.types[self.NO_HAT] = dict() self.types[self.HAT_GREEN_FLAG] = dict() self.types[self.HAT_WHEN_I_RECEIVE] = dict() self.types[self.HAT_KEY] = dict() self.types[self.HAT_MOUSE] = dict() for event in self.types.keys(): for morph in scratch.sprites + [scratch.stage]: self.types[event][morph.name] = { "hidden": set(), "visible": set() } ### The below loop may be adding duplicate scripts ### #go through the visible scripts for sprite, script in KelpPlugin.iter_sprite_visible_scripts(scratch): if not script.reachable: #also adds un-broadcasted when I receive scripts self.types[KelpPlugin.NO_HAT][sprite]["visible"].add(script) elif KelpPlugin.script_start_type(script) in self.types.keys(): self.types[KelpPlugin.script_start_type( script)][sprite]["visible"].add(script) #go through the hidden scripts for sprite, script in KelpPlugin.iter_sprite_hidden_scripts(scratch): if not script.reachable: self.types[self.NO_HAT][sprite]["hidden"].add(script) elif KelpPlugin.script_start_type(script) in self.types.keys(): self.types[KelpPlugin.script_start_type( script)][sprite]["hidden"].add(script) return {'events': self.types, 'thumbnails': self.thumbnails(scratch)}