Skip to content

WalkTheWeb v3.6.2

Compare
Choose a tag to compare
@adishno adishno released this 01 Apr 14:33
· 150 commits to WalkTheWeb since this release
306a2a7

Release Date: 4/1/2023
By Aaron Dishno Ed.D.

This software is a hosting software for 3D Websites as part of 3D Internet Metaverse that combine 3D Gaming with 3D Shopping. It is a 3D CMS for 3D Games and 3D Plugins.

Demo 3D Website: https://3d.walktheweb.com/

This release focuses on the mobile experience, avatar click and rotation movement, 3D Forms, and Select Avatar 3D Form.

Here are the details for this release:

Added Animations, Hovers, and Click Functions - We added animations, hovers, and click functions for the 3D Form close buttons. This includes the references to the materials for color changes. All but one of the close buttons are named button-close and button-closetext. The remaining button is called button-closeloginmenu and button-closeloginmenutext since that form has a different pattern of visibility based on when the Enter Button alone is shown.

Hidden Form Fields are now Changed - The hidden form fields used to feed the 3D Text Fields are no longer the type hidden, now are type text and are hidden by moving them to an absolute position above the visible screen. This allows the text box to receive focus and open the keyboard on mobile devices.

Added Close Buttons to 3D Forms - To make it easy to cancel a 3D Form, we added an animated 3D Button to close the 3D Form on all of the 3D Forms (Login Menu, Login, Create Account, Recover Password, User Menu, and Select My Avatar).

Added Direction to Tab Next Field - We added a direction variable to the tab next field function (tabNextField(zdirection) that will now process a negative direction as going backwards through the tab order array.

Added Global Text Cursor - We added a global variable for the text cursor position: WTW.textCursor. This is used to mark the cursor position within a field value.

Added Cursor Functionality - We added cursor functionality. You can now use left and right arrow keys to move the cursor, shift-Tab or up arrow will move the focus to the previous input element, Tab or down arrow will move the focus to the next input element, del will remove the letter in front of the cursor, and backspace will remove the letter before the cursor.

Swipe Movement Function - Since the swipe direction changes as you move your avatar, we added a separate swipe function to determine the movement added to the avatar specifically for rotation left, right, up and down. These are some experimental settings. For left and right, the 1/5 sides of the screen will rotate in a run mode (faster) while the closer to center moves in a walk mode (slower) for rotation, and the center will not rotate left or right. For up and down, Movement to the top or bottom will look up and down, while near the center will move toward centering the camera once again.

Interval Timer added to Input Moving - While you hold the mouse down or the touch down, we added an interval timer so that the key pressed continues to activate until you release the mouse or touch. Previously, it was only sending the key pressed while you were in movement.

Mouse Timestamp and Clicks - We added a new global variable WTW.mouseTimestamp that is used to determine if the mouse down to mouse up time is less than 350 ms and should considered a click. This keeps the click event from processing unless it is just a click with no hold. This same timer process also catches the difference in a touch and hold vs a touch and release.

Disable Side Swipe Refresh on Mobile - In order to improve the swiping ability on Mobile devices, we disabled the Side Swipe page refresh by containing the over scroll behavior for the x direction in the stylesheet.

Portrait View Avatar Visibility Fade - We already made My Avatar 50% visibility when on a mobile device, now we expanded that visibility setting for any time the device is in portrait view by testing if the size X is less than the size Y.

Disable pull-down Refresh on Mobile - In order to improve the swiping ability on Mobile devices, we disabled the pull-down page refresh using position zero and containing the over scroll behavior in the stylesheet.

Limited Movement during Place Holder - When you first enter a 3D Scene and you can see the Enter button, we removed the movement for forward and backwards since the placeholder is designed to not move until you actually enter the 3D Scene. This fixed the camera issue that was showing an endless dive falling into the ground. We also disabled any click movement during this same place holder time.

Removed Avatar Select Functions - The following functions from wtw_login.js have been removed as obsolete: getMyAvatarList, getFullAvatarList, getAnonymousAvatarList, and getMyAvatarList. These functions have all been replaced by the new Select My Avatar Form and functions.

Removed pluginsGetMyAvatarList Plugin Hook - The plugin hook called pluginsGetMyAvatarList has been removed. The process has become obsolete with the new 3D Form for Select My Avatar.

Added Plugin Hook for pluginsHudLoginLoadAvatarsArray - We added a hook for pluginsHudLoginLoadAvatarsArray that is fired after the initial Local Login Avatars are loaded to the Select My Avatar form. This plug allows additional code to execute, allowing additional avatars to be processed or loaded to the form. For the 3D Internet Plugin, this adds the WalkTheWeb Global Avatars to be added to the selection array.

New Select My Avatar 3D Form - We added a new form for Select My Avatar that replaces the HTML version. This new form works in the 3D Scene and will also work in VR cameras.

Click on items to Cancel Walk to Position - You can now click on an item or My Avatar to stop an in progress Walk To Position.

Animation Icon Moved Folders - While we no longer used the icons folder under content/system, there is one default image used. We moved animdefault.png from the icons folder to the images and updated the path in code.

Profile Icon now Toggles - We set the icon for Login on the Browse Menu to toggle the login menu or user menu when it is clicked. This makes it easier to close the menu.

Corrected new install avatar selection - During a new install, the user is logged in, but the avatar is not selected. We needed to adjust the code to handle this new condition. Now the avatar is randomly selected unless the user chooses to select an avatar.

Updated Map Files - Updated Map files to not include source (can be overwritten by the WalkTheWeb Developers Toolkit map files)

New Has Input Moved function - When testing the difference between a swipe and a click, we check to see if the mouse x or mouse y movement has changed. But under some circumstances event the smallest movement was not counting as a click. This function replaces the (WTW.mouseX == zstartx && WTW.mouseY == zstarty) comparison to accept a little movement as still being a click. The zdist setting is the tolerance. Now most touch clicks and mouse clicks are caught and processed correctly.

Added Input Moving function - We added an inputMoving function to the /core/scripts/prime/wtw_input.js so that the mouseMove and the touchMoving functions can share the same common code.

Added Input Click function - We added an inputClick function to the /core/scripts/prime/wtw_input.js so that the mouseClick and the touchClick functions can share the same common code.

Added Input Up function - We added an inputUp function to the /core/scripts/prime/wtw_input.js so that the mouseUp and the touchUp functions can share the same common code.

Added Input Down function - We added an inputDown function to the /core/scripts/prime/wtw_input.js so that the mouseDown and the touchDown functions can share the same common code.

Added Boolean Response to checkMoldFunctionAndExecute - We added a Boolean response to the checkMoldFunctionAndExecute function to determine if a function was found and executed. This helps determine if the click event found a mold with a function or needs to allow something else to still execute, such as Avatar Movement based on the click location.

Eliminate the Obsolete itouch Divs - We eliminated the obsolete itouch divs (wtw_itouchleft and wtw_itouchright). They were from an earlier version of touch movements that is no longer valid. All references and styles related to it have also been removed.

Adjusted the Camera Rotation Max - We adjusted the camera up and down rotation limits to shorten the distance of rotation. These settings can be found in the /core/scripts/avatars/wtw_avatarfunctions.js file moveAvatar function.

Renamed WTW.testTimer to WTW.avatarTimer - We renamed and repurposed the global WTW.test timer to be names WTW.avatarTimer and is used to test or execute automated avatar movement commands when they require an increment timer.

Open HUD Login for Enter - We set up specific conditions to show the Enter button from the Login Menu HUD. This allows us to easily pull that Enter button on the screen without the rest of the Login Menu showing.

Connect Avatars now Accepts Additional Groups - With the new Additional Avatar Groups allowing the same avatar to exist in multiple groups, we modified the SQL in the avatars.php connect file to add the avatar group selection in the where clause to include the avatarsingroups and avatargroups tables.

Random Selection of Avatar on Enter - We changed the process to start with a random avatar selection when you click Enter to join a scene. This process uses any avatar that you set to your Anonymous Group. It can be the primary Avatar Group or additional Avatar Group.

Save Avatars in Groups Functions - We added a saveAvatarsInGroup function in the avatars class to handle changes to the avatars in groups table. It uses the avatars.php handler.

Added Additional Avatar Groups Section - When editing an Avatar, under Edit 3D Avatar - 3D Avatar Information, we now have 2 parts to the avatar groups. The first is the primary avatar group that is used when shared. The second is a list of all possible groups from the avatar groups table allowing you to select as many as you wish. This will add the avatar into the group(s) for when they are used on a 3D Community - in the avatar selection to enter.

Added Avatar Groups to Responses - We added the avatargroups to various connect call responses.

Connect Avatars added Groups - We added the pulled avatar avatargroups to be returned with the connect avatars.php file.

Connect Avatar added Groups - We added the pulled avatar avatargroups to be returned with the connect avatar.php file.

Populate the Avatars in Groups Table - We added code to the checkDBVersionData function to populate the new avatarsingroups table based on the avatargroup field in avatars table and the avatargroupid found in the avatargroups table using that avatargroup name.

Added Table for Avatars in Groups - The hosted Avatars that users can select from to create their user avatars only had one avatar group. Now we are adding a table so that we can make it a one to many relationship and one avatar can be selected from multiple groups. We created avatarsingroups table.

Community Ground Naming Update - The input page processes clicks on the 3D Objects marked as pickable and have a hyphen in the name (meaning they are fully named objects). The Extended Ground in the scene had a simple name and was designed to be ignored, but now that we want to add the mouse and touch movement when you click on the ground, we needed to add a hyphen to the name (simplest solution was add a hyphen at the end). So the communityeground is now communityeground-.

Add 3D Building to Community Corrected - After the move of the 3D Internet Plugin code last month, a handful of the admin menu switch case items were moved when they should have been split to both the main site and 3D Internet Plugin. While the Forms and Menu Items are there, the case that selects the code to run was moved and will be inactive if the 3D Internet Plugin is deactivated. There are 2 files for this update and can be downloaded from https://github.com/HTTP3D/WalkTheWeb. The files are: /core/scripts/admin/wtw_adminmenus.js and /content/plugins/wtw-3dinternet/scripts/class_main.js