8 流体注册
一、流体注册
1、事件监听
通过向StartupEvents.registry事件传入不同的参数,其可用于在启动脚本中注册游戏中的新元素,如方块、物品、声音、药效等,在这里,我们传入"fluid"来进行与流体有关的修改:
js
StartupEvents.registry("fluid",event=>{
// code here
})2、事件方法
| 方法 | 描述 | 返回值 |
|---|---|---|
| create(字符串 流体ID) | 注册流体 | FluidBuilder |
3、FluidBuilder
| 方法 | 描述 | 备注 |
|---|---|---|
| builtinTextures() | 使用内置贴图 | - |
| flowingTexture(ResourceLocation id) | 设置流动贴图 | - |
| bucketColor(Color 颜色) | 设置流体桶的颜色 | 可使用16进制,形如0x24acf2 |
| noBucket() | 设置默认不生成桶 | - |
| luminosity(整形 发光度) | 设置流体亮度 | 默认值0 |
| gaseous() | 将当前流体转为气体 | - |
| stillTexture(ResourceLocation id) | 设置静止贴图 | - |
| viscosity(整形 粘稠度) | 设置粘稠度 | 默认值为1000 |
| displayName(字符串 名称) | 设置流体名称 | - |
| createAttributes() | 创建并返回ArchitecturyFluidAttributes | 食用教程见下 |
| thickTexture(Color 颜色) | 设置流体颜色 | 可使用16进制,形如0x24acf2 |
| rarity(Rarity 稀有度) | 设置流体稀有度 | - |
| color(Color 颜色) | 设置流体颜色(厚) | 可使用16进制,形如0x24acf2 |
| density(整形 密度) | 设置流体密度 | 默认值1000 |
| noBlock() | 设置默认不注册流体方块 | - |
| thinTexture(Color 颜色) | 设置流体颜色(薄) | 可使用16进制,形如0x24acf2 |
| temperature(整形 温度) | 设置流体温度 | 默认值300 |
4、ArchitecturyFluidAttributes
通过ArchitecturyFluidAttributes,你可以快捷修改流体属性
| 方法 | 描述 | 备注 | 默认值 |
|---|---|---|---|
| dropOff(整形 衰减值) | 设置流体衰减值 | 根据与源头方块距离降低流体level值 | 1 |
| tickDelay(整形 延迟刻数) | 设置扩散延迟 | - | 5 |
| explosionResistance(float 爆炸抗性) | 设置流体爆炸抗性 | - | 100.0F |
| color(Color 颜色) | 设置流体颜色 | 可使用16进制,形如0x24acf2 | 0xffffff |
| luminosity(整形 发光度) | 设置流体亮度 | - | 0 |
| density(整形 密度) | 设置流体密度 | - | 1000 |
| temperature(整形 温度) | 设置流体温度 | - | 300 |
| viscosity(整形 粘稠度) | 设置粘稠度 | - | 1000 |
| lighterThanAir(布尔值 是否比空气轻) | 设置流体质量 | 为true时流体将不会向下流动 | false |
| rarity(Rarity 稀有度) | 设置流体稀有度 | - | Rarity.COMMON |
| fillSound(fillSound: SoundEvent) | 设置流体填充容器声音 | - | - |
| emptySound(emptySound: SoundEvent) | 设置容器倒空流体声音 | - | - |
二、示例
js
StartupEvents.registry("fluid",event=>{
let example_fluid = event.create("example_fluid").thinTexture(0xcc3e44).thickTexture(0xcc3e44).temperature(2000).bucketColor(0xcc3e44).displayName("Wudji");
let exampleAttributes = example_fluid.createAttributes();
exampleAttributes.dropOff(2);
exampleAttributes.tickDelay(20);
example_fluid.attributes = exampleAttributes;
})