private void HandleReset(ItemsPosReset roomItem) { if (roomItem == null) { return; } if (this.EtatActuel == 1) { if (roomItem.extradata != "Null") { if (roomItem.item.ExtraData != roomItem.extradata) { roomItem.item.ExtraData = roomItem.extradata; roomItem.item.UpdateState(); roomItem.item.GetRoom().GetGameMap().updateMapForItem(roomItem.item); } } } if (this.DirectionActuel == 1) { if (roomItem.rot != roomItem.item.Rotation) { this.roomItemHandler.RotReset(roomItem.item, roomItem.rot); } } if (this.PositionActuel == 1) { if (roomItem.x != roomItem.item.GetX || roomItem.y != roomItem.item.GetY || roomItem.z != roomItem.item.GetZ) { this.roomItemHandler.PositionReset(roomItem.item, roomItem.x, roomItem.y, roomItem.z); } } }
public PositionReset(List <Item> items, int delay, RoomItemHandling roomItemHandler, WiredHandler handler, int itemID, int etatActuel, int directionActuel, int positionActuel) { this.Delay = delay; this.roomItemHandler = roomItemHandler; this.itemID = itemID; this.handler = handler; this.disposed = false; this.EtatActuel = etatActuel; this.DirectionActuel = directionActuel; this.PositionActuel = positionActuel; this.items = new ConcurrentDictionary <int, ItemsPosReset>(); foreach (Item roomItem in items) { if (!this.items.ContainsKey(roomItem.Id)) { this.items.TryAdd(roomItem.Id, new ItemsPosReset(roomItem, roomItem.GetX, roomItem.GetY, roomItem.GetZ, roomItem.Rotation, roomItem.ExtraData)); } else { ItemsPosReset RemoveItem = null; this.items.TryRemove(roomItem.Id, out RemoveItem); this.items.TryAdd(roomItem.Id, new ItemsPosReset(roomItem, roomItem.GetX, roomItem.GetY, roomItem.GetZ, roomItem.Rotation, roomItem.ExtraData)); } } }