|
|
|
@ -136,17 +136,16 @@ func init_level_character() -> void:
|
|
|
|
|
|
|
|
|
|
|
|
func init_level_main() -> void:
|
|
|
|
func init_level_main() -> void:
|
|
|
|
var level_main: GridMap = %LevelGridMain as GridMap
|
|
|
|
var level_main: GridMap = %LevelGridMain as GridMap
|
|
|
|
var id_min: Vector3i = Util.get_level_grid_pos2(outter_pos_min())
|
|
|
|
var id_min: Vector3i = Util.get_level_grid_pos2(pos_min())
|
|
|
|
var id_max: Vector3i = Util.get_level_grid_pos2(outter_pos_max())
|
|
|
|
var id_max: Vector3i = Util.get_level_grid_pos2(pos_max())
|
|
|
|
print(id_min, id_max)
|
|
|
|
|
|
|
|
# 正前面
|
|
|
|
# 正前面
|
|
|
|
for x in range(id_min.x, id_max.x):
|
|
|
|
for x in range(id_min.x, id_max.x+1):
|
|
|
|
for y in range(id_min.y, id_max.y):
|
|
|
|
for y in range(id_min.y, id_max.y+1):
|
|
|
|
var pos: Vector3i = Vector3i(x, id_max.z, y)
|
|
|
|
var pos: Vector3i = Vector3i(x, id_max.z, y)
|
|
|
|
add_grid_main_cache_cell(level_main, pos)
|
|
|
|
add_grid_main_cache_cell(level_main, pos)
|
|
|
|
# 底面黑块
|
|
|
|
# 底面黑块
|
|
|
|
for x in range(id_min.x, id_max.x):
|
|
|
|
for x in range(id_min.x, id_max.x+1):
|
|
|
|
for z in range(id_min.z, id_max.z):
|
|
|
|
for z in range(id_min.z, id_max.z+1):
|
|
|
|
var pos: Vector3i = Vector3i(x, id_min.y, z)
|
|
|
|
var pos: Vector3i = Vector3i(x, id_min.y, z)
|
|
|
|
var id: int = level_main.get_cell_item(pos)
|
|
|
|
var id: int = level_main.get_cell_item(pos)
|
|
|
|
if not(id == GridMap.INVALID_CELL_ITEM or z == id_max.z):
|
|
|
|
if not(id == GridMap.INVALID_CELL_ITEM or z == id_max.z):
|
|
|
|
@ -159,8 +158,8 @@ func init_level_main() -> void:
|
|
|
|
add_grid_main_cache_cell(level_main, pos)
|
|
|
|
add_grid_main_cache_cell(level_main, pos)
|
|
|
|
mark_white_list.append(pos)
|
|
|
|
mark_white_list.append(pos)
|
|
|
|
# 顶面
|
|
|
|
# 顶面
|
|
|
|
for x in range(id_min.x, id_max.x):
|
|
|
|
for x in range(id_min.x, id_max.x+1):
|
|
|
|
for z in range(id_min.z, id_max.z):
|
|
|
|
for z in range(id_min.z, id_max.z+1):
|
|
|
|
var pos: Vector3i = Vector3i(x, id_max.y, z)
|
|
|
|
var pos: Vector3i = Vector3i(x, id_max.y, z)
|
|
|
|
add_grid_main_cache_cell(level_main, pos)
|
|
|
|
add_grid_main_cache_cell(level_main, pos)
|
|
|
|
var pos_down: Vector3i = Vector3i(x, id_max.y - 1, z)
|
|
|
|
var pos_down: Vector3i = Vector3i(x, id_max.y - 1, z)
|
|
|
|
@ -182,15 +181,12 @@ func add_grid_main_cache_cell(level_main: GridMap, pos: Vector3i) -> void:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func set_replace(is_active: bool)-> void:
|
|
|
|
func set_replace(is_active: bool)-> void:
|
|
|
|
print("set_replace")
|
|
|
|
|
|
|
|
# print("mark_black_list", mark_black_list)
|
|
|
|
|
|
|
|
# print("mark_white_list", mark_white_list)
|
|
|
|
|
|
|
|
var level_main: GridMap = %LevelGridMain as GridMap
|
|
|
|
var level_main: GridMap = %LevelGridMain as GridMap
|
|
|
|
if is_active:
|
|
|
|
if is_active:
|
|
|
|
for cache_data in grid_main_cache_cells:
|
|
|
|
for cache_data in grid_main_cache_cells:
|
|
|
|
level_main.set_cell_item(cache_data.pos, GridMap.INVALID_CELL_ITEM)
|
|
|
|
level_main.set_cell_item(cache_data.pos, GridMap.INVALID_CELL_ITEM)
|
|
|
|
# for pos in mark_white_list:
|
|
|
|
for pos in mark_white_list:
|
|
|
|
# level_main.set_cell_item(pos, 0)
|
|
|
|
level_main.set_cell_item(pos, 0)
|
|
|
|
for pos in mark_black_list:
|
|
|
|
for pos in mark_black_list:
|
|
|
|
level_main.set_cell_item(pos, 1)
|
|
|
|
level_main.set_cell_item(pos, 1)
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
|