【V3.0】blocks.xml の変更点 ― 専用クラスが CompositeTileEntity へ統合

blocks.xml は V3.0「Dead Hot Summer」で最も大きく作り直されたファイルです(diff 約13万行)。コンテナや土地保護などを xpath で触っているMODは広範に影響を受けます。

クラス統合(最重要)

多数の専用C#ブロッククラスが廃止され、*Class="CompositeTileEntity" +入れ子の `<property class=”TEFeature“>`** で表現する方式に統合されました。

  • 廃止されたクラス値:Loot / SecureLoot / QuestLoot / LandClaim / PlayerSign / DoorSecure / DrawBridge / CarExplode / CarExplodeLoot
  • 新クラス値は実質 CompositeTileEntityInfo のみ別途)
  • ふるまいは入れ子フィーチャで表現:
    • ストレージ/ルート → TEFeatureStorageLootList を内包)
    • 施錠 → TEFeatureLockable / TEFeatureLockPickable
    • ドア → TEFeatureDoor
    • 看板/キャンバス → TEFeatureSignable / TEFeatureCanvas
    • 土地保護 → TEFeatureLandClaim / TEFeatureAreaRepair
    • 車の爆発 → TEFeatureExplodable
    • 新規 → TEFeaturePickup / TEFeatureCombine(コンバインステーション等)

//block/property[@name='Class'][@value='Loot'] のような Class値を狙う xpath は一切マッチしなくなりますLootListTEFeatureStorage の子になったため、/block/property[@name='LootList'] の直下指定は空振りします(//property[@name='LootList'] のような深さ非依存指定へ)。

プロパティのドット区切り → 入れ子化

  • DamageBonus.head などの DamageBonus.<material><property class="DamageBonus"> の子プロパティ
  • Explosion.* / PlantGrowing.* も同様に <property class="..."> 入れ子へ
  • Map.Color → フラットな単一プロパティ MapColor(例 value="100,100,100"

注意:blocks はドット→入れ子化です(materials.xml の DamageBonus はパイプ化なので別物)。

その他

  • XML宣言(encoding="UTF-8")が追加
  • ブロック定義の大量「丸ごと再出力」(追加1055/削除703)。cntLockers*ladderWood/Metal/SteelmetalCatwalk* などは再構成、combineStation / m60Turret / 新TVファミリなどが新規
  • Buff / BuffsWhenWalkedOn / ActiveRadiusEffects / TriggeredEvent 系はフラット文字列のまま形式変化なし

参考:差分例

土地保護ブロック(旧 Class=LandClaim/SecureLoot → 合成フィーチャ):

<property name="Class" value="CompositeTileEntity" />
<property class="CompositeFeatures">
    <property class="TEFeatureLandClaim" />
    <property class="TEFeatureAreaRepair" />
    <property class="TEFeatureStorage">
        <property name="LootList" value="playerLandClaimStorage" />
    </property>
</property>

DamageBonus のドット → 入れ子化:

- <property name="DamageBonus.head"  value="3"/>
- <property name="DamageBonus.glass" value="1"/>
+ <property class="DamageBonus">
+     <property name="head"  value="3" />
+     <property name="glass" value="1" />
+ </property>

※実験版(B252相当)適用直後の調査に基づきます。

コメントする

お名前(ニックネーム)だけで投稿できます。ログイン・メール登録は不要です。お気軽にどうぞ。

※ AIの回答は管理者の確認後に表示されます。内容は不正確な場合があります。