summaryrefslogtreecommitdiff
path: root/ui/editNetwork.h
diff options
context:
space:
mode:
Diffstat (limited to 'ui/editNetwork.h')
-rw-r--r--ui/editNetwork.h18
1 files changed, 8 insertions, 10 deletions
diff --git a/ui/editNetwork.h b/ui/editNetwork.h
index ec06fa7..4155534 100644
--- a/ui/editNetwork.h
+++ b/ui/editNetwork.h
@@ -1,8 +1,7 @@
#pragma once
+#include "game/geoData.h"
#include "gameMainSelector.h"
-#include "modeHelper.h"
-#include "toolbar.h"
#include "worldOverlay.h"
#include <game/gamestate.h>
#include <game/network/network.h>
@@ -16,33 +15,32 @@ public:
bool click(const SDL_MouseButtonEvent & e, const Ray<GlobalPosition3D> &) override;
bool move(const SDL_MouseMotionEvent & e, const Ray<GlobalPosition3D> &) override;
- bool handleInput(const SDL_Event & e, const UIComponent::Position &) override;
- void render(const SceneShader &) const override;
- void render(const UIShader & shader, const UIComponent::Position & pos) const override;
+ bool handleInput(const SDL_Event & e) override;
+ void render(const SceneShader &, const Frustum &) const override;
+ void render(bool & open) override;
using NetworkClickPos = std::variant<GlobalPosition3D, Node::Ptr>;
class Builder {
public:
virtual ~Builder() = default;
- virtual void render(const SceneShader & shader) const;
+ virtual void render(const SceneShader & shader, const Frustum &) const;
virtual std::string hint() const = 0;
virtual void click(Network *, const GeoData *, const SDL_MouseButtonEvent &, const Ray<GlobalPosition3D> &) = 0;
virtual void move(Network *, const GeoData *, const SDL_MouseMotionEvent &, const Ray<GlobalPosition3D> &) = 0;
+ static void setHeightsFor(Network *, const Link::CCollection &, GeoData::SetHeightsOpts = {});
+
using Ptr = std::unique_ptr<Builder>;
protected:
- Collection<const Link> candidateLinks;
+ SharedCollection<const Link> candidateLinks;
};
private:
Network * network;
Builder::Ptr builder;
- Mode<Builder::Ptr, ModeSecondClick::NoAction> mode {builder};
- Toolbar builderToolbar;
Texture blue;
- const Font font;
};
template<typename T> class EditNetworkOf : public EditNetwork {