ArxLibertatisProcGenTools 1.0.5
dotnet add package ArxLibertatisProcGenTools --version 1.0.5
NuGet\Install-Package ArxLibertatisProcGenTools -Version 1.0.5
<PackageReference Include="ArxLibertatisProcGenTools" Version="1.0.5" />
<PackageVersion Include="ArxLibertatisProcGenTools" Version="1.0.5" />
<PackageReference Include="ArxLibertatisProcGenTools" />
paket add ArxLibertatisProcGenTools --version 1.0.5
#r "nuget: ArxLibertatisProcGenTools, 1.0.5"
#:package ArxLibertatisProcGenTools@1.0.5
#addin nuget:?package=ArxLibertatisProcGenTools&version=1.0.5
#tool nuget:?package=ArxLibertatisProcGenTools&version=1.0.5
this is a library that is intended to either be referenced from nuget, or imported in powershell scripts (needs powershell 7+)
you can modify or generate levels for arx fatalis with it, programatically
there is an example script called example.ps1
there is also an examplecsg.ps1 which also includes the use of the https://github.com/talanc/DotNetCsg library to use CSG to create level geometry
run docs.ps1 to display the following documentation in plain text
Powershell Documentation:
This is a listing of all relevant classes and functions for generating levels in powershell scripts
Mesh Generators are classes that will generate polygons that will be added to the level. These are available:
ArxLibertatisProcGenTools.Generators.Plane.FloorGenerator<br> Generates a flat surface of a certain size around a center, using a texture generator<br> Constructors:<br> FloorGenerator()<br> Properties:<br> ITextureGenerator TextureGenerator<br> Vector2 Size<br> Vector3 Center<br> Methods:<br> IEnumerable`1 GetPolygons()<br> <br> ArxLibertatisProcGenTools.Generators.Plane.QuadGenerator<br> Generates a single quad in a certain orientation<br> Constructors:<br> QuadGenerator()<br> Properties:<br> Vector3 Center<br> Single Width<br> Single Height<br> Vector3 Normal<br> Vector3 WorldUp<br> Single MinU<br> Single MaxU<br> Single MinV<br> Single MaxV<br> Int16 Room<br> PolyType PolyType<br> String TexturePath<br> Single TransVal<br> Methods:<br> IEnumerable`1 GetPolygons()<br> Polygon GetPolygon()<br> <br> ArxLibertatisProcGenTools.Generators.Mesh.CSGGenerator<br> Adds CSG solids to the level<br> Constructors:<br> CSGGenerator()<br> Properties:<br> Solid CsgSolid<br> Vector3 PositionOffset<br> Vector3 Scale<br> PolyType PolyType<br> Int16 Room<br> ITextureGenerator TextureGenerator<br> Methods:<br> IEnumerable`1 GetPolygons()<br> <br> ArxLibertatisProcGenTools.Generators.Mesh.OBJImporter<br> Imports obj files, only supports triangulated files. set Pos/Rot/Scale using WorldMatrix<br> Constructors:<br> OBJImporter(System.String objFilePath, System.String mtlFilePath)<br> Properties:<br> Matrix4x4 WorldMatrix<br> Int16 Room<br> Methods:<br> IEnumerable`1 GetPolygons()<br> <br>
Light generators generate lights that will be added to the level. These are available:
ArxLibertatisProcGenTools.Generators.Light.RandomLightGenerator<br> Generates lights at random positions within its shape, with random attributes dictated by their shapes<br> Constructors:<br> RandomLightGenerator()<br> Properties:<br> Int32 Count<br> IShape PositionShape<br> IShape ColorShape<br> IValue FalloffStart<br> IValue FalloffEnd<br> IValue Intensity<br> Methods:<br> IEnumerable`1 GetLights()<br> <br>
Texture generators generate texture names depending on position. These are available:
ArxLibertatisProcGenTools.Generators.Texture.SingleTexture<br> Returns just a fixed texture<br> Constructors:<br> SingleTexture(System.String path)<br> Properties:<br> Methods:<br> String GetTexturePath(Int32 polygonIndex)<br> <br>
Modifiers modify the currently existing polygons. These are available:
ArxLibertatisProcGenTools.Modifiers.DetailEnhancer<br> Generates extra polygons in an area so it can be sculpted to a greater detail by modifiers<br> Constructors:<br> DetailEnhancer()<br> Properties:<br> IShape Shape<br> Methods:<br> Void Apply(ArxLibertatisEditorIO.WellDoneIO.WellDoneArxLevel wdl)<br> <br> ArxLibertatisProcGenTools.Modifiers.Rumble<br> Adds random offsets(noise) to polygons in an area<br> Constructors:<br> Rumble()<br> Properties:<br> Single Magnitude<br> IShape Shape<br> IValue NoiseValue<br> Methods:<br> Void Apply(ArxLibertatisEditorIO.WellDoneIO.WellDoneArxLevel wdl)<br> <br>
Shapes can be used in a lot of ways to shape the output of other classes. These are available:
ArxLibertatisProcGenTools.Shapes.Cuboid<br> The shape of a cube<br> Constructors:<br> Cuboid()<br> Properties:<br> Vector3 Min<br> Vector3 Max<br> Methods:<br> Vector3 GetAffectedness(System.Numerics.Vector3 position)<br> Vector3 GetRandomPosition()<br> <br> ArxLibertatisProcGenTools.Shapes.Everywhere<br> Constructors:<br> Everywhere()<br> Properties:<br> Methods:<br> Vector3 GetAffectedness(System.Numerics.Vector3 position)<br> Vector3 GetRandomPosition()<br> <br> ArxLibertatisProcGenTools.Shapes.FixedVector<br> Returns a fixed value<br> Constructors:<br> FixedVector()<br> FixedVector(System.Numerics.Vector3 value)<br> Properties:<br> Vector3 Value<br> Methods:<br> Vector3 GetAffectedness(System.Numerics.Vector3 position)<br> Vector3 GetRandomPosition()<br> <br> ArxLibertatisProcGenTools.Shapes.NullShape<br> Always returns zero<br> Constructors:<br> NullShape()<br> Properties:<br> Methods:<br> Vector3 GetAffectedness(System.Numerics.Vector3 position)<br> Vector3 GetRandomPosition()<br> <br> ArxLibertatisProcGenTools.Shapes.MultiplyShape<br> returns the multiplication of two shapes<br> Constructors:<br> MultiplyShape()<br> Properties:<br> IShape Shape1<br> IShape Shape2<br> Methods:<br> Vector3 GetAffectedness(System.Numerics.Vector3 position)<br> Vector3 GetRandomPosition()<br> <br> ArxLibertatisProcGenTools.Shapes.Sphere<br> the shape of a sphere<br> Constructors:<br> Sphere()<br> Properties:<br> Vector3 Center<br> Single Radius<br> Single Falloff<br> the falloff area around the edge of the sphere (r:500, f:200 ⇒ falloff from 400 to 600)<br> Methods:<br> Vector3 GetAffectedness(System.Numerics.Vector3 position)<br> Vector3 GetRandomPosition()<br> <br>
Values are similar to Shapes, just one dimensional. These are available:
ArxLibertatisProcGenTools.Values.FixedValue<br> A fixed value<br> Constructors:<br> FixedValue()<br> FixedValue(Single value)<br> FixedValue(Double value)<br> Properties:<br> Single Value<br> Methods:<br> Single GetValue(System.Numerics.Vector3 input)<br> <br> ArxLibertatisProcGenTools.Values.NullValue<br> Always returns zero<br> Constructors:<br> NullValue()<br> Properties:<br> Methods:<br> Single GetValue(System.Numerics.Vector3 input)<br> <br> ArxLibertatisProcGenTools.Values.RandomValue<br> random value (uniform)<br> Constructors:<br> RandomValue()<br> Properties:<br> Single Min<br> Single Max<br> Methods:<br> Single GetValue(System.Numerics.Vector3 input)<br> <br> ArxLibertatisProcGenTools.Values.SimplexNoiseValue<br> random value (simplex, like perlin but better), get Noise property to change parameters<br> Constructors:<br> SimplexNoiseValue()<br> Properties:<br> Simplex Noise<br> Methods:<br> Single GetValue(System.Numerics.Vector3 input)<br> <br>
In addition to these classes, there is the ScriptFunc class, which contains static functions that make scripting easier:
Properties:<br> static WellDoneArxLevel Level<br> static Boolean SkipLighting<br> Skip the lighting calculation on save<br> static Boolean Markdown<br> Methods:<br> static Void Clear()<br> deletes the level currently in memory and resets parameters. required cause its persistent during the powershell session<br> static Void SetDataDir(System.String dataDir)<br> Set data dir that the level is saved to (and can be loaded from)<br> static Void LoadLevel(System.String name)<br> Loads a level to be modified<br> static Void SaveLevel(System.String name)<br> Saves the level<br> static Void Apply(ArxLibertatisProcGenTools.Generators.IMeshGenerator meshGenerator)<br> Applies the Mesh Generator to the level<br> static Void Apply(ArxLibertatisProcGenTools.Modifiers.IModifier meshModifier)<br> Applies the Modifier to the level<br> static Void Apply(ArxLibertatisProcGenTools.Generators.ILightGenerator lightGenerator)<br> Applies the Light Generator to the level<br> static Void SetLightingProfile(ArxLibertatisLightingCalculatorLib.LightingProfile lightingProfile)<br> static Void SetPlayerStart(System.Numerics.Vector3 position)<br> static Void KillRunningArx()<br> static Void StartArxFatalis(Boolean noClip, Boolean killRunningArx)<br> static Void StartArxFatalis(Int32 levelId, Boolean noClip, Boolean killRunningArx)<br> static Void PrintPsDocs()<br> <br> Additionally you may change the WellDoneArxLevel of the ScriptFunc class however you like. You might need to access classes from ArxLibertatisEditorIO for this<br>
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- ArxLibertatisEditorIO (>= 2.1.8)
- ArxLibertatisLightingCalculatorLib (>= 1.1.3)
- DotNetCsg (>= 1.0.1)
- SharpNoise (>= 0.12.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.