mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-05 03:15:07 -04:00
changing to new general Control Manager
This commit is contained in:
parent
d3c19148bc
commit
92fbd4149d
@ -25,18 +25,12 @@ class ControlManager:
|
|||||||
assert self.notify.debugCall(id(self))
|
assert self.notify.debugCall(id(self))
|
||||||
|
|
||||||
self.enableJumpCounter = 1
|
self.enableJumpCounter = 1
|
||||||
|
self.controls = {}
|
||||||
self.swimControls=NonPhysicsWalker.NonPhysicsWalker()
|
|
||||||
self.ghostControls=GhostWalker.GhostWalker()
|
|
||||||
if __debug__:
|
|
||||||
self.devControls=DevWalker.DevWalker()
|
|
||||||
self.walkControls=GravityWalker.GravityWalker(
|
|
||||||
gravity = -32.1740 * 2.0) # * 2.0 is a hack;
|
|
||||||
|
|
||||||
# This is the non physics walker if you ever wanted to turn off phys
|
# This is the non physics walker if you ever wanted to turn off phys
|
||||||
# self.walkControls=NonPhysicsWalker.NonPhysicsWalker()
|
# self.walkControls=NonPhysicsWalker.NonPhysicsWalker()
|
||||||
|
|
||||||
self.currentControls = self.walkControls
|
self.currentControls = None
|
||||||
self.isEnabled = 1
|
self.isEnabled = 1
|
||||||
#self.monitorTask = taskMgr.add(self.monitor, "ControlManager-%s"%(id(self)), priority=-1)
|
#self.monitorTask = taskMgr.add(self.monitor, "ControlManager-%s"%(id(self)), priority=-1)
|
||||||
inputState.watch("forward", "arrow_up", "arrow_up-up")
|
inputState.watch("forward", "arrow_up", "arrow_up-up")
|
||||||
@ -90,10 +84,11 @@ class ControlManager:
|
|||||||
|
|
||||||
def add(self, controls, name="basic"):
|
def add(self, controls, name="basic"):
|
||||||
assert self.notify.debugCall(id(self))
|
assert self.notify.debugCall(id(self))
|
||||||
controls = self.controls.get(name)
|
assert controls is not None
|
||||||
if controls is not None:
|
oldControls = self.controls.get(name)
|
||||||
|
if oldControls is not None:
|
||||||
print "Replacing controls:", name
|
print "Replacing controls:", name
|
||||||
controls.delete()
|
oldControls.delete()
|
||||||
self.controls[name] = controls
|
self.controls[name] = controls
|
||||||
|
|
||||||
def use(self, name="basic"):
|
def use(self, name="basic"):
|
||||||
@ -105,91 +100,43 @@ class ControlManager:
|
|||||||
self.currentControls.setCollisionsActive(0)
|
self.currentControls.setCollisionsActive(0)
|
||||||
self.currentControls = controls
|
self.currentControls = controls
|
||||||
self.currentControls.setCollisionsActive(1)
|
self.currentControls.setCollisionsActive(1)
|
||||||
|
if self.isEnabled:
|
||||||
|
self.currentControls.enableAvatarControls()
|
||||||
|
else:
|
||||||
|
print "Controls are already", name
|
||||||
else:
|
else:
|
||||||
print "Unkown controls:", name
|
print "Unkown controls:", name
|
||||||
|
|
||||||
def setSpeeds_new(self, toonForwardSpeed, toonJumpForce,
|
def setSpeeds(self, forwardSpeed, jumpForce,
|
||||||
toonReverseSpeed, toonRotateSpeed):
|
reverseSpeed, rotateSpeed):
|
||||||
assert self.notify.debugCall(id(self))
|
assert self.notify.debugCall(id(self))
|
||||||
for controls in self.controls.values():
|
for controls in self.controls.values():
|
||||||
controls.setWalkSpeed(
|
controls.setWalkSpeed(
|
||||||
toonForwardSpeed,
|
forwardSpeed, jumpForce, reverseSpeed, rotateSpeed)
|
||||||
toonJumpForce,
|
|
||||||
toonReverseSpeed,
|
|
||||||
toonRotateSpeed)
|
|
||||||
|
|
||||||
|
|
||||||
def useSwimControls(self):
|
#def useSwimControls(self):
|
||||||
assert self.notify.debugCall(id(self))
|
# assert self.notify.debugCall(id(self))
|
||||||
if self.currentControls is not self.swimControls:
|
# self.use("swim")
|
||||||
self.currentControls.disableAvatarControls()
|
|
||||||
self.currentControls.setCollisionsActive(0)
|
|
||||||
self.swimControls.setCollisionsActive(1)
|
|
||||||
self.currentControls = self.swimControls
|
|
||||||
if self.isEnabled:
|
|
||||||
self.currentControls.enableAvatarControls()
|
|
||||||
|
|
||||||
def useGhostControls(self):
|
#def useGhostControls(self):
|
||||||
assert self.notify.debugCall(id(self))
|
# assert self.notify.debugCall(id(self))
|
||||||
if self.currentControls is not self.ghostControls:
|
# self.use("ghost")
|
||||||
self.currentControls.disableAvatarControls()
|
|
||||||
self.currentControls.setCollisionsActive(0)
|
|
||||||
self.ghostControls.setCollisionsActive(1)
|
|
||||||
self.currentControls = self.ghostControls
|
|
||||||
if self.isEnabled:
|
|
||||||
self.currentControls.enableAvatarControls()
|
|
||||||
|
|
||||||
def useWalkControls(self):
|
#def useWalkControls(self):
|
||||||
assert self.notify.debugCall(id(self))
|
# assert self.notify.debugCall(id(self))
|
||||||
if self.currentControls is not self.walkControls:
|
# self.use("walk")
|
||||||
self.currentControls.disableAvatarControls()
|
|
||||||
self.currentControls.setCollisionsActive(0)
|
|
||||||
self.walkControls.setCollisionsActive(1)
|
|
||||||
self.currentControls = self.walkControls
|
|
||||||
if self.isEnabled:
|
|
||||||
self.currentControls.enableAvatarControls()
|
|
||||||
|
|
||||||
if __debug__:
|
#if __debug__:
|
||||||
def useDevControls(self):
|
# def useDevControls(self):
|
||||||
assert self.notify.debugCall(id(self))
|
# assert self.notify.debugCall(id(self))
|
||||||
if self.currentControls is not self.devControls:
|
# self.use("dev")
|
||||||
self.currentControls.disableAvatarControls()
|
|
||||||
self.currentControls.setCollisionsActive(0)
|
|
||||||
self.devControls.setCollisionsActive(1)
|
|
||||||
self.currentControls = self.devControls
|
|
||||||
if self.isEnabled:
|
|
||||||
self.currentControls.enableAvatarControls()
|
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
assert self.notify.debugCall(id(self))
|
assert self.notify.debugCall(id(self))
|
||||||
self.disable()
|
self.disable()
|
||||||
#self.monitorTask.remove()
|
#self.monitorTask.remove()
|
||||||
|
|
||||||
def setSpeeds(self, toonForwardSpeed, toonJumpForce,
|
|
||||||
toonReverseSpeed, toonRotateSpeed):
|
|
||||||
assert self.notify.debugCall(id(self))
|
|
||||||
self.swimControls.setWalkSpeed(
|
|
||||||
toonForwardSpeed,
|
|
||||||
toonJumpForce,
|
|
||||||
toonReverseSpeed,
|
|
||||||
toonRotateSpeed)
|
|
||||||
self.ghostControls.setWalkSpeed(
|
|
||||||
toonForwardSpeed,
|
|
||||||
toonJumpForce,
|
|
||||||
toonReverseSpeed,
|
|
||||||
toonRotateSpeed)
|
|
||||||
self.walkControls.setWalkSpeed(
|
|
||||||
toonForwardSpeed,
|
|
||||||
toonJumpForce,
|
|
||||||
toonReverseSpeed,
|
|
||||||
toonRotateSpeed)
|
|
||||||
if __debug__:
|
|
||||||
self.devControls.setWalkSpeed(
|
|
||||||
toonForwardSpeed,
|
|
||||||
toonJumpForce,
|
|
||||||
toonReverseSpeed,
|
|
||||||
toonRotateSpeed)
|
|
||||||
|
|
||||||
def getSpeeds(self):
|
def getSpeeds(self):
|
||||||
return self.currentControls.getSpeeds()
|
return self.currentControls.getSpeeds()
|
||||||
|
|
||||||
@ -197,41 +144,49 @@ class ControlManager:
|
|||||||
wallBitmask, floorBitmask, ghostBitmask, avatarRadius, floorOffset, reach = 4.0):
|
wallBitmask, floorBitmask, ghostBitmask, avatarRadius, floorOffset, reach = 4.0):
|
||||||
assert self.notify.debugCall(id(self))
|
assert self.notify.debugCall(id(self))
|
||||||
|
|
||||||
self.walkControls.initializeCollisions(cTrav, self.avatar,
|
swimControls=NonPhysicsWalker.NonPhysicsWalker()
|
||||||
wallBitmask, floorBitmask, avatarRadius, floorOffset, reach)
|
ghostControls=GhostWalker.GhostWalker()
|
||||||
self.walkControls.setAirborneHeightFunc(self.avatar.getAirborneHeight)
|
if __debug__:
|
||||||
self.walkControls.disableAvatarControls()
|
devControls=DevWalker.DevWalker()
|
||||||
self.walkControls.setCollisionsActive(0)
|
walkControls=GravityWalker.GravityWalker(
|
||||||
|
gravity = -32.1740 * 2.0) # * 2.0 is a hack;
|
||||||
|
|
||||||
self.swimControls.initializeCollisions(cTrav, self.avatar,
|
walkControls.initializeCollisions(cTrav, self.avatar,
|
||||||
wallBitmask, floorBitmask, avatarRadius, floorOffset, reach)
|
wallBitmask, floorBitmask, avatarRadius, floorOffset, reach)
|
||||||
self.swimControls.setAirborneHeightFunc(self.avatar.getAirborneHeight)
|
walkControls.setAirborneHeightFunc(self.avatar.getAirborneHeight)
|
||||||
self.swimControls.disableAvatarControls()
|
walkControls.disableAvatarControls()
|
||||||
self.swimControls.setCollisionsActive(0)
|
walkControls.setCollisionsActive(0)
|
||||||
|
|
||||||
self.ghostControls.initializeCollisions(cTrav, self.avatar,
|
swimControls.initializeCollisions(cTrav, self.avatar,
|
||||||
|
wallBitmask, floorBitmask, avatarRadius, floorOffset, reach)
|
||||||
|
swimControls.setAirborneHeightFunc(self.avatar.getAirborneHeight)
|
||||||
|
swimControls.disableAvatarControls()
|
||||||
|
swimControls.setCollisionsActive(0)
|
||||||
|
|
||||||
|
ghostControls.initializeCollisions(cTrav, self.avatar,
|
||||||
ghostBitmask, floorBitmask, avatarRadius, floorOffset, reach)
|
ghostBitmask, floorBitmask, avatarRadius, floorOffset, reach)
|
||||||
self.ghostControls.setAirborneHeightFunc(self.avatar.getAirborneHeight)
|
ghostControls.setAirborneHeightFunc(self.avatar.getAirborneHeight)
|
||||||
self.ghostControls.disableAvatarControls()
|
ghostControls.disableAvatarControls()
|
||||||
self.ghostControls.setCollisionsActive(0)
|
ghostControls.setCollisionsActive(0)
|
||||||
|
|
||||||
if __debug__:
|
if __debug__:
|
||||||
self.devControls.initializeCollisions(cTrav, self.avatar,
|
devControls.initializeCollisions(cTrav, self.avatar,
|
||||||
wallBitmask, floorBitmask, avatarRadius, floorOffset, reach)
|
wallBitmask, floorBitmask, avatarRadius, floorOffset, reach)
|
||||||
self.devControls.setAirborneHeightFunc(self.avatar.getAirborneHeight)
|
devControls.setAirborneHeightFunc(self.avatar.getAirborneHeight)
|
||||||
self.devControls.disableAvatarControls()
|
devControls.disableAvatarControls()
|
||||||
self.devControls.setCollisionsActive(0)
|
devControls.setCollisionsActive(0)
|
||||||
|
|
||||||
#self.walkControls.setCollisionsActive(1)
|
self.add(walkControls, "walk")
|
||||||
#self.walkControls.enableAvatarControls()
|
self.add(swimControls, "swim")
|
||||||
|
self.add(ghostControls, "ghost")
|
||||||
|
self.add(devControls, "dev")
|
||||||
|
|
||||||
|
self.currentControls=walkControls
|
||||||
|
|
||||||
def deleteCollisions(self):
|
def deleteCollisions(self):
|
||||||
assert self.notify.debugCall(id(self))
|
assert self.notify.debugCall(id(self))
|
||||||
self.walkControls.deleteCollisions()
|
for controls in self.controls.values():
|
||||||
self.swimControls.deleteCollisions()
|
controls.deleteCollisions()
|
||||||
self.ghostControls.deleteCollisions()
|
|
||||||
if __debug__:
|
|
||||||
self.devControls.deleteCollisions()
|
|
||||||
|
|
||||||
def collisionsOn(self):
|
def collisionsOn(self):
|
||||||
assert self.notify.debugCall(id(self))
|
assert self.notify.debugCall(id(self))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user