void EVA::Light::Save(DataObject& data) const { data.SetString("type", m_Type == Directional ? "directional" : "point"); data.SetVec3("color", color); data.SetFloat("ambientCoefficient", ambientCoefficient); if(m_Type == Directional) { data.SetVec2("rotation", m_Rotation); data.SetFloat("directionalShadowDistance", directionalShadowDistance); data.SetFloat("directionalNearPlane", directionalNearPlane); data.SetFloat("directionalFarPlane", directionalFarPlane); } else { data.SetVec3("position", m_Position); data.SetFloat("attenuation", attenuation); data.SetFloat("pointNearPlane", pointNearPlane); data.SetFloat("pointFarPlane", pointFarPlane); } data.SetBool("shadows", m_Shadows); if(m_Shadows) { data.SetInt("shadowMapSize", m_ShadowMapSize); } }