public void UpdateTile() { this.HigestRoomItem = this.GetHigestItem(); if (this.HigestRoomItem != null) { if (this.HigestRoomItem is RoomItemGate) { this.ModelItemState = this.HigestRoomItem.ExtraData == "1" ? ModelItemState.NONE : ModelItemState.LOCKED; } else if (this.HigestRoomItem is RoomItemFreezeGateBlue || this.HigestRoomItem is RoomItemFreezeGateGreen || this.HigestRoomItem is RoomItemFreezeGateRed || this.HigestRoomItem is RoomItemFreezeGateYellow) { this.ModelItemState = this.Room.RoomFreezeManager.GameStarted ? ModelItemState.LOCKED : ModelItemState.NONE; } else if (this.HigestRoomItem is RoomItemFreezeIceBlock) { this.ModelItemState = (this.HigestRoomItem.ExtraData == "0" || string.IsNullOrEmpty(this.HigestRoomItem.ExtraData)) ? ModelItemState.LOCKED : ModelItemState.NONE; } else if (this.HigestRoomItem is RoomItemHorseObstacle) { if (this.HigestRoomItem.Rot == 0 || this.HigestRoomItem.Rot == 2) { if ((this.HigestRoomItem.X + 1 == this.X && this.HigestRoomItem.Y == this.Y) || (this.HigestRoomItem.X + 1 == this.X && this.HigestRoomItem.Y + 1 == this.Y)) { this.ModelItemState = ModelItemState.LOCKED; } else { this.ModelItemState = ModelItemState.NONE; } } else if (this.HigestRoomItem.Rot == 4) { if ((this.HigestRoomItem.X == this.X && this.HigestRoomItem.Y + 1 == this.Y) || (this.HigestRoomItem.X + 1 == this.X && this.HigestRoomItem.Y + 1 == this.Y)) { this.ModelItemState = ModelItemState.LOCKED; } else { this.ModelItemState = ModelItemState.NONE; } } } else { this.ModelItemState = this.HigestRoomItem.BaseItem.InteractionType == "bed" ? ModelItemState.BED : this.HigestRoomItem.BaseItem.IsSeat ? ModelItemState.SEAT : this.HigestRoomItem.BaseItem.Walkable ? ModelItemState.NONE : ModelItemState.LOCKED; } } else { this.ModelItemState = ModelItemState.NONE; } }
public Dictionary <int, RoomUnit> UsersOnTile; //key = virtual Id, value = roomUser public RoomTile(Room room, int x, int y, int modelZ, ModelTileState modelTileState) { this.Room = room; this.X = x; this.Y = y; this.ModelZ = modelZ; this.ModelTileState = modelTileState; this.ItemsOnTile = new ConcurrentListDictionary <uint, Type, RoomItem>(); this.UsersOnTile = new Dictionary <int, RoomUnit>(); this.ModelItemState = ModelItemState.NONE; }