package com.hivekion.room;
import com.hivekion.baseData.entity.Scenario;
import com.hivekion.room.bean.Room;
import com.hivekion.room.func.TaskAction;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ScheduledExecutorService;
/**
* [类的简要说明]
*
* [详细描述,可选]
*
*
* @author LiDongYU
* @since 2025/7/22
*/
public class RoomManager {
private static final Map roomsMap = new ConcurrentHashMap<>();
public static void startRoom(String id, Scenario scenario, long time) {
Room room = new Room(id, scenario);
roomsMap.put(id, room);
room.start(time);
}
public static void stopRoom(String id) {
Room room = roomsMap.get(id);
if (room != null) {
room.stop();
}
}
public static void pauseRoom(String id) {
Room room = roomsMap.get(id);
if (room != null) {
room.pause();
}
}
public static void resumeRoom(String id) {
Room room = roomsMap.get(id);
if (room != null) {
room.resume();
}
}
public static void addAction(String id, long time, TaskAction action) {
Room room = roomsMap.get(id);
if (room != null) {
room.addAction(time, action);
}
}
public static long getRoomDuringTime(String id) {
Room room = roomsMap.get(id);
if (room != null) {
return room.getDuringTime();
}
return 0;
}
public static void addFuture(ScheduledExecutorService future, String roomId) {
Room room = roomsMap.get(roomId);
if (room != null) {
room.addTaskReference(future);
}
}
public static boolean isRunning(String id) {
Room room = roomsMap.get(id);
if (room != null) {
return room.isRunning();
}
return false;
}
}