39 lines
1.4 KiB
C#
39 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Unity.Netcode;
|
|
using UnityEngine;
|
|
|
|
public class PlateKitchenObject : KitchenObject {
|
|
[SerializeField] private List<KitchenObjectSO> ValidKitchenObjectSOList;
|
|
private List<KitchenObjectSO> kitchenObjectSOList;
|
|
|
|
public override void Awake() {
|
|
base.Awake();
|
|
kitchenObjectSOList = new();
|
|
}
|
|
|
|
public event EventHandler<IngredientAddedEventArgs> OnIngredientAdded;
|
|
|
|
public bool TryAddIngredient(KitchenObjectSO kitchenObjectSO) {
|
|
if (!ValidKitchenObjectSOList.Contains(kitchenObjectSO)) return false;
|
|
if (kitchenObjectSOList.Contains(kitchenObjectSO)) return false;
|
|
AddIngredientServerRpc(KitchenGameMultiplayer.Instance.GetKitchenObjectSOIndex(kitchenObjectSO));
|
|
return true;
|
|
}
|
|
|
|
[ServerRpc(RequireOwnership = false)]
|
|
private void AddIngredientServerRpc(int kitchenObjectSOIndex) => AddIngredientClientRpc(kitchenObjectSOIndex);
|
|
|
|
[ClientRpc]
|
|
private void AddIngredientClientRpc(int kitchenObjectSOIndex) {
|
|
KitchenObjectSO kitchenObjectSO = KitchenGameMultiplayer.Instance.GetKitchenObjectSOFromIndex(kitchenObjectSOIndex);
|
|
kitchenObjectSOList.Add(kitchenObjectSO);
|
|
OnIngredientAdded?.Invoke(this, new() { KitchenObjectSO = kitchenObjectSO });
|
|
}
|
|
|
|
public List<KitchenObjectSO> GetKitchenObjectSOList() => kitchenObjectSOList;
|
|
|
|
public class IngredientAddedEventArgs : EventArgs {
|
|
public KitchenObjectSO KitchenObjectSO;
|
|
}
|
|
} |