アイテム・装備・ルート — Fyrox Rustゲームエンジン向けの完全なインベントリシステム。5段階のレアリティ、10種類のカテゴリ、スタック、装備スロット、ドラッグ&ドロップUI。
名前、説明、アイコンパス、レアリティ、カテゴリ、重量、価値、最大スタック数、カスタムタグでアイテムを定義。完全なserdeシリアライズ対応。
コモン、アンコモン、レア、エピック、レジェンダリー。各レアリティにはUI表示用の固有カラーがあり、ルートテーブルの確率制御にも活用できます。
その他、武器、防具、兜、盾、靴、アクセサリ、消耗品、素材、クエストアイテム。カテゴリは装備スロットのバリデーションを制御します。
同一アイテムを設定可能な上限までスタック。スタックの分割、部分スタックの統合、名前・レアリティ・カテゴリ・価値によるインベントリのソートが可能。
固定スロット数でインベントリを作成。スタック、分割、統合、ソートの全操作に対応。アイテムID、カテゴリ、タグによるクエリが可能。
8つの型付きスロット:メインハンド、オフハンド、頭、胴体、脚、足、アクセサリ2枠。カテゴリバリデーション付きの装備・解除、自動スワップ対応。
Fyroxリソースとしての中央アイテムレジストリ。RONファイルから読み込み、IDでアイテムを検索。シーン内のすべてのインベントリインスタンスで共有。
インベントリを所有するエンティティ用のInventoryHolderスクリプト。インタラクション範囲と拾得時自動スタック付きのItemPickupスクリプト。
| 段階 | カラー |
|---|---|
| コモン | グレー (#94a3b8) |
| アンコモン | グリーン (#22c55e) |
| レア | ブルー (#3b82f6) |
| エピック | パープル (#a855f7) |
| レジェンダリー | オレンジ (#f97316) |
| カテゴリ | 装備スロット |
|---|---|
| 武器 | メインハンド |
| 盾 | オフハンド |
| 兜 | 頭 |
| 防具 | 胴体 |
| 靴 | 足 |
| アクセサリ | アクセサリ (x2) |
| 消耗品 | -- |
| 素材 | -- |
| クエストアイテム | -- |
| その他 | -- |
use fyrox_inventory::*;
// アイテムを定義
let sword = ItemDefinition {
id: "iron_sword".into(),
name: "Iron Sword".into(),
description: "A sturdy blade forged from iron.".into(),
icon: "data/icons/iron_sword.png".into(),
rarity: Rarity::Uncommon,
category: Category::Weapon,
weight: 3.5,
value: 150,
max_stack: 1,
tags: vec!["melee".into(), "metal".into()],
};
// データベースに登録
let mut db = ItemDatabase::new();
db.register(sword);
// インベントリ(20スロット)を作成してアイテムを追加
let mut inventory = Inventory::new(20);
inventory.add_item("iron_sword", 1, &db); // 剣を1本追加
inventory.add_item("health_potion", 5, &db); // スタック可能
// スロットに装備
let mut equipment = Equipment::new();
equipment.equip(EquipSlot::MainHand, "iron_sword", &mut inventory, &db);
// レアリティでソート(レジェンダリーが先頭)
inventory.sort_by_rarity(&db);
Fyrox Rustゲームエンジン向けの完全なアイテム・装備システムプラグインです。アイテム定義、スタック、インベントリ、装備スロット、ワールドピックアップを処理します。Pro版ではビジュアルなドラッグ&ドロップUIとエディタツールが追加されます。
レアリティは5段階(コモン、アンコモン、レア、エピック、レジェンダリー)、アイテムカテゴリは10種類(その他、武器、防具、兜、盾、靴、アクセサリ、消耗品、素材、クエストアイテム)です。カスタムタグによりカテゴリを超えた追加フィルタリングも可能です。
Equipmentは8つの型付きスロットを提供します:メインハンド、オフハンド、頭、胴体、脚、足、アクセサリ2枠。装備前にカテゴリによるバリデーションが行われます。装備済みスロットへのスワップでは、前のアイテムが自動的にインベントリに返却されます。
はい。すべての型がserde Serialize/Deserializeを実装しているため、任意のフォーマット(JSON、RON、bincodeなど)で永続化できます。Pro版にはfyrox-savegame統合例が含まれ、圧縮・暗号化にも対応しています。
ItemDatabaseは.itemdb(RON)ファイルから読み込まれるFyroxリソースです。ゲーム内のすべてのアイテム定義の中央レジストリとして機能します。すべてのインベントリインスタンスが同じデータベースを参照し、一貫性を確保します。