Exemplo n.º 1
0
        // GET: DoorItems/Edit/5
        public ActionResult EditSliderItem(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DoorItem doorItem = db.DoorItems.Find(id);

            if (doorItem == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Customer     = db.Quotes.Where(x => x.QuoteID == doorItem.QuoteID).Select(x => x.Customer).First();
            ViewBag.ColorTypeID  = new SelectList(db.ColorTypes, "ColorTypeID", "ColorTypeName", doorItem.ColorTypeID);
            ViewBag.DesignTypeID = new SelectList(db.DesignTypes, "DesignTypeID", "DesignTypeName", doorItem.DesignTypeID);
            ViewBag.DoorTypeID   = new SelectList(db.DoorTypes.Where(x => x.DoorTypeName.ToUpper().Contains("SLIDER")), "DoorTypeID", "DoorTypeName", doorItem.DoorTypeID);
            ViewBag.LockTypeID   = new SelectList(db.LockTypes, "LockTypeID", "LockTypeName", doorItem.LockTypeID);
            ViewBag.TrackTypeID  = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName", doorItem.TrackTypes);

            ViewBag.HingeType             = new SelectList(db.HingeTypes, "HingeTypeID", "HingeTypeName", doorItem.HingeType);
            ViewBag.SliderTopTrackType    = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName", doorItem.SliderTopTrackType);
            ViewBag.SliderBottomTrackType = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName", doorItem.SliderBottomTrackType);
            ViewBag.SliderSideChannelType = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName", doorItem.SliderSideChannelType);

            ViewBag.QuoteID = doorItem.QuoteID;
            return(View(doorItem));
        }
Exemplo n.º 2
0
        public void RemoveDoorItem(Door door, Transform transform)
        {
            DoorItem item = door.GetDoorItem(transform);

            door.Items.Remove(item);
            item.UpdateSign(string.Empty);
        }
Exemplo n.º 3
0
        // GET: DoorItems/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DoorItem doorItem = db.DoorItems.Find(id);

            if (doorItem == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ColorTypeID  = new SelectList(db.ColorTypes, "ColorTypeID", "ColorTypeName", doorItem.ColorTypeID);
            ViewBag.DesignTypeID = new SelectList(db.DesignTypes, "DesignTypeID", "DesignTypeName", doorItem.DesignTypeID);
            ViewBag.DoorTypeID   = new SelectList(db.DoorTypes, "DoorTypeID", "DoorTypeName", doorItem.DoorTypeID);
            ViewBag.LockTypeID   = new SelectList(db.LockTypes, "LockTypeID", "LockTypeName", doorItem.LockTypeID);
            ViewBag.TrackTypeID  = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName", doorItem.TrackTypes);

            ViewBag.HingeType                  = new SelectList(db.HingeTypes, "HingeTypeID", "HingeTypeName", doorItem.HingeType);
            ViewBag.SliderTopTrackType         = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName", doorItem.SliderTopTrackType);
            ViewBag.SliderBottomTrackType      = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName", doorItem.SliderBottomTrackType);
            ViewBag.SliderSideChannelTrackType = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName", doorItem.SliderSideChannelType);

            ViewBag.QuoteID = new SelectList(db.Quotes, "QuoteID", "Customer", doorItem.QuoteID);
            return(View(doorItem));
        }
Exemplo n.º 4
0
        public ActionResult CreateSliderItem([Bind(Include = "DoorItemID,QuoteID,Description,ColorTypeID,LockTypeID,Height,Width1,Width2,Width3,SliderTopTrack,SliderBottomTrack,SliderSideChannel,SliderFs,SliderZs,SliderBugStrip,Cost,DoorTypeID,DesignTypeID,LockHeight,SliderTopTrackWidth,SliderBottomTrackWidth,SliderSideChannelWidth,TrackTypes,F,Z,SliderTopTrackType,SliderBottomTrackType,SliderSideChannelType,HingeType,BugStrip,Required")] DoorItem doorItem)
        {
            if (ModelState.IsValid)
            {
                db.DoorItems.Add(doorItem);
                db.SaveChanges();
                return(RedirectToAction("QuoteDetails/" + doorItem.QuoteID, "Quotes"));
            }

            ViewBag.Customer     = db.Quotes.Where(x => x.QuoteID == doorItem.QuoteID).Select(x => x.Customer).First();
            ViewBag.ColorTypeID  = new SelectList(db.ColorTypes, "ColorTypeID", "ColorTypeName", doorItem.ColorTypeID);
            ViewBag.DesignTypeID = new SelectList(db.DesignTypes, "DesignTypeID", "DesignTypeName", doorItem.DesignTypeID);
            ViewBag.DoorTypeID   = new SelectList(db.DoorTypes.Where(x => x.DoorTypeName.ToUpper().Contains("SLIDER")), "DoorTypeID", "DoorTypeName", doorItem.DoorTypeID);
            ViewBag.LockTypeID   = new SelectList(db.LockTypes, "LockTypeID", "LockTypeName", doorItem.LockTypeID);
            ViewBag.TrackTypeID  = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName");

            ViewBag.HingeType             = new SelectList(db.HingeTypes, "HingeTypeID", "HingeTypeName");
            ViewBag.SliderTopTrackType    = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName");
            ViewBag.SliderBottomTrackType = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName");
            ViewBag.SliderSideChannelType = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName");


            ViewBag.QuoteID = doorItem.QuoteID;

            return(View(doorItem));
        }
Exemplo n.º 5
0
        public ActionResult DeleteConfirmed(int id)
        {
            DoorItem doorItem = db.DoorItems.Find(id);

            db.DoorItems.Remove(doorItem);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemplo n.º 6
0
        private IList <DoorItem> ReadDoorsData(BinaryReader r)
        {
            var doors = new DoorItem[Data.DoorsCount];

            for (int i = 0; i < Data.DoorsCount; i++)
            {
                doors[i] = ParseDoorData(r);
            }

            return(doors);
        }
Exemplo n.º 7
0
 public static void AddDoor(int doorId, DoorItem doorInfo, Exiled.API.Features.Player player)
 {
     if (CBDPlugin.Doors.ContainsKey(doorId))
     {
         CBDPlugin.Doors[doorId].MaxUses += doorInfo.MaxUses;
     }
     else
     {
         CBDPlugin.Doors.Add(doorId, doorInfo);
     }
     CBDPlugin.DoorsBlocked++;
 }
Exemplo n.º 8
0
        /// <summary>
        /// 工人到位后开始拆除
        /// </summary>
        /// <param name="commandType"></param>
        /// <param name="finish"></param>
        /// <returns></returns>
        public IEnumerator Remove(BuildCommandType commandType, Action finish)
        {
            switch (commandType)
            {
            case BuildCommandType.RemoveGroundwork:
                if (HaveGroundwork)
                {
                    yield return(StartCoroutine(mGroundworkItem.Remove()));

                    mGroundworkItem = null;
                }
                break;

            case BuildCommandType.RemoveBuildingMaterials:
                if (HaveWall)
                {
                    yield return(StartCoroutine(WallItem.Remove()));

                    WallItem = null;
                    foreach (var item in TilesManager.GetArroundTiles(IndexX, IndexY))
                    {
                        if (item.HaveWall)
                        {
                            item.WallItem.SetWallImage(false);
                        }
                    }
                }
                else if (HaveDoor)
                {
                    yield return(StartCoroutine(DoorItem.Remove()));

                    DoorItem = null;
                    foreach (var item in TilesManager.GetArroundTiles(IndexX, IndexY))
                    {
                        if (item.HaveWall)
                        {
                            item.WallItem.SetWallImage(false);
                        }
                    }
                }
                break;

            case BuildCommandType.RemoveRoom:
                break;

            case BuildCommandType.RemoveDecorate:
                break;
            }
            finish();
        }
Exemplo n.º 9
0
        public ActionResult DetailsDoorItem(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DoorItem doorItem = db.DoorItems.Find(id);

            if (doorItem == null)
            {
                return(HttpNotFound());
            }
            return(View(doorItem));
        }
Exemplo n.º 10
0
        public void AddDoorItem(Door door, DoorItem item)
        {
            if (door.Items == null)
            {
                door.Items = new List <DoorItem>();
            }

            door.Items.Add(item);
            if (door.TryGetDoorOwners(out CSteamID steamID, out CSteamID groupID))
            {
                item.ChangeTransformOwner(steamID, groupID);
            }
            item.UpdateSign(string.Empty);
        }
Exemplo n.º 11
0
        // POST: DoorItems/Delete/5
        public ActionResult DeleteDoorItemConfirmed(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            DoorItem doorItem = db.DoorItems.Find(id);
            var      quoteid  = doorItem.QuoteID;

            db.DoorItems.Remove(doorItem);
            db.SaveChanges();

            return(RedirectToAction("QuoteDetails/" + quoteid, "Quotes"));
        }
Exemplo n.º 12
0
        private DoorItem ParseDoorData(BinaryReader r)
        {
            var d = new DoorItem();

            d.NextObjectID = r.ReadUInt16();

            ushort data = r.ReadUInt16();

            d.IsChoppingDestructible = ((data >> 8) & oneBitMask) == 1;
            d.IsFireballDestructible = ((data >> 7) & oneBitMask) == 1;
            d.HasButton     = ((data >> 6) & oneBitMask) == 1;
            d.OpenDirection = (OpenDirection)((data >> 8) & oneBitMask);

            d.OrnamentationID = ((data >> 1) & fourBitsMask);

            d.DoorType = (DoorTypeIndex)(data & oneBitMask);
            return(d);
        }
Exemplo n.º 13
0
        public ActionResult DetailsSliderItem(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DoorItem doorItem = db.DoorItems.Find(id);

            if (doorItem == null)
            {
                return(HttpNotFound());
            }

            ViewBag.SliderTop         = db.TrackTypes.Where(x => x.TrackTypeID == doorItem.SliderTopTrackType).Select(x => x.TrackTypeName).First();
            ViewBag.SliderBottom      = db.TrackTypes.Where(x => x.TrackTypeID == doorItem.SliderBottomTrackType).Select(x => x.TrackTypeName).First();
            ViewBag.SliderSideChannel = db.TrackTypes.Where(x => x.TrackTypeID == doorItem.SliderSideChannelType).Select(x => x.TrackTypeName).First();

            return(View(doorItem));
        }
Exemplo n.º 14
0
        public ActionResult Edit([Bind(Include = "DoorItemID,QuoteID,Description,ColorTypeID,LockTypeID,Height,Width1,Width2,Width3,SliderTopTrack,SliderBottomTrack,SliderSideChannel,SliderFs,SliderZs,SliderBugStrip,Cost,DoorTypeID,DesignTypeID,LockHeight,SliderTopTrackWidth,SliderBottomTrackWidth,SliderSideChannelWidth,TrackTypes,F,Z,SliderTopTrackType,SliderBottomTrackType,SliderSideChannelType,HingeType,BugStrip,Required")] DoorItem doorItem)
        {
            if (ModelState.IsValid)
            {
                db.Entry(doorItem).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.ColorTypeID  = new SelectList(db.ColorTypes, "ColorTypeID", "ColorTypeName", doorItem.ColorTypeID);
            ViewBag.DesignTypeID = new SelectList(db.DesignTypes, "DesignTypeID", "DesignTypeName", doorItem.DesignTypeID);
            ViewBag.DoorTypeID   = new SelectList(db.DoorTypes, "DoorTypeID", "DoorTypeName", doorItem.DoorTypeID);
            ViewBag.LockTypeID   = new SelectList(db.LockTypes, "LockTypeID", "LockTypeName", doorItem.LockTypeID);
            ViewBag.TrackTypeID  = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName", doorItem.TrackTypes);

            ViewBag.HingeType                  = new SelectList(db.HingeTypes, "HingeTypeID", "HingeTypeName", doorItem.HingeType);
            ViewBag.SliderTopTrackType         = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName", doorItem.SliderTopTrackType);
            ViewBag.SliderBottomTrackType      = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName", doorItem.SliderBottomTrackType);
            ViewBag.SliderSideChannelTrackType = new SelectList(db.TrackTypes, "TrackTypeID", "TrackTypeName", doorItem.SliderSideChannelType);

            ViewBag.QuoteID = new SelectList(db.Quotes, "QuoteID", "Customer", doorItem.QuoteID);
            return(View(doorItem));
        }
Exemplo n.º 15
0
        /// <summary>
        /// 预建造
        /// </summary>
        /// <param name="commandType"></param>
        /// <param name="item"></param>
        /// <param name="contents">建造物所包含的格子(房间等占多个格子)</param>
        public void PreBuild(BuildCommandType commandType, BuildingItem item, List <TileItem> contents = null)
        {
            //生成新的建造物并放置在指定层
            switch (commandType)
            {
            case BuildCommandType.BuildGroundwork:
                mGroundworkItem = (GroundworkItem)item;
                mGroundworkItem.BindTileItem(this);
                break;

            case BuildCommandType.BuildWall:
                WallItem = (WallItem)item;
                WallItem.BindTileItem(this);
                if (BelongRoom)     //在已有房间内建墙,墙壁不属于房间的一部分
                {
                    RoomItem.UnBindTileItem(this);
                    RoomItem = null;
                }
                break;

            case BuildCommandType.BuildDoor:
                DoorItem = (DoorItem)item;
                DoorItem.BindTileItem(this);
                break;

            case BuildCommandType.BuildRoom:
                RoomItem = (RoomItem)item;
                RoomItem.BindTileItem(contents);
                break;

            case BuildCommandType.BuildDecorate:
                break;
            }

            mPreBuildingItem = item;
            mPreBuildingItem.PreBuild();
        }
Exemplo n.º 16
0
        public IEnumerator <float> LockDoor(Door door, Exiled.API.Features.Player player)
        {
            yield return(Timing.WaitForOneFrame);

            yield return(Timing.WaitUntilFalse(() => door.Networklocked));

            var doorItem = new DoorItem(door, 0);

            AddDoor(door.GetInstanceID(), doorItem, player);

            player.Inventory.items.RemoveAt(player.Inventory.GetItemIndex());
            CBDPlugin.DoorsBlocked++;
            if (!Config.SilentBlock)
            {
                door.UpdateLock();
            }

            var random = (Config.MinTime > 0) ? (Config.MinTime < Config.MaxTime) ? UnityEngine.Random.Range(Config.MinTime, Config.MaxTime) : (Config.MinTime == Config.MaxTime) ? Config.MinTime : Config.MinTime : 5f;

            yield return(Timing.WaitForSeconds(random));

            CBDPlugin.Doors.Remove(door.GetInstanceID());
            door.UpdateLock();
        }
        public void Execute(IRocketPlayer caller, string[] command)
        {
            UnturnedPlayer player = (UnturnedPlayer)caller;

            if (command.Length < 1)
            {
                MessageHelper.Send(caller, "LinkDoorFormat");
                return;
            }

            if (!int.TryParse(command[0], out int doorId))
            {
                MessageHelper.Send(caller, "LinkDoorWrongDoorId", command[0]);
                return;
            }

            DoorItem doorItem = new DoorItem();
            string   name     = string.Empty;
            ulong    ownerId  = 0;

            doorItem.Transform = RaycastHelper.GetBarricadeTransform(player.Player, out BarricadeData barricadeData, out BarricadeDrop drop);

            if (doorItem.Transform == null)
            {
                doorItem.Transform = RaycastHelper.GetStructureTransform(player.Player, out StructureData structureData);
                if (doorItem.Transform != null)
                {
                    ownerId = structureData.owner;
                    name    = structureData.structure.asset.itemName;
                    doorItem.IsBarricade = false;
                    doorItem.IsSign      = false;
                }
            }
            else
            {
                ownerId = barricadeData.owner;
                name    = barricadeData.barricade.asset.itemName;
                doorItem.IsBarricade = true;
                doorItem.IsSign      = drop.interactable is InteractableSign;
            }

            if (doorItem.Transform == null)
            {
                MessageHelper.Send(caller, "DoorItemNotLooking");
                return;
            }

            if (ownerId != player.CSteamID.m_SteamID)
            {
                MessageHelper.Send(caller, "DoorItemNotOwner", name);
                return;
            }

            if (pluginInstance.DoorService.IsDoor(doorItem.Transform))
            {
                MessageHelper.Send(caller, "DoorItemAlready", name);
                return;
            }

            Door door = pluginInstance.DoorService.GetDoor(doorId);

            if (door == null)
            {
                MessageHelper.Send(caller, "DoorNotFound", doorId);
                return;
            }

            pluginInstance.DoorService.AddDoorItem(door, doorItem);
            MessageHelper.Send(caller, "LinkDoorSuccess", name, doorId);
        }
Exemplo n.º 18
0
        private IList<DoorItem> ReadDoorsData(BinaryReader r)
        {
            var doors = new DoorItem[Data.DoorsCount];

            for (int i = 0; i < Data.DoorsCount; i++)
                doors[i] = ParseDoorData(r);

            return doors;
        }
Exemplo n.º 19
0
        private DoorItem ParseDoorData(BinaryReader r)
        {
            var d = new DoorItem();
            d.NextObjectID = r.ReadUInt16();

            ushort data = r.ReadUInt16();

            d.IsChoppingDestructible = ((data >> 8) & oneBitMask) == 1;
            d.IsFireballDestructible = ((data >> 7) & oneBitMask) == 1;
            d.HasButton = ((data >> 6) & oneBitMask) == 1;
            d.OpenDirection = (OpenDirection)((data >> 8) & oneBitMask);

            d.OrnamentationID = ((data >> 1) & fourBitsMask);
            if (d.OrnamentationID == 0)
                d.OrnamentationID = null;

            d.DoorAppearance = (data & oneBitMask) == 1;
            return d;
        }
Exemplo n.º 20
0
 public ItemData CreateDoor(DoorItem door)
 {
     ((DoorTileData)currentTile).Door = door;
     return(door);
 }
Exemplo n.º 21
0
 public IGrabableItem CreateDoor(DoorItem door)
 {
     throw new InvalidOperationException("Not supported.");
 }
Exemplo n.º 22
0
 public DoorItem(DoorItem other)
     : base(other)
 {
 }