Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
EasyTeleport
[AI-generated] Vanilla-styled world-map buttons: teleport back to your bed, or click anywhere on the map to teleport there. Hold Ctrl to drag the buttons anywhere; position is saved. Safe landing: no burying, no fall damage, water is fine. Client-only.
By s6652289
CHANGELOG
Changelog
1.3.0 — 2026-09-18
按钮可以拖了。
- 按住
Ctrl+ 左键拖拽按钮组,可以把它整体挪到画面任意位置;松手时自动把新位置写进easyteleport.client.only.cfg的LeftAnchor/TopAnchor,不用手动改配置。 - 按住
Ctrl时按钮文字变淡黄,表示"现在可以拖"。 - 拖拽期间、以及松手后 0.25 秒内抑制按钮功能 —— 不会出现"想挪个位置却把自己传走了"。 (uGUI 的 Button 用的是 OnPointerClick,只要按下和抬起都落在按钮上就会触发, 中间拖了多远它不管,所以必须显式抑制。)
- 新增配置
AllowDrag(默认 true):想锁死位置就关掉它。 - 面板上铺了一张全透明 Image 作为拖拽的射线目标,这样在按钮组的任意位置(含两个按钮之间的缝)
都能起拖;从按钮上起拖时事件会沿父级链冒泡到面板的
EventTrigger,不必给每个按钮单独挂。 - 新增
scripts/verify_drag.py:拖拽定位逻辑离线验证(跟手性 / 边界 clamp / 配置往返,7 个场景)。
1.2.0 — 2026-09-18
按钮搬到左上角 + 外观和游戏同化。
- 位置:右下角 → 画面左上角。用比例锚点定位(
LeftAnchor0.084 /TopAnchor0.392), 默认值是按用户截图上标出的位置量出来的(1920×1080 下约(162, 423)), 不再压住右侧那列图钉图标。 - 外观:新增
UseGameStyle(默认开)—— 运行时从大地图已有控件里挑一个面板/按钮底图 sprite 复用 (优先找名字像按钮的,其次找带九宫格边界的),按Image.Type.Sliced铺满, 圆角/渐变/描边与原版控件一致。找不到或不喜欢可关掉,退回纯色底。 - 文字配色改为米白 + 1 像素黑描边;尺寸收窄到更接近原版控件(宽 190 / 高 40 / 间距 6 / 字号 16)。
- 待选状态下改为给原版底图叠一层绿色调(保留纹理),纯色模式下仍用
ArmedColor。 - 废弃
MarginRight/MarginBottom(旧 cfg 里会留下这两项,无害,可手动删)。
1.1.0 — 2026-09-18
「返回出发地」移除,换成「任意传送」。
- 新增「任意传送」:按一下按钮进入待选(按钮变绿、显示「取消 · 点地图选点」), 再点大地图上任意位置就传送到那里。待选状态下再点一次按钮、或关掉地图,都会取消。
- 移除「返回出发地」(以及配套的"出发地"内存记录)—— 该功能已被"任意点传送"覆盖。
- 落点安全接入原版流程:目标点的 Y 统一取
ZoneSystem.c_WaterLevel(水面高度,Constant 表实测 30.0f)。 这样原版Player.UpdateTeleport的两条分支会自动给出正确落点:- 陆地(
ZoneSystem.FindFloor从水面上方打不到地面)→ 走GetSolidHeight校正 → 落到地面 +0.5 米; - 海洋 / 湖泊(
FindFloor命中水底)→ 高度保持水面 → 玩家浮在水面游泳。 两条路都会设置Character.m_maxAirAltitude = 落点高度,所以摔落伤害恒为 0。
- 陆地(
- 不做任何状态限制:游泳、奔跑、跳跃、坐船、在水里都能传送(只避开"已经正在传送中")。
- 按钮内的 uGUI 层级不变,仍挂在
Minimap.m_largeRoot下;传送后关地图改用原版Minimap.DebugTeleport同款的SetMapMode(MapMode.Small)。 - 新增
scripts/verify_landing.py:按原版 IL 逐条复现的落点策略离线验证(12 个地形场景)。
1.0.0 — 2026-09-18
首个版本。
- 大地图(M)右下角两个按钮:
- 传送回床 —— 传送到
PlayerProfile.GetCustomSpawnPoint()(床边上睡觉记录下的出生点)。 - 返回出发地 —— 先点回床会先记下当前坐标;之后可传回该坐标,记录不被覆盖,可来回。
- 传送回床 —— 传送到
- 传送走原版
Player.TeleportTo(pos, rot, distantTeleport),和传送门完全同一条路径。 - 按钮挂在
Minimap.m_largeRoot下,地图关闭时自动隐藏。 - 中文字体默认走系统字体(微软雅黑),游戏内置字体不含 CJK 字形。
- 纯客户端:无 NetworkCompatibility 声明(NotEnforced)、无 Jotunn、无 ServerSync。