Ejemplo n.º 1
0
    void initMap()
    {
        mapIsInitialized = false;

        // non-static map load
        if (mapToLoad == "")
        {
            layers = new List <LayerController>();
            for (int i = 0; i < NumberOfLayers; i++)
            {
                layers.Add(GameObject.Instantiate(LayerPrefab, GameGrid.transform).GetComponent <LayerController>());

                if (randomLevel)
                {
                    GameObject r = layers[i].gameObject;
                    GameObject.Destroy(layers[i].gameObject.GetComponent <LayerController>());
                    LayerRandomLevelGenerator lc = r.AddComponent <LayerRandomLevelGenerator>();
                    lc.tileControllerPrefab = TilePrefab;
                    lc.layerWidth           = mapWidth;
                    lc.layerHeight          = mapHeight;
                    lc.parentObjectForTiles = lc.gameObject.transform;
                    layers.RemoveAt(i);
                    layers.Insert(i, lc);
                }

                layers[i].transform.Translate(0f, 0f, -1f * i);
            }
            for (int i = 0; i < layers.Count; i++)
            {
                initLayer(i, false);
            }
            for (int i = 0; i < layers.Count; i++)
            {
                layers[i].BuildLayer(i > 0 ? layers[i - 1] : null, i == layers.Count - 1 ? null : layers[i + 1]);
            }
        }

        // static map load
        if (mapToLoad != "")
        {
            StaticUtilitiesFunction.LoadMapFromResources(mapToLoad, TilePrefab);
        }

        triggerMapLoadingEvent();

        mapIsInitialized = true;
    }
    private void FixedUpdate()
    {
        if (playerRef.inMenu)
        {
            return;
        }
        if (!playerRef.cheatMode)
        {
            return;
        }
#if UNITY_EDITOR
        if (Input.GetKeyDown(KeyCode.Y))
        {
            string saveFile = UnityEditor.EditorUtility.SaveFilePanel("Save current map", "", "map", "json");
            if (saveFile == "")
            {
                return;
            }

            StaticUtilitiesFunction.SaveMapToFile(saveFile);
            Debug.Log("File successfully saved to: " + saveFile);
        }
        if (Input.GetKeyDown(KeyCode.L))
        {
            string loadFile = UnityEditor.EditorUtility.OpenFilePanel("Load map", "", "json");
            if (loadFile == "")
            {
                return;
            }

            StaticUtilitiesFunction.LoadMapFromFile(loadFile, tileControllerPrefab, true);
        }
#endif
        if (Input.GetKey(KeyCode.Plus))
        {
            Camera.main.orthographicSize += 1;
        }
        if (Input.GetKey(KeyCode.Minus))
        {
            Camera.main.orthographicSize -= 1;
        }
        if (Input.GetKeyDown(KeyCode.Alpha1) || Input.GetAxis("Mouse ScrollWheel") >= 0.99f)
        {
            selectedTileNumber++;
        }
        if (Input.GetKeyDown(KeyCode.Alpha2) || Input.GetAxis("Mouse ScrollWheel") <= -0.99f)
        {
            selectedTileNumber--;
        }
        if (Input.GetKeyDown(KeyCode.Alpha9))
        {
            selectedLayer++;
            if (GameManager.instance.layers.Count <= selectedLayer)
            {
                LayerController l = GameObject.Instantiate(GameManager.instance.LayerPrefab, GameManager.instance.GameGrid.transform).GetComponent <LayerController>();
                GameManager.instance.layers.Add(l);
                GameManager.instance.initLayer(GameManager.instance.layers.Count - 1, true);
            }
            layerText.text = "Layer: " + selectedLayer;
        }
        if (Input.GetKeyDown(KeyCode.Alpha0))
        {
            if (selectedLayer > 0)
            {
                selectedLayer--;
                layerText.text = "Layer: " + selectedLayer;
            }
        }


        if (Input.GetButtonDown("Fire1"))
        {
            if (!playerRef)
            {
                playerRef = gm.playerScript;
            }
            if (!playerRef)
            {
                return;
            }


            GameManager.instance.layers[selectedLayer].tiles[Coordinate2D.Is(playerRef.mapX, playerRef.mapY)].GettingOverwritten(tileObjectPrefabs[selectedTileNumber].GetComponent <TileController>());
        }
    }