@@ -10,10 +10,11 @@ The basic controller functions were modified from Prop To Mesh ()
1010--]]
1111
1212local ACF = ACF
13- local Entities = ACF .Classes .Entities
13+ local Entities = ACF .Classes .Entities
1414local ProcArmorTypes = ACF .Classes .ProcArmorTypes
15- local Messages = ACF .Utilities .Messages
16- local IsValid = IsValid
15+ local Messages = ACF .Utilities .Messages
16+ local IsValid = IsValid
17+ local debugoverlay = debugoverlay
1718
1819TOOL .Category = (ACF .CustomToolCategory and ACF .CustomToolCategory :GetBool ()) and " ACF" or " Construction"
1920TOOL .Name = " #tool.acfarmormesh.name"
@@ -244,40 +245,23 @@ elseif SERVER then -- Serverside-only stuff
244245 local Phys = Entity :GetPhysicsObject ()
245246 local Mesh = Phys and Phys :GetMeshConvexes ()
246247 if Mesh then
247- local MeshData = { Verts = {}, Tris = {} }
248- local Lookup = {}
249-
250- local function GetIndex (Pos )
251- local Key = Pos .x .. " " .. Pos .y .. " " .. Pos .z
252- local Index = Lookup [Key ]
253- if not Index then
254- MeshData .Verts [# MeshData .Verts + 1 ] = Pos
255- Index = # MeshData .Verts
256- Lookup [Key ] = Index
257- end
258- return Index
259- end
248+ ACF .ProcessMesh (Entity , Mesh )
249+
250+ local MeshData = Entity .ACF_Volumetric_Mesh
251+ local Verts = MeshData .Verts
260252
261- for Index , Convex in ipairs (Mesh ) do
253+ for Index , ConvexTris in ipairs (MeshData . Convexes ) do
262254 local Col = HSVToColor ((Index * 47 ) % 360 , 1 , 1 )
263255 Col .a = 150
264256
265- local Average = Vector ()
266- for I = 1 , # Convex , 3 do
267- local A = Phys :LocalToWorld (Convex [I ].pos )
268- local B = Phys :LocalToWorld (Convex [I + 1 ].pos )
269- local C = Phys :LocalToWorld (Convex [I + 2 ].pos )
270-
271- MeshData .Tris [# MeshData .Tris + 1 ] = { GetIndex (A ), GetIndex (B ), GetIndex (C ) }
272-
273- debugoverlay .Triangle (A , B , C , 5 , Col , true )
274- Average = Average + A + B + C
257+ local AveragePos = Vector (0 , 0 , 0 )
258+ for _ , Tri in ipairs (ConvexTris ) do
259+ debugoverlay .Triangle (Verts [Tri [1 ]], Verts [Tri [2 ]], Verts [Tri [3 ]], 5 , Col , true )
260+ AveragePos = AveragePos + (Verts [Tri [1 ]] + Verts [Tri [2 ]] + Verts [Tri [3 ]])
275261 end
276- Average = Average / (# Convex / 3 * 3 )
277- debugoverlay .Text (Average , Index , 5 , Col , true )
262+ AveragePos = AveragePos / (3 * # ConvexTris )
263+ debugoverlay .Text (AveragePos , tostring ( Index ) , 5 , Col , true )
278264 end
279-
280- Entity .ACF_Armor_Mesh = MeshData
281265 end
282266 end
283267 return true
0 commit comments