feat: work on running and weapon inventory
This commit is contained in:
parent
43c5863e89
commit
6cdb2cbd4f
Binary file not shown.
Binary file not shown.
|
@ -27,8 +27,8 @@ public:
|
|||
|
||||
private:
|
||||
bool try_running{ false };
|
||||
float walk_speed{ 7.f };
|
||||
float run_speed{ 10.f };
|
||||
float walk_speed{ 6.f };
|
||||
float run_speed{ 8.f };
|
||||
float acceleration{ 40.f };
|
||||
float jump_strength{ 3.5f };
|
||||
Vector2 movement_input{};
|
||||
|
|
|
@ -37,3 +37,11 @@ AnimationPlayer *WeaponBase::get_anim() const {
|
|||
PlayerCamera *WeaponBase::get_camera() const {
|
||||
return this->camera;
|
||||
}
|
||||
|
||||
void WeaponBase::set_body(PlayerBody *body) {
|
||||
this->body = body;
|
||||
}
|
||||
|
||||
PlayerBody *WeaponBase::get_body() const {
|
||||
return this->body;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include "scene/3d/node_3d.h"
|
||||
class AnimationPlayer;
|
||||
class PlayerCamera;
|
||||
class PlayerBody;
|
||||
|
||||
class WeaponBase : public Node3D {
|
||||
GDCLASS(WeaponBase, Node3D);
|
||||
|
@ -16,12 +17,15 @@ protected:
|
|||
public:
|
||||
void set_anim(AnimationPlayer *player);
|
||||
AnimationPlayer *get_anim() const;
|
||||
|
||||
PlayerCamera *get_camera() const;
|
||||
|
||||
void set_body(PlayerBody *body);
|
||||
PlayerBody *get_body() const;
|
||||
|
||||
private:
|
||||
AnimationPlayer *anim{ nullptr };
|
||||
PlayerCamera *camera{ nullptr };
|
||||
PlayerBody *body{ nullptr };
|
||||
};
|
||||
|
||||
#endif // !WEAPON_BASE_H
|
||||
|
|
10
modules/wave_survival/weapon_inventory.cpp
Normal file
10
modules/wave_survival/weapon_inventory.cpp
Normal file
|
@ -0,0 +1,10 @@
|
|||
#include "weapon_inventory.h"
|
||||
|
||||
void WeaponInventory::_bind_methods() {}
|
||||
|
||||
void WeaponInventory::on_switch_input() {
|
||||
this->current = (this->current + 1) % 1;
|
||||
this->select_weapon(this->weapons[this->current]);
|
||||
}
|
||||
|
||||
|
33
modules/wave_survival/weapon_inventory.h
Normal file
33
modules/wave_survival/weapon_inventory.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
#ifndef WEAPON_INVENTORY_H
|
||||
#define WEAPON_INVENTORY_H
|
||||
|
||||
#include "scene/main/node.h"
|
||||
#include "scene/resources/packed_scene.h"
|
||||
class PlayerBody;
|
||||
class WeaponBase;
|
||||
|
||||
class WeaponInventory : public Node {
|
||||
GDCLASS(WeaponInventory, Node);
|
||||
static void _bind_methods();
|
||||
void on_switch_input();
|
||||
void ready();
|
||||
void select_weapon(WeaponBase *next);
|
||||
protected:
|
||||
void _notification(int what);
|
||||
|
||||
public:
|
||||
void set_fallback_weapon(Ref<PackedScene> scene);
|
||||
Ref<PackedScene> get_fallback_weapon() const;
|
||||
|
||||
WeaponBase *get_current_weapon() const;
|
||||
|
||||
private:
|
||||
unsigned current{ 0 };
|
||||
LocalVector<WeaponBase *> weapons{ nullptr, nullptr };
|
||||
WeaponBase *current_weapon{ nullptr };
|
||||
WeaponBase *fallback_weapon{ nullptr };
|
||||
|
||||
Ref<PackedScene> default_weapon_scene{};
|
||||
};
|
||||
|
||||
#endif // !WEAPON_INVENTORY_H
|
Loading…
Reference in a new issue