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); }
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)); }