<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace V5 Site Server v5.13.166 (http://www.squarespace.com) on Wed, 19 Jun 2013 00:21:56 GMT--><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>MiceOnABeam</title><link>http://www.miceonabeam.com/miceonabeam-blog/</link><description>Latest MiceOnABeam News</description><lastBuildDate>Thu, 25 Apr 2013 01:28:33 +0000</lastBuildDate><copyright></copyright><language>en-US</language><generator>Squarespace V5 Site Server v5.13.166 (http://www.squarespace.com)</generator><item><title>MiceOnABeam Release v1.0.4</title><category>Code Completion</category><category>Hover Tooltips</category><category>LSL Actions</category><category>LSL Code Editor</category><category>Syntax Highlighting</category><category>Type Checking</category><category>v1.0.4</category><dc:creator>Antonius Frentis</dc:creator><pubDate>Wed, 24 Apr 2013 23:58:34 +0000</pubDate><link>http://www.miceonabeam.com/miceonabeam-blog/2013/4/24/miceonabeam-release-v104.html</link><guid isPermaLink="false">417049:4772989:33431328</guid><description><![CDATA[<p>Version 1.0.4 of the MiceOnABeam Visual Scripting Tool for the Second Life&reg; World has been released. All existing users can download it <a href="http://www.miceonabeam.com/downloads/">here</a>. This new version features a much improved LSL code editor which I'm sure you'll all love. It also has been fully updated with the latest LSL system functions and constants so that you can take advantage of the newest capabilities in SL.</p>
<p>An overview of the key enhancements is provided below. For full details please see the <a class="offsite-link-inline" href="https://miceonabeam.fogbugz.com/default.asp?W145" target="_blank">Release Notes</a> and the <a class="offsite-link-inline" href="https://miceonabeam.fogbugz.com/default.asp?W1" target="_blank">Product Documentation</a>.</p>
<p><strong style="font-size: 110%;">Enhanced LSL Code Editor</strong></p>
<p>The built-in LSL Code Editor has been significantly improved with the addition of several features which improve the readability of entered code, provide for easy access to descriptions of variables, functions and constants within the code and perform more extensive checking of the code for errors. For full details see <a class="offsite-link-inline" href="https://miceonabeam.fogbugz.com/default.asp?W52" target="_blank">Using the Code Editor</a>.</p>
<p><strong>Color Syntax Highlighting</strong></p>
<p>The first thing you will notice when opening the new code editor is that it now provides color highlighting of all the LSL syntax elements. This dramatically improves the readability of code.</p>
<p><span style="color: black;"><span class="full-image-block ssNonEditable"><img src="http://www.miceonabeam.com/storage/SyntaxHighlighting.png?__SQUARESPACE_CACHEVERSION=1366849699751" alt="" /></span></span></p>
<p><span style="color: black;"><a href="http://miceonabeam.us1.list-manage1.com/track/click?u=047765c27d148bf4086285af8&amp;id=e9f7ed724c&amp;e=591e526c9c" target="_blank"></a></span></p>
<p>In addition, you can place the cursor to the right of a starting or ending bracket including (), {}, and &lt;&gt; to highlight both brackets which is really helpful to ensure that a complex LSL expression has been formulated properly or simply to find the other end of a code block of interest.</p>
<p>If desired, you can disable Syntax Highlighting by de-selecting <em>Show syntax highlighting </em>in the <a class="offsite-link-inline" href="https://miceonabeam.fogbugz.com/default.asp?W56" target="_blank">Code Editor panel</a> of the <em>Options </em>dialog.</p>
<p><strong>Type Checking</strong></p>
<p>All LSL code is now fully type-checked, capturing errors that were previously only reported when the code was saved in the Second Life Code Editor. In particular, errors will be flagged whenever incompatible data is assigned to a variable or passed as an argument to an LSL function or user-defined state function.</p>
<p><span style="color: black;"><span class="thumbnail-image-block ssNonEditable"><a href="javascript:showFullImage('/display/ShowImage?imageUrl=%2Fstorage%2FLSLTypeChecking.png%3F__SQUARESPACE_CACHEVERSION%3D1366850618779',309,850);"><img src="http://www.miceonabeam.com/storage/thumbnails/4581835-22536821-thumbnail.jpg?__SQUARESPACE_CACHEVERSION=1366850618779" alt="" /></a></span> </span></p>
<p>Aside from type checking, the enhanced syntax checker will also flag non-critical <em>Warnings</em>. Warnings are generated for local variables that are declared but never used, or used but not previously initialized. As well, obvious cases of unreachable code will be flagged. You can disable the detection and display of warnings by de-selecting <em>Show Warnings </em>in the <a class="offsite-link-inline" href="https://miceonabeam.fogbugz.com/default.asp?W50" target="_blank">Code Generation panel</a> of the <em>Options </em>menu.</p>
<p><strong>Code Completion</strong></p>
<p>Several improvements have been made to the Code Completion feature. All variables and functions within scope are now included in the Code Completion popup, including Custom Globals, State Variables &amp; Functions, Local Declarations as well as LSL System Functions and Constants. Also the type signature is now shown for any selected item in the Code Completion popup.</p>
<p style="text-align: left;"><span style="color: black;"><span class="full-image-block ssNonEditable"><img src="http://www.miceonabeam.com/storage/CodeCompletion.png?__SQUARESPACE_CACHEVERSION=1366849741543" alt="" /></span><strong> </strong></span></p>
<p style="text-align: left;"><strong>Hover ToolTips</strong></p>
<p>Whenever the mouse cursor hovers over a variable, constant or function, a pop-up help tooltip will now be displayed showing the data type and description (if any) of the element. This is really helpful when reviewing your code, reminding you of the type and description of variables and functions that you have defined as well as for LSL system functions and constants.</p>
<p><span style="color: black;"><span class="thumbnail-image-block ssNonEditable"><a href="javascript:showFullImage('/display/ShowImage?imageUrl=%2Fstorage%2FHoverTooltips.png%3F__SQUARESPACE_CACHEVERSION%3D1366849763072',164,863);"><img src="http://www.miceonabeam.com/storage/thumbnails/4581835-22536824-thumbnail.jpg?__SQUARESPACE_CACHEVERSION=1366849763073" alt="" /></a></span></span></p>
<p>These hover tips are enabled by default, but can be disabled by de-selecting <em>Show coding hover tips </em>in the <a class="offsite-link-inline" href="https://miceonabeam.fogbugz.com/default.asp?W56" target="_blank">Code Editor panel</a> of the <em>Options </em>menu.</p>
<p><strong>Selected Text Highlighting</strong></p>
<p>Whenever text is selected, other instances of that same text will also be highlighted. You can also <em>Tab</em> (or <em>Enter </em>key) forward or backward (using the <em>Shift </em>key) between highlighted items. This is a great and easy way to do a quick search on an item to see where else it has been used in the code segment!</p>
<p><span style="color: black;"><a href="http://miceonabeam.us1.list-manage.com/track/click?u=047765c27d148bf4086285af8&amp;id=9c1064a942&amp;e=591e526c9c" target="_blank"></a></span></p>
<p><span style="color: black;"><span class="thumbnail-image-block ssNonEditable"><a href="javascript:showFullImage('/display/ShowImage?imageUrl=%2Fstorage%2FSelectionSearch.png%3F__SQUARESPACE_CACHEVERSION%3D1366849937425',324,826);"><img src="http://www.miceonabeam.com/storage/thumbnails/4581835-22536826-thumbnail.jpg?__SQUARESPACE_CACHEVERSION=1366849937427" alt="" /></a></span><br /> </span>This feature can be disabled by de-selecting <em>Show extended selection highlighting </em>in the <a class="offsite-link-inline" href="https://miceonabeam.fogbugz.com/default.asp?W56" target="_blank">Code Editor panel</a> of the <em>Options </em>dialog.</p>
<p><strong>Find/Replace Dialog</strong></p>
<p>You can now search longer segments of code using the new Find/Replace feature. From within the Code Editor, open the dialog by pressing <em>CTRL-F</em> to find some text or <em>CTRL-H</em> to both find and replace some text. In the dialog box you can select various options for the search (match case, whole word, etc.) and click the appropriate button to either find the next occurrence of the text, replace the found text with the text in the Replace with: field, or replace all occurrences of the text with the replacement text.</p>
<p style="text-align: center;"><img src="http://www.miceonabeam.com/storage/FindReplace.png?__SQUARESPACE_CACHEVERSION=1366848464111" alt="" /></p>
<p>There is a single Find/Replace dialog box for all open LSL Code Editors, however the dialog box is linked to only a single code editor at a time. This link is shown in the title bar of the dialog. You can switch the Find/Replace dialog box to another Code Editor by simply clicking within the desired editor or pressing <em>CTRL-F</em> or <em>CTRL-H</em> from it.</p>
<p><strong style="font-size: 110%;">New LSL Actions</strong></p>
<p>With this release many new LSL Actions have been provided, including those that can be used to transfer money, move an object within a region, and override a default animation. Of particular interest are the set of new actions that have been provided to support the great new <a class="offsite-link-inline" href="http://wiki.secondlife.com/wiki/Pathfinding_in_Second_Life" target="_blank">SL Pathfinding</a> feature!</p>
<p><span style="color: black;"><span class="full-image-block ssNonEditable"><img src="http://www.miceonabeam.com/storage/CreatePathfindingCharacter.png?__SQUARESPACE_CACHEVERSION=1366849682374" alt="" /></span></span></p>
<p>In addition to the new LSL Actions, three new library components have been included; <em>GetInput</em>: Provides for textbox input to your script, <em>SendHTTP</em>: Sends an http request to the specified URL, and <em>ReadNotecard</em>: Reads the lines from a notecard into your script.</p>
<p><strong style="font-size: 110%;">User Interface Improvements</strong></p>
<p>Several user interface improvements have also been made, including some suggestions provided by MOAB users! In particular, the capping of state notation is now configurable. In the previous release, properties shown on a state component had each line capped to a fixed number of characters. Now there is a new configuration item, <em>Cap Notation </em>within the <a class="offsite-link-inline" href="https://miceonabeam.fogbugz.com/default.asp?W55" target="_blank">States panel</a> of the <em>Options </em>menu. By default, this option is enabled. However when disabled, as much text as the state's width allows will be displayed for each line of property information.</p>
<p style="text-align: center;"><span style="color: black;"><span class="full-image-block ssNonEditable"><img src="http://www.miceonabeam.com/storage/StateNotation.png?__SQUARESPACE_CACHEVERSION=1366848525619" alt="" /></span></span></p>
<p>The <em>Show Comment </em>button in the <a class="offsite-link-inline" href="https://miceonabeam.fogbugz.com/default.asp?W15#toc_12" target="_blank">State Editor</a> toolbar has been renamed to <em>Show Info</em>. After selecting <em>Show Info </em>and hovering over a state, the resulting pop-up will show the complete Entry &amp; Exit Action code for the state. In this way a model's code can be more easily scanned without having to repeatedly open and close state Property Editors.</p>
<p>Another handy improvement is that the script version of a MiceOnABeam model is now shown in the title bar of the top level State Editor. Additionally, the <em>Major Version </em>number can now be set to 0;</p>
<p style="text-align: center;"><span style="color: black;"><span class="full-image-block ssNonEditable"><img src="http://www.miceonabeam.com/storage/VersionNumber.png?__SQUARESPACE_CACHEVERSION=1366848573563" alt="" /></span></span></p>
<p style="text-align: left;">Finally, the <a class="offsite-link-inline" href="https://miceonabeam.fogbugz.com/default.asp?W123" target="_blank">Code Generation Errors List</a> will now flag non-critical <em>Warnings </em>separate from <em>Errors</em>. In addition you can sort any column by clicking the column header. Clicking the same column header again will reverse the sort.</p>
<p><span style="color: black;"> </span></p>
<p><span style="color: black;"><a href="http://miceonabeam.us1.list-manage.com/track/click?u=047765c27d148bf4086285af8&amp;id=68c86a71d4&amp;e=591e526c9c" target="_blank"></a></span></p>
<p><span style="color: black;"> <span class="thumbnail-image-block ssNonEditable"><a href="javascript:showFullImage('/display/ShowImage?imageUrl=%2Fstorage%2FCodeGenerationErrorsList.png%3F__SQUARESPACE_CACHEVERSION%3D1366849964703',394,920);"><img src="http://www.miceonabeam.com/storage/thumbnails/4581835-22536885-thumbnail.jpg?__SQUARESPACE_CACHEVERSION=1366849964704" alt="" /></a></span></span></p>
<p><span style="color: black;"><br /> </span></p>]]></description><wfw:commentRss>http://www.miceonabeam.com/miceonabeam-blog/rss-comments-entry-33431328.xml</wfw:commentRss></item><item><title>Compiling Large Scripts Generated from MiceOnABeam</title><category>large scripts</category><category>limits</category><category>memory</category><category>stack-heap</category><dc:creator>Antonius Frentis</dc:creator><pubDate>Thu, 10 Jan 2013 02:10:17 +0000</pubDate><link>http://www.miceonabeam.com/miceonabeam-blog/2013/1/9/compiling-large-scripts-generated-from-miceonabeam.html</link><guid isPermaLink="false">417049:4772989:32515279</guid><description><![CDATA[<p>There are two key limits that govern the compilation and execution of  LSL scripts generated by MiceOnABeam. Firstly, the memory allocated in  SL to the running script cannot be larger than 64KB. This memory  includes the compiled code together with any dynamic memory required by  variables and related calculations. If this limit is exceeded, the  script will abort with a "Stack-Heap Collision" error.</p>
<p>Secondly, the Second Life LSL code editor has a limit of  approximately 64KB of  characters. This includes all code together with  all comments. The editor will not accept any characters beyond this  limit preventing you from even compiling a large script!</p>
<p>Fortunately there are several things you can try to address these limits.</p>
<p>Selecting the optimized version of <em>Generate LSL </em>in MiceOnABeam  significantly reduces the amount of LSL code generated which helps the script  live within both character  &amp; memory limits.</p>
<p>Further, the most expensive modeling features in terms of script size  are Composite States, Deep or Shallow History Points and Group  Transitions. Each  use of these can add considerable length to the  generated code.  Judicious use of these features can significantly help.</p>
<p>With respect to actual coding and memory requirements for variable manipulations, these <a href="http://wiki.secondlife.com/wiki/LSL_Script_Memory" target="_blank">memory guidelines</a> are worth reviewing.</p>
<p>Additionally for un-optimized generated code, you can try to get a script that exceeds the editor's character limit  to  compile within SL (so that you can use the built-in MOAB <a href="https://miceonabeam.fogbugz.com/default.asp?W46" target="_blank">tracing   features</a>), by de-selecting <em>Include Section Comments</em> &amp; <em>Include   User Comments</em> within the <a href="https://miceonabeam.fogbugz.com/default.asp?W50" target="_blank">code generation options</a> panel. This reduces  the source code by eliminating comments.</p>
<div id="item2045734" class="body">
<p>Finally, there is also a way to increase the number  of characters that the Second Life &amp; Firestorm LSL editors support.</p>
<p>The workaround  involves editing an XML configuration file in the  installation directory  for SL or Firestorm respectively. The file to  edit is called  panel_script_ed.xml. It can be found within the  appropriate skins  subdirectory depending on the preferences set for  your viewer.</p>
<p>For example, using the default skin with the English language for the Second Life viewer, the path would be: <br />C:\Program Files (x86)\SecondLifeViewer\skins\default\xui\en</p>
<p>For Firestorm, using the Firestorm skin with the English language, the path would be:<br />C:\Program Files (x86)\Firestorm-Release\skins\firestorm\xui\en</p>
<p>Then change the attribute <em>max_length</em> within the tag <em>text_editor</em> from "65536" to "1000000" as shown <a class="offsite-link-inline" rel="nofollow" href="http://screencast.com/t/mxzP07sy1M" target="_blank">here</a>.</p>
<p>Note  you will require administrator privileges to edit the file and  that you  should use an XML-aware editor (such as Notepad++) to make the  change.</p>
<p>Please remember however, that increasing this limit only allows you  to enter  more LSL source code (including comments) into the  SL/Firestorm editor.  It does <strong>NOT </strong>increase the amount of run-time memory  available for the  script which remains at 64KB.</p>
</div>]]></description><wfw:commentRss>http://www.miceonabeam.com/miceonabeam-blog/rss-comments-entry-32515279.xml</wfw:commentRss></item><item><title>Using MiceOnABeam to Create the MOAB Universal All-In-One Door</title><category>Composite State</category><category>Door Bashing</category><category>Group Transition</category><category>Lock Picking</category><category>MOAB HUD Door Server</category><category>MOAB Role Play Add-On</category><category>MOAB Universal</category><category>MOAB Universal All-In-One Door</category><category>Rotator</category><category>Slider</category><dc:creator>Antonius Frentis</dc:creator><pubDate>Fri, 14 Sep 2012 20:18:02 +0000</pubDate><link>http://www.miceonabeam.com/miceonabeam-blog/2012/9/14/using-miceonabeam-to-create-the-moab-universal-all-in-one-do.html</link><guid isPermaLink="false">417049:4772989:28889039</guid><description><![CDATA[<p><strong><span style="font-size: 110%;">MOAB Universal Rotator and Slider</span></strong></p>
<p>Following the last release of MiceOnABeam Visual Scripting Tool, I had developed and released for sale a couple of building components that I thought people would find useful, namely the <a class="offsite-link-inline" href="http://bit.ly/Ja385X" target="_blank">MOAB Universal Rotator</a> and the <a class="offsite-link-inline" href="http://bit.ly/JgKVBH" target="_blank">MOAB Universal Slider</a>.</p>
<p>The Rotator is a simple door-like script which will swing any prim on any side or edge! The Slider is similar<span class="full-image-float-right ssNonEditable"><span><a href="http://www.screencast.com/t/3jmVr51c2LGe" target="_blank"><img src="http://www.miceonabeam.com/storage/blogs/Rotator.png?__SQUARESPACE_CACHEVERSION=1347667518419" alt="" /></a></span></span> except it slides in any direction (up to 27!). While there are many swing door scripts available, it's hard to find one that actually works like a real door which swings on the hinged-edge rather than the center of the selected side.</p>
<p>Best of all it works at any rotation, linked or unlinked and no path cuts are required so it works with sculpts and mesh designs without cumbersome work-arounds! Fully configurable via notecard with no scripting required, it features automatic close, lock/unlock, optional sounds/messages and a chat command interface. Supports multiple synchronized doors too! This <a class="offsite-link-inline" href="http://bit.ly/QmkAEi" target="_blank">review</a> by a happy customer says it best. These neat low-overhead scripts provide an easy way to add swinging or sliding motions to any of your creations in Second Life.</p>
<p><strong><span style="font-size: 110%;">MOAB Universal All-In-One Door</span></strong></p>
<p>I've taken these simple rotator and slider components considerably further with the release recently of a comprehensive solution for doors which includes scripts for a fully featured door, an add-on for Role Play features and a HUD door server to control all the doors on a single sim.</p>
<p>The <a class="offsite-link-inline" href="http://bit.ly/OoGD0W" target="_blank">MOAB Universal All-In-One Door</a> scripts build upon all the Rotator features, including the same accurate hinge operation for the swing movement, but also can be configured for most any other door type including swing, pivot (swing at offset from edge), slide, curtain, iris (opens/closes like an eye's iris), clock (opens/closes via a prim cut up to 360 degrees) and transparent. Access control is provided via a Whitelist, Blacklist or SL Group for security management.</p>
<p>The <a class="offsite-link-inline" href="http://bit.ly/PaRMzc" target="_blank">MOAB Door Role Play Add-On</a> scripts add <strong>Lock Picking</strong>, <strong>Key Passing</strong> and <strong>Door Bashing/Repairing</strong> <span class="full-image-float-right ssNonEditable"><span><a href="http://www.screencast.com/t/LwptwHYjlD2" target="_blank"><img src="http://www.miceonabeam.com/storage/blogs/RolePlayPics.png?__SQUARESPACE_CACHEVERSION=1347667548788" alt="" /></a></span></span>features to the All-In-One Door. You can also get the role play features along with the door scripts with the <a class="offsite-link-inline" href="http://bit.ly/RFkHz0" target="_blank">MOAB Universal All-In-One Role Play Door</a>. Lock picking is straightforward: After pre-configured delays, subsequent touches increase the chance of success to unlock the door. Door Bashing permits multiple avatars to simultaneously bash or repair the door, keeping track of each one to ensure only a single strike/repair from each avatar within the configured time interval. Damage calculations are based on door size and material together with the momentum of the collision. Other features include timed automatic repair, enforced maximum distance and configurable sounds and more. All of this, together with bash sounds and smoke provide for realistic role play.</p>
<p>All doors on a single sim can be centrally controlled with the secure <a class="offsite-link-inline" href="http://bit.ly/TIejYq" target="_blank">MOAB HUD Door Server</a>. In addition to a centralized Whitelist/Blacklist that can be sent to any or all doors, you can open/close, lock/unlock or reset any individual door or all doors. What's really awesome is that you can attach the server as a HUD and use it to teleport to any door and thereby visit every door on the sim in turn! As an added bonus, purchase of the server includes free updates for the server and MOAB Universal Door and Role Play scripts!</p>
<p><strong><span style="font-size: 110%;">A Peek into the Implementation</span></strong></p>
<p>I often get asked, "How large and complex a design can be developed with MiceOnABeam?". Well the answer is that you can capture a fairly large amount of functionality within a single MOAB model using the graphical notation and detailed actions with LSL code or using the <a class="offsite-link-inline" href="http://bit.ly/QMk4l2" target="_blank">LSL Action Wizard</a>. However all large designs require proper partitioning into multiple modules for increased clarity and flexibility and the same applies to MiceOnABeam. Further, LSL memory limitations (max 64K per Mono script) also play an important role in deciding how to partition a large set of functional requirements into multiple communicating MOAB models (and resulting LSL scripts).</p>
<p>So I thought I'd give you all a peek into how I partitioned the implementation of the above products into their respective MOAB models and further provide some insight into several MOAB design techniques.</p>
<p>While a simple open and close door is an easy design exercise, once you start adding features, things can start to get large and complicated really quickly. One classic software technique is to separate out UI (User Interface) requirements from the core functionality. A number of classic software patterns exist for this (including <a class="offsite-link-inline" href="http://bit.ly/PeDDRN" target="_blank">MVC</a>).</p>
<p>I partially followed this separation of concerns when developing the door model, by splitting off the functionality which handles the configuration of the door, the chat command interface and the communication with the Door Server into one MOAB model, <em>MOABDoorConfig</em>, and the core functionality for the door (i.e., open/close, lock/unlock) into another model, <em>MOABDoor</em>. This separation also facilitates a deployment optimization whereby the <em>MOABDoorConfig</em> script can be omitted in all but one of identically configured doors in a synchronized multi-door scenario thereby helping to reduce memory requirements.</p>
<p style="text-align: center;"><strong>MOABDoorConfig</strong></p>
<p><strong> </strong></p>
<p style="text-align: center;"><strong><span class="full-image-block ssNonEditable"><span><a href="http://www.screencast.com/t/nqEz527B" target="_blank"><img src="http://www.miceonabeam.com/storage/blogs/MOABDoorConfig.png?__SQUARESPACE_CACHEVERSION=1347667578035" alt="" /></a></span></span></strong></p>
<p><strong> </strong></p>
<p>The <em>MOABDoorConfig</em> model (shown above) has three main functional areas that are clearly evident using MiceOnABeam's graphical notation. The <em>ReadNotecard</em> state and associated <a class="offsite-link-inline" href="http://bit.ly/SLXQDf" target="_blank">Choice Points</a>, <em>C</em> and <em>C1</em> handle the reading and processing of the two notecards, <em>DoorOptions</em> and <em>AccessList</em>.</p>
<p>Note that <em>ReadNotecard</em> is a <a class="offsite-link-inline" href="http://bit.ly/OvetRR" target="_blank">Composite State</a>, containing <span class="full-image-float-right ssNonEditable"><span><a href="http://www.screencast.com/t/RL2ogi7v7q" target="_blank"><img style="width: 350px;" src="http://www.miceonabeam.com/storage/blogs/ReadNotecard.png?__SQUARESPACE_CACHEVERSION=1347667615232" alt="" /></a></span></span>the details of it's implementation inside. Composite States are not only useful in applying common event handling to a subset of states but also hide additional details so that only the right amount of information is shown at every level of the model thereby increasing visual clarity.</p>
<p>Each notecard is processed in turn and when done, the <em>Init</em> <a class="offsite-link-inline" href="http://bit.ly/RXnfaA" target="_blank">transition</a> is taken which completes initialization based on the options and moves the model into the <em>Idle</em> state.</p>
<p>From <em>Idle</em>, the <em>Cmd</em> and <em>ServerCmd</em> transitions each <a class="offsite-link-inline" href="http://bit.ly/NsHA6Y" target="_blank">listen</a> for chat messages from the user and Door Server respectively. The <a class="offsite-link-inline" href="http://bit.ly/RXnfaA" target="_blank">Guard Condition</a> of each transition tests to see if the current listen event is on the channel of interest and if so, that transition path is taken. In each case the message data is parsed and the Guard Condition of each transition outgoing from the <em>CmdTest</em> and <em>Server</em> Choice Points respectively tests for it's command and the appropriate action is then carried out. Both <em>Reset</em> commands are connected to the state's <a class="offsite-link-inline" href="http://bit.ly/SLY3GF" target="_blank">border</a> which the directs the program flow back to the <a class="offsite-link-inline" href="http://bit.ly/PqLDx3" target="_blank">Initial Point</a> (large black dot at the top left) to re-initialize the model. Note also the use of the <a class="offsite-link-inline" href="http://bit.ly/PBoD1U" target="_blank">Junction Points</a> <em>J</em> and <em>J1</em> to join together <a class="offsite-link-inline" href="http://bit.ly/QZZIqI" target="_blank">curved transitions</a> to help keep the diagram clean.</p>
<p style="text-align: center;"><strong>MOABDoor</strong></p>
<p style="text-align: center;"><span class="full-image-block ssNonEditable"><span><a href="http://www.screencast.com/t/46qRNvwXP" target="_blank"><img style="width: 720px;" src="http://www.miceonabeam.com/storage/blogs/MOABDoor.png?__SQUARESPACE_CACHEVERSION=1347667640034" alt="" /></a></span></span></p>
<p>The <em>MOABDoor</em> model (shown above) is pretty straightforward. Two states, <em>Opened</em> and <em>Closed</em> represent the state of the door and the transitions between them, <em>Open</em>, <em>Close</em> and <em>timer</em>, are triggered by the <a class="offsite-link-inline" href="http://bit.ly/OoUi2s" target="_blank">touch-end</a> event and the <a class="offsite-link-inline" href="http://bit.ly/TTPQzu" target="_blank">timer</a> event respectively. Note the exact same event, namely touch_end, is handled in a different manner depending on which state the model was in when the event was received; one of the hallmarks of a state-oriented design.</p>
<p>The <em>MOABDoor</em> model also responds to internal <a class="offsite-link-inline" href="http://bit.ly/R0dbyM" target="_blank">link_message</a> events from the <em>MOABDoorConfig</em> model to open/close or lock/unlock the door. <em>MOABDoorConfig</em> sends these events in response to chat commands from the user or directed chat from the Door Server (using <a class="offsite-link-inline" href="http://bit.ly/Pgruvt" target="_blank">llRegionSayTo()</a>). Recall that link messages can be sent to any one or all of the prims in a linkset. In this case the <em>MOABDoorConfig</em> script sends the message to the same prim that it is in. This illustrates how models can take advantage of the inherent message broadcast capability of the LSL run-time system. There is additional processing overhead associated with this technique, but it's benefit in loosely coupling design components offers a compelling advantage in many circumstances.</p>
<p>As well <em>MOABDoor</em> responds to chat from other doors arranged as multi-doors. These commands are then parsed and processed in the same way as described earlier for the <em>MOABDoorConfig</em> model. The <em>Resume</em> Choice Point is then used to direct the model to the correct state after processing the command.</p>
<p style="padding-left: 30px;">►<strong>Advanced Note</strong>: A more conceptually correct approach would have been to have the OpenCmd and CloseCmd transition transition directly to the Open and Closed states respectively with the remaining commands routed to a <a class="offsite-link-inline" href="http://bit.ly/NsGLLj" target="_blank">ShallowHistory</a> node (to return to whatever state the model was in last). The current approach was taken as an optimization to reduce the amount of code generated. Such compromises sometimes just have to be made.</p>
<p style="text-align: center;"><strong>MOABRolePlay</strong></p>
<p style="text-align: center;"><span class="full-image-block ssNonEditable"><span><a href="http://www.screencast.com/t/G52qiQ9SJzdE" target="_blank"><img style="width: 720px;" src="http://www.miceonabeam.com/storage/blogs/RolePlay.png?__SQUARESPACE_CACHEVERSION=1347667677408" alt="" /></a></span></span></p>
<p>The Role Play feature is structured as an add-on to the basic door and so has two separate MOAB models for it's implemention. The division in functionality follows that of the door, a <em>MOABRolePlayConfig</em> model to handle the chat command interface and configuration, and the <em>MOABRolePlay</em> model to handle the Lock Picking and Door Bashing features. Taking a look at <em>MOABRolePlay</em> (shown above), you can see the three areas of functionality, for Lock Picking, Door Bashing and Command Processing for handling messages from the <em>MOABRolePlayConfig</em> script and other multi-doors.</p>
<p>Door Bashing is triggered by a collision as captured in the <a class="offsite-link-inline" href="http://bit.ly/R5uusN" target="_blank">collision_start</a> transition which initializes the bash response. Note that the transition originates on the top state's border and so operates as a <a class="offsite-link-inline" href="http://bit.ly/O42VVX" target="_blank">Group Transition</a> which means the event can occur within any of the (sub)states of the outer state (in this case, the top state). Further collision_start events are handled from the <em>DoorBash</em> state via the self-transition for it. Choice Point <em>C1</em> receives <em>touch_end</em> and <em>timer</em> events to repair the damaged door and if repaired, directs the model to the <em>Idle</em> state.</p>
<p style="text-align: center;"><span class="full-image-block ssNonEditable"><span><a href="http://www.screencast.com/t/0FJ5NwrRwVH5" target="_blank"><img src="http://www.miceonabeam.com/storage/blogs/LockPick.png?__SQUARESPACE_CACHEVERSION=1347667702863" alt="" /></a></span></span></p>
<p>The <em>LockPick</em> state is entered upon receiving an internal <em>AccessDenied</em> link_message event which is issued by the <em>MOABDoor</em> script whenever someone is denied access. <em>LockPick</em> is a Composite State whose contents contain the detailed steps for the lock picking sequence (shown above). Here the model steps through the transitions representing the lock pick sequence triggered by touch_end and timer events. Of interest is the <a class="offsite-link-inline" href="http://bit.ly/NsIEYu" target="_blank"><em>no_sensor</em></a> transition which operates as a Group Transition to end the lock picking if the user moves away from the door.</p>
<p><strong> </strong></p>
<p style="text-align: center;"><strong><strong>DoorServerMenu</strong></strong></p>
<p><strong> </strong></p>
<p>&nbsp;</p>
<p style="text-align: center;"><span class="full-image-block ssNonEditable"><span><a href="http://www.screencast.com/t/3HfnikVO" target="_blank"><img style="width: 720px;" src="http://www.miceonabeam.com/storage/blogs/DoorServerMenu.png?__SQUARESPACE_CACHEVERSION=1347667731331" alt="" /></a></span></span></p>
<p>Finally, the MOAB HUD Door Server is divided into two models, <em>DoorServerMenu</em> which handles the user menu system and <em>DoorServer</em> which handles the core server functionality and communication with the doors. The model for the user interface is fairly complex (shown above) and shows how MiceOnABeam can accomodate the design for the three system menus and how they interconnect via Next and Prev button selections on the menu dialog.</p>
<p>So there you have it, a brief look into how some of the major features of the MOAB Universal Door and related products were designed using the MiceOnABeam Visual Scripting Tool. While it's great to help get users started with LSL scripting, MiceOnABeam can also be used to implement some pretty sophisticated functionality.</p>
<p><strong> </strong></p>
<p><strong><strong><span style="font-size: 110%;">Next Up</span></strong></strong></p>
<p><strong> </strong></p>
<p>&nbsp;</p>
<p>Next up for MiceOnABeam will be a new release in the Fall that updates the program with some bug fixes together with the latest functions added to LSL over the past months.</p>
<p>&nbsp;</p>]]></description><wfw:commentRss>http://www.miceonabeam.com/miceonabeam-blog/rss-comments-entry-28889039.xml</wfw:commentRss></item><item><title>Accessing Event Arguments in MiceOnABeam v1.0.3</title><category>Choice Point</category><category>Event Arguments</category><category>v1.0.3</category><dc:creator>Antonius Frentis</dc:creator><pubDate>Thu, 12 Jan 2012 18:25:28 +0000</pubDate><link>http://www.miceonabeam.com/miceonabeam-blog/2012/1/12/accessing-event-arguments-in-miceonabeam-v103.html</link><guid isPermaLink="false">417049:4772989:14552808</guid><description><![CDATA[<p>Over the next while I want to illustrate some of the new features available in  MiceOnABeam v1.0.3.</p>
<p>In v1.0.3 event arguments can now be directly accessed from the outgoing  transitions of a Choice Point, instead of having to first save them in a state  variable within the action code of the transition incoming to the Choice Point.  This is true as long as there is only a single incoming transition and it has an  event assigned.</p>
<p>Applying this to the model developed in the MiceOnABeam Basics  video tutorial, we no longer have to save the <em>data </em>argument in the <em>Line </em>state variable in the <em>dataserver </em>transition. We can now access <em>data </em>directly in the <em>GetNextLine </em>and <em>Done </em>transitions.</p>
<p><span class="full-image-block ssNonEditable"><span><img src="http://content.screencast.com/users/MiceOnABeam/folders/MUG/media/75674bac-ff8d-4e56-8d61-77b31340fe8d/Choice%20Point%20Event%20Data.png?__SQUARESPACE_CACHEVERSION=1326393794690" alt="" /></span></span></p>
<p>Additionally as v1.0.3 now allows multiple bends within a transition, we  added an additional curved bend to the <em>Done </em>transition to pretty up the  diagram.</p>
<p><span class="full-image-block ssNonEditable"><span><img src="http://www.miceonabeam.com/picture/securedoorv103.png?pictureId=12820200&amp;asGalleryImage=true&amp;__SQUARESPACE_CACHEVERSION=1326393316447" alt="" /></span></span></p>
<p>You can download an updated version of the Secure Door model from the video tutorial <a href="http://www.miceonabeam.com/storage/model-library/v103/video-models/SecureDoorV103.dat">here</a>.</p>]]></description><wfw:commentRss>http://www.miceonabeam.com/miceonabeam-blog/rss-comments-entry-14552808.xml</wfw:commentRss></item><item><title>MiceOnABeam Release v1.0.3</title><dc:creator>Antonius Frentis</dc:creator><pubDate>Thu, 29 Dec 2011 14:38:24 +0000</pubDate><link>http://www.miceonabeam.com/miceonabeam-blog/2011/12/29/miceonabeam-release-v103.html</link><guid isPermaLink="false">417049:4772989:14368134</guid><description><![CDATA[<p>I'm proud to have (finally!) released version 1.0.3 of the MiceOnABeam Visual  Scripting Tool, for the Second Life&reg; World!. All users should <a style="color: #800000; font-weight: normal; text-decoration: underline;" href="http://www.miceonabeam.com/downloads/">download</a> this latest release. It's chock-full of improvements including some new features  that I'm sure you'll love.<br /><br />An overview of what's new is provided below.  For full details please see the <a style="color: #800000; font-weight: normal; text-decoration: underline;" href="https://miceonabeam.fogbugz.com/default.asp?W122">Release  Notes</a> and the <a style="color: #800000; font-weight: normal; text-decoration: underline;" href="https://miceonabeam.fogbugz.com/default.asp?W1">Product  Documentation</a>.<br /><br />If you're an existing user you can just download the  new release and run the installer over the existing installation. For those of  you who have purchased the Professional version (thanks!), your existing license  file will continue to work with the new release.<br /><br />(<strong>NOTE</strong>:  For those of you who participated in the beta of v1.0.3, you must first manually  uninstall the beta release via Add/Remove programs or equivalent, before running  the installer for v1.0.3)<br /><br /><strong>New Error List Window for Code  Generation Errors</strong><br />A new error reporting system has been put in place  that makes it easier to find and correct LSL syntax and variable/function  declaration errors directly from within MiceOnABeam and before exporting the  generated code to your virtual world.<br /><br />While LSL errors continue to be  flagged inline whenever a Properties Editor is saved, the entire model is now  re-checked upon generating the LSL code and a summary of outstanding LSL errors  are listed in a new <span class="uvb"><em>Code Generation Errors</em></span><em> </em>window.<br /><br /></p>
<div style="text-align: center;"><span class="full-image-block ssNonEditable"><span><img src="http://gallery.mailchimp.com/047765c27d148bf4086285af8/files/CodeGenErrors1C.png?__SQUARESPACE_CACHEVERSION=1325170331824" alt="" /></span></span></div>
<div style="text-align: center;"></div>
<p>From here you can select an error and go to the  modeling component of interest. As well you can open up the corresponding  Properties Editor which will display the error message right at the point in the  LSL code where the error was found. You can then fix the error and quickly  regenerate the code by selecting the <em>Refresh </em>button on the Code  Generation Errors window to update the error list.<br /><br /></p>
<div style="text-align: center;"><img style="border: 0pt solid;" src="http://gallery.mailchimp.com/047765c27d148bf4086285af8/files/CodeGenErrors2B.png" border="0" alt="Code Editor" width="575" height="260" /></div>
<p><br /><strong>Undeclared LSL Variables &amp; Functions  are now flagged</strong><br />References to <span class="undefined">undeclared LSL  variables and functions </span>are now detected and flagged as errors both when  the Properties Editor is saved and again upon generation of the LSL code for the  model (in conjunction with the new <em>Code Generation Errors window </em>as  shown above).<br /><br />Local variables that are multiply declared within the same  local scope of an LSL code segment will also be flagged as  errors.<br /><br /><strong>Multi-Segment Straight or Curved Transitions with  Auto-Align</strong><br />You are now able to create <span class="undefined">multiple  straight or curved segments </span>for a transition! In previous releases there  was only a single Selection Handle for a transition which you could then click  and drag to create a curved bend in the transition.<br /><br />To create an  additional Selection Handle press and hold the <em>Control </em>key and click on  the desired location on a selected transition. Then click and drag the new  Selection Handle to create the new bend. To delete a Selection Handle, just  <em>Control</em>-click it.<br /><br />In addition if you would prefer straight line  segments instead of curves for a particular transition, de-select <em>Smooth  Transition </em>from it's context menu.<br /><br />To align a particular line or  curved segment of a transition to either a horizontal or vertical position, just  hold down the <em>Shift </em>key when clicking and dragging a Selection Handle  to the nearest horizontal or vertical plane. Note that alignment is always done  one segment at a time, from the selected Selection Handle to the adjacent handle  (towards the starting point of the transition).<br /><br />Finally you can move the  display of the transition's label to another Selection Handle by holding down  both the <em>Control </em>&amp; <em>Shift </em>keys and then clicking on the  desired Selection Handle.<br /><br />Those graphic designers among you can now  really let your artistic side flourish! Me- not so much :-(<br /><br /></p>
<div style="text-align: center;"><img style="width: 581px; height: 526px; border: 0px solid;" src="http://gallery.mailchimp.com/047765c27d148bf4086285af8/files/MultiSegment1.png" alt="Multi-Segment Transitions" width="581" height="526" /></div>
<p><br /><strong>New State Explorer</strong><img style="width: 325px; float: right; height: 387px; border: 0px solid;" src="http://gallery.mailchimp.com/047765c27d148bf4086285af8/files/StateExplorer1.png" alt="State Explorer" width="325" height="387" align="right" /><br />In a more complex model consisting of several Composite  States, it can be tedious to traverse the nested state hierarchy to get to the  particular state of interest.<br /><br />The new <span class="uvb">State  Explorer</span> feature addresses this by providing a tree-like view of the  model's state hierarchy so that you can easily zero-in on the exact part of your  model that you wish to examine.<br /><br />Aside from just viewing the state  hierarchy, you can also open up a State, Properties, Comment or State  Variable/Functions editor from the context menu for a selected state in the  State Explorer.<br /><br /><br /><br /><br /><strong>New Junction Point Modeling  Component</strong><br />A new toolbar component <img src="https://miceonabeam.fogbugz.com/default.asp?pg=pgDownload&amp;pgType=pgWikiAttachment&amp;ixAttachment=534&amp;sFileName=JunctionPseudostate.bmp" border="0" alt="" />called  a&nbsp;<em><span class="uvb">Junction Point</span></em><em> </em>is now available to  help build your script models.<br /><br />Similarly to an Entry/Exit Point the  Junction Point can be used to merge several input transitions into a single  output transition.&nbsp; However a Junction Point is not limited to a state's border  and can be created anywhere within a State Editor. It can really help de-clutter  model diagrams by reducing the extent of transition lines.<br /><br /></p>
<div style="text-align: center;"><img style="width: 510px; height: 369px; border: 0px solid;" src="http://gallery.mailchimp.com/047765c27d148bf4086285af8/files/JunctionPoint1C.png" alt="Junction Point" width="510" height="369" /></div>
<p><br /><span class="subTitle" style="font-style: normal; font-family: Georgia; color: #000000; font-size: 14px; font-weight: bold;">And More...</span><br />Release v1.0.3 has lots more,  including:</p>
<ul>
<li>New Icon Displayed for State with State Variables or State Functions </li>
<li>State Variables &amp; Functions Can Now be Moved or Copied Between States </li>
<li>Direct Access to Event Arguments Now Provided in Choice Point Outgoing  Transitions </li>
<li>Wildcard characters Now Accepted Within Search Strings </li>
<li>Larger Area Now Provided for State Variables in editor </li>
<li>UI enhancements. </li>
</ul>
<p><br /><span class="subTitle" style="font-style: normal; font-family: Georgia; color: #000000; font-size: 14px; font-weight: bold;">Upcoming</span><br />Next up I'll be focusing on enhancing the  built-in library of LSL Actions and re-usable MiceOnABeam model components to  help people get started. I'll also be developing a training class for new users  and additional How-To videos to illustrate the use of specific  features.<br /><br />As a reminder of support options, for starters there's the <a style="color: #800000; font-weight: normal; text-decoration: underline;" href="http://world.secondlife.com/group/70ed1e15-0f77-f756-9675-5f2d047592d2">MiceOnABeam</a> group in Second Life. I encourage you all to use it for Q&amp;A with other group  members as well as myself. For more detailed Q&amp;A you can always post in the  <a style="color: #800000; font-weight: normal; text-decoration: underline;" rel="nofollow" href="http://www.miceonabeam.com/forums/">forums</a> on the MiceOnABeam website or contact <a style="color: #800000; font-weight: normal; text-decoration: underline;" rel="nofollow" href="http://www.miceonabeam.com/support/">MiceOnABeam Support</a>. To report a product-related problem,  please send an email to <a style="color: #800000; font-weight: normal; text-decoration: underline;" href="mailto:support@miceonabeam.com?subject=Help%21">support@miceonabeam.com</a>,  or click <a style="color: #800000; font-weight: normal; text-decoration: underline;" href="http://www.miceonabeam.com/send-problem-report/">Send  Problem Report</a> for a convenient form.<br /><br />Merry Xmas!<br /><br />Antonius</p>]]></description><wfw:commentRss>http://www.miceonabeam.com/miceonabeam-blog/rss-comments-entry-14368134.xml</wfw:commentRss></item><item><title>MiceOnABeam v1.0.3 Beta Anyone?</title><dc:creator>Antonius Frentis</dc:creator><pubDate>Tue, 01 Nov 2011 21:54:26 +0000</pubDate><link>http://www.miceonabeam.com/miceonabeam-blog/2011/11/1/miceonabeam-v103-beta-anyone.html</link><guid isPermaLink="false">417049:4772989:13556555</guid><description><![CDATA[<p>MiceOnABeam v1.0.3 has just started integration testing and is ready for a short beta trial. I'm looking for a few existing users who are interested in trying out the latest and greatest features.<br /><br />If you are a regular user or plan to use the program over the next two weeks, please send an email to support@miceonabeam.com and I'll send you the info to access the beta. No need to do anything special for the beta; just use it as you would normally and report any issues via email.<br /><br />Full details on the release are available here: <a class="offsite-link-inline" href="http://bit.ly/vhtC42" target="_blank">http://bit.ly/vhtC42</a><br /><br />If all goes well, I expect to run the beta for two weeks or so, ending with the official release of v1.0.3.<br /><br />Thanks for helping out!<br /><br />Antonius</p>]]></description><wfw:commentRss>http://www.miceonabeam.com/miceonabeam-blog/rss-comments-entry-13556555.xml</wfw:commentRss></item><item><title>Sneak Peek Part II for MOAB v1.0.3</title><dc:creator>Antonius Frentis</dc:creator><pubDate>Mon, 26 Sep 2011 18:12:16 +0000</pubDate><link>http://www.miceonabeam.com/miceonabeam-blog/2011/9/26/sneak-peek-part-ii-for-moab-v103.html</link><guid isPermaLink="false">417049:4772989:12988046</guid><description><![CDATA[<p>Feature development for the upcoming v1.0.3 has finally finished! I was a bit slower getting things done with the hot summer (@Pilot: Yes I know 30C is cold to you! :-), but I'm really happy with the results.</p>
<p>As promised with the earlier <a href="http://www.miceonabeam.com/miceonabeam-blog/2011/8/9/sneak-peek-at-some-moab-v103-features.html">Sneek Peek for v1.0.3.</a> here's a quick review of the latest features to have been completed.</p>
<p><strong>Flagging of Undeclared LSL Variables/Functions</strong></p>
<p>Long-awaited by most MOAB users I'm sure, v1.0.3<strong>. </strong>will now flag all undeclared LSL variables and functions as errors. This will reduce the occurence of generating the LSL from MOAB and then going into SL only to get a syntax error reported in the code editor there. See: <a class="offsite-link-inline" href="http://screencast.com/t/qnJ8Y15vg" target="_blank">http://screencast.com/t/qnJ8Y15vg</a>.</p>
<p><strong>Junction Point</strong></p>
<p>The Junction Point is a new modeling feature that allows you to merge multiple incoming transitions into a single outgoing one. It will be great to help declutter model diagrams. See: <a class="offsite-link-inline" href="http://screencast.com/t/3FanYhnmFxGh" target="_blank">http://screencast.com/t/3FanYhnmFxGh</a>.</p>
<p><strong>State Variables/Functions Icon</strong></p>
<p>With this new feature a special icon will show on those states which have State Variables or State Functions defined. Now you can quickly look over a model and see where your variables and functions are defined. Further the icon will display at the bottom of a State Editor that is opened on a Composite State if that state has state variables/functions defined. See: <a class="offsite-link-inline" href="http://screencast.com/t/2X5gg0ef2t" target="_blank">http://screencast.com/t/2X5gg0ef2t</a>.</p>
<p><strong>Extended Comments</strong></p>
<p><a class="offsite-link-inline" href="http://screencast.com/t/2X5gg0ef2t" target="_blank">http://screencast.com/t/2X5gg0ef2t</a> also shows how modeling component comments can be extended to display additional design information for states and transitions. By using the Show Comments toolbar button <span class="full-image-inline ssNonEditable"><span><img style="width: 20px;" src="http://www.miceonabeam.com/storage/Info36.bmp?__SQUARESPACE_CACHEVERSION=1317073586720" alt="" /></span></span>, you'll be able to see a list of handled events, state variables &amp; functions, simply by moving the mouse over the component of interest.</p>
<p>This will also work for the State Variables/Functions Icon shown at the bottom of the State Editor for composite states as shown in <a class="offsite-link-inline" href="http://screencast.com/t/ssoYPBBRHB" target="_blank">http://screencast.com/t/ssoYPBBRHB</a>.</p>
<p><strong>Multi-Segment Transitions</strong></p>
<p>In previous releases, there was only a single Selection Handle for a transition which you could then click and drag to create a curved bend in the transition. Now you'll be able to create multiple straight or curved segments for a transition!<br /><br />In addition if you would prefer straight line segments instead of curves you can select that option from the transition's menu.<br /><br />Additional new capabilities include being able to align a particular line or curved segment of a transition to either a horizontal or vertical position, and to move the display of the transition's label to a different point on the transition.&nbsp;&nbsp;</p>
<p>See: <a class="offsite-link-inline" href="http://screencast.com/t/8fi2XxhSX " target="_blank">http://screencast.com/t/8fi2XxhSX</a>&nbsp; for examples of these. You can even let your artistic side flourish when drawing your models. See: <a class="offsite-link-inline" href="http://screencast.com/t/4bBSIPtiy6N" target="_blank">http://screencast.com/t/4bBSIPtiy6N</a>.</p>
<p>Still a fair bit of cleanup and testing to be done. I anticipate a release early November.&nbsp; If anyone is interested in beta-trialling the new release, please drop me a note at support@miceonabeam.com and let's chat.</p>
<p>Antonius</p>]]></description><wfw:commentRss>http://www.miceonabeam.com/miceonabeam-blog/rss-comments-entry-12988046.xml</wfw:commentRss></item><item><title>Sneak peek at some MOAB v1.0.3 features</title><category>new release</category><category>v1.0.3</category><dc:creator>Antonius Frentis</dc:creator><pubDate>Tue, 09 Aug 2011 16:46:30 +0000</pubDate><link>http://www.miceonabeam.com/miceonabeam-blog/2011/8/9/sneak-peek-at-some-moab-v103-features.html</link><guid isPermaLink="false">417049:4772989:12463316</guid><description><![CDATA[<p>I've posted a few graphics of some of the new features that I've been working on for the upcoming v1.0.3. Take a look.</p>
<h4><strong>State Explorer</strong></h4>
<p>Here's the new State Explorer: <a class="offsite-link-inline" href="http://screencast.com/t/ldGOojlyDQ" target="_blank">http://screencast.com/t/ldGOojlyDQ</a></p>
<p>You will be able to open a <em>State Explorer </em>on any State Editor and it will show a tree of all the nested states. You can hide/display each level and open up a menu for each item. See: <a class="offsite-link-inline" href="http://screencast.com/t/cUtMS7sN" target="_blank">http://screencast.com/t/cUtMS7sN</a></p>
<p>From there you can open up various editors relating to the State.</p>
<h4><strong>Error Reporting</strong></h4>
<p>For the next feature I put in a new error reporting system for the code generation which will now check all LSL code in the model at code generation time for syntax errors, undeclared variables (new!) and validate LSL Actions. See: <a class="offsite-link-inline" href="http://screencast.com/t/0IN2Uc8hVuy" target="_blank">http://screencast.com/t/0IN2Uc8hVuy</a></p>
<p>This should save being surprised in SL with a syntax error after copying the generated code. From the error dialog you can open up the containing State Editor for the component as well as the actual properties editor.</p>
<p>This shows the modified code windows and how errors will be shown after being selected from the error list dialog. See: <a class="offsite-link-inline" href="http://screencast.com/t/gx7PN2OSQy" target="_blank">http://screencast.com/t/gx7PN2OSQy</a></p>
<p>Note that code lines are now numbered!</p>
<h4><strong>Direct Access to Event Arguments</strong></h4>
<p>Lastly (for now) is the feature that will allow you to directly access event arguments from the transitions leaving a Choice Point (if that Choice Point only has a single transition into it). See: <a class="offsite-link-inline" href="http://screencast.com/t/mKtcPk4iN4c5" target="_blank">http://screencast.com/t/mKtcPk4iN4c5</a></p>
<p>The graphic is from the door script from one of the tutorial videos. Note that in the <em>Done </em>transition you can now directly reference the data argument of the <em>dataserver </em>event of the transition leading into the Choice Point. I think that will remove alot of confusion for new users to MOAB who would naturally expect to access the arguments in this situation directly.</p>
<p>I'll post more info on additional features as they continue to be developed for v1.0.3.</p>
<p>Antonius</p>
<p>&nbsp;</p>]]></description><wfw:commentRss>http://www.miceonabeam.com/miceonabeam-blog/rss-comments-entry-12463316.xml</wfw:commentRss></item><item><title>New Video Tutorials! "MiceOnABeam Basics"</title><dc:creator>Antonius Frentis</dc:creator><pubDate>Mon, 13 Jun 2011 00:32:39 +0000</pubDate><link>http://www.miceonabeam.com/miceonabeam-blog/2011/6/12/new-video-tutorials-miceonabeam-basics.html</link><guid isPermaLink="false">417049:4772989:11776303</guid><description><![CDATA[<p>I've just completed a three-part video tutorial which covers the  basic modeling concepts of MiceOnABeam through the construction of a  model for a secure door script.</p>
<p>Using just the three modeling components of States, Transitions and  Choice Points, you can build the model along with the tutorial and  create a useful script for yourself in Second Life.</p>
<p>Check it out <a href="http://www.miceonabeam.com/video-tutorials/">here</a>.</p>]]></description><wfw:commentRss>http://www.miceonabeam.com/miceonabeam-blog/rss-comments-entry-11776303.xml</wfw:commentRss></item><item><title>New MiceOnABeam Demo Video</title><category>demo</category><category>video</category><dc:creator>Antonius Frentis</dc:creator><pubDate>Fri, 15 Apr 2011 01:56:34 +0000</pubDate><link>http://www.miceonabeam.com/miceonabeam-blog/2011/4/14/new-miceonabeam-demo-video.html</link><guid isPermaLink="false">417049:4772989:11162065</guid><description><![CDATA[<p>Check out the <a href="http://www.miceonabeam.com/demo-video-high-quality/">new video </a>on MiceOnABeam, which provides a basic introduction and demo.<br /><br />A lower quality version is available on <a href="http://www.youtube.com/watch?v=LBA8wvoA9EI">YouTube</a>.<br /><br />Video star I'm not!&nbsp; LOL.&nbsp; But hopefully you'll all enjoy it and find it useful.<br /><br />- Antonius</p>]]></description><wfw:commentRss>http://www.miceonabeam.com/miceonabeam-blog/rss-comments-entry-11162065.xml</wfw:commentRss></item></channel></rss>