Add Table picks an order

This commit is contained in:
JonShard
2026-07-22 15:15:30 +02:00
parent ab6cce3d9a
commit a1cb484ca5
4 changed files with 42 additions and 5 deletions
+24
View File
@@ -0,0 +1,24 @@
class_name GameManager
extends Node
static var money: int
static var meals_in_play: Array[String]
static var sides_in_play: Array[String]
static func get_random_meal() -> String:
if meals_in_play.size() == 0:
push_error("GameManager: get_random_meal() called but meals_in_play is empty")
return ""
var rand_index = randi() % meals_in_play.size()
print("GameManager: get_random_meal() returning ", meals_in_play[rand_index])
return meals_in_play[rand_index]
static func get_random_side() -> String:
if sides_in_play.size() == 0:
push_error("GameManager: get_random_side() called but sides_in_play is empty")
return ""
var rand_index = randi() % sides_in_play.size()
print("GameManager: get_random_side() returning ", sides_in_play[rand_index])
return sides_in_play[rand_index]
+1
View File
@@ -0,0 +1 @@
uid://y4sol8l8vih1
+12 -4
View File
@@ -1,7 +1,9 @@
extends StaticBody3D extends StaticBody3D
const GAME_MANAGER = preload("res://GameManager.gd")
@export var initial_thinking_time: float = 8 @export var initial_thinking_time: float = 8
@export var initial_primary_time: float = 3 @export var initial_primary_time: float = 8
@export var initial_friend_time: float = 3 @export var initial_friend_time: float = 3
@export var initial_eating_time: float = 3 @export var initial_eating_time: float = 3
@@ -25,7 +27,7 @@ enum TableState {
} }
var _state = TableState.EMPTY # use _setState(), never set directly var _state = TableState.EMPTY # use _setState(), never set directly
var _state_time: float = 0.0 var _state_time: float = 0.0
var _unsatisfied_orders: Array[String]
func _ready() -> void: func _ready() -> void:
if not label_3d: if not label_3d:
@@ -42,6 +44,7 @@ func _ready() -> void:
func _on_object_picked_up(_item) -> void: func _on_object_picked_up(_item) -> void:
print("Table: object picked up: ", _item) print("Table: object picked up: ", _item)
_update_order_text()
func _on_object_dropped() -> void: func _on_object_dropped() -> void:
@@ -50,7 +53,12 @@ func _on_object_dropped() -> void:
func place_order() -> void: func place_order() -> void:
print("Table: place_order()") print("Table: place_order()")
label_3d.text = "order!" _unsatisfied_orders.append(GAME_MANAGER.get_random_meal())
_update_order_text()
func _update_order_text() -> void:
label_3d.text = "Order: " + ", ".join(_unsatisfied_orders)
func _setState(newState: TableState) -> void: func _setState(newState: TableState) -> void:
@@ -65,7 +73,7 @@ func _setState(newState: TableState) -> void:
if newState == TableState.WAITING_PRIMARY: if newState == TableState.WAITING_PRIMARY:
_state_time = initial_primary_time _state_time = initial_primary_time
label_3d.text = lbl_waiting_primary _update_order_text()
if newState == TableState.WAITING_FRIEND: if newState == TableState.WAITING_FRIEND:
_state_time = initial_friend_time _state_time = initial_friend_time
+4
View File
@@ -1,11 +1,15 @@
extends Node3D extends Node3D
const RECIPE_MANAGER = preload("res://RecipeManager.gd") const RECIPE_MANAGER = preload("res://RecipeManager.gd")
const GAME_MANAGER = preload("res://GameManager.gd")
var xr_interface :XRInterface var xr_interface :XRInterface
func _ready(): func _ready():
RECIPE_MANAGER.print_all_recipes() RECIPE_MANAGER.print_all_recipes()
GAME_MANAGER.meals_in_play.append("hamburger")
xr_interface = XRServer.find_interface("OpenXR") xr_interface = XRServer.find_interface("OpenXR")
if xr_interface and xr_interface.is_initialized(): if xr_interface and xr_interface.is_initialized():
print("OpenXR started :)") print("OpenXR started :)")