Skip to main content

engage/generated/unity_engine/ai/
navmesh.rs

1// @generated by il2cpp-bindgen — do not edit by hand.
2
3#[cfg(feature = "unity_engine-ai-navmesh-types")]
4mod __types {
5    #[allow(unused_imports)] use ::unity::prelude::*;
6
7    use super::*;
8    use crate::system::{
9        delegate::{Delegate, IDelegate},
10        multicastdelegate::{IMulticastDelegate, MulticastDelegate},
11        object::{IObject, Object},
12    };
13
14    #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/unity_engine/ai/navmesh/NavMesh_OnNavMeshPreUpdate.md"))]
15    #[::unity::class(namespace = "UnityEngine.AI", name = "NavMesh.OnNavMeshPreUpdate")]
16    #[parent(crate::system::multicastdelegate::MulticastDelegate)]
17    pub struct NavMesh_OnNavMeshPreUpdate {}
18
19    #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/unity_engine/ai/navmesh/NavMesh.md"))]
20    #[::unity::class(namespace = "UnityEngine.AI", name = "NavMesh")]
21    #[parent(crate::system::object::Object)]
22    pub struct NavMesh {
23        #[static_field]
24        #[rename(name = "onPreUpdate")]
25        pub on_pre_update: crate::unity_engine::ai::navmesh::NavMesh_OnNavMeshPreUpdate,
26    }
27}
28
29#[cfg(feature = "unity_engine-ai-navmesh-types")]
30pub use __types::*;
31
32#[cfg(feature = "unity_engine-ai-navmesh")]
33pub trait INavMesh_OnNavMeshPreUpdateMethods: INavMesh_OnNavMeshPreUpdate {
34    #[doc = "`.ctor(crate::system::object::Object, ::unity::IntPtr)` overload"]
35    fn ctor(self, object: impl ::core::convert::Into<crate::system::object::Object>, method: impl ::core::convert::Into<::unity::IntPtr>) -> () {
36        unsafe {
37            let __receiver =
38                <NavMesh_OnNavMeshPreUpdate as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
39            ::unity::il2cpp_call!((::unity::module_base()+0x3f44300usize)as*mut u8,();
40(NavMesh_OnNavMeshPreUpdate)__receiver,(crate::system::object::Object)::core::convert::Into::into(object),(::unity::IntPtr)::core::convert::Into::into(method))
41        }
42    }
43    #[doc = "`Invoke()` overload"]
44    fn invoke(self) -> () {
45        unsafe {
46            let __receiver =
47                <NavMesh_OnNavMeshPreUpdate as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
48            {
49                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
50                let __vi = *__vt.get(13usize).unwrap_or_else(|| {
51                    panic!(
52                        "unity: virtual slot {}
53 out of range (vtable len {}
54) on the runtime class behind {}
55 (method `{}
56`)",
57                        13usize,
58                        __vt.len(),
59                        <NavMesh_OnNavMeshPreUpdate as ::unity::ClassIdentity>::NAME,
60                        "Invoke",
61                    )
62                });
63                let __inner: extern "C" fn(NavMesh_OnNavMeshPreUpdate, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__vi.method_ptr);
64                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
65                __inner(__receiver, __mi)
66            }
67        }
68    }
69}
70
71#[cfg(feature = "unity_engine-ai-navmesh")]
72impl<__T: INavMesh_OnNavMeshPreUpdate> INavMesh_OnNavMeshPreUpdateMethods for __T {}
73
74#[cfg(feature = "unity_engine-ai-navmesh")]
75impl NavMesh_OnNavMeshPreUpdate {
76    pub fn ctor_method_info() -> &'static ::unity::il2cpp::MethodInfo {
77        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
78    }
79
80    pub fn invoke_method_info() -> &'static ::unity::il2cpp::MethodInfo {
81        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
82    }
83}
84
85#[cfg(feature = "unity_engine-ai-navmesh")]
86impl NavMesh_OnNavMeshPreUpdate {
87    #[doc = "Direct (non-virtual) call to `NavMesh_OnNavMeshPreUpdate`'s own `Invoke`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
88    pub unsafe fn invoke(this: impl ::core::convert::Into<::unity::IlInstance>) -> () {
89        let __mi = Self::invoke_method_info();
90        let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__mi.method_ptr);
91        __inner(this.into(), ::core::option::Option::None)
92    }
93}
94
95#[cfg(feature = "unity_engine-ai-navmesh")]
96impl NavMesh_OnNavMeshPreUpdate {
97    #[doc = "`.ctor(crate::system::object::Object, ::unity::IntPtr)` — overload selector"]
98    pub fn new(object: crate::system::object::Object, method: ::unity::IntPtr) -> Self {
99        let this = <Self as ::unity::FromIlInstance>::instantiate().unwrap_or_else(|| {
100            panic!(
101                "{}
102::{}
103 failed to instantiate",
104                ::core::stringify!(NavMesh_OnNavMeshPreUpdate),
105                ::core::stringify!(new),
106            )
107        });
108        <Self as INavMesh_OnNavMeshPreUpdateMethods>::ctor(this, object, method);
109        this
110    }
111}
112
113#[cfg(feature = "unity_engine-ai-navmesh")]
114impl NavMesh {
115    #[doc = "`Internal_CallOnNavMeshPreUpdate()` overload"]
116    pub fn internal_call_on_nav_mesh_pre_update() -> () {
117        unsafe {
118            ::unity::il2cpp_call!((::unity::module_base()+0x3f43180usize)as*mut u8,();
119            )
120        }
121    }
122
123    #[doc = "`CalculatePath(crate::unity_engine::vector3::Vector3, crate::unity_engine::vector3::Vector3, i32, crate::unity_engine::ai::navmeshpath::NavMeshPath)` overload"]
124    pub fn calculate_path(
125        source_position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
126        target_position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
127        area_mask: impl ::core::convert::Into<i32>,
128        path: impl ::core::convert::Into<crate::unity_engine::ai::navmeshpath::NavMeshPath>,
129    ) -> bool {
130        unsafe {
131            ::unity::il2cpp_call!((::unity::module_base()+0x3f433f0usize)as*mut u8,bool;
132(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(source_position),(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(target_position),(i32)::core::convert::Into::into(area_mask),(crate::unity_engine::ai::navmeshpath::NavMeshPath)::core::convert::Into::into(path))
133        }
134    }
135
136    #[doc = "`CalculatePathInternal(crate::unity_engine::vector3::Vector3, crate::unity_engine::vector3::Vector3, i32, crate::unity_engine::ai::navmeshpath::NavMeshPath)` overload"]
137    pub fn calculate_path_internal(
138        source_position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
139        target_position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
140        area_mask: impl ::core::convert::Into<i32>,
141        path: impl ::core::convert::Into<crate::unity_engine::ai::navmeshpath::NavMeshPath>,
142    ) -> bool {
143        unsafe {
144            ::unity::il2cpp_call!((::unity::module_base()+0x3f43520usize)as*mut u8,bool;
145(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(source_position),(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(target_position),(i32)::core::convert::Into::into(area_mask),(crate::unity_engine::ai::navmeshpath::NavMeshPath)::core::convert::Into::into(path))
146        }
147    }
148
149    #[doc = "`SamplePosition(crate::unity_engine::vector3::Vector3, *mutcrate::unity_engine::ai::navmeshhit::NavMeshHit, f32, i32)` overload"]
150    pub fn sample_position(
151        source_position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
152        max_distance: impl ::core::convert::Into<f32>,
153        area_mask: impl ::core::convert::Into<i32>,
154    ) -> (bool, crate::unity_engine::ai::navmeshhit::NavMeshHit) {
155        unsafe {
156            let mut __out_0 = ::core::mem::MaybeUninit::<crate::unity_engine::ai::navmeshhit::NavMeshHit>::uninit();
157            let __ret = {
158                ::unity::il2cpp_call!((::unity::module_base()+0x3f43610usize)as*mut u8,bool;
159(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(source_position),(*mut crate::unity_engine::ai::navmeshhit::NavMeshHit)__out_0.as_mut_ptr(),(f32)::core::convert::Into::into(max_distance),(i32)::core::convert::Into::into(area_mask))
160            };
161            (__ret, __out_0.assume_init())
162        }
163    }
164
165    #[doc = "`CalculatePathInternal_Injected(*mutcrate::unity_engine::vector3::Vector3, *mutcrate::unity_engine::vector3::Vector3, i32, crate::unity_engine::ai::navmeshpath::NavMeshPath)` overload"]
166    pub fn calculate_path_internal_injected(
167        area_mask: impl ::core::convert::Into<i32>,
168        path: impl ::core::convert::Into<crate::unity_engine::ai::navmeshpath::NavMeshPath>,
169    ) -> (bool, crate::unity_engine::vector3::Vector3, crate::unity_engine::vector3::Vector3) {
170        unsafe {
171            let mut __out_0 = ::core::mem::MaybeUninit::<crate::unity_engine::vector3::Vector3>::uninit();
172            let mut __out_1 = ::core::mem::MaybeUninit::<crate::unity_engine::vector3::Vector3>::uninit();
173            let __ret = {
174                ::unity::il2cpp_call!((::unity::module_base()+0x3f435a0usize)as*mut u8,bool;
175(*mut crate::unity_engine::vector3::Vector3)__out_0.as_mut_ptr(),(*mut crate::unity_engine::vector3::Vector3)__out_1.as_mut_ptr(),(i32)::core::convert::Into::into(area_mask),(crate::unity_engine::ai::navmeshpath::NavMeshPath)::core::convert::Into::into(path))
176            };
177            (__ret, __out_0.assume_init(), __out_1.assume_init())
178        }
179    }
180
181    #[doc = "`SamplePosition_Injected(*mutcrate::unity_engine::vector3::Vector3, *mutcrate::unity_engine::ai::navmeshhit::NavMeshHit, f32, i32)` overload"]
182    pub fn sample_position_injected(
183        max_distance: impl ::core::convert::Into<f32>,
184        area_mask: impl ::core::convert::Into<i32>,
185    ) -> (
186        bool,
187        crate::unity_engine::vector3::Vector3,
188        crate::unity_engine::ai::navmeshhit::NavMeshHit,
189    ) {
190        unsafe {
191            let mut __out_0 = ::core::mem::MaybeUninit::<crate::unity_engine::vector3::Vector3>::uninit();
192            let mut __out_1 = ::core::mem::MaybeUninit::<crate::unity_engine::ai::navmeshhit::NavMeshHit>::uninit();
193            let __ret = {
194                ::unity::il2cpp_call!((::unity::module_base()+0x3f43690usize)as*mut u8,bool;
195(*mut crate::unity_engine::vector3::Vector3)__out_0.as_mut_ptr(),(*mut crate::unity_engine::ai::navmeshhit::NavMeshHit)__out_1.as_mut_ptr(),(f32)::core::convert::Into::into(max_distance),(i32)::core::convert::Into::into(area_mask))
196            };
197            (__ret, __out_0.assume_init(), __out_1.assume_init())
198        }
199    }
200}
201
202#[cfg(feature = "unity_engine-ai-navmesh")]
203impl NavMesh {
204    pub fn internal_call_on_nav_mesh_pre_update_method_info() -> &'static ::unity::il2cpp::MethodInfo {
205        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
206    }
207
208    pub fn calculate_path_method_info() -> &'static ::unity::il2cpp::MethodInfo {
209        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
210    }
211
212    pub fn calculate_path_internal_method_info() -> &'static ::unity::il2cpp::MethodInfo {
213        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[2]
214    }
215
216    pub fn sample_position_method_info() -> &'static ::unity::il2cpp::MethodInfo {
217        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[3]
218    }
219
220    pub fn calculate_path_internal_injected_method_info() -> &'static ::unity::il2cpp::MethodInfo {
221        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[4]
222    }
223
224    pub fn sample_position_injected_method_info() -> &'static ::unity::il2cpp::MethodInfo {
225        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[5]
226    }
227}
228
229#[cfg(feature = "unity_engine-ai-navmesh")]
230#[doc(hidden)]
231pub mod prelude {
232    pub use super::{INavMesh, INavMesh_OnNavMeshPreUpdate, INavMesh_OnNavMeshPreUpdateMethods, NavMesh, NavMesh_OnNavMeshPreUpdate};
233    #[cfg(feature = "system-delegate")]
234    pub use crate::system::delegate::IDelegateMethods;
235    #[cfg(feature = "system-multicastdelegate")]
236    pub use crate::system::multicastdelegate::IMulticastDelegateMethods;
237    #[cfg(feature = "system-object")]
238    pub use crate::system::object::IObjectMethods;
239    pub use crate::system::{delegate::IDelegate, multicastdelegate::IMulticastDelegate, object::IObject};
240}