public void DuplicateSelectedEntities()
    {
        BIWCompleteAction buildAction = new BIWCompleteAction();

        buildAction.actionType = BIWCompleteAction.ActionType.CREATE;

        List <BIWEntityAction> entityActionList    = new List <BIWEntityAction>();
        List <BIWEntity>       entitiesToDuplicate = new List <BIWEntity>(selectedEntities);

        DeselectEntities();

        foreach (BIWEntity entityToDuplicate in entitiesToDuplicate)
        {
            if (entityToDuplicate.isNFT)
            {
                continue;
            }

            var             entityDuplicated = DuplicateEntity(entityToDuplicate);
            BIWEntityAction biwEntityAction  = new BIWEntityAction(entityDuplicated.rootEntity, entityDuplicated.rootEntity.entityId, BIWUtils.ConvertEntityToJSON(entityDuplicated.rootEntity));
            entityActionList.Add(biwEntityAction);
            SelectEntity(entityDuplicated);
        }

        currentActiveMode?.SetDuplicationOffset(DUPLICATE_OFFSET);

        buildAction.CreateActionType(entityActionList, BIWCompleteAction.ActionType.CREATE);
        actionController.AddAction(buildAction);
    }
Example #2
0
    public void ChangeFloor(CatalogItem newFloorObject)
    {
        saveController.SetSaveActivation(false);
        CatalogItem lastFloor = lastFloorCalalogItemUsed;

        if (lastFloor == null)
        {
            lastFloor = FindCurrentFloorCatalogItem();
        }

        entityHandler.DeleteFloorEntities();

        CreateFloor(newFloorObject);

        BIWCompleteAction buildAction = new BIWCompleteAction();

        buildAction.CreateChangeFloorAction(lastFloor, newFloorObject);
        actionController.AddAction(buildAction);

        saveController.SetSaveActivation(true, true);
    }