KRAmbientZone now using KRNodeProperty

This commit is contained in:
2025-11-24 17:57:19 -08:00
parent 9d2d788b98
commit 30ebb97430
2 changed files with 15 additions and 35 deletions

View File

@@ -47,9 +47,6 @@ void KRAmbientZone::InitNodeInfo(KrNodeInfo* nodeInfo)
KRAmbientZone::KRAmbientZone(KRScene& scene, std::string name) KRAmbientZone::KRAmbientZone(KRScene& scene, std::string name)
: KRNode(scene, name) : KRNode(scene, name)
, m_ambient_gain(1.f)
, m_gradient_distance(0.25f)
{ {
} }
@@ -65,46 +62,31 @@ std::string KRAmbientZone::getElementName()
tinyxml2::XMLElement* KRAmbientZone::saveXML(tinyxml2::XMLNode* parent) tinyxml2::XMLElement* KRAmbientZone::saveXML(tinyxml2::XMLNode* parent)
{ {
tinyxml2::XMLElement* e = KRNode::saveXML(parent); tinyxml2::XMLElement* e = KRNode::saveXML(parent);
e->SetAttribute("zone", m_zone.c_str()); m_zone.save(e);
e->SetAttribute("sample", m_ambient.getName().c_str()); m_ambient.save(e);
e->SetAttribute("gain", m_ambient_gain); m_ambient_gain.save(e);
e->SetAttribute("gradient", m_gradient_distance); m_gradient_distance.save(e);
return e; return e;
} }
void KRAmbientZone::loadXML(tinyxml2::XMLElement* e) void KRAmbientZone::loadXML(tinyxml2::XMLElement* e)
{ {
KRNode::loadXML(e); KRNode::loadXML(e);
m_zone.load(e);
m_zone = e->Attribute("zone"); m_gradient_distance.load(e);
m_ambient.load(e);
m_gradient_distance = 0.25f; m_ambient_gain.load(e);
if (e->QueryFloatAttribute("gradient", &m_gradient_distance) != tinyxml2::XML_SUCCESS) {
m_gradient_distance = 0.25f;
}
const char* szAudioSampleName = e->Attribute("sample");
if (szAudioSampleName == nullptr) {
m_ambient.clear();
} else {
m_ambient.set(szAudioSampleName);
}
m_ambient_gain = 1.0f;
if (e->QueryFloatAttribute("gain", &m_ambient_gain) != tinyxml2::XML_SUCCESS) {
m_ambient_gain = 1.0f;
}
} }
KRAudioSample* KRAmbientZone::getAmbient() KRAudioSample* KRAmbientZone::getAmbient()
{ {
m_ambient.bind(&getContext()); m_ambient.val.bind(&getContext());
return m_ambient.get(); return m_ambient.val.get();
} }
void KRAmbientZone::setAmbient(const std::string& ambient) void KRAmbientZone::setAmbient(const std::string& ambient)
{ {
m_ambient.set(ambient); m_ambient.val.set(ambient);
} }
float KRAmbientZone::getAmbientGain() float KRAmbientZone::getAmbientGain()

View File

@@ -68,10 +68,8 @@ public:
float getContainment(const hydra::Vector3& pos); float getContainment(const hydra::Vector3& pos);
private: private:
std::string m_zone; KRNODE_PROPERTY(std::string, m_zone, "", "zone");
KRNODE_PROPERTY(float, m_gradient_distance, 0.25f, "gradient");
float m_gradient_distance; KRNODE_PROPERTY(float, m_ambient_gain, 1.f, "gain");
KRNODE_PROPERTY(KRAudioSampleBinding, m_ambient, nullptr, "sample");
KRAudioSampleBinding m_ambient;
float m_ambient_gain;
}; };