This commit is contained in:
blueloveTH 2023-09-26 20:42:11 +08:00
parent d911c41b9c
commit 2ccc1bd6f1
3 changed files with 31 additions and 31 deletions

View File

@ -20,27 +20,27 @@ void PyBody::_register(VM* vm, PyObject* mod, PyObject* type){
return obj; return obj;
}); });
PK_REGISTER_PROPERTY(PyBody, "type: int", _b2Body, GetType, SetType) PY_PROPERTY(PyBody, "type: int", _b2Body, GetType, SetType)
PK_REGISTER_PROPERTY(PyBody, "gravity_scale: float", _b2Body, GetGravityScale, SetGravityScale) PY_PROPERTY(PyBody, "gravity_scale: float", _b2Body, GetGravityScale, SetGravityScale)
PK_REGISTER_PROPERTY(PyBody, "fixed_rotation: bool", _b2Body, IsFixedRotation, SetFixedRotation) PY_PROPERTY(PyBody, "fixed_rotation: bool", _b2Body, IsFixedRotation, SetFixedRotation)
PK_REGISTER_PROPERTY(PyBody, "enabled: bool", _b2Body, IsEnabled, SetEnabled) PY_PROPERTY(PyBody, "enabled: bool", _b2Body, IsEnabled, SetEnabled)
PK_REGISTER_PROPERTY(PyBody, "bullet: bool", _b2Body, IsBullet, SetBullet) PY_PROPERTY(PyBody, "bullet: bool", _b2Body, IsBullet, SetBullet)
PK_REGISTER_READONLY_PROPERTY(PyBody, "mass: float", _b2Body, GetMass) PY_READONLY_PROPERTY(PyBody, "mass: float", _b2Body, GetMass)
PK_REGISTER_READONLY_PROPERTY(PyBody, "inertia: float", _b2Body, GetInertia) PY_READONLY_PROPERTY(PyBody, "inertia: float", _b2Body, GetInertia)
PK_REGISTER_PROPERTY(PyBody, "position: vec2", _, get_position, set_position) PY_PROPERTY(PyBody, "position: vec2", _, get_position, set_position)
PK_REGISTER_PROPERTY(PyBody, "rotation: float", _, get_rotation, set_rotation) PY_PROPERTY(PyBody, "rotation: float", _, get_rotation, set_rotation)
PK_REGISTER_PROPERTY(PyBody, "velocity: vec2", _, get_velocity, set_velocity) PY_PROPERTY(PyBody, "velocity: vec2", _, get_velocity, set_velocity)
PK_REGISTER_PROPERTY(PyBody, "angular_velocity: float", _b2Body, GetAngularVelocity, SetAngularVelocity) PY_PROPERTY(PyBody, "angular_velocity: float", _b2Body, GetAngularVelocity, SetAngularVelocity)
PK_REGISTER_PROPERTY(PyBody, "damping: float", _b2Body, GetLinearDamping, SetLinearDamping) PY_PROPERTY(PyBody, "damping: float", _b2Body, GetLinearDamping, SetLinearDamping)
PK_REGISTER_PROPERTY(PyBody, "angular_damping: float", _b2Body, GetAngularDamping, SetAngularDamping) PY_PROPERTY(PyBody, "angular_damping: float", _b2Body, GetAngularDamping, SetAngularDamping)
PK_REGISTER_PROPERTY(PyBody, "density: float", _b2Fixture, GetDensity, SetDensity) PY_PROPERTY(PyBody, "density: float", _b2Fixture, GetDensity, SetDensity)
PK_REGISTER_PROPERTY(PyBody, "friction: float", _b2Fixture, GetFriction, SetFriction) PY_PROPERTY(PyBody, "friction: float", _b2Fixture, GetFriction, SetFriction)
PK_REGISTER_PROPERTY(PyBody, "restitution: float", _b2Fixture, GetRestitution, SetRestitution) PY_PROPERTY(PyBody, "restitution: float", _b2Fixture, GetRestitution, SetRestitution)
PK_REGISTER_PROPERTY(PyBody, "restitution_threshold: float", _b2Fixture, GetRestitutionThreshold, SetRestitutionThreshold) PY_PROPERTY(PyBody, "restitution_threshold: float", _b2Fixture, GetRestitutionThreshold, SetRestitutionThreshold)
PK_REGISTER_PROPERTY(PyBody, "is_sensor: bool", _b2Fixture, IsSensor, SetSensor) PY_PROPERTY(PyBody, "is_sensor: bool", _b2Fixture, IsSensor, SetSensor)
vm->bind(type, "set_box_shape(self, hx: float, hy: float)", vm->bind(type, "set_box_shape(self, hx: float, hy: float)",
[](VM* vm, ArgsView args){ [](VM* vm, ArgsView args){

View File

@ -74,7 +74,7 @@ void _bind(VM* vm, PyObject* obj, const char* sig, Ret(T::*func)(Params...)){
vm->bind(obj, sig, proxy_wrapper, proxy); vm->bind(obj, sig, proxy_wrapper, proxy);
} }
/*****************************************************************/ /*****************************************************************/
#define PK_REGISTER_FIELD(T, NAME, REF, EXPR) \ #define PY_FIELD(T, NAME, REF, EXPR) \
vm->bind_property(type, NAME, \ vm->bind_property(type, NAME, \
[](VM* vm, ArgsView args){ \ [](VM* vm, ArgsView args){ \
T& self = _CAST(T&, args[0]); \ T& self = _CAST(T&, args[0]); \
@ -86,14 +86,14 @@ void _bind(VM* vm, PyObject* obj, const char* sig, Ret(T::*func)(Params...)){
return vm->None; \ return vm->None; \
}); });
#define PK_REGISTER_READONLY_FIELD(T, NAME, REF, EXPR) \ #define PY_READONLY_FIELD(T, NAME, REF, EXPR) \
vm->bind_property(type, NAME, \ vm->bind_property(type, NAME, \
[](VM* vm, ArgsView args){ \ [](VM* vm, ArgsView args){ \
T& self = _CAST(T&, args[0]); \ T& self = _CAST(T&, args[0]); \
return VAR(self.REF().EXPR); \ return VAR(self.REF().EXPR); \
}); });
#define PK_REGISTER_PROPERTY(T, NAME, REF, FGET, FSET) \ #define PY_PROPERTY(T, NAME, REF, FGET, FSET) \
vm->bind_property(type, NAME, \ vm->bind_property(type, NAME, \
[](VM* vm, ArgsView args){ \ [](VM* vm, ArgsView args){ \
T& self = _CAST(T&, args[0]); \ T& self = _CAST(T&, args[0]); \
@ -106,7 +106,7 @@ void _bind(VM* vm, PyObject* obj, const char* sig, Ret(T::*func)(Params...)){
return vm->None; \ return vm->None; \
}); });
#define PK_REGISTER_READONLY_PROPERTY(T, NAME, REF, FGET) \ #define PY_READONLY_PROPERTY(T, NAME, REF, FGET) \
vm->bind_property(type, NAME, \ vm->bind_property(type, NAME, \
[](VM* vm, ArgsView args){ \ [](VM* vm, ArgsView args){ \
T& self = _CAST(T&, args[0]); \ T& self = _CAST(T&, args[0]); \

View File

@ -1445,15 +1445,15 @@ struct PyStructTime{
static void _register(VM* vm, PyObject* mod, PyObject* type){ static void _register(VM* vm, PyObject* mod, PyObject* type){
vm->bind_notimplemented_constructor<PyStructTime>(type); vm->bind_notimplemented_constructor<PyStructTime>(type);
PK_REGISTER_READONLY_FIELD(PyStructTime, "tm_year", _, tm_year); PY_READONLY_FIELD(PyStructTime, "tm_year", _, tm_year);
PK_REGISTER_READONLY_FIELD(PyStructTime, "tm_mon", _, tm_mon); PY_READONLY_FIELD(PyStructTime, "tm_mon", _, tm_mon);
PK_REGISTER_READONLY_FIELD(PyStructTime, "tm_mday", _, tm_mday); PY_READONLY_FIELD(PyStructTime, "tm_mday", _, tm_mday);
PK_REGISTER_READONLY_FIELD(PyStructTime, "tm_hour", _, tm_hour); PY_READONLY_FIELD(PyStructTime, "tm_hour", _, tm_hour);
PK_REGISTER_READONLY_FIELD(PyStructTime, "tm_min", _, tm_min); PY_READONLY_FIELD(PyStructTime, "tm_min", _, tm_min);
PK_REGISTER_READONLY_FIELD(PyStructTime, "tm_sec", _, tm_sec); PY_READONLY_FIELD(PyStructTime, "tm_sec", _, tm_sec);
PK_REGISTER_READONLY_FIELD(PyStructTime, "tm_wday", _, tm_wday); PY_READONLY_FIELD(PyStructTime, "tm_wday", _, tm_wday);
PK_REGISTER_READONLY_FIELD(PyStructTime, "tm_yday", _, tm_yday); PY_READONLY_FIELD(PyStructTime, "tm_yday", _, tm_yday);
PK_REGISTER_READONLY_FIELD(PyStructTime, "tm_isdst", _, tm_isdst); PY_READONLY_FIELD(PyStructTime, "tm_isdst", _, tm_isdst);
} }
}; };