Skip to content

Commit da4826a

Browse files
show property visuals on selected object
1 parent 234fe6f commit da4826a

File tree

1 file changed

+21
-24
lines changed

1 file changed

+21
-24
lines changed

src/main.py

+21-24
Original file line numberDiff line numberDiff line change
@@ -819,30 +819,26 @@ def updateObject(self, obj : wmwpy.classes.Object | None):
819819
tags = ('object', 'foreground', id)
820820
)
821821

822-
if self.settings.get('view.radius', True) and obj.Type is not None:
823-
properties = deepcopy(obj.defaultProperties)
824-
properties.update(obj.properties)
822+
if (obj == self.selectedObject or self.settings.get('view.radius', True)) and obj.Type is not None:
823+
properties = filter(lambda name : obj.Type.PROPERTIES[name].get('type', 'string') == 'radius', obj.Type.PROPERTIES)
824+
825825
for property in properties:
826-
property_def = obj.Type.PROPERTIES.get(property, {})
827-
if property_def.get('type') != 'radius':
828-
continue
829-
radius = obj.Type.get_property(property)
830-
831-
logging.debug(f'radius: {radius}')
832-
833-
radius_canvas_size = self.toLevelCanvasCoord(radius)
834-
835-
self.level_canvas.create_circle(
836-
pos[0],
837-
pos[1],
838-
radius_canvas_size,
839-
fill = '',
840-
outline = 'red',
841-
width = self.OBJECT_MULTIPLIER,
842-
tags = ('radius', property, id)
843-
)
826+
props = obj.Type.get_properties(property)
827+
for name, radius in props.items():
828+
logging.debug(f'radius: {radius}')
829+
radius_canvas_size = self.toLevelCanvasCoord(radius)
830+
if radius_canvas_size > 0:
831+
self.level_canvas.create_circle(
832+
pos[0],
833+
pos[1],
834+
radius_canvas_size,
835+
fill = '',
836+
outline = 'red',
837+
width = self.OBJECT_MULTIPLIER,
838+
tags = ('radius', property, id)
839+
)
844840

845-
if self.settings.get('view.path', True) and obj.Type is not None:
841+
if (obj == self.selectedObject or self.settings.get('view.path', True)) and obj.Type is not None:
846842
path_points = obj.Type.get_properties('PathPos#')
847843
logging.debug(f'path_points: {path_points}')
848844
if isinstance(path_points, dict) and len(path_points) > 0:
@@ -1863,9 +1859,10 @@ def selectObject(
18631859
'id': None,
18641860
'property': None,
18651861
}
1866-
if self.selectedObject in self.level.objects:
1867-
self.updateObject(self.selectedObject)
1862+
old_object = self.selectedObject
18681863
self.selectedObject = obj
1864+
if old_object in self.level.objects:
1865+
self.updateObject(old_object)
18691866

18701867
if isinstance(partInfo, dict):
18711868
self.selectedPart['type'] = partInfo.get('type', None)

0 commit comments

Comments
 (0)