Start encounter feature
This commit is contained in:
39
scripts/grid_cell.gd
Normal file
39
scripts/grid_cell.gd
Normal file
@@ -0,0 +1,39 @@
|
||||
## Represents a single 3D grid cell on the game board.
|
||||
##
|
||||
## It's a data structure for occupancy state, owner tetromino, bounds, and
|
||||
## visual feedback.
|
||||
class_name GridCell
|
||||
extends Object
|
||||
|
||||
# Properties
|
||||
var position: Vector3i # Grid coordinates
|
||||
var owner: Tetromino = null # Tetromino occupying this cell
|
||||
var bounds: AABB = AABB() # 3D axis-aligned bounding box
|
||||
|
||||
# Visual state
|
||||
var is_highlighted: bool = false
|
||||
var is_valid_placement: bool = true
|
||||
|
||||
|
||||
## Checks if the cell is currently empty.
|
||||
func is_empty() -> bool:
|
||||
return owner == null
|
||||
|
||||
|
||||
## Marks the cell as occupied by a tetromino.
|
||||
func occupy(tetromino: Tetromino) -> void:
|
||||
owner = tetromino
|
||||
|
||||
|
||||
## Marks the cell as empty.
|
||||
func clear() -> void:
|
||||
owner = null
|
||||
|
||||
|
||||
## Returns a string representation of the cell state.
|
||||
func _to_string() -> String:
|
||||
return "GridCell3D[pos=%v, occupied=%s, valid=%s]" % [
|
||||
position,
|
||||
"yes" if owner else "no",
|
||||
"yes" if is_valid_placement else "no"
|
||||
]
|
||||
Reference in New Issue
Block a user