public void ImageWithBlur() { var image = new Image { Filters = new IImageFilter[] { new Blur(Dimension.From("10dp")), } }; Assert.True(Utility.CompareJson(image, "ImageWithBlur.json")); }
private static async Task VisitDimensionByRegionsAsync(World world, int index) { var renderer = Renderer.Create(LoadBiomesConfig()); var dim = Dimension.From(index); do { Console.WriteLine($"Exploring {world.Name}, {dim.Name}"); int x = await GetNumberAsync($"Select a region X coordinate: "); int z = await GetNumberAsync($"Select a region Z coordinate: "); if (world.TryGetRegionView(dim, x, z, out ChunkView[] chunkViews, getBiomeData: true))
public IActionResult Chunk(int dim, int chunkX, int chunkZ) { if (world_.World.TryGetChunkView(Dimension.From(dim), chunkX, chunkZ, out ChunkView view, getBiomeData: true)) { using (var ms = new MemoryStream()) using (var rendered = world_.Renderer.RenderBiomesTile(view)) { rendered.WriteToStream(ms); return(File(ms.ToArray(), "image/png")); } } return(NotFound()); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.Value == null && reader.TokenType != JsonToken.StartArray) { return(null); } var instance = Activator.CreateInstance(objectType); var objectTypeInfo = objectType.GetTypeInfo(); if (instance is APLDimensionValue) { objectTypeInfo.GetProperty("Value").SetValue(instance, Dimension.From(reader.Value.ToString())); return(instance); } var genericType = objectType.GenericTypeArguments.First(); genericType = Nullable.GetUnderlyingType(genericType) ?? genericType; var realInput = reader.TokenType == JsonToken.StartArray ? CreateList(reader, serializer, genericType) : CorrectInput(reader.Value); var realInputType = realInput.GetType(); if (IsIntType(genericType) && IsIntType(realInputType)) { objectTypeInfo.GetProperty("Value").SetValue(instance, Convert.ChangeType(realInput, genericType)); } else if (genericType.GetTypeInfo().IsAssignableFrom(realInputType)) { objectTypeInfo.GetProperty("Value").SetValue(instance, realInput); } else { ((APLValue)instance).Expression = reader.Value?.ToString(); } return(instance); }
private static bool KeyDescriptorFromKey(byte[] key, out DbKeyDescriptor result) { result = null; if (key.Length < 9) { return(false); } // Opportunistic bail: Don't examine any areas in The Far Lands, which start at // +/- 12,550,824. These are found in chunks at +/- 784,426, which means that // looking for the presence of 0x00 or 0xff in key[3] and key[7] should always // be true for a DbKeyDescriptor, and if that value isn't there, it suggests // that we probably have a textual key. byte tester = key[3]; if (tester != 0 && tester != 0xff) { return(false); } int x = BitConverter.ToInt32(key, 0); int z = BitConverter.ToInt32(key, 4); if (key.Length == 9) { // overworld, not a subchunk descriptor var keyType = (DbKeyType)key[8]; if (!keyType.IsValid()) { return(false); } result = new DbKeyDescriptor(x, z, Dimension.OVERWORLD, keyType); return(true); } else if (key.Length == 10) { // overworld, subchunk descriptor var keyType = (DbKeyType)key[8]; if (!keyType.IsValid()) { return(false); } result = new DbKeyDescriptor(x, key[9], z, Dimension.OVERWORLD, keyType); return(true); } else if (key.Length == 13) { // nether / end, not a subchunk descriptor int dim = BitConverter.ToInt32(key, 8); if (dim < 0 || dim > 2) { return(false); } var keyType = (DbKeyType)key[12]; if (!keyType.IsValid()) { return(false); } result = new DbKeyDescriptor(x, z, Dimension.From(dim), keyType); return(true); } else if (key.Length == 14) { // nether / end, subchunk descriptor int dim = BitConverter.ToInt32(key, 8); if (dim < 0 || dim > 2) { return(false); } var keyType = (DbKeyType)key[12]; if (!keyType.IsValid()) { return(false); } result = new DbKeyDescriptor(x, key[13], z, Dimension.From(dim), keyType); return(true); } return(false); }
public IActionResult Tile1024(int dim, int tileX, int tileZ) { if (world_.World.TryGetRegionView(Dimension.From(dim), tileX, tileZ, out ChunkView[] views, getBiomeData: true))