This commit is contained in:
Marek Le
2026-05-09 23:37:26 +02:00
parent 6d28b04c12
commit 2d4002bd3f
263 changed files with 5250 additions and 4597 deletions

View File

@@ -0,0 +1,39 @@
extends Area3D
@onready var mesh: MeshInstance3D = $Mesh
@onready var label: Label3D = $Label
@export var item_id: StringName = &""
@export var amount: int = 1
var rotation_speed: float = 1.5
var bob: float = 0.0
func _enter_tree() -> void:
set_multiplayer_authority(1)
func _ready() -> void:
add_to_group("loot")
body_entered.connect(_on_body_entered)
if item_id != &"":
label.text = "%s x%d" % [str(item_id), amount]
else:
label.text = "Loot"
func _process(delta: float) -> void:
bob += delta
mesh.rotation.y += rotation_speed * delta
mesh.position.y = 0.5 + sin(bob * 2.0) * 0.1
func _on_body_entered(body: Node) -> void:
if not multiplayer.is_server() and multiplayer.multiplayer_peer != null:
return
if not body.is_in_group("player"):
return
var inv: Node = get_node_or_null("/root/World/Systems/InventorySystem")
if inv == null:
inv = get_node_or_null("/root/Dungeon/Systems/InventorySystem")
if inv and inv.has_method("add_item"):
inv.add_item(body, item_id, amount)
EventBus.item_picked_up.emit(body, item_id)
queue_free()

View File

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

View File

@@ -0,0 +1,35 @@
[gd_scene load_steps=4 format=3 uid="uid://b0loot0001"]
[ext_resource type="Script" path="res://scenes/entities/loot/loot_drop.gd" id="1"]
[sub_resource type="BoxMesh" id="BoxMesh_1"]
size = Vector3(0.4, 0.4, 0.4)
[sub_resource type="StandardMaterial3D" id="LootMat"]
albedo_color = Color(0.95, 0.85, 0.2, 1)
emission_enabled = true
emission = Color(1.0, 0.9, 0.4, 1)
emission_energy_multiplier = 0.6
[sub_resource type="SphereShape3D" id="SphereShape3D_1"]
radius = 1.2
[node name="LootDrop" type="Area3D"]
collision_layer = 0
collision_mask = 2
script = ExtResource("1")
[node name="Mesh" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
mesh = SubResource("BoxMesh_1")
material_override = SubResource("LootMat")
[node name="Label" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
billboard = 1
text = "Loot"
font_size = 18
outline_size = 3
[node name="PickupShape" type="CollisionShape3D" parent="."]
shape = SubResource("SphereShape3D_1")