TMXL 地图工具包

TMXL 地图工具包

用于添加/编辑/替换地图及创建可建造物的工具包(原名TMXLoader)。

地点

TMXL 地图工具包 作者:Platonymous

曾命名为TMXLoader。 现更名为TMXL地图工具包,因为该模组中纯粹的.tmx文件加载功能现已整合至SMAPI(3.2+版本)。 1.8.4 版本新增内容 可建造物的图像层 要使用图像层,其名称必须以"UNIQUEID"结尾,例如"MyLayer-UNIQUEID",但在室内地图上不需要这样做。 可建造物的着色 要让图像层支持上色,需要具备两个属性:

  1. "Color"属性 - 存储默认的rgba值,例如表示白色的"255 255 255 255"
  2. "ColorId"属性 - 该属性值可任意设置
    所有共享相同"ColorId"属性的图层都将以相同方式着色。 1.8.0 版本新增内容: 可建造物: 按F2键可以建造或移除可建造物(可在配置文件中更改) 要移除地图上最后放置的可建造物,请在菜单打开时按BACKSPACE键。 常规可建造地图编辑: "可建造物": [ { "id":"Platonymous.Buildable", "name": "可建造", "file": "assets/Buildable.tmx", "iconFile": "assets/icon.png", "removeEmpty":false, "price":10000, "set:": "其他" },   ] 建筑: "可建造物": [ { "id":"Platonymous.某建筑", "name": "某建筑", "file": "assets/SomeBuilding.tmx", "indoorsFile":"assets/SomeBuildingInterior.tmx", "exitTile":[1,3], "iconFile": "assets/SomeIcon.png", "removeEmpty":false, "buildItems":[ { "index":388, "stack":100 }, { "name":"防风草", "堆叠":1 } ], "price":10000 }   ] exitTile 是玩家离开建筑物时传送到的点。
    要传送到该点,请在地图上使用 Action 或 TouchAction ExitBuildable ,或(1.8.8+版本)在 Warp 属性中使用 BUILDINGLOCATION EXITXY,例如 "Warp" : "9 24 BUILDLOCATION EXITXY"。 在可建造物(外部)中,每个在属性中使用的INDOORS或UNIQUEID都将被替换为生成的值。要传送到内部,例如使用: 14 3 室内传送 1.4.2版本新增内容: 为没有节日地点的NPC设置节日地点。 格式化节日地点: "节日景点": [ { "name": "桑迪", "map": "城镇集市", "位置": [19, 35], "方向": 1 } ] 1.4.0 版本新增内容: 新增了一种更简便的方式,使用配偶房间模板添加配偶房间,该模板可在可选文件中找到。 如果你使用模板创建模组,发布时请不要包含 towninterior.png 文件。 版本1.3.0的重要变更: TMXL 现在使用 SMAPI 内容包,这意味着所有包都直接放入 mod 文件夹,而两个示例的内容包需要单独下载(可选文件)。 包含两个示例,均为UlithiumDragons Mod的移植版本(删减内容与丛林神庙)。 额外的图层和新的TileActions也能在未使用TMXL导入的地图中生效。

内容包 content.js 的 Json 结构: 剧透: 显示 {   "addMaps": // 新增地图   [       {       "name": "JungleTempleExterior", // 新地点的名称       "file": "JungleTempleExterior.tmx", // 位于ContentPacks文件夹内的文件名 },     ...   ],   "mergeMaps": // 合并地图部分   [       {       "name": "森林", // 要合并的地图   "文件": "Woods.tmx",    "sourceArea": [0,0,12,12], // 你想放置的地图区域(x坐标,y坐标,宽度,高度)   "position": [0,0], // 新内容在地图上的放置位置(x, y)       "addWarps":  // 添加传送点("入口X 入口Y 目标地点 出口X 出口Y")       [         "7 -1 丛林神庙外部 14 34",       ....       ],      "removeWarps":  // 移除现有的传送点("入口X 入口Y 目标地点 出口X 出口Y")       [  "7 -1 丛林神庙外部 14 34",       ....       ] },    ...   ], "replaceMaps": // 完全替换地图   [      {       "name": "森林", // 要替换的地图   "文件": "Woods.tmx",  },    ...   ],   "onlyWarps": // 仅更改传送点    [     {       "名称": "公交车站",        "添加传送点": [ "12 8 城市公交 2 6"       ]     }   ], "scripts":["script.lua"] } 附加功能: 剧透: 显示 不仅仅是绘制标准图层: 为你想在游戏中看到的图层添加属性Draw/DrawAbove或DrawBefore ,该值需要是它绘制在之后/之前的图层,例如Back如果你想要另一个背景层。 新增了TileActions(1.0.1版),可用于Action或TouchAction属性中。 自1.1.0版本起,您还可以使用地图属性"EntryAction",该属性会在玩家进入地图时触发。 说出你的文本 与 Message 曾经的工作方式相同,但不带“ ” 说矮人语 YourText 与Say相同,但如果玩家没有翻译指南,则以矮人语显示文本。 切换图层 图层1:图层2 交换两个图层,即使这些图层实际上并未被绘制。 切换图层 图层1:图层2:14:17 仅在x:y层之间切换指定的Tile 切换图层 图层1:图层2:1-5:5-7 在x1-x2:y1-y2层之间切换指定区域 切换图层动作可以通过简单地一个接一个书写来组合,例如:  切换图层 建筑:建筑开放:4:6-9 建筑:建筑开放:9:5 前景:前景开放:4:6-9 常驻前景:常驻前景开放:4:6-9 锁定 1 380 如果活动对象是指定的索引锁定数量索引,则调用TileAction 需要同一地块上的更多属性: 成功动作:当使用正确物品且数量至少达到要求时触发 使用错误对象或数量不足时触发的失败动作 未持有物品时触发的默认动作 (1.1.0 版本新增) Lua 你的文件夹名 你的函数名 调用你任意Lua脚本中的函数 Lua函数必须接收三个参数:位置、瓦片坐标和层ID Lua 示例 剧透: 显示 pc = 否 function startPC(location, tilepos, layer) 如果 pc 则 Game1.playSound("coin") TMX.getTile(位置,"前方",36, 12).图块索引 = 991 pc = 否 其他 Game1.playSound("stardrop") TMX.getTile(位置,"前方",36, 12).TileIndex = 1153 pc = 真 结束 结束 此外,每个动作(和触摸动作)都可以通过向同一图块添加以下属性来设置条件: 条件 一个条件,可以是事件条件格式(事件前提条件),或者如果前缀为PC,则是玩家条件(但目前还不能混合使用) 如果条件未满足时触发的备用操作(可选) 目前支持的玩家条件: 猫爱好者 , 男性 , 疲惫 , 拥有温室 , 拥有锈钥匙 , 拥有骷髅钥匙 , 已解锁骷髅门 , 拥有黑暗护符 , 拥有魔法墨水 , 奔跑中 , 使用工具 , 使用弹弓 , 穿着泳衣 , 星露谷英雄 , 拥有俱乐部会员卡 , 能理解矮人语 条件和玩家条件可以加上NOT前缀来反转它们。 动作仍然非常有限,但会逐步扩展。如果你需要某个特定的TileAction,可以在SMAPI Discort上向我(@Routine)提出建议。 SMAPI模组可以通过PyTK添加自己的Tileactions: 使用 PyTK.类型; TileAction Say = new TileAction("说", sayAction).register(); 已知错误: 绘制/绘制前/绘制上方并不总是与前景层兼容。 更改保存序列化器警告 SMAPI警告称,此模组“可能会损坏您的存档文件,或使它们在卸载后无法使用”。 这是因为TMXL访问了那些本可用于以这种方式更改序列化器的属性,但实际上并未更改它。 因此,尽管警告如此提示,但使用或卸载此模组时,您的存档文件不会被损坏或变得不可用。  如果你有任何问题,通常可以在星露谷物语Discord上找到我,用户名是Routine#8715

如果你喜欢我的模组并想支持我,可以通过Paypal 或Patreon进行支持。