Skip to content

Commit 343063d

Browse files
authored
feat: Game launcher and docs improvements (#292)
* feat: ClickHandlerComponent.cs - Enhance cube creation logic - Added a new using directive for `Stride.CommunityToolkit.Mathematics` to access additional mathematical functions. - Modified the `CreateCube()` method call to utilize `_random.NextPoint()` for generating a random point within a specified bounding box, improving randomness. - Adjusted the y-coordinate to position the cube at a height of 10 units above the ground. * refactor: ScreenPositionToWorldPositionRaycast removed * feat: Profile added * feat!: ShapeUpdater.cs - Improve debug text positioning - Added two new constant integer variables: `TextIncrement` set to 16 and `StartTextPositionY` set to 32 for better text positioning in debug output. - Modified the text position for debug print statements to utilize `StartTextPositionY`, enhancing maintainability and readability. - Introduced additional debug print statements to provide more context about the application's state, including a message for faster count adjustment with the shift key. - Updated the wording of the fill mode debug print statement for consistency and clarity. - Adjusted the vertical positioning of debug print statements to use the new `TextIncrement` variable, facilitating easier layout adjustments. - Removed an unused closing brace at the end of the file to correct a formatting error. * refactor: Empty lines removed * refactor: Code readability improvements * refactor: Code clean up * refactor: Update DebugRenderStage organization - Changed `DebugRenderStage` from an internal enum within `ImmediateDebugRenderFeature` to a standalone internal enum for better organization. - Removed the `partial` keyword from the `ImmediateDebugRenderFeature` class, indicating it is now fully defined in one file. - Replaced references to `ImmediateDebugRenderFeature.DebugRenderStage` with `DebugRenderStage` in `ImmediateDebugRenderSystem` for improved readability. - Removed the `using static` directive for `ImmediateDebugRenderFeature` in `ImmediateDebugRenderStageSelector.cs` to clarify code dependencies. * docs: XML comments added * refactor: Empty line removed * feat: New example project added * refactor: Code improvements * refactor: Code clean up * refactor: Examples experience improvements * docs: XML comments added * docs: XML comments added * docs: XML comments addee * feat: Benchmark project updated * feat: FastList benchmark added * feat: New test added * feat: Another test added * feat: Benchmark input updated * refactor: ShapeUpdater.cs - Optimize shape management - Replaced `FastList<T>` with `List<T>` for better performance. - Introduced `EnsureSize<T>()` method to manage list capacity efficiently. - Modified initialization of primitive properties to use spans for faster access. - Streamlined logic for updating and rendering shapes to enhance performance and readability. - Simplified `Clamp()` method to a more concise expression-bodied format. * feat: Target framework updated * refactor: Performance updates * refactor: Readability updates * refactor: Code readability updates * fix: ImmediateDebugRenderSystem.cs - Correct vertex pairing - Modify the `ImmediateDebugRenderSystem` class to fix the processing of vertex pairs in the rendering loop. - Change the reference for the second vertex (`v2`) from the same vertex as `v1` to the next vertex in the array. - Ensure that pairs of vertices are correctly formed for drawing lines, allowing for proper rendering of line segments between distinct vertex pairs. * refactor : CurrentRenderMode.cs - Rename enum for clarity - Renamed the enum `CurRenderMode` to `CurrentRenderMode`. * refactor: Bullet replaced with Bepu * refactor: Code readability improvements * docs: XML comment added * refactor: Performance updates * refactor: ImmediateDebugRenderFeature - Improve null safety - Updated `ImmediateDebugRenderFeature` to use nullable types for several buffer fields, enhancing handling of uninitialized states and preventing null reference exceptions. - Added XML documentation comments to the constructor, clarifying its purpose and ensuring the feature is rendered last. - Enhanced `UpdateBufferIfNecessary()` to check for empty data, allowing early returns and avoiding unnecessary updates. - Updated references in `CheckBuffers()` to use the null-forgiving operator (`!`), indicating expected non-null buffers. - Modified `SetPrimitiveRenderingPipelineState()` and `SetLineRenderingPipelineState()` to use the null-forgiving operator for `pipelineState`, `primitiveEffect`, and `lineEffect`. - Cleared `lineVertices` and `instances` lists at the start of the `Prepare()` method to prevent data retention from previous frames. - Safely disposed of buffers in `Unload()` using the null-conditional operator (`?.`) to avoid exceptions if buffers are null. - Overall, these changes improve the robustness and clarity of the `ImmediateDebugRenderFeature` class, making it safer and easier to maintain. * feat: ListExtensions.cs - Add list extension methods - Introduced a new static class `ListExtensions` in the namespace `Stride.CommunityToolkit.Collections`. - Added the `EnsureSize(List<T> list, int size)` method to ensure a list has at least a specified number of items by adding default values if necessary. - Implemented the `SetCount(List<T> list, int size)` method to adjust the list's count to a specified size, either by adding default values or removing excess items. - Included null and range checks in both methods to ensure safe operations on the list. * refactor: Code improvements * refactor: Simplify collection handling in ShapeUpdater and ImmediateDebugRenderFeature - Added `Stride.CommunityToolkit.Collections` namespace to both `ShapeUpdater.cs` and `ImmediateDebugRenderFeature.cs` for enhanced collection functionalities. - Removed the custom `EnsureSize()` method in `ShapeUpdater.cs` and replaced it with direct calls to `EnsureSize()` on the collections: `_primitivePositions`, `_primitiveRotations`, `_primitiveVelocities`, `_primitiveRotVelocities`, and `_primitiveColors`. - Streamlined `ImmediateDebugRenderFeature.cs` by removing the custom `EnsureSize()` method and using `EnsureSize()` directly on `instances` and `lineVertices`. - Eliminated the `SetCount()` method in `ImmediateDebugRenderFeature.cs`, replacing it with direct calls to `SetCount()` on `transforms` and `colors` lists. - These changes enhance code clarity and maintainability by leveraging the capabilities of the `Stride.CommunityToolkit.Collections` library. * refactor: Folder structure improvements * refactor: Text renderes moved to Renderers folder * docs: XML comments updates * refactor: File and folder structure updates to remove circular dependencies * refactor: Empty lines removed * refactor: Typo fixes * docs: XML comments added * refactor: DebugPrimitveType added * docs: XML comments added * refactor: ImmediateDebugRenderSystem.cs - Simplify debug message storage - Replaced `FastList<DebugRenderable>` with `List<DebugRenderable>` for `renderMessages` and `renderMessagesWithLifetime` to simplify data structure. - Updated list handling to use `CollectionsMarshal.AsSpan` for improved performance during iteration. - Adjusted comments and logic related to the lifetime management of render messages to align with the new list implementation. * refactor: Common functionality merged * refactor: DebugRenderable.cs moved to a separate file * refactor: Renderable.cs added * docs: XML example updates * refactor: Code readability improvements and old code removed * docs: Examples docs updated * refactor: Provider folder renamed to Core * docs: Improvements * fix: Grammar corrected * docs: Title corrected * refactor: Code readability updates * docs: Docs improvements * docs: Project names updated * docs: References correction * docs: Windows package included in the note * docs: Addititional docs added * fix: ImGuiSystem.cs - Clean up using directives and fields - Deleted the private field `DebugTextSystem? debug;` to simplify the class. - Changed `vertexBinding` from a nullable type (`VertexBufferBinding?`) to a non-nullable type (`VertexBufferBinding`) to ensure it is always initialized. * docs: Comment removed * docs: Docs improvements * docs: Grammar and content improvements * docs: Update documentation for clarity and new examples - Updated documentation across multiple files: `advance-examples.md`, `basic-examples.md`, `other-examples.md`, `create-project.md`, and `index.md`. - Added new examples in `advance-examples.md`, including "ImGui UI," "Box2D.NET Physics," and "Mesh Outline," with some entries reorganized for clarity. - Enhanced `other-examples.md` with the addition of "Debug Shapes Usage" and "Stride + SignalR." - Restructured `create-project.md` for improved readability, including renumbering steps and adding clarifying details. - Simplified language in `index.md` to better communicate the benefits of the code-only approach over Stride Game Studio. - Overall, these changes aim to enhance the clarity, organization, and accessibility of the documentation for users of the Stride Game Engine. * chore: Release notes added * docs: Docs grammar and wording improvements * fix: Release notes correction * fix: List corrected
1 parent 21bc49e commit 343063d

File tree

164 files changed

+3017
-2012
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

164 files changed

+3017
-2012
lines changed

Stride.CommunityToolkit.sln

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Stride.CommunityToolkit.Tes
124124
EndProject
125125
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0AB3BF05-4346-4AA6-1389-037BE0695223}"
126126
EndProject
127+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Example08_DebugShapes_Usage", "examples\code-only\Example08_DebugShapes_Usage\Example08_DebugShapes_Usage.csproj", "{777B81CA-7C38-40DB-AD02-66FB1E5B5738}"
128+
EndProject
127129
Global
128130
GlobalSection(SolutionConfigurationPlatforms) = preSolution
129131
Debug|Any CPU = Debug|Any CPU
@@ -337,6 +339,10 @@ Global
337339
{5C1A3E6A-7E65-4F3F-9E6C-5C0A7D9E1234}.Debug|Any CPU.Build.0 = Debug|Any CPU
338340
{5C1A3E6A-7E65-4F3F-9E6C-5C0A7D9E1234}.Release|Any CPU.ActiveCfg = Release|Any CPU
339341
{5C1A3E6A-7E65-4F3F-9E6C-5C0A7D9E1234}.Release|Any CPU.Build.0 = Release|Any CPU
342+
{777B81CA-7C38-40DB-AD02-66FB1E5B5738}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
343+
{777B81CA-7C38-40DB-AD02-66FB1E5B5738}.Debug|Any CPU.Build.0 = Debug|Any CPU
344+
{777B81CA-7C38-40DB-AD02-66FB1E5B5738}.Release|Any CPU.ActiveCfg = Release|Any CPU
345+
{777B81CA-7C38-40DB-AD02-66FB1E5B5738}.Release|Any CPU.Build.0 = Release|Any CPU
340346
EndGlobalSection
341347
GlobalSection(SolutionProperties) = preSolution
342348
HideSolutionNode = FALSE
@@ -384,6 +390,7 @@ Global
384390
{17E5E99D-DE7E-438E-BC6B-3A4C06A64387} = {30457B66-9E10-4290-9744-D0079DE0448B}
385391
{170666D3-8F9F-151F-C88A-54261B1783C1} = {30457B66-9E10-4290-9744-D0079DE0448B}
386392
{5C1A3E6A-7E65-4F3F-9E6C-5C0A7D9E1234} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
393+
{777B81CA-7C38-40DB-AD02-66FB1E5B5738} = {30457B66-9E10-4290-9744-D0079DE0448B}
387394
EndGlobalSection
388395
GlobalSection(ExtensibilityGlobals) = postSolution
389396
SolutionGuid = {C7A8C18E-C1F5-492F-8173-51EC9495B78C}
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
# Documentation
22

3-
We use [DocFX](https://github.com/dotnet/docfx) to generate our documentation. Contributing to the documentation is straightforward: explore the existing docs, duplicate relevant pages, and update the content as needed. For more information on DocFX and Markdown syntax, refer to the [official guide](https://dotnet.github.io/docfx/docs/markdown.html). If you're new to the process, we're happy to assist you in getting started.
3+
We use [DocFX](https://github.com/dotnet/docfx) to generate our documentation. Contributing is straightforward: explore the existing docs, duplicate relevant pages, and update the content as needed. For DocFX and Markdown syntax, see the [official guide](https://dotnet.github.io/docfx/docs/markdown.html). If you're new, we're happy to help you get started.
44

55
## Installing DocFX
66

7-
To install the latest version of DocFX, use the following command:
7+
To install the latest DocFX as a global tool:
88

99
```bash
1010
dotnet tool install -g docfx
1111
```
1212

13-
## Building the Documentation
13+
## Building the documentation
1414

15-
1. Navigate to the docs folder in the project directory:
15+
1. Navigate to the docs folder:
1616
```
1717
stride-community-toolkit\docs\
1818
```
19-
1. Run the `run.bat`` file to build the documentation:
19+
2. Run the `run.bat` file to build the docs:
2020
```
2121
run.bat
2222
```
23-
1. Once the process completes, you can access the documentation in your browser at:
23+
3. When complete, open the site in your browser:
2424
```
2525
http://localhost:8080/
2626
```
2727

28-
## Editing the Documentation
28+
## Editing the documentation
2929

30-
- All documentation files are located in the `docs` folder. You can edit these Markdown files to update or add content.
31-
- After making changes, re-run the `run.bat` command to rebuild the documentation and preview your updates in your browser.
30+
- All documentation files are under `docs`. Edit the Markdown files to update or add content.
31+
- After changes, re-run `run.bat` to rebuild and preview updates in your browser.
3232

33-
## Submitting Changes
33+
## Submitting changes
3434

35-
- Ensure youre satisfied with the results.
35+
- Ensure you're satisfied with the result.
3636
- Submit a pull request to the `main` branch for review.
Lines changed: 15 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,20 @@
11
# Contribute Examples
22

3-
You can see all examples in the [examples](https://github.com/stride3d/stride-community-toolkit/tree/main/examples/code-only) folder.
3+
All examples live in the [examples](https://github.com/stride3d/stride-community-toolkit/tree/main/examples/code-only) folder.
44

5-
If you would like your example be launchable from the console application, you can add it to the `Stride.CommunityToolkit.Examples` project which you can find here: [Stride.CommunityToolkit.Examples](https://github.com/stride3d/stride-community-toolkit/tree/main/src/Stride.CommunityToolkit.Examples).
5+
If you'd like your example to be launchable from the console application [Stride.CommunityToolkit.Examples](https://github.com/stride3d/stride-community-toolkit/tree/main/src/Stride.CommunityToolkit.Examples), follow these steps:
66

7-
1. Make sure you create an anchor class named `NamespaceAnchor.cs` if your example contains only `Programs.cs`, so the namespace can be accessible from `Stride.CommunityToolkit.Examples`.
8-
```csharp
9-
namespace ExampleXY_YourExampleNamespace;
10-
11-
/// <summary>
12-
/// This empty class is here to make the namespace available in the nameof() operator in the main examples project.
13-
/// </summary>
14-
internal static class NamespaceAnchor;
7+
1. Create a project under `examples/code-only/` named `ExampleXY_YourExampleNamespace` (replace `XY` with the next available number).
8+
2. Add example metadata to the `*.csproj` (used in the console app menu):
9+
```xml
10+
<ExampleTitle>Basic Example - Capsule with rigid body</ExampleTitle>
11+
<ExampleOrder>100</ExampleOrder>
12+
<ExampleEnabled>true</ExampleEnabled>
13+
<ExampleCategory>1 - Basic Example</ExampleCategory>
1514
```
16-
1. Add your example project to `Stride.CommunityToolkit.Examples` project.
17-
1. Update `Providers/ExampleProvider.cs`
18-
1. Run `Stride.CommunityToolkit.Examples`
19-
1. You should see your example listed in the console application.
20-
```
21-
Stride Community Toolkit Examples
22-
23-
[1] Basic Example - Capsule with rigid body
24-
[2] Basic Example - Capsule with rigid body in F#
25-
[3] Basic Example - Capsule with rigid body in Visual Basic
26-
[4] Basic Example - Give me a cube
27-
[5] Basic Example - Stride UI - Canvas - Capsule with rigid body and Window
28-
[6] Basic Example - Stride UI - Grid - Save and load game state
29-
[7] Basic Example - Procedural Geometry
30-
[8] Basic Example - Particles
31-
[9] Advance Example - Myra UI - Draggable Window, GetService()
32-
[10] Advance Example - Image Processing
33-
[11] Advance Example - Root Renderer Shader
34-
[12] Other - CubeClicker
35-
[13] Other - Debug Shapes
36-
[14] Other - Renderer
37-
[Q] Quit
38-
39-
Enter choice and press ENTER to continue
40-
```
41-
1. Update the `Stride.CommunityToolkit.Docs/includes/manual/examples/basic-examples-outro.md` file with the new example.
42-
1. Update the `Stride.CommunityToolkit.Docs/includes/manual/basic-examples.md` or `advance-examples.md` or `other-examples.md` file with the new example.
15+
3. If `<ExampleEnabled>true</ExampleEnabled>`, it will automatically appear in the console menu.
16+
4. Run `Stride.CommunityToolkit.Examples`.
17+
5. You should see your example listed in the console application menu.
18+
[!INCLUDE [examples-console-app](../../includes/manual/examples/examples-console-app.md)]
19+
6. Update `Stride.CommunityToolkit.Docs/includes/manual/examples/basic-examples-outro.md` to include the new example.
20+
7. Update `Stride.CommunityToolkit.Docs/includes/manual/basic-examples.md`, `advance-examples.md`, or `other-examples.md` to include the new example.

docs/contributing/index.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,25 @@
11
# Contributing
22

3-
## Welcome Contributors
3+
## Welcome, contributors
44

5-
Thank you for your interest in contributing to the **Stride Community Toolkit**. This guide will help you get started by providing guidelines, best practices, and resources for making meaningful contributions to the project. Whether you're fixing bugs, adding new features, or enhancing the documentation, your efforts are greatly appreciated and help make this toolkit better for everyone.
5+
Thanks for your interest in contributing to the **Stride Community Toolkit**. This guide helps you get started with guidelines, best practices, and resources for meaningful contributions. Whether you're fixing bugs, adding features, or enhancing docs, your help makes the toolkit better for everyone.
66

77
> [!TIP]
8-
> Interested in contributing to the **Stride Engine** itself? Check out the official [Stride Engine Contribution Guide](https://doc.stride3d.net/latest/en/contributors/index.html).
8+
> Interested in contributing to the **Stride Engine** itself? See the official [Stride Engine Contribution Guide](https://doc.stride3d.net/latest/en/contributors/index.html).
99
10-
## Ways to Contribute
10+
## Ways to contribute
1111

12-
Since the toolkit is currently in preview, we don't have extensive contribution instructions. However, you can follow these general guidelines to get started:
12+
The toolkit is currently in preview, so instructions are intentionally lightweight. You can:
1313

14-
- **Submit Pull Requests (PRs):** You're welcome to make PRs directly to the [GitHub repository](https://github.com/stride3d/stride-community-toolkit). This is the quickest way to contribute.
15-
- **Report or Solve Issues:** Create a new issue on our [GitHub Issues](https://github.com/stride3d/stride-community-toolkit/issues) page or work on an existing one.
16-
- **Start a Discussion:** Use the [GitHub Discussions](https://github.com/stride3d/stride/discussions) page to share ideas, ask questions, or collaborate on future toolkit features.
17-
- **Join the Community on Discord:** For real-time discussions, join our Discord server and participate in the `#toolkit` channel [here](https://discord.com/channels/500285081265635328/1179562410655363132).
14+
- Submit pull requests directly to the [GitHub repository](https://github.com/stride3d/stride-community-toolkit).
15+
- Report or fix issues on our [GitHub Issues](https://github.com/stride3d/stride-community-toolkit/issues) page.
16+
- Start a discussion on [GitHub Discussions](https://github.com/stride3d/stride/discussions) to share ideas or ask questions.
17+
- Join our Discord for real-time chat in `#toolkit`: <https://discord.com/channels/500285081265635328/1179562410655363132>.
1818

19-
## Additional Resources
19+
## Additional resources
2020

21-
Here are some helpful links to get you started:
21+
- [Stride Community Toolkit GitHub Repository](https://github.com/stride3d/stride-community-toolkit)
22+
- [Stride Game Engine GitHub Repository](https://github.com/stride3d/stride)
23+
- [Stride Documentation](https://doc.stride3d.net/)
2224

23-
- [Stride Community Toolkit GitHub Repository](https://github.com/stride3d/stride-community-toolkit): Explore the code, issues, and pull requests.
24-
- [Stride Game Engine GitHub Repository](https://github.com/stride3d/stride): Learn more about the main Stride Engine project.
25-
- [Stride Documentation](https://doc.stride3d.net/): Find official guides, APIs, and tutorials.
26-
27-
We appreciate your time and effort in helping improve the **Stride Community Toolkit**. Your contributions make a difference, whether you're fixing a small bug, suggesting a new feature, or enhancing the documentation 🙂.
25+
We appreciate your time and effort in improving the **Stride Community Toolkit**, whether you're fixing a small bug, suggesting a feature, or polishing the docs 🙂.

docs/contributing/toolkit/index.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,28 @@
11
# Contribute Code
22

3-
If you are a developer and you want to help building Stride Community Toolkit, than you can do so in various ways.
3+
If you are a developer and want to help build the Stride Community Toolkit, then you can do so in various ways.
44

5-
## Check Our Issue Tracker
5+
## Check our issue tracker
66

7-
If you are just getting started with toolkit, issues marked with ['good first issue'](https://github.com/stride3d/stride-community-toolkit/labels/good%20first%20issue) can be a good entry point.
8-
Please take a look at our [issue tracker](https://github.com/stride3d/stride-community-toolkit/issues) for other issues.
7+
If you're just getting started, issues marked as ['good first issue'](https://github.com/stride3d/stride-community-toolkit/labels/good%20first%20issue) are a great entry point. You can also browse our full [issue tracker](https://github.com/stride3d/stride-community-toolkit/issues).
98

9+
## Coordinate work
1010

11-
## Notify Users
11+
Before you start working on an issue:
12+
- Comment on the relevant issue (or create one) to signal interest.
13+
- Check on GitHub or Discord if you need direction or context.
14+
- Ensure no one else is actively working on the same item.
15+
- Outline your approach and gather feedback to ensure the design fits the project.
1216

13-
Once you start working on an issue, leave a message on the appropriate issue or create one if none exists to:
14-
* You can always check on Github or Discord if you need to get started somewhere or if you need a general sense of approaching an issue.
15-
* Make sure that no one else is working on that same issue
16-
* Lay out your plans and discuss it with collaborators and users to make sure it is properly architectured and would fit well in the project
17+
## Coding style
1718

18-
## Coding Style
19+
Use Stride's `.editorconfig` when making changes.
1920

20-
Please use and follow Stride's `.editorconfig` when making changes to files.
21+
## Submitting changes
2122

22-
## Submitting Changes
23-
24-
* Push your changes to a specific branch in your fork.
25-
* Use that branch to create and fill out a pull request to the official repository.
23+
- Push changes to a topic branch in your fork.
24+
- Open a pull request from that branch to the official repository.
2625

2726
## Contributing to Stride Engine
2827

29-
If you are interested in contributing to the Stride Engine, please visit the [Stride Engine Contribution](https://doc.stride3d.net/latest/en/contributors/index.html) page.
28+
Interested in contributing to the Stride Engine? See the [Stride Engine Contribution](https://doc.stride3d.net/latest/en/contributors/index.html) page.
Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
# Creating a New Library Project
22

3-
## Steps to Create a New NuGet Library
3+
## Steps to create a new NuGet library
44

5-
1. **Create the Project**:
6-
- Add a new project in the `src` folder, following the naming convention: `Stride.CommunityToolkit.<LibraryName>`.
7-
- Refer to the [existing libraries](https://github.com/stride3d/stride-community-toolkit/tree/main/src) to ensure consistency with the folder/subfolder structure.
8-
2. **Configure the Project File**:
9-
- Update the `.csproj` file with the correct package metadata.
10-
- Review existing library project files to ensure all necessary properties (e.g., `Title`, `Description`, `Import`) are included.
11-
3. **Update Documentation**:
12-
- Add the new library's name and description to `docs/includes/libraries.md`. This will display the library on:
13-
- The home page.
14-
- The Getting Started page.
15-
4. **Generate API Documentation**:
16-
- Update `docs/docfx.json` to include the new `.csproj` location, ensuring that the [API documentation](../../api/index.md) is generated for the new library.
17-
5. **Update CI/CD Workflows**:
18-
- Add the new project to:
19-
- `.github\workflows\dotnet.yml` (`PROJECTS`).
20-
- `.github\workflows\dotnet-nuget.yml` (`env` and `# Stride.CommunityToolkit.<LibraryName>` section).
21-
6. **Optional: Add Example Projects**:
22-
- If adding example projects, follow the existing folder structure pattern in the `examples` directory.
23-
7. **Optional: Add Guidance Content**:
24-
- If you plan to include guidance or tutorials for the new library:
25-
- Add new pages to the `docs/manual` folder.
26-
- Update the `toc.yml` file to include links to the new content.
5+
1. Create the project
6+
- Add a new project under `src`, following the naming convention `Stride.CommunityToolkit.<LibraryName>`.
7+
- Refer to the [existing libraries](https://github.com/stride3d/stride-community-toolkit/tree/main/src) for folder structure consistency.
8+
2. Configure the project file
9+
- Update the `.csproj` with correct package metadata.
10+
- Review existing library projects to ensure all necessary properties (e.g., `Title`, `Description`, `PackageTags`) are included.
11+
3. Update documentation
12+
- Add the new library's name and description to `docs/includes/libraries.md`. This displays the library on:
13+
- The home page
14+
- The Getting Started page
15+
4. Generate API documentation
16+
- Update `docs/docfx.json` to include the new `.csproj` so the [API documentation](../../api/index.md) is generated for the library.
17+
5. Update CI/CD workflows
18+
- Add the project to:
19+
- `.github/workflows/dotnet.yml` (`PROJECTS`)
20+
- `.github/workflows/dotnet-nuget.yml` (`env` and the `# Stride.CommunityToolkit.<LibraryName>` section)
21+
6. Optional: add example projects
22+
- If adding examples, follow the existing folder structure in `examples`.
23+
7. Optional: add guidance content
24+
- If you plan to include guides or tutorials:
25+
- Add new pages to `docs/manual`.
26+
- Update the `toc.yml` to link the new content.
2727

2828
> [!TIP]
29-
> Don't hesitate to reach out to the maintainers for assistance. Whether it's improving the process, code, clarifying steps, or helping with code, we're here to help!
29+
> Reach out to maintainers anytime, process improvements, clarifications, or code reviews, we're happy to help!
Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
- [Simple Constraint](../../manual/code-only/examples/simple-constraint.md): Shows how to create a simple constraint between two entities.
2-
- [Various Constraints](../../manual/code-only/examples/constraints.md): Shows how to create various constraints between entities, including distance limit, distance servo, ball socket, and point-on-line servo.
3-
- [Myra UI - Draggable Window, GetService()](../../manual/code-only/examples/myra-ui-draggable-window-and-services.md): Illustrates using Myra UI to create a draggable window, display a health bar, and access registered services.
4-
- [Stride UI - Draggable Window](../../manual/code-only/examples/stride-ui-draggable-window.md): Illustrates using Stride UI to create a draggable window.
5-
- [Image Processing](../../manual/code-only/examples/image-processing.md): Shows how to apply image processing effects to a texture.
6-
- [Root Renderer Shader](../../manual/code-only/examples/root-renderer-shader.md): Shows how to create a custom shader for the root renderer.
1+
- [Simple Constraint](../../manual/code-only/examples/simple-constraint.md): Demonstrates creating a simple constraint between two entities.
2+
- [Various Constraints](../../manual/code-only/examples/constraints.md): Demonstrates distance limit, distance servo, ball socket, and point-on-line servo constraints between entities.
3+
- [Myra UI - Draggable Window, GetService()](../../manual/code-only/examples/myra-ui-draggable-window-and-services.md): Demonstrates using Myra UI to create a draggable window, display a health bar, and access registered services.
4+
- [Stride UI - Draggable Window](../../manual/code-only/examples/stride-ui-draggable-window.md): Demonstrates using Stride UI to create a draggable window.
5+
- [ImGui UI](../../manual/code-only/examples/imgui-ui.md): Demonstrates using ImGui to create a simple UI.
6+
- [Image Processing](../../manual/code-only/examples/image-processing.md): Demonstrates applying image-processing effects to a texture.
7+
- [Root Renderer Shader](../../manual/code-only/examples/root-renderer-shader.md): Demonstrates creating a custom shader for the root renderer.
8+
- [Box2D.NET Physics](../../manual/code-only/examples/box2d-physics.md): Demonstrates integrating Box2D.NET physics into a Stride project.
9+
- [Mesh Outline](../../manual/code-only/examples/mesh-outline.md): Demonstrates creating a mesh-outline effect.

0 commit comments

Comments
 (0)