|
|
Piston API (活塞API)Github |相关wiki |源站链接支持: forge这是一个小型模组,允许其他模组和模组包处理活塞的互动!
*API特性:*
自定义方块的高级活塞互动
活塞API为方块提供了一种在位置和世界敏感的情况下与活塞进行互动的方式!主要是方块的可推动性和其粘性。
IPushableBehavior:
这个接口添加了一个方法`getPushReaction`(接受方块源和活塞信息,并返回`EnumPushReaction`)。如果方块具有高级推动反应逻辑,应该实现这个方法。此接口覆盖了原生的`getPushReaction(IBlockState)`方法,没有实现该接口的方块会回退到原生代码。对于模组开发者:可以通过[Groovyscript](链接)在postInit期间调用[`PushReactionHanlder.overridePushReaction`](链接)来覆盖每个方块的推动反应(模组开发者不应该这么做!)
Groovy脚本示例:
import static git.jbredwards.piston_api.mod.asm.PushReactionHandler.overridePushReaction
import net.minecraft.block.material.EnumPushReaction
//使泥土在被活塞推动时被破坏(类似草或叶子)
overridePushReaction(block(\'minecraft:dirt\'), EnumPushReaction.DESTROY)
//使橙色羊毛不可被活塞推动,但保持其他羊毛可以被推动
def orangeWool = blockstate(\'minecraft:wool\', 1)
overridePushReaction(block(\'minecraft:wool\'), {source, pistonInfo -> orangeWool == source.getBlockState() ? EnumPushReaction.BLOCK : EnumPushReaction.NORMAL})Copy已复制!
IStickyBehavior:
这个接口添加了两个方法:`getStickReaction`(接受方块源、要测试的相邻方块和活塞信息,并返回[`EnumStickReaction`](链接)),和`hasStickySide`(接受方块源和活塞信息,并返回方块是否有潜在的粘性边)。如果方块具有高级粘性逻辑,应该实现这两个方法。该接口覆盖了`isStickyBlock(IBlockState)`方法,没有实现该接口的方块会回退到原生代码。**对于模组开发者:** 可以通过[Groovyscript](链接)在postInit期间调用[`StickReactionHanlder.overrideStickReaction`](链接) 来覆盖每个方块的粘性结果(模组开发者不应该这么做!)
Groovy脚本示例:
import static git.jbredwards.piston_api.mod.asm.StickReactionHandler.overrideStickReaction
import git.jbredwards.piston_api.api.piston.EnumStickReaction
//使粘液块不具有粘性
overrideStickReaction(block(\'minecraft:slime\'), EnumStickReaction.PASS)
//使工作台具有粘性
overrideStickReaction(block(\'minecraft:crafting_table\'), EnumStickReaction.STICK)
//使书架永远不会粘附到任何东西
overrideStickReaction(block(\'minecraft:bookshelf\'), EnumStickReaction.NEVER)
//使染色玻璃具有粘性,但只粘附到相同颜色
overrideStickReaction(block(\'minecraft:stained_glass\'), {source, other, pistonInfo -> source.getBlockState() == other.getBlockState() ? EnumStickReaction.STICK : EnumStickReaction.PASS})
//一个更复杂的例子,使原木的开放部分具有粘性
import static git.jbredwards.piston_api.api.block.IStickyBehavior.getConnectingSide
import net.minecraft.block.BlockLog
overrideStickReaction([block(\'minecraft:log\'), block(\'minecraft:log2\')], {source, other, pistonInfo ->
def connectingAxis = BlockLog.EnumAxis.fromFacingAxis(getConnectingSide(source, other).getAxis())
def logAxis = source.getBlockState().getValue(BlockLog.LOG_AXIS)
connectingAxis == logAxis ? EnumStickReaction.STICK : EnumStickReaction.PASS
})Copy已复制!
*主要特性:*
- 可配置的活塞推动限制
- 活塞可以移动方块实体
- 活塞不会破坏流体状态(当安装了[Fluidlogged API](链接)时)
- [Quark](链接) 模组兼容性
*小特性:*
- 覆盖现有的活塞互动
- 推动箱子时使它们两两粘在一起
- 当方块被活塞破坏时播放方块破坏声音和粒子效果
*注意:* 该模组不会被移植
来自Modrinth所有游戏版本1.12.2所有类型forgev1.0.2-mc1.12.2Piston-API-v1.0.2-mc1.12.2.jar下载1.0.2#Release**Features:**- ARR license**Bug Fixes:**- Fix extended state blocks not rendering properly when pushed/pulled by pistons展开版本: 1.0.2支持游戏: 1.12.2类型:ForgeRelease下载次数: 420v1.0.1-mc1.12.2Piston-API-v1.0.1-mc1.12.2.jar下载1.0.1#ReleaseInitial Modrinth Release展开版本: 1.0.1支持游戏: 1.12.2类型:ForgeRelease下载次数: 199全部版本
markdown_parsed
文章类型:收录
layui.use([\'form\'], function(){
var form = layui.form;
});
Piston API |
|