实时绘画师与编辑器

实时绘画师与编辑器

自定义游戏中物品、方块和实体的纹理、行为和合成方式!

实用

LIVE PAINTER & EDITOR

允许玩家在游戏中自定义物品、方块和实体的纹理、行为和合成配方!

本模组需要依赖 Starky's Randomizer 库模组。


📊 匿名使用计数器: 本模组仅发送一个匿名数字——即"应用"按钮被使用的次数——用于驱动上方显示的公共自定义计数器。此计数器不会收集或传输任何个人数据、玩家数据或服务器数据。

📈 指标统计: 本模组使用 HStats 报告匿名模组使用指标,不收集任何个人数据。

注意:两者均可禁用。


快速说明:

  • 主 UI 的使用仅影响使用它的玩家的性能。
  • 默认情况下,玩家在主 UI 中使用"应用"时,会创建原始物品/方块/实体的自定义变体。
  • 一些未使用的纹理会在重启时自动移除,但强烈建议手动移除未使用的自定义物品/方块/实体/纹理。
  • 如果方块/实体拥有多个纹理(如实体附件),玩家可以在页面之间切换。
  • 只有 OP 玩家可以访问和使用"编辑行为(仅 OP)"和"合成(仅 OP)"选项卡。(编辑行为选项卡中还有一个"查看 JSON"按钮,OP 玩家可以编辑它)
  • 只有 OP 玩家可以使用"/lpe"(或"/livepainter"或"/livepaintereditor")命令,直接访问手中物品/方块的主 UI。
  • 如果 OP 玩家使用"/lpe"命令时主手为空,将打开一个备选的选择器 UI。
  • 可以通过"/lpeconfig"(或"/livepainterconfig"或"/livepaintereditorconfig")访问自定义工作台费用的配置 UI 菜单。仅限 OP。
  • 服务器所有者/OP 玩家可以禁用自定义工作台的合成配方。

服务器使用

服务器可以使用本模组创建任何物品/方块/实体的自定义变体,然后将其作为游戏内资源或货币出售(不涉及真实货币)。使用本模组,您可以选择仅改变纹理,从而在游戏中实时创建无限的外观装饰!

并且在付费许可下 此许可将允许您的服务器网络将本模组重新纹理的任何内容包含在付费内容中。

如需了解更多许可信息,请私下联系我。


实用技巧

玩家可以更改每个 UI 的背景,从"带涂料的木头"改为"简单的蓝色框"(或从蓝色改为木头)。您可以在每个 UI 的右上角找到此按钮。 每个玩家和每个 UI 的设置会分别保存。


自定义工作台

默认情况下,该工作台可以通过正常的 Tier 2 基础工作台合成获得。 默认需要 10 个铁锭、5 个重皮革、15 个任意木材和 20 个圆石。(还需记忆等级 2)

允许玩家为物品和方块/可放置物上色! 同时,允许 OP 玩家编辑行为以及编辑/添加合成配方。

自定义工作台 UI

使用自定义工作台会打开一个小型 UI,用于选择手中的物品/方块,或者获取喷涂器和颜料瓶。

每次使用(打开主 UI 时)消耗 X 数量的生命精华。如果未应用任何更改,则将等量的生命精华退还给玩家。

注意:数量取决于物品的品质和方块的采集类型。数量和物品成本(默认为生命精华)均可配置。"EditorTool_" 物品无法自定义。

在单人游戏(或与朋友联机的单人游戏)中, 主 UI 中的"应用"默认无限制。 在多人游戏服务器中, 主 UI 中的"应用"默认每日限制为 35 次。可在 UI 配置菜单"/lpeconfig"中配置,编辑"每位玩家每日纹理应用限制","0"= 无限。"每日限制重置时间"也可配置。


主 UI

从"自定义"按钮打开主 UI 将:

  • 显示物品的所有选项卡(纹理喷涂器、编辑行为和合成)。
  • 显示方块/可放置物的纹理喷涂器、查看 JSON(以一个大按钮形式显示)和合成选项卡。

主 UI 也可以通过以下方式访问:

---> "/lpe"命令(或"/livepainter"或"/livepaintereditor") (与自定义工作台按钮相同的选项卡,适用于物品和方块/可放置物) (仅限 OP 玩家)

---> 喷涂器 (仅显示方块/可放置物和实体的纹理喷涂器选项卡)

更改会全局实时应用(所有玩家)。

默认情况下,它会生成所选物品/方块/实体的变体/副本,除非该物品本身已经是自定义的。 (OP 玩家可以替换原始/原版物品/方块/实体/纹理) 非 OP 玩家将始终重新编辑已存在的自定义物品/方块/实体。 (OP 玩家也可以使用"克隆为新(OP)"按钮来克隆所选的自定义物品/方块/实体)

纹理喷涂器选项卡

任何玩家都可以使用高级工具重新绘制/编辑所选物品/方块/实体/纹理的纹理!

这就像在 Hytale 中拥有一个图像编辑器!

更多信息,玩家可以使用绿色帮助按钮了解各项功能。

编辑行为选项卡(仅 OP)

OP 玩家可以编辑所选物品行为的任何部分。 例如:伤害输出、伤害抗性、交互、按键绑定、标签、品质、类别、物品光照、物品缩放、最大耐久度等。

还可以使用"查看 JSON"按钮在游戏中编辑原始 JSON。

更多信息,玩家可以使用绿色帮助按钮了解各项功能。

合成选项卡(仅 OP)

OP 玩家可以编辑、添加、移除所选物品/方块的合成配方。

更多信息,玩家可以使用绿色帮助按钮了解各项功能。

编辑方块(仅 OP)

支持拥有多个纹理的方块,玩家可以在页面之间切换。

OP 玩家可以使用"查看 JSON"按钮编辑所选方块行为的任何部分。 允许玩家编辑该方块的原始 JSON。

实体

玩家可以重新绘制/编辑任何实体的纹理。 支持拥有多个纹理的实体(如实体附件),玩家可以在页面之间切换。


喷涂器

默认情况下,该工具只能通过自定义工作台获得。 默认需要 100 个精金锭(可配置),如果安装了 Endgame&QoL 模组则需要 50 个棱晶锭(同样可配置)。

允许玩家为方块/可放置物和实体上色!

使用"颜料瓶"作为弹药。 每次使用(打开主 UI 时)消耗 1 个颜料瓶。如果未应用任何更改,则将颜料瓶退还给玩家。

使用喷涂器将打开主 UI 以绘制/编辑纹理,此主 UI 将仅显示纹理喷涂器选项卡。


选择器 UI(仅 OP)

OP 玩家可以使用"/lpe"命令访问选择器 UI。 玩家必须主手为空。

在此 UI 中,您可以搜索任何物品、方块/可放置物,甚至纹理进行自定义。

您可以选择游戏中的任何纹理!

例如,您可以搜索并选择太阳、月亮、星星、水、地图图标,任何东西!

让您的世界/服务器在游戏中实时变得独一无二!


更多重要说明

  • 创造模式玩家可以免费使用自定义工作台。
  • 只有 OP 玩家可以启用"全局替换原始物品/方块/实体"开关,以全局替换原始版本(面向所有玩家、所有世界),而不是创建自定义变体。
  • (仅 OP)编辑纹理(仅从选择器 UI 中选择的纹理)将始终替换原始/原版。
  • 某些可放置物尚不支持。(未来某天会添加支持)
  • 为其他玩家上色尚不支持。(未来某天会支持)

命令(仅 OP)

"/lpe"

(或"/livepainter"或"/livepaintereditor") 当持有物品或方块/可放置物时: 将授予您直接访问主 UI 的权限,如同自定义工作台按钮一样。 当主手为空时: 将打开选择器 UI,您可以在其中搜索任何物品、方块/可放置物,甚至纹理进行自定义。

"/lpeconfig"

(或"/livepainterconfig"或"/livepaintereditorconfig") 将打开完整的配置菜单 UI。


开发者 API

自定义工作台费用(可选)

其他模组可以更改自定义工作台的收费。manifest.json 中将其添加为 可选 依赖项:

"OptionalDependencies": { "StarkyMods:Live Painter & Editor": ">=1.0.0" }

使用 compileOnly 针对 jar 构建。由于是可选依赖,请将集成代码放在 单独的方法 中并进行保护,以便您的模组在未安装 Live Painter 时仍能正常运行:

try { LivePainterCosts.setup(); } catch (Throwable ignored) { /* Live Painter 未安装 */ }

在该方法内部,直接调用 org.starkymods.plugin.CustomizerBenchCostApi

更改内置价格(持久化 + 实时生效):

CustomizerBenchCostApi.setTierCost("Legendary", 25);              // 按品质或方块采集类型
CustomizerBenchCostApi.setSprayPainterCost("Ingredient_Life_Essence", 100);
CustomizerBenchCostApi.setPaintBottleCost("Ingredient_Life_Essence", 5);

使用您自己的经济系统 —— 实现 CustomizerBenchCostProvider;工作台会显示 displayText(),并且仅当 charge(...) 返回 true 时才进行自定义:

CustomizerBenchCostApi.setCostProvider(new CustomizerBenchCostProvider() {
    public String displayText() { return "500 金币"; }
    public boolean canAfford(Store<EntityStore> s, Ref<EntityStore> p) { return MyEconomy.balance(p) >= 500; }
    public boolean charge(Store<EntityStore> s, Ref<EntityStore> p) { return MyEconomy.take(p, 500); }
    public void refund(Store<EntityStore> s, Ref<EntityStore> p, String itemId) { MyEconomy.give(p, 500); } // 如果关闭而未应用更改
});
CustomizerBenchCostApi.clearCostProvider(); // 恢复内置费用

也来看看我的其他模组!

Mjolnir

Captain America's Shield

Hy Voice Zoo

Subnautica Stasis Rifle

RayGun

ThunderGun

The Fart Gun

Custom Skin Keeper

Blocking Items


Discord

我们的 Discord 服务器 (英语和西班牙语)面向所有对我们即将推出的 Hytale 新模组/模组更新感兴趣的人。


免责声明

允许每个人在视频、直播等中使用此模组。请注明来源为 StarkyMods,并在可能的情况下提供我们页面的链接。


感谢您游玩我们的模组!