using System; using System.Collections.Generic; using VRage.Game; using VRageMath; namespace Sandbox.ModAPI.Ingame { public interface IMyProjector : IMyFunctionalBlock { [Obsolete( "Use ProjectionOffset vector instead." )] int ProjectionOffsetX { get; } [Obsolete( "Use ProjectionOffset vector instead." )] int ProjectionOffsetY { get; } [Obsolete( "Use ProjectionOffset vector instead." )] int ProjectionOffsetZ { get; } [Obsolete( "Use ProjectionRotation vector instead." )] int ProjectionRotX { get; } [Obsolete( "Use ProjectionRotation vector instead." )] int ProjectionRotY { get; } [Obsolete( "Use ProjectionRotation vector instead." )] int ProjectionRotZ { get; } /// /// Checks if there is an active projection /// bool IsProjecting { get; } /// /// Total number of blocks in the projection /// int TotalBlocks { get; } /// /// Number of blocks left to be welded /// int RemainingBlocks { get; } /// /// A comprehensive list of blocks left to be welded /// Dictionary RemainingBlocksPerType { get; } /// /// Number of armor blocks left to be welded /// int RemainingArmorBlocks { get; } /// /// Count of blocks which can be welded now /// int BuildableBlocksCount { get; } Vector3I ProjectionOffset { get; set; } /// /// These values are not in degrees. 1 = 90 degrees, 2 = 180 degrees /// Vector3I ProjectionRotation { get; set; } /// /// Call this after setting ProjectionOffset and ProjectionRotation to update the projection /// void UpdateOffsetAndRotation(); bool LoadRandomBlueprint( string searchPattern ); bool LoadBlueprint( string name ); } }