public void CreateFloor(CatalogItem floorSceneObject) { Vector3 initialPosition = new Vector3(ParcelSettings.PARCEL_SIZE / 2, 0, ParcelSettings.PARCEL_SIZE / 2); Vector2Int[] parcelsPoints = sceneToEdit.sceneData.parcels; numberOfParcelsLoaded = 0; loadedFloorEntities.Clear(); foreach (Vector2Int parcel in parcelsPoints) { BIWEntity decentralandEntity = creatorController.CreateCatalogItem( floorSceneObject, WorldStateUtils.ConvertPointInSceneToUnityPosition(initialPosition, parcel), false, true, OnFloorLoaded); // It may happen that when you get here, the floor entity is already loaded and it wouldn't be necessary to show its loading indicator. if (!loadedFloorEntities.Contains(decentralandEntity.rootEntity.entityId)) { GameObject floorPlaceHolder = GameObject.Instantiate(floorPrefab, decentralandEntity.rootEntity.gameObject.transform.position, Quaternion.identity); floorPlaceHolder.GetComponentInChildren <BIWFloorLoading>().Initialize(mainCamera); floorPlaceHolderDict.Add(decentralandEntity.rootEntity.entityId, floorPlaceHolder); decentralandEntity.OnShapeFinishLoading += RemovePlaceHolder; } } entityHandler.DeselectEntities(); lastFloorCalalogItemUsed = floorSceneObject; }
public void CreateFloor(CatalogItem floorSceneObject) { Vector3 initialPosition = new Vector3(ParcelSettings.PARCEL_SIZE / 2, 0, ParcelSettings.PARCEL_SIZE / 2); Vector2Int[] parcelsPoints = sceneToEdit.sceneData.parcels; foreach (Vector2Int parcel in parcelsPoints) { DCLBuilderInWorldEntity decentralandEntity = biwCreatorController.CreateSceneObject(floorSceneObject, false, true); decentralandEntity.rootEntity.OnShapeUpdated += OnFloorLoaded; decentralandEntity.transform.position = WorldStateUtils.ConvertPointInSceneToUnityPosition(initialPosition, parcel); dclBuilderMeshLoadIndicatorController.ShowIndicator(decentralandEntity.rootEntity.gameObject.transform.position, decentralandEntity.rootEntity.entityId); GameObject floorPlaceHolder = GameObject.Instantiate(floorPrefab, decentralandEntity.rootEntity.gameObject.transform.position, Quaternion.identity); floorPlaceHolderDict.Add(decentralandEntity.rootEntity.entityId, floorPlaceHolder); builderInWorldBridge?.EntityTransformReport(decentralandEntity.rootEntity, sceneToEdit); } builderInWorldEntityHandler.DeselectEntities(); lastFloorCalalogItemUsed = floorSceneObject; }