Update View authored by Karikó Csongor Csanád's avatar Karikó Csongor Csanád
...@@ -299,6 +299,7 @@ package Model.Landscape { ...@@ -299,6 +299,7 @@ package Model.Landscape {
```plantuml ```plantuml
@startuml View @startuml View
skinparam classAttributeIconSize 0 skinparam classAttributeIconSize 0
left to right direction
class Model.Simulation { class Model.Simulation {
+ Simulation(SimulationConfig) + Simulation(SimulationConfig)
...@@ -308,8 +309,8 @@ class Model.Simulation { ...@@ -308,8 +309,8 @@ class Model.Simulation {
} }
interface Model.IBuilder { interface Model.IBuilder {
+ IsPlacementAllowed(ObjectBlueprint, Orientation) + IsPlacementAllowed(IMapObjectBlueprint, Orientation) : bool
+ Place(ObjectBlueprint, Orientation) : (IDisplayable, IInspectable) + Place(IMapObjectBlueprint, Orientation) : (IDisplayable, IInspectable)
} }
interface Model.IInspectable { interface Model.IInspectable {
...@@ -337,8 +338,6 @@ View.GameManager "- simulation" *--- Model.Simulation ...@@ -337,8 +338,6 @@ View.GameManager "- simulation" *--- Model.Simulation
View.SingletonMonobehaviour <|-- View.UIManager View.SingletonMonobehaviour <|-- View.UIManager
View.SingletonMonobehaviour <|-- View.BuildingPlacer View.SingletonMonobehaviour <|-- View.BuildingPlacer
UnityEngine.MonoBehaviour <|-- View.BuildingSelector UnityEngine.MonoBehaviour <|-- View.BuildingSelector
View.BuildingPlacer "1" <. "*" View.BuildingSelector : <<use>>
View.UIManager "1" .> "1" View.BuildingPlacer : <<init>>
View.BuildingPlacer "1" o-- "1" Model.IBuilder View.BuildingPlacer "1" o-- "1" Model.IBuilder
'Model.IBuilder --> Model.Simulation : <<use>> (TODO: change this to MAP) 'Model.IBuilder --> Model.Simulation : <<use>> (TODO: change this to MAP)
...@@ -348,7 +347,6 @@ UnityEngine.EventTrigger ..> View.HoverInfoDisplayer : EventTrigger calls into H ...@@ -348,7 +347,6 @@ UnityEngine.EventTrigger ..> View.HoverInfoDisplayer : EventTrigger calls into H
UnityEngine.MonoBehaviour <|-- View.Selectable UnityEngine.MonoBehaviour <|-- View.Selectable
UnityEngine.MonoBehaviour <|-- View.InspectorWindow UnityEngine.MonoBehaviour <|-- View.InspectorWindow
View.InspectorWindow ..> Model.IInspectable
View.InspectorWindow --o View.UIManager View.InspectorWindow --o View.UIManager
View.Selectable o--- Model.IInspectable View.Selectable o--- Model.IInspectable
'Model.IInspectable --> Model.Simulation : <<use>> (TODO: chage this to ..) 'Model.IInspectable --> Model.Simulation : <<use>> (TODO: chage this to ..)
...@@ -372,8 +370,6 @@ class View.GameConfig { ...@@ -372,8 +370,6 @@ class View.GameConfig {
+ GetConfig() : Model.SimulationConfig + GetConfig() : Model.SimulationConfig
} }
View.BuildingConfig <.. View.GameManager
View.GameManager .> View.UIManager : "<<init>>"
class View.GameManager { class View.GameManager {
- config : GameConfig - config : GameConfig
- tickInterval : float - tickInterval : float
...@@ -383,13 +379,12 @@ class View.GameManager { ...@@ -383,13 +379,12 @@ class View.GameManager {
- buildings : BuildingConfig[] - buildings : BuildingConfig[]
- simulation : Model.Simulation - simulation : Model.Simulation
- GetObjectBlueprints() : Model.ObjectBlueprint[] - GetObjectBlueprints() : Model.IMapObjectBlueprint[]
+ SetSimulationSpeed(int) + SetSimulationSpeed(int)
+ Tick() : IEnumerator + Tick() : IEnumerator
+ Start() // Called by unity + Start() // Called by unity
} }
View.Selectable <--> View.UIManager
class View.UIManager { class View.UIManager {
- mode : UIMode - mode : UIMode
- placer : BuildingPlacer - placer : BuildingPlacer
...@@ -401,8 +396,8 @@ class View.UIManager { ...@@ -401,8 +396,8 @@ class View.UIManager {
+ Select(Selectable) + Select(Selectable)
} }
View.UIManager *- View.UIManager.UIMode View.UIManager *-- View.UIManager.UIMode
View.UIManager o- View.BuildingPlacer View.UIManager o-- View.BuildingPlacer
enum View.UIManager.UIMode { enum View.UIManager.UIMode {
BUILD BUILD
...@@ -433,7 +428,6 @@ class View.BuildingPlacer { ...@@ -433,7 +428,6 @@ class View.BuildingPlacer {
} }
View.BuildingPlacer .> View.BuildingSelector : <<init>>
class View.BuildingSelector { class View.BuildingSelector {
- config : BuildingConfig - config : BuildingConfig
+ Init(BuildingConfig) + Init(BuildingConfig)
...@@ -479,16 +473,57 @@ View.DisplayBehaviour o--- Model.IDisplayable ...@@ -479,16 +473,57 @@ View.DisplayBehaviour o--- Model.IDisplayable
UnityEngine.ScriptableObject <|-- View.BuildingConfig UnityEngine.ScriptableObject <|-- View.BuildingConfig
View.BuildingConfig *-- Model.ObjectBlueprint View.BuildingConfig *-- "-data" View.BuildingData
interface Model.IMapObjectBlueprint
class View.BuildingConfig { class View.BuildingConfig {
- blueprint : Model.ObjectBlueprint - data : View.BuildingData
+ BuildingPrefab : GameObject + BuildingPrefab : GameObject
+ UISprite : Sprite + UISprite : Sprite
+ GetBlueprint() : Model.ObjectBlueprint + GetBlueprint() : Model.IMapObjectBlueprint
} }
View.BuildingData --|> UnityEngine.ScriptableObject
abstract class View.BuildingData {
+ void GetBlueprint() : Model.IMapObjectBlueprint {abstract}
}
together {
abstract class View.BuildingData
class View.VisitableBuildingData
class View.StaffBuildingData
class View.PavementData
}
'View.VisitableBuildingData <-[hidden]- View.StaffBuildingData
'View.StaffBuildingData <-[hidden]- View.PavementData
together {
class Model.VisitableBuildingBlueprint
class Model.StaffBuildingBlueprint
class Model.PavementDataBlueprint
}
View.BuildingData <|-- View.VisitableBuildingData
View.VisitableBuildingData *-- "-blueprint" Model.VisitableBuildingBlueprint
class View.VisitableBuildingData {
- blueprint : Model.VisitableBuildingBlueprint
+ void GetBlueprint() : Model.IMapObjectBlueprint
}
View.BuildingData <|-- View.StaffBuildingData
View.StaffBuildingData *-- "-blueprint" Model.StaffBuildingBlueprint
class View.StaffBuildingData {
- blueprint : Model.StaffBuildingBlueprint
+ void GetBlueprint() : Model.IMapObjectBlueprint
}
View.BuildingData <|-- View.PavementData
View.PavementData *-- "-blueprint" Model.PavementDataBlueprint
class View.PavementData {
- blueprint : Model.PavementDataBlueprint
+ void GetBlueprint() : Model.IMapObjectBlueprint
}
@enduml @enduml
``` ```
\ No newline at end of file