[V3.0] Changes to blocks.xml — Dedicated Classes Merged into CompositeTileEntity

blocks.xml is the most heavily reworked file in V3.0 “Dead Hot Summer” (diff of roughly 130,000 lines). MODs that touch containers, land protection, and the like via xpath are broadly affected.

Class Consolidation (Most Important)

Many dedicated C# block classes have been retired and consolidated into a scheme expressed with *Class="CompositeTileEntity" plus nested `<property class=”TEFeature“>`**.

  • Retired class values: Loot / SecureLoot / QuestLoot / LandClaim / PlayerSign / DoorSecure / DrawBridge / CarExplode / CarExplodeLoot
  • The new class value is essentially CompositeTileEntity (with Info being the only separate exception)
  • Behavior is expressed through nested features:
    • Storage/loot → TEFeatureStorage (which contains LootList)
    • Locking → TEFeatureLockable / TEFeatureLockPickable
    • Doors → TEFeatureDoor
    • Signs/canvas → TEFeatureSignable / TEFeatureCanvas
    • Land protection → TEFeatureLandClaim / TEFeatureAreaRepair
    • Car explosions → TEFeatureExplodable
    • New → TEFeaturePickup / TEFeatureCombine (combine station, etc.)

Any xpath targeting a Class value, such as //block/property[@name='Class'][@value='Loot'], will no longer match at all. Since LootList is now a child of TEFeatureStorage, a direct specifier like /block/property[@name='LootList'] will come up empty (switch to a depth-independent specifier such as //property[@name='LootList']).

Dot-Separated Properties → Nested

  • DamageBonus.<material> such as DamageBonus.head → child properties of <property class="DamageBonus">
  • Explosion.* / PlantGrowing.* likewise become nested under <property class="...">
  • Map.Color → a flat single property, MapColor (e.g. value="100,100,100")

Note: in blocks, dots become nesting (the DamageBonus in materials.xml is pipe-delimited, so that’s a different matter).

Other Changes

  • An XML declaration (encoding="UTF-8") has been added
  • A large number of block definitions have been “re-emitted wholesale” (1,055 additions / 703 deletions). Items such as cntLockers*, ladderWood/Metal/Steel, and metalCatwalk* have been restructured, while combineStation, m60Turret, and the new TV family are new additions
  • Buff / BuffsWhenWalkedOn / ActiveRadiusEffects / TriggeredEvent and the like remain flat strings with no format change

Reference: Diff Examples

Land protection block (old Class=LandClaim/SecureLoot → composite features):

<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 dots → nested:

- <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>

* Based on investigation immediately after applying the experimental build (equivalent to B252).


Related: List of MOD-making articles

コメントする

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

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