Пример #1
0
        //TODO: Ghost furni depth
        internal void DisplayGhostItem(Furni furni)
        {
            try
            {
                GameScreenManager.Instance.GetInventoryManager().Close();

                ghostMeubi = new GhostMeubi(_content, furni.GetItemId(), furni.GetSpriteId(),
                                            () => { ghostMeubi = null; GameScreenManager.Instance.GetInventoryManager().Open(); },
                                            () => { RetroEnvironment.GetGame().GetClientManager().SendPacket(new PlaceObjectEvent(ghostMeubi.GetItemId(), floorDesign.GetMouseTile(roomOffset).GetCoordinate().X, floorDesign.GetMouseTile(roomOffset).GetCoordinate().Z, ghostMeubi.GetRotation())); });
                placeDelay.Start();
            }
            catch (Exception ex)
            {
                if (furni == null)
                {
                    Logger.Error("Ghost Furni does not exist!");
                }
                else if (roomOffset == null)
                {
                    Logger.Error("Room offset does not exist!");
                }
                else
                {
                    Logger.Error(ex);
                }
            }
        }
Пример #2
0
 internal void SetMoveGhostItem(Meubi meubi)
 {
     meubi.Hide();
     ghostMeubi = new GhostMeubi(_content, meubi.GetItemId(), meubi.GetData().id,
                                 () => { ghostMeubi = null; meubi.Show(); },
                                 () => { RetroEnvironment.GetGame().GetClientManager().SendPacket(new MoveObjectEvent(ghostMeubi.GetItemId(), (int)floorDesign.GetMouseTile(roomOffset).GetCoordinate().X, (int)floorDesign.GetMouseTile(roomOffset).GetCoordinate().Z, ghostMeubi.GetRotation())); ghostMeubi = null; });
     placeDelay.Start();
 }
Пример #3
0
 public RoomManager(ContentManager content)
 {
     _content            = content;
     meubis              = new List <Meubi>();
     idSortedMeubis      = new Dictionary <int, Meubi>();
     floorDesign         = null;
     door                = null;
     ghostMeubi          = null;
     placeDelay          = new Timer(200);
     placeDelay.Elapsed += PlaceDelay_Elapsed;
 }
Пример #4
0
        public void Update(GameTime gameTime)
        {
            var mouseState = Mouse.GetState();

            if (mouseState.LeftButton == ButtonState.Pressed)
            {
                GameScreenManager.Instance.GetFurniManager().SelectItem(null);
            }

            foreach (Meubi meubi in idSortedMeubis.Values)
            {
                meubi.Update(gameTime, roomOffset);
            }

            if (ghostMeubi != null && !ghostMeubi.IsAlive())
            {
                ghostMeubi = null;
            }
            if (ghostMeubi != null)
            {
                ghostMeubi.Update(gameTime, roomOffset, floorDesign);
            }
        }