Experimental browser for the Atmosphere
I am now working on my second big #GodotEngine game, and finally feeling like I'm learning how to properly code large projects, so it's easier to work with them. For example, I just discovered how to combine all my numerous crude data dictionaries with code typing/safety, with minimal extra code 😅
Apr 21, 2025, 2:22 PM
{ "uri": "at://did:plc:5o2sx3rn3cd2vz343uidsnpm/app.bsky.feed.post/3lndefybed22m", "cid": "bafyreidebnmm7y537eqvjgidr7hrlzw66636to67oqgjtf5q4qbezxoebi", "value": { "text": "I am now working on my second big #GodotEngine game, and finally feeling like I'm learning how to properly code large projects, so it's easier to work with them.\n\nFor example, I just discovered how to combine all my numerous crude data dictionaries with code typing/safety, with minimal extra code 😅", "$type": "app.bsky.feed.post", "embed": { "$type": "app.bsky.embed.images", "images": [ { "alt": "Godot class with static var/functions\n\nclass_name ChallengeData\n\nenum Type {\n\tTUTORIAL,\n\tIMPOSSIBLE,\n\t# ...\n}\n\nstatic var CHALLENGES: Dictionary[Type, Dictionary] = {\n\tType.TUTORIAL: {\n\t\t\"title\": \"Easy challenge\",\n\t\t\"description\": \"This is a tutorial challenge to get you started\",\n\t\t\"nestedData\": {\n\t\t\t\"image\": preload(\"res://img/tutorial/1.png\")\n\t\t}\n\t},\n\tType.IMPOSSIBLE: {\n\t\t\"title\": \"Impossible challenge\",\n\t\t\"description\": \"Yes, right after tutorial. Welcome to dark souls\",\n\t\t\"nestedData\": {\n\t\t\t\"image\": preload(\"res://img/tutorial/2.png\")\n\t\t}\n\t},\n\t# ...\n}\n\n###########\n# GETTERS #\n###########\nstatic func get_title(type: Type) -> String: return CHALLENGES[type].get('title')\nstatic func get_description(type: Type) -> String: return CHALLENGES[type].get('description')\nstatic func get_image(type: Type) -> Texture: return CHALLENGES[type].get('nestedData').get('image')\n\n\n# another file: Image.texture = ChallengeData.get_image(ChallengeData.Type.IMPOSSIBLE)", "image": { "$type": "blob", "ref": { "$link": "bafkreib7ir3ksu5sfjfm4dim26zrm5q5ebgljwppk5klq4disvq2erlujy" }, "mimeType": "image/jpeg", "size": 620342 }, "aspectRatio": { "width": 1569, "height": 1386 } } ] }, "langs": [ "en" ], "facets": [ { "index": { "byteEnd": 46, "byteStart": 34 }, "features": [ { "tag": "GodotEngine", "$type": "app.bsky.richtext.facet#tag" } ] } ], "createdAt": "2025-04-21T14:22:09.139Z" } }