1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-07-03 06:24:32 +00:00

Add Lua func bone_getCollisionMaskNormal()

This repurposes the (now, after the prev commit) unused Bone::getCollisionMaskNormal()
This commit is contained in:
fgenesis 2023-04-18 01:54:12 +02:00
parent 640f08af13
commit d2c0e3e241
3 changed files with 16 additions and 21 deletions

View file

@ -340,31 +340,16 @@ void Bone::renderCollision(const RenderState& rs) const
CollideQuad::renderCollision(rs);
}
Vector Bone::getCollisionMaskNormal(size_t index)
Vector Bone::getCollisionMaskNormal(Vector pos, float dist) const
{
Vector sum;
size_t num=0;
for (size_t i = 0; i < this->transformedCollisionMask.size(); i++)
{
if (i != index)
{
Vector diff = transformedCollisionMask[index] - transformedCollisionMask[i];
if (diff.isLength2DIn(128))
{
sum += diff;
num++;
}
}
Vector diff = pos - transformedCollisionMask[i];
if (diff.isLength2DIn(dist))
sum += diff;
}
if (!sum.isZero())
{
sum /= num;
sum.normalize2D();
}
sum.normalize2D();
return sum;
}

View file

@ -95,7 +95,7 @@ public:
int originalRenderPass; // stores the render pass originally set in the XML file. For AC_RESET_PASS.
void spawnParticlesFromCollisionMask(const char *p, unsigned intv, int layer, float rotz = 0);
Vector getCollisionMaskNormal(size_t index);
Vector getCollisionMaskNormal(Vector pos, float dist) const;
virtual void renderCollision(const RenderState& rs) const OVERRIDE;