Ejemplo n.º 1
0
    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);
    }