本帖最后由 ClayCoffee 于 2021-2-2 20:54 编辑
你可以使用 SkullItem 这个类中的静态方法来创建头颅物品。用法示例:
从对应 Base64 字符串中获取玩家头颅物品。
从对应 正版玩家名 中获取玩家头颅物品。
从对应 玩家对象 中获取玩家头颅物品。
从对应 URL 中获取玩家头颅物品。
SkullItem类还提供了更多获取头颅物品的方法。感兴趣的可以自己查看。
获取到ItemStack类后,就可以注册为头颅物品了。
②.电力机器
你可以使用接口 EnergyNetComponent(能源组件接口)用于定义能源组件(这就像SlimefunAddon接口一样)。
粘液科技也提供了一个已经定义好预设的抽象类 AContainer(容器抽象类)用于快速注册粘液科技中的机器。
本次我们就将使用到这两个小东西来制作我们的电力机器。(以后教程会写到自定义机器样式和处理物品的代码,敬请期待)
创建一个我们的机器物品类 [size=13.0667px]MyMachine。 使其继承AContainer抽象类并实现EnergyNetComponent接口。
创建匹配super的构造函数,实现完所有的方法后,你现在的代码应该是这样子的:
AContainer抽象类已经为我们集成了大部分创建电力机器所需要的代码。
但是仍有一些属性需要我们自己定义,例如 每秒的耗电量, 缓存的电量,速度,等等等等。
粘液科技通过带返回值的方法来获取到这些属性。但是这些方法并不是抽象方法,所以我们要通过重写来修改这些属性。
重写 getInventoryTitle、getCapacity、getEnergyConsumption、getSpeed和registerDefaultRecipes方法。
你的代码这时应该是这样的:
别急,下面我们来一个一个介绍它们。
getProgressBar 方法返回一个 ItemStack, 其作用是返回机器的 进度条。(即电力机器在处理物品时中间的进度条)
getMachineIdentifier 方法返回机器的ID(具有唯一性)
getInventoryTitle 方法返回机器GUI的标题名(即机器GUI左上角的文字)
getCapacity 方法返回机器的最大缓存电量。
getEnergyConsumption 方法返回机器每秒消耗的电量。
getSpeed 方法返回机器处理物品的速度。(2即为正常情况下的两倍)
你可以根据你自己的喜好设置这些属性。设置完属性后,我们需要给我们的小机器(?)注册点默认的合成配方。
registerDefaultRecipes 方法用于注册机器的默认配方。
在 registerDefaultRecipes 中使用registerRecipe方法来注册配方。(有点绕口啊)第一个参数 seconds 是处理物品所需的秒数。(实际所需要的秒数应为这里的seconds除以getSpeed方法中返回的速度)
第二个参数 input 是一个ItemStack数组。
第三个参数 output 也是一个ItemStack数组。
注意: input 和 output 的length都必须等于2。如果大于或小于2可能会出现未知错误。
如果要注册仅为一个输入和一个输出的物品,最好使用提供的另外一个方法(这个方法的重载方法)。
此时,距离完成我们的机器还剩下最后一步——注册。
直接new出一个实例,然后调用register方法注册就可以了。是不是很简单?
这时可能就有人问了: 我能不能修改机器处理物品时的过程呢?
重写 tick 方法即可。粘液科技会在机器加载状态时的每一tick调用这个方法。
下期预告: GEO矿物与简单发电机
本教程使用idea&maven和Spigot 1.16.5 API,使用粘液科技官方最新开发版作为依赖
(粘液科技最新开发版现已不需要CS-CoreLib)
阅读本教程需要有一定的java基础
好久不见!
①.头颅物品
从对应 Base64 字符串中获取玩家头颅物品。
从对应 正版玩家名 中获取玩家头颅物品。
从对应 玩家对象 中获取玩家头颅物品。
从对应 URL 中获取玩家头颅物品。
SkullItem类还提供了更多获取头颅物品的方法。感兴趣的可以自己查看。
获取到ItemStack类后,就可以注册为头颅物品了。
②.电力机器
你可以使用接口 EnergyNetComponent(能源组件接口)用于定义能源组件(这就像SlimefunAddon接口一样)。
粘液科技也提供了一个已经定义好预设的抽象类 AContainer(容器抽象类)用于快速注册粘液科技中的机器。
本次我们就将使用到这两个小东西来制作我们的电力机器。(以后教程会写到自定义机器样式和处理物品的代码,敬请期待)
创建一个我们的机器物品类 [size=13.0667px]MyMachine。 使其继承AContainer抽象类并实现EnergyNetComponent接口。
创建匹配super的构造函数,实现完所有的方法后,你现在的代码应该是这样子的:
AContainer抽象类已经为我们集成了大部分创建电力机器所需要的代码。
但是仍有一些属性需要我们自己定义,例如 每秒的耗电量, 缓存的电量,速度,等等等等。
粘液科技通过带返回值的方法来获取到这些属性。但是这些方法并不是抽象方法,所以我们要通过重写来修改这些属性。
重写 getInventoryTitle、getCapacity、getEnergyConsumption、getSpeed和registerDefaultRecipes方法。
你的代码这时应该是这样的:
别急,下面我们来一个一个介绍它们。
getProgressBar 方法返回一个 ItemStack, 其作用是返回机器的 进度条。(即电力机器在处理物品时中间的进度条)
getMachineIdentifier 方法返回机器的ID(具有唯一性)
getInventoryTitle 方法返回机器GUI的标题名(即机器GUI左上角的文字)
getCapacity 方法返回机器的最大缓存电量。
getEnergyConsumption 方法返回机器每秒消耗的电量。
getSpeed 方法返回机器处理物品的速度。(2即为正常情况下的两倍)
你可以根据你自己的喜好设置这些属性。设置完属性后,我们需要给我们的小机器(?)注册点默认的合成配方。
registerDefaultRecipes 方法用于注册机器的默认配方。
在 registerDefaultRecipes 中使用registerRecipe方法来注册配方。(有点绕口啊)第一个参数 seconds 是处理物品所需的秒数。(实际所需要的秒数应为这里的seconds除以getSpeed方法中返回的速度)
第二个参数 input 是一个ItemStack数组。
第三个参数 output 也是一个ItemStack数组。
注意: input 和 output 的length都必须等于2。如果大于或小于2可能会出现未知错误。
如果要注册仅为一个输入和一个输出的物品,最好使用提供的另外一个方法(这个方法的重载方法)。
此时,距离完成我们的机器还剩下最后一步——注册。
直接new出一个实例,然后调用register方法注册就可以了。是不是很简单?
这时可能就有人问了: 我能不能修改机器处理物品时的过程呢?
重写 tick 方法即可。粘液科技会在机器加载状态时的每一tick调用这个方法。
下期预告: GEO矿物与简单发电机
我敲又有更多好玩的了
教程不辍 感谢