Remove internal phase comments and format code

Strip all Phase references, TODO/FUTURE roadmap notes, and internal
planning comments from the codebase. Run Prettier for consistent
formatting across all Java files.
This commit is contained in:
NotEvil
2026-04-12 01:24:49 +02:00
parent 73d70e212d
commit a71093ba9c
482 changed files with 8500 additions and 5155 deletions

View File

@@ -1,7 +1,7 @@
package com.tiedup.remake.v2.bondage.movement;
import org.jetbrains.annotations.Nullable;
import com.tiedup.remake.v2.BodyRegionV2;
import org.jetbrains.annotations.Nullable;
/**
* Movement styles that change how a bound player physically moves.
@@ -16,7 +16,6 @@ import com.tiedup.remake.v2.BodyRegionV2;
* to avoid pulling server-only classes into client code.</p>
*/
public enum MovementStyle {
/** Swaying side-to-side gait, visual zigzag via animation. Jump allowed. */
WADDLE(1, 0.6f, false),
@@ -33,7 +32,11 @@ public enum MovementStyle {
private final float defaultSpeedMultiplier;
private final boolean defaultJumpDisabled;
MovementStyle(int severity, float defaultSpeedMultiplier, boolean defaultJumpDisabled) {
MovementStyle(
int severity,
float defaultSpeedMultiplier,
boolean defaultJumpDisabled
) {
this.severity = severity;
this.defaultSpeedMultiplier = defaultSpeedMultiplier;
this.defaultJumpDisabled = defaultJumpDisabled;

View File

@@ -61,18 +61,23 @@ public class MovementStyleManager {
// RestraintEffectUtils used this UUID with ADDITION operation and addPermanentModifier().
// Players upgrading from V1 may still have this modifier saved in their NBT.
// Removed on tick to prevent double stacking with V2 MULTIPLY_BASE modifiers.
private static final UUID V1_BIND_SPEED_MODIFIER_UUID =
UUID.fromString("7f3c7c8e-9d4e-4c7a-8e5f-1a2b3c4d5e6f");
private static final UUID V1_BIND_SPEED_MODIFIER_UUID = UUID.fromString(
"7f3c7c8e-9d4e-4c7a-8e5f-1a2b3c4d5e6f"
);
// --- Unique UUIDs for AttributeModifiers (one per style to allow clean removal) ---
private static final UUID WADDLE_SPEED_UUID =
UUID.fromString("d7a1c001-0000-0000-0000-000000000001");
private static final UUID SHUFFLE_SPEED_UUID =
UUID.fromString("d7a1c001-0000-0000-0000-000000000002");
private static final UUID HOP_SPEED_UUID =
UUID.fromString("d7a1c001-0000-0000-0000-000000000003");
private static final UUID CRAWL_SPEED_UUID =
UUID.fromString("d7a1c001-0000-0000-0000-000000000004");
private static final UUID WADDLE_SPEED_UUID = UUID.fromString(
"d7a1c001-0000-0000-0000-000000000001"
);
private static final UUID SHUFFLE_SPEED_UUID = UUID.fromString(
"d7a1c001-0000-0000-0000-000000000002"
);
private static final UUID HOP_SPEED_UUID = UUID.fromString(
"d7a1c001-0000-0000-0000-000000000003"
);
private static final UUID CRAWL_SPEED_UUID = UUID.fromString(
"d7a1c001-0000-0000-0000-000000000004"
);
// --- Hop tuning constants ---
private static final double HOP_Y_IMPULSE = 0.28;
@@ -119,7 +124,11 @@ public class MovementStyleManager {
// --- Skip conditions ---
// Update last position even when suspended to prevent false movement
// detection on resume (e.g., teleport while riding)
if (player.isPassenger() || player.isDeadOrDying() || state.isStruggling()) {
if (
player.isPassenger() ||
player.isDeadOrDying() ||
state.isStruggling()
) {
state.lastX = player.getX();
state.lastY = player.getY();
state.lastZ = player.getZ();
@@ -138,8 +147,8 @@ public class MovementStyleManager {
// --- Resolve current style from equipped items ---
IV2BondageEquipment equipment = V2EquipmentHelper.getEquipment(player);
Map<BodyRegionV2, ItemStack> equipped = equipment != null
? equipment.getAllEquipped() : Map.of();
Map<BodyRegionV2, ItemStack> equipped =
equipment != null ? equipment.getAllEquipped() : Map.of();
ResolvedMovement resolved = MovementStyleResolver.resolve(equipped);
// --- Compare with current active style ---
@@ -163,7 +172,9 @@ public class MovementStyleManager {
// Sync to all tracking clients (animation + crawl pose)
ModNetwork.sendToAllTrackingAndSelf(
new PacketSyncMovementStyle(player.getUUID(), newStyle), player);
new PacketSyncMovementStyle(player.getUUID(), newStyle),
player
);
}
// --- Per-style tick ---
@@ -229,15 +240,18 @@ public class MovementStyleManager {
private static double getJumpBoostFactor(Player player) {
var jumpBoost = player.getEffect(MobEffects.JUMP);
if (jumpBoost != null) {
return 1.0 + (jumpBoost.getAmplifier() + 1) * 0.1 / 0.42;
return 1.0 + ((jumpBoost.getAmplifier() + 1) * 0.1) / 0.42;
}
return 1.0;
}
// ==================== Lifecycle ====================
private static void onActivate(ServerPlayer player, PlayerBindState state,
MovementStyle style) {
private static void onActivate(
ServerPlayer player,
PlayerBindState state,
MovementStyle style
) {
switch (style) {
case WADDLE -> activateWaddle(player, state);
case SHUFFLE -> activateShuffle(player, state);
@@ -246,8 +260,11 @@ public class MovementStyleManager {
}
}
private static void onDeactivate(ServerPlayer player, PlayerBindState state,
MovementStyle style) {
private static void onDeactivate(
ServerPlayer player,
PlayerBindState state,
MovementStyle style
) {
switch (style) {
case WADDLE -> deactivateWaddle(player, state);
case SHUFFLE -> deactivateShuffle(player, state);
@@ -267,12 +284,22 @@ public class MovementStyleManager {
// ==================== Waddle ====================
private static void activateWaddle(ServerPlayer player, PlayerBindState state) {
applySpeedModifier(player, WADDLE_SPEED_UUID, "tiedup.waddle_speed",
state.getResolvedMovementSpeed());
private static void activateWaddle(
ServerPlayer player,
PlayerBindState state
) {
applySpeedModifier(
player,
WADDLE_SPEED_UUID,
"tiedup.waddle_speed",
state.getResolvedMovementSpeed()
);
}
private static void deactivateWaddle(ServerPlayer player, PlayerBindState state) {
private static void deactivateWaddle(
ServerPlayer player,
PlayerBindState state
) {
removeSpeedModifier(player, WADDLE_SPEED_UUID);
}
@@ -283,31 +310,54 @@ public class MovementStyleManager {
// ==================== Shuffle ====================
private static void activateShuffle(ServerPlayer player, PlayerBindState state) {
applySpeedModifier(player, SHUFFLE_SPEED_UUID, "tiedup.shuffle_speed",
state.getResolvedMovementSpeed());
private static void activateShuffle(
ServerPlayer player,
PlayerBindState state
) {
applySpeedModifier(
player,
SHUFFLE_SPEED_UUID,
"tiedup.shuffle_speed",
state.getResolvedMovementSpeed()
);
}
private static void deactivateShuffle(ServerPlayer player, PlayerBindState state) {
private static void deactivateShuffle(
ServerPlayer player,
PlayerBindState state
) {
removeSpeedModifier(player, SHUFFLE_SPEED_UUID);
}
private static void tickShuffle(ServerPlayer player, PlayerBindState state) {
private static void tickShuffle(
ServerPlayer player,
PlayerBindState state
) {
// Shuffle: speed reduction via attribute is sufficient. No per-tick work.
}
// ==================== Hop ====================
private static void activateHop(ServerPlayer player, PlayerBindState state) {
private static void activateHop(
ServerPlayer player,
PlayerBindState state
) {
// Apply base speed reduction (~15% base speed between hops)
applySpeedModifier(player, HOP_SPEED_UUID, "tiedup.hop_speed",
state.getResolvedMovementSpeed());
applySpeedModifier(
player,
HOP_SPEED_UUID,
"tiedup.hop_speed",
state.getResolvedMovementSpeed()
);
state.hopCooldown = 0;
state.hopStartupPending = true;
state.hopStartupTicks = HOP_STARTUP_DELAY_TICKS;
}
private static void deactivateHop(ServerPlayer player, PlayerBindState state) {
private static void deactivateHop(
ServerPlayer player,
PlayerBindState state
) {
removeSpeedModifier(player, HOP_SPEED_UUID);
state.hopCooldown = 0;
state.hopStartupPending = false;
@@ -325,8 +375,9 @@ public class MovementStyleManager {
* </ul>
*/
private static void tickHop(ServerPlayer player, PlayerBindState state) {
boolean isMoving = player.distanceToSqr(state.lastX, state.lastY, state.lastZ)
> MOVEMENT_THRESHOLD_SQ;
boolean isMoving =
player.distanceToSqr(state.lastX, state.lastY, state.lastZ) >
MOVEMENT_THRESHOLD_SQ;
// Decrement cooldown
if (state.hopCooldown > 0) {
@@ -351,8 +402,10 @@ public class MovementStyleManager {
} else if (!isMoving) {
state.hopNotMovingTicks++;
// Reset startup if not moving for >= 2 consecutive ticks
if (state.hopNotMovingTicks >= HOP_STARTUP_RESET_TICKS
&& !state.hopStartupPending) {
if (
state.hopNotMovingTicks >= HOP_STARTUP_RESET_TICKS &&
!state.hopStartupPending
) {
state.hopStartupPending = true;
state.hopStartupTicks = HOP_STARTUP_DELAY_TICKS;
}
@@ -373,9 +426,9 @@ public class MovementStyleManager {
Vec3 currentMotion = player.getDeltaMovement();
player.setDeltaMovement(
currentMotion.x + forward.x * HOP_FORWARD_IMPULSE,
HOP_Y_IMPULSE,
currentMotion.z + forward.z * HOP_FORWARD_IMPULSE
currentMotion.x + forward.x * HOP_FORWARD_IMPULSE,
HOP_Y_IMPULSE,
currentMotion.z + forward.z * HOP_FORWARD_IMPULSE
);
state.hopCooldown = HOP_COOLDOWN_TICKS;
@@ -386,15 +439,25 @@ public class MovementStyleManager {
// ==================== Crawl ====================
private static void activateCrawl(ServerPlayer player, PlayerBindState state) {
applySpeedModifier(player, CRAWL_SPEED_UUID, "tiedup.crawl_speed",
state.getResolvedMovementSpeed());
private static void activateCrawl(
ServerPlayer player,
PlayerBindState state
) {
applySpeedModifier(
player,
CRAWL_SPEED_UUID,
"tiedup.crawl_speed",
state.getResolvedMovementSpeed()
);
player.setForcedPose(Pose.SWIMMING);
player.refreshDimensions();
state.pendingPoseRestore = false;
}
private static void deactivateCrawl(ServerPlayer player, PlayerBindState state) {
private static void deactivateCrawl(
ServerPlayer player,
PlayerBindState state
) {
removeSpeedModifier(player, CRAWL_SPEED_UUID);
// Space check: can the player stand up?
@@ -427,8 +490,10 @@ public class MovementStyleManager {
* Called every tick regardless of active style (step 2 in tick flow).
* Retries until space is available for the player to stand.
*/
private static void tryRestoreStandingPose(ServerPlayer player,
PlayerBindState state) {
private static void tryRestoreStandingPose(
ServerPlayer player,
PlayerBindState state
) {
EntityDimensions standDims = player.getDimensions(Pose.STANDING);
AABB standBox = standDims.makeBoundingBox(player.position());
boolean canStand = player.level().noCollision(player, standBox);
@@ -437,8 +502,10 @@ public class MovementStyleManager {
player.setForcedPose(null);
player.refreshDimensions();
state.pendingPoseRestore = false;
LOGGER.debug("Restored standing pose for {} (pending pose restore cleared)",
player.getName().getString());
LOGGER.debug(
"Restored standing pose for {} (pending pose restore cleared)",
player.getName().getString()
);
}
}
@@ -457,10 +524,15 @@ public class MovementStyleManager {
*/
private static void cleanupV1Modifier(ServerPlayer player) {
AttributeInstance attr = player.getAttribute(Attributes.MOVEMENT_SPEED);
if (attr != null && attr.getModifier(V1_BIND_SPEED_MODIFIER_UUID) != null) {
if (
attr != null &&
attr.getModifier(V1_BIND_SPEED_MODIFIER_UUID) != null
) {
attr.removeModifier(V1_BIND_SPEED_MODIFIER_UUID);
LOGGER.info("Removed stale V1 speed modifier from player {}",
player.getName().getString());
LOGGER.info(
"Removed stale V1 speed modifier from player {}",
player.getName().getString()
);
}
}
@@ -481,8 +553,12 @@ public class MovementStyleManager {
* @param name modifier name (for debugging in F3 screen)
* @param multiplier the desired speed fraction (0.0-1.0)
*/
private static void applySpeedModifier(ServerPlayer player, UUID uuid, String name,
float multiplier) {
private static void applySpeedModifier(
ServerPlayer player,
UUID uuid,
String name,
float multiplier
) {
AttributeInstance attr = player.getAttribute(Attributes.MOVEMENT_SPEED);
if (attr == null) return;
@@ -491,8 +567,14 @@ public class MovementStyleManager {
// MULTIPLY_BASE: value of -(1 - multiplier) reduces base speed to multiplier fraction
double value = -(1.0 - multiplier);
attr.addTransientModifier(new AttributeModifier(uuid, name,
value, AttributeModifier.Operation.MULTIPLY_BASE));
attr.addTransientModifier(
new AttributeModifier(
uuid,
name,
value,
AttributeModifier.Operation.MULTIPLY_BASE
)
);
}
/**

View File

@@ -47,7 +47,9 @@ public final class MovementStyleResolver {
* @param equipped map of region to ItemStack (from {@code IV2BondageEquipment.getAllEquipped()})
* @return the resolved movement, or {@link ResolvedMovement#NONE} if no styled items
*/
public static ResolvedMovement resolve(Map<BodyRegionV2, ItemStack> equipped) {
public static ResolvedMovement resolve(
Map<BodyRegionV2, ItemStack> equipped
) {
if (equipped == null || equipped.isEmpty()) {
return ResolvedMovement.NONE;
}
@@ -70,16 +72,20 @@ public final class MovementStyleResolver {
int severity = style.getSeverity();
int regionOrdinal = region.ordinal();
if (severity > bestSeverity
|| (severity == bestSeverity && regionOrdinal < bestRegionOrdinal)) {
if (
severity > bestSeverity ||
(severity == bestSeverity &&
regionOrdinal < bestRegionOrdinal)
) {
bestStyle = style;
MovementModifier mod = def.movementModifier();
bestSpeed = (mod != null && mod.speedMultiplier() != null)
? mod.speedMultiplier()
: style.getDefaultSpeedMultiplier();
bestJumpDisabled = (mod != null && mod.jumpDisabled() != null)
? mod.jumpDisabled()
: style.isDefaultJumpDisabled();
? mod.speedMultiplier()
: style.getDefaultSpeedMultiplier();
bestJumpDisabled = (mod != null &&
mod.jumpDisabled() != null)
? mod.jumpDisabled()
: style.isDefaultJumpDisabled();
bestSeverity = severity;
bestRegionOrdinal = regionOrdinal;
}
@@ -92,8 +98,11 @@ public final class MovementStyleResolver {
int severity = fallback.style.getSeverity();
int regionOrdinal = region.ordinal();
if (severity > bestSeverity
|| (severity == bestSeverity && regionOrdinal < bestRegionOrdinal)) {
if (
severity > bestSeverity ||
(severity == bestSeverity &&
regionOrdinal < bestRegionOrdinal)
) {
bestStyle = fallback.style;
bestSpeed = fallback.speed;
bestJumpDisabled = fallback.jumpDisabled;
@@ -139,10 +148,16 @@ public final class MovementStyleResolver {
PoseType poseType = bindItem.getPoseType();
return switch (poseType) {
case WRAP, LATEX_SACK ->
new V1Fallback(MovementStyle.SHUFFLE, V1_IMMOBILIZED_SPEED, true);
case DOG, HUMAN_CHAIR ->
new V1Fallback(MovementStyle.CRAWL, V1_STANDARD_SPEED, true);
case WRAP, LATEX_SACK -> new V1Fallback(
MovementStyle.SHUFFLE,
V1_IMMOBILIZED_SPEED,
true
);
case DOG, HUMAN_CHAIR -> new V1Fallback(
MovementStyle.CRAWL,
V1_STANDARD_SPEED,
true
);
default ->
// STANDARD, STRAITJACKET: shuffle at V1 standard speed
new V1Fallback(MovementStyle.SHUFFLE, V1_STANDARD_SPEED, true);
@@ -150,5 +165,9 @@ public final class MovementStyleResolver {
}
/** Internal holder for V1 fallback resolution result. */
private record V1Fallback(MovementStyle style, float speed, boolean jumpDisabled) {}
private record V1Fallback(
MovementStyle style,
float speed,
boolean jumpDisabled
) {}
}

View File

@@ -18,7 +18,10 @@ public record ResolvedMovement(
/** Final jump-disabled flag (style default or item override). */
boolean jumpDisabled
) {
/** Sentinel for "no movement style active". */
public static final ResolvedMovement NONE = new ResolvedMovement(null, 1.0f, false);
public static final ResolvedMovement NONE = new ResolvedMovement(
null,
1.0f,
false
);
}