#include "ButtonSubScene.h" #include "ButtonSetMainMenuScript.h" #include "ButtonSetShopScript.h" #include "ButtonTransitionPreviewScript.h" #include "IButtonScript.h" #include "MainMenuConfig.h" #include #include #include #include #include using namespace crepe; using namespace std; void ButtonSubScene::create(Scene & scn,const Data & data){ GameObject button_object = scn.new_object("button","",data.position,0,data.scale); this->set_button_overlay(button_object,data); this->btn_text(button_object,data); this->set_script(button_object,data); this->set_icon(button_object,data); } void ButtonSubScene::btn_text(crepe::GameObject & button_object,const Data & data){ crepe::vec2 size = {data.text_width,(data.text_width/data.text.size())*2}; button_object.add_component(size,data.text_offset+MainMenuConfig::FONTOFFSET, MainMenuConfig::FONT, Text::Data{ .text_color = Color::WHITE, }, data.text); } void ButtonSubScene::set_script(crepe::GameObject & button_object,const Data & data){ switch (data.script_type) { case ScriptSelect::PREVIEW: button_object.add_component().set_script(); break; case ScriptSelect::SHOP: button_object.add_component().set_script(); break; case ScriptSelect::MAINMENU: button_object.add_component().set_script(); break; case ScriptSelect::NONE: button_object.add_component().set_script(); break; } } void ButtonSubScene::set_icon(crepe::GameObject & button_object,const Data & data){ switch (data.icon_type) { case IconSelect::SHOP: button_object.add_component(Asset("asset/ui/buttonCoinsSmall.png"),Sprite::Data{ .sorting_in_layer = MainMenuConfig::STARTING_SORTING_IN_LAYER+3, .size = MainMenuConfig::ICON_SIZE, .position_offset = data.icon_offset, }); break; case IconSelect::NONE: break; } } void ButtonSubScene::set_button_overlay(crepe::GameObject & button_object,const Data & data){ switch (data.button_type) { case ButtonSelect::LARGE: this->large_btn_overlay(button_object); break; case ButtonSelect::SMALL: this->small_btn_overlay(button_object); break; } } void ButtonSubScene::large_btn_overlay(crepe::GameObject & button_object){ button_object.add_component(Asset("asset/ui/buttonBacking.png"),Sprite::Data{ .sorting_in_layer = MainMenuConfig::STARTING_SORTING_IN_LAYER+1, .size = MainMenuConfig::LARGE_OVERLAY_SIZE, }); button_object.add_component