feat(D-01/A): poseType, helpers, OWNERSHIP ComponentType (A4, A5, A6)
- DataDrivenItemDefinition: add poseType field, parsed from JSON "pose_type" - PoseTypeHelper: resolves PoseType from V2 definition or V1 ItemBind fallback - BindModeHelper: static bind mode NBT utilities (isBindItem, hasArmsBound, hasLegsBound, cycleBindModeId) — works for V1 and V2 items - CollarHelper: complete static utility class for collar operations with dual-path V2/V1 dispatch (ownership, features, shock, GPS, choke, alert) - ComponentType: add OWNERSHIP enum value - OwnershipComponent: stub class (lifecycle hooks added in next commit)
This commit is contained in:
@@ -15,7 +15,8 @@ public enum ComponentType {
|
||||
SHOCK("shock", ShockComponent::fromJson),
|
||||
GPS("gps", GpsComponent::fromJson),
|
||||
CHOKING("choking", ChokingComponent::fromJson),
|
||||
ADJUSTABLE("adjustable", AdjustableComponent::fromJson);
|
||||
ADJUSTABLE("adjustable", AdjustableComponent::fromJson),
|
||||
OWNERSHIP("ownership", OwnershipComponent::fromJson);
|
||||
|
||||
private final String jsonKey;
|
||||
private final Function<JsonObject, IItemComponent> factory;
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.tiedup.remake.v2.bondage.component;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
/**
|
||||
* Component: collar ownership behavior for data-driven items.
|
||||
*
|
||||
* <p>Marks an item as a collar with ownership capabilities.
|
||||
* Lifecycle hooks handle CollarRegistry registration/unregistration.</p>
|
||||
*
|
||||
* <p>JSON config: {@code "ownership": {}}</p>
|
||||
*/
|
||||
public class OwnershipComponent implements IItemComponent {
|
||||
|
||||
private OwnershipComponent() {}
|
||||
|
||||
public static IItemComponent fromJson(JsonObject config) {
|
||||
return new OwnershipComponent();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user