コード例 #1
0
    private void OnPlayerPositionUpdated(GameEvents.PlayerPositionUpdateEvent e)
    {
        previousPlayerPos = currentPlayerPos;

        // check for new position
        currentPlayerPos.x = SimplexNoise.Noise.FastFloor(e.PlayerPosition.x / Chunk.chunkSize) * Chunk.chunkSize;
        currentPlayerPos.y = SimplexNoise.Noise.FastFloor(e.PlayerPosition.y / Chunk.chunkSize) * Chunk.chunkSize;
        currentPlayerPos.z = SimplexNoise.Noise.FastFloor(e.PlayerPosition.z / Chunk.chunkSize) * Chunk.chunkSize;

        if (currentPlayerPos.x != previousPlayerPos.x ||
            currentPlayerPos.z != previousPlayerPos.z)
        {
            ProcessChunks(currentPlayerPos);
            //StartCoroutine(RemoveChunks());
        }
    }
コード例 #2
0
    private void PlayerPosUpdated(GameEvents.PlayerPositionUpdateEvent e)
    {
        DebugPlayerPos   = mTerrainTileMap.WorldToCell(e.WorldPosition);
        DebugCurrentTile = mTerrainTileMap.GetTile(DebugPlayerPos);

        if (DebugCurrentTile != null)
        {
            // LOL UGH
            switch (DebugCurrentTile.name)
            {
            case "grass_0":
                DebugCurrentBiome = eBiomeID.Forest;
                break;

            case "grass_1":
                DebugCurrentBiome = eBiomeID.Plains;
                break;

            case "grass_2":
                DebugCurrentBiome = eBiomeID.Jungle;
                break;

            case "sand_0":
                DebugCurrentBiome = eBiomeID.Desert;
                break;

            case "snow_0":
            case "ice_water":
                DebugCurrentBiome = eBiomeID.Tundra;
                break;

            case "swamp_0":
                DebugCurrentBiome = eBiomeID.Swamp;
                break;

            default:
                DebugCurrentBiome = eBiomeID.None;
                break;
            }
        }
    }