ATProto Browser

ATProto Browser

Experimental browser for the Atmosphere

Post

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

Record data

{
  "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"
  }
}