MCPcopy Create free account
hub / github.com/TimMcCool/scratchattach / __init__

Method __init__

scratchattach/editor/project.py:22–71  ·  view source on GitHub ↗
(
        self,
        _name: Optional[str] = None,
        _meta: Optional[meta.Meta] = None,
        _extensions: Iterable[extension.Extension] = (),
        _monitors: Iterable[monitor.Monitor] = (),
        _sprites: Iterable[sprite.Sprite] = (),
        *,
        _asset_data: Optional[list[asset.AssetFile]] = None,
        _session: Optional[session.Session] = None,
    )

Source from the content-addressed store, hash-verified

20 """
21
22 def __init__(
23 self,
24 _name: Optional[str] = None,
25 _meta: Optional[meta.Meta] = None,
26 _extensions: Iterable[extension.Extension] = (),
27 _monitors: Iterable[monitor.Monitor] = (),
28 _sprites: Iterable[sprite.Sprite] = (),
29 *,
30 _asset_data: Optional[list[asset.AssetFile]] = None,
31 _session: Optional[session.Session] = None,
32 ):
33 # Defaulting for list parameters
34 if _meta is None:
35 _meta = meta.Meta()
36 if _asset_data is None:
37 _asset_data = []
38
39 self._session = _session
40
41 self.name = _name
42
43 self.meta = _meta
44 self.extensions: list[extension.Extension] = list(_extensions)
45 self.monitors = list(_monitors)
46 self.sprites = list(_sprites)
47
48 self.asset_data = _asset_data
49
50 self._tw_config_comment = None
51
52 # Link subcomponents
53 for iterable in (self.monitors, self.sprites):
54 for _subcomponent in iterable:
55 _subcomponent.project = self
56
57 # Link sprites
58 _stage_count = 0
59
60 for _sprite in self.sprites:
61 if _sprite.is_stage:
62 _stage_count += 1
63
64 _sprite.link_subcomponents()
65
66 # Link monitors
67 for _monitor in self.monitors:
68 _monitor.link_using_project()
69
70 if _stage_count != 1:
71 raise exceptions.InvalidStageCount(f"Project {self}")
72
73 def __repr__(self):
74 _ret = "Project<"

Callers

nothing calls this directly

Calls 2

link_using_projectMethod · 0.80
link_subcomponentsMethod · 0.45

Tested by

no test coverage detected