9 #include "../../ClientCore.hpp"
22 _texture.loadFromFile(
"../src/client/assets/button.png");
23 _sprite.setTexture(_texture);
24 _position = sf::Vector2f(150, 100);
25 _sprite.setPosition(_position);
26 _size = sf::Vector2f(0.75, 0.75);
27 _sprite.setScale(_size);
28 _rect = sf::IntRect(0, 0, 701, 301);
29 _sprite.setTextureRect(_rect);
31 _socket = std::move(socket);
32 std::function<
void()> default_handle_click = std::bind(&ButtonComponent::defaultCallback,
this);
33 setCallback(default_handle_click);
51 _sprite.setTexture(_texture);
61 _sprite.setPosition(_position);
71 _sprite.setScale(_size);
81 _sprite.setTextureRect(_rect);
90 _callback = std::move(callback);
118 if (event.type == sf::Event::MouseButtonPressed) {
119 if (event.mouseButton.button == sf::Mouse::Left) {
120 sf::Vector2i mousePos = sf::Mouse::getPosition(window);
121 sf::Vector2f mousePosF(
static_cast<
float>(mousePos.x),
static_cast<
float>(mousePos.y));
122 if (_sprite.getGlobalBounds().contains(mousePosF)) {
136 for (
auto &component : action_target) {
137 if (component->getType() == ComponentType::INPUT) {
138 if (component->getAttribute() ==
"address") {
139 ip =
dynamic_cast<InputComponent *>(component.get())->getText();
140 }
else if (component->getAttribute() ==
"port") {
141 port =
dynamic_cast<InputComponent *>(component.get())->getText();
143 }
else if (component->getType() == ComponentType::SOUND) {
144 dynamic_cast<SoundComponent *>(component.get())->action();
147 if (ip.empty() || port.empty()) {
148 for (
auto &component : action_target) {
149 if (component->getType() == ComponentType::TEXT) {
150 if (component->getAttribute() ==
"text add serv") {
151 dynamic_cast<TextComponent *>(component.get())->setText(
"Please fill all fields");
156 for (
auto &component : action_target) {
157 if (component->getType() == ComponentType::TEXT) {
158 if (component->getAttribute() ==
"text add serv") {
161 }
catch (std::exception &e) {
162 dynamic_cast<TextComponent *>(component.get())->setText(
"Port must be a number");
165 if (_clientCore->init_socket(ip, std::stoi(port))) {
166 if (!_socket->isInit())
167 dynamic_cast<TextComponent *>(component.get())->setText(
"Finding server...");
169 dynamic_cast<TextComponent *>(component.get())->setText(
"Server not found");
181 for (
auto &component : action_target) {
182 if (component->getType() == ComponentType::SOUND) {
183 dynamic_cast<SoundComponent *>(component.get())->action();
185 if (component->getType() == ComponentType::MUSIC) {
186 auto music =
dynamic_cast<MusicComponent *>(component.get());
187 if (music->getPersistant())
200 for (
auto &component : action_target) {
201 if (component->getType() == ComponentType::SOUND) {
202 dynamic_cast<SoundComponent *>(component.get())->action();
205 if (!_socket->isInit()) {
206 for (
auto &component : action_target) {
207 if (component->getType() == ComponentType::TEXT) {
208 if (component->getAttribute() ==
"text error not init") {
209 dynamic_cast<TextComponent *>(component.get())->setText(
"Please init server connection");
215 for (
auto &component : action_target) {
216 if (component->getType() == ComponentType::MUSIC) {
217 auto music =
dynamic_cast<MusicComponent *>(component.get());
227 _socket->send(&packet, _socket->serv_addr);