Example #1
0
    public static void PrepareScene()
    {
        GameObject rig                  = AssetDatabase.LoadAssetAtPath <GameObject>("Assets/Prefabs/Cameras.prefab");
        GameObject walls                = AssetDatabase.LoadAssetAtPath <GameObject>("Assets/Prefabs/Walls.prefab");
        GameObject floor                = AssetDatabase.LoadAssetAtPath <GameObject>("Assets/Prefabs/Floor.prefab");
        GameObject hero                 = AssetDatabase.LoadAssetAtPath <GameObject>("Assets/Prefabs/Hero.prefab");
        GameObject gameState            = AssetDatabase.LoadAssetAtPath <GameObject>("Assets/Prefabs/Game state manager.prefab");
        GameObject canvas               = AssetDatabase.LoadAssetAtPath <GameObject>("Assets/Prefabs/Canvas stack.prefab");
        GameObject start                = AssetDatabase.LoadAssetAtPath <GameObject>("Assets/Prefabs/Level Start.prefab");
        GameObject goal                 = AssetDatabase.LoadAssetAtPath <GameObject>("Assets/Prefabs/Level Goal.prefab");
        GameObject swarmSpawner         = AssetDatabase.LoadAssetAtPath <GameObject>("Assets/Prefabs/Swarm Spawner.prefab");
        GameObject tintTextureGenerator = AssetDatabase.LoadAssetAtPath <GameObject>("Assets/Prefabs/Tint Texture Generator.prefab");

        if (rig != null && walls != null && floor != null && hero != null && gameState != null && canvas != null && start != null && goal != null && swarmSpawner != null)
        {
            RenderSettings.ambientLight = Color.white;
            foreach (var cam in Object.FindObjectsOfType <Camera>())
            {
                Object.DestroyImmediate(cam.gameObject, false);
            }
            Grid grid = BrushUtility.GetRootGrid(true);

            PrefabUtility.InstantiatePrefab(rig);
            GameObject wallsGo = PrefabUtility.InstantiatePrefab(walls) as GameObject;
            PrefabUtility.UnpackPrefabInstance(wallsGo, PrefabUnpackMode.Completely, InteractionMode.AutomatedAction);
            wallsGo.transform.SetParent(grid.transform);
            GameObject floorGo = PrefabUtility.InstantiatePrefab(floor) as GameObject;
            PrefabUtility.UnpackPrefabInstance(floorGo, PrefabUnpackMode.Completely, InteractionMode.AutomatedAction);
            floorGo.transform.SetParent(grid.transform);
            PrefabUtility.InstantiatePrefab(gameState);
            PrefabUtility.InstantiatePrefab(swarmSpawner);
            GameObject canvasObject = PrefabUtility.InstantiatePrefab(canvas) as GameObject;
            canvasObject.GetComponentInChildren <UIRenderTextureCamera>().UpdateCamera();

            GameObject startGo = PrefabUtility.InstantiatePrefab(start) as GameObject;
            startGo.transform.SetParent(grid.transform);
            startGo.transform.position = grid.GetCellCenterWorld(new Vector3Int(-6, 1, 0));

            GameObject goalGo = PrefabUtility.InstantiatePrefab(goal) as GameObject;
            goalGo.transform.SetParent(grid.transform);
            goalGo.transform.position = grid.GetCellCenterWorld(new Vector3Int(5, -2, 0));

            GameObject swarmSpawnerGo = PrefabUtility.InstantiatePrefab(swarmSpawner) as GameObject;
            swarmSpawnerGo.transform.SetParent(grid.transform);

            grid.gameObject.AddComponent <GridInformation>();

            GameObject tintTextureGo = PrefabUtility.InstantiatePrefab(tintTextureGenerator) as GameObject;
            tintTextureGo.transform.SetParent(grid.transform);

            LevelBrush.ResetLevelCache();
            TintTextureGenerator.RefreshTintmap();
        }
        else
        {
            Debug.LogWarning("Some prefabs for initializing the scene are missing.");
        }
    }
Example #2
0
 public override void OnInspectorGUI()
 {
     EditorGUI.BeginChangeCheck();
     base.OnInspectorGUI();
     if (GUILayout.Button("Refresh") || EditorGUI.EndChangeCheck())
     {
         LevelBrush.ResetLevelCache();
         TintTextureGenerator.RefreshTintmap();
     }
 }
Example #3
0
    public override void Erase(GridLayout grid, GameObject layer, Vector3Int position)
    {
        GridInformation info = BrushUtility.GetRootGridInformation(true);

        info.ErasePositionProperty(position, k_TintColorPropertyName);
        if (generator == null)
        {
            generator = FindObjectOfType <TintTextureGenerator>();
        }
        TintTextureGenerator.RefreshTintmap(position);
    }
Example #4
0
    public override void Paint(GridLayout grid, GameObject layer, Vector3Int position)
    {
        GridInformation info     = BrushUtility.GetRootGridInformation(true);
        Color           oldColor = info.GetPositionProperty(position, k_TintColorPropertyName, FindObjectOfType <TintTextureGenerator>().defaultColor);

        info.ErasePositionProperty(position, k_TintColorPropertyName);
        Color newColor = oldColor * (1 - m_Blend) + m_Color * m_Blend;

        info.SetPositionProperty(position, k_TintColorPropertyName, newColor);
        TintTextureGenerator.RefreshTintmap(position);
    }
Example #5
0
    public override void Erase(GridLayout grid, GameObject layer, Vector3Int position)
    {
        Tilemap walls = GetWall();
        Tilemap floor = GetFloor();

        if (walls != null && floor != null)
        {
            EraseInternal(position, floor, walls);
            TintTextureGenerator.RefreshTintmap(position);
        }
    }
Example #6
0
    public override void BoxErase(GridLayout grid, GameObject layer, BoundsInt position)
    {
        Tilemap walls = GetWall();
        Tilemap floor = GetFloor();

        if (walls != null && floor != null)
        {
            foreach (var pos in position.allPositionsWithin)
            {
                EraseInternal(pos, floor, walls);
            }
            TintTextureGenerator.RefreshTintmap(position);
        }
    }
 private void UndoRedoPerformed()
 {
     LevelBrush.ResetLevelCache();
     TintTextureGenerator.RefreshTintmap();
 }