diff --git a/plugins/eve-plugin-fields/GameCult.Eve.PluginFields.csproj b/plugins/eve-plugin-fields/GameCult.Eve.PluginFields.csproj
index 74057f1..4e29428 100644
--- a/plugins/eve-plugin-fields/GameCult.Eve.PluginFields.csproj
+++ b/plugins/eve-plugin-fields/GameCult.Eve.PluginFields.csproj
@@ -6,7 +6,7 @@
Runtime-neutral C# contracts for gamecult.fields documents.
$(MSBuildThisFileDirectory)..\..\..\CultLib
GameCult.Eve.PluginFields
- 0.2.0
+ 0.2.1
diff --git a/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/README.md b/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/README.md
index 8584a0c..dd120eb 100644
--- a/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/README.md
+++ b/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/README.md
@@ -3,3 +3,9 @@
This package owns the portable C# view of `gamecult.fields.*` documents. It has
no Unity rendering, provider state, transport, or command authority. Providers
implement these read-only interfaces; Unity runtime adapters consume them.
+
+`PowerPulse` is the portable compact-support radial falloff
+`pow(saturate(1 - pow(distance01 * scale, 2)), exponent)`. Producers publish
+`FalloffScale` and `FalloffExponent` alongside each SoA splat. Missing parameter
+entries retain the neutral defaults `1` and `1`, so older v1 documents remain
+readable.
diff --git a/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/Runtime/EveFieldsContracts.cs b/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/Runtime/EveFieldsContracts.cs
index 075a8e4..d3133f7 100644
--- a/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/Runtime/EveFieldsContracts.cs
+++ b/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/Runtime/EveFieldsContracts.cs
@@ -51,6 +51,7 @@ namespace GameCult.Eve.PluginFields
public const int Linear = 1;
public const int Smooth = 2;
public const int InverseSmooth = 3;
+ public const int PowerPulse = 4;
}
public interface IEveFieldsViewport
@@ -99,6 +100,8 @@ namespace GameCult.Eve.PluginFields
IReadOnlyList PhaseY { get; }
IReadOnlyList AnimationSpeed { get; }
IReadOnlyList SourceFlags { get; }
+ IReadOnlyList FalloffScale { get; }
+ IReadOnlyList FalloffExponent { get; }
}
public interface IEveFieldsSplatsDocument
diff --git a/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/Runtime/EveFieldsDocuments.cs b/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/Runtime/EveFieldsDocuments.cs
index b1f6189..c33679d 100644
--- a/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/Runtime/EveFieldsDocuments.cs
+++ b/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/Runtime/EveFieldsDocuments.cs
@@ -74,5 +74,7 @@ namespace GameCult.Eve.PluginFields
[Key(19)] public IReadOnlyList PhaseY { get; set; } = Array.Empty();
[Key(20)] public IReadOnlyList AnimationSpeed { get; set; } = Array.Empty();
[Key(21)] public IReadOnlyList SourceFlags { get; set; } = Array.Empty();
+ [Key(22)] public IReadOnlyList FalloffScale { get; set; } = Array.Empty();
+ [Key(23)] public IReadOnlyList FalloffExponent { get; set; } = Array.Empty();
}
}
diff --git a/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/package.json b/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/package.json
index 4459e23..905acb0 100644
--- a/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/package.json
+++ b/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields/package.json
@@ -1,6 +1,6 @@
{
"name": "org.gamecult.eve.plugin-fields",
- "version": "0.2.0",
+ "version": "0.2.1",
"displayName": "Eve Fields Plugin Contracts",
"description": "Runtime-neutral C# contracts for gamecult.fields documents.",
"unity": "2021.3",