Finishing the toolbar

This commit is contained in:
AnonymusRaccoon
2020-03-11 11:33:00 +01:00
parent 46fd1d0b29
commit 6d4de94e22
6 changed files with 98 additions and 21 deletions
+1 -1
View File
@@ -252,7 +252,7 @@ add_executable(My3D
lib/gamacon/src/components/isometry/map_manager_component.c
lib/gamacon/include/components/isometry/map_manager_component.h
lib/gamacon/src/components/isometry/vertex_data_loader.c
lib/gamacon/include/vertex_data_loader.h)
lib/gamacon/include/vertex_data_loader.h src/toolbar.c lib/gamacon/include/callbacks.h)
add_compile_options(-W -Wall -Wextra -Wshadow)
+6 -1
View File
@@ -24,4 +24,9 @@ void resolution_set_text(gc_entity *entity, gc_engine *engine);
bool fullscreen(gc_engine *engine, gc_entity *entity, gc_vector2 _);
bool resolution_down(gc_engine *engine, gc_entity *entity, gc_vector2 _);
bool resolution_up(gc_engine *engine, gc_entity *entity, gc_vector2 _);
bool resolution_up(gc_engine *engine, gc_entity *entity, gc_vector2 _);
bool tile_select(gc_engine *engine, gc_entity *entity, gc_vector2 _);
bool vertex_select(gc_engine *engine, gc_entity *entity, gc_vector2 _);
bool up_down(gc_engine *engine, gc_entity *entity, gc_vector2 _);
bool rotate(gc_engine *engine, gc_entity *entity, gc_vector2 _);
+4 -4
View File
@@ -49,10 +49,10 @@
</gc_entity>
<panel src="panel" x="7%" y="3%" width="30%" height="6%"/>
<button sprite="tile_select" x="3%" y="3%" width="%" height="3%" tooltip="Select a tile." tooltip_x="5" tooltip_y="-5" size="15"/>
<button sprite="vertex_select" x="7%" y="3%" width="%" height="3%" tooltip="Select a Vertex." tooltip_y="-5" size="15"/>
<button sprite="up_down" x="15%" y="3%" width="%" height="3%" tooltip="Move a tiles.\n - Up with left click.\n - Down with right click" tooltip_y="-15" size="15"/>
<button sprite="rotate" x="19%" y="3%" width="%" height="3%" tooltip="Rotate a texture" tooltip_y="-5" size="15"/>
<button sprite="tile_select" x="3%" y="3%" width="%" height="3%" tooltip="Select a tile." tooltip_x="5" tooltip_y="-5" size="15" click="tile_select" />
<button sprite="vertex_select" x="7%" y="3%" width="%" height="3%" tooltip="Select a Vertex." tooltip_y="-5" size="15" click="vertex_select" />
<button sprite="up_down" x="15%" y="3%" width="%" height="3%" tooltip="Move a tiles.\n - Up with left click.\n - Down with right click" tooltip_y="-15" size="15" click="up_down" />
<button sprite="rotate" x="19%" y="3%" width="%" height="3%" tooltip="Rotate a texture" tooltip_y="-5" size="15" click="rotate" />
<panel src="panel" x="100%" y="50%" width="50%" height="120%"/>
<text text="TEAMS" x="88%" y="40"/>
+26 -14
View File
@@ -12,11 +12,35 @@
#include "systems/teams_system.h"
#include <SFML/System.h>
#include "teams.h"
#include "callbacks.h"
#include "components/game_display.h"
#include "components/game_manager.h"
#include "systems/game_manager_system.h"
#include "map_interactions.h"
const struct callback callbacks[] = {
{"start_button", &start_button},
{"options", &options},
{"goto_main_menu", &goto_main_menu},
{"quit", &quit},
{"fullscreen", &fullscreen},
{"map_manage_click", &tile_interact},
{"resolution_down", &resolution_down},
{"resolution_up", &resolution_up},
{"absent_check", &absent_check},
{"absent_cross", &absent_cross},
{"forgot_lmfao", &forgot_lmfao},
{"forgot_ok", &forgot_ok},
{"catch", &catch},
{"toggle_pause", &toggle_pause},
{"toggle_pause", &toggle_pause},
{"tile_select", &tile_select},
{"vertex_select", &vertex_select},
{"up_down", &up_down},
{"rotate", &rotate},
{NULL, NULL}
};
int register_customcmps(gc_engine *engine)
{
engine->add_component(engine, &game_manager);
@@ -26,20 +50,8 @@ int register_customcmps(gc_engine *engine)
engine->add_component(engine, &teams_component);
engine->add_system(engine, &teams_system);
engine->finish_physics(engine);
engine->add_callback(engine, "start_button", &start_button);
engine->add_callback(engine, "options", &options);
engine->add_callback(engine, "goto_main_menu", &goto_main_menu);
engine->add_callback(engine, "quit", &quit);
engine->add_callback(engine, "fullscreen", &fullscreen);
engine->add_callback(engine, "map_manage_click", &tile_interact);
engine->add_callback(engine, "resolution_down", &resolution_down);
engine->add_callback(engine, "resolution_up", &resolution_up);
engine->add_callback(engine, "absent_check", &absent_check);
engine->add_callback(engine, "absent_cross", &absent_cross);
engine->add_callback(engine, "forgot_lmfao", &forgot_lmfao);
engine->add_callback(engine, "forgot_ok", &forgot_ok);
engine->add_callback(engine, "catch", &catch);
engine->add_callback(engine, "toggle_pause", &toggle_pause);
for (int i = 0; callbacks[i].func; i++)
engine->add_callback(engine, callbacks[i].name, callbacks[i].func);
return (0);
}
+60
View File
@@ -0,0 +1,60 @@
//
// Created by anonymus-raccoon on 3/11/20.
//
#include <stdbool.h>
#include <components/isometry/map_manager_component.h>
#include "engine.h"
#include "entity.h"
bool tile_select(gc_engine *engine, gc_entity *entity, gc_vector2 _)
{
gc_scene *scene = engine->scene;
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
struct map_manager_component *manager;
if (!list)
return (false);
manager = GETCMP(list->data, map_manager_component);
manager->tile_mode = true;
return (true);
}
bool vertex_select(gc_engine *engine, gc_entity *entity, gc_vector2 _)
{
gc_scene *scene = engine->scene;
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
struct map_manager_component *manager;
if (!list)
return (false);
manager = GETCMP(list->data, map_manager_component);
manager->tile_mode = false;
return (true);
}
bool up_down(gc_engine *engine, gc_entity *entity, gc_vector2 _)
{
gc_scene *scene = engine->scene;
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
struct map_manager_component *manager;
if (!list)
return (false);
manager = GETCMP(list->data, map_manager_component);
manager->brush = MOVE;
return (true);
}
bool rotate(gc_engine *engine, gc_entity *entity, gc_vector2 _)
{
gc_scene *scene = engine->scene;
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
struct map_manager_component *manager;
if (!list)
return (false);
manager = GETCMP(list->data, map_manager_component);
manager->brush = ROTATE;
return (true);
}