Skip to content

Commit

Permalink
#6212: Extend Python interface with frobstage-related methods
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Jan 2, 2023
1 parent 9d13df4 commit 44733cb
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 0 deletions.
14 changes: 14 additions & 0 deletions plugins/script/interfaces/ShaderSystemInterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,13 @@ void ShaderSystemInterface::registerInterface(py::module& scope, py::dict& globa
.value("TRANSLUCENT", Material::MC_TRANSLUCENT)
.export_values();

py::enum_<Material::FrobStageType>(material, "FrobStageType")
.value("DEFAULT", Material::FrobStageType::Default)
.value("DIFFUSE", Material::FrobStageType::Diffuse)
.value("TEXTURE", Material::FrobStageType::Texture)
.value("NONE", Material::FrobStageType::None)
.export_values();

py::enum_<IShaderLayer::Type>(stage, "Type")
.value("DIFFUSE", IShaderLayer::Type::DIFFUSE)
.value("BUMP", IShaderLayer::Type::BUMP)
Expand Down Expand Up @@ -291,6 +298,13 @@ void ShaderSystemInterface::registerInterface(py::module& scope, py::dict& globa
material.def("removeStage", &ScriptMaterial::removeStage);
material.def("duplicateStage", &ScriptMaterial::duplicateStage);
material.def("swapStagePosition", &ScriptMaterial::swapStagePosition);
material.def("getFrobStageType", &ScriptMaterial::getFrobStageType);
material.def("setFrobStageType", &ScriptMaterial::setFrobStageType);
material.def("getFrobStageMapExpressionString", &ScriptMaterial::getFrobStageMapExpressionString);
material.def("setFrobStageMapExpressionFromString", &ScriptMaterial::setFrobStageMapExpressionFromString);
material.def("getFrobStageRgbParameter", &ScriptMaterial::getFrobStageRgbParameter);
material.def("setFrobStageParameter", &ScriptMaterial::setFrobStageParameter);
material.def("setFrobStageRgbParameter", &ScriptMaterial::setFrobStageRgbParameter);

// Stage Flags
py::enum_<IShaderLayer::Flags>(stage, "Flag")
Expand Down
38 changes: 38 additions & 0 deletions plugins/script/interfaces/ShaderSystemInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -635,6 +635,44 @@ class ScriptMaterial
if (_material) _material->setLightFalloffCubeMapType(type);
}

Material::FrobStageType getFrobStageType()
{
return _material ? _material->getFrobStageType() : Material::FrobStageType::Default;
}

void setFrobStageType(Material::FrobStageType type)
{
throwIfMaterialCannotBeModified();
if (_material) _material->setFrobStageType(type);
}

std::string getFrobStageMapExpressionString()
{
return _material && _material->getFrobStageMapExpression() ? _material->getFrobStageMapExpression()->getExpressionString() : "";
}

void setFrobStageMapExpressionFromString(const std::string& expr)
{
throwIfMaterialCannotBeModified();
if (_material) _material->setFrobStageMapExpressionFromString(expr);
}

Vector3 getFrobStageRgbParameter(std::size_t index)
{
return _material ? _material->getFrobStageRgbParameter(index) : Vector3(0, 0, 0);
}

void setFrobStageRgbParameter(std::size_t index, const Vector3& value)
{
throwIfMaterialCannotBeModified();
if (_material) _material->setFrobStageRgbParameter(index, value);
}

void setFrobStageParameter(std::size_t index, double value)
{
setFrobStageRgbParameter(index, Vector3(value, value, value));
}

std::string getRenderBumpArguments()
{
return _material ? _material->getRenderBumpArguments() : std::string();
Expand Down

0 comments on commit 44733cb

Please sign in to comment.