added building mode for cart

This commit is contained in:
Nikolai Fesenko
2025-08-10 20:38:16 +02:00
parent dc6f0d2907
commit 83095a0b8d
25 changed files with 3806 additions and 244 deletions

View File

@@ -1,11 +1,16 @@
extends Camera3D
@export var rayLength: float
func getGlobalMousePosition() -> Vector3:
var debugLabel
func _ready() -> void:
debugLabel = $DebugLabel1
func getGlobalRayTargetObject():
var space = get_world_3d().direct_space_state
var mousePos = get_viewport().get_mouse_position()
var from = self.project_ray_origin(mousePos)
var to = from + self.project_ray_normal(mousePos) * rayLength
var query = PhysicsRayQueryParameters3D.create(from,to)
var collison = space.intersect_ray(query)
return collison.position
return collison

33
Scripts/cart.gd Normal file
View File

@@ -0,0 +1,33 @@
extends Node3D
@onready var beds = preload("res://Scenes/Prefabs/DoubleBeds.tscn")
@export var cartTop: MeshInstance3D
@export var mainCamera: Camera3D
var build_mode = false
var previewObject
var targetPos
func _input(event: InputEvent) -> void:
if event.is_action_pressed("hide_top"):
cartTop.visible = !cartTop.visible
if event.is_action_pressed("enter_build_mode"):
build_mode = !build_mode
add_preview()
func _process(_delta: float) -> void:
if build_mode:
targetPos = mainCamera.getGlobalRayTargetObject()
mainCamera.debugLabel.text = targetPos.collider.name
if targetPos.collider.has_meta("is_building_area"):
#if targetPos.collider.is_building_area == true:
previewObject.visible = true
previewObject.global_position = targetPos.position
else:
previewObject.visible = false
func add_preview():
previewObject = beds.instantiate()
get_tree().root.get_child(0).add_child(previewObject)

1
Scripts/cart.gd.uid Normal file
View File

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