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:
@@ -0,0 +1,125 @@
|
||||
package com.tiedup.remake.util;
|
||||
|
||||
import com.tiedup.remake.blocks.entity.IBondageItemHolder;
|
||||
import com.tiedup.remake.items.base.*;
|
||||
import java.util.List;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
||||
/**
|
||||
* Utility class for loading bondage items into block entity holders.
|
||||
*
|
||||
* <p>This centralizes the logic for:
|
||||
* <ul>
|
||||
* <li>Loading items into IBondageItemHolder (traps, bombs, chests)</li>
|
||||
* <li>Checking if an item is a loadable bondage item</li>
|
||||
* <li>Adding item tooltips from NBT data</li>
|
||||
* </ul>
|
||||
*
|
||||
* <p>Used by BlockKidnapBomb, BlockRopeTrap, and BlockTrappedChest.
|
||||
*/
|
||||
public final class BondageItemLoaderUtility {
|
||||
|
||||
private BondageItemLoaderUtility() {}
|
||||
|
||||
/**
|
||||
* Load a bondage item into the holder.
|
||||
*
|
||||
* <p>Checks the item type and loads it into the appropriate slot
|
||||
* if that slot is empty. Consumes one item from the stack (unless creative).
|
||||
*
|
||||
* @param holder The bondage item holder (block entity)
|
||||
* @param stack The item stack to load
|
||||
* @param player The player loading the item
|
||||
* @return true if item was loaded, false if slot was occupied or wrong item type
|
||||
*/
|
||||
public static boolean loadItemIntoHolder(
|
||||
IBondageItemHolder holder,
|
||||
ItemStack stack,
|
||||
Player player
|
||||
) {
|
||||
if (stack.getItem() instanceof ItemBind && holder.getBind().isEmpty()) {
|
||||
holder.setBind(stack.copyWithCount(1));
|
||||
if (!player.isCreative()) stack.shrink(1);
|
||||
return true;
|
||||
}
|
||||
if (stack.getItem() instanceof ItemGag && holder.getGag().isEmpty()) {
|
||||
holder.setGag(stack.copyWithCount(1));
|
||||
if (!player.isCreative()) stack.shrink(1);
|
||||
return true;
|
||||
}
|
||||
if (
|
||||
stack.getItem() instanceof ItemBlindfold &&
|
||||
holder.getBlindfold().isEmpty()
|
||||
) {
|
||||
holder.setBlindfold(stack.copyWithCount(1));
|
||||
if (!player.isCreative()) stack.shrink(1);
|
||||
return true;
|
||||
}
|
||||
if (
|
||||
stack.getItem() instanceof ItemEarplugs &&
|
||||
holder.getEarplugs().isEmpty()
|
||||
) {
|
||||
holder.setEarplugs(stack.copyWithCount(1));
|
||||
if (!player.isCreative()) stack.shrink(1);
|
||||
return true;
|
||||
}
|
||||
if (
|
||||
stack.getItem() instanceof ItemCollar &&
|
||||
holder.getCollar().isEmpty()
|
||||
) {
|
||||
holder.setCollar(stack.copyWithCount(1));
|
||||
if (!player.isCreative()) stack.shrink(1);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if an item is a loadable bondage item.
|
||||
*
|
||||
* <p>Returns true for: Bind, Gag, Blindfold, Earplugs, Collar.
|
||||
*
|
||||
* @param stack The item stack to check
|
||||
* @return true if the item can be loaded into a bondage item holder
|
||||
*/
|
||||
public static boolean isLoadableBondageItem(ItemStack stack) {
|
||||
return (
|
||||
(stack.getItem() instanceof ItemBind) ||
|
||||
(stack.getItem() instanceof ItemGag) ||
|
||||
(stack.getItem() instanceof ItemBlindfold) ||
|
||||
(stack.getItem() instanceof ItemEarplugs) ||
|
||||
(stack.getItem() instanceof ItemCollar)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add item to tooltip if present in NBT.
|
||||
*
|
||||
* <p>Reads an item from the given NBT key and adds it to the tooltip
|
||||
* with a "- ItemName" format in gold color.
|
||||
*
|
||||
* @param tooltip The tooltip list to add to
|
||||
* @param beTag The BlockEntity NBT tag
|
||||
* @param key The NBT key to read (e.g., "bind", "gag")
|
||||
*/
|
||||
public static void addItemToTooltip(
|
||||
List<Component> tooltip,
|
||||
CompoundTag beTag,
|
||||
String key
|
||||
) {
|
||||
if (beTag.contains(key)) {
|
||||
ItemStack item = ItemStack.of(beTag.getCompound(key));
|
||||
if (!item.isEmpty()) {
|
||||
tooltip.add(
|
||||
Component.literal("- ")
|
||||
.append(item.getHoverName())
|
||||
.withStyle(ChatFormatting.GOLD)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user