本篇教程由作者设定使用 CC BY-NC 协议。

〇、写在前面

失踪人口回归,写一篇教程吧,翻译一下唐佬的EvtWiki证明自己还活着

在?ED不去做答辩?


关于本模组的简介:

增加了一些事件(Event),奇奇怪怪的事件。

以及一些与客户端相连内容的设置方法。

还有一些模组的小联动……


一、ClientChatEvent(客户端聊天发生事件)

ClientChatEvent 发生在客户端获得聊天信息时。该事件无法取消。

事件类

mods.eventtweaker.event.ClientChatEvent

调用(先导events包不说了吧)

events.onClientChat(function(event as ClientChatEvent) {
    //内容
});

ZenGetters

getMessage()
//返回一个string,即返回对应聊天内容。

getOriginalMessage()
//返回一个string,即返回对应聊天内容的原始信息。

ZenSetters

setMessage(string message)
//更改聊天信息内容,输入一个string。


二、GlStateManager(图形渲染状态管理器)注意!不是事件

包含一系列用于与 OpenGL 状态管理器进行交互的方法。这些方法可以用于在游戏中进行渲染效果的修改。

mods.eventtweaker.GlStateManager

ZenSetters

enableLighting()
disableLighting()
//启用或禁用光照。

enableTexture2D()
disableTexture2D()
//启用或禁用平面材质(禁用后物品将只显示为纯色)。

enableAlpha()
disableAlpha()
//启用或禁用透明。

enableBlend()
disableBlend()
//启用或禁用混合(用于半透明效果)。

enableColorLogic()
disableColorLogic()
//启用或禁用颜色逻辑(用于渲染中对颜色进行逻辑运算,即微调颜色显示状态)。

enableColorMaterial()
disableColorMaterial()
//启用或禁用颜色材质(即根据群系改变方块颜色)。

enableCull()
disableCull()
//启用或禁用剔除(忽略不可见的物体面)。

enableFog()
disableFog()
//启用或禁用迷雾。

enableDepth()
disableDepth()
//启用或禁用深度对渲染的影响。

enableNormalize()
disableNormalize()
//启用或禁用规范化(对法线向量进行标准化,确保其长度为1)。

enablePolygonOffset()
disablePolygonOffset()
//启用或禁用多边形偏移(多边形偏移可用于解决Z-缓冲冲突问题)。

renderImage(string str)
//设置绑定指定路径的纹理图片。

createTessellator(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4)
//输入四个点的坐标,创建一个Tessellator对象(MC中用于绘制几何图形的工具)。

draw()
//承接上个方法,绘制一个Tessellator对象。

translate(float x, float y, float z)
//输入三个位移,平移渲染坐标系。

color(float colorRed, float colorGreen, float colorBlue, float colorAlpha)
//输入RGBA(RGB+透明度)的float值,用于设置渲染颜色。

rotate(float angle, float x, float y, float z)
//输入三个旋转角度,旋转渲染坐标系。

scale(float x, float y, float z)
//输入三个缩放程度float值,用于缩放渲染坐标系。

clearColor(float red, float green, float blue, float alpha)
//输入RGBA(RGB+透明度)的float值,用于清除指定渲染颜色。

有些我也不是特别清楚,我不是OpenGL方面的Modpacker


三、Minecraft(游戏杂项)

包含玩家、FPS、全屏的获取方法。搭配某些附属可以实现这种:帧数越低攻击伤害越高

mods.eventtweaker.Minecraft

ZenGetters

getPlayer()
//返回一个IPlayer,获取客户端游戏玩家。

getfps()
//返回一个int,获取客户端的FPS。

isFullScreen()
//返回一个bool,检测客户端是否全屏。


四、RenderGameOverlayEvent(游戏渲染事件)

RenderGameOverlayEvent 发生在渲染屏幕内容时。该事件无法取消。

事件类

mods.eventtweaker.event.RenderGameOverlayEvent

调用

events.onRenderGameOverlay(function(event as RenderGameOverlayEvent) {
    //内容
});

ZenGetters

getPartialTicks()
//返回一个float,获取游戏覆盖渲染事件的局部Tick。


五、ManaChangeEvent(含魔力方块比如产能花魔力变换事件)【植物魔法联动】

ManaChangeEvent 事件发生在植物魔法含魔力方块发生魔力变动时。

该事件是IEventCancelable、IBlockEvent的子事件。

事件类

mods.eventtweaker.event.ManaChangeEvent

调用

events.onManaChange(function(event as ManaChangeEvent) {
    //内容
});

ZenGetters

getMana()
//返回一个int,该方块改变的Mana值。

getWorld()
//返回一个IWorld,该方块所在的世界。

getPosition()
//返回一个IBlockPos,该方块的位置。

getBlockState()
//返回一个IBlockState,该方块的状态。

getBlock()
//返回一个IBlock,该方块本身


六、NetherPortalEvent(下界传送门激活事件)【随意传送门联动】

NetherPortalEvent 事件发生在安装随意传送门模组时,下界传送门被激活时(安装随意传送门模组会使原版下界门事件失效,所以要用这个)。

该事件是IEventCancelable、IWorldEvent的子事件。

事件类

mods.eventtweaker.event.NetherPortalEvent

调用

events.onNetherPortal(function(event as NetherPortalEvent) {
    //内容
});

ZenGetters

getWorld()
//返回一个IWorld,该传送门所在世界。

isValid()
//返回一个bool,该传送门是否生效。

getWidth()
//返回一个int,该传送门的宽度。

getHeight()
//返回一个int,该传送门的高度。

isUserCreated()
//返回一个bool,该传送门是否为玩家建造。

isActivatedByFire()
//返回一个bool,该传送门是否为被火焰激活。