Merge branch 'development' into LYN-4501

Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
This commit is contained in:
John Jones-Steele
2021-07-12 14:24:05 +01:00
6 changed files with 480 additions and 5 deletions
@@ -3252,6 +3252,7 @@ LUA_API const Node* lua_getDummyNode()
else if (Internal::LuaScriptNumber<short>::FromStack(param, result)) return result;
else if (Internal::LuaScriptNumber<AZ::s64>::FromStack(param, result)) return result;
else if (Internal::LuaScriptNumber<long>::FromStack(param, result)) return result;
else if (Internal::LuaScriptNumber<AZ::s8>::FromStack(param, result)) return result;
else if (Internal::LuaScriptNumber<unsigned char>::FromStack(param, result)) return result;
else if (Internal::LuaScriptNumber<unsigned short>::FromStack(param, result)) return result;
else if (Internal::LuaScriptNumber<unsigned int>::FromStack(param, result)) return result;
@@ -136,6 +136,7 @@ namespace AzPhysics
->Property("Distance", BehaviorValueProperty(&RayCastRequest::m_distance))
->Property("Start", BehaviorValueProperty(&RayCastRequest::m_start))
->Property("Direction", BehaviorValueProperty(&RayCastRequest::m_direction))
->Property("ReportMultipleHits", BehaviorValueProperty(&RayCastRequest::m_reportMultipleHits))
;
}
}
@@ -153,6 +154,45 @@ namespace AzPhysics
->Field("ReportMultipleHits", &ShapeCastRequest::m_reportMultipleHits)
;
}
if (auto* behaviorContext = azdynamic_cast<AZ::BehaviorContext*>(context))
{
behaviorContext->Class<ShapeCastRequest>("ShapeCastRequest")
->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common)
->Attribute(AZ::Script::Attributes::Module, "physics")
->Attribute(AZ::Script::Attributes::Category, "PhysX")
->Property("Distance", BehaviorValueProperty(&ShapeCastRequest::m_distance))
->Property("Start", BehaviorValueProperty(&ShapeCastRequest::m_start))
->Property("Direction", BehaviorValueProperty(&ShapeCastRequest::m_direction))
;
behaviorContext->Method(
"CreateSphereCastRequest",
[](float radius, const AZ::Transform& startPose, const AZ::Vector3& direction, float distance,
SceneQuery::QueryType queryType, CollisionGroup collisionGroup)
{
return ShapeCastRequestHelpers::CreateSphereCastRequest(
radius, startPose, direction, distance, queryType, collisionGroup, nullptr);
});
behaviorContext->Method(
"CreateBoxCastRequest",
[](const AZ::Vector3& boxDimensions, const AZ::Transform& startPose, const AZ::Vector3& direction, float distance,
SceneQuery::QueryType queryType, CollisionGroup collisionGroup)
{
return ShapeCastRequestHelpers::CreateBoxCastRequest(
boxDimensions, startPose, direction, distance, queryType, collisionGroup, nullptr);
});
behaviorContext->Method(
"CreateCapsuleCastRequest",
[](float capsuleRadius, float capsuleHeight, const AZ::Transform& startPose, const AZ::Vector3& direction, float distance,
SceneQuery::QueryType queryType, CollisionGroup collisionGroup)
{
return ShapeCastRequestHelpers::CreateCapsuleCastRequest(
capsuleRadius, capsuleHeight, startPose, direction, distance, queryType, collisionGroup, nullptr);
});
}
}
namespace ShapeCastRequestHelpers
@@ -219,6 +259,40 @@ namespace AzPhysics
->Field("ShapeConfiguration", &OverlapRequest::m_shapeConfiguration)
;
}
if (auto* behaviorContext = azdynamic_cast<AZ::BehaviorContext*>(context))
{
behaviorContext->Class<OverlapRequest>("OverlapRequest")
->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common)
->Attribute(AZ::Script::Attributes::Module, "physics")
->Attribute(AZ::Script::Attributes::Category, "PhysX")
->Property("Pose", BehaviorValueProperty(&OverlapRequest::m_pose))
;
behaviorContext->Method(
"CreateSphereOverlapRequest",
[](float radius, const AZ::Transform& pose)
{
return OverlapRequestHelpers::CreateSphereOverlapRequest(
radius, pose, nullptr);
});
behaviorContext->Method(
"CreateBoxOverlapRequest",
[](const AZ::Vector3& boxDimensions, const AZ::Transform& pose)
{
return OverlapRequestHelpers::CreateBoxOverlapRequest(
boxDimensions, pose, nullptr);
});
behaviorContext->Method(
"CreateCapsuleOverlapRequest",
[](float height, float radius, const AZ::Transform& pose)
{
return OverlapRequestHelpers::CreateCapsuleOverlapRequest(
height, radius, pose, nullptr);
});
}
}
namespace OverlapRequestHelpers
@@ -48,6 +48,7 @@ namespace AzPhysics
->Attribute(AZ::Script::Attributes::Category, "Physics")
->Method("GetOnGravityChangeEvent", getOnGravityChange)
->Attribute(AZ::Script::Attributes::AzEventDescription, gravityChangedEventDescription)
->Method("QueryScene", &Scene::QueryScene)
;
}
}
@@ -41,7 +41,7 @@ namespace AzPhysics
{"Tick time"} // Parameters
};
behaviorContext->Class<SystemInterface>("System Interface")
behaviorContext->Class<SystemInterface>("PhysicsSystemInterface")
->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common)
->Attribute(AZ::Script::Attributes::Module, "physics")
->Attribute(AZ::Script::Attributes::Category, "PhysX")
@@ -49,7 +49,21 @@ namespace AzPhysics
->Attribute(AZ::Script::Attributes::AzEventDescription, presimulateEventDescription)
->Method("GetOnPostsimulateEvent", getOnPostsimulateEvent)
->Attribute(AZ::Script::Attributes::AzEventDescription, postsimulateEventDescription)
;
->Method("GetSceneHandle", &SystemInterface::GetSceneHandle)
->Method("GetScene", &SystemInterface::GetScene);
behaviorContext->Method(
"GetPhysicsSystem",
[]()
{
return AZ::Interface<AzPhysics::SystemInterface>::Get();
});
behaviorContext
->Constant("DefaultPhysicsSceneName", BehaviorConstant(DefaultPhysicsSceneName))
->Constant("DefaultPhysicsSceneId", BehaviorConstant(DefaultPhysicsSceneId))
->Constant("EditorPhysicsSceneName", BehaviorConstant(EditorPhysicsSceneName))
->Constant("EditorPhysicsSceneId", BehaviorConstant(EditorPhysicsSceneId));
}
}
} // namespace AzPhysics