public void UpdateInfo() { if (currentParcelScene == null) { return; } if (IsParcelSceneSquare(currentParcelScene)) { int size = (int)Math.Sqrt(currentParcelScene.sceneData.parcels.Length); int meters = size * 16; sceneLimitsView.SetTitleText($"{size}x{size} LAND <color=#959696>{meters}x{meters}m"); } else { sceneLimitsView.SetTitleText(BuilderInWorldSettings.CUSTOM_LAND); } SceneMetricsController.Model limits = currentParcelScene.metricsController.GetLimits(); SceneMetricsController.Model usage = currentParcelScene.metricsController.GetModel(); string leftDesc = AppendUsageAndLimit("ENTITIES", usage.entities, limits.entities); leftDesc += "\n" + AppendUsageAndLimit("BODIES", usage.bodies, limits.bodies); leftDesc += "\n" + AppendUsageAndLimit("TRIS", usage.triangles, limits.triangles); string rightDesc = AppendUsageAndLimit("TEXTURES", usage.textures, limits.textures); rightDesc += "\n" + AppendUsageAndLimit("MATERIALS", usage.materials, limits.materials); rightDesc += "\n" + AppendUsageAndLimit("GEOMETRIES", usage.meshes, limits.meshes); sceneLimitsView.SetLeftDescText(leftDesc); sceneLimitsView.SetRightDescText(rightDesc); SetFillInfo(); }
void AssertMetricsModel(ParcelScene scene, int triangles, int materials, int entities, int meshes, int bodies, int textures) { SceneMetricsController.Model inputModel = scene.metricsController.GetModel(); Assert.AreEqual(triangles, inputModel.triangles, "Incorrect triangle count, was: " + triangles); Assert.AreEqual(materials, inputModel.materials, "Incorrect materials count"); Assert.AreEqual(entities, inputModel.entities, "Incorrect entities count"); Assert.AreEqual(meshes, inputModel.meshes, "Incorrect geometries/meshes count"); Assert.AreEqual(bodies, inputModel.bodies, "Incorrect bodies count"); Assert.AreEqual(textures, inputModel.textures, "Incorrect textures count"); }
private bool IsInsideTheLimits(CatalogItem sceneObject) { if (HUDController.i.builderInWorldMainHud == null) { return(false); } SceneMetricsController.Model limits = sceneToEdit.metricsController.GetLimits(); SceneMetricsController.Model usage = sceneToEdit.metricsController.GetModel(); if (limits.bodies < usage.bodies + sceneObject.metrics.bodies) { HUDController.i.builderInWorldMainHud.ShowSceneLimitsPassed(); return(false); } if (limits.entities < usage.entities + sceneObject.metrics.entities) { HUDController.i.builderInWorldMainHud.ShowSceneLimitsPassed(); return(false); } if (limits.materials < usage.materials + sceneObject.metrics.materials) { HUDController.i.builderInWorldMainHud.ShowSceneLimitsPassed(); return(false); } if (limits.meshes < usage.meshes + sceneObject.metrics.meshes) { HUDController.i.builderInWorldMainHud.ShowSceneLimitsPassed(); return(false); } if (limits.textures < usage.textures + sceneObject.metrics.textures) { HUDController.i.builderInWorldMainHud.ShowSceneLimitsPassed(); return(false); } if (limits.triangles < usage.triangles + sceneObject.metrics.triangles) { HUDController.i.builderInWorldMainHud.ShowSceneLimitsPassed(); return(false); } return(true); }
float GetHigherLimitPercentInfo() { SceneMetricsController.Model limits = currentParcelScene.metricsController.GetLimits(); SceneMetricsController.Model usage = currentParcelScene.metricsController.GetModel(); float percentEntities = usage.entities * 100 / limits.entities; float percentBodies = usage.bodies * 100 / limits.bodies; float percentTris = usage.triangles * 100 / limits.triangles; float percentTexture = usage.textures * 100 / limits.textures; float percentmats = usage.materials * 100 / limits.materials; float percentMeshes = usage.meshes * 100 / limits.meshes; float result = percentEntities; if (percentBodies > result) { result = percentBodies; } if (percentTris > result) { result = percentTris; } if (percentTexture > result) { result = percentTexture; } if (percentmats > result) { result = percentmats; } if (percentMeshes > result) { result = percentMeshes; } return(result); }