feat: added weapon muzzle, which will register itself with parent playercharacters

This commit is contained in:
Sara 2024-03-20 09:49:43 +01:00
parent a81fc5ad21
commit 18ec109b86
3 changed files with 43 additions and 6 deletions

View file

@ -9,6 +9,7 @@
#include "tunnels_game_state.hpp"
#include "tunnels_player.hpp"
#include "weapon_data.hpp"
#include "weapon_muzzle.hpp"
#include "utils/game_mode.hpp"
#include "utils/game_root.hpp"
#include "utils/game_state.hpp"
@ -35,16 +36,21 @@ void initialize_gdextension_types(ModuleInitializationLevel p_level)
ClassDB::register_class<PlayerInput>();
ClassDB::register_class<SpawnPoint3D>();
ClassDB::register_class<CharacterData>();
ClassDB::register_class<Enemy>();
ClassDB::register_class<Health>();
ClassDB::register_class<PelletProjectile>();
ClassDB::register_class<PlayerCharacter>();
ClassDB::register_class<ProjectilePool>();
ClassDB::register_class<TunnelsGameMode>();
ClassDB::register_class<TunnelsGameState>();
ClassDB::register_class<TunnelsPlayer>();
ClassDB::register_class<Enemy>();
ClassDB::register_class<Health>();
ClassDB::register_class<PlayerCharacter>();
ClassDB::register_class<ProjectilePool>();
ClassDB::register_class<WeaponMuzzle>();
ClassDB::register_class<WeaponData>();
ClassDB::register_class<CharacterData>();
ClassDB::register_class<Projectile>();
ClassDB::register_class<PelletProjectile>();
}
extern "C"

16
src/weapon_muzzle.cpp Normal file
View file

@ -0,0 +1,16 @@
#include "weapon_muzzle.hpp"
#include "player_character.hpp"
#include "utils/godot_macros.h"
namespace godot {
void WeaponMuzzle::_bind_methods() {
#define CLASSNAME WeaponMuzzle
}
void WeaponMuzzle::_enter_tree() { GDGAMEONLY();
PlayerCharacter *owner = Object::cast_to<PlayerCharacter>(this->get_owner());
if(!owner)
return;
owner->set_weapon_muzzle(this);
}
}

15
src/weapon_muzzle.hpp Normal file
View file

@ -0,0 +1,15 @@
#ifndef WEAPON_MUZZLE_HPP
#define WEAPON_MUZZLE_HPP
#include "godot_cpp/classes/node3d.hpp"
namespace godot {
class WeaponMuzzle : public Node3D {
GDCLASS(WeaponMuzzle, Node3D);
static void _bind_methods();
public:
virtual void _enter_tree() override;
};
}
#endif // !WEAPON_MUZZLE_HPP