Пример #1
0
 static bool CanBeDetected(IMyObjectToDetect objectToDetect)
 {
     if (objectToDetect is MyVoxelMapOreDepositCell)
     {
         MyVoxelMapOreDepositCell oreDeposit = objectToDetect as MyVoxelMapOreDepositCell;
         return(oreDeposit.GetTotalRareOreContent() > 0);
     }
     //return objectToDetect is MyEntity || objectToDetect is MyMwcVoxelMaterialsEnum;
     return(objectToDetect is MyShip ||
            objectToDetect is MyPrefabFoundationFactory ||
            objectToDetect is MyPrefabHangar ||
            objectToDetect is MyPrefabLargeWeapon ||
            objectToDetect is MyAmmoBase /*||
                                          * objectToDetect is MyVoxelMapOreDepositCell*/);
 }
Пример #2
0
 private void OnMyVoxelMapOreDepositCellContainsOreChanged(MyVoxelMapOreDepositCell oreDepositCell, bool isEmpty)
 {
     using (OreDepositsLock.AcquireExclusiveUsing())
     {
         if (isEmpty)
         {
             OreDepositCellsContainsOre.Remove(oreDepositCell);
         }
         else
         {
             OreDepositCellsContainsOre.Add(oreDepositCell);
         }
     }
 }
Пример #3
0
 private void RecalculateOreDepositCellBoundingBox(ref MyVoxelMapOreDepositCell oreDepositCell, ref Int64 oreDepositCellCoord)
 {
     Vector3 minPosition;
     Vector3 maxPosition;
     GetMinAndMaxPositionOfOreDepositCell(ref oreDepositCellCoord, out minPosition, out maxPosition);
     //oreDepositCell.BoundingBox = new BoundingBox(minPosition, maxPosition);
     oreDepositCell.WorldAABB = new BoundingBox(minPosition, maxPosition);
 }
Пример #4
0
 private void RemoveOreDepositCell(MyVoxelMapOreDepositCell oreDepositCell, bool lockEntityCloseLock = true)
 {
     oreDepositCell.OnVoxelMapOreDepositCellContainsOreChanged -= OnMyVoxelMapOreDepositCellContainsOreChanged;
     oreDepositCell.Close(lockEntityCloseLock);
 }
Пример #5
0
        private MyVoxelMapOreDepositCell AddOreDepositCell(ref MyMwcVector3Int oreDepositCellCoord)
        {
            //  Adding or creating cell can be made only once
            Int64 key = MyVoxelMaps.GetCellHashCode(VoxelMapId, ref oreDepositCellCoord, MyLodTypeEnum.LOD0);
            Debug.Assert(!m_oreDepositCells.ContainsKey(key));

            MyVoxelMapOreDepositCell ret = new MyVoxelMapOreDepositCell(this, oreDepositCellCoord);
            ret.OnVoxelMapOreDepositCellContainsOreChanged += OnMyVoxelMapOreDepositCellContainsOreChanged;
            m_oreDepositCells[key] = ret;

            RecalculateOreDepositCellBoundingBox(ref ret, ref key);

            return ret;
        }
Пример #6
0
        protected override bool IsObjectMeetDetectCriterium(IMyObjectToDetect objectToDetect)
        {
            MyVoxelMapOreDepositCell oreDeposit = (MyVoxelMapOreDepositCell)objectToDetect;

            return(oreDeposit.GetOreContent(m_oreMaterial) > 0);
        }
Пример #7
0
 static void MyVoxelMaps_OnRemoveOreCell(MyVoxelMapOreDepositCell cell)
 {
     RemoveClosedObject(cell);
 }