using StardewModdingAPI.Framework.Events;
using StardewValley;
namespace StardewModdingAPI.Framework
{
/// SMAPI's implementation of the game's core multiplayer logic.
internal class SMultiplayer : Multiplayer
{
/*********
** Properties
*********/
/// Encapsulates monitoring and logging.
private readonly IMonitor Monitor;
/// Manages SMAPI events.
private readonly EventManager EventManager;
/*********
** Public methods
*********/
/// Construct an instance.
/// Encapsulates monitoring and logging.
/// Manages SMAPI events.
public SMultiplayer(IMonitor monitor, EventManager eventManager)
{
this.Monitor = monitor;
this.EventManager = eventManager;
}
/// Handle sync messages from other players and perform other initial sync logic.
public override void UpdateEarly()
{
this.EventManager.Multiplayer_BeforeMainSync.Raise();
base.UpdateEarly();
this.EventManager.Multiplayer_AfterMainSync.Raise();
}
/// Broadcast sync messages to other players and perform other final sync logic.
public override void UpdateLate(bool forceSync = false)
{
this.EventManager.Multiplayer_BeforeMainBroadcast.Raise();
base.UpdateLate(forceSync);
this.EventManager.Multiplayer_AfterMainBroadcast.Raise();
}
}
}