コード例 #1
0
ファイル: ComponentTests.cs プロジェクト: nscpt/Alexa.NET.APL
        public void ImageWithBlur()
        {
            var image = new Image
            {
                Filters = new IImageFilter[]
                {
                    new Blur(Dimension.From("10dp")),
                }
            };

            Assert.True(Utility.CompareJson(image, "ImageWithBlur.json"));
        }
コード例 #2
0
        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))
コード例 #3
0
        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());
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: DbBroker.cs プロジェクト: robpaveza/mc-mapper
        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);
        }
コード例 #6
0
 public IActionResult Tile1024(int dim, int tileX, int tileZ)
 {
     if (world_.World.TryGetRegionView(Dimension.From(dim), tileX, tileZ, out ChunkView[] views, getBiomeData: true))