Add Table picks an order
This commit is contained in:
@@ -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]
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://y4sol8l8vih1
|
||||||
+12
-4
@@ -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
|
||||||
|
|||||||
@@ -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 :)")
|
||||||
|
|||||||
Reference in New Issue
Block a user