A person by the name of nighttimeninja314 came up to me today and asked me if I could post his client idea on the devforums. I don’t know if it’s allowed or not, but here goes:
“If you could post this on Suggestions and Idea thread on my behalf, that’d be amazing.”
"Currently, the only parameter the BasePart.Touched event provides is the part that was touched. Because we do not have access to mesh data for irregularly shaped objects (MeshParts, CSG, Etc), It would be extremely helpful if we could expand the event so that it contained the following parameters.
(Formatted similarly to the wiki’s API class)
Parameters:
OtherPart
Type : BasePart
Center
Type : Vector3
MTV
Type : Vector3
The parameter “Center” would essentially be the center of the collision location. For example, if the main part is exactly on stud above the touched part and they both had the same size, center would be the very center of the touched part’s top surface. This parameter would return a Vector3 if the touched part is either on the surface or intersecting the main part. Otherwise, it would return nil.
The parameter “MTV” (Minimum Translation Vector) is a vector that describes the minimum amount of movement the touched part would require to stop intersecting the main part. If the touched part is on the surface or is not intersecting the main part, it would return Vector3(0,0,0)
Now, I can see that this may be a bit expensive to calculate every time a collision is made, so if this is not possible, I’d recommend calculating the new parameters through the following methods.
part:CalculateCollisionCenter(otherPart)
and
part:CalculateMTV(otherPart)
(Naming can change)
Thank you for reading this."
I hope he gets support for this, it seems like a very good idea!
(If an idea like this has been posted before I am sorry.)