30 lines
841 B
GDScript
30 lines
841 B
GDScript
extends Node3D
|
|
|
|
@export var arena_size: float = 14.0
|
|
@export var show_grid: bool = true
|
|
|
|
func _ready() -> void:
|
|
if show_grid:
|
|
_draw_grid()
|
|
|
|
func _draw_grid() -> void:
|
|
var grid_mat := StandardMaterial3D.new()
|
|
grid_mat.albedo_color = Color(0.2, 0.2, 0.3, 0.5)
|
|
grid_mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
|
|
grid_mat.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED
|
|
var step := 4.0
|
|
var n := int(arena_size / step)
|
|
for i in range(-n, n + 1):
|
|
for axis in [0, 1]:
|
|
var msh := MeshInstance3D.new()
|
|
var box := BoxMesh.new()
|
|
if axis == 0:
|
|
box.size = Vector3(0.05, 0.01, arena_size * 2)
|
|
msh.position = Vector3(i * step, 0.005, 0)
|
|
else:
|
|
box.size = Vector3(arena_size * 2, 0.01, 0.05)
|
|
msh.position = Vector3(0, 0.005, i * step)
|
|
msh.mesh = box
|
|
msh.material_override = grid_mat
|
|
add_child(msh)
|