mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
Removed Toontown leveleditor files
This commit is contained in:
parent
4b5eed144f
commit
cb4b6986bb
@ -5527,6 +5527,6 @@ class LEAvatar(LocalAvatar.LocalAvatar):
|
||||
def getAutoRun(self):
|
||||
return 0
|
||||
|
||||
l = LevelEditor()
|
||||
base.l = LevelEditor()
|
||||
run()
|
||||
|
||||
|
@ -1,3 +1,3 @@
|
||||
from direct.directbase.DirectStart import *
|
||||
import LevelEditor
|
||||
l = LevelEditor.LevelEditor()
|
||||
base.l = LevelEditor.LevelEditor()
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,177 +0,0 @@
|
||||
|
||||
from pandac.PandaModules import *
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
from direct.directtools.DirectGeometry import *
|
||||
from direct.task import Task
|
||||
|
||||
class PieMenu(NodePath, DirectObject):
|
||||
def __init__(self, visibleMenu, menuItems,
|
||||
action = None, fUpdateOnlyOnChange = 1, selectedSF = 1):
|
||||
NodePath.__init__(self)
|
||||
# Create a toplevel node for aspect ratio scaling
|
||||
self.assign(hidden.attachNewNode('PieMenu'))
|
||||
self.dr = base.direct.dr
|
||||
# Attach the menu
|
||||
self.visibleMenu = visibleMenu
|
||||
# Try to flatten the visibleMenu (note, flattenStrong is too strong
|
||||
# for texture text
|
||||
self.visibleMenu.flattenMedium()
|
||||
self.visibleMenu.reparentTo(self)
|
||||
# Initialize instance variables
|
||||
self.menuItems = menuItems
|
||||
self.numItems = len(self.menuItems)
|
||||
if self.numItems == 0:
|
||||
self.degreesPerItem = 360.0
|
||||
else:
|
||||
self.degreesPerItem = 360.0/self.numItems
|
||||
self.itemOffset = self.degreesPerItem / 2.0
|
||||
self.sfx = self.visibleMenu.getSx()
|
||||
self.sfz = self.visibleMenu.getSz()
|
||||
# Record target and action
|
||||
self.action = action
|
||||
self.initialState = None
|
||||
# Marking lines
|
||||
self.lines = LineNodePath(self.visibleMenu)
|
||||
self.lines.setColor(VBase4(1))
|
||||
self.lines.setThickness(1)
|
||||
# Set flags
|
||||
self.fUpdateOnlyOnChange = fUpdateOnlyOnChange
|
||||
|
||||
def performAction(self, value):
|
||||
if self.action:
|
||||
self.action(value)
|
||||
|
||||
def removePieMenuTask(self):
|
||||
taskMgr.remove('pieMenuTask')
|
||||
self.reparentTo(hidden)
|
||||
self.lines.reset()
|
||||
|
||||
def spawnPieMenuTask(self):
|
||||
# Make sure no errant tasks lying around
|
||||
taskMgr.remove('pieMenuTask')
|
||||
|
||||
# Where did the user press the button?
|
||||
self.originX = self.dr.mouseX
|
||||
self.originY = self.dr.mouseY
|
||||
|
||||
# Pop up menu
|
||||
self.reparentTo(render2d)
|
||||
self.setPos(self.originX, 0.0, self.originY)
|
||||
# Compensate for window aspect ratio
|
||||
self.setScale(1.0, 1.0, 1.0)
|
||||
# Start drawing the selection line
|
||||
self.lines.reset()
|
||||
self.lines.moveTo(0, 0, 0)
|
||||
self.lines.drawTo(0, 0, 0)
|
||||
self.lines.create()
|
||||
|
||||
# Spawn task to update line and select new texture
|
||||
self.currItem = -1
|
||||
taskMgr.add(self.pieMenuTask, 'pieMenuTask')
|
||||
|
||||
def pieMenuTask(self,state):
|
||||
# Don't do anything if nothing in the menu
|
||||
if self.numItems == 0:
|
||||
self.currItem = -1
|
||||
return Task.cont
|
||||
|
||||
mouseX = self.dr.mouseX
|
||||
mouseY = self.dr.mouseY
|
||||
deltaX = mouseX - self.originX
|
||||
deltaY = mouseY - self.originY
|
||||
|
||||
# Update the line
|
||||
#self.lines.setVertex(1, (deltaX/self.sfx), 0.0, (deltaY/self.sfz))
|
||||
|
||||
# How far from starting point has user moved the cursor?
|
||||
if ((abs(deltaX) < 0.1) and (abs(deltaY) < 0.1)):
|
||||
# In the center
|
||||
if self.fUpdateOnlyOnChange:
|
||||
# Only do this when things change
|
||||
if (self.currItem != -1):
|
||||
self.performAction(self.initialState)
|
||||
else:
|
||||
# Alway let use know mouse is in the center
|
||||
self.performAction(self.initialState)
|
||||
self.currItem = -1
|
||||
else:
|
||||
# Outside of the center
|
||||
# Interacting with menu
|
||||
# subtract half a slice to effectively center item
|
||||
menuAngle = rad2Deg(math.atan2(deltaY, deltaX)) + self.itemOffset
|
||||
if menuAngle < 0.0:
|
||||
menuAngle = menuAngle + 360.0
|
||||
menuAngle = menuAngle % 360.0
|
||||
newItem = int(math.floor(menuAngle / self.degreesPerItem))
|
||||
if self.fUpdateOnlyOnChange:
|
||||
if (self.currItem != newItem):
|
||||
self.performAction(self.menuItems[newItem])
|
||||
else:
|
||||
self.performAction(self.menuItems[newItem])
|
||||
self.currItem = newItem
|
||||
# Continue task
|
||||
return Task.cont
|
||||
|
||||
def setInitialState(self, state):
|
||||
self.initialState = state
|
||||
|
||||
def getInitialState(self):
|
||||
return self.initialState
|
||||
|
||||
def setItemOffset(self, newOffset):
|
||||
self.itemOffset = newOffset
|
||||
|
||||
def setUpdateOnlyOnChange(self, flag):
|
||||
self.fUpdateOnlyOnChange = flag
|
||||
|
||||
|
||||
class TextPieMenu(PieMenu):
|
||||
def __init__(self, textList, radius = 0.5, sf = 1,
|
||||
action = None, fUpdateOnlyOnChange = 1):
|
||||
numItems = len(textList)
|
||||
# Create top level node for new menu
|
||||
newMenu = hidden.attachNewNode('TextMenu')
|
||||
# Compute angle per item
|
||||
angle = deg2Rad(360.0/numItems)
|
||||
prop = base.win.getProperties()
|
||||
if prop.hasSize():
|
||||
width = prop.getXSize()
|
||||
height = prop.getYSize()
|
||||
else:
|
||||
width = 640
|
||||
height = 480
|
||||
aspectRatio = width/float(height)
|
||||
# Add items
|
||||
from direct.gui.DirectGuiGlobals import getDefaultFont
|
||||
for i in range (numItems):
|
||||
# Create text node for each item
|
||||
if (textList[i] != None):
|
||||
tn = TextNode('TextItem')
|
||||
tn.setFont(getDefaultFont())
|
||||
tn.setTransform(Mat4.scaleMat(0.07, 0.07, 0.07 * aspectRatio))
|
||||
tn.setTextColor(0, 0, 0, 1)
|
||||
tn.setCardColor(1, 1, 1, 1)
|
||||
tn.setCardAsMargin(0.1, 0.1, 0.1, 0.1)
|
||||
tn.setText(str(textList[i]))
|
||||
|
||||
# Reposition it
|
||||
card = tn.getCardTransformed()
|
||||
center = (card[1] - card[0], card[3] - card[2])
|
||||
|
||||
node = newMenu.attachNewNode(tn)
|
||||
node.setScale(sf)
|
||||
node.setPos(radius * math.cos(i * angle) - center[0], 0.0,
|
||||
((radius * aspectRatio * math.sin(i * angle)) -
|
||||
center[1]))
|
||||
# Create and return a pie menu
|
||||
PieMenu.__init__(self, newMenu, textList, action = action,
|
||||
fUpdateOnlyOnChange = fUpdateOnlyOnChange)
|
||||
self.accept('mouse3', self.spawnPieMenuTask)
|
||||
self.accept('mouse3-up', self.removePieMenuTask)
|
||||
def destroy(self):
|
||||
self.ignore('mouse3')
|
||||
self.ignore('mouse3-up')
|
||||
self.removeNode()
|
||||
|
||||
|
||||
|
@ -1,96 +0,0 @@
|
||||
###########################################################
|
||||
# Class to create and maintain a scrolled list
|
||||
# that can be embedded in a LevelAttribute instance
|
||||
###########################################################
|
||||
|
||||
from direct.gui.DirectGui import *
|
||||
from toontown.toonbase import ToontownGlobals
|
||||
|
||||
class ScrollMenu:
|
||||
def __init__(self, nodePath, textList):
|
||||
self.action = None #Call back fucntion
|
||||
self.textList = textList
|
||||
|
||||
self.parent = nodePath
|
||||
self.frame = None
|
||||
|
||||
self.initialState = None # To maintain backward compatibility
|
||||
|
||||
def createScrolledList(self):
|
||||
# First create a frame in which direct elements maybe placed
|
||||
self.frame = DirectFrame(scale = 1.1, relief = 1.0,
|
||||
frameSize = (-0.5,0.2,-0.05,0.59),
|
||||
frameColor = (0.737, 0.573, 0.345, 0.000))
|
||||
|
||||
numItemsVisible = 4
|
||||
itemHeight = 0.08
|
||||
|
||||
myScrolledList = DirectScrolledList(
|
||||
decButton_pos= (0.35, 0, 0.53),
|
||||
decButton_text = "Dec",
|
||||
decButton_text_scale = 0.04,
|
||||
decButton_borderWidth = (0.005, 0.005),
|
||||
|
||||
incButton_pos= (0.35, 0, -0.02),
|
||||
incButton_text = "Inc",
|
||||
incButton_text_scale = 0.04,
|
||||
incButton_borderWidth = (0.005, 0.005),
|
||||
|
||||
frameSize = (0.0, 0.8, -0.05, 0.59),
|
||||
frameColor = (0,0,1,0.5),
|
||||
pos = (-0.5, 0, 0),
|
||||
items = [],
|
||||
numItemsVisible = numItemsVisible,
|
||||
forceHeight = itemHeight,
|
||||
itemFrame_frameSize = (-0.35, 0.35, -0.37, 0.11),
|
||||
itemFrame_pos = (0.4, 0, 0.4),
|
||||
)
|
||||
|
||||
for t in self.textList:
|
||||
myScrolledList.addItem(DirectButton(text = (t, t, t),
|
||||
text_scale = 0.05, command = self.__selected,
|
||||
extraArgs = [t], relief = None,
|
||||
# text_font = ToontownGlobals.getSignFont(),
|
||||
text0_fg = (0.152, 0.750, 0.258, 1),
|
||||
text1_fg = (0.152, 0.750, 0.258, 1),
|
||||
text2_fg = (0.977, 0.816, 0.133, 1), ))
|
||||
myScrolledList.reparentTo(self.frame)
|
||||
|
||||
#An exit button
|
||||
b1 = DirectButton(parent = self.frame, text = "Exit",
|
||||
text_scale=0.05, borderWidth = (0.01, 0.01),
|
||||
relief=1, command = self.__hide)
|
||||
b1.setPos(0.15, 0, -0.025)
|
||||
|
||||
self.frame.reparentTo(self.parent)
|
||||
|
||||
|
||||
def __selected(self, text):
|
||||
if(self.action):
|
||||
self.action(text)
|
||||
|
||||
def __hide(self):
|
||||
self.frame.reparentTo(self.parent)
|
||||
|
||||
|
||||
#######################################################
|
||||
# Functions that allow compaitibility with the
|
||||
# existing architecture that is tied into pie menu's
|
||||
#######################################################
|
||||
def spawnPieMenuTask(self):
|
||||
# Where did the user press the button?
|
||||
originX = base.direct.dr.mouseX
|
||||
originY = base.direct.dr.mouseY
|
||||
|
||||
# Pop up menu
|
||||
self.frame.reparentTo(aspect2d)
|
||||
self.frame.setPos(originX, 0.0, originY)
|
||||
|
||||
def removePieMenuTask(self):
|
||||
pass
|
||||
|
||||
def setInitialState(self, state):
|
||||
self.initialState = state
|
||||
|
||||
def getInitialState(self):
|
||||
return self.initialState
|
@ -1,5 +0,0 @@
|
||||
# This is required to properly decode the Tk wide-character strings.
|
||||
|
||||
import sys
|
||||
sys.setdefaultencoding('utf8')
|
||||
print "Encoding set to UTF8"
|
Loading…
x
Reference in New Issue
Block a user