本篇教程由作者设定使用 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,该传送门是否为被火焰激活。