001package com.ericlam.mc.minigames.core; 002 003import com.ericlam.mc.minigames.core.manager.PlayerManager; 004 005/** 006 * 遊戲運行程序接口 007 */ 008public interface SectionTask { 009 010 /** 011 * 定義初始化時的動作 012 * 013 * @param playerManager 玩家管理器 014 */ 015 void initTimer(PlayerManager playerManager); 016 017 /** 018 * 在取消程序時運行 019 */ 020 void onCancel(); 021 022 /** 023 * 在完成程序時運行 024 */ 025 void onFinish(); 026 027 /** 028 * 每秒的運行程序 029 * 030 * @param remain 剩餘秒數 031 * @return 最終的剩餘秒數 032 */ 033 long run(long remain); 034 035 /** 036 * 獲取這個運行程序的總秒數 037 * 038 * @return 總秒數 039 */ 040 long getTotalTime(); 041 042 /** 043 * 取消此運行程序的條件 044 * 045 * @return 取消此運行程序的條件 046 */ 047 boolean shouldCancel(); 048 049 /** 050 * 判斷程序是否在運行 051 * 052 * @return 是否在運行 053 */ 054 boolean isRunning(); 055 056 /** 057 * 設置程序是否在運行 058 * 059 * @param running 是否在運行 060 */ 061 void setRunning(boolean running); 062}