Skip to content

为Minecraft Fabric开发的一款可以使用原生代码的兼容层mod

License

Notifications You must be signed in to change notification settings

Mliybs/NativeLoader

Repository files navigation

什么是NativeLoader

NativeLoader是一个Java编写的Minecraft Fabric Mod,它依赖于JNA(依赖文件位于libs文件夹下),它旨在通过提供一个兼容层,使可以与原生代码交互的语言获得编写Fabric Mod的能力

实际上,NativeLoader所做的只有提供包装类和调用动态链接库,这是为了尽量少地编写Java代码

为什么需要NativeLoader

使用NativeLoader,你可以使用其它能与原生代码交互的语言编写Fabric Mod

以下是碎碎念

我一开始创建NativeLoader的目的是使用纯C#写mod,因为我用不惯Java,就连Java也是创建了这个项目才学的,但是我其实是有一点使用Xamarin.Android(微软早期的.NET跨平台UI项目,现已停止支持)的经验的,我当时在想为什么这个项目就可以将C#对象绑定为Java对象呢,慢慢的便形成了这个项目的想法雏形,后来也就有了这个项目,从新建文件夹到功能80%齐全只花了我不到两周的时间

使用NativeLoader

要想使用NativeLoader,你需要在支持的版本下安装该mod,但这时只是安装了兼容层,一个独立的mod应有的逻辑、资源,它都不具有,这些都需要你提供一个支持NativeLoader资源包来提供这些资源

资源包

为了加载资源,NativeLoader使用了一种特殊的方式——将所有外置内容组织在一个资源包内,在你在游戏内手动加载该资源包后,你的代码就可以自动获取到资源包内的模型、材质、音效等资源

资源包在作为资源的时候是必须手动加载的,这与普通的资源包无异,但NativeLoader会在游戏启动时扫描所有资源包中任意命名空间下的natives目录(如minecraft命名空间即为assets/minecraft/natives),将内部的所有文件全部复制到.minecraft/nativeloader目录,并全部执行JNA加载

加载后是无法卸载的,这与普通mod一样,但如果你是第一次加载,请务必在游戏的资源包菜单中手动加载该资源包

nativeloader目录是以资源包名/命名空间/natives/动态链接库文件来组织文件的,所有在游戏启动时没有相对应资源包的目录将被删除

支持NativeLoader的库

C#:Mliybs.Minecraft.Fabric

About

为Minecraft Fabric开发的一款可以使用原生代码的兼容层mod

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages