#include "gui.hpp" #include // for EXIT_SUCCESS #include // for milliseconds #include #include // for allocator, shared_ptr #include // for operator+, to_string #include #include #include #include #include "builder.hpp" #include using std::string, std::vector; using namespace fmt; using namespace nlohmann; namespace fs = std::filesystem; GUI::GUI() { std::ifstream infile(".tarpit.json"); json data = json::parse(infile); // json load the config file you_died_sound.load(data, "you_died"); build_works_sound.load(data, "build_works"); build_failed_sound.load(data, "build_failed"); building_sound.load(data, "building"); } void GUI::output(const string msg) { // _lines.push_back(msg); std::cout << msg << std::endl; } void GUI::main_loop(SFMLBackend &gui) { gui.handle_events(); gui.update_entities(); gui.update_log(_lines); } void GUI::build_works() { building_sound.stop(); build_works_sound.play(); output("BUILD FINISHED!"); } void GUI::build_failed(bool play_sound, const string &command) { building_sound.stop(); if(play_sound) { build_failed_sound.play(); } output(format("!!! BUILD FAILED. Your command correct? '{}'", command)); } void GUI::you_died() { building_sound.stop(); you_died_sound.play(); output("!!!! YOU DIED! !!!! Learn to code luser."); output("YOU DIED!"); } void GUI::building() { output("############# START ############"); output(">>>> Will it Build?"); building_sound.play(); }