Changes
Page history
Upload View
authored
Feb 28, 2021
by
Karikó Csongor Csanád
Show whitespace changes
Inline
Side-by-side
Class-Diagram.md
View page @
905e88c0
...
...
@@ -176,3 +176,203 @@ Map "*" *-- MapObject
Map "1" *-- NavigationGraph
@enduml
```
**View**
```
plantuml
@startuml View
skinparam classAttributeIconSize 0
class Model.Simulation {
+ Simulation(SimulationConfig)
+ GetCompany() : IInspectable
+ GetBuilder() : IBuilder
+ Tick() : List<(IDisplayable, IInspectable)> // list of new visitors / staff
}
interface Model.IBuilder {
+ IsPlacementAllowed(ObjectBlueprint, Orientation)
+ Place(ObjectBlueprint, Orientation) : (IDisplayable, IInspectable)
}
interface Model.IInspectable {
+ GetModelObjectRef() : ModelObjectRef
+ GetProperties() : List<Property>()
}
interface Model.IDisplayable {
+ IsAlive() : bool
+ IsVisible() : bool
+ GetPosition() : Vector2
+ GetState() : int
}
/' END OF MODEL '/
UnityEngine.MonoBehaviour <|-- View.SingletonMonobehaviour
class View.SingletonMonobehaviour<T> {
- {static} T instance
+ {static} GetInstance() : T
+ Awake() // called by Unity, used as constructor
}
View.SingletonMonobehaviour <|-- View.GameManager
View.GameManager "- simulation" *--- Model.Simulation
View.SingletonMonobehaviour <|-- View.UIManager
View.SingletonMonobehaviour <|-- View.BuildingPlacer
UnityEngine.MonoBehaviour <|-- View.BuildingSelector
View.BuildingPlacer "1" <. "*" View.BuildingSelector : <<use>>
View.UIManager "1" .> "1" View.BuildingPlacer : <<init>>
View.BuildingPlacer "1" o-- "1" Model.IBuilder
'Model.IBuilder --> Model.Simulation : <<use>> (TODO: change this to MAP)
UnityEngine.MonoBehaviour <|-- View.HoverInfoDisplayer
class UnityEngine.EventTrigger
UnityEngine.EventTrigger ..> View.HoverInfoDisplayer : EventTrigger calls into HoverInfoDisplayer
UnityEngine.MonoBehaviour <|-- View.Selectable
UnityEngine.MonoBehaviour <|-- View.InspectorWindow
View.InspectorWindow ..> Model.IInspectable
View.InspectorWindow --o View.UIManager
View.Selectable o--- Model.IInspectable
'Model.IInspectable --> Model.Simulation : <<use>> (TODO: chage this to ..)
UnityEngine.MonoBehaviour <|-- View.CameraController
class View.CameraController {
- mouseSensitivity : float
- mousewheelSensitivity : float
- movementSpeed : float
+ Update() // Called by Unity
}
UnityEngine.ScriptableObject <|-- View.GameConfig
View.GameConfig *-- Model.SimulationConfig
class View.GameConfig {
- config : SimulationConfig
+ GetConfig() : Model.SimulationConfig
}
View.BuildingConfig <.. View.GameManager
View.GameManager .> View.UIManager : "<<init>>"
class View.GameManager {
- config : GameConfig
- tickInterval : float
- isPaused : bool
- uiManager : UIManager
- gridScale : float
- buildings : BuildingConfig[]
- simulation : Model.Simulation
- GetObjectBlueprints() : Model.ObjectBlueprint[]
+ SetSimulationSpeed(int)
+ Tick() : IEnumerator
+ Start() // Called by unity
}
View.Selectable <--> View.UIManager
class View.UIManager {
- mode : UIMode
- placer : BuildingPlacer
- selection : Selectable
+ Init(BuildingConfig[])
+ ChangeMode(UIMode)
+ Select(Selectable)
}
View.UIManager *-- View.UIManager.UIMode
View.UIManager o- View.BuildingPlacer
enum View.UIManager.UIMode {
BUILD
NORMAL
SELECT // for selecting target for cleaning staff
}
class View.BuildingPlacer {
- enabled : bool
- selectedBuilding : BuildingConfig
- buildingGhost : GameObject
- originalMaterial : Material
- buildingMenuItemPrefab : GameObject
- allowedMaterial : Material
- disallowedMaterial : Material
- Place(Vector3, Quaternion)
+ Init(BuildingConfig[])
+ Enable()
+ Disable()
+ Select(BuildingConfig)
+ Update() // called by Unity
}
View.BuildingPlacer .> View.BuildingSelector : <<init>>
class View.BuildingSelector {
- config : BuildingConfig
+ Init(BuildingConfig)
+ Select()
}
class View.HoverInfoDisplayer {
- infoWindow : GameObject
- timeLeft : float
- delay : float
+ OnMouseEnter() // Called by EventTrigger
+ OnMouseExit() // Called by EventTrigger
}
class View.InspectorWindow {
- inspectorPanel : RectTransform
- generateView(Property)
+ Inspect(IInspectable)
}
class View.Selectable {
- isSelected : bool
- renderer : MeshRenderer
- selectionMaterial : Material
- modelObject : IInspectable
+ Select()
+ Deselect()
}
UnityEngine.MonoBehaviour <|-- View.DisplayBehaviour
class View.DisplayBehaviour {
- displayedObject : IDisplayable
+ Update() // called by Unity
}
View.DisplayBehaviour o--- Model.IDisplayable
UnityEngine.ScriptableObject <|-- View.BuildingConfig
View.BuildingConfig *-- Model.ObjectBlueprint
class View.BuildingConfig {
- blueprint : Model.ObjectBlueprint
+ BuildingPrefab : GameObject
+ UISprite : Sprite
+ GetBlueprint() : Model.ObjectBlueprint
}
@enduml
```
\ No newline at end of file