mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-10-23 18:07:39 +00:00
Merge branch 'mc-1.20.x' into mc-1.21.x
This commit is contained in:
@@ -38,9 +38,9 @@ repositories {
|
||||
|
||||
dependencies {
|
||||
// Pull in our other projects. See comments in MinecraftConfigurations on this nastiness.
|
||||
implementation(project(":core"))
|
||||
implementation(commonClasses(project(":common-api")))
|
||||
clientImplementation(clientClasses(project(":common-api")))
|
||||
api(project(":core"))
|
||||
api(commonClasses(project(":common-api")))
|
||||
clientApi(clientClasses(project(":common-api")))
|
||||
|
||||
compileOnly(libs.mixin)
|
||||
compileOnly(libs.mixinExtra)
|
||||
|
||||
@@ -14,6 +14,7 @@ import dan200.computercraft.shared.computer.core.ComputerFamily;
|
||||
import dan200.computercraft.shared.config.Config;
|
||||
import dan200.computercraft.shared.pocket.items.PocketComputerItem;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.util.FastColor;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.component.DyedItemColor;
|
||||
import org.joml.Matrix4f;
|
||||
@@ -93,16 +94,11 @@ public final class PocketItemRenderer extends ItemMapLikeRenderer {
|
||||
}
|
||||
|
||||
private static void renderLight(PoseStack transform, MultiBufferSource render, int colour, int width, int height) {
|
||||
var r = (byte) ((colour >>> 16) & 0xFF);
|
||||
var g = (byte) ((colour >>> 8) & 0xFF);
|
||||
var b = (byte) (colour & 0xFF);
|
||||
var c = new byte[]{ r, g, b, (byte) 255 };
|
||||
|
||||
var buffer = render.getBuffer(RenderTypes.TERMINAL);
|
||||
FixedWidthFontRenderer.drawQuad(
|
||||
FixedWidthFontRenderer.toVertexConsumer(transform, buffer),
|
||||
width - LIGHT_HEIGHT * 2, height + BORDER / 2.0f, 0.001f, LIGHT_HEIGHT * 2, LIGHT_HEIGHT,
|
||||
c, RenderTypes.FULL_BRIGHT_LIGHTMAP
|
||||
FastColor.ARGB32.opaque(colour), RenderTypes.FULL_BRIGHT_LIGHTMAP
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,9 +12,11 @@ import dan200.computercraft.core.terminal.Palette;
|
||||
import dan200.computercraft.core.terminal.Terminal;
|
||||
import dan200.computercraft.core.terminal.TextBuffer;
|
||||
import dan200.computercraft.core.util.Colour;
|
||||
import net.minecraft.util.FastColor;
|
||||
import org.lwjgl.system.MemoryUtil;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
|
||||
import static dan200.computercraft.client.render.text.FixedWidthFontRenderer.*;
|
||||
import static org.lwjgl.system.MemoryUtil.*;
|
||||
@@ -37,10 +39,12 @@ import static org.lwjgl.system.MemoryUtil.*;
|
||||
* {@link FixedWidthFontRenderer}.
|
||||
*/
|
||||
public final class DirectFixedWidthFontRenderer {
|
||||
private static final boolean IS_LITTLE_ENDIAN = ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN;
|
||||
|
||||
private DirectFixedWidthFontRenderer() {
|
||||
}
|
||||
|
||||
private static void drawChar(QuadEmitter emitter, float x, float y, int index, byte[] colour) {
|
||||
private static void drawChar(QuadEmitter emitter, float x, float y, int index, int colour) {
|
||||
// Short circuit to avoid the common case - the texture should be blank here after all.
|
||||
if (index == '\0' || index == ' ') return;
|
||||
|
||||
@@ -157,8 +161,8 @@ public final class DirectFixedWidthFontRenderer {
|
||||
return (terminal.getHeight() + 2) * (terminal.getWidth() + 2) * 2;
|
||||
}
|
||||
|
||||
private static void quad(QuadEmitter buffer, float x1, float y1, float x2, float y2, float z, byte[] rgba, float u1, float v1, float u2, float v2) {
|
||||
buffer.quad(x1, y1, x2, y2, z, rgba, u1, v1, u2, v2);
|
||||
private static void quad(QuadEmitter buffer, float x1, float y1, float x2, float y2, float z, int colour, float u1, float v1, float u2, float v2) {
|
||||
buffer.quad(x1, y1, x2, y2, z, colour, u1, v1, u2, v2);
|
||||
}
|
||||
|
||||
public interface QuadEmitter {
|
||||
@@ -166,7 +170,7 @@ public final class DirectFixedWidthFontRenderer {
|
||||
|
||||
ByteBuffer buffer();
|
||||
|
||||
void quad(float x1, float y1, float x2, float y2, float z, byte[] rgba, float u1, float v1, float u2, float v2);
|
||||
void quad(float x1, float y1, float x2, float y2, float z, int colour, float u1, float v1, float u2, float v2);
|
||||
}
|
||||
|
||||
public record ByteBufferEmitter(ByteBuffer buffer) implements QuadEmitter {
|
||||
@@ -176,12 +180,12 @@ public final class DirectFixedWidthFontRenderer {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void quad(float x1, float y1, float x2, float y2, float z, byte[] rgba, float u1, float v1, float u2, float v2) {
|
||||
DirectFixedWidthFontRenderer.quad(buffer, x1, y1, x2, y2, z, rgba, u1, v1, u2, v2);
|
||||
public void quad(float x1, float y1, float x2, float y2, float z, int colour, float u1, float v1, float u2, float v2) {
|
||||
DirectFixedWidthFontRenderer.quad(buffer, x1, y1, x2, y2, z, colour, u1, v1, u2, v2);
|
||||
}
|
||||
}
|
||||
|
||||
static void quad(ByteBuffer buffer, float x1, float y1, float x2, float y2, float z, byte[] rgba, float u1, float v1, float u2, float v2) {
|
||||
static void quad(ByteBuffer buffer, float x1, float y1, float x2, float y2, float z, int colour, float u1, float v1, float u2, float v2) {
|
||||
// Emit a single quad to our buffer. This uses Unsafe (well, LWJGL's MemoryUtil) to directly blit bytes to the
|
||||
// underlying buffer. This allows us to have a single bounds check up-front, rather than one for every write.
|
||||
// This provides significant performance gains, at the cost of well, using Unsafe.
|
||||
@@ -195,16 +199,15 @@ public final class DirectFixedWidthFontRenderer {
|
||||
if (position < 0 || 112 > buffer.limit() - position) throw new IndexOutOfBoundsException();
|
||||
// Require the pointer to be aligned to a 32-bit boundary.
|
||||
if ((addr & 3) != 0) throw new IllegalStateException("Memory is not aligned");
|
||||
// Also assert the length of the array. This appears to help elide bounds checks on the array in some circumstances.
|
||||
if (rgba.length != 4) throw new IllegalStateException();
|
||||
|
||||
// Pack colour so it is equivalent to rgba:BBBB. This matches the logic in BufferBuilder.
|
||||
var colourAbgr = FastColor.ABGR32.fromArgb32(colour);
|
||||
var nativeColour = IS_LITTLE_ENDIAN ? colourAbgr : Integer.reverseBytes(colourAbgr);
|
||||
|
||||
memPutFloat(addr + 0, x1);
|
||||
memPutFloat(addr + 4, y1);
|
||||
memPutFloat(addr + 8, z);
|
||||
memPutByte(addr + 12, rgba[0]);
|
||||
memPutByte(addr + 13, rgba[1]);
|
||||
memPutByte(addr + 14, rgba[2]);
|
||||
memPutByte(addr + 15, (byte) 255);
|
||||
memPutInt(addr + 12, nativeColour);
|
||||
memPutFloat(addr + 16, u1);
|
||||
memPutFloat(addr + 20, v1);
|
||||
memPutShort(addr + 24, (short) 0xF0);
|
||||
@@ -213,10 +216,7 @@ public final class DirectFixedWidthFontRenderer {
|
||||
memPutFloat(addr + 28, x1);
|
||||
memPutFloat(addr + 32, y2);
|
||||
memPutFloat(addr + 36, z);
|
||||
memPutByte(addr + 40, rgba[0]);
|
||||
memPutByte(addr + 41, rgba[1]);
|
||||
memPutByte(addr + 42, rgba[2]);
|
||||
memPutByte(addr + 43, (byte) 255);
|
||||
memPutInt(addr + 40, nativeColour);
|
||||
memPutFloat(addr + 44, u1);
|
||||
memPutFloat(addr + 48, v2);
|
||||
memPutShort(addr + 52, (short) 0xF0);
|
||||
@@ -225,10 +225,7 @@ public final class DirectFixedWidthFontRenderer {
|
||||
memPutFloat(addr + 56, x2);
|
||||
memPutFloat(addr + 60, y2);
|
||||
memPutFloat(addr + 64, z);
|
||||
memPutByte(addr + 68, rgba[0]);
|
||||
memPutByte(addr + 69, rgba[1]);
|
||||
memPutByte(addr + 70, rgba[2]);
|
||||
memPutByte(addr + 71, (byte) 255);
|
||||
memPutInt(addr + 68, nativeColour);
|
||||
memPutFloat(addr + 72, u2);
|
||||
memPutFloat(addr + 76, v2);
|
||||
memPutShort(addr + 80, (short) 0xF0);
|
||||
@@ -237,10 +234,7 @@ public final class DirectFixedWidthFontRenderer {
|
||||
memPutFloat(addr + 84, x2);
|
||||
memPutFloat(addr + 88, y1);
|
||||
memPutFloat(addr + 92, z);
|
||||
memPutByte(addr + 96, rgba[0]);
|
||||
memPutByte(addr + 97, rgba[1]);
|
||||
memPutByte(addr + 98, rgba[2]);
|
||||
memPutByte(addr + 99, (byte) 255);
|
||||
memPutInt(addr + 96, nativeColour);
|
||||
memPutFloat(addr + 100, u2);
|
||||
memPutFloat(addr + 104, v1);
|
||||
memPutShort(addr + 108, (short) 0xF0);
|
||||
|
||||
@@ -12,6 +12,7 @@ import dan200.computercraft.core.terminal.Terminal;
|
||||
import dan200.computercraft.core.terminal.TextBuffer;
|
||||
import dan200.computercraft.core.util.Colour;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.FastColor;
|
||||
import org.joml.Matrix4f;
|
||||
import org.joml.Vector3f;
|
||||
|
||||
@@ -41,7 +42,7 @@ public final class FixedWidthFontRenderer {
|
||||
static final float BACKGROUND_START = (WIDTH - 6.0f) / WIDTH;
|
||||
static final float BACKGROUND_END = (WIDTH - 4.0f) / WIDTH;
|
||||
|
||||
private static final byte[] BLACK = new byte[]{ byteColour(Colour.BLACK.getR()), byteColour(Colour.BLACK.getR()), byteColour(Colour.BLACK.getR()), (byte) 255 };
|
||||
private static final int BLACK = FastColor.ARGB32.color(255, byteColour(Colour.BLACK.getR()), byteColour(Colour.BLACK.getR()), byteColour(Colour.BLACK.getR()));
|
||||
private static final float Z_OFFSET = 1e-3f;
|
||||
|
||||
private FixedWidthFontRenderer() {
|
||||
@@ -59,7 +60,7 @@ public final class FixedWidthFontRenderer {
|
||||
return 15 - Terminal.getColour(c, def);
|
||||
}
|
||||
|
||||
private static void drawChar(QuadEmitter emitter, float x, float y, int index, byte[] colour, int light) {
|
||||
private static void drawChar(QuadEmitter emitter, float x, float y, int index, int colour, int light) {
|
||||
// Short circuit to avoid the common case - the texture should be blank here after all.
|
||||
if (index == '\0' || index == ' ') return;
|
||||
|
||||
@@ -75,7 +76,7 @@ public final class FixedWidthFontRenderer {
|
||||
);
|
||||
}
|
||||
|
||||
public static void drawQuad(QuadEmitter emitter, float x, float y, float z, float width, float height, byte[] colour, int light) {
|
||||
public static void drawQuad(QuadEmitter emitter, float x, float y, float z, float width, float height, int colour, int light) {
|
||||
quad(emitter, x, y, x + width, y + height, z, colour, BACKGROUND_START, BACKGROUND_START, BACKGROUND_END, BACKGROUND_END, light);
|
||||
}
|
||||
|
||||
@@ -216,10 +217,10 @@ public final class FixedWidthFontRenderer {
|
||||
return new QuadEmitter(transform.last().pose(), consumer);
|
||||
}
|
||||
|
||||
private static void quad(QuadEmitter c, float x1, float y1, float x2, float y2, float z, byte[] rgba, float u1, float v1, float u2, float v2, int light) {
|
||||
private static void quad(QuadEmitter c, float x1, float y1, float x2, float y2, float z, int colour, float u1, float v1, float u2, float v2, int light) {
|
||||
var poseMatrix = c.poseMatrix();
|
||||
var consumer = c.consumer();
|
||||
byte r = rgba[0], g = rgba[1], b = rgba[2], a = rgba[3];
|
||||
int r = FastColor.ARGB32.red(colour), g = FastColor.ARGB32.green(colour), b = FastColor.ARGB32.blue(colour), a = FastColor.ARGB32.alpha(colour);
|
||||
|
||||
consumer.addVertex(poseMatrix, x1, y1, z).setColor(r, g, b, a).setUv(u1, v1).setLight(light);
|
||||
consumer.addVertex(poseMatrix, x1, y2, z).setColor(r, g, b, a).setUv(u1, v2).setLight(light);
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
{
|
||||
"argument.computercraft.argument_expected": "引数が期待される",
|
||||
"argument.computercraft.computer.distance": "エンティティまでの距離",
|
||||
"argument.computercraft.computer.family": "コンピューターファミリー",
|
||||
"argument.computercraft.computer.id": "コンピューターID",
|
||||
"argument.computercraft.computer.instance": "固有インスタンスID",
|
||||
"argument.computercraft.computer.label": "コンピューターラベル",
|
||||
"argument.computercraft.computer.many_matching": "'%s'に一致する複数のコンピューター (インスタンス %s)",
|
||||
"argument.computercraft.computer.no_matching": "'%s'に一致するコンピュータはありません",
|
||||
"argument.computercraft.computer.no_matching": "'%s'に一致するコンピューターはありません",
|
||||
"argument.computercraft.tracking_field.no_field": "'%s'は未知のフィールドです",
|
||||
"argument.computercraft.unknown_computer_family": "'%s'は未知のコンピューターファミリーです",
|
||||
"block.computercraft.cable": "ネットワークケーブル",
|
||||
"block.computercraft.computer_advanced": "高度なコンピューター",
|
||||
"block.computercraft.computer_command": "コマンドコンピューター",
|
||||
@@ -12,9 +18,9 @@
|
||||
"block.computercraft.monitor_normal": "モニター",
|
||||
"block.computercraft.printer": "プリンター",
|
||||
"block.computercraft.speaker": "スピーカー",
|
||||
"block.computercraft.turtle_advanced": "高度なタートル",
|
||||
"block.computercraft.turtle_advanced.upgraded": "高度な%sタートル",
|
||||
"block.computercraft.turtle_advanced.upgraded_twice": "高度な%s%sタートル",
|
||||
"block.computercraft.turtle_advanced": "アドバンスドタートル",
|
||||
"block.computercraft.turtle_advanced.upgraded": "アドバンスド%sタートル",
|
||||
"block.computercraft.turtle_advanced.upgraded_twice": "アドバンスド%s%sタートル",
|
||||
"block.computercraft.turtle_normal": "タートル",
|
||||
"block.computercraft.turtle_normal.upgraded": "%sタートル",
|
||||
"block.computercraft.turtle_normal.upgraded_twice": "%s%sタートル",
|
||||
@@ -24,11 +30,11 @@
|
||||
"block.computercraft.wireless_modem_normal": "無線モデム",
|
||||
"chat.computercraft.wired_modem.peripheral_connected": "周辺の\"%s\"のネットワークに接続されました",
|
||||
"chat.computercraft.wired_modem.peripheral_disconnected": "周辺の\"%s\"のネットワークから切断されました",
|
||||
"commands.computercraft.desc": "/computercraft コマンドは、コンピュータとの制御および対話するためのさまざまなデバッグツールと管理者ツールを提供します。",
|
||||
"commands.computercraft.dump.action": "このコンピュータの詳細を表示します",
|
||||
"commands.computercraft.dump.desc": "すべてのコンピューターの状態、または一台のコンピューターの特定の情報を表示する。 コンピュータのインスタンスID (例えば 123), コンピュータID (例えば #123) またはラベル (例えば \\\"@My Computer\\\") を指定することができます。",
|
||||
"commands.computercraft.dump.open_path": "このコンピュータのファイルを表示します",
|
||||
"commands.computercraft.dump.synopsis": "コンピュータの状態を表示します。",
|
||||
"commands.computercraft.desc": "/computercraft コマンドは、コンピューターとの制御および対話するためのさまざまなデバッグツールと管理者ツールを提供します。",
|
||||
"commands.computercraft.dump.action": "このコンピューターの詳細を表示します",
|
||||
"commands.computercraft.dump.desc": "すべてのコンピューターの状態、または一台のコンピューターの特定の情報を表示する。 コンピューターのインスタンスID (例えば 123), コンピューターID (例えば #123) またはラベル (例えば \\\"@My Computer\\\") を指定することができます。",
|
||||
"commands.computercraft.dump.open_path": "このコンピューターのファイルを表示します",
|
||||
"commands.computercraft.dump.synopsis": "コンピューターの状態を表示します。",
|
||||
"commands.computercraft.generic.additional_rows": "%d行を追加…",
|
||||
"commands.computercraft.generic.exception": "未処理の例外 (%s)",
|
||||
"commands.computercraft.generic.no": "N",
|
||||
@@ -39,65 +45,182 @@
|
||||
"commands.computercraft.help.no_children": "%s にサブコマンドはありません",
|
||||
"commands.computercraft.help.no_command": "%s というコマンドはありません",
|
||||
"commands.computercraft.help.synopsis": "特定のコマンドのヘルプを提供します",
|
||||
"commands.computercraft.queue.desc": "追加の引数を通過する computer_command インベントをコマンドコンピューターに送信します。これは主にマップメーカーのために設計されており、よりコンピュータフレンドリーバージョンの /trigger として機能します。 どのプレイヤーでもコマンドを実行できます。これは、テキストコンポーネントのクリックイベントを介して行われる可能性があります。",
|
||||
"commands.computercraft.queue.desc": "追加の引数を通過する computer_command インベントをコマンドコンピューターに送信します。これは主にマップメーカーのために設計されており、よりコンピューターフレンドリーバージョンの /trigger として機能します。 どのプレイヤーでもコマンドを実行できます。これは、テキストコンポーネントのクリックイベントを介して行われる可能性があります。",
|
||||
"commands.computercraft.queue.synopsis": "computer_command インベントをコマンドコンピューターに送信します",
|
||||
"commands.computercraft.shutdown.desc": "指定されたコンピュータ、指定されていない場合はすべてのコンピュータをシャットダウンします。 コンピュータのインスタンスID (例えば 123), コンピュータID (例えば #123) またはラベル (例えば \\\"@My Computer\\\") を指定することができます。",
|
||||
"commands.computercraft.shutdown.desc": "指定されたコンピューター、指定されていない場合はすべてのコンピューターをシャットダウンします。 コンピューターのインスタンスID (例えば 123), コンピューターID (例えば #123) またはラベル (例えば \\\"@My Computer\\\") を指定することができます。",
|
||||
"commands.computercraft.shutdown.done": "%s/%s コンピューターをシャットダウンしました",
|
||||
"commands.computercraft.shutdown.synopsis": "コンピュータをリモートでシャットダウンする。",
|
||||
"commands.computercraft.synopsis": "コンピュータを制御するためのさまざまなコマンド。",
|
||||
"commands.computercraft.shutdown.synopsis": "コンピューターをリモートでシャットダウンする。",
|
||||
"commands.computercraft.synopsis": "コンピューターを制御するためのさまざまなコマンド。",
|
||||
"commands.computercraft.tp.action": "このコンピューターへテレポートします",
|
||||
"commands.computercraft.tp.desc": "コンピュータの場所にテレポート.コンピュータのインスタンスID(例えば 123)またはコンピュータID(例えば #123)を指定することができます。",
|
||||
"commands.computercraft.tp.synopsis": "特定のコンピュータにテレポート。",
|
||||
"commands.computercraft.track.desc": "コンピュータの実行時間を追跡するだけでなく、イベントを確認することができます。 これは /forge と同様の方法で情報を提示し、遅れを診断するのに役立ちます。",
|
||||
"commands.computercraft.tp.desc": "コンピューターの場所にテレポート.コンピューターのインスタンスID(例えば 123)またはコンピューターID(例えば #123)を指定することができます。",
|
||||
"commands.computercraft.tp.synopsis": "特定のコンピューターにテレポート。",
|
||||
"commands.computercraft.track.desc": "コンピューターの実行時間を追跡するだけでなく、イベントを確認することができます。 これは /forge と同様の方法で情報を提示し、遅れを診断するのに役立ちます。",
|
||||
"commands.computercraft.track.dump.computer": "コンピューター",
|
||||
"commands.computercraft.track.dump.desc": "コンピュータの最新の追跡結果をダンプしてください。",
|
||||
"commands.computercraft.track.dump.desc": "コンピューターの最新の追跡結果をダンプしてください。",
|
||||
"commands.computercraft.track.dump.no_timings": "利用可能なタイミングはありません",
|
||||
"commands.computercraft.track.dump.synopsis": "最新の追跡結果をダンプしてください",
|
||||
"commands.computercraft.track.start.desc": "すべてのコンピュータの実行時間とイベント数の追跡を開始します。 これにより、以前の実行結果が破棄されます。",
|
||||
"commands.computercraft.track.start.desc": "すべてのコンピューターの実行時間とイベント数の追跡を開始します。 これにより、以前の実行結果が破棄されます。",
|
||||
"commands.computercraft.track.start.stop": "トラッキングを停止して結果を表示するには %s を実行してください",
|
||||
"commands.computercraft.track.start.synopsis": "すべてのコンピュータの追跡を開始します",
|
||||
"commands.computercraft.track.start.synopsis": "すべてのコンピューターの追跡を開始します。",
|
||||
"commands.computercraft.track.stop.action": "追跡を中止するためにクリックしてください",
|
||||
"commands.computercraft.track.stop.desc": "すべてのコンピュータのイベントと実行時間の追跡を停止します",
|
||||
"commands.computercraft.track.stop.not_enabled": "現在コンピュータを追跡していません",
|
||||
"commands.computercraft.track.stop.synopsis": "すべてのコンピュータの追跡を停止します",
|
||||
"commands.computercraft.track.synopsis": "コンピュータの実行時間を追跡します。",
|
||||
"commands.computercraft.turn_on.desc": "指定されているコンピュータを起動します。 コンピュータのインスタンスID (例えば 123), コンピュータID (例えば #123) またはラベル (例えば \\\"@My Computer\\\") を指定することができます。",
|
||||
"commands.computercraft.track.stop.desc": "すべてのコンピューターのイベントと実行時間の追跡を停止します",
|
||||
"commands.computercraft.track.stop.not_enabled": "現在コンピューターを追跡していません",
|
||||
"commands.computercraft.track.stop.synopsis": "すべてのコンピューターの追跡を停止します。",
|
||||
"commands.computercraft.track.synopsis": "コンピューターの実行時間を追跡します。",
|
||||
"commands.computercraft.turn_on.desc": "指定されているコンピューターを起動します。 コンピューターのインスタンスID (例えば 123), コンピューターID (例えば #123) またはラベル (例えば \\\"@My Computer\\\") を指定することができます。",
|
||||
"commands.computercraft.turn_on.done": "%s/%s コンピューターを起動しました",
|
||||
"commands.computercraft.turn_on.synopsis": "コンピューターをリモートで起動します。",
|
||||
"commands.computercraft.view.action": "このコンピュータを見ます",
|
||||
"commands.computercraft.view.desc": "コンピュータのターミナルを開き、コンピュータのリモートコントロールを可能にします。 これはタートルのインベントリへのアクセスを提供しません。 コンピュータのインスタンスID(例えば 123)またはコンピュータID(例えば #123)を指定することができます。",
|
||||
"commands.computercraft.view.action": "このコンピューターを見ます",
|
||||
"commands.computercraft.view.desc": "コンピューターのターミナルを開き、コンピューターのリモートコントロールを可能にします。 これはタートルのインベントリへのアクセスを提供しません。 コンピューターのインスタンスID(例えば 123)またはコンピューターID(例えば #123)を指定することができます。",
|
||||
"commands.computercraft.view.not_player": "非プレイヤー用のターミナルを開くことができません",
|
||||
"commands.computercraft.view.synopsis": "コンピュータのターミナルを表示します。",
|
||||
"gui.computercraft.pocket_computer_overlay": "ポケットコンピュータを開いています。 ESCを押して閉じます。",
|
||||
"gui.computercraft.tooltip.computer_id": "コンピュータID: %s",
|
||||
"commands.computercraft.view.synopsis": "コンピューターのターミナルを表示します。",
|
||||
"gui.computercraft.config.command_require_creative": "コマンドコンピューターはクリエイティブモードが必要です。",
|
||||
"gui.computercraft.config.command_require_creative.tooltip": "コマンドコンピューターと対話するためにはプレイヤーがクリエイティブモードかつOP権限保有者でなければなりません。\nこれはバニラのコマンドブロックのデフォルト挙動です。",
|
||||
"gui.computercraft.config.computer_space_limit": "コンピューターの限容制限(バイト)",
|
||||
"gui.computercraft.config.computer_space_limit.tooltip": "コンピューターとタートルのディスク容量制限、バイト単位。",
|
||||
"gui.computercraft.config.default_computer_settings": "デフォルトのコンピューター設定",
|
||||
"gui.computercraft.config.default_computer_settings.tooltip": "新しいコンピューターに設定するデフォルトのシステム設定のコンマ区切りのリスト。\n例: \"shell.autocomplete=false,lua.autocomplete=false,edit.autocomplete=false\"\nは全ての自動補完を無効にします。",
|
||||
"gui.computercraft.config.disabled_generic_methods": "無効化するジェネリックメソッド",
|
||||
"gui.computercraft.config.disabled_generic_methods.tooltip": "無効にするジェネリックメソッドまたはメソッドソースのリスト。\nジェネリックメソッドは、明示的な周辺プロバイダがない場合にブロック/ブロックエンティティに追加されるメソッドです。\nこれには、インベントリメソッド (inventory.getItemDetail や inventory.pushItems) や、(Forgeであれば)fluid_storage や energy_storage メソッドが含まれます。\nこのリストに含まれるメソッドは、メソッド群全体 (computercraft:inventory) か、単一のメソッド (computercraft:inventory#pushItems) のどちらかになります。",
|
||||
"gui.computercraft.config.execution": "実行",
|
||||
"gui.computercraft.config.execution.computer_threads": "コンピューターのスレッド",
|
||||
"gui.computercraft.config.execution.computer_threads.tooltip": "コンピューターが実行できるスレッド数を設定する。\n数値が高いほどより多くのコンピューターが一度に実行できますが、ラグを誘発する可能性があります。\nスレッド数が1より大きいと動作しないMODもあるので注意してください\n範囲: > 1",
|
||||
"gui.computercraft.config.execution.max_main_computer_time": "サーバーティックのコンピューター時間上限",
|
||||
"gui.computercraft.config.execution.max_main_computer_time.tooltip": "コンピューターが1ティックで実行できる理想的な最大時間、ミリ秒単位。\nどれぐらい時間がかかるか不明であるため、上限を超える可能性があることに注意。\nこれは平均時間の上限を目的とする。\n範囲: > 1",
|
||||
"gui.computercraft.config.execution.max_main_global_time": "サーバーティックのグローバル回数上限",
|
||||
"gui.computercraft.config.execution.max_main_global_time.tooltip": "1ティックでタスクを実行できる最大時間、ミリ秒単位。\nどれぐらい時間がかかるか不明であるため、上限を超える可能性があることに注意。\nこれは平均回数の上限を時間とする。",
|
||||
"gui.computercraft.config.execution.tooltip": "コンピュータの実行挙動を制御する。\nこれは主にサーバーを微調整するためのもので、一般的には触る必要はない。",
|
||||
"gui.computercraft.config.floppy_space_limit": "フロッピーディスクの容量制限(バイト)",
|
||||
"gui.computercraft.config.floppy_space_limit.tooltip": "フロッピーディスクのディスク容量制限(バイト単位)。",
|
||||
"gui.computercraft.config.http": "HTTP",
|
||||
"gui.computercraft.config.http.bandwidth": "帯域幅",
|
||||
"gui.computercraft.config.http.bandwidth.global_download": "グローバルダウンロード制限",
|
||||
"gui.computercraft.config.http.bandwidth.global_download.tooltip": "1秒間にダウンロードできるバイト数。これはすべてのコンピュータで共有されます。(byte/s).\n範囲: > 1",
|
||||
"gui.computercraft.config.http.bandwidth.global_upload": "グローバルアップロード制限",
|
||||
"gui.computercraft.config.http.bandwidth.global_upload.tooltip": "1秒間にアップロードできるバイト数。これはすべてのコンピュータで共有されます。(byte/s).\n範囲: > 1",
|
||||
"gui.computercraft.config.http.bandwidth.tooltip": "コンピュータが使用する帯域幅を制限する。",
|
||||
"gui.computercraft.config.http.enabled": "HTTP APIを有効にする",
|
||||
"gui.computercraft.config.http.enabled.tooltip": "コンピュータの\"http\" APIを有効にする。これを無効にすると、多くのユーザーが依存している\"pastebin\"と\"wget\"プログラムも無効になる。\nこのオプションはオンのままにしておき、よりきめ細かい制御を行うために\"ルール\"の設定オプションを使用することを推奨する。",
|
||||
"gui.computercraft.config.http.max_requests": "最大同時リクエスト数",
|
||||
"gui.computercraft.config.http.max_requests.tooltip": "コンピューターが一度にできるhttpリクエストの数。追加のリクエストはキューに入れられ、実行中のリクエストが終了したときに送信されます。無制限の場合は0に設定します。\n範囲: > 0",
|
||||
"gui.computercraft.config.http.max_websockets": "最大同時ウェブソケット数",
|
||||
"gui.computercraft.config.http.max_websockets.tooltip": "コンピュータが一度に開くことのできるウェブソケットの数。\n範囲: > 1",
|
||||
"gui.computercraft.config.http.proxy": "プロキシ",
|
||||
"gui.computercraft.config.http.proxy.host": "ホスト名",
|
||||
"gui.computercraft.config.http.proxy.host.tooltip": "プロキシサーバーのホスト名またはIPアドレス。",
|
||||
"gui.computercraft.config.http.proxy.port": "ポート",
|
||||
"gui.computercraft.config.http.proxy.port.tooltip": "プロキシサーバーのポート。\n範囲: 1 ~ 65536",
|
||||
"gui.computercraft.config.http.proxy.tooltip": "HTTPとウェブソケットリクエストをプロキシサーバ経由でトンネリングする。\"use_proxy\"が\"true\"(デフォルトでは\"off\")に設定されている HTTPルールにのみ影響します。\nプロキシに認証が必要な場合は、\"computercraft-server.toml\"と同じディレクトリに\"myuser:mypassword\"のようにユーザー名とパスワードをコロンで区切って記述した\"computercraft-proxy.pw\"ファイルを作成します。\nSOCKS4プロキシでは、ユーザー名のみが必要です。",
|
||||
"gui.computercraft.config.http.proxy.type": "プロキシ種類",
|
||||
"gui.computercraft.config.http.proxy.type.tooltip": "使用するプロキシの種類。\n許可された値: HTTP, HTTPS, SOCKS4, SOCKS5",
|
||||
"gui.computercraft.config.http.rules": "ルールの許可/拒否",
|
||||
"gui.computercraft.config.http.rules.tooltip": "特定のドメインやIPに対する\"http\" APIの動作を制御するルールのリスト。それぞれのルールはホスト名とオプションのポートに対して対応し、 リクエストに対していくつかのプロパティを設定します。 ルールは順番に評価され、前のルールが後のルールを上書きします。\n\n有効なプロパティ:\n - \"host\" (必須): このルールが対応するドメインまたはIPアドレス。 これはドメイン名(\"pastebin.com\")、ワイルドカード(\"*.pastebin.com\")、あるいはCIDR表記(\"127.0.0.0/8\")となります。\n - \"port\" (オプション): 80や 443など、特定のポートに対するリクエストにのみマッチする。.\n\n - \"action\" (オプション): このリクエストを許可するか拒否するか。\n - \"max_download\" (オプション): このリクエストでコンピューターがダウンロードできる最大サイズ(バイト単位)。\n - \"max_upload\" (オプション): このリクエストでコンピューターがアップロードできる最大サイズ(バイト)。\n - \"max_websocket_message\" (オプション): コンピューターが1つのウェブソケット・パケットで送受信できる最大サイズ(バイト)。\n - \"use_proxy\" (オプション): HTTP/SOCKSプロキシが設定されている場合は、その使用を有効にする。",
|
||||
"gui.computercraft.config.http.tooltip": "HTTP APIの制御",
|
||||
"gui.computercraft.config.http.websocket_enabled": "ウェブソケットを有効にする",
|
||||
"gui.computercraft.config.http.websocket_enabled.tooltip": "httpウェブソケットの使用を有効にする。これには、\"http_enable\"オプションもtrueである必要があります。.",
|
||||
"gui.computercraft.config.log_computer_errors": "コンピュータのエラーを記録する",
|
||||
"gui.computercraft.config.log_computer_errors.tooltip": "周辺機器やその他のLuaオブジェクトが発生させた例外を記録します。これにより、MODの作者が問題をデバッグしやすくなりますが、バグを含んだメソッドを使用した場合、ログスパムが発生する可能性があります。",
|
||||
"gui.computercraft.config.maximum_open_files": "1台のコンピューターで開けるファイルの最大数",
|
||||
"gui.computercraft.config.maximum_open_files.tooltip": "コンピューターが同時に開くことができるファイルの数を設定します。無制限の場合は0に設定します。\n範囲: > 0",
|
||||
"gui.computercraft.config.monitor_distance": "モニター距離",
|
||||
"gui.computercraft.config.monitor_distance.tooltip": "モニターがレンダリングする最大距離。デフォルトは標準的なタイルエンティティの制限値ですが、より大きなモニタを構築したい場合は拡張することができます。\n範囲: 16 ~ 1024",
|
||||
"gui.computercraft.config.monitor_renderer": "モニターレンダラー",
|
||||
"gui.computercraft.config.monitor_renderer.tooltip": "モニターに使用するレンダラー。一般的に、この値は\"best\"に保つたれるべきです。 - モニターにパフォーマンス上の問題がある場合は、別のレンダラーを試してみるとよいでしょう。\n許可された値: BEST, TBO, VBO",
|
||||
"gui.computercraft.config.peripheral": "周辺機器",
|
||||
"gui.computercraft.config.peripheral.command_block_enabled": "コマンドブロック周辺機器を有効にする",
|
||||
"gui.computercraft.config.peripheral.command_block_enabled.tooltip": "コマンドブロック周辺機器サポートを有効にする",
|
||||
"gui.computercraft.config.peripheral.max_notes_per_tick": "コンピューターが一度に演奏できる最大音符数",
|
||||
"gui.computercraft.config.peripheral.max_notes_per_tick.tooltip": "スピーカーが一度に演奏できる最大音符数。\n範囲: > 1",
|
||||
"gui.computercraft.config.peripheral.modem_high_altitude_range": "モデム範囲(高高度)",
|
||||
"gui.computercraft.config.peripheral.modem_high_altitude_range.tooltip": "晴天時の最大高度におけるワイヤレスモデムの通信距離、メートル単位。\n範囲: 0 ~ 100000",
|
||||
"gui.computercraft.config.peripheral.modem_high_altitude_range_during_storm": "モデム範囲(高高度、悪天候)",
|
||||
"gui.computercraft.config.peripheral.modem_high_altitude_range_during_storm.tooltip": "悪天候の最大高度におけるワイヤレスモデムの通信距離、メートル単位。\n範囲: 0 ~ 100000",
|
||||
"gui.computercraft.config.peripheral.modem_range": "モデム範囲(デフォルト)",
|
||||
"gui.computercraft.config.peripheral.modem_range.tooltip": "晴天時の低高度におけるワイヤレスモデムの通信距離、メートル単位。\n範囲: 0 ~ 100000",
|
||||
"gui.computercraft.config.peripheral.modem_range_during_storm": "モデム範囲(悪天候)",
|
||||
"gui.computercraft.config.peripheral.modem_range_during_storm.tooltip": "荒天時の低高度におけるワイヤレスモデムの通信距離、メートル単位。\n範囲: 0 ~ 100000",
|
||||
"gui.computercraft.config.peripheral.monitor_bandwidth": "モニター帯域幅",
|
||||
"gui.computercraft.config.peripheral.monitor_bandwidth.tooltip": "1ティックあたりのモニターデータ送信量の上限。注:\n - 帯域幅は圧縮前に測定されるため、クライアントに送信されるデータはより小さくなります。\n - これは、パケットを送信するプレーヤーの数を無視する。1人のプレーヤーのモニターを更新することは、20人に送信するのと同じ帯域幅の制限を消費する。\n - フルサイズのモニターは~25kbのデータを送信する。そのため、デフォルト(1MB)では、1回のティックで~40個のモニターを更新することができる。\n 無効にするには 0 を設定する。\n範囲: > 0",
|
||||
"gui.computercraft.config.peripheral.tooltip": "周辺機器に関する各種オプション。",
|
||||
"gui.computercraft.config.term_sizes": "ターミナルサイズ",
|
||||
"gui.computercraft.config.term_sizes.computer": "コンピューター",
|
||||
"gui.computercraft.config.term_sizes.computer.height": "ターミナルの高さ",
|
||||
"gui.computercraft.config.term_sizes.computer.height.tooltip": "範囲: 1 ~ 255",
|
||||
"gui.computercraft.config.term_sizes.computer.tooltip": "コンピュータの端末サイズ。",
|
||||
"gui.computercraft.config.term_sizes.computer.width": "ターミナルの幅",
|
||||
"gui.computercraft.config.term_sizes.computer.width.tooltip": "範囲: 1 ~ 255",
|
||||
"gui.computercraft.config.term_sizes.monitor": "モニター",
|
||||
"gui.computercraft.config.term_sizes.monitor.height": "モニターの最大高さ",
|
||||
"gui.computercraft.config.term_sizes.monitor.height.tooltip": "範囲: 1 ~ 32",
|
||||
"gui.computercraft.config.term_sizes.monitor.tooltip": "モニターの最大サイズ(ブロック単位).",
|
||||
"gui.computercraft.config.term_sizes.monitor.width": "モニターの最大幅",
|
||||
"gui.computercraft.config.term_sizes.monitor.width.tooltip": "範囲: 1 ~ 32",
|
||||
"gui.computercraft.config.term_sizes.pocket_computer": "ポケットコンピューター",
|
||||
"gui.computercraft.config.term_sizes.pocket_computer.height": "ターミナルの高さ",
|
||||
"gui.computercraft.config.term_sizes.pocket_computer.height.tooltip": "範囲: 1 ~ 255",
|
||||
"gui.computercraft.config.term_sizes.pocket_computer.tooltip": "ポケットコンピュータのターミナルサイズ。",
|
||||
"gui.computercraft.config.term_sizes.pocket_computer.width": "ターミナルの幅",
|
||||
"gui.computercraft.config.term_sizes.pocket_computer.width.tooltip": "範囲: 1 ~ 255",
|
||||
"gui.computercraft.config.term_sizes.tooltip": "各種コンピュータのターミナルサイズを設定します。ターミナルサイズが大きくなるとより多くの帯域幅を必要としますので、注意して使用してください。",
|
||||
"gui.computercraft.config.turtle": "タートル",
|
||||
"gui.computercraft.config.turtle.advanced_fuel_limit": "アドバンスドタートルの燃料制限",
|
||||
"gui.computercraft.config.turtle.advanced_fuel_limit.tooltip": "アドバンスドタートルの燃料制限。\n範囲: > 0",
|
||||
"gui.computercraft.config.turtle.can_push": "タートルのによるエンティティ押出し",
|
||||
"gui.computercraft.config.turtle.can_push.tooltip": "trueに設定すると、タートルは空間がある場合停止する代わりにエンティティを押し出す。",
|
||||
"gui.computercraft.config.turtle.need_fuel": "燃料を有効にする",
|
||||
"gui.computercraft.config.turtle.need_fuel.tooltip": "タートルズが移動に燃料を必要とするかどうかを設定する。",
|
||||
"gui.computercraft.config.turtle.normal_fuel_limit": "タートルの燃料制限",
|
||||
"gui.computercraft.config.turtle.normal_fuel_limit.tooltip": "タートルの燃料制限。\n範囲: > 0",
|
||||
"gui.computercraft.config.turtle.tooltip": "タートルに関する様々なオプション。",
|
||||
"gui.computercraft.config.upload_max_size": "ファイルアップロードサイズ制限(バイト)",
|
||||
"gui.computercraft.config.upload_max_size.tooltip": "ファイルアップロードサイズの上限をバイト数で指定します。1KiBから16MiBの範囲でなければなりません。 \nアップロードは1ティックで処理されることを覚えておいてください - 大きなファイルやネットワークパフォーマンスの低下はネットワーキングスレッドを停止させる可能性があります。\nディスク容量にも注意してください!\n範囲: 1024 ~ 16777216",
|
||||
"gui.computercraft.config.upload_nag_delay": "アップロード催促遅延",
|
||||
"gui.computercraft.config.upload_nag_delay.tooltip": "未処理の入力について通知するまでの遅延時間(秒)。無効にするには0を設定する。\n範囲: 0 ~ 60",
|
||||
"gui.computercraft.pocket_computer_overlay": "ポケットコンピューターを開いています。 ESCを押して閉じます。",
|
||||
"gui.computercraft.terminal": "コンピューターターミナル",
|
||||
"gui.computercraft.tooltip.computer_id": "コンピューターID: %s",
|
||||
"gui.computercraft.tooltip.copy": "クリップボードにコピー",
|
||||
"gui.computercraft.tooltip.disk_id": "ディスクID: %s",
|
||||
"gui.computercraft.tooltip.terminate": "現在実行中のコードを停止する",
|
||||
"gui.computercraft.tooltip.terminate.key": "Ctrl+T 長押し",
|
||||
"gui.computercraft.tooltip.turn_off": "このコンピュータをオフにする",
|
||||
"gui.computercraft.tooltip.turn_off": "このコンピューターをオフにする",
|
||||
"gui.computercraft.tooltip.turn_off.key": "Ctrl+S 長押し",
|
||||
"gui.computercraft.tooltip.turn_on": "このコンピュータをオンにする",
|
||||
"gui.computercraft.tooltip.turn_on": "このコンピューターをオンにする",
|
||||
"gui.computercraft.upload.failed": "アップロードに失敗しました",
|
||||
"gui.computercraft.upload.failed.computer_off": "ファイルをアップロードする前にコンピュータを起動する必要があります。",
|
||||
"gui.computercraft.upload.failed.computer_off": "ファイルをアップロードする前にコンピューターを起動する必要があります。",
|
||||
"gui.computercraft.upload.failed.corrupted": "アップロード時にファイルが破損しました。 もう一度やり直してください。",
|
||||
"gui.computercraft.upload.failed.generic": "ファイルのアップロードに失敗しました(%s)",
|
||||
"gui.computercraft.upload.failed.name_too_long": "ファイル名が長すぎてアップロードできません。",
|
||||
"gui.computercraft.upload.failed.too_many_files": "多くのファイルをアップロードできません。",
|
||||
"gui.computercraft.upload.failed.too_much": "アップロードするにはファイルが大きスギます。",
|
||||
"gui.computercraft.upload.no_response": "ファイルの転送",
|
||||
"gui.computercraft.upload.no_response.msg": "コンピュータが転送されたファイルを使用していません。プログラム %s を実行して再試行する必要があります。",
|
||||
"item.computercraft.disk": "フロッピーディスク",
|
||||
"item.computercraft.pocket_computer_advanced": "高度なポケットコンピュータ",
|
||||
"item.computercraft.pocket_computer_advanced.upgraded": "高度な%sポケットコンピュータ",
|
||||
"item.computercraft.pocket_computer_normal": "ポケットコンピュータ",
|
||||
"item.computercraft.pocket_computer_normal.upgraded": "%sポケットコンピュータ",
|
||||
"item.computercraft.pocket_computer_advanced": "高度なポケットコンピューター",
|
||||
"item.computercraft.pocket_computer_advanced.upgraded": "高度な%sポケットコンピューター",
|
||||
"item.computercraft.pocket_computer_normal": "ポケットコンピューター",
|
||||
"item.computercraft.pocket_computer_normal.upgraded": "%sポケットコンピューター",
|
||||
"item.computercraft.printed_book": "印刷された本",
|
||||
"item.computercraft.printed_page": "印刷された紙",
|
||||
"item.computercraft.printed_pages": "印刷された紙束",
|
||||
"item.computercraft.treasure_disk": "フロッピーディスク",
|
||||
"itemGroup.computercraft": "ComputerCraft",
|
||||
"tag.item.computercraft.computer": "コンピューター",
|
||||
"tag.item.computercraft.monitor": "モニター",
|
||||
"tag.item.computercraft.turtle": "タートル",
|
||||
"tag.item.computercraft.wired_modem": "有線モデム",
|
||||
"tracking_field.computercraft.avg": "%s (平均)",
|
||||
"tracking_field.computercraft.computer_tasks.name": "タスク",
|
||||
"tracking_field.computercraft.count": "%s (回)",
|
||||
"tracking_field.computercraft.fs.name": "ファイルシステム演算",
|
||||
"tracking_field.computercraft.http_download.name": "HTTPダウンロード",
|
||||
"tracking_field.computercraft.http_requests.name": "HTTPリクエスト",
|
||||
"tracking_field.computercraft.http_upload.name": "HTTPアップロード",
|
||||
"tracking_field.computercraft.java_allocation.name": "Java割当",
|
||||
"tracking_field.computercraft.max": "%s (最大)",
|
||||
"tracking_field.computercraft.peripheral.name": "実行呼び出し",
|
||||
"tracking_field.computercraft.server_tasks.name": "サーバータスク",
|
||||
"tracking_field.computercraft.turtle_ops.name": "タートル操作",
|
||||
"tracking_field.computercraft.websocket_incoming.name": "Websocket 受信",
|
||||
"tracking_field.computercraft.websocket_outgoing.name": "Websocket 送信",
|
||||
"upgrade.computercraft.speaker.adjective": "騒音",
|
||||
|
||||
@@ -160,5 +160,7 @@ class Monitor_Test {
|
||||
}
|
||||
|
||||
thenScreenshot()
|
||||
|
||||
thenExecute { helper.level.dayTime = Times.NOON }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,5 +53,7 @@ class Printout_Test {
|
||||
}
|
||||
|
||||
thenScreenshot()
|
||||
|
||||
thenExecute { helper.level.dayTime = Times.NOON }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -742,7 +742,7 @@ class Turtle_Test {
|
||||
@GameTest
|
||||
fun Breaks_exploding_block(context: GameTestHelper) = context.sequence {
|
||||
thenOnComputer { turtle.dig(Optional.empty()) }
|
||||
thenIdle(2)
|
||||
thenWaitUntil { context.assertBlockPresent(Blocks.AIR, BlockPos(2, 2, 2)) }
|
||||
thenExecute {
|
||||
context.assertItemEntityCountIs(ModRegistry.Items.TURTLE_NORMAL.get(), 1)
|
||||
context.assertItemEntityCountIs(Items.BONE_BLOCK, 65)
|
||||
|
||||
@@ -73,6 +73,7 @@ object ClientTestHooks {
|
||||
minecraft.options.cloudStatus().set(CloudStatus.OFF)
|
||||
minecraft.options.particles().set(ParticleStatus.MINIMAL)
|
||||
minecraft.options.tutorialStep = TutorialSteps.NONE
|
||||
minecraft.options.pauseOnLostFocus = false
|
||||
minecraft.options.renderDistance().set(6)
|
||||
minecraft.options.gamma().set(1.0)
|
||||
minecraft.options.getSoundSourceOptionInstance(SoundSource.MUSIC).set(0.0)
|
||||
@@ -92,10 +93,7 @@ object ClientTestHooks {
|
||||
LEVEL_NAME,
|
||||
LevelSettings("Test Level", GameType.CREATIVE, false, Difficulty.EASY, true, rules, WorldDataConfiguration.DEFAULT),
|
||||
WorldOptions(WorldOptions.randomSeed(), false, false),
|
||||
{
|
||||
it.registryOrThrow(Registries.WORLD_PRESET).getHolderOrThrow(WorldPresets.FLAT).value()
|
||||
.createWorldDimensions()
|
||||
},
|
||||
{ it.registryOrThrow(Registries.WORLD_PRESET).getOrThrow(WorldPresets.FLAT).createWorldDimensions() },
|
||||
screen,
|
||||
)
|
||||
}
|
||||
@@ -112,7 +110,20 @@ object ClientTestHooks {
|
||||
val testTracker = when (val tracker = this.testTracker) {
|
||||
null -> {
|
||||
if (server.overworld().players().isEmpty()) return
|
||||
|
||||
// Place our players above where the tests will run, looking down. This at least ensures they're in the
|
||||
// right area when the tests start running.
|
||||
for (player in server.overworld().players()) {
|
||||
player.abilities.flying = true
|
||||
player.onUpdateAbilities()
|
||||
player.connection.teleport(0.0, -30.0, 0.0, 0.0f, 90.0f)
|
||||
player.inventory.clearContent()
|
||||
}
|
||||
|
||||
// Wait for all chunks to be rendered.
|
||||
if (!Minecraft.getInstance().isRenderingStable()) return
|
||||
|
||||
// Then a little more just in case.
|
||||
if (startupDelay >= 0) {
|
||||
// TODO: Is there a better way? Maybe set a flag when the client starts rendering?
|
||||
startupDelay--
|
||||
|
||||
@@ -130,10 +130,10 @@
|
||||
],
|
||||
entities: [
|
||||
{blockPos: [2, 1, 0], pos: [2.5d, 1.0d, 0.5d], nbt: {AbsorptionAmount: 0.0f, Air: 300s, ArmorItems: [{}, {}, {}, {}], Attributes: [{Base: 0.699999988079071d, Name: "minecraft:generic.movement_speed"}], Brain: {memories: {}}, CustomName: '{"text":"turtle_test.render_turtle_items"}', DeathTime: 0s, DisabledSlots: 0, FallDistance: 0.0f, FallFlying: 0b, Fire: -1s, HandItems: [{}, {}], Health: 20.0f, HurtByTimestamp: 0, HurtTime: 0s, Invisible: 1b, Invulnerable: 0b, Marker: 1b, Motion: [0.0d, 0.0d, 0.0d], NoBasePlate: 0b, OnGround: 0b, PortalCooldown: 0, Pos: [125.5d, -58.0d, 53.6501934495752d], Pose: {}, Rotation: [0.14965993f, 4.066999f], ShowArms: 0b, Small: 0b, UUID: [I; -1678989666, 1780632657, -1267321893, 665166246], id: "minecraft:armor_stand"}},
|
||||
{blockPos: [3, 1, 3], pos: [3.5d, 1.5d, 3.5d], nbt: {Air: 300s, FallDistance: 0.0f, Fire: 0s, Invulnerable: 0b, Motion: [0.0d, 0.0d, 0.0d], OnGround: 0b, PortalCooldown: 0, Pos: [126.5d, -57.5d, 56.5d], Rotation: [-90.0f, 0.0f], UUID: [I; 671334450, -268547745, -1360971514, -649716242], billboard: "fixed", glow_color_override: -1, height: 0.0f, id: "minecraft:item_display", interpolation_duration: 0, item: {Count: 1b, id: "computercraft:turtle_normal", tag: {ComputerId: 8, Fuel: 0, Items: [], display: {Name: '{"text":"Dinnerbone"}'}, On: 1b, RightUpgrade: "minecraft:diamond_pickaxe", RightUpgradeNbt: {Tag: {Damage: 0}}}}, item_display: "none", shadow_radius: 0.0f, shadow_strength: 1.0f, transformation: {left_rotation: [0.0f, 0.0f, 0.0f, 1.0f], right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], scale: [1.0f, 1.0f, 1.0f], translation: [0.0f, 0.0f, 0.0f]}, view_range: 1.0f, width: 0.0f}},
|
||||
{blockPos: [3, 3, 3], pos: [3.5d, 3.5d, 3.5d], nbt: {Air: 300s, FallDistance: 0.0f, Fire: 0s, Invulnerable: 0b, Motion: [0.0d, 0.0d, 0.0d], OnGround: 0b, PortalCooldown: 0, Pos: [126.5d, -57.5d, 56.5d], Rotation: [-90.0f, 0.0f], UUID: [I; 671334422, -268542345, -1362491514, -649716242], billboard: "fixed", glow_color_override: -1, height: 0.0f, id: "minecraft:item_display", interpolation_duration: 0, item: {Count: 1b, id: "computercraft:turtle_normal", tag: {ComputerId: 8, Fuel: 0, Items: [], On: 1b, RightUpgrade: "minecraft:diamond_pickaxe", RightUpgradeNbt: {Tag: {Damage: 0}}}}, item_display: "none", shadow_radius: 0.0f, shadow_strength: 1.0f, transformation: {left_rotation: [0.0f, 0.0f, 0.0f, 1.0f], right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], scale: [1.0f, 1.0f, 1.0f], translation: [0.0f, 0.0f, 0.0f]}, view_range: 1.0f, width: 0.0f}},
|
||||
{blockPos: [1, 1, 3], pos: [1.5d, 1.5d, 3.5d], nbt: {Air: 300s, FallDistance: 0.0f, Fire: 0s, Invulnerable: 0b, Motion: [0.0d, 0.0d, 0.0d], OnGround: 0b, PortalCooldown: 0, Pos: [126.5d, -57.5d, 56.5d], Rotation: [90.0f, 0.0f], UUID: [I; 625334450, -268647745, -1360971514, -649724242], billboard: "fixed", glow_color_override: -1, height: 0.0f, id: "minecraft:item_display", interpolation_duration: 0, item: {Count: 1b, id: "computercraft:turtle_normal", tag: {ComputerId: 8, Fuel: 0, Items: [], On: 1b, LeftUpgrade: {id: "cctest:netherite_pickaxe", components: {"minecraft:enchantments": {levels: {"minecraft:silk_touch": 1}}}}}}, item_display: "none", shadow_radius: 0.0f, shadow_strength: 1.0f, transformation: {left_rotation: [0.0f, 0.0f, 0.0f, 1.0f], right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], scale: [1.0f, 1.0f, 1.0f], translation: [0.0f, 0.0f, 0.0f]}, view_range: 1.0f, width: 0.0f}},
|
||||
{blockPos: [1, 3, 3], pos: [1.5d, 3.5d, 3.5d], nbt: {Air: 300s, FallDistance: 0.0f, Fire: 0s, Invulnerable: 0b, Motion: [0.0d, 0.0d, 0.0d], OnGround: 0b, PortalCooldown: 0, Pos: [126.5d, -57.5d, 56.5d], Rotation: [90.0f, 0.0f], UUID: [I; 675334422, -268542245, -1362491514, -649755242], billboard: "fixed", glow_color_override: -1, height: 0.0f, id: "minecraft:item_display", interpolation_duration: 0, item: {Count: 1b, id: "computercraft:turtle_normal", tag: {ComputerId: 8, Fuel: 0, Items: [], display: {Name: '{"text":"Dinnerbone"}'}, On: 1b, LeftUpgrade: {id: "cctest:netherite_pickaxe", components: {"minecraft:enchantments": {levels: {"minecraft:silk_touch": 1}}}}}}, item_display: "none", shadow_radius: 0.0f, shadow_strength: 1.0f, transformation: {left_rotation: [0.0f, 0.0f, 0.0f, 1.0f], right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], scale: [1.0f, 1.0f, 1.0f], translation: [0.0f, 0.0f, 0.0f]}, view_range: 1.0f, width: 0.0f}}
|
||||
{blockPos: [3, 1, 3], pos: [3.5d, 1.5d, 3.5d], nbt: {Air: 300s, FallDistance: 0.0f, Fire: 0s, Invulnerable: 0b, Motion: [0.0d, 0.0d, 0.0d], OnGround: 0b, PortalCooldown: 0, Pos: [126.5d, -57.5d, 56.5d], Rotation: [90.0f, 0.0f], UUID: [I; 671334450, -268547745, -1360971514, -649716242], billboard: "fixed", glow_color_override: -1, height: 0.0f, id: "minecraft:item_display", interpolation_duration: 0, item: {Count: 1b, id: "computercraft:turtle_normal", tag: {ComputerId: 8, Fuel: 0, Items: [], display: {Name: '{"text":"Dinnerbone"}'}, On: 1b, RightUpgrade: "minecraft:diamond_pickaxe", RightUpgradeNbt: {Tag: {Damage: 0}}}}, item_display: "none", shadow_radius: 0.0f, shadow_strength: 1.0f, transformation: {left_rotation: [0.0f, 0.0f, 0.0f, 1.0f], right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], scale: [1.0f, 1.0f, 1.0f], translation: [0.0f, 0.0f, 0.0f]}, view_range: 1.0f, width: 0.0f}},
|
||||
{blockPos: [3, 3, 3], pos: [3.5d, 3.5d, 3.5d], nbt: {Air: 300s, FallDistance: 0.0f, Fire: 0s, Invulnerable: 0b, Motion: [0.0d, 0.0d, 0.0d], OnGround: 0b, PortalCooldown: 0, Pos: [126.5d, -57.5d, 56.5d], Rotation: [90.0f, 0.0f], UUID: [I; 671334422, -268542345, -1362491514, -649716242], billboard: "fixed", glow_color_override: -1, height: 0.0f, id: "minecraft:item_display", interpolation_duration: 0, item: {Count: 1b, id: "computercraft:turtle_normal", tag: {ComputerId: 8, Fuel: 0, Items: [], On: 1b, RightUpgrade: "minecraft:diamond_pickaxe", RightUpgradeNbt: {Tag: {Damage: 0}}}}, item_display: "none", shadow_radius: 0.0f, shadow_strength: 1.0f, transformation: {left_rotation: [0.0f, 0.0f, 0.0f, 1.0f], right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], scale: [1.0f, 1.0f, 1.0f], translation: [0.0f, 0.0f, 0.0f]}, view_range: 1.0f, width: 0.0f}},
|
||||
{blockPos: [1, 1, 3], pos: [1.5d, 1.5d, 3.5d], nbt: {Air: 300s, FallDistance: 0.0f, Fire: 0s, Invulnerable: 0b, Motion: [0.0d, 0.0d, 0.0d], OnGround: 0b, PortalCooldown: 0, Pos: [126.5d, -57.5d, 56.5d], Rotation: [-90.0f, 0.0f], UUID: [I; 625334450, -268647745, -1360971514, -649724242], billboard: "fixed", glow_color_override: -1, height: 0.0f, id: "minecraft:item_display", interpolation_duration: 0, item: {Count: 1b, id: "computercraft:turtle_normal", tag: {ComputerId: 8, Fuel: 0, Items: [], On: 1b, LeftUpgrade: {id: "cctest:netherite_pickaxe", components: {"minecraft:enchantments": {levels: {"minecraft:silk_touch": 1}}}}}}, item_display: "none", shadow_radius: 0.0f, shadow_strength: 1.0f, transformation: {left_rotation: [0.0f, 0.0f, 0.0f, 1.0f], right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], scale: [1.0f, 1.0f, 1.0f], translation: [0.0f, 0.0f, 0.0f]}, view_range: 1.0f, width: 0.0f}},
|
||||
{blockPos: [1, 3, 3], pos: [1.5d, 3.5d, 3.5d], nbt: {Air: 300s, FallDistance: 0.0f, Fire: 0s, Invulnerable: 0b, Motion: [0.0d, 0.0d, 0.0d], OnGround: 0b, PortalCooldown: 0, Pos: [126.5d, -57.5d, 56.5d], Rotation: [-90.0f, 0.0f], UUID: [I; 675334422, -268542245, -1362491514, -649755242], billboard: "fixed", glow_color_override: -1, height: 0.0f, id: "minecraft:item_display", interpolation_duration: 0, item: {Count: 1b, id: "computercraft:turtle_normal", tag: {ComputerId: 8, Fuel: 0, Items: [], display: {Name: '{"text":"Dinnerbone"}'}, On: 1b, LeftUpgrade: {id: "cctest:netherite_pickaxe", components: {"minecraft:enchantments": {levels: {"minecraft:silk_touch": 1}}}}}}, item_display: "none", shadow_radius: 0.0f, shadow_strength: 1.0f, transformation: {left_rotation: [0.0f, 0.0f, 0.0f, 1.0f], right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], scale: [1.0f, 1.0f, 1.0f], translation: [0.0f, 0.0f, 0.0f]}, view_range: 1.0f, width: 0.0f}}
|
||||
],
|
||||
palette: [
|
||||
"minecraft:polished_andesite",
|
||||
|
||||
Reference in New Issue
Block a user