// 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)); }
public void RemoveDoorItem(Door door, Transform transform) { DoorItem item = door.GetDoorItem(transform); door.Items.Remove(item); item.UpdateSign(string.Empty); }
// 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)); }
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)); }
public ActionResult DeleteConfirmed(int id) { DoorItem doorItem = db.DoorItems.Find(id); db.DoorItems.Remove(doorItem); db.SaveChanges(); return(RedirectToAction("Index")); }
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); }
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++; }
/// <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(); }
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)); }
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); }
// 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")); }
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); }
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)); }
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)); }
/// <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(); }
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); }
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; }
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; }
public ItemData CreateDoor(DoorItem door) { ((DoorTileData)currentTile).Door = door; return(door); }
public IGrabableItem CreateDoor(DoorItem door) { throw new InvalidOperationException("Not supported."); }
public DoorItem(DoorItem other) : base(other) { }