# HG changeset patch # User sirebral # Date 1272876420 18000 # Node ID 6f460a73989e8cc2f502f7fd9cce16a75637def9 # Parent aa560066b1a043a576c056e777004aaceae57102 Traipse 'OpenRPG' {100503-02} 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 (Patch-2) New Features: New Namespace method with two new syntaxes New Namespace Internal is context sensitive, always! New Namespace External is 'as narrow as you make it' New Namespace FutureCheck helps ensure you don't receive an incorrect node New Namespace 2.0 documentation in the User Manual New Namespace plugin, Allows Traipse users to use the Standard syntax !@ :: @! New Mini Library with minis from Devin Knight New PluginDB access for URL2Link plugin New to Forms, they now show their content in Design Mode New to Update Manager, checks Repo for updates on software start New to Mini Lib node, change title in design mode New to Game Tree, never lose a node, appends a number to the end of corrupted trees New to Server GUI, Traipse Suite's Debug Console New Warhammer PC Sheet Updates: Update to White Board layer, uses a pencil image for color button Update to Grid Layer, uses a grid image for color button Update to Chat Window, size of drop down menus Update to default lobby message Update to template Text node Update to 4e PC Sheet node Update to how display names are acquired Update to Server, added some 'Pious' technology Update to features node Fixes: Fix to Server GUI startup errors Fix to Server GUI Rooms tab updating Fix to Chat and Settings if non existant die roller is picked Fix to Dieroller and .open() used with .vs(). Successes are correctly calculated Fix to Alias Lib's Export to Tree, Open, Save features Fix to alias node, now works properly Fix to Splitter node, minor GUI cleanup Fix to Backgrounds not loading through remote loader Fix to Node name errors Fix to rolling dice in chat Whispers Fix to Splitters Sizing issues Fix to URL2Link plugin, modified regex compilation should remove memory leak Fix to mapy.py, a roll back due to zoomed grid issues Fix to whiteboard_handler, Circles work by you clicking the center of the circle Fix to Servers parse_incoming_dom which was outdated and did not respect XML Fix to a broken link in the server welcome message Fix to InterParse and logger requiring traceback Fix to Update Manager Status Bar Fix to failed image and erroneous pop up Fix to Mini Lib node that was preventing use Fix to plugins that parce dice but did not call InterParse Fix to nodes for name changing by double click Fix to Game Tree, node ordering on drag and drop corrected Fix to Game Tree, corrupted error message was not showing Fix to Update Manager, checks for internet connection Fix to Update Manager, Auto Update corrections Fix to Server GUI's broadcast, room, player messaging Daily-01: Figured out, this time, why the version file is copied. because of the linux .py~ files. Daily-02: Incomplete feature node updates, sorry. Should be a complete transition after this. Files in the update: Currently selected branch: ornery-orc Author: sirebral Files Modified (in update): data/tips.txt images/draw.png images/grid.png orpg/chat/chatwnd.py orpg/chat/commands.py orpg/dieroller/base.py orpg/dieroller/rollers/std.py orpg/gametree/gametree.py orpg/gametree/nodehandlers/chatmacro.py orpg/gametree/nodehandlers/containers.py orpg/gametree/nodehandlers/core.py~ orpg/gametree/nodehandlers/forms.py orpg/gametree/nodehandlers/minilib.py orpg/gametree/nodehandlers/minilib.py~ orpg/gametree/nodehandlers/rpg_grid.py orpg/main.py orpg/mapper/background.py orpg/mapper/grid_handler.py orpg/mapper/map.py orpg/mapper/whiteboard_handler.py orpg/networking/mplay_server.py orpg/networking/mplay_server_gui.py orpg/orpg_version.py orpg/pluginhandler.py orpg/templates/default_LobbyMessage.html orpg/templates/feature.xml orpg/templates/nodes/4e_char_sheet.xml orpg/templates/nodes/Warhammerv2CS2-Traipse.xml orpg/templates/nodes/split.xml orpg/templates/nodes/textctrl.xml orpg/tools/InterParse.py orpg/tools/aliaslib.py orpg/tools/orpg_log.py orpg/tools/orpg_settings.py plugins/xxhiddendice.py plugins/xxsimpleinit.py plugins/xxstdnamespace.py plugins/xxurl2link.py readme.txt rollback.py start_developer.py start_noupdate.py upmana/updatemana.py diff -r aa560066b1a0 -r 6f460a73989e orpg/orpg_version.py --- a/orpg/orpg_version.py Mon May 03 03:38:02 2010 -0500 +++ b/orpg/orpg_version.py Mon May 03 03:47:00 2010 -0500 @@ -4,7 +4,7 @@ #BUILD NUMBER FORMAT: "YYMMDD-##" where ## is the incremental daily build index (if needed) DISTRO = "Traipse" DIS_VER = "Ornery Orc" -BUILD = "100503-00" +BUILD = "100503-02" # This version is for network capability. PROTOCOL_VERSION = "1.2" diff -r aa560066b1a0 -r 6f460a73989e orpg/templates/feature.xml --- a/orpg/templates/feature.xml Mon May 03 03:38:02 2010 -0500 +++ b/orpg/templates/feature.xml Mon May 03 03:47:00 2010 -0500 @@ -65,40 +65,84 @@ - - Persistant users who wanted the stability of Traipse and the ease of Namespace have described to me how they envision Namespace should work. When I heard this I immediately realized that my method provided the aspects users wanted, but not simplicity in design this method would provide. The Traipse Namespace is a little different than Standard but it offers more stability in it's approach + Namespace 2.0 - There are two methods provided with the Traipse Namespace, and these two allow you to a great deal of control when you choose to use Namespace to reference your nodes. +Internal Namespace: !=NodeName=! or !=GridName::Row,Colum=! +External Namespace: !&Container::NodeName&! or !&Container::GridName::Row,Colum&! + +Namespace 2.0 now has two different ways of finding nodes in your gametree: Internal and +External. The new version will find nodes differently based on which method you use. With External you start looking from the gametree but can define a "container" to be more specific. With Internal you start looking from the "node" the reference is in and look through the tree backwards. You can now reference cells within a grid using either. -There is only one difference in how these two methods work, so once you get the hang of Namespace, you will always know how it works. The difference is, External starts looking from the Game Tree and gets more narrow where as Internal starts from the node it is inside and searchs backwards getting more broad. - - - Namespace Internal: -(Syntax) !=Node=! +*An explanation of terms* +Gametree: The list of objects on the left-hand side of the window that holds all your nodes. +Node: Refers to any object in the gametree. +Container: Refers only to those nodes that are capable of storing other nodes (Splitter, +Tabbers, Folder, Forms, etc.). Used here, it usually refers to the largest container, i.e. the +one that shows up in the gametree when fully collapsed. A Container can contain other +containers. +Internal Namespace: !=NodeName=! +-Used from within a node to call another node in the same container, such as a list node +calling a text node or grid. *Note* Will not work if multiple nodes within the same container +have the same name. Multiple nodes within the entirety of the gametree can have the same names +though as long as they are in different containers. +-Uses the !=NodeName=! syntax for normal nodes. +-Uses !=GridName::Row,Colum=! to reference cells within a grid + +Examples: +!=Strength=! +(Will find the node named “Strength” in the same container and insert it in place of +!=Strength=!) -Usage: When you use Namespace Internal the software finds the tree map of the node and searches for the top node. Once that node is found it will iterate through the node and look for the reference you have assigned. If it cannot find it in that node, then it will iterate through the map, finding all successive nodes and searching them +!=Ability Scores::3,5=! +(Will find cell in Row number 3 and Colum number 5 and insert the information contained there +in place of !=Ability Scores::3,5=! )External Namespace: !&Container::NodeName&! +-Can only be used from chat (currently) to call a node from anywhere in the gametree. You must +specify the container the node is in. You only have to specify the ‘largest’ container +(typically the one that shows in the gametree when fully collapsed). It doesn’t matter how +many smaller containers within the same container it’s in, you need only reference the +largest. *Note* Will not work if multiple nodes within the same container have the same name. +Multiple nodes within the entirety of the gametree can have the same names though as long as +they are in different containers. +-Uses the !&Container::NodeName&! syntax for normal nodes. +-Uses !&Container::NodeName::Row,Colum&! to reference cells within a grid. - Namespace Internal is completely context sensitive. You can assign a reference using the Namespace Internal method and it will always find the correct PC Sheet to search in. - -Namespace Internal must be used from within a node. +Examples: +!&3.5 Character Sheet::Strength&! +(Will find the node named “Strength” within the larger container “3.5 Character Sheet” and +insert it in place of !&3.5 Character Sheet::Strength&!) -Namespace External: -(Syntax) !&Top Node::Node&! +!&3.5 Character Sheet::Ability Scores::3,5&! +(Will find the cell in Row 3, Colum 5 in within the larger container “3.5 Character Sheet” and +insert its contents in place of !&3.5 Character Sheet::Ability Scores::3,5&!)Other Notes: +If you have similar nodes (i.e. have a lot of the same node names in them) located within the +same Larger container, Internal Namespace will still work as normal. With External Namespace, +you will have to specify which of the smaller containers you wish to call from. -Usage: Namespace External is a different approach to Namespace. With Namespace External you can use the syntax in chat or in other nodes to cross reference nodes. Instead of External being context sensitive, External uses a broadscope that you can narrow down. +For example, if you have a folder container that has two nodes in it, Internal will still work +fine from within either. However, if you are trying to use External, it you will have to +specify which of smaller containers you want like so: +!&LargerContainer::SmallerContainer::NodeName&! - It is really easy to narrow down External. External doesn't work like a string, it works like a lightning bolt. To get a good example open up the 4e PC Sheet node that comes with Traipse and try some different commands in chat. +I.E.: +The Largest container is called “Character Sheets.” It contains three other, Smaller +containers called “Luke,” “Leia,” and “Vader.” If you want to call the “Strength” node located +in “Leia” you will have to specify it like so: !&Character Sheets::Leia::Strength&!. The Namespace 2.0 is so far my greatest gift to OpenRPG. Namespace 2.0 surpasses the other Namespaces styles because it has a lightning bolt effect. + +In 1.7.1 you could use a reference such as !@Name@! to get the name of the Behir (Example Node). The biggest problem with the Namespace was it would only look at the top most node. + +Traipse changes how Namespace works by allowing users to be more specific without needing to be too specific. Namespace 2.0 works in a similar fashion, by finding the top most node with a similar name and attempting to use it. Yet, if you want to be more specific you can add node names to the reference and Namespace will find them in order. + +Below are some examples uses of the new Namespace. To try them out, create a 4e PC Sheet node and press the Send button. <b>1:</b> !&4e PC Sheet::Slot 1&! -<b>2:</b> !&4e PC Sheet::Belt:: Slot 1&! +<b>2:</b> !&4e PC Sheet::Belt::Slot 1&! <b>3:</b> !&4e PC Sheet::Inventory&! <b>4:</b> !&4e PC Sheet::Inventory::Slot 1&! Did you see what happened with the last two? Thankfully there is more than one way to get a node! -(Create a 4e PC Sheet node from the Templates and press Send ---v to try it) - - +(Create a 4e PC Sheet node from the Templates and press Send ---v to try it) + Grids can now be called from by adding a Row, Column to the end of the grid reference. Example: !&Abilities::2,2&! @@ -518,12 +562,14 @@ - - - + + + + +