2065 lines
70 KiB
C++
2065 lines
70 KiB
C++
#pragma once
|
|
#include "wiLua.h"
|
|
#include "wiLuna.h"
|
|
#include "wiScene.h"
|
|
#include "wiMath_BindLua.h"
|
|
|
|
#include <memory>
|
|
|
|
namespace wi::lua::scene
|
|
{
|
|
// If the application doesn't use the global scene, but manages it manually,
|
|
// Then this can be used to override the global GetScene() in lua scripts with a custom scene
|
|
void SetGlobalScene(wi::scene::Scene* scene);
|
|
// If the application doesn't use the global camera, but manages it manually,
|
|
// Then this can be used to override the global GetCamera() in lua scripts with a custom camera
|
|
void SetGlobalCamera(wi::scene::CameraComponent* camera);
|
|
wi::scene::Scene* GetGlobalScene();
|
|
wi::scene::CameraComponent* GetGlobalCamera();
|
|
|
|
void Bind();
|
|
|
|
class Scene_BindLua
|
|
{
|
|
private:
|
|
std::unique_ptr<wi::scene::Scene> owning; // GetScene() is too slow if scene object is always constructed
|
|
public:
|
|
wi::scene::Scene* scene = nullptr;
|
|
|
|
inline static constexpr char className[] = "Scene";
|
|
static Luna<Scene_BindLua>::FunctionType methods[];
|
|
static Luna<Scene_BindLua>::PropertyType properties[];
|
|
|
|
Scene_BindLua(wi::scene::Scene* scene) :scene(scene) {}
|
|
Scene_BindLua(lua_State* L) : owning(std::make_unique<wi::scene::Scene>()), scene(owning.get()) {}
|
|
|
|
int Update(lua_State* L);
|
|
int Clear(lua_State* L);
|
|
int Merge(lua_State* L);
|
|
int Instantiate(lua_State* L);
|
|
|
|
int UpdateHierarchy(lua_State* L);
|
|
|
|
int Intersects(lua_State* L);
|
|
int IntersectsAll(lua_State* L);
|
|
int IntersectsFirst(lua_State* L);
|
|
|
|
int FindAllEntities(lua_State* L);
|
|
int Entity_FindByName(lua_State* L);
|
|
int Entity_Remove(lua_State* L);
|
|
int Entity_Remove_Async(lua_State* L);
|
|
int Entity_Duplicate(lua_State* L);
|
|
int Entity_IsDescendant(lua_State* L);
|
|
|
|
int Component_CreateName(lua_State* L);
|
|
int Component_CreateLayer(lua_State* L);
|
|
int Component_CreateTransform(lua_State* L);
|
|
int Component_CreateCamera(lua_State* L);
|
|
int Component_CreateEmitter(lua_State* L);
|
|
int Component_CreateHairParticleSystem(lua_State* L);
|
|
int Component_CreateLight(lua_State* L);
|
|
int Component_CreateObject(lua_State* L);
|
|
int Component_CreateMaterial(lua_State* L);
|
|
int Component_CreateInverseKinematics(lua_State* L);
|
|
int Component_CreateSpring(lua_State* L);
|
|
int Component_CreateScript(lua_State* L);
|
|
int Component_CreateRigidBodyPhysics(lua_State* L);
|
|
int Component_CreateSoftBodyPhysics(lua_State* L);
|
|
int Component_CreateForceField(lua_State* L);
|
|
int Component_CreateWeather(lua_State* L);
|
|
int Component_CreateSound(lua_State* L);
|
|
int Component_CreateVideo(lua_State* L);
|
|
int Component_CreateCollider(lua_State* L);
|
|
int Component_CreateExpression(lua_State* L);
|
|
int Component_CreateHumanoid(lua_State* L);
|
|
int Component_CreateDecal(lua_State* L);
|
|
int Component_CreateSprite(lua_State* L);
|
|
int Component_CreateFont(lua_State* L);
|
|
int Component_CreateVoxelGrid(lua_State* L);
|
|
int Component_CreateMetadata(lua_State* L);
|
|
int Component_CreateCharacter(lua_State* L);
|
|
|
|
int Component_GetName(lua_State* L);
|
|
int Component_GetLayer(lua_State* L);
|
|
int Component_GetTransform(lua_State* L);
|
|
int Component_GetCamera(lua_State* L);
|
|
int Component_GetAnimation(lua_State* L);
|
|
int Component_GetMaterial(lua_State* L);
|
|
int Component_GetMesh(lua_State* L);
|
|
int Component_GetEmitter(lua_State* L);
|
|
int Component_GetHairParticleSystem(lua_State* L);
|
|
int Component_GetLight(lua_State* L);
|
|
int Component_GetObject(lua_State* L);
|
|
int Component_GetInverseKinematics(lua_State* L);
|
|
int Component_GetSpring(lua_State* L);
|
|
int Component_GetScript(lua_State* L);
|
|
int Component_GetRigidBodyPhysics(lua_State* L);
|
|
int Component_GetSoftBodyPhysics(lua_State* L);
|
|
int Component_GetForceField(lua_State* L);
|
|
int Component_GetWeather(lua_State* L);
|
|
int Component_GetSound(lua_State* L);
|
|
int Component_GetVideo(lua_State* L);
|
|
int Component_GetCollider(lua_State* L);
|
|
int Component_GetExpression(lua_State* L);
|
|
int Component_GetHumanoid(lua_State* L);
|
|
int Component_GetDecal(lua_State* L);
|
|
int Component_GetSprite(lua_State* L);
|
|
int Component_GetFont(lua_State* L);
|
|
int Component_GetVoxelGrid(lua_State* L);
|
|
int Component_GetMetadata(lua_State* L);
|
|
int Component_GetCharacter(lua_State* L);
|
|
|
|
int Component_GetNameArray(lua_State* L);
|
|
int Component_GetLayerArray(lua_State* L);
|
|
int Component_GetTransformArray(lua_State* L);
|
|
int Component_GetCameraArray(lua_State* L);
|
|
int Component_GetAnimationArray(lua_State* L);
|
|
int Component_GetMaterialArray(lua_State* L);
|
|
int Component_GetMeshArray(lua_State* L);
|
|
int Component_GetEmitterArray(lua_State* L);
|
|
int Component_GetHairParticleSystemArray(lua_State* L);
|
|
int Component_GetLightArray(lua_State* L);
|
|
int Component_GetObjectArray(lua_State* L);
|
|
int Component_GetInverseKinematicsArray(lua_State* L);
|
|
int Component_GetSpringArray(lua_State* L);
|
|
int Component_GetScriptArray(lua_State* L);
|
|
int Component_GetRigidBodyPhysicsArray(lua_State* L);
|
|
int Component_GetSoftBodyPhysicsArray(lua_State* L);
|
|
int Component_GetForceFieldArray(lua_State* L);
|
|
int Component_GetWeatherArray(lua_State* L);
|
|
int Component_GetSoundArray(lua_State* L);
|
|
int Component_GetVideoArray(lua_State* L);
|
|
int Component_GetColliderArray(lua_State* L);
|
|
int Component_GetExpressionArray(lua_State* L);
|
|
int Component_GetHumanoidArray(lua_State* L);
|
|
int Component_GetDecalArray(lua_State* L);
|
|
int Component_GetSpriteArray(lua_State* L);
|
|
int Component_GetFontArray(lua_State* L);
|
|
int Component_GetVoxelGridArray(lua_State* L);
|
|
int Component_GetMetadataArray(lua_State* L);
|
|
int Component_GetCharacterArray(lua_State* L);
|
|
|
|
int Entity_GetNameArray(lua_State* L);
|
|
int Entity_GetLayerArray(lua_State* L);
|
|
int Entity_GetTransformArray(lua_State* L);
|
|
int Entity_GetCameraArray(lua_State* L);
|
|
int Entity_GetAnimationArray(lua_State* L);
|
|
int Entity_GetAnimationDataArray(lua_State* L);
|
|
int Entity_GetMaterialArray(lua_State* L);
|
|
int Entity_GetMeshArray(lua_State* L);
|
|
int Entity_GetEmitterArray(lua_State* L);
|
|
int Entity_GetHairParticleSystemArray(lua_State* L);
|
|
int Entity_GetLightArray(lua_State* L);
|
|
int Entity_GetObjectArray(lua_State* L);
|
|
int Entity_GetInverseKinematicsArray(lua_State* L);
|
|
int Entity_GetSpringArray(lua_State* L);
|
|
int Entity_GetScriptArray(lua_State* L);
|
|
int Entity_GetRigidBodyPhysicsArray(lua_State* L);
|
|
int Entity_GetSoftBodyPhysicsArray(lua_State* L);
|
|
int Entity_GetForceFieldArray(lua_State* L);
|
|
int Entity_GetWeatherArray(lua_State* L);
|
|
int Entity_GetSoundArray(lua_State* L);
|
|
int Entity_GetVideoArray(lua_State* L);
|
|
int Entity_GetColliderArray(lua_State* L);
|
|
int Entity_GetExpressionArray(lua_State* L);
|
|
int Entity_GetHumanoidArray(lua_State* L);
|
|
int Entity_GetDecalArray(lua_State* L);
|
|
int Entity_GetSpriteArray(lua_State* L);
|
|
int Entity_GetFontArray(lua_State* L);
|
|
int Entity_GetVoxelGridArray(lua_State* L);
|
|
int Entity_GetMetadataArray(lua_State* L);
|
|
int Entity_GetCharacterArray(lua_State* L);
|
|
|
|
int Component_RemoveName(lua_State* L);
|
|
int Component_RemoveLayer(lua_State* L);
|
|
int Component_RemoveTransform(lua_State* L);
|
|
int Component_RemoveCamera(lua_State* L);
|
|
int Component_RemoveAnimation(lua_State* L);
|
|
int Component_RemoveAnimationData(lua_State* L);
|
|
int Component_RemoveMaterial(lua_State* L);
|
|
int Component_RemoveMesh(lua_State* L);
|
|
int Component_RemoveEmitter(lua_State* L);
|
|
int Component_RemoveHairParticleSystem(lua_State* L);
|
|
int Component_RemoveLight(lua_State* L);
|
|
int Component_RemoveObject(lua_State* L);
|
|
int Component_RemoveInverseKinematics(lua_State* L);
|
|
int Component_RemoveSpring(lua_State* L);
|
|
int Component_RemoveScript(lua_State* L);
|
|
int Component_RemoveRigidBodyPhysics(lua_State* L);
|
|
int Component_RemoveSoftBodyPhysics(lua_State* L);
|
|
int Component_RemoveForceField(lua_State* L);
|
|
int Component_RemoveWeather(lua_State* L);
|
|
int Component_RemoveSound(lua_State* L);
|
|
int Component_RemoveVideo(lua_State* L);
|
|
int Component_RemoveCollider(lua_State* L);
|
|
int Component_RemoveExpression(lua_State* L);
|
|
int Component_RemoveHumanoid(lua_State* L);
|
|
int Component_RemoveDecal(lua_State* L);
|
|
int Component_RemoveSprite(lua_State* L);
|
|
int Component_RemoveFont(lua_State* L);
|
|
int Component_RemoveVoxelGrid(lua_State* L);
|
|
int Component_RemoveMetadata(lua_State* L);
|
|
int Component_RemoveCharacter(lua_State* L);
|
|
|
|
int Component_Attach(lua_State* L);
|
|
int Component_Detach(lua_State* L);
|
|
int Component_DetachChildren(lua_State* L);
|
|
|
|
int GetBounds(lua_State* L);
|
|
|
|
int GetWeather(lua_State* L);
|
|
int SetWeather(lua_State* L);
|
|
|
|
int RetargetAnimation(lua_State* L);
|
|
int ResetPose(lua_State* L);
|
|
int GetOceanPosAt(lua_State* L);
|
|
|
|
int VoxelizeObject(lua_State* L);
|
|
int VoxelizeScene(lua_State* L);
|
|
|
|
int FixupNans(lua_State* L);
|
|
};
|
|
|
|
class RayIntersectionResult_BindLua
|
|
{
|
|
public:
|
|
inline static constexpr char className[] = "RayIntersectionResult";
|
|
static Luna<RayIntersectionResult_BindLua>::FunctionType methods[];
|
|
static Luna<RayIntersectionResult_BindLua>::PropertyType properties[];
|
|
|
|
wi::scene::Scene::RayIntersectionResult result;
|
|
|
|
RayIntersectionResult_BindLua() = default;
|
|
RayIntersectionResult_BindLua(lua_State* L) {}
|
|
RayIntersectionResult_BindLua(const wi::scene::Scene::RayIntersectionResult& result) : result(result) {}
|
|
RayIntersectionResult_BindLua(wi::scene::Scene::RayIntersectionResult&& result) : result(std::move(result)) {}
|
|
|
|
int GetEntity(lua_State* L);
|
|
int GetPosition(lua_State* L);
|
|
int GetNormal(lua_State* L);
|
|
int GetUV(lua_State* L);
|
|
int GetVelocity(lua_State* L);
|
|
int GetDistance(lua_State* L);
|
|
int GetSubsetIndex(lua_State* L);
|
|
int GetVertexID0(lua_State* L);
|
|
int GetVertexID1(lua_State* L);
|
|
int GetVertexID2(lua_State* L);
|
|
int GetBarycentrics(lua_State* L);
|
|
int GetOrientation(lua_State* L);
|
|
int GetHumanoidBone(lua_State* L);
|
|
};
|
|
|
|
class SphereIntersectionResult_BindLua
|
|
{
|
|
public:
|
|
inline static constexpr char className[] = "SphereIntersectionResult";
|
|
static Luna<SphereIntersectionResult_BindLua>::FunctionType methods[];
|
|
static Luna<SphereIntersectionResult_BindLua>::PropertyType properties[];
|
|
|
|
wi::scene::Scene::SphereIntersectionResult result;
|
|
|
|
SphereIntersectionResult_BindLua() = default;
|
|
SphereIntersectionResult_BindLua(lua_State* L) {}
|
|
SphereIntersectionResult_BindLua(const wi::scene::Scene::SphereIntersectionResult& result) : result(result) {}
|
|
SphereIntersectionResult_BindLua(wi::scene::Scene::SphereIntersectionResult&& result) : result(std::move(result)) {}
|
|
|
|
int GetEntity(lua_State* L);
|
|
int GetPosition(lua_State* L);
|
|
int GetNormal(lua_State* L);
|
|
int GetVelocity(lua_State* L);
|
|
int GetDepth(lua_State* L);
|
|
int GetSubsetIndex(lua_State* L);
|
|
int GetOrientation(lua_State* L);
|
|
int GetHumanoidBone(lua_State* L);
|
|
};
|
|
|
|
class NameComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::NameComponent owning;
|
|
public:
|
|
wi::scene::NameComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "NameComponent";
|
|
static Luna<NameComponent_BindLua>::FunctionType methods[];
|
|
static Luna<NameComponent_BindLua>::PropertyType properties[];
|
|
|
|
NameComponent_BindLua(wi::scene::NameComponent* component) :component(component) {}
|
|
NameComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int SetName(lua_State* L);
|
|
int GetName(lua_State* L);
|
|
};
|
|
|
|
class LayerComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::LayerComponent owning;
|
|
public:
|
|
wi::scene::LayerComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "LayerComponent";
|
|
static Luna<LayerComponent_BindLua>::FunctionType methods[];
|
|
static Luna<LayerComponent_BindLua>::PropertyType properties[];
|
|
|
|
LayerComponent_BindLua(wi::scene::LayerComponent* component) :component(component) {}
|
|
LayerComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int SetLayerMask(lua_State* L);
|
|
int GetLayerMask(lua_State* L);
|
|
};
|
|
|
|
class TransformComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::TransformComponent owning;
|
|
public:
|
|
wi::scene::TransformComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "TransformComponent";
|
|
static Luna<TransformComponent_BindLua>::FunctionType methods[];
|
|
static Luna<TransformComponent_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
Translation_local = VectorProperty(&component->translation_local);
|
|
Rotation_local = VectorProperty(&component->rotation_local);
|
|
Scale_local = VectorProperty(&component->scale_local);
|
|
}
|
|
|
|
TransformComponent_BindLua(wi::scene::TransformComponent* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
TransformComponent_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
VectorProperty Translation_local;
|
|
VectorProperty Rotation_local;
|
|
VectorProperty Scale_local;
|
|
|
|
PropertyFunction(Translation_local)
|
|
PropertyFunction(Rotation_local)
|
|
PropertyFunction(Scale_local)
|
|
|
|
int Scale(lua_State* L);
|
|
int Rotate(lua_State* L);
|
|
int RotateQuaternion(lua_State* L);
|
|
int Translate(lua_State* L);
|
|
int Lerp(lua_State* L);
|
|
int CatmullRom(lua_State* L);
|
|
int MatrixTransform(lua_State* L);
|
|
int GetMatrix(lua_State* L);
|
|
int ClearTransform(lua_State* L);
|
|
int UpdateTransform(lua_State* L);
|
|
int GetPosition(lua_State* L);
|
|
int GetRotation(lua_State* L);
|
|
int GetScale(lua_State* L);
|
|
int GetForward(lua_State* L);
|
|
int GetUp(lua_State* L);
|
|
int GetRight(lua_State* L);
|
|
int IsDirty(lua_State* L);
|
|
int SetDirty(lua_State* L);
|
|
int SetScale(lua_State* L);
|
|
int SetRotation(lua_State* L);
|
|
int SetPosition(lua_State* L);
|
|
};
|
|
|
|
class CameraComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::CameraComponent owning;
|
|
public:
|
|
wi::scene::CameraComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "CameraComponent";
|
|
static Luna<CameraComponent_BindLua>::FunctionType methods[];
|
|
static Luna<CameraComponent_BindLua>::PropertyType properties[];
|
|
|
|
CameraComponent_BindLua(wi::scene::CameraComponent* component) :component(component) {}
|
|
CameraComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int UpdateCamera(lua_State* L);
|
|
int TransformCamera(lua_State* L);
|
|
int GetFOV(lua_State* L);
|
|
int SetFOV(lua_State* L);
|
|
int GetNearPlane(lua_State* L);
|
|
int SetNearPlane(lua_State* L);
|
|
int GetFarPlane(lua_State* L);
|
|
int SetFarPlane(lua_State* L);
|
|
int GetOrthoVerticalSize(lua_State* L);
|
|
int SetOrthoVerticalSize(lua_State* L);
|
|
int GetFocalLength(lua_State* L);
|
|
int SetFocalLength(lua_State* L);
|
|
int GetApertureSize(lua_State* L);
|
|
int SetApertureSize(lua_State* L);
|
|
int GetApertureShape(lua_State* L);
|
|
int SetApertureShape(lua_State* L);
|
|
int GetView(lua_State* L);
|
|
int GetProjection(lua_State* L);
|
|
int GetViewProjection(lua_State* L);
|
|
int GetInvView(lua_State* L);
|
|
int GetInvProjection(lua_State* L);
|
|
int GetInvViewProjection(lua_State* L);
|
|
int GetPosition(lua_State* L);
|
|
int GetLookDirection(lua_State* L);
|
|
int GetUpDirection(lua_State* L);
|
|
int GetRightDirection(lua_State* L);
|
|
int SetPosition(lua_State* L);
|
|
int SetLookDirection(lua_State* L);
|
|
int SetUpDirection(lua_State* L);
|
|
int SetOrtho(lua_State* L);
|
|
int IsOrtho(lua_State* L);
|
|
int ProjectToScreen(lua_State* L);
|
|
};
|
|
|
|
class AnimationComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::AnimationComponent owning;
|
|
public:
|
|
wi::scene::AnimationComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "AnimationComponent";
|
|
static Luna<AnimationComponent_BindLua>::FunctionType methods[];
|
|
static Luna<AnimationComponent_BindLua>::PropertyType properties[];
|
|
|
|
AnimationComponent_BindLua(wi::scene::AnimationComponent* component) :component(component) {}
|
|
AnimationComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int Play(lua_State* L);
|
|
int Pause(lua_State* L);
|
|
int Stop(lua_State* L);
|
|
int SetLooped(lua_State* L);
|
|
int IsLooped(lua_State* L);
|
|
int IsPlaying(lua_State* L);
|
|
int IsEnded(lua_State* L);
|
|
int SetTimer(lua_State* L);
|
|
int GetTimer(lua_State* L);
|
|
int SetAmount(lua_State* L);
|
|
int GetAmount(lua_State* L);
|
|
int GetStart(lua_State* L);
|
|
int SetStart(lua_State* L);
|
|
int GetEnd(lua_State* L);
|
|
int SetEnd(lua_State* L);
|
|
int SetPingPong(lua_State* L);
|
|
int IsPingPong(lua_State* L);
|
|
int SetPlayOnce(lua_State* L);
|
|
int IsPlayingOnce(lua_State* L);
|
|
|
|
// For Rootmotion
|
|
int IsRootMotion(lua_State* L);
|
|
int RootMotionOn(lua_State* L);
|
|
int RootMotionOff(lua_State* L);
|
|
int GetRootTranslation(lua_State* L);
|
|
int GetRootRotation(lua_State* L);
|
|
};
|
|
|
|
class MaterialComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::MaterialComponent owning;
|
|
public:
|
|
wi::scene::MaterialComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "MaterialComponent";
|
|
static Luna<MaterialComponent_BindLua>::FunctionType methods[];
|
|
static Luna<MaterialComponent_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
_flags = LongLongProperty(reinterpret_cast<long long*>(&component->_flags));
|
|
ShaderType = IntProperty(reinterpret_cast<int*>(&component->shaderType));
|
|
UserBlendMode = IntProperty(reinterpret_cast<int*>(&component->userBlendMode));
|
|
SpecularColor = VectorProperty(&component->specularColor);
|
|
SubsurfaceScattering = VectorProperty(&component->subsurfaceScattering);
|
|
TexMulAdd = VectorProperty(&component->texMulAdd);
|
|
Roughness = FloatProperty(&component->roughness);
|
|
Reflectance = FloatProperty(&component->reflectance);
|
|
Metalness = FloatProperty(&component->metalness);
|
|
NormalMapStrength = FloatProperty(&component->normalMapStrength);
|
|
ParallaxOcclusionMapping = FloatProperty(&component->parallaxOcclusionMapping);
|
|
DisplacementMapping = FloatProperty(&component->displacementMapping);
|
|
Refraction = FloatProperty(&component->refraction);
|
|
Transmission = FloatProperty(&component->transmission);
|
|
Cloak = FloatProperty(&component->cloak);
|
|
ChromaticAberration = FloatProperty(&component->chromatic_aberration);
|
|
Saturation = FloatProperty(&component->saturation);
|
|
AlphaRef = FloatProperty(&component->alphaRef);
|
|
SheenColor = VectorProperty(&component->sheenColor);
|
|
SheenRoughness = FloatProperty(&component->sheenRoughness);
|
|
Clearcoat = FloatProperty(&component->clearcoat);
|
|
ClearcoatRoughness = FloatProperty(&component->clearcoatRoughness);
|
|
ShadingRate = IntProperty(reinterpret_cast<int*>(&component->shadingRate));
|
|
TexAnimDirection = VectorProperty(&component->texAnimDirection);
|
|
TexAnimFrameRate = FloatProperty(&component->texAnimFrameRate);
|
|
texAnimElapsedTime = FloatProperty(&component->texAnimElapsedTime);
|
|
customShaderID = IntProperty(&component->customShaderID);
|
|
}
|
|
|
|
MaterialComponent_BindLua(wi::scene::MaterialComponent* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
MaterialComponent_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
LongLongProperty _flags;
|
|
IntProperty ShaderType;
|
|
IntProperty UserBlendMode;
|
|
VectorProperty SpecularColor;
|
|
VectorProperty SubsurfaceScattering;
|
|
VectorProperty TexMulAdd;
|
|
FloatProperty Roughness;
|
|
FloatProperty Reflectance;
|
|
FloatProperty Metalness;
|
|
FloatProperty NormalMapStrength;
|
|
FloatProperty ParallaxOcclusionMapping;
|
|
FloatProperty DisplacementMapping;
|
|
FloatProperty Refraction;
|
|
FloatProperty Transmission;
|
|
FloatProperty Cloak;
|
|
FloatProperty ChromaticAberration;
|
|
FloatProperty Saturation;
|
|
FloatProperty AlphaRef;
|
|
VectorProperty SheenColor;
|
|
FloatProperty SheenRoughness;
|
|
FloatProperty Clearcoat;
|
|
FloatProperty ClearcoatRoughness;
|
|
IntProperty ShadingRate;
|
|
VectorProperty TexAnimDirection;
|
|
FloatProperty TexAnimFrameRate;
|
|
FloatProperty texAnimElapsedTime;
|
|
IntProperty customShaderID;
|
|
|
|
PropertyFunction(_flags)
|
|
PropertyFunction(ShaderType)
|
|
PropertyFunction(UserBlendMode)
|
|
PropertyFunction(SpecularColor)
|
|
PropertyFunction(SubsurfaceScattering)
|
|
PropertyFunction(TexMulAdd)
|
|
PropertyFunction(Roughness)
|
|
PropertyFunction(Reflectance)
|
|
PropertyFunction(Metalness)
|
|
PropertyFunction(NormalMapStrength)
|
|
PropertyFunction(ParallaxOcclusionMapping)
|
|
PropertyFunction(DisplacementMapping)
|
|
PropertyFunction(Refraction)
|
|
PropertyFunction(Transmission)
|
|
PropertyFunction(Cloak)
|
|
PropertyFunction(ChromaticAberration)
|
|
PropertyFunction(Saturation)
|
|
PropertyFunction(AlphaRef)
|
|
PropertyFunction(SheenColor)
|
|
PropertyFunction(SheenRoughness)
|
|
PropertyFunction(Clearcoat)
|
|
PropertyFunction(ClearcoatRoughness)
|
|
PropertyFunction(ShadingRate)
|
|
PropertyFunction(TexAnimDirection)
|
|
PropertyFunction(TexAnimFrameRate)
|
|
PropertyFunction(texAnimElapsedTime)
|
|
PropertyFunction(customShaderID)
|
|
|
|
int SetBaseColor(lua_State* L);
|
|
int GetBaseColor(lua_State* L);
|
|
int SetEmissiveColor(lua_State* L);
|
|
int GetEmissiveColor(lua_State* L);
|
|
int SetEngineStencilRef(lua_State* L);
|
|
int GetEngineStencilRef(lua_State* L);
|
|
int SetUserStencilRef(lua_State* L);
|
|
int GetUserStencilRef(lua_State* L);
|
|
int GetStencilRef(lua_State* L);
|
|
int SetCastShadow(lua_State* L);
|
|
int IsCastingShadow(lua_State* L);
|
|
int SetCoplanarBlending(lua_State* L);
|
|
int IsCoplanarBlending(lua_State* L);
|
|
|
|
int SetTexture(lua_State* L);
|
|
int SetTextureUVSet(lua_State* L);
|
|
int GetTexture(lua_State* L);
|
|
int GetTextureName(lua_State* L);
|
|
int GetTextureUVSet(lua_State* L);
|
|
};
|
|
|
|
class MeshComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::MeshComponent owning;
|
|
public:
|
|
wi::scene::MeshComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "MeshComponent";
|
|
static Luna<MeshComponent_BindLua>::FunctionType methods[];
|
|
static Luna<MeshComponent_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
_flags = LongLongProperty(reinterpret_cast<long long*>(&component->_flags));
|
|
TessellationFactor = FloatProperty(&component->tessellationFactor);
|
|
ArmatureID = LongLongProperty(reinterpret_cast<long long*>(&component->armatureID));
|
|
SubsetsPerLOD = LongLongProperty(reinterpret_cast<long long*>(&component->subsets_per_lod));
|
|
}
|
|
|
|
MeshComponent_BindLua(wi::scene::MeshComponent* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
MeshComponent_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
LongLongProperty _flags;
|
|
FloatProperty TessellationFactor;
|
|
LongLongProperty ArmatureID;
|
|
LongLongProperty SubsetsPerLOD;
|
|
|
|
PropertyFunction(_flags)
|
|
PropertyFunction(TessellationFactor)
|
|
PropertyFunction(ArmatureID)
|
|
PropertyFunction(SubsetsPerLOD)
|
|
|
|
int SetMeshSubsetMaterialID(lua_State* L);
|
|
int GetMeshSubsetMaterialID(lua_State* L);
|
|
int CreateSubset(lua_State* L);
|
|
};
|
|
|
|
class EmitterComponent_BindLua
|
|
{
|
|
private:
|
|
wi::EmittedParticleSystem owning;
|
|
public:
|
|
wi::EmittedParticleSystem* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "EmitterComponent";
|
|
static Luna<EmitterComponent_BindLua>::FunctionType methods[];
|
|
static Luna<EmitterComponent_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
_flags = LongLongProperty(reinterpret_cast<long long*>(&component->_flags));
|
|
|
|
ShaderType = IntProperty(reinterpret_cast<int*>(&component->shaderType));
|
|
|
|
Mass = FloatProperty(&component->mass);
|
|
Velocity = VectorProperty(&component->velocity);
|
|
Gravity = VectorProperty(&component->gravity);
|
|
Drag = FloatProperty(&component->drag);
|
|
Restitution = FloatProperty(&component->restitution);
|
|
|
|
SPH_h = FloatProperty(&component->SPH_h);
|
|
SPH_K = FloatProperty(&component->SPH_K);
|
|
SPH_p0 = FloatProperty(&component->SPH_p0);
|
|
SPH_e = FloatProperty(&component->SPH_e);
|
|
|
|
SpriteSheet_Frames_X = LongLongProperty(reinterpret_cast<long long*>(&component->framesX));
|
|
SpriteSheet_Frames_Y = LongLongProperty(reinterpret_cast<long long*>(&component->framesY));
|
|
SpriteSheet_Frame_Count = LongLongProperty(reinterpret_cast<long long*>(&component->frameCount));
|
|
SpriteSheet_Frame_Start = LongLongProperty(reinterpret_cast<long long*>(&component->frameStart));
|
|
SpriteSheet_Framerate = FloatProperty(&component->frameRate);
|
|
}
|
|
|
|
EmitterComponent_BindLua(wi::EmittedParticleSystem* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
EmitterComponent_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
LongLongProperty _flags;
|
|
|
|
IntProperty ShaderType;
|
|
|
|
FloatProperty Mass;
|
|
VectorProperty Velocity;
|
|
VectorProperty Gravity;
|
|
FloatProperty Drag;
|
|
FloatProperty Restitution;
|
|
|
|
FloatProperty SPH_h;
|
|
FloatProperty SPH_K;
|
|
FloatProperty SPH_p0;
|
|
FloatProperty SPH_e;
|
|
|
|
LongLongProperty SpriteSheet_Frames_X;
|
|
LongLongProperty SpriteSheet_Frames_Y;
|
|
LongLongProperty SpriteSheet_Frame_Count;
|
|
LongLongProperty SpriteSheet_Frame_Start;
|
|
FloatProperty SpriteSheet_Framerate;
|
|
|
|
PropertyFunction(_flags)
|
|
|
|
PropertyFunction(ShaderType)
|
|
|
|
PropertyFunction(Mass)
|
|
PropertyFunction(Velocity)
|
|
PropertyFunction(Gravity)
|
|
PropertyFunction(Drag)
|
|
PropertyFunction(Restitution)
|
|
|
|
PropertyFunction(SPH_h)
|
|
PropertyFunction(SPH_K)
|
|
PropertyFunction(SPH_p0)
|
|
PropertyFunction(SPH_e)
|
|
|
|
PropertyFunction(SpriteSheet_Frames_X)
|
|
PropertyFunction(SpriteSheet_Frames_Y)
|
|
PropertyFunction(SpriteSheet_Frame_Count)
|
|
PropertyFunction(SpriteSheet_Frame_Start)
|
|
PropertyFunction(SpriteSheet_Framerate)
|
|
|
|
int Burst(lua_State* L);
|
|
int SetEmitCount(lua_State* L);
|
|
int SetSize(lua_State* L);
|
|
int SetLife(lua_State* L);
|
|
int SetNormalFactor(lua_State* L);
|
|
int SetRandomness(lua_State* L);
|
|
int SetLifeRandomness(lua_State* L);
|
|
int SetScaleX(lua_State* L);
|
|
int SetScaleY(lua_State* L);
|
|
int SetRotation(lua_State* L);
|
|
int SetMotionBlurAmount(lua_State* L);
|
|
|
|
int GetEmitCount(lua_State* L);
|
|
int GetSize(lua_State* L);
|
|
int GetLife(lua_State* L);
|
|
int GetNormalFactor(lua_State* L);
|
|
int GetRandomness(lua_State* L);
|
|
int GetLifeRandomness(lua_State* L);
|
|
int GetScaleX(lua_State* L);
|
|
int GetScaleY(lua_State* L);
|
|
int GetRotation(lua_State* L);
|
|
int GetMotionBlurAmount(lua_State* L);
|
|
int IsCollidersDisabled(lua_State* L);
|
|
int SetCollidersDisabled(lua_State* L);
|
|
};
|
|
|
|
class HairParticleSystem_BindLua
|
|
{
|
|
private:
|
|
wi::HairParticleSystem owning;
|
|
public:
|
|
wi::HairParticleSystem* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "HairParticleSystem";
|
|
static Luna<HairParticleSystem_BindLua>::FunctionType methods[];
|
|
static Luna<HairParticleSystem_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
_flags = LongLongProperty(reinterpret_cast<long long*>(&component->_flags));
|
|
|
|
StrandCount = LongLongProperty(reinterpret_cast<long long*>(&component->strandCount));
|
|
SegmentCount = LongLongProperty(reinterpret_cast<long long*>(&component->segmentCount));
|
|
RandomSeed = LongLongProperty(reinterpret_cast<long long*>(&component->randomSeed));
|
|
Length = FloatProperty(&component->length);
|
|
Stiffness = FloatProperty(&component->stiffness);
|
|
Randomness = FloatProperty(&component->randomness);
|
|
ViewDistance = FloatProperty(&component->viewDistance);
|
|
|
|
//SpriteSheet_Frames_X = LongLongProperty(reinterpret_cast<long long*>(&component->framesX));
|
|
//SpriteSheet_Frames_Y = LongLongProperty(reinterpret_cast<long long*>(&component->framesY));
|
|
//SpriteSheet_Frame_Count = LongLongProperty(reinterpret_cast<long long*>(&component->frameCount));
|
|
//SpriteSheet_Frame_Start = LongLongProperty(reinterpret_cast<long long*>(&component->frameStart));
|
|
}
|
|
|
|
HairParticleSystem_BindLua(HairParticleSystem* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
HairParticleSystem_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
LongLongProperty _flags;
|
|
|
|
LongLongProperty StrandCount;
|
|
LongLongProperty SegmentCount;
|
|
LongLongProperty RandomSeed;
|
|
FloatProperty Length;
|
|
FloatProperty Stiffness;
|
|
FloatProperty Randomness;
|
|
FloatProperty ViewDistance;
|
|
|
|
LongLongProperty SpriteSheet_Frames_X;
|
|
LongLongProperty SpriteSheet_Frames_Y;
|
|
LongLongProperty SpriteSheet_Frame_Count;
|
|
LongLongProperty SpriteSheet_Frame_Start;
|
|
|
|
PropertyFunction(_flags)
|
|
|
|
PropertyFunction(StrandCount)
|
|
PropertyFunction(SegmentCount)
|
|
PropertyFunction(RandomSeed)
|
|
PropertyFunction(Length)
|
|
PropertyFunction(Stiffness)
|
|
PropertyFunction(Randomness)
|
|
PropertyFunction(ViewDistance)
|
|
|
|
PropertyFunction(SpriteSheet_Frames_X)
|
|
PropertyFunction(SpriteSheet_Frames_Y)
|
|
PropertyFunction(SpriteSheet_Frame_Count)
|
|
PropertyFunction(SpriteSheet_Frame_Start)
|
|
};
|
|
|
|
class LightComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::LightComponent owning;
|
|
public:
|
|
wi::scene::LightComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "LightComponent";
|
|
static Luna<LightComponent_BindLua>::FunctionType methods[];
|
|
static Luna<LightComponent_BindLua>::PropertyType properties[];
|
|
|
|
LightComponent_BindLua(wi::scene::LightComponent* component) :component(component) {}
|
|
LightComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int SetType(lua_State* L);
|
|
int SetRange(lua_State* L);
|
|
int SetIntensity(lua_State* L);
|
|
int SetColor(lua_State* L);
|
|
int SetOuterConeAngle(lua_State* L);
|
|
int SetInnerConeAngle(lua_State* L);
|
|
|
|
int GetType(lua_State* L);
|
|
int GetRange(lua_State* L);
|
|
int GetIntensity(lua_State* L);
|
|
int GetColor(lua_State* L);
|
|
int GetOuterConeAngle(lua_State* L);
|
|
int GetInnerConeAngle(lua_State* L);
|
|
|
|
int SetCastShadow(lua_State* L);
|
|
int SetVolumetricsEnabled(lua_State* L);
|
|
|
|
int IsCastShadow(lua_State* L);
|
|
int IsVolumetricsEnabled(lua_State* L);
|
|
|
|
// back-compat:
|
|
int SetEnergy(lua_State* L);
|
|
int SetFOV(lua_State* L);
|
|
};
|
|
|
|
class ObjectComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::ObjectComponent owning;
|
|
public:
|
|
wi::scene::ObjectComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "ObjectComponent";
|
|
static Luna<ObjectComponent_BindLua>::FunctionType methods[];
|
|
static Luna<ObjectComponent_BindLua>::PropertyType properties[];
|
|
|
|
ObjectComponent_BindLua(wi::scene::ObjectComponent* component) :component(component) {}
|
|
ObjectComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int GetMeshID(lua_State* L);
|
|
int GetCascadeMask(lua_State* L);
|
|
int GetRendertypeMask(lua_State* L);
|
|
int GetColor(lua_State* L);
|
|
int GetAlphaRef(lua_State* L);
|
|
int GetEmissiveColor(lua_State* L);
|
|
int GetUserStencilRef(lua_State* L);
|
|
int GetLodDistanceMultiplier(lua_State* L);
|
|
int GetDrawDistance(lua_State* L);
|
|
int IsForeground(lua_State* L);
|
|
int IsNotVisibleInMainCamera(lua_State* L);
|
|
int IsNotVisibleInReflections(lua_State* L);
|
|
int IsWetmapEnabled(lua_State* L);
|
|
int IsRenderable(lua_State* L);
|
|
|
|
int SetMeshID(lua_State* L);
|
|
int SetCascadeMask(lua_State* L);
|
|
int SetRendertypeMask(lua_State* L);
|
|
int SetColor(lua_State* L);
|
|
int SetRimHighlightColor(lua_State* L);
|
|
int SetRimHighlightIntensity(lua_State* L);
|
|
int SetRimHighlightFalloff(lua_State* L);
|
|
int SetAlphaRef(lua_State* L);
|
|
int SetEmissiveColor(lua_State* L);
|
|
int SetUserStencilRef(lua_State* L);
|
|
int SetLodDistanceMultiplier(lua_State* L);
|
|
int SetDrawDistance(lua_State* L);
|
|
int SetForeground(lua_State* L);
|
|
int SetNotVisibleInMainCamera(lua_State* L);
|
|
int SetNotVisibleInReflections(lua_State* L);
|
|
int SetWetmapEnabled(lua_State* L);
|
|
int SetRenderable(lua_State* L);
|
|
};
|
|
|
|
class InverseKinematicsComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::InverseKinematicsComponent owning;
|
|
public:
|
|
wi::scene::InverseKinematicsComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "InverseKinematicsComponent";
|
|
static Luna<InverseKinematicsComponent_BindLua>::FunctionType methods[];
|
|
static Luna<InverseKinematicsComponent_BindLua>::PropertyType properties[];
|
|
|
|
InverseKinematicsComponent_BindLua(wi::scene::InverseKinematicsComponent* component) :component(component) {}
|
|
InverseKinematicsComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int SetTarget(lua_State* L);
|
|
int SetChainLength(lua_State* L);
|
|
int SetIterationCount(lua_State* L);
|
|
int SetDisabled(lua_State* L);
|
|
int GetTarget(lua_State* L);
|
|
int GetChainLength(lua_State* L);
|
|
int GetIterationCount(lua_State* L);
|
|
int IsDisabled(lua_State* L);
|
|
};
|
|
|
|
class SpringComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::SpringComponent owning;
|
|
public:
|
|
wi::scene::SpringComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "SpringComponent";
|
|
static Luna<SpringComponent_BindLua>::FunctionType methods[];
|
|
static Luna<SpringComponent_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
DragForce = FloatProperty(&component->dragForce);
|
|
HitRadius = FloatProperty(&component->hitRadius);
|
|
GravityPower = FloatProperty(&component->gravityPower);
|
|
GravityDirection = VectorProperty(&component->gravityDir);
|
|
}
|
|
|
|
SpringComponent_BindLua(wi::scene::SpringComponent* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
SpringComponent_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
FloatProperty DragForce;
|
|
FloatProperty HitRadius;
|
|
FloatProperty GravityPower;
|
|
VectorProperty GravityDirection;
|
|
|
|
PropertyFunction(DragForce)
|
|
PropertyFunction(HitRadius)
|
|
PropertyFunction(GravityPower)
|
|
PropertyFunction(GravityDirection)
|
|
|
|
int SetStiffness(lua_State* L);
|
|
int SetDamping(lua_State* L);
|
|
int SetWindAffection(lua_State* L);
|
|
int GetStiffness(lua_State* L);
|
|
int GetDamping(lua_State* L);
|
|
int GetWindAffection(lua_State* L);
|
|
};
|
|
|
|
class ScriptComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::ScriptComponent owning;
|
|
public:
|
|
wi::scene::ScriptComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "ScriptComponent";
|
|
static Luna<ScriptComponent_BindLua>::FunctionType methods[];
|
|
static Luna<ScriptComponent_BindLua>::PropertyType properties[];
|
|
|
|
ScriptComponent_BindLua(wi::scene::ScriptComponent* component) :component(component) {}
|
|
ScriptComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int CreateFromFile(lua_State* L);
|
|
int Play(lua_State* L);
|
|
int IsPlaying(lua_State* L);
|
|
int SetPlayOnce(lua_State* L);
|
|
int Stop(lua_State* L);
|
|
};
|
|
|
|
class RigidBodyPhysicsComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::RigidBodyPhysicsComponent owning;
|
|
public:
|
|
wi::scene::RigidBodyPhysicsComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "RigidBodyPhysicsComponent";
|
|
static Luna<RigidBodyPhysicsComponent_BindLua>::FunctionType methods[];
|
|
static Luna<RigidBodyPhysicsComponent_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
Shape = IntProperty(reinterpret_cast<int*>(&component->shape));
|
|
Mass = FloatProperty(&component->mass);
|
|
Friction = FloatProperty(&component->friction);
|
|
Restitution = FloatProperty(&component->restitution);
|
|
LinearDamping = FloatProperty(&component->damping_linear);
|
|
AngularDamping = FloatProperty(&component->damping_angular);
|
|
Buoyancy = FloatProperty(&component->buoyancy);
|
|
BoxParams_HalfExtents = VectorProperty(&component->box.halfextents);
|
|
SphereParams_Radius = FloatProperty(&component->sphere.radius);
|
|
CapsuleParams_Radius = FloatProperty(&component->capsule.radius);
|
|
CapsuleParams_Height = FloatProperty(&component->capsule.height);
|
|
TargetMeshLOD = LongLongProperty(reinterpret_cast<long long*>(&component->mesh_lod));
|
|
MaxSlopeAngle = FloatProperty(&component->character.maxSlopeAngle);
|
|
GravityFactor = FloatProperty(&component->character.gravityFactor);
|
|
}
|
|
|
|
RigidBodyPhysicsComponent_BindLua(wi::scene::RigidBodyPhysicsComponent* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
RigidBodyPhysicsComponent_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
IntProperty Shape;
|
|
FloatProperty Mass;
|
|
FloatProperty Friction;
|
|
FloatProperty Restitution;
|
|
FloatProperty LinearDamping;
|
|
FloatProperty AngularDamping;
|
|
FloatProperty Buoyancy;
|
|
VectorProperty BoxParams_HalfExtents;
|
|
FloatProperty SphereParams_Radius;
|
|
FloatProperty CapsuleParams_Radius;
|
|
FloatProperty CapsuleParams_Height;
|
|
LongLongProperty TargetMeshLOD;
|
|
FloatProperty MaxSlopeAngle;
|
|
FloatProperty GravityFactor;
|
|
|
|
PropertyFunction(Shape)
|
|
PropertyFunction(Mass)
|
|
PropertyFunction(Friction)
|
|
PropertyFunction(Restitution)
|
|
PropertyFunction(LinearDamping)
|
|
PropertyFunction(AngularDamping)
|
|
PropertyFunction(Buoyancy)
|
|
PropertyFunction(BoxParams_HalfExtents)
|
|
PropertyFunction(SphereParams_Radius)
|
|
PropertyFunction(CapsuleParams_Radius)
|
|
PropertyFunction(CapsuleParams_Height)
|
|
PropertyFunction(TargetMeshLOD)
|
|
PropertyFunction(MaxSlopeAngle)
|
|
PropertyFunction(GravityFactor)
|
|
|
|
int SetDisableDeactivation(lua_State* L);
|
|
int SetKinematic(lua_State* L);
|
|
int SetStartDeactivated(lua_State* L);
|
|
int SetCharacterPhysics(lua_State* L);
|
|
|
|
int IsVehicle(lua_State* L);
|
|
int IsCar(lua_State* L);
|
|
int IsMotorcycle(lua_State* L);
|
|
int IsDisableDeactivation(lua_State* L);
|
|
int IsKinematic(lua_State* L);
|
|
int IsStartDeactivated(lua_State* L);
|
|
int IsCharacterPhysics(lua_State* L);
|
|
};
|
|
|
|
class SoftBodyPhysicsComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::SoftBodyPhysicsComponent owning;
|
|
public:
|
|
wi::scene::SoftBodyPhysicsComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "SoftBodyPhysicsComponent";
|
|
static Luna<SoftBodyPhysicsComponent_BindLua>::FunctionType methods[];
|
|
static Luna<SoftBodyPhysicsComponent_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
Mass = wi::lua::FloatProperty(&component->mass);
|
|
Friction = wi::lua::FloatProperty(&component->friction);
|
|
Restitution = wi::lua::FloatProperty(&component->restitution);
|
|
VertexRadius = wi::lua::FloatProperty(&component->vertex_radius);
|
|
}
|
|
|
|
SoftBodyPhysicsComponent_BindLua(wi::scene::SoftBodyPhysicsComponent* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
SoftBodyPhysicsComponent_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
wi::lua::FloatProperty Mass;
|
|
wi::lua::FloatProperty Friction;
|
|
wi::lua::FloatProperty Restitution;
|
|
wi::lua::FloatProperty VertexRadius;
|
|
|
|
PropertyFunction(Mass)
|
|
PropertyFunction(Friction)
|
|
PropertyFunction(Restitution)
|
|
PropertyFunction(VertexRadius)
|
|
|
|
int SetDetail(lua_State* L);
|
|
int GetDetail(lua_State* L);
|
|
int SetDisableDeactivation(lua_State* L);
|
|
int IsDisableDeactivation(lua_State* L);
|
|
int SetWindEnabled(lua_State* L);
|
|
int IsWindEnabled(lua_State* L);
|
|
int CreateFromMesh(lua_State* L);
|
|
};
|
|
|
|
class ForceFieldComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::ForceFieldComponent owning;
|
|
public:
|
|
wi::scene::ForceFieldComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "ForceFieldComponent";
|
|
static Luna<ForceFieldComponent_BindLua>::FunctionType methods[];
|
|
static Luna<ForceFieldComponent_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
Type = IntProperty(reinterpret_cast<int*>(&component->type));
|
|
Gravity = FloatProperty(&component->gravity);
|
|
Range = FloatProperty(&component->range);
|
|
}
|
|
|
|
ForceFieldComponent_BindLua(wi::scene::ForceFieldComponent* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
ForceFieldComponent_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
IntProperty Type;
|
|
FloatProperty Gravity;
|
|
FloatProperty Range;
|
|
|
|
PropertyFunction(Type)
|
|
PropertyFunction(Gravity)
|
|
PropertyFunction(Range)
|
|
};
|
|
|
|
class Weather_OceanParams_BindLua
|
|
{
|
|
private:
|
|
wi::Ocean::OceanParameters owning;
|
|
public:
|
|
wi::Ocean::OceanParameters* parameter = nullptr;
|
|
|
|
inline static constexpr char className[] = "OceanParameters";
|
|
static Luna<Weather_OceanParams_BindLua>::FunctionType methods[];
|
|
static Luna<Weather_OceanParams_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
dmap_dim = IntProperty(¶meter->dmap_dim);
|
|
patch_length = FloatProperty(¶meter->patch_length);
|
|
time_scale = FloatProperty(¶meter->time_scale);
|
|
wave_amplitude = FloatProperty(¶meter->wave_amplitude);
|
|
wind_dir = VectorProperty(¶meter->wind_dir);
|
|
wind_speed = FloatProperty(¶meter->wind_speed);
|
|
wind_dependency = FloatProperty(¶meter->wind_dependency);
|
|
choppy_scale = FloatProperty(¶meter->choppy_scale);
|
|
waterColor = VectorProperty(¶meter->waterColor);
|
|
waterHeight = FloatProperty(¶meter->waterHeight);
|
|
//surfaceDetail = IntProperty(¶meter->surfaceDetail);
|
|
surfaceDisplacementTolerance = FloatProperty(¶meter->surfaceDisplacementTolerance);
|
|
}
|
|
|
|
Weather_OceanParams_BindLua(wi::Ocean::OceanParameters* parameter) :parameter(parameter)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
Weather_OceanParams_BindLua(lua_State* L) : parameter(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
IntProperty dmap_dim;
|
|
FloatProperty patch_length;
|
|
FloatProperty time_scale;
|
|
FloatProperty wave_amplitude;
|
|
VectorProperty wind_dir;
|
|
FloatProperty wind_speed;
|
|
FloatProperty wind_dependency;
|
|
FloatProperty choppy_scale;
|
|
VectorProperty waterColor;
|
|
FloatProperty waterHeight;
|
|
IntProperty surfaceDetail;
|
|
FloatProperty surfaceDisplacementTolerance;
|
|
|
|
PropertyFunction(dmap_dim)
|
|
PropertyFunction(patch_length)
|
|
PropertyFunction(time_scale)
|
|
PropertyFunction(wave_amplitude)
|
|
PropertyFunction(wind_dir)
|
|
PropertyFunction(wind_speed)
|
|
PropertyFunction(wind_dependency)
|
|
PropertyFunction(choppy_scale)
|
|
PropertyFunction(waterColor)
|
|
PropertyFunction(waterHeight)
|
|
PropertyFunction(surfaceDetail)
|
|
PropertyFunction(surfaceDisplacementTolerance)
|
|
};
|
|
struct Weather_OceanParams_Property
|
|
{
|
|
wi::Ocean::OceanParameters* data = nullptr;
|
|
Weather_OceanParams_Property(){}
|
|
Weather_OceanParams_Property(wi::Ocean::OceanParameters* data) :data(data){}
|
|
int Get(lua_State* L);
|
|
int Set(lua_State* L);
|
|
};
|
|
|
|
class Weather_AtmosphereParams_BindLua
|
|
{
|
|
private:
|
|
AtmosphereParameters owning;
|
|
public:
|
|
AtmosphereParameters* parameter = nullptr;
|
|
|
|
inline static constexpr char className[] = "AtmosphereParameters";
|
|
static Luna<Weather_AtmosphereParams_BindLua>::FunctionType methods[];
|
|
static Luna<Weather_AtmosphereParams_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
bottomRadius = FloatProperty(¶meter->bottomRadius);
|
|
topRadius = FloatProperty(¶meter->topRadius);
|
|
planetCenter = VectorProperty(¶meter->planetCenter);
|
|
rayleighDensityExpScale = FloatProperty(¶meter->rayleighDensityExpScale);
|
|
rayleighScattering = VectorProperty(¶meter->rayleighScattering);
|
|
mieDensityExpScale = FloatProperty(¶meter->mieDensityExpScale);
|
|
mieScattering = VectorProperty(¶meter->mieScattering);
|
|
mieExtinction = VectorProperty(¶meter->mieExtinction);
|
|
mieAbsorption = VectorProperty(¶meter->mieAbsorption);
|
|
miePhaseG = FloatProperty(¶meter->miePhaseG);
|
|
|
|
absorptionDensity0LayerWidth = FloatProperty(¶meter->absorptionDensity0LayerWidth);
|
|
absorptionDensity0ConstantTerm = FloatProperty(¶meter->absorptionDensity0ConstantTerm);
|
|
absorptionDensity0LinearTerm = FloatProperty(¶meter->absorptionDensity0LinearTerm);
|
|
absorptionDensity1ConstantTerm = FloatProperty(¶meter->absorptionDensity1ConstantTerm);
|
|
absorptionDensity1LinearTerm = FloatProperty(¶meter->absorptionDensity1LinearTerm);
|
|
|
|
absorptionExtinction = VectorProperty(¶meter->absorptionExtinction);
|
|
groundAlbedo = VectorProperty(¶meter->groundAlbedo);
|
|
}
|
|
|
|
Weather_AtmosphereParams_BindLua(AtmosphereParameters* parameter) :parameter(parameter)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
Weather_AtmosphereParams_BindLua(lua_State* L) : parameter(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
FloatProperty bottomRadius;
|
|
FloatProperty topRadius;
|
|
VectorProperty planetCenter;
|
|
FloatProperty rayleighDensityExpScale;
|
|
VectorProperty rayleighScattering;
|
|
FloatProperty mieDensityExpScale;
|
|
VectorProperty mieScattering;
|
|
VectorProperty mieExtinction;
|
|
VectorProperty mieAbsorption;
|
|
FloatProperty miePhaseG;
|
|
|
|
FloatProperty absorptionDensity0LayerWidth;
|
|
FloatProperty absorptionDensity0ConstantTerm;
|
|
FloatProperty absorptionDensity0LinearTerm;
|
|
FloatProperty absorptionDensity1ConstantTerm;
|
|
FloatProperty absorptionDensity1LinearTerm;
|
|
|
|
VectorProperty absorptionExtinction;
|
|
VectorProperty groundAlbedo;
|
|
|
|
|
|
PropertyFunction(bottomRadius)
|
|
PropertyFunction(topRadius)
|
|
PropertyFunction(planetCenter)
|
|
PropertyFunction(rayleighDensityExpScale)
|
|
PropertyFunction(rayleighScattering)
|
|
PropertyFunction(mieDensityExpScale)
|
|
PropertyFunction(mieScattering)
|
|
PropertyFunction(mieExtinction)
|
|
PropertyFunction(mieAbsorption)
|
|
PropertyFunction(miePhaseG)
|
|
|
|
PropertyFunction(absorptionDensity0LayerWidth)
|
|
PropertyFunction(absorptionDensity0ConstantTerm)
|
|
PropertyFunction(absorptionDensity0LinearTerm)
|
|
PropertyFunction(absorptionDensity1ConstantTerm)
|
|
PropertyFunction(absorptionDensity1LinearTerm)
|
|
|
|
PropertyFunction(absorptionExtinction)
|
|
PropertyFunction(groundAlbedo)
|
|
};
|
|
struct Weather_AtmosphereParams_Property
|
|
{
|
|
AtmosphereParameters* data = nullptr;
|
|
Weather_AtmosphereParams_Property(){}
|
|
Weather_AtmosphereParams_Property(AtmosphereParameters* data) :data(data){}
|
|
int Get(lua_State* L);
|
|
int Set(lua_State* L);
|
|
};
|
|
|
|
class Weather_VolumetricCloudParams_BindLua
|
|
{
|
|
private:
|
|
VolumetricCloudParameters owning;
|
|
public:
|
|
VolumetricCloudParameters* parameter = nullptr;
|
|
|
|
inline static constexpr char className[] = "VolumetricCloudParameters";
|
|
static Luna<Weather_VolumetricCloudParams_BindLua>::FunctionType methods[];
|
|
static Luna<Weather_VolumetricCloudParams_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
cloudAmbientGroundMultiplier = FloatProperty(¶meter->ambientGroundMultiplier);
|
|
|
|
horizonBlendAmount = FloatProperty(¶meter->horizonBlendAmount);
|
|
horizonBlendPower = FloatProperty(¶meter->horizonBlendPower);
|
|
cloudStartHeight = FloatProperty(¶meter->cloudStartHeight);
|
|
cloudThickness = FloatProperty(¶meter->cloudThickness);
|
|
|
|
animationMultiplier = FloatProperty(¶meter->animationMultiplier);
|
|
|
|
// First layer
|
|
albedoFirst = VectorProperty(¶meter->layerFirst.albedo);
|
|
extinctionCoefficientFirst = VectorProperty(¶meter->layerFirst.extinctionCoefficient);
|
|
|
|
skewAlongWindDirectionFirst = FloatProperty(¶meter->layerFirst.skewAlongWindDirection);
|
|
totalNoiseScaleFirst = FloatProperty(¶meter->layerFirst.totalNoiseScale);
|
|
curlScaleFirst = FloatProperty(¶meter->layerFirst.curlScale);
|
|
curlNoiseModifierFirst = FloatProperty(¶meter->layerFirst.curlNoiseModifier);
|
|
detailScaleFirst = FloatProperty(¶meter->layerFirst.detailScale);
|
|
detailNoiseModifierFirst = FloatProperty(¶meter->layerFirst.detailNoiseModifier);
|
|
skewAlongCoverageWindDirectionFirst = FloatProperty(¶meter->layerFirst.skewAlongCoverageWindDirection);
|
|
weatherScaleFirst = FloatProperty(¶meter->layerFirst.weatherScale);
|
|
coverageAmountFirst = FloatProperty(¶meter->layerFirst.coverageAmount);
|
|
coverageMinimumFirst = FloatProperty(¶meter->layerFirst.coverageMinimum);
|
|
typeAmountFirst = FloatProperty(¶meter->layerFirst.typeAmount);
|
|
typeMinimumFirst = FloatProperty(¶meter->layerFirst.typeMinimum);
|
|
rainAmountFirst = FloatProperty(¶meter->layerFirst.rainAmount);
|
|
rainMinimumFirst = FloatProperty(¶meter->layerFirst.rainMinimum);
|
|
|
|
gradientSmallFirst = VectorProperty(¶meter->layerFirst.gradientSmall);
|
|
gradientMediumFirst = VectorProperty(¶meter->layerFirst.gradientMedium);
|
|
gradientLargeFirst = VectorProperty(¶meter->layerFirst.gradientLarge);
|
|
|
|
anvilDeformationSmallFirst = VectorProperty(¶meter->layerFirst.anvilDeformationSmall);
|
|
anvilDeformationMediumFirst = VectorProperty(¶meter->layerFirst.anvilDeformationMedium);
|
|
anvilDeformationLargeFirst = VectorProperty(¶meter->layerFirst.anvilDeformationLarge);
|
|
|
|
windSpeedFirst = FloatProperty(¶meter->layerFirst.windSpeed);
|
|
windAngleFirst = FloatProperty(¶meter->layerFirst.windAngle);
|
|
windUpAmountFirst = FloatProperty(¶meter->layerFirst.windUpAmount);
|
|
coverageWindSpeedFirst = FloatProperty(¶meter->layerFirst.coverageWindSpeed);
|
|
coverageWindAngleFirst = FloatProperty(¶meter->layerFirst.coverageWindAngle);
|
|
|
|
// Second layer
|
|
albedoSecond = VectorProperty(¶meter->layerSecond.albedo);
|
|
extinctionCoefficientSecond = VectorProperty(¶meter->layerSecond.extinctionCoefficient);
|
|
|
|
skewAlongWindDirectionSecond = FloatProperty(¶meter->layerSecond.skewAlongWindDirection);
|
|
totalNoiseScaleSecond = FloatProperty(¶meter->layerSecond.totalNoiseScale);
|
|
curlScaleSecond = FloatProperty(¶meter->layerSecond.curlScale);
|
|
curlNoiseModifierSecond = FloatProperty(¶meter->layerSecond.curlNoiseModifier);
|
|
detailScaleSecond = FloatProperty(¶meter->layerSecond.detailScale);
|
|
detailNoiseModifierSecond = FloatProperty(¶meter->layerSecond.detailNoiseModifier);
|
|
skewAlongCoverageWindDirectionSecond = FloatProperty(¶meter->layerSecond.skewAlongCoverageWindDirection);
|
|
weatherScaleSecond = FloatProperty(¶meter->layerSecond.weatherScale);
|
|
coverageAmountSecond = FloatProperty(¶meter->layerSecond.coverageAmount);
|
|
coverageMinimumSecond = FloatProperty(¶meter->layerSecond.coverageMinimum);
|
|
typeAmountSecond = FloatProperty(¶meter->layerSecond.typeAmount);
|
|
typeMinimumSecond = FloatProperty(¶meter->layerSecond.typeMinimum);
|
|
rainAmountSecond = FloatProperty(¶meter->layerSecond.rainAmount);
|
|
rainMinimumSecond = FloatProperty(¶meter->layerSecond.rainMinimum);
|
|
|
|
gradientSmallSecond = VectorProperty(¶meter->layerSecond.gradientSmall);
|
|
gradientMediumSecond = VectorProperty(¶meter->layerSecond.gradientMedium);
|
|
gradientLargeSecond = VectorProperty(¶meter->layerSecond.gradientLarge);
|
|
|
|
anvilDeformationSmallSecond = VectorProperty(¶meter->layerSecond.anvilDeformationSmall);
|
|
anvilDeformationMediumSecond = VectorProperty(¶meter->layerSecond.anvilDeformationMedium);
|
|
anvilDeformationLargeSecond = VectorProperty(¶meter->layerSecond.anvilDeformationLarge);
|
|
|
|
windSpeedSecond = FloatProperty(¶meter->layerSecond.windSpeed);
|
|
windAngleSecond = FloatProperty(¶meter->layerSecond.windAngle);
|
|
windUpAmountSecond = FloatProperty(¶meter->layerSecond.windUpAmount);
|
|
coverageWindSpeedSecond = FloatProperty(¶meter->layerSecond.coverageWindSpeed);
|
|
coverageWindAngleSecond = FloatProperty(¶meter->layerSecond.coverageWindAngle);
|
|
}
|
|
|
|
|
|
Weather_VolumetricCloudParams_BindLua(VolumetricCloudParameters* parameter) : parameter(parameter)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
Weather_VolumetricCloudParams_BindLua(lua_State* L) : parameter(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
FloatProperty cloudAmbientGroundMultiplier;
|
|
|
|
FloatProperty horizonBlendAmount;
|
|
FloatProperty horizonBlendPower;
|
|
FloatProperty cloudStartHeight;
|
|
FloatProperty cloudThickness;
|
|
|
|
FloatProperty animationMultiplier;
|
|
|
|
// First layer
|
|
VectorProperty albedoFirst;
|
|
VectorProperty extinctionCoefficientFirst;
|
|
|
|
FloatProperty skewAlongWindDirectionFirst;
|
|
FloatProperty totalNoiseScaleFirst;
|
|
FloatProperty curlScaleFirst;
|
|
FloatProperty curlNoiseModifierFirst;
|
|
FloatProperty detailScaleFirst;
|
|
FloatProperty detailNoiseModifierFirst;
|
|
FloatProperty skewAlongCoverageWindDirectionFirst;
|
|
FloatProperty weatherScaleFirst;
|
|
FloatProperty coverageAmountFirst;
|
|
FloatProperty coverageMinimumFirst;
|
|
FloatProperty typeAmountFirst;
|
|
FloatProperty typeMinimumFirst;
|
|
FloatProperty rainAmountFirst;
|
|
FloatProperty rainMinimumFirst;
|
|
|
|
VectorProperty gradientSmallFirst;
|
|
VectorProperty gradientMediumFirst;
|
|
VectorProperty gradientLargeFirst;
|
|
|
|
VectorProperty anvilDeformationSmallFirst;
|
|
VectorProperty anvilDeformationMediumFirst;
|
|
VectorProperty anvilDeformationLargeFirst;
|
|
|
|
FloatProperty windSpeedFirst;
|
|
FloatProperty windAngleFirst;
|
|
FloatProperty windUpAmountFirst;
|
|
FloatProperty coverageWindSpeedFirst;
|
|
FloatProperty coverageWindAngleFirst;
|
|
|
|
// Second layer
|
|
VectorProperty albedoSecond;
|
|
VectorProperty extinctionCoefficientSecond;
|
|
|
|
FloatProperty skewAlongWindDirectionSecond;
|
|
FloatProperty totalNoiseScaleSecond;
|
|
FloatProperty curlScaleSecond;
|
|
FloatProperty curlNoiseModifierSecond;
|
|
FloatProperty detailScaleSecond;
|
|
FloatProperty detailNoiseModifierSecond;
|
|
FloatProperty skewAlongCoverageWindDirectionSecond;
|
|
FloatProperty weatherScaleSecond;
|
|
FloatProperty coverageAmountSecond;
|
|
FloatProperty coverageMinimumSecond;
|
|
FloatProperty typeAmountSecond;
|
|
FloatProperty typeMinimumSecond;
|
|
FloatProperty rainAmountSecond;
|
|
FloatProperty rainMinimumSecond;
|
|
|
|
VectorProperty gradientSmallSecond;
|
|
VectorProperty gradientMediumSecond;
|
|
VectorProperty gradientLargeSecond;
|
|
|
|
VectorProperty anvilDeformationSmallSecond;
|
|
VectorProperty anvilDeformationMediumSecond;
|
|
VectorProperty anvilDeformationLargeSecond;
|
|
|
|
FloatProperty windSpeedSecond;
|
|
FloatProperty windAngleSecond;
|
|
FloatProperty windUpAmountSecond;
|
|
FloatProperty coverageWindSpeedSecond;
|
|
FloatProperty coverageWindAngleSecond;
|
|
|
|
PropertyFunction(cloudAmbientGroundMultiplier)
|
|
|
|
PropertyFunction(horizonBlendAmount)
|
|
PropertyFunction(horizonBlendPower)
|
|
PropertyFunction(cloudStartHeight)
|
|
PropertyFunction(cloudThickness)
|
|
|
|
PropertyFunction(animationMultiplier)
|
|
|
|
// First layer
|
|
PropertyFunction(albedoFirst)
|
|
PropertyFunction(extinctionCoefficientFirst)
|
|
|
|
PropertyFunction(skewAlongWindDirectionFirst)
|
|
PropertyFunction(totalNoiseScaleFirst)
|
|
PropertyFunction(curlScaleFirst)
|
|
PropertyFunction(curlNoiseModifierFirst)
|
|
PropertyFunction(detailScaleFirst)
|
|
PropertyFunction(detailNoiseModifierFirst)
|
|
PropertyFunction(skewAlongCoverageWindDirectionFirst)
|
|
PropertyFunction(weatherScaleFirst)
|
|
PropertyFunction(coverageAmountFirst)
|
|
PropertyFunction(coverageMinimumFirst)
|
|
PropertyFunction(typeAmountFirst)
|
|
PropertyFunction(typeMinimumFirst)
|
|
PropertyFunction(rainAmountFirst)
|
|
PropertyFunction(rainMinimumFirst)
|
|
|
|
PropertyFunction(gradientSmallFirst)
|
|
PropertyFunction(gradientMediumFirst)
|
|
PropertyFunction(gradientLargeFirst)
|
|
|
|
PropertyFunction(anvilDeformationSmallFirst)
|
|
PropertyFunction(anvilDeformationMediumFirst)
|
|
PropertyFunction(anvilDeformationLargeFirst)
|
|
|
|
PropertyFunction(windSpeedFirst)
|
|
PropertyFunction(windAngleFirst)
|
|
PropertyFunction(windUpAmountFirst)
|
|
PropertyFunction(coverageWindSpeedFirst)
|
|
PropertyFunction(coverageWindAngleFirst)
|
|
|
|
// Second layer
|
|
PropertyFunction(albedoSecond)
|
|
PropertyFunction(extinctionCoefficientSecond)
|
|
|
|
PropertyFunction(skewAlongWindDirectionSecond)
|
|
PropertyFunction(totalNoiseScaleSecond)
|
|
PropertyFunction(curlScaleSecond)
|
|
PropertyFunction(curlNoiseModifierSecond)
|
|
PropertyFunction(detailScaleSecond)
|
|
PropertyFunction(detailNoiseModifierSecond)
|
|
PropertyFunction(skewAlongCoverageWindDirectionSecond)
|
|
PropertyFunction(weatherScaleSecond)
|
|
PropertyFunction(coverageAmountSecond)
|
|
PropertyFunction(coverageMinimumSecond)
|
|
PropertyFunction(typeAmountSecond)
|
|
PropertyFunction(typeMinimumSecond)
|
|
PropertyFunction(rainAmountSecond)
|
|
PropertyFunction(rainMinimumSecond)
|
|
|
|
PropertyFunction(gradientSmallSecond)
|
|
PropertyFunction(gradientMediumSecond)
|
|
PropertyFunction(gradientLargeSecond)
|
|
|
|
PropertyFunction(anvilDeformationSmallSecond)
|
|
PropertyFunction(anvilDeformationMediumSecond)
|
|
PropertyFunction(anvilDeformationLargeSecond)
|
|
|
|
PropertyFunction(windSpeedSecond)
|
|
PropertyFunction(windAngleSecond)
|
|
PropertyFunction(windUpAmountSecond)
|
|
PropertyFunction(coverageWindSpeedSecond)
|
|
PropertyFunction(coverageWindAngleSecond)
|
|
};
|
|
struct Weather_VolumetricCloudParams_Property
|
|
{
|
|
VolumetricCloudParameters* data = nullptr;
|
|
Weather_VolumetricCloudParams_Property(){}
|
|
Weather_VolumetricCloudParams_Property(VolumetricCloudParameters* data) :data(data){}
|
|
int Get(lua_State* L);
|
|
int Set(lua_State* L);
|
|
};
|
|
|
|
class WeatherComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::WeatherComponent owning;
|
|
public:
|
|
wi::scene::WeatherComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "WeatherComponent";
|
|
static Luna<WeatherComponent_BindLua>::FunctionType methods[];
|
|
static Luna<WeatherComponent_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
sunColor = VectorProperty(&component->sunColor);
|
|
sunDirection = VectorProperty(&component->sunDirection);
|
|
skyExposure = FloatProperty(&component->skyExposure);
|
|
horizon = VectorProperty(&component->horizon);
|
|
zenith = VectorProperty(&component->zenith);
|
|
ambient = VectorProperty(&component->ambient);
|
|
fogStart = FloatProperty(&component->fogStart);
|
|
fogDensity = FloatProperty(&component->fogDensity);
|
|
fogHeightStart = FloatProperty(&component->fogHeightStart);
|
|
fogHeightEnd = FloatProperty(&component->fogHeightEnd);
|
|
windDirection = VectorProperty(&component->windDirection);
|
|
windRandomness = FloatProperty(&component->windRandomness);
|
|
windWaveSize = FloatProperty(&component->windWaveSize);
|
|
windSpeed = FloatProperty(&component->windSpeed);
|
|
stars = FloatProperty(&component->stars);
|
|
rainAmount = FloatProperty(&component->rain_amount);
|
|
rainLength = FloatProperty(&component->rain_length);
|
|
rainSpeed = FloatProperty(&component->rain_speed);
|
|
rainScale = FloatProperty(&component->rain_scale);
|
|
rainColor = VectorProperty(&component->rain_color);
|
|
gravity = VectorProperty(&component->gravity);
|
|
|
|
OceanParameters = Weather_OceanParams_Property(&component->oceanParameters);
|
|
AtmosphereParameters = Weather_AtmosphereParams_Property(&component->atmosphereParameters);
|
|
VolumetricCloudParameters = Weather_VolumetricCloudParams_Property(&component->volumetricCloudParameters);
|
|
|
|
skyMapName = StringProperty(&component->skyMapName);
|
|
colorGradingMapName = StringProperty(&component->colorGradingMapName);
|
|
volumetricCloudsWeatherMapFirstName = StringProperty(&component->volumetricCloudsWeatherMapFirstName);
|
|
volumetricCloudsWeatherMapSecondName = StringProperty(&component->volumetricCloudsWeatherMapSecondName);
|
|
}
|
|
|
|
WeatherComponent_BindLua(wi::scene::WeatherComponent* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
WeatherComponent_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
VectorProperty sunColor;
|
|
VectorProperty sunDirection;
|
|
FloatProperty skyExposure;
|
|
VectorProperty horizon;
|
|
VectorProperty zenith;
|
|
VectorProperty ambient;
|
|
FloatProperty fogStart;
|
|
FloatProperty fogDensity;
|
|
FloatProperty fogHeightStart;
|
|
FloatProperty fogHeightEnd;
|
|
FloatProperty fogHeightSky;
|
|
FloatProperty cloudiness;
|
|
FloatProperty cloudScale;
|
|
FloatProperty cloudSpeed;
|
|
FloatProperty cloud_shadow_amount;
|
|
FloatProperty cloud_shadow_scale;
|
|
FloatProperty cloud_shadow_speed;
|
|
VectorProperty windDirection;
|
|
VectorProperty gravity;
|
|
FloatProperty windRandomness;
|
|
FloatProperty windWaveSize;
|
|
FloatProperty windSpeed;
|
|
FloatProperty stars;
|
|
FloatProperty rainAmount;
|
|
FloatProperty rainLength;
|
|
FloatProperty rainSpeed;
|
|
FloatProperty rainScale;
|
|
VectorProperty rainColor;
|
|
|
|
PropertyFunction(sunColor)
|
|
PropertyFunction(sunDirection)
|
|
PropertyFunction(skyExposure)
|
|
PropertyFunction(horizon)
|
|
PropertyFunction(zenith)
|
|
PropertyFunction(ambient)
|
|
PropertyFunction(fogStart)
|
|
PropertyFunction(fogDensity)
|
|
PropertyFunction(fogHeightStart)
|
|
PropertyFunction(fogHeightEnd)
|
|
PropertyFunction(fogHeightSky)
|
|
PropertyFunction(cloudiness)
|
|
PropertyFunction(cloudScale)
|
|
PropertyFunction(cloudSpeed)
|
|
PropertyFunction(cloud_shadow_amount)
|
|
PropertyFunction(cloud_shadow_scale)
|
|
PropertyFunction(cloud_shadow_speed)
|
|
PropertyFunction(windDirection)
|
|
PropertyFunction(gravity)
|
|
PropertyFunction(windRandomness)
|
|
PropertyFunction(windWaveSize)
|
|
PropertyFunction(windSpeed)
|
|
PropertyFunction(stars)
|
|
PropertyFunction(rainAmount)
|
|
PropertyFunction(rainLength)
|
|
PropertyFunction(rainSpeed)
|
|
PropertyFunction(rainScale)
|
|
PropertyFunction(rainColor)
|
|
|
|
Weather_OceanParams_Property OceanParameters;
|
|
Weather_AtmosphereParams_Property AtmosphereParameters;
|
|
Weather_VolumetricCloudParams_Property VolumetricCloudParameters;
|
|
|
|
PropertyFunction(OceanParameters)
|
|
PropertyFunction(AtmosphereParameters)
|
|
PropertyFunction(VolumetricCloudParameters)
|
|
|
|
StringProperty skyMapName;
|
|
StringProperty colorGradingMapName;
|
|
StringProperty volumetricCloudsWeatherMapFirstName;
|
|
StringProperty volumetricCloudsWeatherMapSecondName;
|
|
|
|
PropertyFunction(skyMapName)
|
|
PropertyFunction(colorGradingMapName)
|
|
PropertyFunction(volumetricCloudsWeatherMapFirstName)
|
|
PropertyFunction(volumetricCloudsWeatherMapSecondName)
|
|
|
|
int IsOceanEnabled(lua_State* L);
|
|
int IsSimpleSky(lua_State* L);
|
|
int IsRealisticSky(lua_State* L);
|
|
int IsVolumetricClouds(lua_State* L);
|
|
int IsHeightFog(lua_State* L);
|
|
int IsVolumetricCloudsCastShadow(lua_State* L);
|
|
int IsOverrideFogColor(lua_State* L);
|
|
int IsRealisticSkyAerialPerspective(lua_State* L);
|
|
int IsRealisticSkyHighQuality(lua_State* L);
|
|
int IsRealisticSkyReceiveShadow(lua_State* L);
|
|
int IsVolumetricCloudsReceiveShadow(lua_State* L);
|
|
|
|
int SetOceanEnabled(lua_State* L);
|
|
int SetSimpleSky(lua_State* L);
|
|
int SetRealisticSky(lua_State* L);
|
|
int SetVolumetricClouds(lua_State* L);
|
|
int SetHeightFog(lua_State* L);
|
|
int SetVolumetricCloudsCastShadow(lua_State* L);
|
|
int SetOverrideFogColor(lua_State* L);
|
|
int SetRealisticSkyAerialPerspective(lua_State* L);
|
|
int SetRealisticSkyHighQuality(lua_State* L);
|
|
int SetRealisticSkyReceiveShadow(lua_State* L);
|
|
int SetVolumetricCloudsReceiveShadow(lua_State* L);
|
|
|
|
int GetSkyMapName(lua_State* L);
|
|
int GetColorGradingMapName(lua_State* L);
|
|
|
|
int SetSkyMapName(lua_State* L);
|
|
int SetColorGradingMapName(lua_State* L);
|
|
};
|
|
|
|
class SoundComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::SoundComponent owning;
|
|
public:
|
|
wi::scene::SoundComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "SoundComponent";
|
|
static Luna<SoundComponent_BindLua>::FunctionType methods[];
|
|
static Luna<SoundComponent_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
Filename = StringProperty(&component->filename);
|
|
Volume = FloatProperty(&component->volume);
|
|
}
|
|
|
|
SoundComponent_BindLua(wi::scene::SoundComponent* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
SoundComponent_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
StringProperty Filename;
|
|
FloatProperty Volume;
|
|
|
|
PropertyFunction(Filename)
|
|
PropertyFunction(Volume)
|
|
|
|
int IsPlaying(lua_State* L);
|
|
int IsLooped(lua_State* L);
|
|
int IsDisable3D(lua_State* L);
|
|
|
|
int Play(lua_State* L);
|
|
int Stop(lua_State* L);
|
|
int SetLooped(lua_State* L);
|
|
int SetDisable3D(lua_State* L);
|
|
int SetSound(lua_State* L);
|
|
int SetSoundInstance(lua_State* L);
|
|
int GetSound(lua_State* L);
|
|
int GetSoundInstance(lua_State* L);
|
|
};
|
|
|
|
class VideoComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::VideoComponent owning;
|
|
public:
|
|
wi::scene::VideoComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "VideoComponent";
|
|
static Luna<VideoComponent_BindLua>::FunctionType methods[];
|
|
static Luna<VideoComponent_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
Filename = StringProperty(&component->filename);
|
|
}
|
|
|
|
VideoComponent_BindLua(wi::scene::VideoComponent* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
VideoComponent_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
StringProperty Filename;
|
|
|
|
PropertyFunction(Filename)
|
|
|
|
int IsPlaying(lua_State* L);
|
|
int IsLooped(lua_State* L);
|
|
|
|
int Play(lua_State* L);
|
|
int Stop(lua_State* L);
|
|
int SetLooped(lua_State* L);
|
|
int GetLength(lua_State* L);
|
|
int GetCurrentTimer(lua_State* L);
|
|
int Seek(lua_State* L);
|
|
int SetVideo(lua_State* L);
|
|
int SetVideoInstance(lua_State* L);
|
|
int GetVideo(lua_State* L);
|
|
int GetVideoInstance(lua_State* L);
|
|
};
|
|
|
|
class ColliderComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::ColliderComponent owning;
|
|
public:
|
|
wi::scene::ColliderComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "ColliderComponent";
|
|
static Luna<ColliderComponent_BindLua>::FunctionType methods[];
|
|
static Luna<ColliderComponent_BindLua>::PropertyType properties[];
|
|
|
|
inline void BuildBindings()
|
|
{
|
|
Shape = IntProperty(reinterpret_cast<int*>(&component->shape));
|
|
Radius = FloatProperty(&component->radius);
|
|
Offset = VectorProperty(&component->offset);
|
|
Tail = VectorProperty(&component->tail);
|
|
}
|
|
|
|
ColliderComponent_BindLua(wi::scene::ColliderComponent* component) :component(component)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
ColliderComponent_BindLua(lua_State* L) : component(&owning)
|
|
{
|
|
BuildBindings();
|
|
}
|
|
|
|
IntProperty Shape;
|
|
FloatProperty Radius;
|
|
VectorProperty Offset;
|
|
VectorProperty Tail;
|
|
|
|
PropertyFunction(Shape)
|
|
PropertyFunction(Radius)
|
|
PropertyFunction(Offset)
|
|
PropertyFunction(Tail)
|
|
|
|
int SetCPUEnabled(lua_State* L);
|
|
int SetGPUEnabled(lua_State* L);
|
|
|
|
int GetCapsule(lua_State* L);
|
|
int GetSphere(lua_State* L);
|
|
};
|
|
|
|
class ExpressionComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::ExpressionComponent owning;
|
|
public:
|
|
wi::scene::ExpressionComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "ExpressionComponent";
|
|
static Luna<ExpressionComponent_BindLua>::FunctionType methods[];
|
|
static Luna<ExpressionComponent_BindLua>::PropertyType properties[];
|
|
|
|
ExpressionComponent_BindLua(wi::scene::ExpressionComponent* component) :component(component) {}
|
|
ExpressionComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int FindExpressionID(lua_State* L);
|
|
int SetWeight(lua_State* L);
|
|
int SetPresetWeight(lua_State* L);
|
|
int GetWeight(lua_State* L);
|
|
int GetPresetWeight(lua_State* L);
|
|
int SetForceTalkingEnabled(lua_State* L);
|
|
int IsForceTalkingEnabled(lua_State* L);
|
|
|
|
int SetPresetOverrideMouth(lua_State* L);
|
|
int SetPresetOverrideBlink(lua_State* L);
|
|
int SetPresetOverrideLook(lua_State* L);
|
|
int SetOverrideMouth(lua_State* L);
|
|
int SetOverrideBlink(lua_State* L);
|
|
int SetOverrideLook(lua_State* L);
|
|
};
|
|
|
|
class HumanoidComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::HumanoidComponent owning;
|
|
public:
|
|
wi::scene::HumanoidComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "HumanoidComponent";
|
|
static Luna<HumanoidComponent_BindLua>::FunctionType methods[];
|
|
static Luna<HumanoidComponent_BindLua>::PropertyType properties[];
|
|
|
|
HumanoidComponent_BindLua(wi::scene::HumanoidComponent* component) :component(component) {}
|
|
HumanoidComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int GetBoneEntity(lua_State* L);
|
|
int SetLookAtEnabled(lua_State* L);
|
|
int SetLookAt(lua_State* L);
|
|
int SetRagdollPhysicsEnabled(lua_State* L);
|
|
int IsRagdollPhysicsEnabled(lua_State* L);
|
|
int SetIntersectionDisabled(lua_State* L);
|
|
int IsIntersectionDisabled(lua_State* L);
|
|
int SetRagdollFatness(lua_State* L);
|
|
int SetRagdollHeadSize(lua_State* L);
|
|
int GetRagdollFatness(lua_State* L);
|
|
int GetRagdollHeadSize(lua_State* L);
|
|
int SetArmSpacing(lua_State* L);
|
|
int GetArmSpacing(lua_State* L);
|
|
int SetLegSpacing(lua_State* L);
|
|
int GetLegSpacing(lua_State* L);
|
|
};
|
|
|
|
class DecalComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::DecalComponent owning;
|
|
public:
|
|
wi::scene::DecalComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "DecalComponent";
|
|
static Luna<DecalComponent_BindLua>::FunctionType methods[];
|
|
static Luna<DecalComponent_BindLua>::PropertyType properties[];
|
|
|
|
DecalComponent_BindLua(wi::scene::DecalComponent* component) :component(component) {}
|
|
DecalComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int SetBaseColorOnlyAlpha(lua_State* L);
|
|
int IsBaseColorOnlyAlpha(lua_State* L);
|
|
int SetSlopeBlendPower(lua_State* L);
|
|
int GetSlopeBlendPower(lua_State* L);
|
|
};
|
|
|
|
class MetadataComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::MetadataComponent owning;
|
|
public:
|
|
wi::scene::MetadataComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "MetadataComponent";
|
|
static Luna<MetadataComponent_BindLua>::FunctionType methods[];
|
|
static Luna<MetadataComponent_BindLua>::PropertyType properties[];
|
|
|
|
MetadataComponent_BindLua(wi::scene::MetadataComponent* component) :component(component) {}
|
|
MetadataComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int HasBool(lua_State* L);
|
|
int HasInt(lua_State* L);
|
|
int HasFloat(lua_State* L);
|
|
int HasString(lua_State* L);
|
|
|
|
int GetPreset(lua_State* L);
|
|
int GetBool(lua_State* L);
|
|
int GetInt(lua_State* L);
|
|
int GetFloat(lua_State* L);
|
|
int GetString(lua_State* L);
|
|
|
|
int SetPreset(lua_State* L);
|
|
int SetBool(lua_State* L);
|
|
int SetInt(lua_State* L);
|
|
int SetFloat(lua_State* L);
|
|
int SetString(lua_State* L);
|
|
};
|
|
|
|
class CharacterComponent_BindLua
|
|
{
|
|
private:
|
|
wi::scene::CharacterComponent owning;
|
|
public:
|
|
wi::scene::CharacterComponent* component = nullptr;
|
|
|
|
inline static constexpr char className[] = "CharacterComponent";
|
|
static Luna<CharacterComponent_BindLua>::FunctionType methods[];
|
|
static Luna<CharacterComponent_BindLua>::PropertyType properties[];
|
|
|
|
CharacterComponent_BindLua(wi::scene::CharacterComponent* component) :component(component) {}
|
|
CharacterComponent_BindLua(lua_State* L) : component(&owning) {}
|
|
|
|
int Move(lua_State* L);
|
|
int Strafe(lua_State* L);
|
|
int Jump(lua_State* L);
|
|
int Turn(lua_State* L);
|
|
int Lean(lua_State* L);
|
|
int Shake(lua_State* L);
|
|
|
|
int AddAnimation(lua_State* L);
|
|
int PlayAnimation(lua_State* L);
|
|
int StopAnimation(lua_State* L);
|
|
int SetAnimationAmount(lua_State* L);
|
|
int GetAnimationAmount(lua_State* L);
|
|
int GetAnimationTimer(lua_State* L);
|
|
int IsAnimationEnded(lua_State* L);
|
|
|
|
int SetGroundFriction(lua_State* L);
|
|
int SetWaterFriction(lua_State* L);
|
|
int SetSlopeThreshold(lua_State* L);
|
|
int SetLeaningLimit(lua_State* L);
|
|
int SetTurningSpeed(lua_State* L);
|
|
int SetFixedUpdateFPS(lua_State* L);
|
|
int SetGravity(lua_State* L);
|
|
int SetWaterVerticalOffset(lua_State* L);
|
|
|
|
int SetActive(lua_State* L);
|
|
int SetHealth(lua_State* L);
|
|
int SetWidth(lua_State* L);
|
|
int SetHeight(lua_State* L);
|
|
int SetScale(lua_State* L);
|
|
int SetPosition(lua_State* L);
|
|
int SetVelocity(lua_State* L);
|
|
int SetFacing(lua_State* L);
|
|
int SetRelativeOffset(lua_State* L);
|
|
int SetFootPlacementEnabled(lua_State* L);
|
|
int SetCharacterToCharacterCollisionDisabled(lua_State* L);
|
|
int SetDedicatedShadow(lua_State* L);
|
|
|
|
int GetHealth(lua_State* L);
|
|
int GetWidth(lua_State* L);
|
|
int GetHeight(lua_State* L);
|
|
int GetScale(lua_State* L);
|
|
int GetPosition(lua_State* L);
|
|
int GetPositionInterpolated(lua_State* L);
|
|
int GetVelocity(lua_State* L);
|
|
int GetMovement(lua_State* L);
|
|
int IsActive(lua_State* L);
|
|
int IsGrounded(lua_State* L);
|
|
int IsWallIntersect(lua_State* L);
|
|
int IsSwimming(lua_State* L);
|
|
int GetCapsule(lua_State* L);
|
|
int GetFacing(lua_State* L);
|
|
int GetFacingSmoothed(lua_State* L);
|
|
int GetRelativeOffset(lua_State* L);
|
|
int IsFootPlacementEnabled(lua_State* L);
|
|
int IsCharacterToCharacterCollisionDisabled(lua_State* L);
|
|
int IsDedicatedShadow(lua_State* L);
|
|
int GetLeaning(lua_State* L);
|
|
int GetLeaningSmoothed(lua_State* L);
|
|
int GetFootOffset(lua_State* L);
|
|
|
|
int SetPathGoal(lua_State* L);
|
|
int GetPathQuery(lua_State* L);
|
|
};
|
|
}
|
|
|