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; } }
public void Activate() { RunningState = RoomRunningState.Alive; RunningEngine = new VirtualRoomEngine(Id); RunningEngine.Prepare(); }