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 );
}
}