public GameObject[] RoomSetup(Level level, Transform roomsParent) { int num_rooms = level.rooms.Length; Rooms = new GameObject[num_rooms]; foreach (RoomLink l in level.links) { level.rooms[l.roomSrc].doorsPosList.Add(l.roomSrcExit); l.roomSrcFacing = RoomLink.CalculateFacing(l.roomSrcExit, level.rooms[l.roomSrc]); level.rooms[l.roomDst].doorsPosList.Add(l.roomDstExit); l.roomDstFacing = RoomLink.CalculateFacing(l.roomDstExit, level.rooms[l.roomDst]); } for (int i = 0; i < num_rooms; i++) { Rooms[i] = new GameObject("Room" + i); Rooms[i].transform.SetParent(roomsParent); this.SingleRoomSetup(Rooms[i], level.rooms[i]); Rooms[i].transform.Translate(level.positions[i]); } foreach (RoomLink l in level.links) { this.SingleLinkSetup(l, Rooms); } return(Rooms); }
public ChatWindow(Chat parrent, RoomLink link) { InitializeComponent(); DataContext = this; //aby šel bindovat title okna Parrent = parrent; Link = link; RefreshTime = 20; refresher = new System.Timers.Timer(RefreshTime * 1000); refresher.Elapsed += (object sender, ElapsedEventArgs ea) => { Logger.dbgOut("Refresh"); //tohle tu je, protoze potrebuju kolekci updatovat z jinýho vlákna Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate() { List<Message> ms = parrent.getMessages(); Messages.Clear(); foreach(Message m in ms) { Messages.Add(m); } } ); }; Messages = new MessageCollection(parrent.getMessages()); lbChatView.ItemsSource = Messages; //zapnutí obnovování zpráv refresher.Start(); }
public Chat(RoomLink roomLink) { Link = roomLink; xComm = XChatCommunicator.getCommunicator(); //vytvoření okna openChatRoom(); }
public void Handle(JoinedRoom message) { var room = message.Room; var roomUri = String.Format("/chatroom?room={0}", room.Name); var link = new RoomLink { RoomName = room.Name, DisplayName = room.Name, Source = new Uri(roomUri, UriKind.RelativeOrAbsolute) }; this.chatGroup.Links.Add(link); }
public void SingleLinkSetup(RoomLink roomLink, GameObject[] roomList) { int src = roomLink.roomSrc; Vector3 src_pos = new Vector3(roomLink.roomSrcExit.x, roomLink.roomSrcExit.y, 0f); Quaternion src_rot = RoomLink.GetFacingRotation(roomLink.roomSrcFacing); int dst = roomLink.roomDst; Vector3 dst_pos = new Vector3(roomLink.roomDstExit.x, roomLink.roomDstExit.y, 0f); Quaternion dst_rot = RoomLink.GetFacingRotation(roomLink.roomDstFacing); GameObject door = outerWallDoorTiles[Random.Range(0, outerWallDoorTiles.Length)]; GameObject src_door = Instantiate(door, src_pos, src_rot) as GameObject; src_door.transform.SetParent(Rooms[src].transform, false); GameObject dst_door = Instantiate(door, dst_pos, dst_rot) as GameObject; dst_door.transform.SetParent(Rooms[dst].transform, false); setDoorLink(src_door, dst_door); setDoorLink(dst_door, src_door); }
// -------------------------------------------------------------------------------- public void OnEnable() { m_roomLink = target as RoomLink; }
public bool equiv(RoomLink other) { return((r1 == other.r1 && r2 == other.r2) || (r1 == other.r2 && r2 == other.r1)); }
/// <summary> /// Metoda vytvoří a otevře nové okno pro zadanou chatovací místnost. /// Nové okno poběží v samostaném vlákně. /// </summary> /// <param name="roomName">Jméno místnosti - zatím, v budoucnu se nejspíš bude předávat víc parametrů.</param> private void openChatRoom(RoomLink link) { mainApp.newRoom(link); }
/// <summary> /// Metoda slouží k vytvoření nové chatovací místnosti. /// </summary> public void newRoom(RoomLink link) { Logger.dbgOut("Otevírám místnost " + link.Name+"."); //Thread t = new Thread(() => //{ // Chat.Chat chat = new Chat.Chat(link); // System.Windows.Threading.Dispatcher.Run(); //}); //rooms.Add(t); //t.SetApartmentState(ApartmentState.STA); //t.Start(); rooms.Add(new Chat.Chat(link)); Logger.dbgOut("Počet otevřených místností: " + rooms.Count+"."); }
public TriggerTraverser(RoomLink link, RoomNetwork roomnet, TraversedCallback callback) : base(link, roomnet) { this.callback = callback; }