mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
*** empty log message ***
This commit is contained in:
parent
1a928e113f
commit
d7ef955fb4
@ -751,16 +751,22 @@ class Actor(PandaObject, NodePath):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def loadModel(self, modelPath, partName="modelRoot", lodName="lodRoot"):
|
def loadModel(self, modelPath, partName="modelRoot", lodName="lodRoot",
|
||||||
"""loadModel(self, string, string="modelRoot", string="base")
|
copy = 1):
|
||||||
|
"""loadModel(self, string, string="modelRoot", string="lodRoot",
|
||||||
|
bool = 0)
|
||||||
Actor model loader. Takes a model name (ie file path), a part
|
Actor model loader. Takes a model name (ie file path), a part
|
||||||
name(defaults to "modelRoot") and an lod name(defaults to "lodRoot").
|
name(defaults to "modelRoot") and an lod name(defaults to "lodRoot").
|
||||||
|
If copy is set to 0, do a lodModelOnce instead of a loadModelCopy.
|
||||||
"""
|
"""
|
||||||
Actor.notify.info("in loadModel: %s , part: %s, lod: %s" % \
|
Actor.notify.info("in loadModel: %s , part: %s, lod: %s, copy: %s" % \
|
||||||
(modelPath, partName, lodName))
|
(modelPath, partName, lodName, copy))
|
||||||
|
|
||||||
# load the model and extract its part bundle
|
# load the model and extract its part bundle
|
||||||
model = loader.loadModelCopy(modelPath)
|
if (copy):
|
||||||
|
model = loader.loadModelCopy(modelPath)
|
||||||
|
else:
|
||||||
|
model = loader.loadModelOnce(modelPath)
|
||||||
bundle = NodePath(model, "**/+PartBundleNode")
|
bundle = NodePath(model, "**/+PartBundleNode")
|
||||||
if (bundle.isEmpty()):
|
if (bundle.isEmpty()):
|
||||||
Actor.notify.warning("%s is not a character!" % (modelPath))
|
Actor.notify.warning("%s is not a character!" % (modelPath))
|
||||||
|
@ -22,7 +22,7 @@ class Frame:
|
|||||||
del(self.frame)
|
del(self.frame)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "Frame: %s = %s" % self.name, self.items
|
return "Frame: %s = %s" % (self.name, self.items)
|
||||||
|
|
||||||
# accessing
|
# accessing
|
||||||
def getName(self):
|
def getName(self):
|
||||||
@ -52,6 +52,9 @@ class Frame:
|
|||||||
|
|
||||||
def recompute(self):
|
def recompute(self):
|
||||||
self.frame.recompute()
|
self.frame.recompute()
|
||||||
|
|
||||||
|
def clearAllPacking(self):
|
||||||
|
self.frame.clearAllPacking()
|
||||||
|
|
||||||
# content functions
|
# content functions
|
||||||
def addItem(self, item):
|
def addItem(self, item):
|
||||||
@ -68,18 +71,23 @@ class Frame:
|
|||||||
def printItems(self):
|
def printItems(self):
|
||||||
print "frame items: %s" % (self.items)
|
print "frame items: %s" % (self.items)
|
||||||
|
|
||||||
def packItem(self, itemNum, relation, otherItemNum):
|
def packItem(self, item, relation, otherItem):
|
||||||
self.frame.packItem(self.items[itemNum].getGuiItem(), relation,
|
if (item in self.items) and (otherItem in self.items):
|
||||||
self.items[otherItemNum].getGuiItem(), self.offset)
|
self.frame.packItem(item.getGuiItem(), relation,
|
||||||
|
otherItem.getGuiItem(), self.offset)
|
||||||
|
else:
|
||||||
|
print "warning: tried to pack item that aren't in frame"
|
||||||
|
|
||||||
# convenience functions
|
# convenience functions
|
||||||
def makeVertical(self):
|
def makeVertical(self):
|
||||||
# remove any previous packing
|
# remove any previous packing
|
||||||
self.frame.clearAllPacking()
|
self.frame.clearAllPacking()
|
||||||
# make each item (except first) align under the last
|
# make each item (except first) align under the last
|
||||||
for itemNum in range(1, len(self.items)):
|
for itemNum in range(1, len(self.items)):
|
||||||
self.packItem(itemNum, GuiFrame.GuiFrame.UNDER, itemNum - 1)
|
self.packItem(self.items[itemNum], GuiFrame.GuiFrame.UNDER,
|
||||||
self.packItem(itemNum, GuiFrame.GuiFrame.ALIGNLEFT, itemNum - 1)
|
self.items[itemNum - 1])
|
||||||
|
self.packItem(self.items[itemNum], GuiFrame.GuiFrame.ALIGNLEFT,
|
||||||
|
self.items[itemNum - 1])
|
||||||
self.frame.recompute()
|
self.frame.recompute()
|
||||||
|
|
||||||
def makeHorizontal(self):
|
def makeHorizontal(self):
|
||||||
@ -87,8 +95,10 @@ class Frame:
|
|||||||
self.frame.clearAllPacking()
|
self.frame.clearAllPacking()
|
||||||
# make each item (except first) align right of the last
|
# make each item (except first) align right of the last
|
||||||
for itemNum in range(1, len(self.items)):
|
for itemNum in range(1, len(self.items)):
|
||||||
self.packItem(itemNum, GuiFrame.GuiFrame.RIGHT, itemNum - 1)
|
self.packItem(self.items[itemNum], GuiFrame.GuiFrame.RIGHT,
|
||||||
self.packItem(itemNum, GuiFrame.GuiFrame.ALIGNABOVE, itemNum - 1)
|
self.items[itemNum - 1])
|
||||||
|
self.packItem(self.items[itemNum], GuiFrame.GuiFrame.ALIGNABOVE,
|
||||||
|
self.items[itemNum - 1])
|
||||||
self.frame.recompute()
|
self.frame.recompute()
|
||||||
|
|
||||||
def makeWideAsWidest(self):
|
def makeWideAsWidest(self):
|
||||||
|
@ -126,8 +126,6 @@ class PickList(PandaObject.PandaObject):
|
|||||||
for choice in self.choiceList:
|
for choice in self.choiceList:
|
||||||
if not (self.choiceList.index(choice) == self.choice):
|
if not (self.choiceList.index(choice) == self.choice):
|
||||||
choice.getGuiItem().exit()
|
choice.getGuiItem().exit()
|
||||||
# throw a rollover event
|
|
||||||
messenger.send(self.name + "-rollover")
|
|
||||||
|
|
||||||
def __exitChoice(self):
|
def __exitChoice(self):
|
||||||
# reset choice when mouse exits a button
|
# reset choice when mouse exits a button
|
||||||
@ -148,10 +146,11 @@ class PickList(PandaObject.PandaObject):
|
|||||||
task = Task.Task(buttonUp)
|
task = Task.Task(buttonUp)
|
||||||
task.choice = self.choiceList[self.choice]
|
task.choice = self.choiceList[self.choice]
|
||||||
taskMgr.spawnTaskNamed(Task.doLater(.035, task,
|
taskMgr.spawnTaskNamed(Task.doLater(.035, task,
|
||||||
"buttonUp-Later"),
|
"buttonUp-later"),
|
||||||
"doLater-buttonUp-later")
|
"doLater-buttonUp-later")
|
||||||
# let everyone know a choice was made
|
# let everyone know a choice was made
|
||||||
messenger.send(self.eventName, [self.choice])
|
messenger.send(self.eventName, [self.choice])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,21 +19,21 @@ class ScrollingLabel(PandaObject.PandaObject):
|
|||||||
self.frame.setOffset(0.015)
|
self.frame.setOffset(0.015)
|
||||||
self.item = 0
|
self.item = 0
|
||||||
self.items = []
|
self.items = []
|
||||||
|
self.keyFocus = 1
|
||||||
# display the name of the scrolling label
|
|
||||||
|
# create the new title
|
||||||
label = GuiLabel.GuiLabel.makeSimpleTextLabel(self.name, font)
|
label = GuiLabel.GuiLabel.makeSimpleTextLabel(self.name, font)
|
||||||
label.setForegroundColor(1., 0., 0., 1.)
|
label.setForegroundColor(1., 0., 0., 1.)
|
||||||
label.setBackgroundColor(1., 1., 1., 0.)
|
label.setBackgroundColor(1., 1., 1., 0.)
|
||||||
name = Sign.Sign(self.name, label)
|
self.title = Sign.Sign(self.name, label)
|
||||||
self.frame.addItem(name)
|
self.frame.addItem(self.title)
|
||||||
|
|
||||||
# create a sign for each item in itemList
|
# create a sign for each item in itemList
|
||||||
for item in itemList:
|
for item in itemList:
|
||||||
#thisLabel = GuiLabel.GuiLabel.makeSimpleTextLabel(item, font)
|
thisLabel = GuiLabel.GuiLabel.makeSimpleTextLabel(item, font)
|
||||||
#thisLabel.setForegroundColor(0., 0., 0., 1.)
|
thisLabel.setForegroundColor(0., 0., 0., 1.)
|
||||||
#thisLabel.setBackgroundColor(1., 1., 1., 1.)
|
thisLabel.setBackgroundColor(1., 1., 1., 1.)
|
||||||
#thisSign = Sign.Sign(item, thisLabel)
|
thisSign = Sign.Sign(item, thisLabel)
|
||||||
thisSign = Button.Button(item)
|
|
||||||
self.items.append(thisSign)
|
self.items.append(thisSign)
|
||||||
# add each item temporarily
|
# add each item temporarily
|
||||||
self.frame.addItem(thisSign)
|
self.frame.addItem(thisSign)
|
||||||
@ -46,24 +46,34 @@ class ScrollingLabel(PandaObject.PandaObject):
|
|||||||
self.frame.removeItem(self.items[itemNum])
|
self.frame.removeItem(self.items[itemNum])
|
||||||
|
|
||||||
# pack the first label under the name
|
# pack the first label under the name
|
||||||
self.frame.packItem(1, GuiFrame.GuiFrame.UNDER, 0)
|
self.frame.packItem(self.items[self.item], GuiFrame.GuiFrame.UNDER,
|
||||||
|
self.title)
|
||||||
|
self.frame.packItem(self.items[self.item], GuiFrame.GuiFrame.ALIGNLEFT,
|
||||||
|
self.title)
|
||||||
|
|
||||||
# create the scroll buttons
|
# create the scroll buttons
|
||||||
leftButton = Button.Button(self.name + "-left", " < ")
|
self.leftButton = Button.Button(self.name + "-left", " < ")
|
||||||
leftButton.getGuiItem().setDownRolloverEvent(self.name + "-left")
|
self.leftButton.getGuiItem().setDownRolloverEvent(self.name + "-left")
|
||||||
self.frame.addItem(leftButton)
|
self.frame.addItem(self.leftButton)
|
||||||
self.frame.packItem(2, GuiFrame.GuiFrame.UNDER ,0)
|
self.frame.packItem(self.leftButton, GuiFrame.GuiFrame.UNDER,
|
||||||
self.frame.packItem(2, GuiFrame.GuiFrame.LEFT ,0)
|
self.title)
|
||||||
rightButton = Button.Button(self.name + "-right", " > ")
|
self.frame.packItem(self.leftButton, GuiFrame.GuiFrame.LEFT,
|
||||||
rightButton.getGuiItem().setDownRolloverEvent(self.name + "-right")
|
self.title)
|
||||||
self.frame.addItem(rightButton)
|
self.rightButton = Button.Button(self.name + "-right", " > ")
|
||||||
self.frame.packItem(3, GuiFrame.GuiFrame.UNDER ,0)
|
self.rightButton.getGuiItem().setDownRolloverEvent(self.name +
|
||||||
self.frame.packItem(3, GuiFrame.GuiFrame.RIGHT ,0)
|
"-right")
|
||||||
|
self.frame.addItem(self.rightButton)
|
||||||
|
self.frame.packItem(self.rightButton, GuiFrame.GuiFrame.UNDER,
|
||||||
|
self.title)
|
||||||
|
self.frame.packItem(self.rightButton, GuiFrame.GuiFrame.RIGHT,
|
||||||
|
self.title)
|
||||||
|
|
||||||
# listen for the scroll buttons
|
# listen for the scroll buttons
|
||||||
self.accept(self.name + "-left", self.handleLeftButton)
|
self.accept(self.name + "-left", self.handleLeftButton)
|
||||||
self.accept(self.name + "-right", self.handleRightButton)
|
self.accept(self.name + "-right", self.handleRightButton)
|
||||||
|
# listen for keyboard hits
|
||||||
|
self.setKeyFocus(1)
|
||||||
|
|
||||||
# refresh the frame
|
# refresh the frame
|
||||||
self.frame.recompute()
|
self.frame.recompute()
|
||||||
|
|
||||||
@ -77,14 +87,25 @@ class ScrollingLabel(PandaObject.PandaObject):
|
|||||||
# ignore events
|
# ignore events
|
||||||
self.ignore(self.name + "-left")
|
self.ignore(self.name + "-left")
|
||||||
self.ignore(self.name + "-right")
|
self.ignore(self.name + "-right")
|
||||||
|
self.setKeyFocus(0)
|
||||||
|
|
||||||
# accessing
|
# accessing
|
||||||
def getName(self):
|
def getTitle(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
def setTitle(self, name):
|
||||||
|
self.name = name
|
||||||
|
self.title.setText(name)
|
||||||
|
self.frame.recompute()
|
||||||
|
|
||||||
def getItem(self):
|
def getItem(self):
|
||||||
return self.item
|
return self.items[self.item]
|
||||||
|
|
||||||
|
def setItem(self, item):
|
||||||
|
self.frame.removeItem(self.items[self.item])
|
||||||
|
self.item = item
|
||||||
|
self.addItem()
|
||||||
|
|
||||||
def getEventName(self):
|
def getEventName(self):
|
||||||
return self.eventName
|
return self.eventName
|
||||||
|
|
||||||
@ -93,12 +114,30 @@ class ScrollingLabel(PandaObject.PandaObject):
|
|||||||
|
|
||||||
def setPos(self, x, y):
|
def setPos(self, x, y):
|
||||||
self.frame.setPos(x, y)
|
self.frame.setPos(x, y)
|
||||||
|
self.frame.recompute()
|
||||||
|
|
||||||
def setScale(self, scale):
|
def setScale(self, scale):
|
||||||
self.frame.setScale(scale)
|
self.frame.setScale(scale)
|
||||||
|
self.frame.recompute()
|
||||||
|
|
||||||
|
def getKeyFocus(self):
|
||||||
|
return self.keyFocus
|
||||||
|
|
||||||
|
def setKeyFocus(self, focus):
|
||||||
|
self.keyFocus = focus
|
||||||
|
if (focus == 1):
|
||||||
|
# listen for keyboard hits
|
||||||
|
self.accept("left-up", self.handleLeftArrow)
|
||||||
|
self.accept("right-up", self.handleRightArrow)
|
||||||
|
else:
|
||||||
|
# ignore keyboard hits
|
||||||
|
self.ignore("left-up")
|
||||||
|
self.ignore("right-up")
|
||||||
|
|
||||||
# actions
|
# actions
|
||||||
|
def recompute(self):
|
||||||
|
self.frame.recompute()
|
||||||
|
|
||||||
def manage(self):
|
def manage(self):
|
||||||
self.frame.manage()
|
self.frame.manage()
|
||||||
|
|
||||||
@ -121,12 +160,38 @@ class ScrollingLabel(PandaObject.PandaObject):
|
|||||||
self.item = 0
|
self.item = 0
|
||||||
self.addItem()
|
self.addItem()
|
||||||
|
|
||||||
|
def handleLeftArrow(self):
|
||||||
|
# make the button toggle
|
||||||
|
self.leftButton.getGuiItem().down()
|
||||||
|
self.spawnButtonUpTask(self.leftButton)
|
||||||
|
# then act like a mouse click
|
||||||
|
self.handleLeftButton()
|
||||||
|
|
||||||
|
def handleRightArrow(self):
|
||||||
|
# make the button toggle
|
||||||
|
self.rightButton.getGuiItem().down()
|
||||||
|
self.spawnButtonUpTask(self.rightButton)
|
||||||
|
# then act like a mouse click
|
||||||
|
self.handleRightButton()
|
||||||
|
|
||||||
|
def spawnButtonUpTask(self, button):
|
||||||
|
def buttonUp(state):
|
||||||
|
state.button.getGuiItem().up()
|
||||||
|
return Task.done
|
||||||
|
task = Task.Task(buttonUp)
|
||||||
|
task.button = button
|
||||||
|
taskMgr.spawnTaskNamed(Task.doLater(.035, task, "buttonUp-later"),
|
||||||
|
"doLater-buttonUp-later")
|
||||||
|
|
||||||
def addItem(self):
|
def addItem(self):
|
||||||
self.frame.addItem(self.items[self.item])
|
self.frame.addItem(self.items[self.item])
|
||||||
self.frame.packItem(3, GuiFrame.GuiFrame.UNDER, 0)
|
self.frame.packItem(self.items[self.item], GuiFrame.GuiFrame.UNDER,
|
||||||
|
self.title)
|
||||||
|
self.frame.packItem(self.items[self.item], GuiFrame.GuiFrame.ALIGNLEFT,
|
||||||
|
self.title)
|
||||||
self.items[self.item].manage()
|
self.items[self.item].manage()
|
||||||
self.frame.recompute()
|
self.frame.recompute()
|
||||||
messenger.send(self.eventName + str(self.item))
|
messenger.send(self.eventName, [self.item])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user