Browse Source

Adding a Wailight highlight and moving target into Waila class

pull/1/head
Ryan Reed 1 month ago
parent
commit
cad4484ba6
5 changed files with 54 additions and 6 deletions
  1. +5
    -0
      assets/materials/block_highlight.tres
  2. +7
    -0
      scenes/blocks/block.gd
  3. +10
    -1
      scenes/blocks/block.tscn
  4. +22
    -4
      scenes/player/ray_cast_3d.gd
  5. +10
    -1
      scenes/ui/waila.gd

+ 5
- 0
assets/materials/block_highlight.tres View File

@ -0,0 +1,5 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://bgc6efqf8aiqo"]
[resource]
transparency = 1
albedo_color = Color(1, 1, 1, 0.0980392)

+ 7
- 0
scenes/blocks/block.gd View File

@ -3,6 +3,7 @@ extends StaticBody3D
@onready var block_faces: Node3D = $BlockFaces
@onready var highlight_mesh: MeshInstance3D = $HighlightMesh
var id: String
var resource: BlockResource
@ -15,6 +16,12 @@ func _ready() -> void:
func get_id() -> String:
return id
func hook() -> void:
highlight_mesh.visible = true
func release() -> void:
highlight_mesh.visible = false
func set_id(block_id: String) -> void:
id = block_id
_get_resource_data()


+ 10
- 1
scenes/blocks/block.tscn View File

@ -1,11 +1,16 @@
[gd_scene load_steps=4 format=3 uid="uid://col07xd76y60h"]
[gd_scene load_steps=6 format=3 uid="uid://col07xd76y60h"]
[ext_resource type="Script" uid="uid://buvqmrrtmxs2h" path="res://scenes/blocks/block.gd" id="1_7fut1"]
[ext_resource type="Material" uid="uid://bgc6efqf8aiqo" path="res://assets/materials/block_highlight.tres" id="2_524ei"]
[sub_resource type="BoxShape3D" id="BoxShape3D_n5naa"]
[sub_resource type="QuadMesh" id="QuadMesh_n5naa"]
[sub_resource type="BoxMesh" id="BoxMesh_7fut1"]
material = ExtResource("2_524ei")
size = Vector3(1.01, 1.01, 1.01)
[node name="Block" type="StaticBody3D"]
script = ExtResource("1_7fut1")
@ -43,3 +48,7 @@ skeleton = NodePath("../..")
transform = Transform3D(-4.37114e-08, 1, -4.37114e-08, 0, -4.37114e-08, -1, -1, -4.37114e-08, 1.91069e-15, 0, -0.5, 0)
mesh = SubResource("QuadMesh_n5naa")
skeleton = NodePath("../..")
[node name="HighlightMesh" type="MeshInstance3D" parent="."]
visible = false
mesh = SubResource("BoxMesh_7fut1")

+ 22
- 4
scenes/player/ray_cast_3d.gd View File

@ -6,7 +6,25 @@ func _process(_delta: float) -> void:
var collider: Object = get_collider()
if collider is Block:
var id: String = collider.get_id()
Waila.ref.hook_target(id)
else:
Waila.ref.release_target() # Not seeing anything
if Waila.ref.get_target() == collider:
return
if not Waila.ref.get_target():
hook_block(collider)
else:
release_target()
else: # Not looking at anything
if Waila.ref.get_target():
release_target()
func hook_block(target_block: Block) -> void:
target_block.hook()
Waila.ref.set_target(target_block)
var id: String = target_block.get_id()
Waila.ref.hook_target(id)
func release_target() -> void:
Waila.ref.get_target().release()
Waila.ref.set_target(null)
Waila.ref.release_target()

+ 10
- 1
scenes/ui/waila.gd View File

@ -17,13 +17,19 @@ func _init() -> void:
@onready var name_label: Label = $PanelContainer/MarginContainer/VBoxContainer/Name
@onready var description_label: Label = $PanelContainer/MarginContainer/VBoxContainer/Description
var _target: Block
func _ready() -> void:
release_target()
func get_target() -> Block:
return _target
func hook_target(id: String) -> void:
var item: ItemResource = DBItems.ref.data[id]
name_label.text = item.name
name_label.text = item.name + " (" + id + ")"
description_label.text = item.description
visible = true
@ -31,3 +37,6 @@ func hook_target(id: String) -> void:
## Not looking at anything, hide Waila
func release_target() -> void:
visible = false
func set_target(target_block: Block) -> void:
_target = target_block

Loading…
Cancel
Save