{"id":1506,"date":"2023-09-29T18:23:36","date_gmt":"2023-09-29T16:23:36","guid":{"rendered":"http:\/\/www.thelins.se\/johan\/blog\/?p=1506"},"modified":"2023-09-29T18:23:36","modified_gmt":"2023-09-29T16:23:36","slug":"porting-godot","status":"publish","type":"post","link":"https:\/\/www.thelins.se\/johan\/blog\/2023\/09\/porting-godot\/","title":{"rendered":"Porting Godot"},"content":{"rendered":"\n<p>I just took the time to start porting the epic <a href=\"https:\/\/github.com\/e8johan\/mattemonster\/tree\/master\">Mattemonster<\/a> app to Godot 4.1, as Google thinks it is getting a bit too old.<\/p>\n\n\n\n<p>You can tell that the Godot developers have done a stellar job. Up until now I&#8217;ve just fiddled with Godot 4, so I haven&#8217;t really done anything proper in it &#8211; until today. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium\"><a href=\"https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/screenshot.png\"><img loading=\"lazy\" decoding=\"async\" width=\"169\" height=\"300\" src=\"https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/screenshot-169x300.png\" alt=\"\" class=\"wp-image-1508\" srcset=\"https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/screenshot-169x300.png 169w, https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/screenshot-576x1024.png 576w, https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/screenshot-768x1365.png 768w, https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/screenshot-864x1536.png 864w, https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/screenshot.png 1080w\" sizes=\"auto, (max-width: 169px) 100vw, 169px\" \/><\/a><\/figure><\/div>\n\n\n<p>The main porting task was to change to an object driven approach to signals, rather than the old string-based on. Great &#8211; because it catches so much more early on. The only tricky part here was that in order to pass along arguments with a signal I had to use the bind function. That was not really what the error message complained about  :-)<\/p>\n\n\n\n<p>Also, I had to re-add the translations into the project settings, and to handle some messages from the window manager differently (close and quit). I&#8217;m still not sure I got the latter right&#8230;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium\"><a href=\"https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/bild-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"177\" src=\"https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/bild-1-300x177.png\" alt=\"\" class=\"wp-image-1509\" srcset=\"https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/bild-1-300x177.png 300w, https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/bild-1-1024x603.png 1024w, https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/bild-1-768x453.png 768w, https:\/\/www.thelins.se\/johan\/blog\/wp-content\/uploads\/2023\/09\/bild-1.png 1154w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure><\/div>\n\n\n<p>Now, all that is left is the UI styling, so I guess I know what I will be doing in the rain this evening&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I just took the time to start porting the epic Mattemonster app to Godot 4.1, as Google thinks it is getting a bit too old. You can tell that the Godot developers have done a stellar job. Up until now I&#8217;ve just fiddled with Godot 4, so I haven&#8217;t really done anything proper in it &hellip; <a href=\"https:\/\/www.thelins.se\/johan\/blog\/2023\/09\/porting-godot\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Porting Godot<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,16],"tags":[],"class_list":["post-1506","post","type-post","status-publish","format-standard","hentry","category-100-days-to-offload","category-godot"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.thelins.se\/johan\/blog\/wp-json\/wp\/v2\/posts\/1506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thelins.se\/johan\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thelins.se\/johan\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thelins.se\/johan\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thelins.se\/johan\/blog\/wp-json\/wp\/v2\/comments?post=1506"}],"version-history":[{"count":1,"href":"https:\/\/www.thelins.se\/johan\/blog\/wp-json\/wp\/v2\/posts\/1506\/revisions"}],"predecessor-version":[{"id":1510,"href":"https:\/\/www.thelins.se\/johan\/blog\/wp-json\/wp\/v2\/posts\/1506\/revisions\/1510"}],"wp:attachment":[{"href":"https:\/\/www.thelins.se\/johan\/blog\/wp-json\/wp\/v2\/media?parent=1506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thelins.se\/johan\/blog\/wp-json\/wp\/v2\/categories?post=1506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thelins.se\/johan\/blog\/wp-json\/wp\/v2\/tags?post=1506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}