(self)
| 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): |
no test coverage detected