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,96 @@
package com.tiedup.remake.cells;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import net.minecraft.core.BlockPos;
import org.jetbrains.annotations.Nullable;
/**
* Server-side manager tracking which players are in selection mode
* (Set Spawn, Set Delivery, Set Disguise) after clicking a Cell Core menu button.
*
* Static map pattern matching ForcedSeatingHandler.
*/
public class CellSelectionManager {
private static final long TIMEOUT_MS = 30 * 1000L;
private static final double MAX_DISTANCE_SQ = 10.0 * 10.0;
private static final ConcurrentHashMap<UUID, SelectionContext> selections =
new ConcurrentHashMap<>();
public static class SelectionContext {
public final SelectionMode mode;
public final BlockPos corePos;
public final UUID cellId;
public final long startTimeMs;
public final BlockPos playerStartPos;
public SelectionContext(
SelectionMode mode,
BlockPos corePos,
UUID cellId,
BlockPos playerStartPos
) {
this.mode = mode;
this.corePos = corePos;
this.cellId = cellId;
this.startTimeMs = System.currentTimeMillis();
this.playerStartPos = playerStartPos;
}
}
public static void startSelection(
UUID playerId,
SelectionMode mode,
BlockPos corePos,
UUID cellId,
BlockPos playerPos
) {
selections.put(
playerId,
new SelectionContext(mode, corePos, cellId, playerPos)
);
}
@Nullable
public static SelectionContext getSelection(UUID playerId) {
return selections.get(playerId);
}
public static void clearSelection(UUID playerId) {
selections.remove(playerId);
}
public static boolean isInSelectionMode(UUID playerId) {
return selections.containsKey(playerId);
}
/**
* Check if selection should be cancelled due to timeout or distance.
*/
public static boolean shouldCancel(UUID playerId, BlockPos currentPos) {
SelectionContext ctx = selections.get(playerId);
if (ctx == null) return false;
// Timeout check
if (System.currentTimeMillis() - ctx.startTimeMs > TIMEOUT_MS) {
return true;
}
// Distance check (from core, not player start)
if (ctx.corePos.distSqr(currentPos) > MAX_DISTANCE_SQ) {
return true;
}
return false;
}
/**
* Called on player disconnect to prevent memory leaks.
*/
public static void cleanup(UUID playerId) {
selections.remove(playerId);
}
}