about summary refs log tree commit diff stats
path: root/data/maps/the_partial/rooms/Obverse Side.txtpb
blob: c0ce04bb8fe6364dc08813c35ee6a86a6ff326df (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
name: "Obverse Side"
panels {
  name: "PUN"
  path: "Panels/Main/panel_1"
  clue: "pun"
  answer: "run"
  symbols: SPARKLES
}
panels {
  name: "UP"
  path: "Panels/Main/panel_3"
  clue: "up"
  answer: "or"
  symbols: SPARKLES
}
panels {
  name: "PUT"
  path: "Panels/Main/panel_5"
  clue: "put"
  answer: "rot"
  symbols: SPARKLES
}
panels {
  name: "PUNT"
  path: "Panels/Main/panel_8"
  clue: "punt"
  answer: "runt"
  symbols: SPARKLES
}
panels {
  name: "FIGHT"
  path: "Panels/Main/panel_9"
  clue: "fight"
  answer: "right"
  symbols: SPARKLES
}
panels {
  name: "LINT"
  path: "Panels/Side 1/panel_2"
  clue: "lint"
  answer: "hint"
  symbols: SPARKLES
}
panels {
  name: "TURN"
  path: "Panels/Side 1/panel_4"
  clue: "turn"
  answer: "torn"
  symbols: SPARKLES
}
panels {
  name: "HOT"
  path: "Panels/Side 1/panel_6"
  clue: "hot"
  answer: "hut"
  symbols: SPARKLES
}
panels {
  name: "OUT"
  path: "Panels/Side 1/panel_8"
  clue: "out"
  answer: "cut"
  symbols: SPARKLES
}
panels {
  name: "TON"
  path: "Panels/Side 1/panel_9"
  clue: "ton"
  answer: "ion"
  symbols: SPARKLES
}
panels {
  name: "HUT"
  path: "Panels/Side 1/panel_10"
  clue: "hut"
  answer: "hot"
  symbols: SPARKLES
}
panels {
  name: "ION"
  path: "Panels/Side 1/panel_11"
  clue: "ion"
  answer: "ton"
  symbols: SPARKLES
}
panels {
  name: "CUT"
  path: "Panels/Side 1/panel_12"
  clue: "cut"
  answer: "out"
  symbols: SPARKLES
}
panels {
  name: "FUN"
  path: "Panels/Side 1/panel_7"
  clue: "fun"
  answer: "run"
  symbols: SPARKLES
}
ports {
  name: "GREAT"
  path: "Components/Warps/worldport"
  orientation: "west"
}
keyholders {
  # This is one of the ones that's misnamed within the game.
  name: "L"
  path: "Components/KeyHolders/keyHolderI"
  key: "l"
}
paintings {
  name: "F"
  path: "Components/Paintings/f"
  orientation: "south"
  exit_only: true
}
paintings {
  name: "P"
  path: "Components/Paintings/p"
  orientation: "south"
  exit_only: true
}
pan>("scene/player") var svc = PanelContainer.new() svc.anchor_left = 1.0 svc.anchor_top = 1.0 svc.anchor_right = 1.0 svc.anchor_bottom = 1.0 svc.offset_left = -320.0 svc.offset_top = -320.0 svc.offset_right = -64.0 svc.offset_bottom = -64.0 svc.clip_contents = true add_child(svc) var background_color = Color.WHITE var world_env = get_tree().get_root().get_node("scene/WorldEnvironment") if world_env != null and world_env.environment != null: if world_env.environment.background_mode == Environment.BG_COLOR: background_color = world_env.environment.background_color elif ( world_env.environment.background_mode == Environment.BG_SKY and world_env.environment.sky != null and world_env.environment.sky.sky_material != null ): var sky = world_env.environment.sky.sky_material if sky is PhysicalSkyMaterial: background_color = sky.ground_color elif sky is ProceduralSkyMaterial: background_color = sky.sky_top_color var stylebox = StyleBoxFlat.new() stylebox.bg_color = Color(background_color, 0.6) svc.add_theme_stylebox_override("panel", stylebox) drawer = Node2D.new() svc.add_child(drawer) var gridmap = get_tree().get_root().get_node("scene/GridMap") if gridmap == null: visible = false return cell_left = 0 cell_top = 0 cell_right = 0 cell_bottom = 0 for pos in gridmap.get_used_cells(): if pos.x < cell_left: cell_left = pos.x if pos.x > cell_right: cell_right = pos.x if pos.z < cell_top: cell_top = pos.z if pos.z > cell_bottom: cell_bottom = pos.z cell_width = cell_right - cell_left + 1 cell_height = cell_bottom - cell_top + 1 var rendered = _renderMap(gridmap) var image_texture = ImageTexture.create_from_image(rendered) sprite = Sprite2D.new() sprite.texture = image_texture sprite.texture_filter = CanvasItem.TEXTURE_FILTER_NEAREST sprite.scale = Vector2(2, 2) sprite.centered = false drawer.add_child(sprite) label = Label.new() label.theme = preload("res://assets/themes/baseUI.tres") label.add_theme_font_size_override("font_size", 32) label.text = "@" drawer.add_child(label) #var local_tl = gridmap.map_to_local(Vector3i(cell_left, 0, cell_top)) #var global_tl = gridmap.to_global(local_tl) #var local_br = gridmap.map_to_local(Vector3i(cell_right, 0, cell_bottom)) #var global_br = gridmap.to_global(local_br) center_x_min = 0 center_x_max = cell_width - 128 center_y_min = 0 center_y_max = cell_height - 128 if center_x_max < center_x_min: center_x_min = (center_x_min + center_x_max) / 2 center_x_max = center_x_min if center_y_max < center_y_min: center_y_min = (center_y_min + center_y_max) / 2 center_y_max = center_y_min func _process(_delta): if visible == false: return drawer.position.x = clamp(player.position.x - cell_left - 64, center_x_min, center_x_max) * -2 drawer.position.y = clamp(player.position.z - cell_top - 64, center_y_min, center_y_max) * -2 label.position.x = (player.position.x - cell_left) * 2 - 16 label.position.y = (player.position.z - cell_top) * 2 - 16 func _renderMap(gridmap): var heights = {} var rendered = Image.create_empty(cell_width, cell_height, false, Image.FORMAT_RGBA8) rendered.fill(Color.TRANSPARENT) var meshes_node = get_tree().get_root().get_node("scene/Meshes") if meshes_node != null: _renderMeshNode(gridmap, meshes_node, rendered) for pos in gridmap.get_used_cells(): var in_plane = Vector2i(pos.x, pos.z) if in_plane in heights and heights[in_plane] > pos.y: continue heights[in_plane] = pos.y var cell_item = gridmap.get_cell_item(pos) var mesh = gridmap.mesh_library.get_item_mesh(cell_item) var material = mesh.surface_get_material(0) var color = material.albedo_color rendered.set_pixel(pos.x - cell_left, pos.z - cell_top, color) return rendered func _renderMeshNode(gridmap, mesh, rendered): if mesh is MeshInstance3D: var local_tl = gridmap.map_to_local(Vector3i(cell_left, 0, cell_top)) var global_tl = gridmap.to_global(local_tl) var mesh_material = mesh.get_surface_override_material(0) if mesh_material != null: var mesh_color = mesh_material.albedo_color for y in range( max(mesh.position.z - mesh.scale.z / 2 - global_tl.z, 0), min(mesh.position.z + mesh.scale.z / 2 - global_tl.z, cell_height) ): for x in range( max(mesh.position.x - mesh.scale.x / 2 - global_tl.x, 0), min(mesh.position.x + mesh.scale.x / 2 - global_tl.x, cell_width) ): rendered.set_pixel(x, y, mesh_color) for child in mesh.get_children(): _renderMeshNode(gridmap, child, rendered)