Beispiel #1
0
    protected override void Execute()
    {
        Vector2 selectionFieldStartPosition = SelectionFieldStatusView.SelectionFieldStartGridPosition;
        Vector2 selectionFieldEndPosition   = SelectionFieldStatusView.SelectionFieldEndGridPosition;

        List <ILevelObject> levelObjectsToRemove = new List <ILevelObject>();

        foreach (ILevelObject levelObject in levelObjectRefs)
        {
            GenerateableLevelObjectNode generateableLevelObjectNode = GenerateableLevelObjectLibrary.GetNode(levelObject.LevelObjectType);
            if (!generateableLevelObjectNode.CanCollideWithTiles)
            {
                continue;
            }

            GameObject levelObjectGameObject   = levelObject.GameObject;
            Vector2    levelObjectGridPosition = LevelEditorGridHelper.WorldToGridPosition(levelObjectGameObject.transform.position);

            if (!levelObjectGridPosition.IsBetweenVectors(selectionFieldStartPosition, selectionFieldEndPosition))
            {
                continue;
            }

            levelObjectsToRemove.Add(levelObject);
        }

        foreach (ILevelObject levelObject in levelObjectsToRemove)
        {
            levelObject.DestroyLevelObject();
        }
    }
Beispiel #2
0
    private Vector2 ConvertPositionToGridPosition(Vector2 position, LevelEditorInputType levelEditorInputType)
    {
        Vector2 gridPosition = new Vector2();

        switch (levelEditorInputType)
        {
        case LevelEditorInputType.ScreenSpace:
            Vector2 worldPosition = Camera.main.ScreenToWorldPoint(position);
            gridPosition = LevelEditorGridHelper.WorldToGridPosition(worldPosition);
            break;

        case LevelEditorInputType.WorldSpace:
            gridPosition = LevelEditorGridHelper.WorldToGridPosition(position);
            break;

        case LevelEditorInputType.GridSpace:
            gridPosition = position;
            Debug.LogWarning("Position is supposedly already a gridposition.");
            break;
        }

        return(gridPosition);
    }