dora_ssr/dora/platformer/
bullet_def.rs1extern "C" {
10 fn platformer_bulletdef_type() -> i32;
11 fn platformer_bulletdef_set_tag(slf: i64, val: i64);
12 fn platformer_bulletdef_get_tag(slf: i64) -> i64;
13 fn platformer_bulletdef_set_end_effect(slf: i64, val: i64);
14 fn platformer_bulletdef_get_end_effect(slf: i64) -> i64;
15 fn platformer_bulletdef_set_life_time(slf: i64, val: f32);
16 fn platformer_bulletdef_get_life_time(slf: i64) -> f32;
17 fn platformer_bulletdef_set_damage_radius(slf: i64, val: f32);
18 fn platformer_bulletdef_get_damage_radius(slf: i64) -> f32;
19 fn platformer_bulletdef_set_high_speed_fix(slf: i64, val: i32);
20 fn platformer_bulletdef_is_high_speed_fix(slf: i64) -> i32;
21 fn platformer_bulletdef_set_gravity(slf: i64, val: i64);
22 fn platformer_bulletdef_get_gravity(slf: i64) -> i64;
23 fn platformer_bulletdef_set_face(slf: i64, val: i64);
24 fn platformer_bulletdef_get_face(slf: i64) -> i64;
25 fn platformer_bulletdef_get_body_def(slf: i64) -> i64;
26 fn platformer_bulletdef_get_velocity(slf: i64) -> i64;
27 fn platformer_bulletdef_set_as_circle(slf: i64, radius: f32);
28 fn platformer_bulletdef_set_velocity(slf: i64, angle: f32, speed: f32);
29 fn platformer_bulletdef_new() -> i64;
30}
31use crate::dora::IObject;
32pub struct BulletDef { raw: i64 }
34crate::dora_object!(BulletDef);
35impl BulletDef {
36 pub(crate) fn type_info() -> (i32, fn(i64) -> Option<Box<dyn IObject>>) {
37 (unsafe { platformer_bulletdef_type() }, |raw: i64| -> Option<Box<dyn IObject>> {
38 match raw {
39 0 => None,
40 _ => Some(Box::new(BulletDef { raw: raw }))
41 }
42 })
43 }
44 pub fn set_tag(&mut self, val: &str) {
46 unsafe { platformer_bulletdef_set_tag(self.raw(), crate::dora::from_string(val)) };
47 }
48 pub fn get_tag(&self) -> String {
50 return unsafe { crate::dora::to_string(platformer_bulletdef_get_tag(self.raw())) };
51 }
52 pub fn set_end_effect(&mut self, val: &str) {
54 unsafe { platformer_bulletdef_set_end_effect(self.raw(), crate::dora::from_string(val)) };
55 }
56 pub fn get_end_effect(&self) -> String {
58 return unsafe { crate::dora::to_string(platformer_bulletdef_get_end_effect(self.raw())) };
59 }
60 pub fn set_life_time(&mut self, val: f32) {
62 unsafe { platformer_bulletdef_set_life_time(self.raw(), val) };
63 }
64 pub fn get_life_time(&self) -> f32 {
66 return unsafe { platformer_bulletdef_get_life_time(self.raw()) };
67 }
68 pub fn set_damage_radius(&mut self, val: f32) {
70 unsafe { platformer_bulletdef_set_damage_radius(self.raw(), val) };
71 }
72 pub fn get_damage_radius(&self) -> f32 {
74 return unsafe { platformer_bulletdef_get_damage_radius(self.raw()) };
75 }
76 pub fn set_high_speed_fix(&mut self, val: bool) {
78 unsafe { platformer_bulletdef_set_high_speed_fix(self.raw(), if val { 1 } else { 0 }) };
79 }
80 pub fn is_high_speed_fix(&self) -> bool {
82 return unsafe { platformer_bulletdef_is_high_speed_fix(self.raw()) != 0 };
83 }
84 pub fn set_gravity(&mut self, val: &crate::dora::Vec2) {
86 unsafe { platformer_bulletdef_set_gravity(self.raw(), val.into_i64()) };
87 }
88 pub fn get_gravity(&self) -> crate::dora::Vec2 {
90 return unsafe { crate::dora::Vec2::from(platformer_bulletdef_get_gravity(self.raw())) };
91 }
92 pub fn set_face(&mut self, val: &crate::dora::platformer::Face) {
94 unsafe { platformer_bulletdef_set_face(self.raw(), val.raw()) };
95 }
96 pub fn get_face(&self) -> crate::dora::platformer::Face {
98 return unsafe { crate::dora::platformer::Face::from(platformer_bulletdef_get_face(self.raw())).unwrap() };
99 }
100 pub fn get_body_def(&self) -> crate::dora::BodyDef {
102 return unsafe { crate::dora::BodyDef::from(platformer_bulletdef_get_body_def(self.raw())).unwrap() };
103 }
104 pub fn get_velocity(&self) -> crate::dora::Vec2 {
106 return unsafe { crate::dora::Vec2::from(platformer_bulletdef_get_velocity(self.raw())) };
107 }
108 pub fn set_as_circle(&mut self, radius: f32) {
114 unsafe { platformer_bulletdef_set_as_circle(self.raw(), radius); }
115 }
116 pub fn set_velocity(&mut self, angle: f32, speed: f32) {
123 unsafe { platformer_bulletdef_set_velocity(self.raw(), angle, speed); }
124 }
125 pub fn new() -> BulletDef {
131 unsafe { return BulletDef { raw: platformer_bulletdef_new() }; }
132 }
133}