artefact registration, register event listeners after awake event

This commit is contained in:
Cat Flynn 2021-03-05 13:26:15 +00:00
parent b64e4e30af
commit 1aee232cb6
8 changed files with 67 additions and 40 deletions

View File

@ -14,3 +14,4 @@ MonoBehaviour:
m_EditorClassIdentifier:
_dialogue: {fileID: 11400000, guid: 56369c4e83cc59e44bf55cd16fafc4e8, type: 2}
_inventory: {fileID: 11400000, guid: 1a9441435aa1fc649a84169f689c7f53, type: 2}
_nearbyArtefactId: {fileID: 11400000, guid: caba70196fbb1c549a934f7566f7a247, type: 2}

View File

@ -10,7 +10,7 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cc38ab5b9e594a344a8eb1635487d5eb, type: 3}
m_Name: nearbyArtefactID
m_Name: Nearby Artefact ID
m_EditorClassIdentifier:
_initialValue: -1
_readOnly: 0

View File

@ -2476,15 +2476,15 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4676633831318799747, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_LocalRotation.x
value: 0.14211853
value: 0.14211854
objectReference: {fileID: 0}
- target: {fileID: 4676633831318799747, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_LocalRotation.y
value: -2.2566488e-22
value: 1.1133053e-25
objectReference: {fileID: 0}
- target: {fileID: 4676633831318799747, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_LocalRotation.z
value: 2.3205715e-23
value: -4.9127595e-24
objectReference: {fileID: 0}
- target: {fileID: 4676633831388223341, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_LocalPosition.x
@ -2504,15 +2504,15 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4676633831388223341, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_LocalRotation.x
value: 0.1419703
value: 0.14197029
objectReference: {fileID: 0}
- target: {fileID: 4676633831388223341, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_LocalRotation.y
value: 0.04519987
value: 0.045199864
objectReference: {fileID: 0}
- target: {fileID: 4676633831388223341, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_LocalRotation.z
value: -0.0064896117
value: -0.0064896103
objectReference: {fileID: 0}
- target: {fileID: 4676633831414007564, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_Name
@ -2600,15 +2600,15 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4676633832789495666, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_LocalRotation.x
value: 0.14211851
value: 0.14211854
objectReference: {fileID: 0}
- target: {fileID: 4676633832789495666, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_LocalRotation.y
value: -7.529077e-16
value: -0.0000000034819871
objectReference: {fileID: 0}
- target: {fileID: 4676633832789495666, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_LocalRotation.z
value: 4.582889e-18
value: 4.999292e-10
objectReference: {fileID: 0}
- target: {fileID: 4676633832858914730, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_XAxis.m_InvertInput
@ -2636,11 +2636,11 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4676633832928372887, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_LocalRotation.y
value: 0.04519986
value: 0.045199856
objectReference: {fileID: 0}
- target: {fileID: 4676633832928372887, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
propertyPath: m_LocalRotation.z
value: -0.006489608
value: -0.006489607
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 8a918f60d084fbe468bf3b2c0a14fb52, type: 3}
@ -7128,12 +7128,11 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
artefactUI: {fileID: 483749937}
nearbyArtefactID: {fileID: 11400000, guid: caba70196fbb1c549a934f7566f7a247, type: 2}
Player: {fileID: 1239556274}
artefactText: {fileID: 59318657}
Artefacts: {fileID: 1112305613}
inputSettings: {fileID: 11400000, guid: 87faf39b6f22e524984c1680a88045ac, type: 2}
dialogue: {fileID: 11400000, guid: 56369c4e83cc59e44bf55cd16fafc4e8, type: 2}
artefacts: {fileID: 11400000, guid: f523ac0d77530064b8b41c627b13fae0, type: 2}
--- !u!114 &2070784759
MonoBehaviour:
m_ObjectHideFlags: 0

View File

@ -1,3 +1,4 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
@ -6,8 +7,6 @@ using UnityEngine.Events;
public class ArtefactControl : MonoBehaviour
{
private bool _show;
protected bool _canInteract;
@ -20,7 +19,12 @@ public class ArtefactControl : MonoBehaviour
[SerializeField] private SerialInt _nearbyArtefactID;
[SerializeField] private ArtefactSystem _artefacts;
private void OnEnable()
{
_artefacts.RegisterArtefact(_data);
}
protected virtual void Start()
{
_artefactID = data.artefactID;

View File

@ -1,5 +1,8 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using Ktyl.Util;
using UnityEngine;
[CreateAssetMenu(menuName = "KernelPanic/Artefacts/Artefact System")]
@ -7,6 +10,36 @@ public class ArtefactSystem : ScriptableObject
{
[SerializeField] private DialogueSystem _dialogue;
[SerializeField] private ArtefactInventory _inventory;
[SerializeField] private SerialInt _nearbyArtefactId;
private readonly List<Artefact> _artefacts = new List<Artefact>();
public Artefact GetNearbyArtefact()
{
return _nearbyArtefactId == -1 ? null : GetArtefact(_nearbyArtefactId);
}
private Artefact GetArtefact(int id)
{
for (int i = 0; i < _artefacts.Count; i++)
{
if (_artefacts[i].artefactID == id) return _artefacts[i];
}
Debug.LogError($"no registered artefact with id {id}");
return null;
}
public void RegisterArtefact(Artefact artefact)
{
if (_artefacts.Contains(artefact))
{
Debug.LogError($"{artefact} already registered", this);
return;
}
_artefacts.Add(artefact);
}
public void FindArtefact(Artefact artefact)
{
@ -14,4 +47,9 @@ public class ArtefactSystem : ScriptableObject
// _dialogue.PlayLine(artefact.dialogueKey);
}
private void OnDisable()
{
_artefacts.Clear();
}
}

View File

@ -6,7 +6,6 @@ using UnityEngine;
public class EventHandler : MonoBehaviour
{
//[SerializeField] private SerialInt nearbyArtefactID;
public static EventHandler current;
private void Awake()
@ -39,10 +38,7 @@ public class EventHandler : MonoBehaviour
{
if (onArtefactPickUp != null)
{
//if(nearbyArtefactID != -1)
// {
onArtefactPickUp(id);
//}
onArtefactPickUp(id);
}
}

View File

@ -11,40 +11,29 @@ public class PickUpDisplay : MonoBehaviour
[SerializeField] private static bool _paused;
[SerializeField] private GameObject artefactUI;
[SerializeField] private SerialInt nearbyArtefactID;
[SerializeField] private GameObject Player;
[SerializeField] private Text artefactText;
[SerializeField] private GameObject Artefacts;
[SerializeField] private InputSettings inputSettings;
[SerializeField] private DialogueSystem dialogue;
[SerializeField] private ArtefactSystem artefacts;
private Artefact chosenArtefact;
private static List<Artefact> completeList = new List<Artefact>();
private void Awake()
private void Start()
{
EventHandler.current.onArtefactUI += PopUpOn;
int i;
for(i=0; i<Artefacts.transform.childCount; i++)
{
completeList.Add(Artefacts.transform.GetChild(i).GetComponent<ArtefactControl>().data);
}
}
private void FixedUpdate()
private void Update()
{
foreach(Artefact arte in completeList)
{
if (nearbyArtefactID != -1 && arte.artefactID == nearbyArtefactID)
chosenArtefact = arte;
}
var artefact = artefacts.GetNearbyArtefact();
if (!artefact) return;
chosenArtefact = artefact;
}
public void PopUpOn()
{
;
_paused = true;
artefactUI.SetActive(true);
Player.GetComponent<PlayerInput>().enabled = false;