Clean repo for open source release

Remove build artifacts, dev tool configs, unused dependencies,
and third-party source dumps. Add proper README, update .gitignore,
clean up Makefile.
This commit is contained in:
NotEvil
2026-04-12 00:51:22 +02:00
parent 2e7a1d403b
commit f6466360b6
1947 changed files with 238025 additions and 1 deletions

View File

@@ -0,0 +1,148 @@
package com.tiedup.remake.state.components;
import com.tiedup.remake.state.hosts.IPlayerBindStateHost;
import com.tiedup.remake.v2.BodyRegionV2;
import com.tiedup.remake.v2.bondage.capability.V2EquipmentHelper;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
/**
* Component responsible for querying player restraint state.
* Provides read-only checks for equipment status.
*
* Single Responsibility: State queries
* Complexity: LOW (read-only delegation)
* Risk: LOW (no state modification)
*
* Epic 5F: Uses V2EquipmentHelper/BodyRegionV2.
*/
public class PlayerStateQuery {
private final IPlayerBindStateHost host;
public PlayerStateQuery(IPlayerBindStateHost host) {
this.host = host;
}
// ========== State Query Methods ==========
/** Check if player has ropes/ties equipped. */
public boolean isTiedUp() {
return V2EquipmentHelper.isRegionOccupied(host.getPlayer(), BodyRegionV2.ARMS);
}
/** Check if player is currently gagged. */
public boolean isGagged() {
return V2EquipmentHelper.isRegionOccupied(host.getPlayer(), BodyRegionV2.MOUTH);
}
/** Check if player is blindfolded. */
public boolean isBlindfolded() {
return V2EquipmentHelper.isRegionOccupied(host.getPlayer(), BodyRegionV2.EYES);
}
/** Check if player has earplugs. */
public boolean hasEarplugs() {
return V2EquipmentHelper.isRegionOccupied(host.getPlayer(), BodyRegionV2.EARS);
}
public boolean isEarplugged() {
return hasEarplugs();
}
/** Check if player is wearing a collar. */
public boolean hasCollar() {
return V2EquipmentHelper.isRegionOccupied(host.getPlayer(), BodyRegionV2.NECK);
}
/** Returns the current collar ItemStack, or empty if none. */
public ItemStack getCurrentCollar() {
if (!hasCollar()) return ItemStack.EMPTY;
return V2EquipmentHelper.getInRegion(host.getPlayer(), BodyRegionV2.NECK);
}
public boolean hasClothes() {
return V2EquipmentHelper.isRegionOccupied(host.getPlayer(), BodyRegionV2.TORSO);
}
/** Check if player has mittens equipped. Phase 14.4: Mittens system */
public boolean hasMittens() {
return V2EquipmentHelper.isRegionOccupied(host.getPlayer(), BodyRegionV2.HANDS);
}
/** Check if player can be tied up (not already tied). */
public boolean canBeTiedUp() {
return !isTiedUp();
}
/** Check if player is both tied and gagged. */
public boolean isBoundAndGagged() {
return isTiedUp() && isGagged();
}
/** Check if player has knives in inventory. */
public boolean hasKnives() {
Player player = host.getPlayer();
if (player == null) return false;
// Check main inventory for knife items
for (int i = 0; i < player.getInventory().getContainerSize(); i++) {
ItemStack stack = player.getInventory().getItem(i);
if (
!stack.isEmpty() &&
stack.getItem() instanceof com.tiedup.remake.items.base.IKnife
) {
return true;
}
}
return false;
}
/**
* Check if player has a gagging effect enabled.
* Checks both if gagged AND if the gag item implements the effect.
*/
public boolean hasGaggingEffect() {
if (!isGagged()) return false;
ItemStack gag = V2EquipmentHelper.getInRegion(host.getPlayer(), BodyRegionV2.MOUTH);
if (gag.isEmpty()) return false;
return (
gag.getItem() instanceof
com.tiedup.remake.items.base.IHasGaggingEffect
);
}
/**
* Check if player has a blinding effect enabled.
* Checks both if blindfolded AND if the blindfold item implements the effect.
*/
public boolean hasBlindingEffect() {
if (!isBlindfolded()) return false;
ItemStack blindfold = V2EquipmentHelper.getInRegion(host.getPlayer(), BodyRegionV2.EYES);
if (blindfold.isEmpty()) return false;
return (
blindfold.getItem() instanceof
com.tiedup.remake.items.base.IHasBlindingEffect
);
}
/**
* Check if player can be kidnapped by random events.
* Checks game rules and current state.
*/
public boolean canBeKidnappedByEvents() {
Player player = host.getPlayer();
// Check if kidnapper spawning is enabled
if (player != null && player.level() != null) {
if (
!com.tiedup.remake.core.SettingsAccessor.doKidnappersSpawn(
player.level().getGameRules()
)
) {
return false;
}
}
// Can't be kidnapped if already tied up or captive (grace period protection)
return !isTiedUp() && !host.getKidnapped().isCaptive();
}
}