summaryrefslogtreecommitdiff
path: root/src/networked_entities/networked_machine.h
blob: 573dbcca4e6545e070b4ef48629f63a4f6b6f15e (plain)
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
#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