diff --git a/README.md b/README.md index 0f0d2ce..59db597 100644 --- a/README.md +++ b/README.md @@ -5,53 +5,55 @@ - **复制准星目标 ID** -复制准星所指的方块或实体 ID + 复制准星所指的方块或实体 ID - **实体高亮边框** -为名单中的实体类型添加原版发光描边效果 + 为名单中的实体类型添加原版发光描边效果 - **实体高亮边框-选择列表** -每行一个实体 ID + 每行一个实体 ID - **实体高亮边框-颜色** -设置名单中实体的描边颜色 + 设置名单中实体的描边颜色 - **实体渲染黑名单开关** -跳过名单中实体的客户端渲染 + 跳过名单中实体的客户端渲染 - **实体渲染黑名单-列表** -每行一个实体 ID + 每行一个实体 ID - **实体渲染黑名单-范围** -黑名单实体在该三维范围内会重新渲染,0 为始终不渲染 + 黑名单实体在该三维范围内会重新渲染,0 为始终不渲染 - **掏炉灰助手-开关** -高亮输入槽含有无法烧制物品的普通熔炉 - + 高亮输入槽含有无法烧制物品的普通熔炉 +- + (此功能暂时仅限单人游戏可用) +- - **掏炉灰助手-范围设置** -以玩家所在区块为中心,区块为范围的扫描半径 + 以玩家所在区块为中心,区块为范围的扫描半径 - **TNT爆炸预览** -以TNT当前实时位置预览方块破坏范围,红色为保守范围,黄色为额外可能范围 + 以TNT当前实时位置预览方块破坏范围,红色为保守范围,黄色为额外可能范围 - **TNT爆炸预览-显示模式** -选择是否显示可能被炸坏的方块 + 选择是否显示可能被炸坏的方块 - **投射物落点预测** -显示支持投射物的预测落点 + 显示支持投射物的预测落点 - **投影实时预览** -在投影文件选择界面新增原理图预览窗口,实时显示当前选中的原理图 -![](docs/new.jpg) + 在投影文件选择界面新增原理图预览窗口,实时显示当前选中的原理图 + ![](docs/SchematicDynamicPreview.jpg) diff --git a/docs/SchematicDynamicPreview.jpg b/docs/SchematicDynamicPreview.jpg new file mode 100644 index 0000000..3ec0af7 Binary files /dev/null and b/docs/SchematicDynamicPreview.jpg differ diff --git a/src/main/java/com/listmore/mixin/litematica/GuiSchematicBrowserBaseMixin.java b/src/main/java/com/listmore/mixin/litematica/GuiSchematicBrowserBaseMixin.java index 1a59c7f..78d26fc 100644 --- a/src/main/java/com/listmore/mixin/litematica/GuiSchematicBrowserBaseMixin.java +++ b/src/main/java/com/listmore/mixin/litematica/GuiSchematicBrowserBaseMixin.java @@ -28,14 +28,13 @@ public abstract class GuiSchematicBrowserBaseMixin { return; } try { - Class browserClass = Class.forName("com.listmore.schematic.ListMoreSchematicBrowser"); + Class browserClass = Class.forName("com.listmore.schematic.browser.ListMoreSchematicBrowser"); Object browser = browserClass.getConstructor(int.class, int.class, int.class, int.class, GuiSchematicBrowserBase.class, ISelectionListener.class) .newInstance(listX, listY, 100, 100, (GuiSchematicBrowserBase) (Object) this, this.getSelectionListener()); cir.setReturnValue((WidgetSchematicBrowser) browser); } catch (ReflectiveOperationException ignored) { - // The version-specific preview browser is intentionally optional. } } } diff --git a/src/main/java/com/listmore/schematic/ListMoreSchematicBrowser.java b/src/main/java/com/listmore/schematic/browser/ListMoreSchematicBrowser.java similarity index 96% rename from src/main/java/com/listmore/schematic/ListMoreSchematicBrowser.java rename to src/main/java/com/listmore/schematic/browser/ListMoreSchematicBrowser.java index adab9f2..b22bb4c 100644 --- a/src/main/java/com/listmore/schematic/ListMoreSchematicBrowser.java +++ b/src/main/java/com/listmore/schematic/browser/ListMoreSchematicBrowser.java @@ -1,6 +1,10 @@ -package com.listmore.schematic; +package com.listmore.schematic.browser; import java.util.Date; +import com.listmore.schematic.preview.SchematicPreviewDirection; +import com.listmore.schematic.preview.SchematicPreviewSession; +import com.listmore.schematic.preview.gui.SchematicPreviewLayout; +import com.listmore.schematic.preview.gui.SchematicPreviewOverlay; import org.jetbrains.annotations.Nullable; import fi.dy.masa.litematica.gui.GuiSchematicBrowserBase; diff --git a/src/main/java/com/listmore/schematic/SchematicPreviewDirection.java b/src/main/java/com/listmore/schematic/preview/SchematicPreviewDirection.java similarity index 86% rename from src/main/java/com/listmore/schematic/SchematicPreviewDirection.java rename to src/main/java/com/listmore/schematic/preview/SchematicPreviewDirection.java index 227ebb7..8c665e3 100644 --- a/src/main/java/com/listmore/schematic/SchematicPreviewDirection.java +++ b/src/main/java/com/listmore/schematic/preview/SchematicPreviewDirection.java @@ -1,4 +1,4 @@ -package com.listmore.schematic; +package com.listmore.schematic.preview; public enum SchematicPreviewDirection { UP("↑"), diff --git a/src/main/java/com/listmore/schematic/SchematicPreviewLoader.java b/src/main/java/com/listmore/schematic/preview/SchematicPreviewLoader.java similarity index 96% rename from src/main/java/com/listmore/schematic/SchematicPreviewLoader.java rename to src/main/java/com/listmore/schematic/preview/SchematicPreviewLoader.java index cda5ae7..6764d85 100644 --- a/src/main/java/com/listmore/schematic/SchematicPreviewLoader.java +++ b/src/main/java/com/listmore/schematic/preview/SchematicPreviewLoader.java @@ -1,4 +1,4 @@ -package com.listmore.schematic; +package com.listmore.schematic.preview; import java.nio.file.Path; import java.util.concurrent.CompletableFuture; diff --git a/src/main/java/com/listmore/schematic/SchematicPreviewModel.java b/src/main/java/com/listmore/schematic/preview/SchematicPreviewModel.java similarity index 99% rename from src/main/java/com/listmore/schematic/SchematicPreviewModel.java rename to src/main/java/com/listmore/schematic/preview/SchematicPreviewModel.java index 729c8ed..ce68a54 100644 --- a/src/main/java/com/listmore/schematic/SchematicPreviewModel.java +++ b/src/main/java/com/listmore/schematic/preview/SchematicPreviewModel.java @@ -1,4 +1,4 @@ -package com.listmore.schematic; +package com.listmore.schematic.preview; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/main/java/com/listmore/schematic/SchematicPreviewSession.java b/src/main/java/com/listmore/schematic/preview/SchematicPreviewSession.java similarity index 97% rename from src/main/java/com/listmore/schematic/SchematicPreviewSession.java rename to src/main/java/com/listmore/schematic/preview/SchematicPreviewSession.java index 435c1e3..bd44ab2 100644 --- a/src/main/java/com/listmore/schematic/SchematicPreviewSession.java +++ b/src/main/java/com/listmore/schematic/preview/SchematicPreviewSession.java @@ -1,9 +1,10 @@ -package com.listmore.schematic; +package com.listmore.schematic.preview; import java.nio.file.Path; import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicLong; +import com.listmore.schematic.preview.render.SchematicPreviewRenderManager; import fi.dy.masa.litematica.schematic.LitematicaSchematic; import net.minecraft.core.Vec3i; diff --git a/src/main/java/com/listmore/schematic/SchematicPreviewTransform.java b/src/main/java/com/listmore/schematic/preview/SchematicPreviewTransform.java similarity index 98% rename from src/main/java/com/listmore/schematic/SchematicPreviewTransform.java rename to src/main/java/com/listmore/schematic/preview/SchematicPreviewTransform.java index 77178b4..b7e1aff 100644 --- a/src/main/java/com/listmore/schematic/SchematicPreviewTransform.java +++ b/src/main/java/com/listmore/schematic/preview/SchematicPreviewTransform.java @@ -1,4 +1,4 @@ -package com.listmore.schematic; +package com.listmore.schematic.preview; // 固定预览方向的相机状态 public final class SchematicPreviewTransform { diff --git a/src/main/java/com/listmore/schematic/SchematicPreviewLayout.java b/src/main/java/com/listmore/schematic/preview/gui/SchematicPreviewLayout.java similarity index 95% rename from src/main/java/com/listmore/schematic/SchematicPreviewLayout.java rename to src/main/java/com/listmore/schematic/preview/gui/SchematicPreviewLayout.java index bff7c09..22eaffc 100644 --- a/src/main/java/com/listmore/schematic/SchematicPreviewLayout.java +++ b/src/main/java/com/listmore/schematic/preview/gui/SchematicPreviewLayout.java @@ -1,4 +1,6 @@ -package com.listmore.schematic; +package com.listmore.schematic.preview.gui; + +import com.listmore.schematic.preview.SchematicPreviewDirection; // 原理图浏览器右侧预览区域及方向按钮的布局计算 public final class SchematicPreviewLayout { diff --git a/src/main/java/com/listmore/schematic/SchematicPreviewOverlay.java b/src/main/java/com/listmore/schematic/preview/gui/SchematicPreviewOverlay.java similarity index 96% rename from src/main/java/com/listmore/schematic/SchematicPreviewOverlay.java rename to src/main/java/com/listmore/schematic/preview/gui/SchematicPreviewOverlay.java index 4896edd..7f5c7a8 100644 --- a/src/main/java/com/listmore/schematic/SchematicPreviewOverlay.java +++ b/src/main/java/com/listmore/schematic/preview/gui/SchematicPreviewOverlay.java @@ -1,5 +1,7 @@ -package com.listmore.schematic; +package com.listmore.schematic.preview.gui; +import com.listmore.schematic.preview.SchematicPreviewDirection; +import com.listmore.schematic.preview.SchematicPreviewSession; import fi.dy.masa.malilib.render.RenderUtils; import fi.dy.masa.malilib.util.StringUtils; diff --git a/src/main/java/com/listmore/schematic/SchematicPreviewRenderBackend.java b/src/main/java/com/listmore/schematic/preview/render/SchematicPreviewRenderBackend.java similarity index 66% rename from src/main/java/com/listmore/schematic/SchematicPreviewRenderBackend.java rename to src/main/java/com/listmore/schematic/preview/render/SchematicPreviewRenderBackend.java index 7899711..f0cba5e 100644 --- a/src/main/java/com/listmore/schematic/SchematicPreviewRenderBackend.java +++ b/src/main/java/com/listmore/schematic/preview/render/SchematicPreviewRenderBackend.java @@ -1,5 +1,8 @@ -package com.listmore.schematic; +package com.listmore.schematic.preview.render; +import com.listmore.schematic.preview.SchematicPreviewModel; +import com.listmore.schematic.preview.SchematicPreviewTransform; +import com.listmore.schematic.preview.gui.SchematicPreviewLayout; // 原理图预览的版本专属渲染后端,公共预览逻辑只通过这个接口调用 public interface SchematicPreviewRenderBackend extends AutoCloseable { default void setSchematic(Object schematic) { diff --git a/src/main/java/com/listmore/schematic/SchematicPreviewRenderManager.java b/src/main/java/com/listmore/schematic/preview/render/SchematicPreviewRenderManager.java similarity index 88% rename from src/main/java/com/listmore/schematic/SchematicPreviewRenderManager.java rename to src/main/java/com/listmore/schematic/preview/render/SchematicPreviewRenderManager.java index c02e6a1..0023be9 100644 --- a/src/main/java/com/listmore/schematic/SchematicPreviewRenderManager.java +++ b/src/main/java/com/listmore/schematic/preview/render/SchematicPreviewRenderManager.java @@ -1,4 +1,8 @@ -package com.listmore.schematic; +package com.listmore.schematic.preview.render; + +import com.listmore.schematic.preview.SchematicPreviewModel; +import com.listmore.schematic.preview.SchematicPreviewTransform; +import com.listmore.schematic.preview.gui.SchematicPreviewLayout; //#if MC >= 1.21.11 //$$ import fi.dy.masa.malilib.render.GuiContext; @@ -64,7 +68,7 @@ public void close() { // 如果当前版本没有对应的 SchematicPreviewRenderer 类,回退到 null(GUI 占位预览) private static SchematicPreviewRenderBackend createBackend() { try { - Class backendClass = Class.forName("com.listmore.schematic.SchematicPreviewRenderer"); + Class backendClass = Class.forName("com.listmore.schematic.preview.render.SchematicPreviewRenderer"); return backendClass.asSubclass(SchematicPreviewRenderBackend.class).getConstructor().newInstance(); } catch (ReflectiveOperationException ignored) { // 当前版本尚未提供专属后端时保留 GUI 占位预览 diff --git a/src/main/java/com/listmore/schematic/SchematicPreviewRenderer.java b/src/main/java/com/listmore/schematic/preview/render/SchematicPreviewRenderer.java similarity index 99% rename from src/main/java/com/listmore/schematic/SchematicPreviewRenderer.java rename to src/main/java/com/listmore/schematic/preview/render/SchematicPreviewRenderer.java index 1eae4ef..9bf7894 100644 --- a/src/main/java/com/listmore/schematic/SchematicPreviewRenderer.java +++ b/src/main/java/com/listmore/schematic/preview/render/SchematicPreviewRenderer.java @@ -1,6 +1,9 @@ -package com.listmore.schematic; +package com.listmore.schematic.preview.render; import com.listmore.ListMore; +import com.listmore.schematic.preview.SchematicPreviewModel; +import com.listmore.schematic.preview.SchematicPreviewTransform; +import com.listmore.schematic.preview.gui.SchematicPreviewLayout; import java.util.ArrayList; import java.util.Comparator; diff --git a/src/main/java/com/listmore/schematic/SchematicPreviewWorld.java b/src/main/java/com/listmore/schematic/preview/render/SchematicPreviewWorld.java similarity index 95% rename from src/main/java/com/listmore/schematic/SchematicPreviewWorld.java rename to src/main/java/com/listmore/schematic/preview/render/SchematicPreviewWorld.java index a27461d..12f6b1a 100644 --- a/src/main/java/com/listmore/schematic/SchematicPreviewWorld.java +++ b/src/main/java/com/listmore/schematic/preview/render/SchematicPreviewWorld.java @@ -1,5 +1,6 @@ -package com.listmore.schematic; +package com.listmore.schematic.preview.render; +import com.listmore.schematic.preview.SchematicPreviewModel; import fi.dy.masa.litematica.world.FakeLightingProvider; //#if MC >= 26.1