1. LockableComponent: remove duplicate "Lockable" tooltip line (ILockable.appendLockTooltip already handles lock status display) 2. ILockable/IHasResistance Javadoc: update @link refs from deleted V1 classes to V2 AbstractV2BondageItem/DataDrivenBondageItem 3. SettingsAccessor Javadoc: remove stale BindVariant @link references 4. DataDrivenBondageItem: update NECK block comment (remove branch ref) 5. Delete empty bondage3d/gags/ directory
5.8 KiB
D-01 Branch B : 46 JSON Item Definitions
Prérequis : Branch A (bridge utilities) mergée. Branche :
feature/d01-branch-b-definitionsObjectif : Créer les définitions JSON data-driven pour les 46 items V1. Chaque item V1 a un équivalent JSON. Les valeurs sont config-driven (pas hardcodées). À la fin, les 46 items V2 existent en parallèle des V1.
Extensions parser nécessaires
Avant de créer les JSON, vérifier que le parser supporte :
pose_type(string, optionnel) — ajouté en Branch A4can_attach_padlock(boolean, default true) — à ajouter si pas fait en A- GaggingComponent
material— ajouté en Branch A2 - ResistanceComponent
id— ajouté en Branch A1
Fichiers : DataDrivenItemParser.java, DataDrivenItemDefinition.java
Items à créer
Tous dans src/main/resources/data/tiedup/tiedup_items/.
Binds (16 fichiers)
| Fichier | display_name | resistance id | pose_type | Notes |
|---|---|---|---|---|
ropes.json |
Ropes | rope | STANDARD | supports_color: true |
armbinder.json |
Armbinder | armbinder | STANDARD | |
dogbinder.json |
Dogbinder | armbinder | DOG | movement_style: crawl |
chain.json |
Chains | chain | STANDARD | |
ribbon.json |
Ribbon | ribbon | STANDARD | supports_color: true |
slime.json |
Slime Bind | slime | STANDARD | can_attach_padlock: false |
vine_seed.json |
Vine Bind | vine | STANDARD | can_attach_padlock: false |
web_bind.json |
Web Bind | web | STANDARD | can_attach_padlock: false |
shibari.json |
Shibari | rope | STANDARD | supports_color: true |
leather_straps.json |
Leather Straps | armbinder | STANDARD | |
medical_straps.json |
Medical Straps | armbinder | STANDARD | |
beam_cuffs.json |
Beam Cuffs | chain | STANDARD | |
duct_tape.json |
Duct Tape | tape | STANDARD | can_attach_padlock: false |
straitjacket.json |
Straitjacket | straitjacket | STRAITJACKET | |
wrap.json |
Wrap | wrap | WRAP | |
latex_sack.json |
Latex Sack | latex_sack | LATEX_SACK |
Tous ont : regions ["ARMS"], lockable component (sauf organiques), resistance component avec id.
Référence : BindVariant.java pour les registry names, pose types, supports_color. ModConfig.ServerConfig pour les resistance IDs (lignes 413-428).
Gags (19 fichiers)
| Fichier | display_name | gag material | Notes |
|---|---|---|---|
cloth_gag.json |
Cloth Gag | cloth | |
ropes_gag.json |
Rope Gag | cloth | |
cleave_gag.json |
Cleave Gag | cloth | |
ribbon_gag.json |
Ribbon Gag | cloth | supports_color: true |
ball_gag.json |
Ball Gag | ball | supports_color: true |
ball_gag_strap.json |
Ball Gag (Strap) | ball | |
tape_gag.json |
Tape Gag | tape | can_attach_padlock: false |
wrap_gag.json |
Wrap Gag | tape | |
slime_gag.json |
Slime Gag | tape | can_attach_padlock: false |
vine_gag.json |
Vine Gag | tape | can_attach_padlock: false |
web_gag.json |
Web Gag | tape | can_attach_padlock: false |
panel_gag.json |
Panel Gag | panel | |
beam_panel_gag.json |
Beam Panel Gag | panel | |
chain_panel_gag.json |
Chain Panel Gag | panel | |
latex_gag.json |
Latex Gag | latex | |
tube_gag.json |
Tube Gag | stuffed | |
bite_gag.json |
Bite Gag | bite | |
sponge_gag.json |
Sponge Gag | sponge | |
baguette_gag.json |
Baguette Gag | baguette |
Tous ont : regions ["MOUTH"], gagging component avec material, lockable, resistance {"id": "gag"}, adjustable.
Référence : GagVariant.java pour les materials et registry names. ModConfig.ServerConfig.gagComprehension/gagRange pour les valeurs runtime.
Blindfolds (2 fichiers)
| Fichier | display_name |
|---|---|
classic_blindfold.json |
Blindfold |
blindfold_mask.json |
Blindfold Mask |
Regions ["EYES"], components : blinding, lockable, resistance {"id": "blindfold"}, adjustable.
Earplugs (1 fichier)
classic_earplugs.json — regions ["EARS"], lockable, resistance {"id": "blindfold"} (partage la résistance blindfold dans V1).
Mittens (1 fichier)
leather_mittens.json — regions ["HANDS"], lockable.
Collars (5 fichiers)
| Fichier | display_name | Components spécifiques |
|---|---|---|
classic_collar.json |
Classic Collar | ownership, lockable, resistance {"id": "collar"} |
shock_collar.json |
Shock Collar | + shock {"damage": 2.0} |
shock_collar_auto.json |
Auto Shock Collar | + shock {"damage": 2.0, "auto_interval": 200} |
gps_collar.json |
GPS Collar | + gps {"safe_zone_radius": 50} |
choke_collar.json |
Choke Collar | + choking |
Combos (3 fichiers)
| Fichier | display_name | Regions | Components |
|---|---|---|---|
hood.json |
Hood | ["EYES"] |
blinding, gagging {"material": "cloth"}, lockable, blocked_regions: ["EYES", "EARS"] |
medical_gag.json |
Medical Gag | ["MOUTH"] |
gagging {"material": "stuffed"}, blinding, lockable |
ball_gag_3d.json |
Ball Gag 3D | ["MOUTH"] |
gagging {"material": "ball"}, lockable, adjustable. Model 3D spécifique. |
Supprimer le fichier test
Supprimer src/main/resources/data/tiedup/tiedup_items/test_component_gag.json (fichier de test Phase 1, plus nécessaire).
Vérification
make build— cleanmake run— les 46 items data-driven apparaissent (via/tiedup giveou creative tab section data-driven)- Résistance = valeur config (changer dans config, vérifier que la résistance change)
- Gag comprehension = valeur config (changer dans config, vérifier)
- Collars ownership fonctionne via le nouveau OwnershipComponent
- Items organiques (slime, vine, web, tape) ne peuvent pas recevoir de padlock