public void prepModel() { if (model != null) { return; } String transformName = "ProcDecouplerRoot"; Transform modelBase = part.transform.FindRecursive(transformName); if (modelBase != null) { GameObject.DestroyImmediate(modelBase.gameObject); } modelBase = new GameObject(transformName).transform; modelBase.NestToParent(part.transform.FindRecursive("model")); model = new ProceduralCylinderModel(); UVMap uvs = UVMap.GetUVMapGlobal(uvMap); model.outsideUV = uvs.getArea("outside"); model.insideUV = uvs.getArea("inside"); model.topUV = uvs.getArea("top"); model.bottomUV = uvs.getArea("top"); setModelParameters(); TextureData data = currentTextureSetData.textureDatas[0]; model.setMaterial(SSTUUtils.loadMaterial(data.diffuseTextureName, data.normalTextureName)); model.createModel(); model.setParent(modelBase); updatePhysicalAttributes(); updateDecouplerForce(); SSTUModInterop.onPartGeometryUpdate(part, true); }