Ejemplo n.º 1
0
        private bool HandleItems()
        {
            handler.OnEvent(itemID);
            bool itemIsMoved = false;

            foreach (RoomItem item in items)
            {
                Point oldCoordinate = item.GetPlacementPosition();
                if (roomItemHandler.SetFloorItem(null, item, oldCoordinate.X, oldCoordinate.Y, item.Rot, false, false, true))
                {
                    itemIsMoved = true;
                }
            }

            return(itemIsMoved);
        }
Ejemplo n.º 2
0
        private bool HandleItems()
        {
            //InteractorGenericSwitch.DoAnimation(itemID);

            var itemIsMoved = false;

            foreach (var item in items)
            {
                if (!item.GetRoom().GetRoomItemHandler().mFloorItems.ContainsKey(item.Id))
                {
                    continue;
                }

                OriginalItemLocation oldCoordinate = this.GetOriginalItemLocation(item);

                // CAMBIAMOS EL EXTRADATA AL INICIAL.
                if (FurniState == 1)
                {
                    if (item.ExtraData != oldCoordinate.ExtraData)
                    {
                        item.ExtraData = oldCoordinate.ExtraData;
                        item.UpdateState(false, true);
                        if (item.GetBaseItem().InteractionType == InteractionType.gate)
                        {
                            item.GetRoom().GetGameMap().updateMapForItem(item);
                        }

                        foreach (Point tile in item.GetCoords)
                        {
                            RoomUser user = item.GetRoom().GetRoomUserManager().GetUserForSquare(tile.X, tile.Y);
                            if (user != null)
                            {
                                user.SqState = item.GetRoom().GetGameMap().GameMap[tile.X, tile.Y];
                            }
                        }

                        itemIsMoved = true;
                    }
                }

                // SI LA ROTACIÓN DEL FURNI HA CAMBIADO, ENTONCES DEBEMOS MOVER DIRECTAMENTE EL ITEM A LA BALDOSA EN CUESTIÓN
                if (FurniDirection == 1)
                {
                    if (item.Rot != oldCoordinate.Rot)
                    {
                        if (roomItemHandler.SetFloorItem(null, item, oldCoordinate.X, oldCoordinate.Y, oldCoordinate.Rot, false, false, true, false, true))
                        {
                            return(true);
                        }
                    }
                }

                // EN CASO DE NO HABERSE MOVIDO LA ROTACIÓN, HACEMOS EL EFECTO CHACHI PIRULI DE MOVER EL ITEM ^^
                if (FurniPosition == 1)
                {
                    if (item.GetX != oldCoordinate.X || item.GetY != oldCoordinate.Y || item.TotalHeight != oldCoordinate.Height)
                    {
                        item.SetHeight(oldCoordinate.Height);
                        if (roomItemHandler.SetFloorItem(null, item, oldCoordinate.X, oldCoordinate.Y, item.Rot, false, false, true, true, true))
                        {
                            itemIsMoved = true;
                        }
                    }
                }
            }

            return(itemIsMoved);
        }