Merge branch 'master' into 1.16
# Conflicts: # src/main/java/carpet/script/utils/ShapesRenderer.java
This commit is contained in:
commit
ab0bc6f221
2 files changed
+268
-46
No files matched your search
@@ -1,16 +1,20 @@
|
||||
package carpet.script.utils;
|
||||
|
||||
import carpet.CarpetSettings;
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.render.RenderLayer;
|
||||
import net.minecraft.client.render.VertexConsumer;
|
||||
import net.minecraft.client.render.BufferBuilder;
|
||||
import net.minecraft.client.render.Tessellator;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.world.ClientWorld;
|
||||
import net.minecraft.util.math.Matrix4f;
|
||||
import net.minecraft.client.render.VertexFormats;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.util.registry.RegistryKey;
|
||||
import net.minecraft.world.World;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -46,10 +50,23 @@ public class ShapesRenderer
|
||||
ClientWorld iWorld = this.client.world;
|
||||
RegistryKey<World> dimensionType = iWorld.method_27983();
|
||||
if (shapes.get(dimensionType).isEmpty()) return;
|
||||
//BlockPos blockPos = new BlockPos(camera.getPos().x, 0.0D, camera.getPos().z);
|
||||
VertexConsumer vertexConsumer = vertexConsumers.getBuffer(RenderLayer.getLines());
|
||||
long currentTime = client.world.getTime();
|
||||
|
||||
RenderSystem.enableDepthTest();
|
||||
RenderSystem.shadeModel(7425);
|
||||
RenderSystem.enableAlphaTest();
|
||||
RenderSystem.defaultAlphaFunc();
|
||||
Entity entity = this.client.gameRenderer.getCamera().getFocusedEntity();
|
||||
Tessellator tessellator = Tessellator.getInstance();
|
||||
BufferBuilder bufferBuilder = tessellator.getBuffer();
|
||||
double d = 0.0D - cameraY;
|
||||
double e = 256.0D - cameraY;
|
||||
RenderSystem.disableTexture();
|
||||
RenderSystem.disableBlend();
|
||||
double f = (double)(entity.chunkX << 4) - cameraX;
|
||||
double g = (double)(entity.chunkZ << 4) - cameraZ;
|
||||
|
||||
// render
|
||||
synchronized (shapes)
|
||||
{
|
||||
Iterator<RenderedShape<? extends ShapeDispatcher.ExpiringShape>> it = shapes.get(dimensionType).iterator();
|
||||
@@ -57,10 +74,16 @@ public class ShapesRenderer
|
||||
{
|
||||
RenderedShape shape = it.next();
|
||||
if (shape.isExpired(currentTime)) it.remove();
|
||||
shape.render(matrices, vertexConsumer, (float) cameraX, (float) cameraY, (float) cameraZ);
|
||||
shape.render(tessellator, bufferBuilder, (float) cameraX, (float) cameraY, (float) cameraZ);
|
||||
}
|
||||
}
|
||||
|
||||
RenderSystem.lineWidth(1.0F);
|
||||
RenderSystem.enableBlend();
|
||||
RenderSystem.enableTexture();
|
||||
RenderSystem.shadeModel(7424);
|
||||
}
|
||||
|
||||
public void addShape(String type, RegistryKey<World> dim, CompoundTag tag)
|
||||
{
|
||||
BiFunction<MinecraftClient, CompoundTag, RenderedShape<? extends ShapeDispatcher.ExpiringShape >> shapeFactory;
|
||||
@@ -87,7 +110,7 @@ public class ShapesRenderer
|
||||
{
|
||||
T shape;
|
||||
long expiryTick;
|
||||
public abstract void render(MatrixStack matrices, VertexConsumer vertexConsumer, float cx, float cy, float cz );
|
||||
public abstract void render(Tessellator tessellator, BufferBuilder builder, float cx, float cy, float cz );
|
||||
protected RenderedShape(MinecraftClient client, T shape)
|
||||
{
|
||||
this.shape = shape;
|
||||
@@ -107,14 +130,18 @@ public class ShapesRenderer
|
||||
super(client, (ShapeDispatcher.Box)ShapeDispatcher.Box.fromTag(boxData));
|
||||
}
|
||||
@Override
|
||||
public void render(MatrixStack matrices, VertexConsumer vertexConsumer, float cx, float cy, float cz)
|
||||
public void render(Tessellator tessellator, BufferBuilder bufferBuilder, float cx, float cy, float cz)
|
||||
{
|
||||
drawBox(matrices, vertexConsumer,
|
||||
RenderSystem.lineWidth(2.0F);
|
||||
bufferBuilder.begin(GL11.GL_LINES, VertexFormats.POSITION_COLOR); // 3
|
||||
drawBox(bufferBuilder,
|
||||
shape.x1-cx, shape.y1-cy, shape.z1-cz,
|
||||
shape.x2-cx, shape.y2-cy, shape.z2-cz,
|
||||
shape.r, shape.g, shape.b, shape.a, shape.r, shape.g, shape.b
|
||||
);
|
||||
tessellator.draw();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class RenderedLine extends RenderedShape<ShapeDispatcher.Line>
|
||||
@@ -124,49 +151,51 @@ public class ShapesRenderer
|
||||
super(client, (ShapeDispatcher.Line)ShapeDispatcher.Line.fromTag(boxData));
|
||||
}
|
||||
@Override
|
||||
public void render(MatrixStack matrices, VertexConsumer vertexConsumer, float cx, float cy, float cz)
|
||||
public void render(Tessellator tessellator, BufferBuilder bufferBuilder, float cx, float cy, float cz)
|
||||
{
|
||||
drawLine(matrices, vertexConsumer,
|
||||
RenderSystem.lineWidth(2.0F);
|
||||
bufferBuilder.begin(GL11.GL_LINES, VertexFormats.POSITION_COLOR); // 3
|
||||
drawLine(bufferBuilder,
|
||||
shape.x1-cx, shape.y1-cy, shape.z1-cz,
|
||||
shape.x2-cx, shape.y2-cy, shape.z2-cz,
|
||||
shape.r, shape.g, shape.b, shape.a
|
||||
);
|
||||
tessellator.draw();
|
||||
}
|
||||
}
|
||||
|
||||
// some raw shit
|
||||
|
||||
public static void drawLine(MatrixStack matrix, VertexConsumer vertexConsumer, float x1, float y1, float z1, float x2, float y2, float z2, float red1, float grn1, float blu1, float alpha) {
|
||||
Matrix4f matrix4f = matrix.peek().getModel();
|
||||
vertexConsumer.vertex(matrix4f, x1, y1, z1).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
public static void drawLine(BufferBuilder builder, float x1, float y1, float z1, float x2, float y2, float z2, float red1, float grn1, float blu1, float alpha) {
|
||||
|
||||
builder.vertex(x1, y1, z1).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x2, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
}
|
||||
|
||||
public static void drawBox(MatrixStack matrix, VertexConsumer vertexConsumer, float x1, float y1, float z1, float x2, float y2, float z2, float red1, float grn1, float blu1, float alpha, float red2, float grn2, float blu2) {
|
||||
Matrix4f matrix4f = matrix.peek().getModel();
|
||||
vertexConsumer.vertex(matrix4f, x1, y1, z1).color(red1, grn2, blu2, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y1, z1).color(red1, grn2, blu2, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x1, y1, z1).color(red2, grn1, blu2, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x1, y2, z1).color(red2, grn1, blu2, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x1, y1, z1).color(red2, grn2, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x1, y1, z2).color(red2, grn2, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y1, z1).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y2, z1).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y2, z1).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x1, y2, z1).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x1, y2, z1).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x1, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x1, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x1, y1, z2).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x1, y1, z2).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y1, z2).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y1, z2).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y1, z1).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x1, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y1, z2).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y2, z1).color(red1, grn1, blu1, alpha).next();
|
||||
vertexConsumer.vertex(matrix4f, x2, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
public static void drawBox(BufferBuilder builder, float x1, float y1, float z1, float x2, float y2, float z2, float red1, float grn1, float blu1, float alpha, float red2, float grn2, float blu2) {
|
||||
builder.vertex(x1, y1, z1).color(red1, grn2, blu2, alpha).next();
|
||||
builder.vertex(x2, y1, z1).color(red1, grn2, blu2, alpha).next();
|
||||
builder.vertex(x1, y1, z1).color(red2, grn1, blu2, alpha).next();
|
||||
builder.vertex(x1, y2, z1).color(red2, grn1, blu2, alpha).next();
|
||||
builder.vertex(x1, y1, z1).color(red2, grn2, blu1, alpha).next();
|
||||
builder.vertex(x1, y1, z2).color(red2, grn2, blu1, alpha).next();
|
||||
builder.vertex(x2, y1, z1).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x2, y2, z1).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x2, y2, z1).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x1, y2, z1).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x1, y2, z1).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x1, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x1, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x1, y1, z2).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x1, y1, z2).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x2, y1, z2).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x2, y1, z2).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x2, y1, z1).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x1, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x2, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x2, y1, z2).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x2, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x2, y2, z1).color(red1, grn1, blu1, alpha).next();
|
||||
builder.vertex(x2, y2, z2).color(red1, grn1, blu1, alpha).next();
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,205 @@
|
||||
{
|
||||
"rule.antiCheatDisabled.name": "移动检测通杀",
|
||||
"rule.antiCheatDisabled.desc": "防止玩家因为“本服务器未启用飞行”,“移动过快”等原因被踢出",
|
||||
|
||||
"rule.carpets.name": "放置地毯执行功能",
|
||||
"rule.carpets.desc": "通过放置地毯方块快捷执行部分功能",
|
||||
|
||||
"rule.combineXPOrbs.name": "经验球合并",
|
||||
"rule.combineXPOrbs.desc": "会将多个小经验球合并为更大的经验球",
|
||||
|
||||
"rule.commandCameramode.name": "灵魂出窍模式",
|
||||
"rule.commandCameramode.desc": "启用/c和/s命令使得玩家可以在生存模式和观察者模式间切换",
|
||||
"rule.commandCameramode.extra.0": "/c和/s命令所有玩家(包括非OP玩家)都可以使用",
|
||||
|
||||
"rule.commandDistance.name": "距离测量",
|
||||
"rule.commandDistance.desc": "启用/distance命令以测量游戏中两点间距离",
|
||||
"rule.commandDistance.extra.0": "可以通过放置棕色地毯的方式使用本功能,前提是“放置地毯执行功能”已启用",
|
||||
|
||||
"rule.commandDraw.name": "画图",
|
||||
"rule.commandDraw.desc": "启用/draw命令以允许绘制一些简单图形",
|
||||
|
||||
"rule.commandInfo.name": "获取方块数据",
|
||||
"rule.commandInfo.desc": "启用/info命令以获取方块数据",
|
||||
"rule.commandInfo.extra.0": "可以通过放置灰色地毯的方式使用本功能,前提是“放置地毯执行功能”已启用",
|
||||
|
||||
"rule.commandLog.name": "游戏数据监视器",
|
||||
"rule.commandLog.desc": "启用/log命令以在聊天栏/Tab栏监视游戏部分数据",
|
||||
|
||||
"rule.commandPerimeterInfo.name": "刷怪区域搜寻器",
|
||||
"rule.commandPerimeterInfo.desc": "启用/perimeterinfo命令以搜寻周围的可刷怪区域",
|
||||
|
||||
"rule.commandPlayer.name": "假人控制",
|
||||
"rule.commandPlayer.desc": "启用/player命令以控制/召唤玩家",
|
||||
|
||||
"rule.commandScript.name": "地毯脚本控制器",
|
||||
"rule.commandScript.desc": "启用/script相关命令",
|
||||
"rule.commandScript.extra.0": "一个Scarpet语言的游戏内API",
|
||||
|
||||
"rule.commandSpawn.name": "刷怪追踪器",
|
||||
"rule.commandSpawn.desc": "启用/spawn命令用于怪物生成追踪",
|
||||
|
||||
"rule.commandTick.name": "游戏时钟控制器",
|
||||
"rule.commandTick.desc": "启用/tick命令以控制游戏时钟",
|
||||
|
||||
"rule.commandTrackAI.name": "AI追踪器",
|
||||
"rule.commandTrackAI.desc": "启用/track命令以追踪生物的AI",
|
||||
|
||||
"rule.ctrlQCraftingFix.name": "ctrlQ合成修复",
|
||||
"rule.ctrlQCraftingFix.desc": "在合成时允许使用ctrl+Q快捷键扔出结果格内所有物品",
|
||||
|
||||
"rule.customMOTD.name": "MOTD更改",
|
||||
"rule.customMOTD.desc": "设置一个不同的MOTD信息",
|
||||
"rule.customMOTD.extra.0": "使用'_'时将发送默认MOTD(从server.properties中读取)",
|
||||
|
||||
"rule.defaultLoggers.name": "默认游戏监视器",
|
||||
"rule.defaultLoggers.desc": "为所有新进入玩家设置部分监视器默认开启",
|
||||
"rule.defaultLoggers.extra.0": "比如设置'tps,mobcaps'作为默认监视器",
|
||||
|
||||
"rule.desertShrubs.name": "树苗在沙漠干枯",
|
||||
"rule.desertShrubs.desc": "树苗将在附近无水源的沙漠群系枯萎",
|
||||
|
||||
"rule.disableSpawnChunks.name": "允许出生点区块卸载",
|
||||
"rule.disableSpawnChunks.desc": "允许出生点区块卸载",
|
||||
|
||||
"rule.explosionNoBlockDamage.name": "防爆",
|
||||
"rule.explosionNoBlockDamage.desc": "任何形式的爆炸都不会摧毁方块",
|
||||
|
||||
"rule.extremeBehaviours.name": "随机极端情况",
|
||||
"rule.extremeBehaviours.desc": "大幅度提升极端情况出现概率,仅用于测试",
|
||||
"rule.extremeBehaviours.extra.0": "发射器和投掷器将使用最大随机刻",
|
||||
|
||||
"rule.fastRedstoneDust.name": "红石粉卡顿优化",
|
||||
"rule.fastRedstoneDust.desc": "红石粉卡顿优化 作者 Theosib",
|
||||
|
||||
"rule.fillLimit.name": "fill/clone上限更改",
|
||||
"rule.fillLimit.desc": "将fill/clone上限更改为自己需要的值",
|
||||
"rule.fillLimit.extra.0": "你必须在1-20M之间取一个值",
|
||||
|
||||
"rule.fillUpdates.name": "fill更新开关",
|
||||
"rule.fillUpdates.desc": "fill/clone/setblock命令以及结构方块执行时是否产生更新",
|
||||
"rule.fillUpdates.extra.0": "设置为true有更新 设置为false时为无更新",
|
||||
|
||||
"rule.flatWorldStructureSpawning.name": "结构怪在超平坦世界生成",
|
||||
"rule.flatWorldStructureSpawning.desc": "允许结构怪在超平坦世界生成",
|
||||
|
||||
"rule.flippinCactus.name": "仙人掌扳手",
|
||||
"rule.flippinCactus.desc": "允许使用仙人掌调整方块朝向,并且不会产生更新",
|
||||
|
||||
"rule.hardcodeTNTangle.name": "硬编码TNT角度",
|
||||
"rule.hardcodeTNTangle.desc": "把TNT水平随机角度设为固定值,可用于测试机器",
|
||||
"rule.hardcodeTNTangle.extra.0": "默认为-1,必须在0与360之间,或者-1",
|
||||
|
||||
"rule.hopperCounters.name": "漏斗计数器",
|
||||
"rule.hopperCounters.desc": "漏斗指向的羊毛会计算经过的物品",
|
||||
"rule.hopperCounters.extra.0": "在羊毛上放置红色或绿色地毯,使用/counter命令可启用",
|
||||
"rule.hopperCounters.extra.1": "使用 /counter <color?> reset重置计数器,使用/counter <color?>查询",
|
||||
"rule.hopperCounters.extra.2": "在生存模式,在同色羊毛上放绿地毯可以查询,放红地毯重置",
|
||||
"rule.hopperCounters.extra.3": "数据是全局性在玩家间共享的,并且有16颜色可用",
|
||||
"rule.hopperCounters.extra.4": "物品会被销毁,每个漏斗每tick销毁一组物品",
|
||||
|
||||
"rule.huskSpawningInTemples.name": "尸壳在神殿里生成",
|
||||
"rule.huskSpawningInTemples.desc": "只有尸壳会在沙漠神殿生成",
|
||||
|
||||
"rule.lagFreeSpawning.name": "延迟自然生成",
|
||||
"rule.lagFreeSpawning.desc": "生物生成需要更少的CPU和内存",
|
||||
|
||||
"rule.leadFix.name": "栓绳修复",
|
||||
"rule.leadFix.desc": "修复栓绳在未加载区块中,变得不可见的问题",
|
||||
|
||||
"rule.maxEntityCollisions.name": "最大实体挤压数",
|
||||
"rule.maxEntityCollisions.desc": "设定最大实体挤压限制,0表示无限大",
|
||||
|
||||
"rule.mergeTNT.name": "合并TNT",
|
||||
"rule.mergeTNT.desc": "合并静止的点燃的tnt实体",
|
||||
|
||||
"rule.missingTools.name": "工具缺失修复",
|
||||
"rule.missingTools.desc": "活塞,玻璃和海绵可以用合适的工具更快地破坏",
|
||||
|
||||
"rule.movableBlockEntities.name": "容器移动",
|
||||
"rule.movableBlockEntities.desc": "活塞可推动方块实体,比如箱子,漏斗",
|
||||
|
||||
"rule.onePlayerSleeping.name": "单个玩家睡觉",
|
||||
"rule.onePlayerSleeping.desc": "服务器里一个玩家睡觉可跳过夜晚",
|
||||
|
||||
"rule.optimizedTNT.name": "TNT优化",
|
||||
"rule.optimizedTNT.desc": "tnt在相同的地点或在流体里,爆炸造成更小的延迟",
|
||||
|
||||
"rule.persistentParrots.name": "鹦鹉停留",
|
||||
"rule.persistentParrots.desc": "鹦鹉不会离开你的肩膀,除非你收到伤害",
|
||||
|
||||
"rule.placementRotationFix.name": "放置旋转修复",
|
||||
"rule.placementRotationFix.desc": "修复了玩家放置方块时快速转身造成的问题",
|
||||
|
||||
"rule.pushLimit.name": "自定义推动上限",
|
||||
"rule.pushLimit.desc": "自定义活塞推动上限",
|
||||
"rule.pushLimit.extra.0": "你必须在1-1024中选取一个值",
|
||||
|
||||
"rule.quasiConnectivity.name": "qC激活开关",
|
||||
"rule.quasiConnectivity.desc": "活塞,发射器和投掷器在他们上方方块激活时是否响应",
|
||||
"rule.quasiConnectivity.extra.0": "设置为true为开启 设置为false为禁用",
|
||||
|
||||
"rule.railPowerLimit.name": "自定义动力铁轨激活距离",
|
||||
"rule.railPowerLimit.desc": "动力铁轨激活上限可自定义",
|
||||
"rule.railPowerLimit.extra.0": "你必须在1-1024中选取一个值",
|
||||
|
||||
"rule.renewableCoral.name": "珊瑚可再生",
|
||||
"rule.renewableCoral.desc": "使用骨粉可催熟珊瑚以生成珊瑚结构",
|
||||
|
||||
"rule.renewableSponges.name": "海绵可再生",
|
||||
"rule.renewableSponges.desc": "守卫者将在被雷击后会变为远古守卫者",
|
||||
|
||||
"rule.rotatorBlock.name": "仙人掌扳手发射器版",
|
||||
"rule.rotatorBlock.desc": "发射器中的仙人掌可以旋转方块(尽可能以逆时针)",
|
||||
|
||||
"rule.scriptsAutoload.name": "Scarpet脚本自动加载",
|
||||
"rule.scriptsAutoload.desc": "在服务器/世界加载的时候将会自动从世界文件中加载Scarpet脚本文件",
|
||||
"rule.scriptsAutoload.extra.0": "/script命令必须启用",
|
||||
|
||||
"rule.shulkerSpawningInEndCities.name": "潜影贝重生",
|
||||
"rule.shulkerSpawningInEndCities.desc": "潜影贝将会在末地城中重生",
|
||||
|
||||
"rule.silverFishDropGravel.name": "蠹虫钻出方块掉落沙砾",
|
||||
"rule.silverFishDropGravel.desc": "蠹虫钻出方块时会掉落沙砾",
|
||||
|
||||
"rule.smoothClientAnimations.name": "平滑客户端动画",
|
||||
"rule.smoothClientAnimations.desc": "低TPS设置时可以使客户端动画更加平滑",
|
||||
"rule.smoothClientAnimations.extra.0": "仅在单人游戏中生效,并且会降低客户端运行速度",
|
||||
|
||||
"rule.stackableShulkerBoxes.name": "潜影盒堆叠",
|
||||
"rule.stackableShulkerBoxes.desc": "空潜影盒仍在地上时将自动堆叠,直至堆叠为1组",
|
||||
"rule.stackableShulkerBoxes.extra.0": "在物品GUI中,请使用shift键+单击以移动整组潜影盒",
|
||||
|
||||
"rule.summonNaturalLightning.name": "召唤闪电自然化",
|
||||
"rule.summonNaturalLightning.desc": "召唤的闪电将拥有所有自然生成闪电拥有的特性",
|
||||
|
||||
"rule.tntDoNotUpdate.name": "TNT放置时不产生更新",
|
||||
"rule.tntDoNotUpdate.desc": "TNT在放置时不会产生任何方块更新(不会激活)",
|
||||
|
||||
"rule.tntPrimerMomentumRemoved.name": "移除TNT点燃时随机动量",
|
||||
"rule.tntPrimerMomentumRemoved.desc": "TNT点燃时的随机动量将被移除",
|
||||
|
||||
"rule.tntRandomRange.name": "TNT爆炸范围设置",
|
||||
"rule.tntRandomRange.desc": "设置TNT随机爆炸范围为一个固定的值,设为-1以禁用",
|
||||
"rule.tntRandomRange.extra.0": "必须启用optimizedTNT功能",
|
||||
"rule.tntRandomRange.extra.1": "不能为负值,除了-1",
|
||||
|
||||
"rule.unloadedEntityFix.name": "未加载实体修复",
|
||||
"rule.unloadedEntityFix.desc": "进入或者被推入未加载区块的实体不会消失",
|
||||
|
||||
"rule.viewDistance.name": "自定义视距",
|
||||
"rule.viewDistance.desc": "改变服务器视距,设为0以使用默认值",
|
||||
"rule.viewDistance.extra.0": "你必须在0(使用服务器默认设置)-32取一个整数",
|
||||
|
||||
"rule.xpNoCooldown.name": "经验吸收无冷却",
|
||||
"rule.xpNoCooldown.desc": "玩家吸收经验球时不会有冷却时间",
|
||||
|
||||
"rule.portalSuffocationFix.name": "传送门窒息修复",
|
||||
|
||||
|
||||
"rule.portalSuffocationFix.desc": "使下界传送门正确地传送实体",
|
||||
|
||||
|
||||
"rule.portalSuffocationFix.extra.0": "0000000",
|
||||
"rule.portalSuffocationFix.extra.1": "1111111",
|
||||
"rule.portalSuffocationFix.extra.0": "传送的实体将不再卡在黑曜石里面",
|
||||
|
||||
"rule.portalCreativeDelay.name": "创造玩家不被地狱门传送",
|
||||
"rule.portalCreativeDelay.desc": "创造模式的玩家将不会立即被地狱门传送",
|
||||
|
||||
|
||||
"category.bugfix": "BUG修复",
|
||||
|
||||
Reference in new issue
Block a user