예제 #1
0
        public List <RoomViewModel> GetRoomListView(string userName)
        {
            //int RoomNo = 0;
            //List<string> PeopleNames = new List<string>();
            //string Status = "No";
            PersonBusinessLayer personBal = new PersonBusinessLayer();
            List <Person>       people    = personBal.GetPeople();
            int dormId = personBal.GetDormId(userName);

            List <int> roomNoList = new List <int>();
            RoomLayer  roomBal    = new RoomLayer();

            foreach (Room room in roomBal.GetRoom())
            {
                if (room.Dorm_ID == dormId)
                {
                    Rooms.Add(new RoomViewModel(room.Floor + room.Room_number, room.Person, room.Status, room.Room_ID));
                }
            }

            //foreach (int roomNo in roomNoList)
            //{
            //    foreach (Person person in people)
            //    {

            //        if(roomNo == person.roo)
            //    }
            //}

            return(Rooms);
        }
예제 #2
0
        public void PropagateNodes()
        {
            GameRoom gr = (GameRoom)Activator.CreateInstance(currentRoom.GetType());

            selectedLayer = gr.Layers[0];
            int currentDepth = 0;

            foreach (RoomLayer rl in gr.Layers)
            {
                DarkTreeNode dtn = new DarkTreeNode(rl.Name);
                dtn.Tag = dtn;
                dtn.Tag = "";

                if (rl.LayerType == RoomLayer.LayerTypes.typeObject)
                {
                    dtn.Icon = (System.Drawing.Bitmap)Properties.Resources.ResourceManager.GetObject("WorldLocal_16x");
                }
                else if (rl.LayerType == RoomLayer.LayerTypes.typeAsset)
                {
                    dtn.Icon = (System.Drawing.Bitmap)Properties.Resources.ResourceManager.GetObject("Image_16x");
                }
                else
                {
                    dtn.Icon = (System.Drawing.Bitmap)Properties.Resources.ResourceManager.GetObject("MapLineLayer_16x");
                }

                rl.Depth      = currentDepth;
                currentDepth += 100;
                roomLayers.Add(rl);
                lt?.dtv.Nodes[0].Nodes.Add(dtn);
            }
        }
예제 #3
0
        private void toggleToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // toggle layer visibility
            // if (f.roomLayers.Count > 0)
            // MessageBox.Show(f.roomLayers.Count.ToString());
            {
                RoomLayer rl = f.roomLayers.FirstOrDefault(x => x.Name == selectedNode.Text);
                rl.Visible = !rl.Visible;

                if (!rl.Visible)
                {
                    selectedNode.Icon = Properties.Resources.Visible_16xSM;
                }
                else
                {
                    if (rl.LayerType == RoomLayer.LayerTypes.typeObject)
                    {
                        selectedNode.Icon =
                            (System.Drawing.Bitmap)Properties.Resources.ResourceManager.GetObject("WorldLocal_16x");
                    }
                    else if (rl.LayerType == RoomLayer.LayerTypes.typeAsset)
                    {
                        selectedNode.Icon =
                            (System.Drawing.Bitmap)Properties.Resources.ResourceManager.GetObject("Image_16x");
                    }
                    else
                    {
                        selectedNode.Icon =
                            (System.Drawing.Bitmap)Properties.Resources.ResourceManager.GetObject("MapLineLayer_16x");
                    }
                }

                dtv.Invalidate();
            }
        }
예제 #4
0
        //send message to all room
        public ActionResult CheckAllRoom(MessageHTML m)
        {
            MessageLayer   memlayer = new MessageLayer();
            List <Message> mlist    = memlayer.GetMessage();

            DormLayer layer       = new DormLayer();
            Dorm      dorm        = layer.GetDorm(Session["UserName"].ToString());
            int       sender_dorm = dorm.Dorm_ID;

            int         mlistid  = mlist.Count;
            Message     mem      = new Message();
            RoomLayer   RoomDB   = new RoomLayer();
            List <Room> RoomList = RoomDB.GetStatusRoom(); //only room that have person live

            foreach (Room r in RoomList)
            {
                if (r.Dorm_ID == sender_dorm)
                {
                    PersonLayer   PL            = new PersonLayer();
                    List <Person> personoomList = PL.GetPerson();
                    foreach (Person person in personoomList)
                    {
                        if (person.Room_ID == r.Room_ID)
                        {
                            mem = new Message();
                            mem.Receiver_Username = person.Username;
                            mem.Sender_Username   = Session["UserName"].ToString();
                            mem.MessageID         = mlistid + 1;
                            mem.Title             = m.Subject;
                            mem.Text   = m.Message;
                            mem.Isread = 0;
                            mem.Date   = DateTime.Now.ToString("dd-MM-yyyy") + " " +
                                         DateTime.Today.ToString("HH:mm:ss tt"); //Date + Time

                            db.Message.Add(mem);
                            db.SaveChanges();
                            mlistid++;
                        }
                    }
                }
            }


            //return mem.Receiver_Username + " " + mem.Sender_Username + " " +
            //   " " + mem.Date ;
            return(RedirectToAction("index", new
            {
                action = 1
            }));
        }
예제 #5
0
        private void darkTreeView1_SelectedNodesChanged(object sender, EventArgs e)
        {
            if (darkTreeView1.SelectedNodes.Count > 0)
            {
                DarkTreeNode dtn = darkTreeView1.SelectedNodes[0];
                if (dtn.Tag != null && (string)dtn?.Tag != "folder")
                {
                    f.selectedLayer = f.roomLayers.FirstOrDefault(x => x.Name == dtn.Text);

                    // Activate / deactive tile tool now
                    RoomLayer l = f.selectedLayer;

                    if (l.LayerType == RoomLayer.LayerTypes.typeTile)
                    {
                        // give him a tileset
                        form.ww.currentTileset = ((TileLayer)l).Tileset;

                        // also give hime a bitmap which we need to get first
                        Texture2D    tex          = form.drawTest1.Editor.Content.Load <Texture2D>(Path.GetFullPath("../../../SimplexRpgEngine3/Content/bin/Windows/Sprites/Tilesets/" + ((TileLayer)l).Tileset.Name));
                        MemoryStream memoryStream = new MemoryStream();
                        tex.SaveAsPng(memoryStream, tex.Width, tex.Height);

                        Bitmap bmp = new Bitmap(memoryStream);

                        // we have our bitmap now we pass it

                        form.ww.currentTilesetBitmap = bmp;
                        form.ww.currentTileset       = ((TileLayer)l).Tileset;
                        form.ww.KillMe();

                        form.drawTest1.lastLayer = l;
                    }

                    if (l.LayerType == RoomLayer.LayerTypes.typeObject)
                    {
                        form.ww.currentTileset         = null;
                        form.w.Enabled                 = true;
                        form.drawTest1.currentAutotile = null;
                    }
                }
            }
        }
예제 #6
0
        public void LoadGame(string path)
        {
            bool flag = false;

            // First we f**k current scene
            ClearAll();


            // Load layers
            if (lt.dtv.Nodes.Count > 0)
            {
                lt.dtv.Nodes[0].Nodes.Clear();
            }

            // Prepare XML serializer
            // Then we load raw data
            Root          root    = new Root();
            XmlSerializer ser     = new XmlSerializer(typeof(Root), Form1.reflectedTypes.ToArray());
            StreamReader  w       = new StreamReader(path);
            Root          rawData = (Root)ser.Deserialize(w);

            // First load back room itself
            Form1.width           = (int)rawData.Room.Size.X;
            Form1.height          = (int)rawData.Room.Size.Y;
            Form1.ActiveForm.Text = "Simplex RPG Engine / " + rawData.Room.Name;

            currentRoom = rawData.Room;

            // if (currentRoom != null)
            // {
            GameRoom gr = (GameRoom)Activator.CreateInstance(currentRoom.GetType());

            selectedLayer = gr.Layers[0];
            int currentDepth = 0;

            foreach (RoomLayer rl in gr.Layers)
            {
                DarkTreeNode dtn = new DarkTreeNode(rl.Name);
                dtn.Tag = dtn;
                dtn.Tag = "";

                if (rl.LayerType == RoomLayer.LayerTypes.typeObject)
                {
                    dtn.Icon = (System.Drawing.Bitmap)Properties.Resources.ResourceManager.GetObject("WorldLocal_16x");
                }
                else if (rl.LayerType == RoomLayer.LayerTypes.typeAsset)
                {
                    dtn.Icon = (System.Drawing.Bitmap)Properties.Resources.ResourceManager.GetObject("Image_16x");
                }
                else
                {
                    dtn.Icon = (System.Drawing.Bitmap)Properties.Resources.ResourceManager.GetObject("MapLineLayer_16x");
                }

                rl.Depth      = currentDepth;
                currentDepth += 100;
                roomLayers.Add(rl);
                lt?.dtv.Nodes[0].Nodes.Add(dtn);
            }

            // we need to initialize layers by type
            foreach (RoomLayer rl in roomLayers)
            {
                if (rl.LayerType == RoomLayer.LayerTypes.typeTile)
                {
                    // Start with empty cell data and load stuff later on
                    ((TileLayer)rl).Data = new int[(int)currentRoom.Size.X / 32, (int)currentRoom.Size.Y / 32];

                    // Now select correct tileset and assign it to this.. well tileset
                    Tileset tl = tilesets.FirstOrDefault(x => x.Name == ((TileLayer)rl).TilelistName);

                    // this can fail so check for that
                    if (tl != null)
                    {
                        // also we need to load textures for the tileset
                        // tl.AutotileLib =

                        // all good
                        ((TileLayer)rl).Tileset = tl;
                    }
                }
            }


            // Time to load babies
            foreach (GameObject g in rawData.Objects)
            {
                Spritesheet s = Sprites.FirstOrDefault(x => x.Name == g.Sprite.TextureSource);

                g.Sprite.Texture            = s.Texture;
                g.Sprite.ImageRectangle     = new Microsoft.Xna.Framework.Rectangle(0, 0, s.CellWidth, s.CellHeight);
                g.Sprite.TextureRows        = s.Rows;
                g.Sprite.TextureCellsPerRow = s.Texture.Width / s.CellWidth;
                g.Sprite.ImageSize          = new Vector2(s.CellWidth, s.CellHeight);
                g.Sprite.FramesCount        = (s.Texture.Width / s.CellWidth) * (s.Texture.Height / s.CellHeight) - 1;
                g.FramesCount  = g.Sprite.FramesCount - 1;
                g.Sprite.cellW = s.CellHeight;
                g.Sprite.cellH = s.CellWidth;

                RoomLayer rt = roomLayers.FirstOrDefault(x => x.Name == g.LayerName);
                g.Layer = (ObjectLayer)rt;

                g.Sprite.UpdateImageRectangle();
                g.UpdateState();
                g.UpdateColliders();

                // Need to give object OriginalType !!!
                g.OriginalType = Type.GetType(g.TypeString);

                g.EvtCreate();
                g.EvtLoad();

                g.Layer.Objects.Add(g);
                sh.RegisterObject(g);
            }

            // Load tiles
            foreach (Tile t in rawData.Tiles)
            {
                RoomLayer correctLayer = roomLayers.FirstOrDefault(x => x.Name == t.TileLayerName);

                if (correctLayer != null)
                {
                    TileLayer crt = (TileLayer)correctLayer;
                    t.TileLayer = crt;
                    crt.Tiles.Add(t);
                }
                else
                {
                    Debug.WriteLine("Tile could not be loaded - TileLayerName is wrong");
                }
            }

            // Now update all tiles
            Texture2D ttt = Editor.Content.Load <Texture2D>(Path.GetFullPath("../../../SimplexRpgEngine3/Content/bin/Windows/Sprites/Tilesets/" + "tileset0"));

            foreach (RoomLayer rl in roomLayers)
            {
                if (rl is TileLayer)
                {
                    TileLayer crt = (TileLayer)rl;

                    foreach (Tile t in crt.Tiles)
                    {
                        t.SourceTexture = ttt;
                        Autotile.UpdateTile(t, crt);
                    }
                }
            }

            w.Close();
        }
예제 #7
0
        //send message to specific room

        public ActionResult CheckSpecificRoom(MessageHTML m, string receiver)
        {
            Message        mem          = new Message();
            bool           CheckRoom    = false;
            string         NotFoundRoom = "This room is available";
            MessageLayer   memlayer     = new MessageLayer();
            List <Message> mlist        = memlayer.GetMessage();


            DormLayer layer       = new DormLayer();
            Dorm      dorm        = layer.GetDorm(Session["UserName"].ToString());
            int       sender_dorm = dorm.Dorm_ID;


            /// scan username of room
            RoomLayer   Rl       = new RoomLayer();
            List <Room> roomList = Rl.GetStatusRoom(); //get only unavailable room

            foreach (Room room in roomList)
            {
                if (room.Dorm_ID == sender_dorm)
                {
                    //int.Parse(receiver)
                    String roomnum = room.Floor + room.Room_number;
                    if (roomnum == receiver)
                    {
                        PersonLayer   PL            = new PersonLayer();
                        List <Person> personoomList = PL.GetPerson();
                        foreach (Person person in personoomList)
                        {
                            if (person.Room_ID == room.Room_ID)
                            {
                                mem.Receiver_Username = person.Username;
                                CheckRoom             = true;
                            }
                        }
                    }
                }
            }
            ///

            mem.Sender_Username = Session["UserName"].ToString();
            mem.MessageID       = mlist.Count + 1;
            mem.Title           = m.Subject;
            mem.Isread          = 0;
            mem.Text            = m.Message;
            mem.Date            = DateTime.Now.ToString("dd-MM-yyyy") + " " +
                                  DateTime.Today.ToString("HH:mm:ss tt"); //Date + Time
            if (CheckRoom == true)
            {
                db.Message.Add(mem);
                db.SaveChanges();

                return(RedirectToAction("Index", new
                {
                    action = 1
                }));
            }
            else
            {
                return(View("Messenger"));
                //return NotFoundRoom;
            }

            // return mem.Receiver_Username + " " + mem.Sender_Username + " " +
            //    " " + mem.Date;
        }
예제 #8
0
        private void darkTreeView1_SelectedNodesChanged(object sender, EventArgs e)
        {
            if (darkTreeView1.SelectedNodes.Count > 0)
            {
                DarkTreeNode dtn = darkTreeView1.SelectedNodes[0];
                if (dtn.Tag != null && (string)dtn?.Tag != "folder" && dtn != lastNodeSelected)
                {
                    f.selectedLayer = f.currentRoom.Layers.FirstOrDefault(x => x.Name == dtn.Text);

                    // Activate / deactive tile tool now

                    RoomLayer l = f.selectedLayer;

                    if (l.LayerType == RoomLayer.LayerTypes.typeTile)
                    {
                        // hide object panel to free up space
                        form.sr.drawTest1.SelectedObject = null;

                        if (form.w.Visible)
                        {
                            form.w.Hide();
                            form.darkDockPanel1.Location   = new Point(form.darkDockPanel1.Location.X - form.w.Size.Width, form.darkDockPanel1.Location.Y);
                            form.darkDockPanel3.Location   = new Point(form.darkDockPanel3.Location.X - form.w.Size.Width, form.darkDockPanel3.Location.Y);
                            form.darkDockPanel4.Location   = new Point(form.darkDockPanel4.Location.X - form.w.Size.Width, form.darkDockPanel4.Location.Y);
                            form.darkDockPanel3.Size       = new Size(form.darkDockPanel3.Size.Width + form.w.Size.Width, form.darkDockPanel3.Size.Height);
                            form.darkDockPanel4.Size       = new Size(form.darkDockPanel4.Size.Width + form.w.Size.Width, form.darkDockPanel4.Size.Height);
                            form.darkStatusStrip1.Location = new Point(form.darkStatusStrip1.Location.X - form.w.Size.Width, form.darkStatusStrip1.Location.Y);
                            form.darkStatusStrip1.Size     = new Size(form.darkStatusStrip1.Size.Width + form.w.Size.Width, form.darkStatusStrip1.Size.Height);
                            form.darkDockPanel2.Visible    = false;
                        }

                        // give him a tileset
                        // MemoryStream ms = new MemoryStream();

                        form.ww.currentTileset = ((TileLayer)l).Tileset;
                        Bitmap bmp = new Bitmap(Path.GetFullPath(form.currentProject.RootPath + "/Content/Tilesets/" + ((TileLayer)l).Tileset.Name + ".png"));

                        // Bitmap bmp =
                        Texture2D tex = Sgml.tilesets.FirstOrDefault(x => x.Name == ((TileLayer)l).Tileset.Name).Texture;


                        // we have our bitmap now we pass it
                        form.ww.currentTilesetBitmap = bmp;
                        form.ww.tilesetTexture       = tex;
                        form.ww.currentTileset       = ((TileLayer)l).Tileset;
                        form.ww.KillMe();

                        form.sr.drawTest1.lastLayer        = l;
                        form.sr.drawTest1.currentTileLayer = (TileLayer)l;
                    }

                    if (l.LayerType == RoomLayer.LayerTypes.typeObject)
                    {
                        form.sr.drawTest1.currentAutotile             = null;
                        form.sr.drawTest1.TilesetSelectedRenRectangle = Rectangle.Empty;
                        form.sr.drawTest1.currentTileLayer            = null;

                        form.ww.currentTileset            = null;
                        form.w.Enabled                    = true;
                        form.sr.drawTest1.currentAutotile = null;

                        if (!form.w.Visible)
                        {
                            form.darkDockPanel1.Location   = new Point(form.darkDockPanel1.Location.X + form.w.Size.Width, form.darkDockPanel1.Location.Y);
                            form.darkDockPanel3.Location   = new Point(form.darkDockPanel3.Location.X + form.w.Size.Width, form.darkDockPanel3.Location.Y);
                            form.darkDockPanel4.Location   = new Point(form.darkDockPanel4.Location.X + form.w.Size.Width, form.darkDockPanel4.Location.Y);
                            form.darkDockPanel3.Size       = new Size(form.darkDockPanel3.Size.Width - form.w.Size.Width, form.darkDockPanel3.Size.Height);
                            form.darkDockPanel4.Size       = new Size(form.darkDockPanel4.Size.Width - form.w.Size.Width, form.darkDockPanel4.Size.Height);
                            form.darkStatusStrip1.Location = new Point(form.darkStatusStrip1.Location.X + form.w.Size.Width, form.darkStatusStrip1.Location.Y);
                            form.darkStatusStrip1.Size     = new Size(form.darkStatusStrip1.Size.Width - form.w.Size.Width, form.darkStatusStrip1.Size.Height);
                            form.darkDockPanel2.Visible    = true;
                        }

                        form.w.Show();
                    }
                }

                lastNodeSelected = dtn;
            }
        }