From 3f53502a5907ed1982d28a392c54331f0c1c2c42 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 25 Sep 2025 12:09:50 -0400 Subject: Move the client into the apworld Only works on source right now, not as an apworld. --- client/Archipelago/minimap.gd | 175 ------------------------------------------ 1 file changed, 175 deletions(-) delete mode 100644 client/Archipelago/minimap.gd (limited to 'client/Archipelago/minimap.gd') diff --git a/client/Archipelago/minimap.gd b/client/Archipelago/minimap.gd deleted file mode 100644 index 5640716..0000000 --- a/client/Archipelago/minimap.gd +++ /dev/null @@ -1,175 +0,0 @@ -extends CanvasLayer - -var player -var drawer -var sprite -var label - -var cell_left -var cell_top -var cell_right -var cell_bottom -var cell_width -var cell_height -var center_x_min -var center_x_max -var center_y_min -var center_y_max - - -func _ready(): - player = get_tree().get_root().get_node("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) -- cgit 1.4.1