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

Method link_using_sprite

scratchattach/editor/prim.py:142–170  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

140 return commons.trim_final_nones([self.type.code, self.value.name, self.value.id, self.x, self.y])
141
142 def link_using_sprite(self):
143 # Link prim to var/list/broadcast
144 if self.is_vlb:
145 if self.type.name == "variable":
146 self.value = self.sprite.find_variable(self.value_id, "id")
147
148 elif self.type.name == "list":
149 self.value = self.sprite.find_list(self.value_id, "id")
150
151 elif self.type.name == "broadcast":
152 self.value = self.sprite.find_broadcast(self.value_id, "id")
153 else:
154 # This should never happen
155 raise exceptions.BadVLBPrimitiveError(f"{self} claims to be VLB, but is {self.type.name}")
156
157 if self.value is None:
158 if not self.project:
159 new_vlb = vlb.construct(self.type.name.lower(), self.value_id, self.name)
160 self.sprite.add_local_global(new_vlb)
161 self.value = new_vlb
162
163 else:
164 new_vlb = vlb.construct(self.type.name.lower(), self.value_id, self.name)
165 self.sprite.stage.add_vlb(new_vlb)
166
167 warnings.warn(
168 f"Prim<name={self.name!r}, id={self.name!r}> has unknown {self.type.name} id; adding as global variable")
169 self.name = None
170 self.value_id = None
171
172 @property
173 def can_next(self):

Callers 6

link_using_blockMethod · 0.45
link_primsMethod · 0.45
link_blocksMethod · 0.45
link_commentsMethod · 0.45
add_blockMethod · 0.45
add_commentMethod · 0.45

Calls 5

find_variableMethod · 0.80
find_listMethod · 0.80
find_broadcastMethod · 0.80
add_local_globalMethod · 0.80
add_vlbMethod · 0.80

Tested by

no test coverage detected