From c6e4f6a730e69129dc99dab80ff8204f25e37dde Mon Sep 17 00:00:00 2001 From: Gabriel Tanasovici Nardy Date: Wed, 8 Jan 2025 09:42:49 -0300 Subject: [PATCH] Docusaurus version updated Fixed code highlights comments Fixed some typos Updated Setting Up UE Guide Video Component autoplay and loop Base Class shows children Class Builder Constructor Description Images border rounded January 2025 News Blog --- blog/2025-01-08-january.md | 168 + blog/authors.yml | 10 +- .../creating-assets/setting-up-ue.md | 14 +- .../basic-hud-canvas.md | 2 +- .../tutorials-and-examples/basic-hud-html.md | 2 +- docs/scripting-reference/classes/sound.mdx | 2 +- .../static-classes/input.mdx | 12 + docusaurus.config.js | 5 +- package.json | 8 +- src/api | 2 +- src/components/ClassBuilder.jsx | 15 +- src/components/Tooltips.jsx | 8 +- src/components/_nanos.jsx | 24 +- src/css/custom.css | 9 +- static/img/blog/2025-january/base-childs.webp | Bin 0 -> 10134 bytes .../img/blog/2025-january/house-keeping.webp | Bin 0 -> 49870 bytes static/img/blog/2025-january/input.webp | Bin 0 -> 52542 bytes .../blog/2025-january/keybindings-names.webp | Bin 0 -> 13148 bytes static/img/blog/2025-january/retry.webp | Bin 0 -> 12942 bytes static/img/blog/2025-january/rss.webp | Bin 0 -> 23042 bytes static/img/blog/2025-january/ue55.webp | Bin 0 -> 43134 bytes static/img/docs/windows-10-sdk-vs.webp | Bin 14334 -> 12178 bytes static/img/docs/windows-10-sdk.webp | Bin 49934 -> 45380 bytes .../basic-hud-canvas.md | 2 +- yarn.lock | 3573 ++++++++++------- 25 files changed, 2450 insertions(+), 1406 deletions(-) create mode 100644 blog/2025-01-08-january.md create mode 100644 static/img/blog/2025-january/base-childs.webp create mode 100644 static/img/blog/2025-january/house-keeping.webp create mode 100644 static/img/blog/2025-january/input.webp create mode 100644 static/img/blog/2025-january/keybindings-names.webp create mode 100644 static/img/blog/2025-january/retry.webp create mode 100644 static/img/blog/2025-january/rss.webp create mode 100644 static/img/blog/2025-january/ue55.webp diff --git a/blog/2025-01-08-january.md b/blog/2025-01-08-january.md new file mode 100644 index 00000000000..156c1404821 --- /dev/null +++ b/blog/2025-01-08-january.md @@ -0,0 +1,168 @@ +--- +slug: january-2025 +title: "Jan: Unreal Engine 5.5 & Enhanced Input!" +authors: gtnardy +tags: [updates] +image: /img/blog/2023-january/january-news.webp +--- + +import { Classes, UtilityClasses, MediaLegend, ReferenceLink } from '@site/src/components/_nanos'; + + +**Unreal Engine 5.5 & Enhanced Input System!** + +![](/img/blog/2023-january/january-news.webp) + +Welcome to our roundup of the latest updates from the last months! + + + + +## Unreal Engine 5.5 + +![](/img/blog/2025-january/ue55.webp) + +Although it may feel like just yesterday that we transitioned to 5.4, we decided that we should already upgrade to **5.5** instead of waiting several months for the next 5.6. So we've already started preparing for the transition to Unreal Engine 5.5 and are quite ready for the update! + +However, after several testing, we've decided to hold off until hotfix **5.5.2** is released. The current version (5.5.1) has some known issues, particularly with packaging and user-generated content which are already being addressed by Epic in their [Bug Tracker](https://issues.unrealengine.com/issue/UE-228884). + +Once they release this hotfix, we'll move forward with the update and allow more space for broad tests with you! + + +## Enhanced Input System + +We have finally implemented the new Unreal's [Enhanced Input System](https://dev.epicgames.com/documentation/en-us/unreal-engine/enhanced-input-in-unreal-engine)! + +![](/img/blog/2025-january/input.webp) + +Input Keybinding Settings reworked to handle Unreal's Enhanced Input System + +This required a significant internal overhaul of all our gameplay classes (characters, vehicles, weapons, and menu interactions), which will reset all current configurations. + +Please make sure to revisit your keybinding settings and adjust them to your preference after this update is launched! + + +### Scripting Changes + +If you were binding to native key bindings, you will need to update your scripts. With the new Enhanced Input System, each Keybinding is now separated in a different name. + +Before we registered like this: + +```lua title="Client/Input.lua" +Input.Bind("MoveForward", InputEvent.Pressed, function(delta) + -- Before it returned delta from -1.0 (backwards) to 1.0 (forward) + Console.Log("MoveForward: ", delta) +end) +``` + +Now each Input returns delta from 0.0 - 1.0, meaning just the amount pressed, and we need to Bind for each KeyBinding specifically. + +This way, `MoveForward` (W) is just for moving forward, `MoveBackward` (S) is just for moving backwards: + +```lua title="Client/Input.lua" +Input.Bind("MoveForward", InputEvent.Pressed, function(delta) + -- Now it returns delta from 0.0 to 1.0 + Console.Log("MoveForward: ", delta) +end) + +Input.Bind("MoveBackward", InputEvent.Pressed, function(delta) + -- Now it returns delta from 0.0 to 1.0 + Console.Log("MoveBackward: ", delta) +end) +``` + +:::tip + +You can find the exact Binding Name for the native bindings at the KeyBindings settings, by hovering them: + +![](/img/blog/2025-january/keybindings-names.webp) + +Keybindings settings showing the KeyBinding Name when hovering + +::: + + +## Latest Blog at Main Menu + +We've updated the main menu to display the **latest blog news** directly. This new clickable section redirects you to the corresponding post in our news blog! + +![](/img/blog/2025-january/rss.webp) + +Home Menu Blog News showing the latest Blog post + + +## Docs Improvements + +We've updated several aspects of our documentation. Here are some improvements: + +- It has been updated to the latest **Docusaurus** version. +- The [**Setting Up Unreal Engine**](/docs/next/assets-modding/creating-assets/setting-up-ue) page has been revised and updated. Some dependencies have been removed and the SDK version was updated. +- Several typos and minor bugs have been fixed. +- The **API Generator** got several improvements, tweaks and QoL adjustments. +- Now **Videos** will auto-play muted. +- The **Base Class Pop-up** now shows all its child classes for better clarity: + +![](/img/blog/2025-january/base-childs.webp) + +Base Class Popup showing child Classes + + +## Disconnected Popup + +We added a new **Retry** button when you are disconnected from a server, to allow fast reconnection: + +![](/img/blog/2025-january/retry.webp) + +Disconnect Popup with Retry button + + +## Cache Files Location + +Logs, cache images, cache packages and other temporary files are now stored in the **AppData** directory instead of the game installation directory. + +This change resolves issues with restricted directories for non-admin users and centralizes all disposable files for easier management. + +We've also updated your House Keeping menu to address the correct new paths. + +![](/img/blog/2025-january/house-keeping.webp) + +House Keeping menu + + +## Updated Dependencies + +We've updated our internal dependencies to ensure stability and performance: + +- **CEF** updated to version 131. +- **SteamSDK** updated to version 1.61 + + +## Enabled Plugins + +As some of you asked, we've enabled the following plugins to be used by your UGC: **PoseSearch**, **AnimationWarping**, **MotionWarping** and **Chooser**. + + +## Tons of Bug Fixes + +Thanks to your reports, we've managed to fix several bugs as well, to list a few: + +- Fixed random crash on Linux server. +- Fixed Achievements not displaying correctly. +- Fixed CharacterSimple not syncing Attachables or Paintable data. +- Fixed UI Audio Setting not applying correctly. +- Fixed some game crashes. +- Fixed a Fatal Error related to Highlighting. +- Fixed .ogg sounds not playing. +- Fixed sounds with auto_play not playing when loaded. +- And more. + +Once we push the update, you will be able to read all changes in our [Changelog](/changelog). + + +## Conclusion + +Hey all, as this is the first news blog of the year I really hope you enjoyed your holidays and I wish you all a great year 2025! + +This news blog was a kick off for us to start off on the right foot, the updates described here are just the beginning of many great news to come! I'm already preparing awesome new features to make nanos world the best sandbox game ever! + +Thank you for being a part of our journey, and I can't wait to share more exciting updates with you soon! \ No newline at end of file diff --git a/blog/authors.yml b/blog/authors.yml index a325a9bf0c2..9e099287e71 100644 --- a/blog/authors.yml +++ b/blog/authors.yml @@ -1,5 +1,9 @@ gtnardy: - name: Gabriel T. Nardy - title: nanos world developer (SyedMuhammad) - url: https://twitter.com/gtnardy + name: Gabriel • SyedMuhammad + title: lead developer™ + page: true + description: 'nanos world Lead Developer.' image_url: /img/blog/gtnardy.jpg + socials: + x: gtnardy + github: gtnardy \ No newline at end of file diff --git a/docs/assets-modding/creating-assets/setting-up-ue.md b/docs/assets-modding/creating-assets/setting-up-ue.md index 3f09cc849e4..c41998726a0 100644 --- a/docs/assets-modding/creating-assets/setting-up-ue.md +++ b/docs/assets-modding/creating-assets/setting-up-ue.md @@ -37,20 +37,16 @@ On Windows, the download of Unreal Engine must be done from inside [Epic Games L Since newer versions of Unreal, it's required to install some SDKs to be able to cook assets on it. You can install them directly by downloading from Microsoft websites, or using Visual Studio Installer if you already have it installed. -#### .NET Core 3.1 -Install [.NET Core 3.1](https://dotnet.microsoft.com/en-us/download/dotnet/3.1) directly from Microsoft website. +#### Windows SDK +- (recommended) If you have [Visual Studio](https://visualstudio.microsoft.com/downloads/) installed, you can use Visual Studio Installer to install Windows 10 SDK through there. Just open the **Individual components** tab and install `Windows 11 SDK (10.0.26100.0)`: -#### Windows 10 SDK +![Windows SDK Installation](/img/docs/windows-10-sdk-vs.webp) -- (recommended) If you have [Visual Studio](https://visualstudio.microsoft.com/downloads/) installed, you can use Visual Studio Installer to install Windows 10 SDK through there. Just open the **Individual components** tab and install `Windows 10 SDK (10.0.20348.0)`: +- Otherwise, you can install Windows SDK directly from [Microsoft website](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/) and select `Download the Installer >`: -![Windows 10 SDK Installation](/img/docs/windows-10-sdk-vs.webp) - -- Otherwise, you can install Windows 10 SDK directly from [Microsoft website](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/) and select `Windows SDK for Desktop C++ amd64 Apps`: - -![Windows 10 SDK Installation](/img/docs/windows-10-sdk.webp) +![Windows SDK Installation](/img/docs/windows-10-sdk.webp) ## On Linux diff --git a/docs/getting-started/tutorials-and-examples/basic-hud-canvas.md b/docs/getting-started/tutorials-and-examples/basic-hud-canvas.md index 66490c7fbd0..ba17e6ac8ac 100644 --- a/docs/getting-started/tutorials-and-examples/basic-hud-canvas.md +++ b/docs/getting-started/tutorials-and-examples/basic-hud-canvas.md @@ -56,7 +56,7 @@ The example above re-renders and updates all health/ammo information ever tick, HUDCanvas = Canvas(true, Color.TRANSPARENT, 0, true) -- Use 0.033, so it only updates every 0.033ms (i.e. at 30 fps) -// highlight-next-line +-- highlight-next-line HUDCanvas = Canvas(true, Color.TRANSPARENT, 0.033, true) ``` diff --git a/docs/getting-started/tutorials-and-examples/basic-hud-html.md b/docs/getting-started/tutorials-and-examples/basic-hud-html.md index 5c3a9e89965..8b6a3d6285d 100644 --- a/docs/getting-started/tutorials-and-examples/basic-hud-html.md +++ b/docs/getting-started/tutorials-and-examples/basic-hud-html.md @@ -23,7 +23,7 @@ Inside your Package’s Client folder, create a new folder \(optional\) called ` ![](/img/docs/tutorials/html-02.webp) -Inside `UI/` let’s create the following files: `index.html`, `style.cs` and `index.js`: +Inside `UI/` let’s create the following files: `index.html`, `style.css` and `index.js`: :::info diff --git a/docs/scripting-reference/classes/sound.mdx b/docs/scripting-reference/classes/sound.mdx index 437ddba7ecb..578c6f7ba93 100644 --- a/docs/scripting-reference/classes/sound.mdx +++ b/docs/scripting-reference/classes/sound.mdx @@ -40,7 +40,7 @@ local ogg_sound = Sound(Vector(), "package://my-package/Client/awesome_beep.ogg" :::info Note -**`auto_destroy`** means the Entity will be immediately destroyed after spawned, losing references to the _Particle System_ spawned in-game. So if the _Particle System_ itself loops indefinitely, it will keep playing until the Player reconnects. +**`auto_destroy`** means the Entity will be immediately destroyed after spawned, losing references to the _Sound_ spawned in-game. So if the _Sound_ itself loops indefinitely, it will keep playing until the Player reconnects. ::: diff --git a/docs/scripting-reference/static-classes/input.mdx b/docs/scripting-reference/static-classes/input.mdx index f3e76122f47..534df4c1204 100644 --- a/docs/scripting-reference/static-classes/input.mdx +++ b/docs/scripting-reference/static-classes/input.mdx @@ -25,6 +25,18 @@ Input.Bind("SpawnMenu", InputEvent.Released, function() end) ``` +```lua title="Client/Index.lua" +-- Subscribes for native Bindings +Input.Bind("MoveForward", InputEvent.Pressed, function(delta) + -- Pressed MoveForward key (usually W) +end) + +-- Subscribes for native Bindings +Input.Bind("MoveBackward", InputEvent.Pressed, function(delta) + -- Pressed MoveBackward key (usually S) +end) +``` + diff --git a/docusaurus.config.js b/docusaurus.config.js index 272e501b6eb..1fa51fd10f2 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -148,7 +148,8 @@ module.exports = { if (locale !== 'en') { return `https://crowdin.com/project/nanos-world-docs/${locale}`; } - return `https://github.com/nanos-world/docs/edit/master/${versionDocsDirPath}/${docPath}`; + // forces bleeding-edge version + return `https://github.com/nanos-world/docs/edit/master/docs/${docPath}`; }, showLastUpdateAuthor: true, showLastUpdateTime: true, @@ -157,7 +158,7 @@ module.exports = { label: 'bleeding-edge 🩸', }, latest: { - label: 'latest - a1.65.x ⚖️', + label: 'latest - a1.66.x ⚖️', } }, }, diff --git a/package.json b/package.json index 800e4993167..32f5013f0e0 100644 --- a/package.json +++ b/package.json @@ -18,15 +18,15 @@ }, "dependencies": { "@crowdin/cli": "^3.15.0", - "@docusaurus/core": "^3.5.2", - "@docusaurus/preset-classic": "^3.5.2", + "@docusaurus/core": "^3.7.0", + "@docusaurus/preset-classic": "^3.7.0", "@saucelabs/theme-github-codeblock": "^0.3.0", "@tippyjs/react": "^4.2.6", "docusaurus-plugin-image-zoom": "^1.0.1", "node-polyfill-webpack-plugin": "^2.0.1", "prism-react-renderer": "^1.3.5", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "react": "^19.0.0", + "react-dom": "^19.0.0" }, "browserslist": { "production": [ diff --git a/src/api b/src/api index 83fbd025eab..ea2db7f73d1 160000 --- a/src/api +++ b/src/api @@ -1 +1 @@ -Subproject commit 83fbd025eabcd79774981d0724be0dbb35f42f3d +Subproject commit ea2db7f73d163dddbe71d5e9c88fcdc3dcb45dbd diff --git a/src/components/ClassBuilder.jsx b/src/components/ClassBuilder.jsx index 43fc6b9638f..9c6c435c287 100644 --- a/src/components/ClassBuilder.jsx +++ b/src/components/ClassBuilder.jsx @@ -525,12 +525,13 @@ export const ConstructorDeclaration = ({ type, name }) => { const class_data = GetClassData(type, name); return class_data.constructors.map((constructor, index) => <> -

{ constructor.description }

+

{ constructor.name }

+

{ constructor.description || "No description provided" }

{ GetConstructorExample(class_data, index) } { - constructor.parameters.length == 0 ? This constructor doesn't have parameters. : + constructor.parameters.length == 0 ?

This constructor doesn't have parameters.

: <>
@@ -609,7 +610,7 @@ export const FunctionsDeclaration = ({ type, name }) => { { class_data.inheritance && class_data.inheritance.includes("Pawn") ? : "" } { - class_data.functions == null || class_data.functions.length == 0 ? This class doesn't have own functions. : + class_data.functions == null || class_data.functions.length == 0 ?

This class doesn't have own functions.

: <> { class_data.functions.map((value, index) => ) } @@ -627,7 +628,7 @@ export const StaticFunctionsDeclaration = ({ type, name }) => { {/* { class_data.inheritance && class_data.inheritance.includes("Actor") ? : "" } */} { - class_data.static_functions == null || class_data.static_functions.length == 0 ? This class doesn't have own static functions. : + class_data.static_functions == null || class_data.static_functions.length == 0 ?

This class doesn't have own static functions.

: <> { class_data.static_functions.map((value, index) => ) } @@ -669,7 +670,7 @@ export const EventsDeclaration = ({ type, name }) => { { class_data.inheritance && class_data.inheritance.includes("Pawn") ? : "" } { - class_data.events == null || class_data.events.length == 0 ? This class doesn't have own events. : + class_data.events == null || class_data.events.length == 0 ?

This class doesn't have own events.

: <> { class_data.events.map((value, index) => ) } @@ -683,7 +684,7 @@ export const PropertiesDeclaration = ({ type, name }) => { const class_data = GetClassData(type, name); return (<> { - class_data.properties == null || class_data.properties.length == 0 ? This class doesn't have properties. : + class_data.properties == null || class_data.properties.length == 0 ?

This class doesn't have properties.

:
@@ -714,7 +715,7 @@ export const StaticPropertiesDeclaration = ({ type, name }) => { return (<> { - class_data.static_properties == null || class_data.static_properties.length === 0 ? This class doesn't have static properties. : + class_data.static_properties == null || class_data.static_properties.length === 0 ?

This class doesn't have static properties.

:
diff --git a/src/components/Tooltips.jsx b/src/components/Tooltips.jsx index a5b1d939f60..5c444e9c278 100644 --- a/src/components/Tooltips.jsx +++ b/src/components/Tooltips.jsx @@ -2,7 +2,7 @@ import React from 'react'; import CodeBlock from '@theme/CodeBlock'; import { EnumDeclaration } from '@site/src/components/EnumDeclaration'; -import { GetFunctionSignature, GetStaticFunctionSignature, GetEventSignature, GetParametersList, FunctionParametersDeclaration } from '@site/src/components/ClassBuilder'; +import { GetFunctionSignature, GetStaticFunctionSignature, GetEventSignature, GetParametersList, FunctionParametersDeclaration, GetElementByType } from '@site/src/components/ClassBuilder'; export const AuthorityTooltip = ({ img, title, subtitle, description }) => ( @@ -30,7 +30,7 @@ export const AssetPathToolTip = ({ label, description, subtitle }) => ( ); -export const ClassToolTip = ({ class_name, emoji, description, append_title }) => ( +export const ClassToolTip = ({ class_name, emoji, description, append_title, inheritance_children }) => ( <>

@@ -42,6 +42,10 @@ export const ClassToolTip = ({ class_name, emoji, description, append_title }) =

+ { inheritance_children ? <> +

+ Child Classes: { inheritance_children.map((inherit, index) => GetElementByType(inherit, index)).reduce((prev, next) => [prev, ", ", next]) }. + : "" } ); diff --git a/src/components/_nanos.jsx b/src/components/_nanos.jsx index eaf409c04dc..74ec93da6f6 100644 --- a/src/components/_nanos.jsx +++ b/src/components/_nanos.jsx @@ -32,8 +32,8 @@ export const CardLink = ({ title, description, href, image_src, is_lean }) => ( ); // External Video from Github -export const VideoExternal = ({ path }) => ( -