Class MapleReactor


public class MapleReactor extends MapleMapObject
地圖上的反應爐物件,實作為 MapleMapObject 子類別。

反應爐是可被玩家(或道具)互動的地圖物件,依 MapleReactorStats 定義的狀態機推進 state;每個狀態可指定超時時間(delay)、觸發條件與下一個狀態。 主要職責包含:

  • 維護當前狀態 state 與存活旗標 alive
  • 透過 Timer.MapTimer 排程自動超時復原
  • 觸發後由 ReactorScriptManager 執行對應的 GraalJS 腳本
  • 封包組裝依賴 CField(生成/狀態變更/移除)

反應爐的靜態資料(狀態表、碰撞框)由 MapleReactorStats 持有; 地圖上所有反應爐的生命周期由 MapReactorManager 協作者管理。

  • Constructor Details

  • Method Details

    • setCustom

      public void setCustom(boolean c)
    • isCustom

      public boolean isCustom()
    • setFacingDirection

      public final void setFacingDirection(byte facingDirection)
    • getFacingDirection

      public final byte getFacingDirection()
    • setTimerActive

      public void setTimerActive(boolean active)
    • isTimerActive

      public boolean isTimerActive()
    • getReactorId

      public int getReactorId()
    • setState

      public void setState(byte state)
    • getState

      public byte getState()
    • isAlive

      public boolean isAlive()
    • setAlive

      public void setAlive(boolean alive)
    • setDelay

      public void setDelay(int delay)
    • getDelay

      public int getDelay()
    • getType

      public MapleMapObjectType getType()
      Specified by:
      getType in class MapleMapObject
    • getReactorType

      public int getReactorType()
    • getTouch

      public byte getTouch()
    • setMap

      public void setMap(MapleMap map)
    • getMap

      public MapleMap getMap()
    • getReactItem

      public Pair<Integer,Integer> getReactItem()
    • sendDestroyData

      public void sendDestroyData(MapleClient client)
      Specified by:
      sendDestroyData in class MapleMapObject
    • sendSpawnData

      public void sendSpawnData(MapleClient client)
      Specified by:
      sendSpawnData in class MapleMapObject
    • forceStartReactor

      public void forceStartReactor(MapleClient c)
    • forceHitReactor

      public void forceHitReactor(byte newState)
    • hitReactor

      public void hitReactor(MapleClient c)
    • forceTrigger

      public void forceTrigger()
    • delayedDestroyReactor

      public void delayedDestroyReactor(long delay)
    • hitReactor

      public void hitReactor(int charPos, short stance, MapleClient c)
    • getArea

      public Rectangle getArea()
    • getName

      public String getName()
    • setName

      public void setName(String name)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • delayedHitReactor

      public void delayedHitReactor(MapleClient c, long delay)
    • scheduleSetState

      public void scheduleSetState(byte oldState, byte newState, long delay)