ModAPI是什么?简单的说就是一个Mod给其他Mod提供的接口,通过这些接口,可以使主Mod之下的子APIMod使用主Mod的函数/方法,以提高代码的利用率,以及建立子APIMod与主Mod之间的联系并进行信息交换。
API已经应用于多个我们所熟知的Mod,如几年前的[PE]Factorization因式分解、现在的[PE]InnerCore、[PC]Forge、[PC]工业时代2及其衍生、[PC]热力膨胀各版本及其衍生、[PC]格雷科技各版本及其衍生等,都应用了API。通过API,Mod们可以把一个Mod做不完的、Mod可拓展的内容进一步开发,并且若是提供开放性接口,甚至是其他的开发者也可以使用已经写好的方法拓展出更多的Mod。
例如,我写了一套自定义物品工具的算法,算法被我写成一个方法setTool(),而我将该方法作为API开放,那么以后其他ModPE就可以通过使用setTool()方法(前提是客户已安装API)快速构建一个工具物品。
Minecraft是一款自由度极高的沙盒游戏,包括其可拓展空间,非常庞大。以后定是Mod们百家争鸣的局面:ScriptEngine与行为包,甚至有可能看似过气的ModPE和NativeAddon(或NMod)也可以参战。在众多Mod作品中,必定存在可重复利用的、传奇的算法/方法,通过API,可以使所有Mod都可以使用这些算法,极大地减少了Mod的开发时间和提高了Mod的丰富性,使开发者们成为同一个Mod开发家庭。
下面通过ModPE对API的实现进行讨论,为未成熟的SE和其他以后的任何Mod提供实现思维。
多个ModPE之间并不能直接进行沟通,我们需要一个信息中转站,让所有ModPE都能使用统一位置的库----Minecraft材质包是一个不错的选择。使用BlockLauncher载入材质包的功能(.zip或.modpkg),载入一个材质包,在材质包的assets文件夹里放入API的实现文件,再通过eval( new java.lang.String( ModPE.getBytesFromTexturePack( assets目录下文件路径 ), "UTF-8" ) + "" );将API引入APIMod。
该实现思维可用于以后成熟的SE或其他Mod平台。
API已经应用于多个我们所熟知的Mod,如几年前的[PE]Factorization因式分解、现在的[PE]InnerCore、[PC]Forge、[PC]工业时代2及其衍生、[PC]热力膨胀各版本及其衍生、[PC]格雷科技各版本及其衍生等,都应用了API。通过API,Mod们可以把一个Mod做不完的、Mod可拓展的内容进一步开发,并且若是提供开放性接口,甚至是其他的开发者也可以使用已经写好的方法拓展出更多的Mod。
例如,我写了一套自定义物品工具的算法,算法被我写成一个方法setTool(),而我将该方法作为API开放,那么以后其他ModPE就可以通过使用setTool()方法(前提是客户已安装API)快速构建一个工具物品。
Minecraft是一款自由度极高的沙盒游戏,包括其可拓展空间,非常庞大。以后定是Mod们百家争鸣的局面:ScriptEngine与行为包,甚至有可能看似过气的ModPE和NativeAddon(或NMod)也可以参战。在众多Mod作品中,必定存在可重复利用的、传奇的算法/方法,通过API,可以使所有Mod都可以使用这些算法,极大地减少了Mod的开发时间和提高了Mod的丰富性,使开发者们成为同一个Mod开发家庭。
下面通过ModPE对API的实现进行讨论,为未成熟的SE和其他以后的任何Mod提供实现思维。
多个ModPE之间并不能直接进行沟通,我们需要一个信息中转站,让所有ModPE都能使用统一位置的库----Minecraft材质包是一个不错的选择。使用BlockLauncher载入材质包的功能(.zip或.modpkg),载入一个材质包,在材质包的assets文件夹里放入API的实现文件,再通过eval( new java.lang.String( ModPE.getBytesFromTexturePack( assets目录下文件路径 ), "UTF-8" ) + "" );将API引入APIMod。
该实现思维可用于以后成熟的SE或其他Mod平台。