Cutting recipe logic
This commit is contained in:
parent
ccaed6e70d
commit
12d1640f38
5 changed files with 47 additions and 13 deletions
2
.erp
2
.erp
|
@ -5,7 +5,7 @@
|
||||||
<resetOnSceneChange>false</resetOnSceneChange>
|
<resetOnSceneChange>false</resetOnSceneChange>
|
||||||
<debugMode>false</debugMode>
|
<debugMode>false</debugMode>
|
||||||
<EditorClosed>true</EditorClosed>
|
<EditorClosed>true</EditorClosed>
|
||||||
<LastTimestamp>1677612387</LastTimestamp>
|
<LastTimestamp>1677615563</LastTimestamp>
|
||||||
<LastSessionID>8006271043655199372</LastSessionID>
|
<LastSessionID>8006271043655199372</LastSessionID>
|
||||||
<Errored>false</Errored>
|
<Errored>false</Errored>
|
||||||
</ERPSettings>
|
</ERPSettings>
|
|
@ -364,7 +364,10 @@ MonoBehaviour:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
counterTopPoint: {fileID: 9008358141095219129}
|
counterTopPoint: {fileID: 9008358141095219129}
|
||||||
cutKitchenObjectSO: {fileID: 11400000, guid: f00d7c6ba063ee6448dd26fac2bf4ce4, type: 2}
|
cuttingRecipeSOArray:
|
||||||
|
- {fileID: 11400000, guid: 4b789feab80f3af4d9f54c0b12fc6f89, type: 2}
|
||||||
|
- {fileID: 11400000, guid: 26b6267afdd6fcf42b5c4f100065f7cd, type: 2}
|
||||||
|
- {fileID: 11400000, guid: 13cce409a5589f447b8b5b33c98ec9d6, type: 2}
|
||||||
--- !u!4 &9008358141095219129 stripped
|
--- !u!4 &9008358141095219129 stripped
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 1024188629140685204, guid: 509501a557d1d0a45817fb7332917dd5,
|
m_CorrespondingSourceObject: {fileID: 1024188629140685204, guid: 509501a557d1d0a45817fb7332917dd5,
|
||||||
|
|
|
@ -29,7 +29,7 @@ Transform:
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 4217830993578611624}
|
- {fileID: 1277091092657317217}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
@ -46,7 +46,7 @@ MonoBehaviour:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
kitchenObjectSO: {fileID: 11400000, guid: adbde85b933684c4992834e8bb9d893b, type: 2}
|
kitchenObjectSO: {fileID: 11400000, guid: adbde85b933684c4992834e8bb9d893b, type: 2}
|
||||||
--- !u!1001 &1036586551768401192
|
--- !u!1001 &2689542459995665377
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
|
@ -119,9 +119,9 @@ PrefabInstance:
|
||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
m_AddedComponents: []
|
m_AddedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 17cb28a1a37fd7f44ae6e1ad2aa9da78, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: 17cb28a1a37fd7f44ae6e1ad2aa9da78, type: 3}
|
||||||
--- !u!4 &4217830993578611624 stripped
|
--- !u!4 &1277091092657317217 stripped
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 3812876574508226176, guid: 17cb28a1a37fd7f44ae6e1ad2aa9da78,
|
m_CorrespondingSourceObject: {fileID: 3812876574508226176, guid: 17cb28a1a37fd7f44ae6e1ad2aa9da78,
|
||||||
type: 3}
|
type: 3}
|
||||||
m_PrefabInstance: {fileID: 1036586551768401192}
|
m_PrefabInstance: {fileID: 2689542459995665377}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
|
|
@ -31,7 +31,7 @@ Transform:
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 7776824414934913256}
|
- {fileID: 7776824414934913256}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 9
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &5792615824413011753
|
--- !u!114 &5792615824413011753
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
@ -45,7 +45,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: 9f604455b7aeb5f4790263b920c04313, type: 3}
|
m_Script: {fileID: 11500000, guid: 9f604455b7aeb5f4790263b920c04313, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
kitchenObjectSO: {fileID: 11400000, guid: 9a7cd1ad975e4124e9873832ba4af356, type: 2}
|
kitchenObjectSO: {fileID: 11400000, guid: 38de64e72d766a34c82d1ef83d41c98d, type: 2}
|
||||||
--- !u!1001 &6847401699804399208
|
--- !u!1001 &6847401699804399208
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
@ -5,7 +5,7 @@ using UnityEngine;
|
||||||
public class CuttingCounter : BaseCounter
|
public class CuttingCounter : BaseCounter
|
||||||
{
|
{
|
||||||
|
|
||||||
[SerializeField] private KitchenObjectSO cutKitchenObjectSO;
|
[SerializeField] private CuttingRecipeSO[] cuttingRecipeSOArray;
|
||||||
|
|
||||||
public override void Interact(Player player)
|
public override void Interact(Player player)
|
||||||
{
|
{
|
||||||
|
@ -15,7 +15,11 @@ public class CuttingCounter : BaseCounter
|
||||||
if (player.HasKitchenObject())
|
if (player.HasKitchenObject())
|
||||||
{
|
{
|
||||||
// player has object
|
// player has object
|
||||||
player.GetKitchenObject().SetKitchenObjectParent(this);
|
if (HasRecipeWithInput(player.GetKitchenObject().GetKitchenObjectSO()))
|
||||||
|
{
|
||||||
|
// player is carrying an object that can be chopped
|
||||||
|
player.GetKitchenObject().SetKitchenObjectParent(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -39,12 +43,39 @@ public class CuttingCounter : BaseCounter
|
||||||
|
|
||||||
public override void InteractAlternate(Player player)
|
public override void InteractAlternate(Player player)
|
||||||
{
|
{
|
||||||
if (HasKitchenObject())
|
if (HasKitchenObject() && HasRecipeWithInput(GetKitchenObject().GetKitchenObjectSO()))
|
||||||
{
|
{
|
||||||
// there is a KitchenObject here
|
// there is a KitchenObject AND it is able to be cut
|
||||||
|
|
||||||
|
KitchenObjectSO outputKitchenSO = GetOutputForInput(GetKitchenObject().GetKitchenObjectSO());
|
||||||
|
|
||||||
GetKitchenObject().DestroySelf();
|
GetKitchenObject().DestroySelf();
|
||||||
|
|
||||||
KitchenObject.SpawnKitchenObject(cutKitchenObjectSO, this);
|
KitchenObject.SpawnKitchenObject(outputKitchenSO, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool HasRecipeWithInput(KitchenObjectSO inputKitchenObjectSO)
|
||||||
|
{
|
||||||
|
foreach (CuttingRecipeSO cuttingRecipeSO in cuttingRecipeSOArray)
|
||||||
|
{
|
||||||
|
if (cuttingRecipeSO.input == inputKitchenObjectSO)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private KitchenObjectSO GetOutputForInput(KitchenObjectSO inputKitchenObjectSO)
|
||||||
|
{
|
||||||
|
foreach (CuttingRecipeSO cuttingRecipeSO in cuttingRecipeSOArray)
|
||||||
|
{
|
||||||
|
if (cuttingRecipeSO.input == inputKitchenObjectSO)
|
||||||
|
{
|
||||||
|
return cuttingRecipeSO.output;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue