37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "core/input/input_event.h"
|
|
#include "scene/2d/mesh_instance_2d.h"
|
|
#include "scene/2d/physics/animatable_body_2d.h"
|
|
#include "scene/main/viewport.h"
|
|
#include "you_done_it/ydi_networking.h"
|
|
class ConclusionField;
|
|
|
|
class PinnedPhoto : public AnimatableBody2D {
|
|
GDCLASS(PinnedPhoto, AnimatableBody2D);
|
|
static void _bind_methods();
|
|
void enter_tree();
|
|
void on_child_entered_tree(Node *node);
|
|
void process(double delta);
|
|
void on_input_event(Viewport *viewport, Ref<InputEvent> event, int shape);
|
|
|
|
protected:
|
|
virtual void unhandled_input(Ref<InputEvent> const &event) override;
|
|
void _notification(int what);
|
|
|
|
public:
|
|
void push_conclusion_slot(ConclusionField *field);
|
|
void pull_conclusion_slot(ConclusionField *field);
|
|
void set_can_drop(bool value);
|
|
bool get_can_drop() const;
|
|
void set_clue(NetworkData::ClueID id);
|
|
NetworkData::ClueID get_clue() const;
|
|
|
|
private:
|
|
MeshInstance2D *photo_mesh{ nullptr };
|
|
NetworkData::ClueID clue{ NetworkData::CLUE_MAX };
|
|
bool can_drop{ false };
|
|
bool is_held{ false };
|
|
ConclusionField *conclusion_field{};
|
|
Vector<ConclusionField *> near_fields{};
|
|
};
|