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" />