feat: PlayerController no longer implements Renderable
This commit is contained in:
parent
7081e6fac9
commit
b9935846c4
|
@ -7,17 +7,12 @@
|
||||||
START_REFLECT(PlayerController);
|
START_REFLECT(PlayerController);
|
||||||
REFLECT_TYPECLASS(PlayerController, Drop);
|
REFLECT_TYPECLASS(PlayerController, Drop);
|
||||||
REFLECT_TYPECLASS(PlayerController, SceneNodeEntity);
|
REFLECT_TYPECLASS(PlayerController, SceneNodeEntity);
|
||||||
REFLECT_TYPECLASS(PlayerController, Renderable);
|
|
||||||
END_REFLECT(PlayerController);
|
END_REFLECT(PlayerController);
|
||||||
|
|
||||||
impl_Drop_for(PlayerController,
|
impl_Drop_for(PlayerController,
|
||||||
DestroyPlayerController
|
DestroyPlayerController
|
||||||
)
|
)
|
||||||
|
|
||||||
impl_Renderable_for(PlayerController,
|
|
||||||
PlayerControllerDraw
|
|
||||||
)
|
|
||||||
|
|
||||||
impl_SceneNodeEntity_for(PlayerController,
|
impl_SceneNodeEntity_for(PlayerController,
|
||||||
PlayerControllerEnterTree,
|
PlayerControllerEnterTree,
|
||||||
PlayerControllerExitTree,
|
PlayerControllerExitTree,
|
||||||
|
@ -37,7 +32,6 @@ void DestroyPlayerController(PlayerController *self) {
|
||||||
|
|
||||||
void PlayerControllerEnterTree(PlayerController *self) {
|
void PlayerControllerEnterTree(PlayerController *self) {
|
||||||
self->transform = TC_CAST(self->node->parent->entity, Transformable);
|
self->transform = TC_CAST(self->node->parent->entity, Transformable);
|
||||||
AddRenderable(PlayerController_as_Renderable(self));
|
|
||||||
DisableCursor();
|
DisableCursor();
|
||||||
AddListener("pitch_up", ButtonInputListener(self, PlayerControllerUpInput));
|
AddListener("pitch_up", ButtonInputListener(self, PlayerControllerUpInput));
|
||||||
AddListener("pitch_down", ButtonInputListener(self, PlayerControllerDownInput));
|
AddListener("pitch_down", ButtonInputListener(self, PlayerControllerDownInput));
|
||||||
|
@ -47,10 +41,7 @@ void PlayerControllerEnterTree(PlayerController *self) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayerControllerExitTree(PlayerController *self) {
|
void PlayerControllerExitTree(PlayerController *self) {
|
||||||
RemoveRenderable(PlayerController_as_Renderable(self));
|
RemoveAllListeners(self);
|
||||||
}
|
|
||||||
|
|
||||||
void PlayerControllerDraw(PlayerController *self) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//! angular acceleration limited to local X and Z axes
|
//! angular acceleration limited to local X and Z axes
|
||||||
|
@ -65,7 +56,7 @@ void PlayerControllerTickAngularAcceleration(PlayerController *self, double delt
|
||||||
//! linear acceleration limited to the local Z axis
|
//! linear acceleration limited to the local Z axis
|
||||||
static
|
static
|
||||||
void PlayerControllerTickLinearAcceleration(PlayerController *self, double delta) {
|
void PlayerControllerTickLinearAcceleration(PlayerController *self, double delta) {
|
||||||
float const target = (!self->stopped && self->rotation.y == 0.f) ? 30.f : 20.f;
|
float const target = self->stopped ? 10.f : (self->rotation.y == 0.f ? 30.f : 20.f);
|
||||||
float const speed_diff = target - self->speed;
|
float const speed_diff = target - self->speed;
|
||||||
self->speed = self->speed + copysignf(fminf(fabsf(speed_diff), 10.f * delta), speed_diff);
|
self->speed = self->speed + copysignf(fminf(fabsf(speed_diff), 10.f * delta), speed_diff);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,6 @@ void DestroyPlayerController(PlayerController *self);
|
||||||
|
|
||||||
extern void PlayerControllerEnterTree(PlayerController *self);
|
extern void PlayerControllerEnterTree(PlayerController *self);
|
||||||
extern void PlayerControllerExitTree(PlayerController *self);
|
extern void PlayerControllerExitTree(PlayerController *self);
|
||||||
extern void PlayerControllerDraw(PlayerController *self);
|
|
||||||
extern void PlayerControllerTick(PlayerController *self, double delta);
|
extern void PlayerControllerTick(PlayerController *self, double delta);
|
||||||
|
|
||||||
extern void PlayerControllerLeftInput(PlayerController *self, bool value);
|
extern void PlayerControllerLeftInput(PlayerController *self, bool value);
|
||||||
|
@ -35,6 +34,5 @@ extern void PlayerControllerStopInput(PlayerController *self, bool value);
|
||||||
DECL_REFLECT(PlayerController);
|
DECL_REFLECT(PlayerController);
|
||||||
decl_typeclass_impl(SceneNodeEntity, PlayerController);
|
decl_typeclass_impl(SceneNodeEntity, PlayerController);
|
||||||
decl_typeclass_impl(Drop, PlayerController);
|
decl_typeclass_impl(Drop, PlayerController);
|
||||||
decl_typeclass_impl(Renderable, PlayerController);
|
|
||||||
|
|
||||||
#endif // !PLAYER_CONTROLLER_H
|
#endif // !PLAYER_CONTROLLER_H
|
||||||
|
|
Loading…
Reference in a new issue