Docs · Exemples · Discord
Feces.net est un wrapper de haut niveau pour FLECS. Les liaisons de bas niveau à l'API C sont incluses et générées avec bindgen.net. Les bibliothèques indigènes sont compilées croisées avec des outils en zig de Vezel-Dev.
// Copy, paste, and run in a .NET project!
using Flecs . NET . Core ;
using World ecs = World . Create ( ) ;
Entity entity = ecs . Entity ( )
. Set ( new Position ( 10 , 20 ) )
. Set ( new Velocity ( 1 , 2 ) ) ;
ecs . Each ( ( ref Position p , ref Velocity v ) =>
{
p . X += v . X ;
p . Y += v . Y ;
} ) ;
public record struct Position ( float X , float Y ) ;
public record struct Velocity ( float X , float Y ) ; Fecs.net - Port C # de haut niveau de l'emballage C ++
Flets.net.bindings - liaisons de bas niveau de l'API C
Flets.net.native - bibliothèques natives précompilées
Vous pouvez télécharger le package NuGet et utiliser Fecs.net immédiatement!
Fecs.net (wrapper + bindings + bibliothèques natives): version | Déboguer
dotnet add PROJECT package Flecs.NET.Release --version *-*Flets.net.bindings (liaisons + bibliothèques natives): version | Déboguer
dotnet add PROJECT package Flecs.NET.Bindings.Release --version *-*Flets.net.native (bibliothèques natives): version | Déboguer
dotnet add PROJECT package Flecs.NET.Native.Release --version *-*FLECS.NET fournit à la fois des packages de libération et de débogage pour NuGet. Il est recommandé d'utiliser les packages de débogage lors du développement car ils incluent des vérifications pour une utilisation incorrecte de l'API. Pour inclure les deux dans votre projet en fonction de votre configuration de build, utilisez les références de package ci-dessous. Les dernières versions stables ou préréables seront ajoutées à votre projet.
< Project Sdk = " Microsoft.NET.Sdk " >
< PropertyGroup >
< OutputType >Exe</ OutputType >
< TargetFramework >net8.0</ TargetFramework >
</ PropertyGroup >
< ItemGroup >
< PackageReference Include = " Flecs.NET.Debug " Version = " *-* " Condition = " '$(Configuration)' == 'Debug' " />
< PackageReference Include = " Flecs.NET.Release " Version = " *-* " Condition = " '$(Configuration)' == 'Release' " />
</ ItemGroup >
</ Project > FLECS.NET fournit des bibliothèques statiques précompilées qui peuvent être utilisées lorsque PublishAOT est activée. Pour activer la liaison statique, ajoutez <FlecsStaticLink>true</FlecsStaticLink> à un groupe de propriétés. Pour empêcher les bibliothèques partagées d'être copiées dans le répertoire de sortie, ajoutez ExcludeAssets="native" à votre référence de package.
< Project Sdk = " Microsoft.NET.Sdk " >
< PropertyGroup >
< PublishAot >true</ PublishAot >
< FlecsStaticLink >true</ FlecsStaticLink >
</ PropertyGroup >
< ItemGroup >
< PackageReference Include = " Flecs.NET.Debug " Version = " *-* " ExcludeAssets = " native " />
</ ItemGroup >
</ Project >Pour des packages plus à jour, les versions de développement sont disponibles sur le registre des packages GitHub. Les packages sont automatiquement téléchargés sur chaque engagement dans la branche principale.
Pour accéder aux versions de développement à partir de votre projet, vous devez d'abord créer un jeton d'accès personnel GitHub avec la permission read:packages . (Voir Création d'un jeton d'accès personnel (classique))
Une fois que vous avez créé un jeton d'accès personnel, exécutez la commande suivante pour ajouter le flux GitHub en tant que nouvelle source de package. Remplacez YOUR_GITHUB_USERNAME par votre nom d'utilisateur GitHub et YOUR_GITHUB_TOKEN par votre jeton d'accès personnel.
dotnet nuget add source --name " flecs.net " --username " YOUR_GITHUB_USERNAME " --password " YOUR_GITHUB_TOKEN " --store-password-in-clear-text " https://nuget.pkg.github.com/BeanCheeseBurrito/index.json "Vous pouvez maintenant référencer n'importe quel package à partir du flux GitHub!
dotnet add PROJECT package Flecs.NET.Release --version *-build.* < Project Sdk = " Microsoft.NET.Sdk " >
< PropertyGroup >
< OutputType >Exe</ OutputType >
< TargetFramework >net8.0</ TargetFramework >
</ PropertyGroup >
< ItemGroup >
< PackageReference Include = " Flecs.NET.Debug " Version = " *-build.* " />
</ ItemGroup >
</ Project > Par défaut, le flux GitHub sera ajouté à votre fichier global nuget.config et peut être référencé par n'importe quel projet sur votre machine. Si vous souhaitez ajouter le flux à un seul projet / solution, créez un fichier nuget.config à la racine de votre répertoire de projet / solution et exécutez la commande suivante avec l'option --configfile .
dotnet nuget add source --configfile " ./nuget.config " --name " flecs.net " --username " YOUR_GITHUB_USERNAME " --password " YOUR_GITHUB_TOKEN " --store-password-in-clear-text " https://nuget.pkg.github.com/BeanCheeseBurrito/index.json "Pour supprimer le flux GitHub de vos sources de package NuGet, exécutez la commande suivante.
dotnet nuget remove source " flecs.net " Les flux de travail des actions GitHub peuvent être authentifiés à l'aide du secret GITHUB_TOKEN .
- name : Add GitHub source
run : dotnet nuget add source --name "flecs.net" --username "USERNAME" --password "${{ secrets.GITHUB_TOKEN }}" --store-password-in-clear-text "https://nuget.pkg.github.com/BeanCheeseBurrito/index.json" Avertissement
Les forfaits de développement peuvent être supprimés sans avertissement pour libérer de l'espace.
Pour exécuter l'un des exemples de programmes, utilisez dotnet run et définissez la propriété "Exemple" sur le chemin de l'exemple par rapport au projet Flecs.NET.Examples . Chaque niveau du chemin doit être séparé par un soulignement.
Exemple :
dotnet run --project src/Flecs.NET.Examples --property:Example=Entities_Basics Clone le repo et ses sous-modules.
git clone --recursive https://github.com/BeanCheeseBurrito/Flecs.NET.git
cd Flecs.NETExécutez la commande suivante sur la solution pour restaurer toutes les dépendances du projet.
dotnet restoreCompilez l'emballage et les bibliothèques natives. Le compilateur en zig sera automatiquement téléchargé et mis en cache dans votre dossier local Package NuGet. Les bibliothèques natives seront compilées croisées pour Linux, MacOS et Windows.
dotnet buildRéférencez le projet et importez les bibliothèques natives. Vous devriez maintenant pouvoir utiliser FLECS.net à partir de votre projet.
< Project Sdk = " Microsoft.NET.Sdk " >
< PropertyGroup >
< OutputType >Exe</ OutputType >
< TargetFramework >net8.0</ TargetFramework >
</ PropertyGroup >
< ItemGroup >
< ProjectReference Include = " PATH/Flecs.NET/src/Flecs.NET/Flecs.NET.csproj " />
</ ItemGroup >
</ Project >Les liaisons de bas niveau à l'API FLECS C sont pré-générées et incluses dans le projet FLECS.net.bindings par défaut. Si nécessaire, vous pouvez exécuter la commande suivante pour régénérer le fichier de liaisons.
dotnet run --project src/Flecs.NET.BindgenFels.net s'appuie sur la génération de code pour éviter la duplication manuelle de code. Si des modifications sont apportées au projet FLECS.NET.CODEGEN, vous pouvez exécuter la commande suivante pour relancer les générateurs de code. Les fichiers générés seront sortis dans ce dossier.
dotnet run --project src/Flecs.NET.Codegen N'hésitez pas à ouvrir une demande de problème ou de traction. Toutes les contributions sont les bienvenues!
Façons de contribuer: