Table of Contents

Class UITKMinimap

Namespace
FishMMO.Client
Assembly
FishMMO.Client.dll

The heads-up minimap: a live overhead view centred on the player, with markers, fog of war, a location readout and a way into the world map.

public class UITKMinimap : UITKCharacterControl
Inheritance
Object
Component
Behaviour
MonoBehaviour
UITKMinimap
Inherited Members
MonoBehaviour.IsInvoking()
MonoBehaviour.CancelInvoke()
MonoBehaviour.StopCoroutine(Coroutine)
MonoBehaviour.StopAllCoroutines()
MonoBehaviour.destroyCancellationToken
MonoBehaviour.useGUILayout
MonoBehaviour.didStart
MonoBehaviour.didAwake
MonoBehaviour.runInEditMode
Behaviour.enabled
Behaviour.isActiveAndEnabled
Component.GetComponent<T>()
Component.TryGetComponent<T>(out T)
Component.GetComponentInChildren<T>()
Component.GetComponentsInChildren<T>()
Component.GetComponentInParent<T>()
Component.GetComponentsInParent<T>()
Component.GetComponents<T>()
Component.GetComponentIndex()
Component.CompareTag(TagHandle)
Component.transform
Component.transformHandle
Component.gameObject
Component.tag
Object.GetEntityId()
Object.GetInstanceID()
Object.GetHashCode()
Object.InstantiateAsync<T>(T)
Object.InstantiateAsync<T>(T, Transform)
Object.InstantiateAsync<T>(T, Vector3, Quaternion)
Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion, Transform)
Object.Instantiate(Object)
Object.Instantiate(Object, Scene)
Object.Instantiate<T>(T, InstantiateParameters)
Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
Object.Instantiate(Object, Transform)
Object.Instantiate<T>(T)
Object.Instantiate<T>(T, Vector3, Quaternion)
Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
Object.Instantiate<T>(T, Transform)
Object.Destroy(Object)
Object.DestroyImmediate(Object)
Object.DontDestroyOnLoad(Object)
Object.DestroyObject(Object)
Object.FindObjectsOfType<T>()
Object.FindObjectsByType<T>(FindObjectsSortMode)
Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
Object.FindObjectOfType<T>()
Object.FindFirstObjectByType<T>()
Object.FindAnyObjectByType<T>()
Object.FindFirstObjectByType<T>(FindObjectsInactive)
Object.FindAnyObjectByType<T>(FindObjectsInactive)
Object.FindObjectsByType<T>()
Object.FindObjectsByType<T>(FindObjectsInactive)
Object.ToString()
Object.name
Object.hideFlags

Remarks

What this panel owns and what it borrows. It owns its zoom, its rotation mode and the decision of when to render; everything else — the overhead camera, the explored map, the notes, the marker rules — lives in ClientMapSystem and is shared with the world map. The panel is also the map subsystem's heartbeat: it drives Tick() from its own update whether or not it is visible, because exploration happens when the character walks, not when the player looks at a map.

The bugs this replaced. The previous implementation rendered nothing at all, and had four independent reasons for it: it overwrote the camera's culling mask with an inspector field that was left at zero, so only an empty layer was drawn; the only component that put anything on that layer was used by no prefab in the project; the camera sat at a height of 1000 against a far clip plane of 1000, placing the ground exactly on the far plane; and the camera's own transform started below the world with the panel closed, so nothing positioned it until the player pressed the minimap key. Each of those alone would have produced the same black square, which is why reading the code never explained it. The camera is now configured entirely in code and re-asserted on every render — see MinimapCameraRenderer.

Fields

AdditionalLayers

Extra layers the overhead camera photographs beyond Default, Ground and Water.

[Tooltip("Extra layers the minimap camera photographs, beyond Default, Ground and Water.")]
public LayerMask AdditionalLayers

Field Value

LayerMask

MinimapCamera

A camera in the scene to use for the overhead render instead of creating one.

[Tooltip("Optional scene camera for the overhead render. Leave empty to have one created.")]
public Camera MinimapCamera

Field Value

Camera

Remarks

Optional, and entirely reconfigured when it is used: position, rotation, projection, clipping planes, clear flags and culling mask are all written by the renderer on every render. Leaving this empty is the recommended setup — the renderer then makes its own camera and there is nothing in a scene to drift out of step.

WorldSceneDetails

The scene details cache, used to find the current scene's map definition.

[Tooltip("World scene details cache. Supplies each scene's map definition and boundaries.")]
public WorldSceneDetailsCache WorldSceneDetails

Field Value

WorldSceneDetailsCache

Remarks

Assigned in the inspector, and handed to ClientMapSystem rather than kept. The world map needs the same asset and is opened from here, so routing it through the shared system means only one panel has to carry the reference.

Properties

Layer

Draw order tier for this panel. See UITKPanelLayer.

protected override UITKPanelLayer Layer { get; }

Property Value

UITKPanelLayer

Methods

OnDestroying()

Drops subscriptions and shuts the map subsystem down.

public override void OnDestroying()

OnPostSetCharacter()

Points the map subsystem at the new character.

public override void OnPostSetCharacter()

OnPostUnsetCharacter()

Writes anything outstanding and clears the map.

public override void OnPostUnsetCharacter()

OnQuitToLogin()

Flushes the explored map before the client returns to the login screen.

public override void OnQuitToLogin()

OnStarting()

Builds the view, mounts it, and wires the panel's controls.

public override void OnStarting()

OnTick()

Advances the map subsystem, whether or not the panel is on screen.

protected override void OnTick()

Remarks

UITKControl drives this from its own Update for every control, so there is no second Update here to shadow the base one — a mistake this codebase has made before and documents at length on UITKControl.Update.