public void ModifyLocalCollisionMap(bool Active) { for (int iX = 0; iX < mAsset.mWidth * 2; ++iX) { for (int iY = 0; iY < mAsset.mLength * 2; ++iY) { IntVec2 worldTile = CItem.GetWorldCollisionTile(iX, iY, mPosition, mRotation); CCollisionTile tile = mWorld.mMap.mLocalCollisionTiles[mPlayerID][worldTile.X, worldTile.Y]; if (Active) { tile.mOccupied = mID; tile.mSolid = mAsset.mTiles[iX, iY].mSolid; } else { tile.mOccupied = 0; tile.mSolid = false; } } } Rect mr = new Rect(mBounds.min.x * 2.0f, mBounds.min.z * 2.0f, mBounds.size.x * 2.0f, mBounds.size.z * 2.0f); mWorld.mMap.CollisionModified(mPlayerID, mr); }