public IHttpActionResult PostPlacementProvider(PlacementProvider placementProvider) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.PlacementProviders.Add(placementProvider); try { db.SaveChanges(); } catch (DbUpdateException) { if (PlacementProviderExists(placementProvider.ProviderID)) { return(Conflict()); } else { throw; } } //return CreatedAtRoute("DefaultApi", new { id = placementProvider.ProviderID }, placementProvider); return(Ok(placementProvider)); }
public IHttpActionResult PutPlacementProvider(int id, PlacementProvider placementProvider) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != placementProvider.ProviderID) { return(BadRequest()); } db.Entry(placementProvider).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!PlacementProviderExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
/// <summary> /// Creates new dungeon. /// </summary> /// <param name="instanceId"></param> /// <param name="dungeonName"></param> /// <param name="itemId"></param> /// <param name="seed"></param> /// <param name="floorPlan"></param> /// <param name="creature"></param> public Dungeon(long instanceId, string dungeonName, int itemId, int seed, int floorPlan, Creature creature) { dungeonName = dungeonName.ToLower(); Log.Debug("Dungeon: Creating '{0}', item id: {1}, seed: {2}, floorPlan: {3}", dungeonName, itemId, seed, floorPlan); // Get data this.Data = AuraData.DungeonDb.Find(dungeonName); if (this.Data == null) { throw new ArgumentException("Dungeon '" + dungeonName + "' doesn't exist."); } _treasureChests = new List <Prop>(); _treasurePlacementProvider = new PlacementProvider(Placement.Treasure8, 750); this.Regions = new List <DungeonRegion>(); _clearedSections = new HashSet <int>(); this.InstanceId = instanceId; this.Name = dungeonName; this.ItemId = itemId; this.Seed = seed; this.FloorPlan = floorPlan; this.Options = XElement.Parse("<option />"); this.Creators = new List <long>(); this.RpCharacters = new List <long>(); this.PartyLeader = creature; // Only creatures who actually ENTER the dungeon at creation are considered "dungeon founders". this.Creators.AddRange(creature.Party.GetCreaturesOnAltar(creature.RegionId).Select(a => a.EntityId)); // Add the creator to the list if something went wrong on the altar check. if (this.Creators.Count == 0) { this.Creators.Add(creature.EntityId); } // Get script this.Script = ChannelServer.Instance.ScriptManager.DungeonScripts.Get(this.Name); if (this.Script == null) { Log.Warning("Dungeon: No script found for '{0}'.", this.Name); } // Generate floors this.Generator = new DungeonGenerator(this.Name, this.ItemId, this.Seed, this.FloorPlan, this.Options.ToString()); // Prepare puzzles for (int iFloor = 0; iFloor < this.Generator.Floors.Count; ++iFloor) { this.GeneratePuzzles(iFloor); } this.GenerateRegions(); }
/// <summary> /// Creates new dungeon. /// </summary> /// <param name="instanceId"></param> /// <param name="dungeonName"></param> /// <param name="itemId"></param> /// <param name="seed"></param> /// <param name="floorPlan"></param> /// <param name="creature"></param> public Dungeon(long instanceId, string dungeonName, int itemId, int seed, int floorPlan, Creature creature) { dungeonName = dungeonName.ToLower(); // Get data this.Data = AuraData.DungeonDb.Find(dungeonName); if (this.Data == null) { throw new ArgumentException("Dungeon '" + dungeonName + "' doesn't exist."); } _treasureChests = new List <TreasureChest>(); _treasurePlacementProvider = new PlacementProvider(Placement.Treasure8, 750); this.Regions = new List <DungeonRegion>(); this.InstanceId = instanceId; this.Name = dungeonName; this.ItemId = itemId; this.Seed = seed; this.FloorPlan = floorPlan; this.Options = XElement.Parse("<option />"); this.Party = new List <Creature>(); // = creature.Party; || = party; this.Party.Add(creature); this.PartyLeader = creature; if (creature.IsInParty) { // Only creatures who actually ENTER the dungeon at creation are considered "dungeon founders". this.Party.AddRange(creature.Party.OnAltar()); } // Get script this.Script = ChannelServer.Instance.ScriptManager.DungeonScripts.Get(this.Name); if (this.Script == null) { Log.Warning("Dungeon: No script found for '{0}'.", this.Name); } // Generate floors this.Generator = new DungeonGenerator(this.Name, this.ItemId, this.Seed, this.FloorPlan, this.Options.ToString()); // Prepare puzzles for (int iFloor = 0; iFloor < this.Generator.Floors.Count; ++iFloor) { this.GeneratePuzzles(iFloor); } this.GenerateRegions(); }
public IHttpActionResult DeletePlacementProvider(int id) { PlacementProvider placementProvider = db.PlacementProviders.Find(id); if (placementProvider == null) { return(NotFound()); } db.PlacementProviders.Remove(placementProvider); db.SaveChanges(); return(Ok(placementProvider)); }
public void StartPlaying() { //UIManager.Instance.ShowUI(MainUI); if (provider == null) { if (IsNonXR) { provider = new NonXRPlacementProvider(); StartPlacement(); placingArea = false; HelpUI.gameObject.SetActive(false); playArea.SetArea(); provider.FinishInit(); } else { #if UNITY_EDITOR || UNITY_STANDALONE if (UseSteamVR && UnityEngine.XR.XRDevice.isPresent) { IsUsingSteamVR = true; provider = new SteamVRPlacementProvider(); StartPlacement(); } else { provider = new TestPlacementProvider(); StartPlacement(); } #elif VUFORIA provider = new VuforiaPlacementProvider(); StartPlacement(); #elif UNITY_ANDROID StartCoroutine(WaitToStart()); #else provider = new ARPlacementProvider(); StartPlacement(); #endif } } else { SetArea(AreaType.Play); if (placingArea) { //UIManager.Instance.ShowUI(HelpUI.gameObject); LoadingUI.SetActive(false); HelpUI.gameObject.SetActive(true); } } }
protected void IntersectInflated(List <Vector3I> outHitPositions, MyCubeGrid grid) { float maxDist = 2000; var gridSizeInflate = new Vector3I(100, 100, 100); if (grid != null) { PlacementProvider.RayCastGridCells(grid, outHitPositions, gridSizeInflate, maxDist); } else { float gridSize = MyDefinitionManager.Static.GetCubeSize(CurrentBlockDefinition.CubeSize); MyCubeGrid.RayCastStaticCells(IntersectionStart, IntersectionStart + IntersectionDirection * maxDist, outHitPositions, gridSize, gridSizeInflate); } }
IEnumerator WaitToStart() { //UIManager.Instance.ShowUI(LoadingUI); HelpUI.gameObject.SetActive(false); LoadingUI.SetActive(true); /*GoogleARCore.AsyncTask<GoogleARCore.ApkAvailabilityStatus> availTask = GoogleARCore.Session.CheckApkAvailability(); * yield return availTask.WaitForCompletion(); * * if (availTask.Result == GoogleARCore.ApkAvailabilityStatus.SupportedInstalled) * {*/ provider = new ARPlacementProvider(); /*} * else if (availTask.Result == GoogleARCore.ApkAvailabilityStatus.SupportedApkTooOld || availTask.Result == GoogleARCore.ApkAvailabilityStatus.SupportedNotInstalled) * { * GoogleARCore.AsyncTask<GoogleARCore.ApkInstallationStatus> installTask = GoogleARCore.Session.RequestApkInstallation(false); * yield return installTask.WaitForCompletion(); * * if (installTask.Result == GoogleARCore.ApkInstallationStatus.Success) * { * provider = new ARPlacementProvider(); * } * else * { * provider = new TestPlacementProvider(); * } * } * else * { * provider = new TestPlacementProvider(); * }*/ yield return(new WaitUntil(() => provider.IsReady())); yield return(new WaitForEndOfFrame()); StartPlacement(); }