Class WorldMapService

java.lang.Object
com.csse3200.game.services.WorldMapService

public class WorldMapService extends Object
Service for managing world map nodes dynamically. Allows registration of screens/levels without requiring a static JSON file.
  • Constructor Details

    • WorldMapService

      public WorldMapService()
      Constructor for the world map service.
  • Method Details

    • registerNode

      public void registerNode(WorldMapNode node, String key)
      Register a new node on the world map
      Parameters:
      node - The node to register
      key - The key to register the node with
    • getNode

      public WorldMapNode getNode(String key)
      Retrieve a map node
      Parameters:
      key - The key to get the node with
      Returns:
      The node, or null if not found
    • getAllNodes

      public List<WorldMapNode> getAllNodes()
      Get all registered nodes
      Returns:
      List of all nodes
    • completeNode

      public void completeNode(String key)
      Mark a node as completed
      Parameters:
      key - The key of the completed node
    • unlockNode

      public void unlockNode(String key)
      Unlock a specific node
      Parameters:
      key - The key of the node to unlock
    • lockNode

      public void lockNode(String key, String lockReason)
      Lock a specific node
      Parameters:
      key - The key of the node to lock
      lockReason - The reason the node is locked
    • registerNodeRenderComponent

      public void registerNodeRenderComponent(WorldMapNodeRenderComponent renderComponent)
      Register a node render component for proximity updates
      Parameters:
      renderComponent - the render component to register
    • updateNodeProximity

      public void updateNodeProximity(WorldMapNode nearbyNode)
      Update all node render components with the current nearby node
      Parameters:
      nearbyNode - the node that the player is currently near, or null if none
    • clearNodes

      public void clearNodes()
      Clear all registered nodes