public void dbArrowHideAll(Map.BlockIndex bi) { for (int i = 0; i < (int)Map.EWSN.NUM; i++) { this.dbArrowSetVisible(bi, (Map.EWSN)i, false); } }
// ================================================================ // // 디버그용. // 플로어 디버그용 플레인을 표시한다. public void dbSetFloorColor(Map.BlockIndex bi, Color color) { GameObject debug_go = this.floor_objects[bi.x, bi.z].findChildGameObject("Debug"); debug_go.SetActive(true); debug_go.GetComponent <MeshRenderer>().material.color = color; }
public BlockIndex get_next(EWSN eswn) { BlockIndex next = this; switch (eswn) { case EWSN.EAST: next.x += 1; break; case EWSN.WEST: next.x -= 1; break; case EWSN.SOUTH: next.z -= 1; break; case EWSN.NORTH: next.z += 1; break; } return(next); }
public void dbArrowSetVisible(Map.BlockIndex bi, Map.EWSN ewsn, bool is_visible) { string arrow_name = ""; switch (ewsn) { case Map.EWSN.EAST: arrow_name = "DebugE"; break; case Map.EWSN.WEST: arrow_name = "DebugW"; break; case Map.EWSN.SOUTH: arrow_name = "DebugS"; break; case Map.EWSN.NORTH: arrow_name = "DebugN"; break; } if (arrow_name != "") { GameObject arrow_go = this.floor_objects[bi.x, bi.z].findChildGameObject(arrow_name); arrow_go.SetActive(is_visible); } }
// 플로어 디버그용 플레인을 비표시한다. public void dbHideFloorColor(Map.BlockIndex bi) { GameObject debug_go = this.floor_objects[bi.x, bi.z].findChildGameObject("Debug"); debug_go.SetActive(false); }
// 방을 만든다(1룸). public void create_doors(List<DoorData> door_datas) { DoorControl door0, door1; Map.BlockIndex block0_index, block1_index; int n = 0; foreach(var data in door_datas) { // 양쪽 방에서 사용되지 않은 색 중에서 랜덤하게 선택한다. RoomController room0 = get_room_root_go(data.room0).GetComponent<RoomController>(); RoomController room1 = get_room_root_go(data.room1).GetComponent<RoomController>(); List<bool> color_used0 = room0.checkKeyColorsUsed(); List<bool> color_used1 = room1.checkKeyColorsUsed(); List<int> key_colors = new List<int>(); for(int i = 0;i < color_used0.Count;i++) { if(!color_used0[i] && !color_used1[i]) { key_colors.Add(i); } } int key_type = key_colors[this.random_plant.getRandomInt(key_colors.Count)]; door0 = null; door1 = null; // 상하의 방을 잇는 문. if(data.room0.x == data.room1.x) { block0_index = new Map.BlockIndex(data.local_position, BLOCK_GRID_ROWS_NUM - 1); block1_index = new Map.BlockIndex(data.local_position, 0); // 상(북). if(data.room1.z == data.room0.z + 1) { door0 = this.create_door(data.type, data.room0, block0_index, Map.EWSN.NORTH, key_type); door1 = this.create_door(data.type, data.room1, block1_index, Map.EWSN.SOUTH, key_type); } // 하(남). if(data.room1.z == data.room0.z - 1) { door0 = this.create_door(data.type, data.room0, block1_index, Map.EWSN.SOUTH, key_type); door1 = this.create_door(data.type, data.room1, block0_index, Map.EWSN.NORTH, key_type); } } // 좌우 방을 잇는 문. if(data.room0.z == data.room1.z) { block0_index = new Map.BlockIndex(BLOCK_GRID_COLUMNS_NUM - 1, data.local_position); block1_index = new Map.BlockIndex(0, data.local_position); // 동(우). if(data.room1.x == data.room0.x + 1) { door0 = this.create_door(data.type, data.room0, block0_index, Map.EWSN.EAST, key_type); door1 = this.create_door(data.type, data.room1, block1_index, Map.EWSN.WEST, key_type); } // 서(좌). if(data.room1.x == data.room0.x - 1) { door0 = this.create_door(data.type, data.room0, block1_index, Map.EWSN.WEST, key_type); door1 = this.create_door(data.type, data.room1, block0_index, Map.EWSN.EAST, key_type); } } if(door0 != null && door1 != null) { door0.connect_to = door1; door1.connect_to = door0; } n++; } }
public static bool isEqual(BlockIndex value0, BlockIndex value1) { return((value0.x == value1.x) && (value0.z == value1.z)); }