pybevy_pbr 0.2.1

PBR components for PyBevy
Documentation
use bevy::{color::Color, pbr::wireframe::WireframeConfig};
use pybevy_color::PyColor;
use pybevy_core::{PyResource, ResourceStorage};
use pybevy_macros::resource_storage;
use pyo3::prelude::*;

#[resource_storage(WireframeConfig)]
#[pyclass(name = "WireframeConfig", extends = PyResource)]
#[derive(Debug)]
pub struct PyWireframeConfig {
    pub storage: ResourceStorage<WireframeConfig>,
}

#[pymethods]
impl PyWireframeConfig {
    #[new]
    #[pyo3(signature = (global_ = false, default_color = PyColor(Color::WHITE)))]
    pub fn new(global_: bool, default_color: PyColor) -> (Self, PyResource) {
        Self::from_owned(WireframeConfig {
            global: global_,
            default_color: default_color.0,
        })
    }

    #[getter]
    pub fn global_(&self) -> PyResult<bool> {
        Ok(self.as_ref()?.global)
    }

    #[setter]
    pub fn set_global_(&mut self, value: bool) -> PyResult<()> {
        self.as_mut()?.global = value;
        Ok(())
    }

    #[getter]
    pub fn default_color(&self, py: Python) -> PyResult<Py<PyColor>> {
        PyColor::from_color(self.as_ref()?.default_color, py)
    }

    #[setter]
    pub fn set_default_color(&mut self, value: PyColor) -> PyResult<()> {
        self.as_mut()?.default_color = value.0;
        Ok(())
    }
}