Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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));
                }
            }
        }