Skip to content

Commit 57bb3e0

Browse files
committed
bldg title labels
1 parent e4f9457 commit 57bb3e0

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

toontown/leveleditor/LevelEditor.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ def __init__(self):
130130
self.visitedEdges = []
131131

132132
self.zoneLabels = []
133+
self.bldgLabels = []
133134
self.animPropDict = {}
134135

135136
self.collisionsToggled = False
@@ -3308,6 +3309,35 @@ def clearZoneLabels(self):
33083309
for label in self.zoneLabels:
33093310
label.removeNode()
33103311
self.zoneLabels = []
3312+
3313+
def labelBldgs(self):
3314+
''' Draws a text label above Landmark bldgs displaying their title and block # '''
3315+
self.clearBldgLabels()
3316+
for bldg in self.NPToplevel.findAllMatches('**/*tb*:toon_landmark*'):
3317+
dnanode = self.findDNANode(bldg)
3318+
block = self.getBlockFromName(dnanode.getName())
3319+
title = dnanode.getTitle()
3320+
fg = (0.8, 0.4, 0.2, 1)
3321+
if not title:
3322+
title = '(unnamed)'
3323+
fg = (1.0, 0.1, 0.1, 1)
3324+
label = DirectGui.DirectLabel(text = f"TB{block}\n{title}",
3325+
text_font = ToontownGlobals.getSignFont(),
3326+
text_fg = fg, text_wordwrap = 20,
3327+
parent = bldg,
3328+
relief = None, scale = 4)
3329+
label.setBillboardPointWorld()
3330+
label.setDepthWrite(False)
3331+
label.setDepthTest(not self.labelsOnTop)
3332+
if not bldg.find('**/**front').getBounds().isEmpty():
3333+
center = bldg.find('**/**front').getBounds().getCenter()
3334+
label.setPos(center[0], center[1], 50)
3335+
self.bldgLabels.append(label)
3336+
3337+
def clearBldgLabels(self):
3338+
for label in self.bldgLabels:
3339+
label.removeNode()
3340+
self.bldgLabels = []
33113341

33123342
def getBlockFromName(self, name):
33133343
block = name[2:name.find(':')]

toontown/leveleditor/LevelEditorPanel.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,15 @@ def __init__(self, levelEditor, parent = None, **kw):
375375
landmarkBuildingsPage, width = 24,
376376
textvariable = self.landmarkBuildingNameString)
377377
self.landmarkBuildingNameBox.pack(expand = 0, fill = X)
378+
379+
self.bldgLabels = IntVar()
380+
self.bldgLabels.set(0)
381+
self.bldgLabelsButton = ttk.Checkbutton(
382+
landmarkBuildingsPage,
383+
text = 'Show Bldg Labels', width = 20,
384+
variable = self.bldgLabels,
385+
command = self.toggleBldgLabels)
386+
self.bldgLabelsButton.pack(side = LEFT, expand = 1, fill = X)
378387

379388
# ANIMATED BUILDINGS
380389
Label(animBuildingsPage, text = 'Animated Buildings',
@@ -988,7 +997,7 @@ def toggleZoneLabels(self):
988997

989998
def toggleZoneLabelsOnTop(self):
990999
self.levelEditor.labelsOnTop = self.fLabelOnTop.get()
991-
for lbl in self.levelEditor.zoneLabels:
1000+
for lbl in self.levelEditor.zoneLabels + self.levelEditor.bldgLabels:
9921001
lbl.setDepthTest(not self.fLabelOnTop.get())
9931002
for lbl in self.levelEditor.NPToplevel.findAllMatches('**/suit_point_label_*'):
9941003
lbl.setDepthTest(not self.fLabelOnTop.get())
@@ -1001,6 +1010,12 @@ def togglePathLabels(self):
10011010
for lbl in self.levelEditor.NPToplevel.findAllMatches('**/suit_point_label_*'):
10021011
lbl.hide()
10031012

1013+
def toggleBldgLabels(self):
1014+
if self.bldgLabels.get():
1015+
self.levelEditor.labelBldgs()
1016+
else:
1017+
self.levelEditor.clearBldgLabels()
1018+
10041019
def toggleXyzSnap(self):
10051020
base.direct.grid.setXyzSnap(self.fXyzSnap.get())
10061021

0 commit comments

Comments
 (0)