comparison orpg/mapper/miniatures_handler.py @ 140:e842a5f1b775 beta

Traipse Beta 'OpenRPG' {091123-00} Traipse is a distribution of OpenRPG that is designed to be easy to setup and go. Traipse also makes it easy for developers to work on code without fear of sacrifice. 'Ornery-Orc' continues the trend of 'Grumpy' and adds fixes to the code. 'Ornery-Orc's main goal is to offer more advanced features and enhance the productivity of the user. Update Summary (Beta) Added Bookmarks Fix to Remote Admin Commands Minor fix to text based Server Fix to Pretty Print, from Core Fix to Splitter Nodes not being created Fix to massive amounts of images loading, from Core Added 'boot' command to remote admin Added confirmation window for sent nodes Minor changes to allow for portability to an OpenSUSE linux OS Miniatures Layer pop up box allows users to turn off Mini labels, from FlexiRPG Zoom Mouse plugin added Images added to Plugin UI Switching to Element Tree Map efficiency, from FlexiRPG Added Status Bar to Update Manager default_manifest.xml renamed to default_upmana.xml Cleaner clode for saved repositories New TrueDebug Class in orpg_log (See documentation for usage) Mercurial's hgweb folder is ported to upmana Pretty important update that can help remove thousands of dead children from your gametree. Children, <forms />, <group_atts />, <horizontal />, <cols />, <rows />, <height />, etc... are all tags now. Check your gametree and look for dead children!! New Gametree Recursion method, mapping, and context sensitivity. !Infinite Loops return error instead of freezing the software! New Syntax added for custom PC sheets Tip of the Day added, from Core and community Fixed Whiteboard ID to prevent random line or text deleting. Modified ID's to prevent non updated clients from ruining the fix.
author sirebral
date Mon, 23 Nov 2009 03:36:26 -0600
parents dcf4fbe09b70
children 6081bdc2b8d5
comparison
equal deleted inserted replaced
135:dcf4fbe09b70 140:e842a5f1b775
418 # before getting the oldz to test 418 # before getting the oldz to test
419 # Save the selected minis current z-order 419 # Save the selected minis current z-order
420 oldz = self.sel_rmin.zorder 420 oldz = self.sel_rmin.zorder
421 # Make sure the mini isn't sticky front or back 421 # Make sure the mini isn't sticky front or back
422 if (oldz != MIN_STICKY_BACK) and (oldz != MIN_STICKY_FRONT): 422 if (oldz != MIN_STICKY_BACK) and (oldz != MIN_STICKY_FRONT):
423 ## print "old z-order = " + str(oldz)
424 self.sel_rmin.zorder -= 1 423 self.sel_rmin.zorder -= 1
425 # Re-collapse to normalize 424 # Re-collapse to normalize
426 # Note: only one update (with the final values) will be sent 425 # Note: only one update (with the final values) will be sent
427 self.canvas.layers['miniatures'].collapse_zorder() 426 self.canvas.layers['miniatures'].collapse_zorder()
428 427
432 # minis - 1. If this isn't the case, then execute 431 # minis - 1. If this isn't the case, then execute
433 # a self.canvas.layers['miniatures'].collapse_zorder() 432 # a self.canvas.layers['miniatures'].collapse_zorder()
434 # before getting the oldz to test 433 # before getting the oldz to test
435 # Save the selected minis current z-order 434 # Save the selected minis current z-order
436 oldz = self.sel_rmin.zorder 435 oldz = self.sel_rmin.zorder
437 ## print "old z-order = " + str(oldz)
438 self.sel_rmin.zorder += 1 436 self.sel_rmin.zorder += 1
439 437
440 # Re-collapse to normalize 438 # Re-collapse to normalize
441 # Note: only one update (with the final values) will be sent 439 # Note: only one update (with the final values) will be sent
442 self.canvas.layers['miniatures'].collapse_zorder() 440 self.canvas.layers['miniatures'].collapse_zorder()
450 # Save the selected minis current z-order 448 # Save the selected minis current z-order
451 oldz = self.sel_rmin.zorder 449 oldz = self.sel_rmin.zorder
452 450
453 # Make sure the mini isn't sticky front or back 451 # Make sure the mini isn't sticky front or back
454 if (oldz != MIN_STICKY_BACK) and (oldz != MIN_STICKY_FRONT): 452 if (oldz != MIN_STICKY_BACK) and (oldz != MIN_STICKY_FRONT):
455 ## print "old z-order = " + str(oldz)
456 # The new z-order will be one more than the last index 453 # The new z-order will be one more than the last index
457 newz = len(self.canvas.layers['miniatures'].miniatures) 454 newz = len(self.canvas.layers['miniatures'].miniatures)
458 ## print "new z-order = " + str(newz)
459 self.sel_rmin.zorder = newz 455 self.sel_rmin.zorder = newz
460 # Re-collapse to normalize 456 # Re-collapse to normalize
461 # Note: only one update (with the final values) will be sent 457 # Note: only one update (with the final values) will be sent
462 self.canvas.layers['miniatures'].collapse_zorder() 458 self.canvas.layers['miniatures'].collapse_zorder()
463 459
469 # before getting the oldz to test 465 # before getting the oldz to test
470 # Save the selected minis current z-order 466 # Save the selected minis current z-order
471 oldz = self.sel_rmin.zorder 467 oldz = self.sel_rmin.zorder
472 # Make sure the mini isn't sticky front or back 468 # Make sure the mini isn't sticky front or back
473 if (oldz != MIN_STICKY_BACK) and (oldz != MIN_STICKY_FRONT): 469 if (oldz != MIN_STICKY_BACK) and (oldz != MIN_STICKY_FRONT):
474 ## print "old z-order = " + str(oldz)
475 470
476 # Since 0 is the lowest in a normalized order, be one less 471 # Since 0 is the lowest in a normalized order, be one less
477 newz = -1 472 newz = -1
478 ## print "new z-order = " + str(newz)
479 self.sel_rmin.zorder = newz 473 self.sel_rmin.zorder = newz
480 # Re-collapse to normalize 474 # Re-collapse to normalize
481 # Note: only one update (with the final values) will be sent 475 # Note: only one update (with the final values) will be sent
482 self.canvas.layers['miniatures'].collapse_zorder() 476 self.canvas.layers['miniatures'].collapse_zorder()
483 477
484 elif id == MIN_FRONTBACK_UNLOCK: 478 elif id == MIN_FRONTBACK_UNLOCK:
485 #print "Unlocked/ unstickified..."
486 if self.sel_rmin.zorder == MIN_STICKY_BACK: self.sel_rmin.zorder = MIN_STICKY_BACK + 1 479 if self.sel_rmin.zorder == MIN_STICKY_BACK: self.sel_rmin.zorder = MIN_STICKY_BACK + 1
487 elif self.sel_rmin.zorder == MIN_STICKY_FRONT: self.sel_rmin.zorder = MIN_STICKY_FRONT - 1 480 elif self.sel_rmin.zorder == MIN_STICKY_FRONT: self.sel_rmin.zorder = MIN_STICKY_FRONT - 1
488 elif id == MIN_LOCK_BACK: self.sel_rmin.zorder = MIN_STICKY_BACK 481 elif id == MIN_LOCK_BACK: self.sel_rmin.zorder = MIN_STICKY_BACK
489 elif id == MIN_LOCK_FRONT: self.sel_rmin.zorder = MIN_STICKY_FRONT 482 elif id == MIN_LOCK_FRONT: self.sel_rmin.zorder = MIN_STICKY_FRONT
490 # Pretty much, we always want to refresh when we go through here 483 # Pretty much, we always want to refresh when we go through here
495 self.canvas.send_map_data() 488 self.canvas.send_map_data()
496 489
497 def on_miniature(self, evt): 490 def on_miniature(self, evt):
498 session = self.canvas.frame.session 491 session = self.canvas.frame.session
499 if (session.my_role() != session.ROLE_GM) and (session.my_role() != session.ROLE_PLAYER) and (session.use_roles()): 492 if (session.my_role() != session.ROLE_GM) and (session.my_role() != session.ROLE_PLAYER) and (session.use_roles()):
500 print session.my_role()
501 self.infoPost("You must be either a player or GM to use the miniature Layer") 493 self.infoPost("You must be either a player or GM to use the miniature Layer")
502 return 494 return
503 min_url = self.min_url.GetValue() 495 min_url = self.min_url.GetValue()
504 # build url 496 # build url
505 if min_url == "" or min_url == "http://": return 497 if min_url == "" or min_url == "http://": return
506 if min_url[:7] != "http://" : min_url = "http://" + min_url 498 if min_url[:7] != "http://" : min_url = "http://" + min_url
507 # make label 499 # make label
508 if self.auto_label: print 'auto-label'
509 if not self.auto_label: print 'False'
510 if self.auto_label and min_url[-4:-3] == '.': 500 if self.auto_label and min_url[-4:-3] == '.':
511 start = min_url.rfind("/") + 1 501 start = min_url.rfind("/") + 1
512 min_label = min_url[start:len(min_url)-4] 502 min_label = min_url[start:len(min_url)-4]
513 if self.use_serial: 503 if self.use_serial:
514 min_label = '%s %d' % ( min_label, self.canvas.layers['miniatures'].next_serial() ) 504 min_label = '%s %d' % ( min_label, self.canvas.layers['miniatures'].next_serial() )
515 else: min_label = "" 505 else: min_label = ""
516 if self.min_url.FindString(min_url) == -1: self.min_url.Append(min_url) 506 if self.min_url.FindString(min_url) == -1: self.min_url.Append(min_url)
517 try: 507 try:
518 id = 'mini-' + self.canvas.frame.session.get_next_id() 508 id = 'mini-' + self.canvas.frame.session.get_next_id()
519 # make the new mini appear in top left of current viewable map 509 # make the new mini appear in top left of current viewable map
520 print id
521 dc = wx.ClientDC(self.canvas) 510 dc = wx.ClientDC(self.canvas)
522 self.canvas.PrepareDC(dc) 511 self.canvas.PrepareDC(dc)
523 dc.SetUserScale(self.canvas.layers['grid'].mapscale,self.canvas.layers['grid'].mapscale) 512 dc.SetUserScale(self.canvas.layers['grid'].mapscale,self.canvas.layers['grid'].mapscale)
524 x = dc.DeviceToLogicalX(0) 513 x = dc.DeviceToLogicalX(0)
525 y = dc.DeviceToLogicalY(0) 514 y = dc.DeviceToLogicalY(0)
526 self.canvas.layers['miniatures'].add_miniature(id, min_url, pos=cmpPoint(x,y), label=min_label) 515 self.canvas.layers['miniatures'].add_miniature(id, min_url, pos=cmpPoint(x,y), label=min_label)
527 except: 516 except:
528 # When there is an exception here, we should be decrementing the serial_number for reuse!! 517 # When there is an exception here, we should be decrementing the serial_number for reuse!!
529 unablemsg= "Unable to load/resolve URL: " + min_url + " on resource \"" + min_label + "\"!!!\n\n" 518 unablemsg= "Unable to load/resolve URL: " + min_url + " on resource \"" + min_label + "\"!!!\n\n"
530 #print unablemsg
531 dlg = wx.MessageDialog(self,unablemsg, 'Url not found',wx.ICON_EXCLAMATION) 519 dlg = wx.MessageDialog(self,unablemsg, 'Url not found',wx.ICON_EXCLAMATION)
532 dlg.ShowModal() 520 dlg.ShowModal()
533 dlg.Destroy() 521 dlg.Destroy()
534 self.canvas.layers['miniatures'].rollback_serial() 522 self.canvas.layers['miniatures'].rollback_serial()
535 self.canvas.send_map_data() 523 self.canvas.send_map_data()
769 def infoPost(self, message): 757 def infoPost(self, message):
770 component.get("chat").InfoPost(message) 758 component.get("chat").InfoPost(message)
771 759
772 def role_is_gm_or_player(self): 760 def role_is_gm_or_player(self):
773 session = self.canvas.frame.session 761 session = self.canvas.frame.session
774 print session.my_role(), session.ROLE_GM
775 if (session.my_role() != session.ROLE_GM) and (session.my_role() != session.ROLE_PLAYER) and (session.use_roles()): 762 if (session.my_role() != session.ROLE_GM) and (session.my_role() != session.ROLE_PLAYER) and (session.use_roles()):
776 print 'role is gm or player'
777 self.infoPost("You must be either a player or GM to use the miniature Layer") 763 self.infoPost("You must be either a player or GM to use the miniature Layer")
778 return False 764 return False
779 return True 765 return True
780 766
781 def role_is_gm(self): 767 def role_is_gm(self):