public override Image ReadRegion(LevelSize location, int level, LevelSize size) { if (level < 0) { throw new OpenSlideException("Invalid level"); } if (size.Width < 0 || size.Height < 0) { throw new OpenSlideException($"Size {size} must be non-negative"); } var bmp = new Bitmap((int)size.Width, (int)size.Height); var bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); var bmpPtr = bmpData.Scan0.ToPointer(); CheckDisposed(); OpenSlideDll.openslide_read_region(osr, bmpPtr, location.Width, location.Height, level, size.Width, size.Height); if (bmpPtr == null) { throw new OpenSlideException($"error reading region location:{location}, level:{level}, size:{size}"); } bmp.UnlockBits(bmpData); CheckError(); return(bmp); }
void Spawn(Entity entity, BotSpawn botSpawnFromEntity, LevelSize levelSize) { Random rand = new Random((uint)System.DateTime.Now.ToBinary()); float maxX = levelSize.X / 2; float minX = -maxX; float maxY = levelSize.Y / 2; float minY = -maxY; for (var i = 0; i < botSpawnFromEntity.Count; ++i) { var position = new float3(rand.NextFloat(minX, maxX), 0, rand.NextFloat(minY, maxY)); // Create our new Bot entity var instance = EntityManager.Instantiate(botSpawnFromEntity.Prefab); // Set correct bot location EntityManager.SetComponentData(instance, new Translation { Value = position }); EntityManager.AddComponent(instance, typeof(BotTag)); EntityManager.AddComponentData(instance, new CollisionSize { Value = botSpawnFromEntity.CollisionSize }); EntityManager.AddComponentData(instance, new BotSpeed { Value = new float2(rand.NextFloat(botSpawnFromEntity.MinSpeed, botSpawnFromEntity.MaxSpeed), rand.NextFloat(botSpawnFromEntity.MinSpeed, botSpawnFromEntity.MaxSpeed)) }); } EntityManager.DestroyEntity(entity); }
public override void OnInspectorGUI() { DrawDefaultInspector(); LevelSize levelSize = (LevelSize)target; if (GUILayout.Button("Resize Level")) { levelSize.SetLevelSize(); } }
public override Image GetThumbnail(LevelSize size) { var downsample = Math.Max(Dimensions.Width / size.Width, Dimensions.Height / size.Height); var level = GetBestLevelForDownsample(downsample); var thumbnailSize = LevelDimensions[level]; var thumbnail = ReadRegion(new LevelSize(0, 0), level, thumbnailSize); if (size.Equals(thumbnailSize)) { return(thumbnail); } var thumbSize = thumbnail.GetProportionateResize(size.ToSize()); var callback = new Image.GetThumbnailImageAbort(ThumbnailCallback); var thumb = thumbnail.GetThumbnailImage(thumbSize.Width, thumbSize.Height, callback, new IntPtr()); return(thumb); }
void Spawn(Entity entity, PlayerSpawn playerSpawn, LevelSize levelSize) { Random rand = new Random((uint)System.DateTime.Now.ToBinary()); float maxX = levelSize.X / 2; float minX = -maxX; float maxY = levelSize.Y / 2; float minY = -maxY; var position = new float3(rand.NextFloat(minX, maxX), 0, rand.NextFloat(minY, maxY)); // Create our new player entity var instance = EntityManager.Instantiate(playerSpawn.Prefab); // Set correct player location EntityManager.SetComponentData(instance, new Translation { Value = position }); // Add player component tag EntityManager.AddComponent(instance, typeof(PlayerTag)); EntityManager.DestroyEntity(entity); }
public void Open( RenderTarget2D preview, string filePath, ulong workshopID = 0, LevelType levType = LevelType.Deathmatch, LevelSize levSize = LevelSize.Ginormous, string[] extraTags = null) { this._currentItem = (WorkshopItem)null; Texture2D texture2D = new Texture2D(DuckGame.Graphics.device, preview.width, preview.height); Color[] data = new Color[preview.width * preview.height]; preview.GetData <Color>(data); texture2D.SetData <Color>(data); this._levelType = levType; this._levelSize = levSize; this._addDeathmatchTag = false; this._addMachineTag = false; Editor.lockInput = (ContextMenu)this; SFX.Play("openClick", 0.4f); this.opened = true; this._previewTarget = new Sprite((Tex2D)texture2D); this._filePath = filePath; this._workshopID = workshopID; if (this._workshopID != 0UL) { this._currentItem = new WorkshopItem(workshopID); } if (Editor.workshopName == null || Editor.workshopName == "") { Editor.workshopName = Path.GetFileNameWithoutExtension(filePath); } this._nameBox.text = Editor.workshopName; this._descriptionBox.text = Editor.workshopDescription; this._workshopTag = new SpriteMap("workshopTag", 4, 8); this._workshopTagMiddle = new Sprite("workshopTagMiddle"); this._tagPlus = new Sprite("tagPlus"); this._extraTags = extraTags; this._arcadeTestIndex = 0; }
// Use this for initialization void Start() { LevelSize lSize = GameObject.FindGameObjectWithTag("LevelSize").GetComponent <LevelSize>(); gridXSize = lSize.x - 1; gridYSize = lSize.y - 1; Company.ResetCompany(); gameOver = false; gameOverPanel.SetActive(false); BuildingPanel.SetActive(false); slotPanel.SetActive(false); powerMeter.maxValue = (float)Company.powerLeft; powerMeter.value = (float)Company.powerLeft; buildingArray = new Building[gridXSize + 1, gridYSize + 1]; buildingSpecialArray = new BuildingSpecial[gridXSize + 1, gridYSize + 1]; GetSlots(); PlaceGrids(); PlaceCompanyOffice(); }