diff --git a/src/core/render/canvas2d/entityRenderer/EntityRenderer.tsx b/src/core/render/canvas2d/entityRenderer/EntityRenderer.tsx
index 53fe6338..c9e508ff 100644
--- a/src/core/render/canvas2d/entityRenderer/EntityRenderer.tsx
+++ b/src/core/render/canvas2d/entityRenderer/EntityRenderer.tsx
@@ -195,7 +195,7 @@ export namespace EntityRenderer {
),
Renderer.FONT_SIZE_DETAILS * Camera.currentScale,
Math.max(
- Renderer.NODE_DETAILS_WIDTH * Camera.currentScale,
+ Renderer.ENTITY_DETAILS_WIDTH * Camera.currentScale,
entity.collisionBox.getRectangle().size.x * Camera.currentScale,
),
StageStyleManager.currentStyle.NodeDetailsTextColor,
diff --git a/src/core/render/canvas2d/renderer.tsx b/src/core/render/canvas2d/renderer.tsx
index 07576a04..f653709e 100644
--- a/src/core/render/canvas2d/renderer.tsx
+++ b/src/core/render/canvas2d/renderer.tsx
@@ -4,11 +4,12 @@ import { Color, mixColors } from "../../dataStruct/Color";
import { Vector } from "../../dataStruct/Vector";
import { Rectangle } from "../../dataStruct/shape/Rectangle";
import { Settings } from "../../service/Settings";
+import { MouseLocation } from "../../service/controlService/MouseLocation";
import { Controller } from "../../service/controlService/controller/Controller";
+import { KeyboardOnlyEngine } from "../../service/controlService/keyboardOnlyEngine/keyboardOnlyEngine";
import { CopyEngine } from "../../service/dataManageService/copyEngine/copyEngine";
import { sine } from "../../service/feedbackService/effectEngine/mathTools/animateFunctions";
import { StageStyleManager } from "../../service/feedbackService/stageStyle/StageStyleManager";
-import { KeyboardOnlyEngine } from "../../service/controlService/keyboardOnlyEngine/keyboardOnlyEngine";
import { Camera } from "../../stage/Camera";
import { Canvas } from "../../stage/Canvas";
import { Stage } from "../../stage/Stage";
@@ -29,7 +30,6 @@ import {
renderHorizonBackground,
renderVerticalBackground,
} from "./utilsRenderer/backgroundRenderer";
-import { MouseLocation } from "../../service/controlService/MouseLocation";
/**
* 渲染器
@@ -50,10 +50,11 @@ export namespace Renderer {
export const NODE_PADDING = 14;
/// 节点的圆角半径
export const NODE_ROUNDED_RADIUS = 8;
+
/**
* 节点详细信息最大宽度
*/
- export const NODE_DETAILS_WIDTH = 200;
+ export let ENTITY_DETAILS_WIDTH = 200;
export let w = 0;
export let h = 0;
@@ -114,6 +115,9 @@ export namespace Renderer {
Settings.watch("entityDetailsLinesLimit", (value) => {
ENTITY_DETAILS_LIENS_LIMIT = value;
});
+ Settings.watch("entityDetailsWidthLimit", (value) => {
+ ENTITY_DETAILS_WIDTH = value;
+ });
Settings.watch("showDebug", (value) => (isShowDebug = value));
Settings.watch("showBackgroundHorizontalLines", (value) => {
isShowBackgroundHorizontalLines = value;
diff --git a/src/core/service/Settings.tsx b/src/core/service/Settings.tsx
index 3e26ac09..a545709f 100644
--- a/src/core/service/Settings.tsx
+++ b/src/core/service/Settings.tsx
@@ -30,6 +30,7 @@ export namespace Settings {
useNativeTitleBar: boolean;
entityDetailsFontSize: number;
entityDetailsLinesLimit: number;
+ entityDetailsWidthLimit: number;
limitCameraInCycleSpace: boolean;
cameraCycleSpaceSizeX: number;
cameraCycleSpaceSizeY: number;
@@ -91,6 +92,7 @@ export namespace Settings {
useNativeTitleBar: false,
entityDetailsFontSize: 18,
entityDetailsLinesLimit: 4,
+ entityDetailsWidthLimit: 200,
limitCameraInCycleSpace: false,
cameraCycleSpaceSizeX: 1000,
cameraCycleSpaceSizeY: 1000,
diff --git a/src/locales/en.yml b/src/locales/en.yml
index 9d245e5a..b4240597 100644
--- a/src/locales/en.yml
+++ b/src/locales/en.yml
@@ -173,6 +173,10 @@ settings:
title: Line Limit for Entity Details
description: |
Limit the maximum number of lines for entity details. Exceeding this limit will result in the omission of the excess content.
+ entityDetailsWidthLimit:
+ title: Width Limit for Entity Details
+ description: |
+ Limit the maximum width for entity details. Exceeding this limit will result in the excess content wrapping to the next line.
limitCameraInCycleSpace:
title: Enable Camera Movement Limitation in Cycle Space
description: |
diff --git a/src/locales/zh_CN.yml b/src/locales/zh_CN.yml
index e7c7d53a..0c888587 100644
--- a/src/locales/zh_CN.yml
+++ b/src/locales/zh_CN.yml
@@ -158,6 +158,10 @@ settings:
title: 实体详细信息行数限制
description: |
限制实体详细信息的最大行数,超过限制的部分将被省略
+ entityDetailsWidthLimit:
+ title: 实体详细信息宽度限制
+ description: |
+ 限制实体详细信息的最大宽度,超过限制的部分将被换行
limitCameraInCycleSpace:
title: 开启循环空间限制摄像机移动
description: |
diff --git a/src/locales/zh_TW.yml b/src/locales/zh_TW.yml
index b9a8f6b9..8fdea587 100644
--- a/src/locales/zh_TW.yml
+++ b/src/locales/zh_TW.yml
@@ -145,6 +145,10 @@ settings:
title: 实体详细信息行数限制
description: |
限制实体详细信息的最大行数,超过限制的部分将被省略
+ entityDetailsWidthLimit:
+ title: 实体详细信息宽度限制
+ description: |
+ 限制实体详细信息的最大宽度,超过限制的部分将被换行
limitCameraInCycleSpace:
title: 开启循环空间限制摄像机移动
description: |
diff --git a/src/pages/settings/visual.tsx b/src/pages/settings/visual.tsx
index d375eed1..09cb2a2d 100644
--- a/src/pages/settings/visual.tsx
+++ b/src/pages/settings/visual.tsx
@@ -14,6 +14,7 @@ import {
Ratio,
Rows4,
Scaling,
+ Space,
Spline,
VenetianMask,
} from "lucide-react";
@@ -53,6 +54,14 @@ export default function Visual() {
max={200}
step={2}
/>
+ }
+ settingKey="entityDetailsWidthLimit"
+ type="slider"
+ min={200}
+ max={2000}
+ step={100}
+ />
} settingKey="limitCameraInCycleSpace" type="switch" />