Esempio n. 1
0
        private Vector2 GetTextureDimensions(McResourcePack resourcePack, ResourceLocation location)
        {
            Vector2 size = new Vector2(TextureWidth, TextureHeight);

            return(size);

            foreach (var state in resourcePack.BlockModels)
            {
                foreach (var element in state.Value.Elements)
                {
                    foreach (var face in element.Faces)
                    {
                        var val = face.Value;
                        if (ResourcePackBlockModel.ResolveTexture(state.Value, val.Texture) == location)
                        {
                            var width  = val.UV.X2 - val.UV.X1;
                            var height = val.UV.Y2 - val.UV.Y1;

                            if (width > size.X)
                            {
                                size.X = width;
                            }

                            if (height > size.Y)
                            {
                                size.Y = height;
                            }
                        }
                    }
                }
            }

            return(size);
        }
Esempio n. 2
0
        internal static int LoadResources(IRegistryManager registryManager, ResourceManager resources, McResourcePack resourcePack, bool replace,
                                          bool reportMissing = false, IProgressReceiver progressReceiver = null)
        {
            var raw = ResourceManager.ReadStringResource("Alex.Resources.runtimeidtable.json");

            RuntimeIdTable = TableEntry.FromJson(raw);

            var blockEntries = resources.Registries.Blocks.Entries;

            progressReceiver?.UpdateProgress(0, "Loading block registry...");
            for (int i = 0; i < blockEntries.Count; i++)
            {
                var kv = blockEntries.ElementAt(i);

                progressReceiver?.UpdateProgress(i * (100 / blockEntries.Count), "Loading block registry...",
                                                 kv.Key);

                ProtocolIdToBlockName.TryAdd(kv.Value.ProtocolId, kv.Key);
            }

            progressReceiver?.UpdateProgress(0, "Loading block models...");

            if (resourcePack.TryGetBlockModel("cube_all", out ResourcePackLib.Json.Models.Blocks.BlockModel cube))
            {
                cube.Textures["all"] = "no_texture";
                CubeModel            = cube;

                UnknownBlockModel = new ResourcePackBlockModel(resources, new BlockStateModel[]
                {
                    new BlockStateModel()
                    {
                        Model     = CubeModel,
                        ModelName = "Unknown model",
                    }
                });

                AirState.Model = UnknownBlockModel;
            }

            RegisterBuiltinBlocks();

            return(LoadModels(registryManager, resources, resourcePack, replace, reportMissing, progressReceiver));
        }