GameEntities.RTSBuilding.CreateProductUnitAttachedMesh C# (CSharp) Method

CreateProductUnitAttachedMesh() private method

private CreateProductUnitAttachedMesh ( ) : void
return void
        void CreateProductUnitAttachedMesh()
        {
            productUnitAttachedMesh = new MapObjectAttachedMesh();
            Attach( productUnitAttachedMesh );

            string meshName = null;
            //Vec3 meshOffset = new Vec3(0,0,10);
            Vec3 meshOffset = Vec3.Zero;
            Vec3 meshScale = new Vec3( 1, 1, 1);
            {
                foreach( MapObjectTypeAttachedObject typeAttachedObject in
                    productUnitType.AttachedObjects )
                {
                    MapObjectTypeAttachedMesh typeAttachedMesh =
                        typeAttachedObject as MapObjectTypeAttachedMesh;
                    if( typeAttachedMesh == null )
                        continue;

                    meshName = typeAttachedMesh.MeshName;
                    meshOffset = typeAttachedMesh.Position;
                    meshScale = typeAttachedMesh.Scale;
                    break;
                }
            }

            productUnitAttachedMesh.MeshName = meshName;

            Vec3 pos = meshOffset;
            {
                MapObjectAttachedObject buildPointAttachedHelper =
                    GetAttachedObjectByAlias( "productUnitPoint" );
                if( buildPointAttachedHelper != null )
                    pos += buildPointAttachedHelper.PositionOffset;
            }
            productUnitAttachedMesh.PositionOffset = pos;

            productUnitAttachedMesh.ScaleOffset = meshScale;

            if( Type.Name == "RTSHeadquaters" || Type.Name == "AntColmena" )
            {
                foreach( MeshObject.SubObject subMesh in productUnitAttachedMesh.MeshObject.SubObjects )
                    subMesh.MaterialName = "RTSBuildMaterial";
            }
        }