Browse Source

Adding Waila UI (What Am I Looking At)

pull/1/head
Ryan Reed 1 month ago
parent
commit
c0d333fa0e
13 changed files with 141 additions and 9 deletions
  1. +4
    -1
      root.tscn
  2. +3
    -0
      scenes/blocks/block.gd
  3. +4
    -3
      scenes/player/player.gd
  4. +0
    -0
      scenes/player/player.gd.uid
  5. +10
    -3
      scenes/player/player.tscn
  6. +12
    -0
      scenes/player/ray_cast_3d.gd
  7. +1
    -0
      scenes/player/ray_cast_3d.gd.uid
  8. +24
    -0
      scenes/ui/ui.tscn
  9. +33
    -0
      scenes/ui/waila.gd
  10. +1
    -0
      scenes/ui/waila.gd.uid
  11. +42
    -0
      scenes/ui/waila.tscn
  12. +6
    -1
      scenes/world/world.gd
  13. +1
    -1
      scenes/world/world.tscn

+ 4
- 1
root.tscn View File

@ -1,10 +1,13 @@
[gd_scene load_steps=3 format=3 uid="uid://cgx0nawwjjj7g"]
[gd_scene load_steps=4 format=3 uid="uid://cgx0nawwjjj7g"]
[ext_resource type="PackedScene" uid="uid://c0epfh4sqjcjq" path="res://data_structure/db_items.tscn" id="1_pyidc"]
[ext_resource type="PackedScene" uid="uid://mkfitwqnerku" path="res://scenes/world/world.tscn" id="2_vvh5c"]
[ext_resource type="PackedScene" uid="uid://c7fj7wla8bd70" path="res://scenes/ui/ui.tscn" id="3_vvh5c"]
[node name="Root" type="Node"]
[node name="DBItems" parent="." instance=ExtResource("1_pyidc")]
[node name="World" parent="." instance=ExtResource("2_vvh5c")]
[node name="UI" parent="." instance=ExtResource("3_vvh5c")]

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

@ -12,6 +12,9 @@ func _ready() -> void:
_apply_materials()
func get_id() -> String:
return id
func set_id(block_id: String) -> void:
id = block_id
_get_resource_data()


scenes/characters/player.gd → scenes/player/player.gd View File

@ -7,8 +7,8 @@ extends CharacterBody3D
@export var mouse_sensitivity_vertical: float = 0.002
@export var speed: float = 5.0
@onready var camera: Camera3D = $Camera3D
@onready var ray_cast: RayCast3D = $RayCast3D
func _physics_process(delta: float) -> void:
@ -20,7 +20,7 @@ func _physics_process(delta: float) -> void:
func _unhandled_input(event: InputEvent) -> void:
if event is InputEventMouseMotion:
handle_mouse_movement(event)
handle_mouse_look(event)
func apply_gravity(delta: float) -> void:
@ -32,10 +32,11 @@ func handle_jump() -> void:
if not is_on_floor(): return
velocity.y = jump_velocity
func handle_mouse_movement(event: InputEvent) -> void:
func handle_mouse_look(event: InputEvent) -> void:
rotation.y = rotation.y - event.relative.x * mouse_sensitivity_horizontal
camera.rotation.x = camera.rotation.x - event.relative.y * mouse_sensitivity_vertical
camera.rotation.x = clamp(camera.rotation.x, deg_to_rad(-90), deg_to_rad(90))
ray_cast.rotation.x = camera.rotation.x
func handle_movement() -> void:
var input_dir: Vector2 = Input.get_vector("move_left", "move_right", "move_forward", "move_backward")

scenes/characters/player.gd.uid → scenes/player/player.gd.uid View File


scenes/characters/player.tscn → scenes/player/player.tscn View File

@ -1,6 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://cggiju8k3bkoc"]
[gd_scene load_steps=5 format=3 uid="uid://cggiju8k3bkoc"]
[ext_resource type="Script" uid="uid://b6xiwiwwbdapd" path="res://scenes/characters/player.gd" id="1_rp718"]
[ext_resource type="Script" uid="uid://b6xiwiwwbdapd" path="res://scenes/player/player.gd" id="1_rp718"]
[ext_resource type="Script" uid="uid://bruuttf8j7wet" path="res://scenes/player/ray_cast_3d.gd" id="2_dovo2"]
[sub_resource type="BoxShape3D" id="BoxShape3D_wocps"]
size = Vector3(1, 1.9, 1)
@ -20,4 +21,10 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.953133, 0)
mesh = SubResource("BoxMesh_rp718")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.86156, -0.00542843)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8, -0.005)
[node name="RayCast3D" type="RayCast3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8, 0)
target_position = Vector3(0, 0, -5)
debug_shape_custom_color = Color(1, 0, 0, 1)
script = ExtResource("2_dovo2")

+ 12
- 0
scenes/player/ray_cast_3d.gd View File

@ -0,0 +1,12 @@
extends RayCast3D
func _process(_delta: float) -> void:
if is_colliding():
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

+ 1
- 0
scenes/player/ray_cast_3d.gd.uid View File

@ -0,0 +1 @@
uid://bruuttf8j7wet

+ 24
- 0
scenes/ui/ui.tscn View File

@ -0,0 +1,24 @@
[gd_scene load_steps=2 format=3 uid="uid://c7fj7wla8bd70"]
[ext_resource type="PackedScene" uid="uid://dvogu3djluqsn" path="res://scenes/ui/waila.tscn" id="1_u7n8c"]
[node name="UI" type="CanvasLayer"]
[node name="Crosshair" type="CenterContainer" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="HSeparator" type="HSeparator" parent="Crosshair"]
custom_minimum_size = Vector2(16, 16)
layout_mode = 2
mouse_filter = 2
[node name="VSeparator" type="VSeparator" parent="Crosshair"]
custom_minimum_size = Vector2(16, 16)
layout_mode = 2
mouse_filter = 2
[node name="Waila" parent="." instance=ExtResource("1_u7n8c")]

+ 33
- 0
scenes/ui/waila.gd View File

@ -0,0 +1,33 @@
## What Am I Looking At (Waila)
class_name Waila
extends MarginContainer
#region Singleton
static var ref: Waila
func _init() -> void:
if not ref:
ref = self
else:
queue_free()
#endregion
@onready var name_label: Label = $PanelContainer/MarginContainer/VBoxContainer/Name
@onready var description_label: Label = $PanelContainer/MarginContainer/VBoxContainer/Description
func _ready() -> void:
release_target()
func hook_target(id: String) -> void:
var item: ItemResource = DBItems.ref.data[id]
name_label.text = item.name
description_label.text = item.description
visible = true
## Not looking at anything, hide Waila
func release_target() -> void:
visible = false

+ 1
- 0
scenes/ui/waila.gd.uid View File

@ -0,0 +1 @@
uid://b76vloo54ieyo

+ 42
- 0
scenes/ui/waila.tscn View File

@ -0,0 +1,42 @@
[gd_scene load_steps=2 format=3 uid="uid://dvogu3djluqsn"]
[ext_resource type="Script" uid="uid://b76vloo54ieyo" path="res://scenes/ui/waila.gd" id="1_j6ccr"]
[node name="Waila" type="MarginContainer"]
editor_description = "What am I looking at (Waila)"
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -20.0
offset_right = 20.0
offset_bottom = 40.0
grow_horizontal = 2
theme_override_constants/margin_left = 8
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 8
theme_override_constants/margin_bottom = 8
script = ExtResource("1_j6ccr")
[node name="PanelContainer" type="PanelContainer" parent="."]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="PanelContainer"]
layout_mode = 2
theme_override_constants/margin_left = 8
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 8
theme_override_constants/margin_bottom = 8
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/MarginContainer"]
layout_mode = 2
[node name="Name" type="Label" parent="PanelContainer/MarginContainer/VBoxContainer"]
layout_mode = 2
theme_type_variation = &"HeaderSmall"
text = "Entity Name"
horizontal_alignment = 1
[node name="Description" type="Label" parent="PanelContainer/MarginContainer/VBoxContainer"]
layout_mode = 2
text = "Entity Description (longer than name usually)"
horizontal_alignment = 1

+ 6
- 1
scenes/world/world.gd View File

@ -23,4 +23,9 @@ func _initialize_ground() -> void:
for x: int in range(-10, 11):
for z: int in range(-10, 11):
var ground_position: Vector3 = Vector3(x, 0, z)
create_block("001", ground_position)
var random: int = randi_range(0, 1)
if random:
create_block("001", ground_position)
else:
create_block("002", ground_position)

+ 1
- 1
scenes/world/world.tscn View File

@ -1,7 +1,7 @@
[gd_scene load_steps=6 format=3 uid="uid://mkfitwqnerku"]
[ext_resource type="Script" uid="uid://c0jbvki2cylct" path="res://scenes/world/world.gd" id="1_6m72w"]
[ext_resource type="PackedScene" uid="uid://cggiju8k3bkoc" path="res://scenes/characters/player.tscn" id="2_sl2e5"]
[ext_resource type="PackedScene" uid="uid://cggiju8k3bkoc" path="res://scenes/player/player.tscn" id="2_sl2e5"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_4rhad"]
sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1)


Loading…
Cancel
Save