using System.Collections;
using System.Collections.Generic;
using Mirror;
using UnityEngine;

public class pickup : NetworkBehaviour
{
    
    public string lootType = "default";
    public item lootData;
    float updaterInterval = 0.4f;

    void Awake(){
        updaterInterval += Random.Range(0,0.2f);
    }

    float t = 0;
    public float pickupDistance = 2;
    public float closestPlayerDist = float.MaxValue;

    [Server]
    void Update(){
        if(t < updaterInterval){
            t += Time.deltaTime;
        }else{
            ScanPlayers();
            t=0;
        }
    }

    void ScanPlayers(){
        playerNetwork[] players = FindObjectsOfType<playerNetwork>();
        if(players.Length <=0){return;}
        playerNetwork closestPlayer = players[0];
        closestPlayerDist = float.MaxValue;
        foreach(playerNetwork player in players){
            float dist = Vector3.Distance(transform.position, player.transform.position);
            if(dist < closestPlayerDist){
                closestPlayer = player;
                closestPlayerDist= dist;
            }
        }

        if(closestPlayerDist < pickupDistance){
            closestPlayer.PickupObject(this);
            NetworkServer.Destroy(gameObject);
        }
    }

    // private void OnTriggerEnter2D(Collider2D other) {
    //     if(other.CompareTag("Player")){
    //         for(int i = 0; i < inventory.slots.Length ; i++){
    //             if(inventory.isFull[i] == false){
    //                 //then the item can be addded to the inventory
    //                 inventory.isFull[i] = true;
    //                 //instantiate the pickup item 
    //                 Instantiate(itemBtn , inventory.slots[i].transform , false);
    //                 Destroy(gameObject);
    //                 break;
    //             }
    //         }
    //     }
    // }

}