Skip to content

Commit d30c55f

Browse files
author
googer
committed
docs: update doc
1 parent 4b21954 commit d30c55f

File tree

1 file changed

+100
-98
lines changed

1 file changed

+100
-98
lines changed

docs/README.md

Lines changed: 100 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -1,181 +1,183 @@
11
# GWater 2 Public API
22

3-
![cl] `gwater2.solver: FlexSolver`
4-
   FlexSolver used for world water.
5-
![cl] `gwater2.renderer: FlexRenderer`
3+
![cl] `gwater2.solver: FlexSolver` \
4+
   FlexSolver used for world water. \
5+
![cl] `gwater2.renderer: FlexRenderer` \
66
   FlexRenderer used for world water.
77

8-
![cl] `gwater2.reset_solver(err: boolean)`
9-
   Creates map collider and initializes world bounds.
10-
![sh] `gwater2.quick_matrix(pos: Vector?, ang: Angle?, scale: number?) -> VMatrix: mtrx`
8+
![cl] `gwater2.reset_solver(err: boolean)` \
9+
   Creates map collider and initializes world bounds. \
10+
![sh] `gwater2.quick_matrix(pos: Vector?, ang: Angle?, scale: number?) -> VMatrix: mtrx` \
1111
   Creates quick matrix.
1212

13-
![sv] `gwater2.ChangeParameter(parameter: string, value: any, final: boolean, sender: Player?)`
13+
![sv] `gwater2.ChangeParameter(parameter: string, value: any, final: boolean, sender: Player?)` \
1414
   Gets parameter' value from solver. \
1515
   See below for valid parameter list.
1616

17-
![sh] `gwater2.ResetSolver()`
18-
   Resets solver on every client, removing all regular and diffuse particles.
19-
![sh] `gwater2.RemoveCloth()`
17+
![sh] `gwater2.ResetSolver()` \
18+
   Resets solver on every client, removing all regular and diffuse particles. \
19+
![sh] `gwater2.RemoveCloth()` \
2020
   Resets solver cloth on every client, removing all regular particles associated with cloth.
2121

22-
![sv] `gwater2.AddCloth(mtrx: VMatrix, size: Vector, particle_data: ParticleData?)`
22+
![sv] `gwater2.AddCloth(mtrx: VMatrix, size: Vector, particle_data: ParticleData?)` \
2323
   Adds cloth. \
2424
   Matrix translation specifies position. \
25-
   Matrix rotation specifies rotation.
26-
![sv] `gwater2.AddParticle(pos: Vector, particle_data: ParticleData?)`
27-
   Adds a single particle.
28-
![sv] `gwater2.AddCylinder(mtrx: VMatrix, size: number, particle_data: ParticleData?)`
25+
   Matrix rotation specifies rotation. \
26+
![sv] `gwater2.AddParticle(pos: Vector, particle_data: ParticleData?)` \
27+
   Adds a single particle. \
28+
![sv] `gwater2.AddCylinder(mtrx: VMatrix, size: number, particle_data: ParticleData?)` \
2929
   Adds cylinder of particles. \
3030
   Matrix translation specifies position. \
31-
   Matrix rotation specifies rotation.
32-
![sv] `gwater2.AddCube(mtrx: VMatrix, size: number, particle_data: ParticleData?))`
31+
   Matrix rotation specifies rotation. \
32+
![sv] `gwater2.AddCube(mtrx: VMatrix, size: number, particle_data: ParticleData?))` \
3333
   Adds cube of particles. \
3434
   Matrix translation specifies position. \
35-
   Matrix rotation specifies rotation.
36-
![sv] `gwater2.AddSphere(mtrx: VMatrix, radius: number, particle_data: ParticleData?))`
35+
   Matrix rotation specifies rotation. \
36+
![sv] `gwater2.AddSphere(mtrx: VMatrix, radius: number, particle_data: ParticleData?))` \
3737
   Adds sphere of particles. \
38-
   Matrix translation specifies position.
39-
![sv] `gwater2.AddForceField(pos: Vector, radius: number, strength: number, mode: integer, linear: boolean)`
40-
   Adds particle forcefield.
41-
![sv] `gwater2.AddModel(mtrx: VMatrix, model: string, particle_data: ParticleData?) -> boolean: success`
42-
   Adds particles in form of model.
43-
![sv] `gwater2.RemoveSphere(mtrx: VMatrix)`
44-
   **THIS IS NOT AN ACTUAL FUNCTION YET**
38+
   Matrix translation specifies position. \
39+
![sv] `gwater2.AddForceField(pos: Vector, radius: number, strength: number, mode: integer, linear: boolean)` \
40+
   Adds particle forcefield. \
41+
![sv] `gwater2.AddModel(mtrx: VMatrix, model: string, particle_data: ParticleData?) -> boolean: success` \
42+
   Adds particles in form of model. \
43+
![sv] `gwater2.RemoveSphere(mtrx: VMatrix)` \
44+
   **THIS IS NOT AN ACTUAL FUNCTION YET** \
4545
   Removes sphere of particles. \
4646
   Matrix translarion specifies position. \
47-
   Matrix scale specifies size.
48-
![sv] `gwater2.RemoveCube(mtrx: VMatrix)`
49-
   **THIS IS NOT AN ACTUAL FUNCTION YET**
47+
   Matrix scale specifies size. \
48+
![sv] `gwater2.RemoveCube(mtrx: VMatrix)` \
49+
   **THIS IS NOT AN ACTUAL FUNCTION YET** \
5050
   Removes cube of particles. \
5151
   Matrix translarion specifies position. \
5252
   Matrix scale specifies size.
5353

5454
# GWater 2 Internal API
5555
## ![cl] FlexSolver
56-
![cl] `FlexSolver(limit: integer, diffuse_limit: integer?) -> FlexSolver: solver`
56+
![cl] `FlexSolver(limit: integer, diffuse_limit: integer?) -> FlexSolver: solver` \
5757
   Creates new FlexSolver object with specified max particle and diffuse limits. \
5858
   If `diffuse_limit` is unspecified, defaults to `limit`
5959

60-
![cl] `FlexSolver:Destroy()`
60+
![cl] `FlexSolver:Destroy()` \
6161
   Destroys FlexSolver, freeing up all buffers and removing all particles. \
62-
   Trying to use destroyed FlexSolver will result in nil index errors.
63-
![cl] `FlexSolver:InitBounds(mins: Vector, maxs: Vector)`
64-
   Initialises simulation bounds. Particles won't be able to leave this space
65-
![cl] `FlexSolver:Tick(delta: number) -> boolean: ticked`
62+
   Trying to use destroyed FlexSolver will result in nil index errors. \
63+
![cl] `FlexSolver:InitBounds(mins: Vector, maxs: Vector)` \
64+
   Initialises simulation bounds. Particles won't be able to leave this space. \
65+
![cl] `FlexSolver:Tick(delta: number) -> boolean: ticked` \
6666
   Ticks solver with specified delta (time that has passed since last tick, in seconds). \
6767
   Parameters may behave incorrectly with different deltas. \
6868
   High or low deltas can result in particles passing through stuff or becoming invalid.
6969

70-
![cl] `FlexSolver:AddMapCollider(idx: integer, mapname: string)`
71-
   Attempts to add a collider from map bsp.
72-
![cl] `FlexSolver:AddConcaveCollider(idx: integer, concave: table<Vector>, pos: Vector?, ang: Angle?)`
70+
![cl] `FlexSolver:AddMapCollider(idx: integer, mapname: string)` \
71+
&nbsp;&nbsp; Attempts to add a collider from map bsp. \
72+
![cl] `FlexSolver:AddConcaveCollider(idx: integer, concave: table<Vector>, pos: Vector?, ang: Angle?)` \
7373
&nbsp;&nbsp; Adds concave collider. \
74-
&nbsp;&nbsp; `concave` parameter has to be a sequential table with length divisible by 3, with each 3 vertices specifying a triangle.
75-
![cl] `FlexSolver:AddConvexCollider(idx: integer, convex: table<Vector>, pos: Vector?, ang: Angle?)`
74+
&nbsp;&nbsp; `concave` parameter has to be a sequential table with length divisible by 3, with each 3 vertices specifying a triangle. \
75+
![cl] `FlexSolver:AddConvexCollider(idx: integer, convex: table<Vector>, pos: Vector?, ang: Angle?)` \
7676
&nbsp;&nbsp; Adds a convex collider. \
77-
&nbsp;&nbsp; `convex` parameter has to be a sequential table with length divisible by 3, with each 3 vertices specifying a triangle.
77+
&nbsp;&nbsp; `convex` parameter has to be a sequential table with length divisible by 3, with each 3 vertices specifying a triangle. \
7878
![cl] `FlexSolver:RemoveCollider(idx: integer)`
7979
&nbsp;&nbsp; Removes collider with specified index. \
8080
&nbsp;&nbsp; Does nothing if collider doesn't exist.
8181

82-
![cl] `FlexSolver:SetColliderEnabled(idx: integer, enabled: bool)`
83-
&nbsp;&nbsp; Enables collider.
84-
![cl] `FlexSolver:SetColliderPos(idx: integer, pos: Vector, dont_lerp: boolean?)`
85-
&nbsp;&nbsp; Sets collider position, telling FleX that it moved unless `dont_lerp` is true.
86-
![cl] `FlexSolver:SetColliderAng(idx: integer, ang: Angle, dont_lerp: boolean?)`
82+
![cl] `FlexSolver:SetColliderEnabled(idx: integer, enabled: bool)` \
83+
&nbsp;&nbsp; Enables collider. \
84+
![cl] `FlexSolver:SetColliderPos(idx: integer, pos: Vector, dont_lerp: boolean?)` \
85+
&nbsp;&nbsp; Sets collider position, telling FleX that it moved unless `dont_lerp` is true. \
86+
![cl] `FlexSolver:SetColliderAng(idx: integer, ang: Angle, dont_lerp: boolean?)` \
8787
&nbsp;&nbsp; Sets collider angle, telling FleX that it rotated unless `dont_lerp` is true.
8888

89-
![cl] `FlexSolver:ApplyContacts(radius: unknown, dampening1: unknown, buoyancy: unknown, dampening2: unknown)`
90-
![cl] `FlexSolver:IterateColliders(iterator: unknown)`
89+
![cl] `FlexSolver:ApplyContacts(radius: unknown, dampening1: unknown, buoyancy: unknown, dampening2: unknown)` \
90+
&nbsp;&nbsp; TODO: Write description. \
91+
![cl] `FlexSolver:IterateColliders(iterator: unknown)` \
92+
&nbsp;&nbsp; TODO: Write description.
9193

92-
![cl] `FlexSolver:GetMaxDiffuseParticles() -> integer: max_diffuse`
93-
&nbsp;&nbsp; Returns solver' diffuse particles limit.
94-
![cl] `FlexSolver:GetMaxParticles() -> integer: max_particles`
95-
&nbsp;&nbsp; Returns solver' regular particles limit.
96-
![cl] `FlexSolver:GetActiveDiffuseParticles() -> integer: active_diffuse`
94+
![cl] `FlexSolver:GetMaxDiffuseParticles() -> integer: max_diffuse` \
95+
&nbsp;&nbsp; Returns solver' diffuse particles limit. \
96+
![cl] `FlexSolver:GetMaxParticles() -> integer: max_particles` \
97+
&nbsp;&nbsp; Returns solver' regular particles limit. \
98+
![cl] `FlexSolver:GetActiveDiffuseParticles() -> integer: active_diffuse` \
9799
&nbsp;&nbsp; Returns active (alive and simulated) diffuse particles count. \
98-
&nbsp;&nbsp; This will sometimes return the previous active value after a solver reset.
99-
&nbsp;&nbsp; To get around this, do a check with normal particles:
100+
&nbsp;&nbsp; This will sometimes return the previous active value after a solver reset. \
101+
&nbsp;&nbsp; To get around this, do a check with normal particles: \
100102
```lua
101103
local diffuse = solver:GetActiveDiffuseParticles()
102104
if solver:GetActiveParticles() <= 0 then
103105
diffuse = 0
104106
end
105107
```
106-
![cl] `FlexSolver:GetActiveDiffuseParticlesPos() -> Vector: pos`
107-
&nbsp;&nbsp; Gets average position of all active (alive and simulated) diffuse particles.
108-
![cl] `FlexSolver:GetActiveParticles() -> integer: active_particles`
109-
&nbsp;&nbsp; Returns active (alive and simulated) regular particles count.
110-
![cl] `FlexSolver:GetParticlesInRadius(pos: Vector, radius: number, search_limit: integer?) -> integer: in_radius`
108+
![cl] `FlexSolver:GetActiveDiffuseParticlesPos() -> Vector: pos` \
109+
&nbsp;&nbsp; Gets average position of all active (alive and simulated) diffuse particles. \
110+
![cl] `FlexSolver:GetActiveParticles() -> integer: active_particles` \
111+
&nbsp;&nbsp; Returns active (alive and simulated) regular particles count. \
112+
![cl] `FlexSolver:GetParticlesInRadius(pos: Vector, radius: number, search_limit: integer?) -> integer: in_radius` \
111113
&nbsp;&nbsp; Returns amount of particles in `radius` near `pos`. \
112114
&nbsp;&nbsp; `search_limit` limits amount of particles returned, increasing performance.
113115

114-
![cl] `FlexSolver:GetParameter(parameter: string) -> number: value`
116+
![cl] `FlexSolver:GetParameter(parameter: string) -> number: value` \
115117
&nbsp;&nbsp; Gets parameter' value from solver. Will error if parameter is invalid.\
116-
&nbsp;&nbsp; See below for valid parameters.
117-
![cl] `FlexSolver:SetParameter(parameter: string, value: number)`
118+
&nbsp;&nbsp; See below for valid parameters. \
119+
![cl] `FlexSolver:SetParameter(parameter: string, value: number)` \
118120
&nbsp;&nbsp; Sets parameter' value in solver. Will error if parameter is invalid. \
119-
&nbsp;&nbsp; See below for valid parameters.
120-
![cl] `FlexSolver:EnableDiffuse(enable: boolean)`
121+
&nbsp;&nbsp; See below for valid parameters. \
122+
![cl] `FlexSolver:EnableDiffuse(enable: boolean)` \
121123
&nbsp;&nbsp; Enables or disables diffuse particles.
122124

123-
![cl] `FlexSolver:Reset()`
124-
&nbsp;&nbsp; Resets solver, removing all regular and diffuse particles.
125-
![cl] `FlexSolver:ResetCloth()`
126-
&nbsp;&nbsp; Resets solver cloth, removing all regular particles associated with cloth.
127-
![cl] `FlexSolver:ResetDiffuse()`
128-
&nbsp;&nbsp; Resets solver diffuse particles, removing all of them.
125+
![cl] `FlexSolver:Reset()` \
126+
&nbsp;&nbsp; Resets solver, removing all regular and diffuse particles. \
127+
![cl] `FlexSolver:ResetCloth()` \
128+
&nbsp;&nbsp; Resets solver cloth, removing all regular particles associated with cloth. \
129+
![cl] `FlexSolver:ResetDiffuse()` \
130+
&nbsp;&nbsp; Resets solver diffuse particles, removing all of them. \
129131

130-
![cl] `FlexSolver:AddCloth(mtrx: VMatrix, size: Vector, particle_data: ParticleData?)`
132+
![cl] `FlexSolver:AddCloth(mtrx: VMatrix, size: Vector, particle_data: ParticleData?)` \
131133
&nbsp;&nbsp; Adds cloth. \
132134
&nbsp;&nbsp; Matrix translarion specifies position. \
133-
&nbsp;&nbsp; Matrix rotation specifies rotation.
134-
![cl] `FlexSolver:AddParticle(pos: Vector, particle_data: ParticleData?)`
135-
&nbsp;&nbsp; Adds a single particle.
136-
![cl] `FlexSolver:AddCylinder(mtrx: VMatrix, size: number, particle_data: ParticleData?)`
135+
&nbsp;&nbsp; Matrix rotation specifies rotation. \
136+
![cl] `FlexSolver:AddParticle(pos: Vector, particle_data: ParticleData?)` \
137+
&nbsp;&nbsp; Adds a single particle. \
138+
![cl] `FlexSolver:AddCylinder(mtrx: VMatrix, size: number, particle_data: ParticleData?)` \
137139
&nbsp;&nbsp; Adds cylinder of particles. \
138140
&nbsp;&nbsp; Matrix translation specifies position. \
139-
&nbsp;&nbsp; Matrix rotation specifies rotation.
140-
![cl] `FlexSolver:AddCube(mtrx: VMatrix, size: number, particle_data: ParticleData?))`
141+
&nbsp;&nbsp; Matrix rotation specifies rotation. \
142+
![cl] `FlexSolver:AddCube(mtrx: VMatrix, size: number, particle_data: ParticleData?))` \
141143
&nbsp;&nbsp; Adds cube of particles. \
142144
&nbsp;&nbsp; Matrix translation specifies position. \
143-
&nbsp;&nbsp; Matrix rotation specifies rotation.
144-
![cl] `FlexSolver:AddSphere(mtrx: VMatrix, radius: number, particle_data: ParticleData?))`
145+
&nbsp;&nbsp; Matrix rotation specifies rotation. \
146+
![cl] `FlexSolver:AddSphere(mtrx: VMatrix, radius: number, particle_data: ParticleData?))` \
145147
&nbsp;&nbsp; Adds sphere of particles. \
146-
&nbsp;&nbsp; Matrix translation specifies position.
147-
![cl] `FlexSolver:AddForceField(pos: Vector, radius: number, strength: number, mode: integer, linear: boolean)`
148-
&nbsp;&nbsp; Adds particle forcefield.
149-
![cl] `FlexSolver:AddMesh(mtrx: VMatrix, mesh: table<Vector>, particle_data: ParticleData?) -> boolean: success`
148+
&nbsp;&nbsp; Matrix translation specifies position. \
149+
![cl] `FlexSolver:AddForceField(pos: Vector, radius: number, strength: number, mode: integer, linear: boolean)` \
150+
&nbsp;&nbsp; Adds particle forcefield. \
151+
![cl] `FlexSolver:AddMesh(mtrx: VMatrix, mesh: table<Vector>, particle_data: ParticleData?) -> boolean: success` \
150152
&nbsp;&nbsp; Adds mesh...? \
151-
&nbsp;&nbsp; TODO: Do further testing.
152-
![cl] `FlexSolver:RemoveSphere(mtrx: VMatrix)`
153+
&nbsp;&nbsp; TODO: Do further testing. \
154+
![cl] `FlexSolver:RemoveSphere(mtrx: VMatrix)` \
153155
&nbsp;&nbsp; Removes sphere of particles. \
154156
&nbsp;&nbsp; Matrix translarion specifies position. \
155-
&nbsp;&nbsp; Matrix scale specifies size.
156-
![cl] `FlexSolver:RemoveCube(mtrx: VMatrix)`
157+
&nbsp;&nbsp; Matrix scale specifies size. \
158+
![cl] `FlexSolver:RemoveCube(mtrx: VMatrix)` \
157159
&nbsp;&nbsp; Removes cube of particles. \
158160
&nbsp;&nbsp; Matrix translarion specifies position. \
159161
&nbsp;&nbsp; Matrix scale specifies size.
160162

161-
![cl] `FlexSolver:RenderParticles(iterator: fun(pos: Vector))`
163+
![cl] `FlexSolver:RenderParticles(iterator: fun(pos: Vector))` \
162164
&nbsp;&nbsp; Iterates over all particle and calls a function to render particles.
163165

164166
## FlexRenderer
165-
![cl] `FlexRenderer() -> FlexRenderer: renderer`
167+
![cl] `FlexRenderer() -> FlexRenderer: renderer` \
166168
&nbsp;&nbsp; Creates new FlexRenderer object.
167169

168-
![cl] `FlexRenderer:BuildMeshes(solver: FlexSolver, diffuse_radius: radius, cull: boolean)`
169-
&nbsp;&nbsp; Builds meshes of FlexSolver object.
170-
![cl] `FlexRenderer:DrawCloth()`
171-
&nbsp;&nbsp; Draws cloth meshes.
172-
![cl] `FlexRenderer:DrawWater()`
173-
&nbsp;&nbsp; Draws water meshes.
174-
![cl] `FlexRenderer:DrawDiffuse()`
170+
![cl] `FlexRenderer:BuildMeshes(solver: FlexSolver, diffuse_radius: radius, cull: boolean)` \
171+
&nbsp;&nbsp; Builds meshes of FlexSolver object. \
172+
![cl] `FlexRenderer:DrawCloth()` \
173+
&nbsp;&nbsp; Draws cloth meshes. \
174+
![cl] `FlexRenderer:DrawWater()` \
175+
&nbsp;&nbsp; Draws water meshes. \
176+
![cl] `FlexRenderer:DrawDiffuse()` \
175177
&nbsp;&nbsp; Draws diffuse meshes.
176178

177179
## Utilities
178-
![cl] `GWATER2_SET_CONTACTS(entindex: integer, contacts: integer)`
180+
![cl] `GWATER2_SET_CONTACTS(entindex: integer, contacts: integer)` \
179181
&nbsp;&nbsp; Will actually work only if client is listen server host. \
180182
&nbsp;&nbsp; Sets `Entity(entindex).GWATER2_CONTACTS` on server without networking.
181183

0 commit comments

Comments
 (0)