1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
use crate::wrappers::{*, structs::*, unreal::*};
use super::*;

pub struct FXActorWrapper(pub usize);
impl_object!(FXActorWrapper);

impl FXActor for FXActorWrapper {}
impl Actor for FXActorWrapper {}

pub trait FXActor : Actor {
    fn get_b_deactivate_when_owner_destroyed(&self) -> bool {
        unsafe {
            FXActor_X_Get_bDeactivateWhenOwnerDestroyed(self.addr())
        }
    }
    fn get_b_allow_shadow_casting(&self) -> bool {
        unsafe {
            FXActor_X_Get_bAllowShadowCasting(self.addr())
        }
    }
    fn get_b_auto_activate(&self) -> bool {
        unsafe {
            FXActor_X_Get_bAutoActivate(self.addr())
        }
    }
    fn get_b_render_inactive(&self) -> bool {
        unsafe {
            FXActor_X_Get_bRenderInactive(self.addr())
        }
    }
    fn get_b_active(&self) -> bool {
        unsafe {
            FXActor_X_Get_bActive(self.addr())
        }
    }
    fn get_b_had_owner(&self) -> bool {
        unsafe {
            FXActor_X_Get_bHadOwner(self.addr())
        }
    }
    fn get_parent(&self) -> Option<FXActorWrapper> {
        unsafe {
            FXActorWrapper::try_new(FXActor_X_Get_Parent(self.addr()))
        }
    }
    fn get_attachment_actor(&self) -> Option<ActorWrapper> {
        unsafe {
            ActorWrapper::try_new(FXActor_X_Get_AttachmentActor(self.addr()))
        }
    }
    fn get_destroy_wait_time(&self) -> f32 {
        unsafe {
            FXActor_X_Get_DestroyWaitTime(self.addr())
        }
    }
    fn get_destroy_time(&self) -> f32 {
        unsafe {
            FXActor_X_Get_DestroyTime(self.addr())
        }
    }
    fn get_edit_id(&self) -> i32 {
        unsafe {
            FXActor_X_Get_EditID(self.addr())
        }
    }
    fn inherit(&self, other: FXActorWrapper) {
        unsafe {
            FXActor_X_Inherit(self.addr(), other.addr());
        }
    }
    fn reset_particles(&self) {
        unsafe {
            FXActor_X_ResetParticles(self.addr());
        }
    }
    fn stop_all_effects(&self) {
        unsafe {
            FXActor_X_StopAllEffects(self.addr());
        }
    }
    fn update_fx_states(&self) {
        unsafe {
            FXActor_X_UpdateFXStates(self.addr());
        }
    }
    fn is_locally_controlled(&self) -> bool {
        unsafe {
            FXActor_X_IsLocallyControlled(self.addr())
        }
    }
    fn deactivate(&self) {
        unsafe {
            FXActor_X_Deactivate(self.addr());
        }
    }
    fn activate(&self) {
        unsafe {
            FXActor_X_Activate(self.addr());
        }
    }
    fn bind_to(&self, parent_fx_actor: FXActorWrapper) {
        unsafe {
            FXActor_X_BindTo(self.addr(), parent_fx_actor.addr());
        }
    }
    fn set_attachment_actor2(&self, attach_to_actor: ActorWrapper) {
        unsafe {
            FXActor_X_SetAttachmentActor2(self.addr(), attach_to_actor.addr());
        }
    }
    fn post_begin_play(&self) {
        unsafe {
            FXActor_X_PostBeginPlay(self.addr());
        }
    }

}

extern "C" {
    fn FXActor_X_Get_bDeactivateWhenOwnerDestroyed(obj: usize) -> bool;
    fn FXActorWrapper_SetbDeactivateWhenOwnerDestroyed(obj: usize, new_val: bool);
    fn FXActor_X_Get_bAllowShadowCasting(obj: usize) -> bool;
    fn FXActorWrapper_SetbAllowShadowCasting(obj: usize, new_val: bool);
    fn FXActor_X_Get_bAutoActivate(obj: usize) -> bool;
    fn FXActorWrapper_SetbAutoActivate(obj: usize, new_val: bool);
    fn FXActor_X_Get_bRenderInactive(obj: usize) -> bool;
    fn FXActorWrapper_SetbRenderInactive(obj: usize, new_val: bool);
    fn FXActor_X_Get_bActive(obj: usize) -> bool;
    fn FXActorWrapper_SetbActive(obj: usize, new_val: bool);
    fn FXActor_X_Get_bHadOwner(obj: usize) -> bool;
    fn FXActorWrapper_SetbHadOwner(obj: usize, new_val: bool);
    fn FXActor_X_Get_Parent(obj: usize) -> usize;
    fn FXActorWrapper_SetParent(obj: usize, new_val: usize);
    fn FXActor_X_Get_AttachmentActor(obj: usize) -> usize;
    fn FXActorWrapper_SetAttachmentActor(obj: usize, new_val: usize);
    fn FXActor_X_Get_DestroyWaitTime(obj: usize) -> f32;
    fn FXActorWrapper_SetDestroyWaitTime(obj: usize, new_val: f32);
    fn FXActor_X_Get_DestroyTime(obj: usize) -> f32;
    fn FXActorWrapper_SetDestroyTime(obj: usize, new_val: f32);
    fn FXActor_X_Get_EditID(obj: usize) -> i32;
    fn FXActorWrapper_SetEditID(obj: usize, new_val: i32);
    fn FXActor_X_Inherit(obj: usize, Other: usize);
    fn FXActor_X_ResetParticles(obj: usize);
    fn FXActor_X_StopAllEffects(obj: usize);
    fn FXActor_X_UpdateFXStates(obj: usize);
    fn FXActor_X_IsLocallyControlled(obj: usize) -> bool;
    fn FXActor_X_Deactivate(obj: usize);
    fn FXActor_X_Activate(obj: usize);
    fn FXActor_X_BindTo(obj: usize, ParentFXActor: usize);
    fn FXActor_X_SetAttachmentActor2(obj: usize, AttachToActor: usize);
    fn FXActor_X_PostBeginPlay(obj: usize);

}