diff --git a/src/ingame/bomb.gd b/src/ingame/bomb.gd index 94e04e5..b1e9b37 100644 --- a/src/ingame/bomb.gd +++ b/src/ingame/bomb.gd @@ -146,9 +146,13 @@ func mark_interactive() -> void: if _model.scene_file_path == "res://assets/water-bomb.glb": for submodel in _model.get_children(): (submodel as MeshInstance3D).mesh.surface_get_material(0).next_pass.set("shader_parameter/color", Color.WHITE) + elif _model.scene_file_path == "res://src/ingame/quad_viewmodel.tscn": + _model.mesh.material_override.set("shader_parameter/outline_color", Color.WHITE) func mark_non_interactive() -> void: if _model.scene_file_path == "res://assets/water-bomb.glb": for submodel in _model.get_children(): (submodel as MeshInstance3D).mesh.surface_get_material(0).next_pass.set("shader_parameter/color", Color(1, 1, 1, 0)) + elif _model.scene_file_path == "res://src/ingame/quad_viewmodel.tscn": + _model.mesh.material_override.set("shader_parameter/outline_color", Color.BLACK) diff --git a/src/ingame/quad_viewmodel.gd b/src/ingame/quad_viewmodel.gd index 284e169..de9e12d 100644 --- a/src/ingame/quad_viewmodel.gd +++ b/src/ingame/quad_viewmodel.gd @@ -1,9 +1,13 @@ extends Node3D +@export var mesh: MeshInstance3D +@export var count_label: Label3D + + func reflect_bundle(p_bundle: Dictionary) -> void: var item = GameState.fetch().INVENTORY_ITEM_DB[p_bundle["item_id"]] - $Sprite3D.texture = item.icon + mesh.material_override.set("shader_parameter/albedo_texture", item.icon) if item.stackable: - $CountLabel.text = str(p_bundle["count"]) + "/" + str(item.stack_limit) + count_label.text = str(p_bundle["count"]) + "\n=\n" + str(item.stack_limit) else: - $CountLabel.text = str(p_bundle["count"]) + count_label.text = str(p_bundle["count"]) diff --git a/src/ingame/quad_viewmodel.tscn b/src/ingame/quad_viewmodel.tscn index 260bfb6..8ba95a2 100644 --- a/src/ingame/quad_viewmodel.tscn +++ b/src/ingame/quad_viewmodel.tscn @@ -1,19 +1,40 @@ -[gd_scene load_steps=3 format=3 uid="uid://dxb5f3il2h1ur"] +[gd_scene load_steps=6 format=3 uid="uid://dxb5f3il2h1ur"] [ext_resource type="Script" path="res://src/ingame/quad_viewmodel.gd" id="1_l2s4x"] -[ext_resource type="Texture2D" uid="uid://dw3x3h3f34sy3" path="res://assets/coin_flower.png" id="2_7fi8t"] +[ext_resource type="Texture2D" uid="uid://dgo2frvws2o6f" path="res://assets/coin.png" id="2_k1r4m"] +[ext_resource type="Shader" path="res://assets/shaders/interactivity_outline2.gdshader" id="2_xpghy"] -[node name="QuadViewmodel" type="Node3D"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.179242, 0) +[sub_resource type="ShaderMaterial" id="ShaderMaterial_5wlqs"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("2_xpghy") +shader_parameter/width = 1.0 +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/albedo_texture = ExtResource("2_k1r4m") + +[sub_resource type="QuadMesh" id="QuadMesh_dxt6h"] +size = Vector2(0.5, 0.5) + +[node name="QuadViewmodel" type="Node3D" node_paths=PackedStringArray("mesh", "count_label")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.309578, 0) script = ExtResource("1_l2s4x") +mesh = NodePath("Mesh") +count_label = NodePath("CountLabel") [node name="CountLabel" type="Label3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.181474, 0) -billboard = 1 -text = "3" - -[node name="Sprite3D" type="Sprite3D" parent="."] -pixel_size = 0.015 +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0502154, 0) billboard = 1 texture_filter = 0 -texture = ExtResource("2_7fi8t") +render_priority = 2 +outline_render_priority = 1 +text = "3 += +9" +font_size = 30 +outline_size = 10 +line_spacing = -22.0 + +[node name="Mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0495689, 0) +material_override = SubResource("ShaderMaterial_5wlqs") +mesh = SubResource("QuadMesh_dxt6h")