Made presser properly press
This commit is contained in:
@@ -1,5 +1,100 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1570872871484658396
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8817646919675700749}
|
||||
- component: {fileID: 6499977455909793586}
|
||||
- component: {fileID: 8140780552350643576}
|
||||
m_Layer: 0
|
||||
m_Name: AOE
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8817646919675700749
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1570872871484658396}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3484520099208115360}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!61 &6499977455909793586
|
||||
BoxCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1570872871484658396}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_ForceSendLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ForceReceiveLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ContactCaptureLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_CallbackLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_IsTrigger: 1
|
||||
m_UsedByEffector: 0
|
||||
m_CompositeOperation: 0
|
||||
m_CompositeOrder: 0
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_SpriteTilingProperty:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
pivot: {x: 0, y: 0}
|
||||
oldSize: {x: 0, y: 0}
|
||||
newSize: {x: 0, y: 0}
|
||||
adaptiveTilingThreshold: 0
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
m_Size: {x: 150, y: 110}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!114 &8140780552350643576
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1570872871484658396}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7a471a3a004424f44aed18516c22740e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.TriggerDetector
|
||||
--- !u!1 &4125748828694197055
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -37,6 +132,7 @@ RectTransform:
|
||||
- {fileID: 4096697452073127701}
|
||||
- {fileID: 6793262744715789825}
|
||||
- {fileID: 7373586313877545823}
|
||||
- {fileID: 8817646919675700749}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
@@ -61,6 +157,7 @@ MonoBehaviour:
|
||||
PresserAnimator: {fileID: 2069929881663685092}
|
||||
TopCollider: {fileID: 2714168551213278428}
|
||||
BottomCollider: {fileID: 8580655252957421185}
|
||||
EffectTrigger: {fileID: 8140780552350643576}
|
||||
--- !u!222 &329628596091536199
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -257,7 +354,7 @@ BoxCollider2D:
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
m_Size: {x: 120, y: 16}
|
||||
m_Size: {x: 88, y: 16}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!1 &6685246690386729584
|
||||
GameObject:
|
||||
@@ -329,7 +426,7 @@ BoxCollider2D:
|
||||
m_UsedByEffector: 0
|
||||
m_CompositeOperation: 0
|
||||
m_CompositeOrder: 0
|
||||
m_Offset: {x: -70, y: 0}
|
||||
m_Offset: {x: -62, y: 0}
|
||||
m_SpriteTilingProperty:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
pivot: {x: 0, y: 0}
|
||||
@@ -339,7 +436,7 @@ BoxCollider2D:
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
m_Size: {x: 20, y: 120}
|
||||
m_Size: {x: 36, y: 120}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!1 &7642770092097174314
|
||||
GameObject:
|
||||
@@ -421,7 +518,7 @@ BoxCollider2D:
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
m_Size: {x: 120, y: 12}
|
||||
m_Size: {x: 88, y: 16}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!1 &8718160904021803034
|
||||
GameObject:
|
||||
@@ -493,7 +590,7 @@ BoxCollider2D:
|
||||
m_UsedByEffector: 0
|
||||
m_CompositeOperation: 0
|
||||
m_CompositeOrder: 0
|
||||
m_Offset: {x: 70, y: 0}
|
||||
m_Offset: {x: 62, y: 0}
|
||||
m_SpriteTilingProperty:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
pivot: {x: 0, y: 0}
|
||||
@@ -503,5 +600,5 @@ BoxCollider2D:
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
m_Size: {x: 20, y: 120}
|
||||
m_Size: {x: 36, y: 120}
|
||||
m_EdgeRadius: 0
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
using Fruitomation.Global;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Fruitomation.Game.Items;
|
||||
using JetBrains.Annotations;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Scripting;
|
||||
using Fruitomation.Global;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Fruitomation.Game
|
||||
{
|
||||
@@ -11,7 +14,21 @@ namespace Fruitomation.Game
|
||||
[SerializeField] private Animator PresserAnimator;
|
||||
[SerializeField] private Collider2D TopCollider;
|
||||
[SerializeField] private Collider2D BottomCollider;
|
||||
[SerializeField] private TriggerDetector EffectTrigger;
|
||||
|
||||
private HashSet<GameObject> CurrentContainedObjects = new();
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
EffectTrigger.SetAction(other => CurrentContainedObjects.Add(other.gameObject),
|
||||
TriggerType.Enter
|
||||
);
|
||||
|
||||
EffectTrigger.SetAction(other => CurrentContainedObjects.Remove(other.gameObject),
|
||||
TriggerType.Exit
|
||||
);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (GameStateController.Is(GameState.Simulation))
|
||||
@@ -33,37 +50,32 @@ namespace Fruitomation.Game
|
||||
}
|
||||
}
|
||||
|
||||
[Preserve, UsedImplicitly]
|
||||
public void OpenTop()
|
||||
{
|
||||
Debug.Log(nameof(OpenTop));
|
||||
TopCollider.enabled = false;
|
||||
}
|
||||
|
||||
[Preserve, UsedImplicitly]
|
||||
public void CloseTop()
|
||||
{
|
||||
Debug.Log(nameof(CloseTop));
|
||||
TopCollider.enabled = true;
|
||||
}
|
||||
|
||||
[Preserve, UsedImplicitly]
|
||||
public void OpenBottom()
|
||||
{
|
||||
Debug.Log(nameof(OpenBottom));
|
||||
BottomCollider.enabled = false;
|
||||
}
|
||||
|
||||
[Preserve, UsedImplicitly]
|
||||
public void CloseBottom()
|
||||
{
|
||||
Debug.Log(nameof(CloseBottom));
|
||||
BottomCollider.enabled = true;
|
||||
}
|
||||
[Preserve, UsedImplicitly] public void OpenTop() => TopCollider.enabled = false;
|
||||
[Preserve, UsedImplicitly] public void CloseTop() => TopCollider.enabled = true;
|
||||
[Preserve, UsedImplicitly] public void OpenBottom() => BottomCollider.enabled = false;
|
||||
[Preserve, UsedImplicitly] public void CloseBottom() => BottomCollider.enabled = true;
|
||||
|
||||
[Preserve, UsedImplicitly] public void Press()
|
||||
{
|
||||
Debug.Log("Presser Press");
|
||||
GameObject[] gameObjects = CurrentContainedObjects.ToArray();
|
||||
foreach (GameObject go in gameObjects)
|
||||
{
|
||||
bool isItem = go.transform.parent.TryGetComponent(out ItemBehaviour item);
|
||||
if (!isItem)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
item.CurrentType = item.CurrentType switch
|
||||
{
|
||||
ItemType.Apple => ItemType.AppleJuice,
|
||||
ItemType.Grape => ItemType.GrapeJuice,
|
||||
ItemType.Kiwi => ItemType.KiwiJuice,
|
||||
ItemType.PitayaSkin => ItemType.PitayaFoodDye,
|
||||
|
||||
var _ => item.CurrentType // Default
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,15 +6,15 @@ namespace Fruitomation.Game
|
||||
public enum TriggerType
|
||||
{
|
||||
Enter,
|
||||
Stay
|
||||
Stay,
|
||||
Exit
|
||||
}
|
||||
|
||||
public class TriggerDetector : MonoBehaviour
|
||||
{
|
||||
private Action<Collider2D> RegisteredActionStay;
|
||||
private Action<Collider2D> RegisteredActionEnter;
|
||||
|
||||
private TriggerType Type;
|
||||
private Action<Collider2D> RegisteredActionExit;
|
||||
|
||||
public void SetAction(Action<Collider2D> action, TriggerType type)
|
||||
{
|
||||
@@ -28,6 +28,10 @@ namespace Fruitomation.Game
|
||||
RegisteredActionEnter = action;
|
||||
return;
|
||||
|
||||
case TriggerType.Exit:
|
||||
RegisteredActionExit = action;
|
||||
return;
|
||||
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(type), type, null);
|
||||
}
|
||||
@@ -35,5 +39,6 @@ namespace Fruitomation.Game
|
||||
|
||||
private void OnTriggerEnter2D(Collider2D other) => RegisteredActionEnter?.Invoke(other);
|
||||
private void OnTriggerStay2D(Collider2D other) => RegisteredActionStay?.Invoke(other);
|
||||
private void OnTriggerExit2D(Collider2D other) => RegisteredActionExit?.Invoke(other);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user