try different stack display, make outlines for em

This commit is contained in:
veclavtalica 2025-02-14 17:22:42 +03:00
parent 041343a183
commit 4bd1d6bc9c
3 changed files with 43 additions and 14 deletions

View File

@ -146,9 +146,13 @@ func mark_interactive() -> void:
if _model.scene_file_path == "res://assets/water-bomb.glb": if _model.scene_file_path == "res://assets/water-bomb.glb":
for submodel in _model.get_children(): for submodel in _model.get_children():
(submodel as MeshInstance3D).mesh.surface_get_material(0).next_pass.set("shader_parameter/color", Color.WHITE) (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: func mark_non_interactive() -> void:
if _model.scene_file_path == "res://assets/water-bomb.glb": if _model.scene_file_path == "res://assets/water-bomb.glb":
for submodel in _model.get_children(): 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)) (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)

View File

@ -1,9 +1,13 @@
extends Node3D extends Node3D
@export var mesh: MeshInstance3D
@export var count_label: Label3D
func reflect_bundle(p_bundle: Dictionary) -> void: func reflect_bundle(p_bundle: Dictionary) -> void:
var item = GameState.fetch().INVENTORY_ITEM_DB[p_bundle["item_id"]] 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: 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: else:
$CountLabel.text = str(p_bundle["count"]) count_label.text = str(p_bundle["count"])

View File

@ -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="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"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_5wlqs"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.179242, 0) 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") script = ExtResource("1_l2s4x")
mesh = NodePath("Mesh")
count_label = NodePath("CountLabel")
[node name="CountLabel" type="Label3D" parent="."] [node name="CountLabel" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.181474, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0502154, 0)
billboard = 1
text = "3"
[node name="Sprite3D" type="Sprite3D" parent="."]
pixel_size = 0.015
billboard = 1 billboard = 1
texture_filter = 0 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")