summaryrefslogtreecommitdiff
path: root/src/networked_entities/networked_machine.h
diff options
context:
space:
mode:
authorAnson Bridges <bridges.anson@gmail.com>2022-09-08 16:42:07 -0400
committerAnson Bridges <bridges.anson@gmail.com>2022-09-08 16:42:07 -0400
commite2f3e4bd7118c8f55d20b29d76cb9a13acf72f8b (patch)
treec2f177c7fc11d26f65f05f96e0a2a1996b4598ce /src/networked_entities/networked_machine.h
parent366761197034a20d444282431e4a8edeb7882840 (diff)
gdnative testing. gdnative classes cannot be extended by gdscript
Diffstat (limited to 'src/networked_entities/networked_machine.h')
-rw-r--r--src/networked_entities/networked_machine.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/networked_entities/networked_machine.h b/src/networked_entities/networked_machine.h
new file mode 100644
index 0000000..573dbcc
--- /dev/null
+++ b/src/networked_entities/networked_machine.h
@@ -0,0 +1,42 @@
+#ifndef NETWORKED_MACHINE_H
+#define NETWORKED_MACHINE_H
+
+#include <Godot.hpp>
+#include <RigidBody.hpp>
+
+namespace godot {
+
+class NetworkedMachine : public RigidBody {
+ GODOT_CLASS(NetworkedMachine, RigidBody)
+
+private:
+ bool in_use;
+ Spatial *world;
+ RigidBody *user;
+
+public:
+ static void _register_methods();
+
+ NetworkedMachine();
+ ~NetworkedMachine();
+
+ void _ready();
+ void _init();
+
+ void update_phys_transform(Transform t, Vector3 lv, Vector3 av);
+ void net_apply_impulse(Vector3 impulse_v);
+ void _integrate_forces(PhysicsDirectBodyState *_state);
+ void set_net_owner(int id, String char_name);
+ void relinquish_control();
+
+ //to be overridden
+ void on_new_control();
+ void on_no_control();
+ void attack1();
+ void attack2();
+ void direction_input(float _fwd, float _bwd, float _left, float _right, float _left2, float _right2);
+};
+
+}
+
+#endif