public VoxelData(Ingame.IMyOreDetector oreDetector, IMyVoxelBase voxel, float maxRange) { this.m_logger = new Logger(GetType().Name, () => oreDetector.CubeGrid.DisplayName, () => oreDetector.DisplayNameText, () => voxel.ToString()); this.m_oreDetector = oreDetector; this.m_voxel = voxel; this.m_storage.Resize(new Vector3I(QUERY_STEP, QUERY_STEP, QUERY_STEP)); this.m_maxRange = maxRange; m_logger.debugLog("Created for voxel at " + voxel.PositionLeftBottomCorner, "VoxelData()"); }
/// <summary> /// Create an OreDetector for the given block. /// </summary> /// <param name="oreDetector">The ore detector block.</param> public OreDetector(IMyCubeBlock oreDetector) { this.m_logger = new Logger("OreDetector", oreDetector); this.Block = oreDetector; this.m_oreDetector = oreDetector as Ingame.IMyOreDetector; float maxrange = 0f; MainLock.UsingShared(() => { var def = MyDefinitionManager.Static.GetCubeBlockDefinition(m_oreDetector.BlockDefinition) as MyOreDetectorDefinition; maxrange = def.MaximumRange; }); m_maxRange = maxrange; Registrar.Add(Block, this); }