You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
902 B
GDScript
33 lines
902 B
GDScript
@tool
|
|
extends Node3D
|
|
class_name LevelInstance
|
|
|
|
@export var size: Vector3i = Vector3i.ONE:
|
|
set(value):
|
|
if (value.x<1) or (value.y<1) or (value.z<1):
|
|
value = Vector3i.ONE
|
|
size = value
|
|
_on_size_change()
|
|
|
|
@export var is_force_battle: bool
|
|
|
|
var level_area_cfg: LevelAreaCfg #运行时设置
|
|
|
|
|
|
func _on_size_change() -> void:
|
|
var level_range: CSGBox3D = $LevelRange as CSGBox3D
|
|
var size_basic: Vector3 = Setting.size_basic
|
|
level_range.size = Vector3(size.x*size_basic.x, size.y*size_basic.y, size.z*size_basic.z)
|
|
level_range.position = level_range.size / 2
|
|
|
|
|
|
func level_size() -> Vector2:
|
|
var level_range: CSGBox3D = $LevelRange as CSGBox3D
|
|
var level_size: Vector3 = level_range.size
|
|
return Vector2(level_size.x, level_size.z)
|
|
|
|
|
|
func level_pos() -> Vector2:
|
|
var pos: Vector3 = get_global_position()
|
|
return Vector2(pos.x, pos.z)
|