public SGT_StarfieldStarVariant GetStarVariant(int index) { if (packer != null) { SGT_ArrayHelper.Resize(ref starVariants, packer.OutputCount, true); } return(SGT_ArrayHelper.Index(starVariants, index)); }
private void RecalculateCoords() { SGT_ArrayHelper.Resize(ref starVariants, starfieldTextureTilesX * starfieldTextureTilesY, false); for (var i = 0; i < starVariants.Count; i++) { GetStarVariant(i).RecalculateCoords(starfieldTextureTilesX, starfieldTextureTilesY, i); } }
public SGT_StarfieldStarVariant GetStarVariant(int index) { SGT_ArrayHelper.Resize(ref starVariants, starfieldTextureTilesX * starfieldTextureTilesY, false); var starVariant = starVariants[index]; if (starVariant == null) { starVariant = starVariants[index] = new SGT_StarfieldStarVariant(); } starVariant.Parent = this; return(starVariant); }
public void Update() { if (meshes == null) { meshes = new MeshList(); } if (meshGameObjects == null) { meshGameObjects = new GameObjectList(); } if (meshGameObjects.Count != meshes.Count) { SGT_ArrayHelper.Resize(ref meshGameObjects, meshes.Count, true); } // Update meshes for (var i = meshes.Count - 1; i >= 0; i--) { var mesh = meshes[i]; var meshGameObject = meshGameObjects[i]; if (mesh == null) { mesh = new SGT_Mesh(); meshes[i] = mesh; } if (meshGameObject == null) { meshGameObject = SGT_Helper.CreateGameObject("Mesh " + (i + 1), gameObject); meshGameObjects[i] = meshGameObject; } if (gameObject != null) { SGT_Helper.SetParent(meshGameObject, gameObject); SGT_Helper.SetLayer(meshGameObject, gameObject.layer); SGT_Helper.SetTag(meshGameObject, gameObject.tag); } if (sharedMesh != null) { mesh.SharedMesh = sharedMesh; } if (sharedMaterial != null) { mesh.SharedMaterial = sharedMaterial; } if (sharedPhysicsMaterial != null) { mesh.SharedPhysicsMaterial = sharedPhysicsMaterial; } mesh.GameObject = meshGameObject; mesh.HasMeshRenderer = hasMeshRenderers; mesh.MeshRendererEnabled = meshRenderersEnabled; mesh.HasMeshCollider = hasMeshColliders; mesh.MeshColliderEnabled = meshCollidersEnabled; mesh.Update(); } // Check integrity if (gameObject != null && meshGameObjects.Count != gameObject.transform.childCount) { SGT_Helper.DestroyChildren(gameObject); SGT_Helper.DestroyGameObjects(meshGameObjects); } }