Skip to content

Commit 7aaee57

Browse files
author
JasonNumberThirteen
committed
Refactor code in the map tile weight controller script
1 parent d3afcaf commit 7aaee57

1 file changed

Lines changed: 33 additions & 53 deletions

File tree

Assets/Project/Scripts/Game Objects/MapTileWeightController.cs

Lines changed: 33 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,29 @@
44
public class MapTileWeightController : MonoBehaviour, IPrimaryWindowElement, IMapEditingElement
55
{
66
private MapTile mapTile;
7-
private bool mapTileIsSelected;
8-
private bool inputIsActive = true;
9-
private bool tilesCanBeHovered = true;
7+
private bool hoveringTilesIsLocked;
8+
private bool panelUIHoverWasDetected;
109
private UserInputController userInputController;
11-
private VisualiserEventsManager visualiserEventsManager;
10+
private HoveredMapTileManager hoveredMapTileManager;
11+
private PanelUIHoverDetectionManager panelUIHoverDetectionManager;
1212

1313
public void SetPrimaryWindowElementActive(bool active)
1414
{
15-
inputIsActive = active;
15+
hoveringTilesIsLocked = !active;
16+
panelUIHoverWasDetected = false;
17+
mapTile = null;
1618
}
1719

1820
public void SetMapEditingElementActive(bool active)
1921
{
20-
tilesCanBeHovered = active;
22+
hoveringTilesIsLocked = !active;
2123
}
2224

2325
private void Awake()
2426
{
2527
userInputController = FindFirstObjectByType<UserInputController>();
26-
visualiserEventsManager = FindFirstObjectByType<VisualiserEventsManager>();
28+
hoveredMapTileManager = FindFirstObjectByType<HoveredMapTileManager>();
29+
panelUIHoverDetectionManager = FindFirstObjectByType<PanelUIHoverDetectionManager>();
2730

2831
RegisterToListeners(true);
2932
}
@@ -41,10 +44,15 @@ private void RegisterToListeners(bool register)
4144
{
4245
userInputController.wheelScrolledEvent.AddListener(OnWheelScrolled);
4346
}
44-
45-
if(visualiserEventsManager != null)
47+
48+
if(hoveredMapTileManager != null)
49+
{
50+
hoveredMapTileManager.hoveredMapTileWasChangedEvent.AddListener(OnHoveredMapTileWasChanged);
51+
}
52+
53+
if(panelUIHoverDetectionManager != null)
4654
{
47-
visualiserEventsManager.eventReceivedEvent.AddListener(OnEventReceived);
55+
panelUIHoverDetectionManager.panelUIHoverDetectionStateWasChangedEvent.AddListener(OnPanelUIHoverDetectionStateWasChanged);
4856
}
4957
}
5058
else
@@ -53,17 +61,22 @@ private void RegisterToListeners(bool register)
5361
{
5462
userInputController.wheelScrolledEvent.RemoveListener(OnWheelScrolled);
5563
}
56-
57-
if(visualiserEventsManager != null)
64+
65+
if(hoveredMapTileManager != null)
66+
{
67+
hoveredMapTileManager.hoveredMapTileWasChangedEvent.RemoveListener(OnHoveredMapTileWasChanged);
68+
}
69+
70+
if(panelUIHoverDetectionManager != null)
5871
{
59-
visualiserEventsManager.eventReceivedEvent.RemoveListener(OnEventReceived);
72+
panelUIHoverDetectionManager.panelUIHoverDetectionStateWasChangedEvent.RemoveListener(OnPanelUIHoverDetectionStateWasChanged);
6073
}
6174
}
6275
}
6376

6477
private void OnWheelScrolled(Vector2 scrollVector)
6578
{
66-
if(!inputIsActive)
79+
if(hoveringTilesIsLocked || panelUIHoverWasDetected)
6780
{
6881
return;
6982
}
@@ -74,12 +87,10 @@ private void OnWheelScrolled(Vector2 scrollVector)
7487
MapTileType.Impassable
7588
};
7689

77-
if(mapTileIsSelected || mapTile == null || !allowedMapTileTypes.Contains(mapTile.GetTileType()))
90+
if(mapTile != null && allowedMapTileTypes.Contains(mapTile.GetTileType()))
7891
{
79-
return;
92+
ModifyWeightOfMapTile(Mathf.RoundToInt(scrollVector.y));
8093
}
81-
82-
ModifyWeightOfMapTile(Mathf.RoundToInt(scrollVector.y));
8394
}
8495

8596
private void ModifyWeightOfMapTile(int weightValue)
@@ -90,44 +101,13 @@ private void ModifyWeightOfMapTile(int weightValue)
90101
}
91102
}
92103

93-
private void OnEventReceived(VisualiserEvent visualiserEvent)
104+
private void OnHoveredMapTileWasChanged(MapTile mapTile)
94105
{
95-
if(!tilesCanBeHovered || visualiserEvent is not MapTileBoolVisualiserEvent mapTileBoolVisualiserEvent)
96-
{
97-
return;
98-
}
99-
100-
if(mapTileBoolVisualiserEvent.GetVisualiserEventType() != VisualiserEventType.MapTileHoverStateWasChanged || !mapTileIsSelected)
101-
{
102-
UpdateMapTileReference(mapTileBoolVisualiserEvent);
103-
}
104-
}
105-
106-
private void UpdateMapTileReference(MapTileBoolVisualiserEvent mapTileBoolVisualiserEvent)
107-
{
108-
if(MapTileShouldBeSelected(mapTileBoolVisualiserEvent))
109-
{
110-
mapTile = mapTileBoolVisualiserEvent.GetMapTile();
111-
}
112-
else if(MapTileShouldBeDeselected(mapTileBoolVisualiserEvent))
113-
{
114-
mapTile = null;
115-
}
116-
117-
mapTileIsSelected = mapTileBoolVisualiserEvent.GetVisualiserEventType() == VisualiserEventType.MapTileSelectionStateWasChanged && mapTileBoolVisualiserEvent.GetBoolValue();
106+
this.mapTile = mapTile;
118107
}
119108

120-
private bool MapTileShouldBeSelected(MapTileBoolVisualiserEvent mapTileBoolVisualiserEvent)
109+
private void OnPanelUIHoverDetectionStateWasChanged(bool detected)
121110
{
122-
var mapTileHoverStateIsSetAsSelected = mapTileBoolVisualiserEvent.GetVisualiserEventType() == VisualiserEventType.MapTileHoverStateWasChanged && mapTileBoolVisualiserEvent.GetBoolValue();
123-
124-
return mapTile == null && mapTileHoverStateIsSetAsSelected;
125-
}
126-
127-
private bool MapTileShouldBeDeselected(MapTileBoolVisualiserEvent mapTileBoolVisualiserEvent)
128-
{
129-
var mapTileHoverStateIsSetAsNotSelected = mapTileBoolVisualiserEvent.GetVisualiserEventType() == VisualiserEventType.MapTileHoverStateWasChanged && !mapTileBoolVisualiserEvent.GetBoolValue();
130-
131-
return mapTile != null && mapTileHoverStateIsSetAsNotSelected;
111+
panelUIHoverWasDetected = detected;
132112
}
133113
}

0 commit comments

Comments
 (0)