Exemplo n.º 1
0
        public VirtualRoom GetVirtualRoom(int Id, RoomRunningState State)
        {
            if (RunningRooms.ContainsKey(Id))
            {
                return RunningRooms[Id];
            }
            else
            {
                DataRow Row = null;

                using (QueryReactor Reactor = BrickEngine.GetQueryReactor())
                {
                    Reactor.SetQuery("SELECT * FROM private_rooms WHERE id = @id LIMIT 1");
                    Reactor.AddParam("id", Id);
                    Row = Reactor.GetRow();
                }

                if (Row != null)
                {
                    VirtualRoom GeneratedRoom = new VirtualRoom(Row);

                    if (State.Equals(RoomRunningState.Alive))
                    {
                        RunningRooms.Add(GeneratedRoom.Id, GeneratedRoom);
                        GeneratedRoom.Activate();

                        BrickEngine.GetScreenWriter().PaintScreen(ConsoleColor.Green, IO.PaintType.ForeColor);
                        BrickEngine.GetScreenWriter().ScretchLine("[" + GeneratedRoom.Id + "] Room cached.", IO.WriteType.Outgoing);
                    }

                    return GeneratedRoom;
                }

                return null;
            }
        }
Exemplo n.º 2
0
        public void Activate()
        {
            RunningState = RoomRunningState.Alive;

            RunningEngine = new VirtualRoomEngine(Id);
            RunningEngine.Prepare();
        }