跳至主要内容

FreeMinecraftModels

FreeMinecraftModels 既是自訂模型運行時,也是面向開發者的 API。

當前的外掛已不再只是「imports 資料夾加上 /fmm reload」的工作流程。當前的程式碼庫新增了:

  • 首次設定流程,以及在設定標記為完成前的加入時提醒
  • 由 Nightbreak 支援的設定選單,用於安裝和更新官方模型包
  • plugins/FreeMinecraftModels/output/FreeMinecraftModels 生成的資源包資料夾
  • plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip 生成的壓縮包成品
  • 更廣泛的指令介面,涵蓋設定、內容更新、生成、偽裝、道具和除錯
  • 坐騎點骨骼 — 名稱以 mount_ 開頭的骨骼會在模型上建立可騎乘的座位點,讓玩家騎乘自訂實體
  • 自訂顯示模型 JSON — 在 .bbmodel 旁放置同名的 .json 檔案(Blockbench 顯示物品匯出)以覆蓋遊戲內物品外觀(需要 1.21.4+)
  • 自訂可腳本化物品 — YML 設定中設定了 material: 的模型會成為可手持的自訂物品,支援完整的 Lua 腳本和 22 個物品鉤子
  • 管理員內容瀏覽器/fmm admin)— 供管理員瀏覽已安裝的包、資料夾、模型和自訂物品的物品欄選單
  • 玩家可合成物品選單/fmm)— 顯示所有可合成物品及其配方的物品欄選單;點擊物品會顯示空間 3x3 方格、箭頭和輸出
  • 玩家 UI API — Lua 腳本可以向玩家顯示 Boss 血條、動作列和標題

從這裡開始

Lua 腳本

FreeMinecraftModels 包含適用於道具和自訂物品的 Lua 腳本支援,由 MagmaCore 2.0 腳本引擎驅動。腳本位於 plugins/FreeMinecraftModels/scripts/

道具鉤子(8 個)

道具腳本可以回應以下鉤子:

鉤子觸發條件
on_spawn道具被生成到世界中
on_game_tick道具存在時的每個遊戲 tick
on_zone_enter玩家進入道具的互動區域
on_zone_leave玩家離開道具的互動區域
on_destroy道具從世界中移除
on_left_click玩家左鍵點擊道具
on_right_click玩家右鍵點擊道具
on_projectile_hit投射物擊中道具

道具腳本會收到一個 context.prop 表,包含 model_idcurrent_location 等欄位,以及 play_animation(name)stop_animation() 等方法。

物品鉤子(22 個)

自訂物品腳本(YML 中設定了 material: 的模型)可以回應以下鉤子:

鉤子觸發條件
on_equip物品被裝備(進入活動欄位)
on_unequip物品被卸下(離開活動欄位)
on_attack_entity玩家手持物品攻擊實體
on_kill_entity玩家手持物品擊殺實體
on_take_damage物品裝備時玩家受到傷害
on_shield_block玩家用盾牌格擋傷害
on_shoot_bow玩家射箭
on_projectile_hit玩家發射的投射物擊中目標
on_projectile_launch玩家發射投射物
on_right_click玩家手持物品右鍵點擊
on_left_click玩家手持物品左鍵點擊
on_shift_right_click手持物品 Shift + 右鍵點擊
on_shift_left_click手持物品 Shift + 左鍵點擊
on_interact_entity玩家手持物品右鍵點擊實體
on_swap_hands物品在兩手之間交換
on_drop玩家丟棄物品
on_break_block玩家手持物品破壞方塊
on_consume物品被消耗(食物/藥水)
on_item_damage物品受到耐久度損傷
on_fish玩家使用釣竿
on_death物品裝備時玩家死亡
on_game_tick物品裝備時的每個伺服器 tick

物品腳本會收到一個 context.item 表,包含與手持物品和持有它的玩家相關的欄位和方法。Lua 腳本還可以使用玩家 UI API 來顯示 Boss 血條、動作列和標題。

當前注意事項

  • 目前內建於外掛中的官方 Nightbreak 管理包為 Basic Furniture PackBetterStructures Prop PackEliteMobs Prop Pack
  • FreeMinecraftModels 會在啟動時和執行 /fmm reload 時重建其資源包輸出。
  • ResourcePackManager 仍然是將生成的資源包自動分發給客戶端的推薦方式。