using System; using Sandbox.Definitions; using Sandbox.Game.Entities; using VRageMath; namespace Global.Shared.Events { public class BlockEvents { public delegate void CanPlaceBlockDelegate(MyCubeGrid grid, MyBlockOrientation? orientation, MyCubeBlockDefinition blockDefinition, ulong placingPlayer, ref bool canPlace); public static Action OnPlayerControlAcquired; public static Action OnPlayerControlReleased; public static Action OnBlockAdded; public static Action OnBlockRemoved; public static event CanPlaceBlockDelegate CanPlaceBlockEvent; internal static void OnCanPlaceBlockEvent(MyCubeGrid grid, MyBlockOrientation? orientation, MyCubeBlockDefinition def, ulong placingPlayer, ref bool canPlace) { CanPlaceBlockEvent?.Invoke(grid, orientation, def, placingPlayer, ref canPlace); } } }