diff options
Diffstat (limited to 'ui/builders/join.cpp')
-rw-r--r-- | ui/builders/join.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/ui/builders/join.cpp b/ui/builders/join.cpp index cc2ca2d..caa635f 100644 --- a/ui/builders/join.cpp +++ b/ui/builders/join.cpp @@ -1,11 +1,6 @@ #include "join.h" #include <game/geoData.h> -void -BuilderJoin::render(const Shader &) const -{ -} - std::string BuilderJoin::hint() const { @@ -16,6 +11,19 @@ BuilderJoin::hint() const } void +BuilderJoin::move(Network * network, const GeoData *, const SDL_MouseMotionEvent &, const Ray & ray) +{ + if (p1) { + if (const auto p = network->intersectRayNodes(ray)) { + candidateLinks.objects = network->candidateJoins(p1->pos, p->pos); + } + else { + candidateLinks.removeAll(); + } + } +} + +void BuilderJoin::click(Network * network, const GeoData *, const SDL_MouseButtonEvent & e, const Ray & ray) { switch (e.button) { @@ -24,6 +32,7 @@ BuilderJoin::click(Network * network, const GeoData *, const SDL_MouseButtonEven if (p1) { create(network, p1, p); p1.reset(); + candidateLinks.removeAll(); } else { p1 = p; |