Skip to content

Commit 3cc897d

Browse files
committed
Update ContiMoveManagerTicker to act every 20s
1 parent fc39a0f commit 3cc897d

File tree

2 files changed

+28
-4
lines changed

2 files changed

+28
-4
lines changed

src/common/Edelstein.Common.Gameplay.Game/Continent/ContiMoveManagerTicker.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
using System;
2+
using Edelstein.Common.Utilities.Tickers;
23
using Edelstein.Protocol.Gameplay.Game.Continents;
34
using Edelstein.Protocol.Utilities;
4-
using Edelstein.Protocol.Utilities.Tickers;
55

66
namespace Edelstein.Common.Gameplay.Game.Continent;
77

88
public class ContiMoveManagerTicker(
99
IDateTimeProvider dateTime,
1010
IContiMoveManager manager
11-
) : ITickerAction
11+
) : AbstractTickerActionTerm(dateTime, TimeSpan.FromSeconds(20))
1212
{
13-
public void Act()
13+
protected override void ActAfter(DateTime now)
1414
{
15-
var now = dateTime.Now;
1615
var records = manager.RetrieveAll().Result;
1716

1817
foreach (var contimove in records)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using System;
2+
using Edelstein.Protocol.Utilities;
3+
using Edelstein.Protocol.Utilities.Tickers;
4+
5+
namespace Edelstein.Common.Utilities.Tickers;
6+
7+
public abstract class AbstractTickerActionTerm(
8+
IDateTimeProvider dateTime,
9+
TimeSpan term
10+
) : ITickerAction
11+
{
12+
private DateTime DateLastUpdate { get; set; }
13+
14+
public void Act()
15+
{
16+
var now = dateTime.Now;
17+
18+
if (now - DateLastUpdate <= term) return;
19+
20+
DateLastUpdate = now;
21+
ActAfter(now);
22+
}
23+
24+
protected abstract void ActAfter(DateTime now);
25+
}

0 commit comments

Comments
 (0)