gemportal branch merge

This commit is contained in:
joonasp
2022-04-08 22:18:18 +03:00
218 changed files with 32002 additions and 680 deletions

View File

@@ -9,22 +9,39 @@ public class PortalTeleporter : MonoBehaviour
private Transform linkedPortalTransform;
private float _portalCooldown = 2.5f;
private bool _travellerIsOverlapping = false;
private bool _portalIsEnabled;
private bool _portalCanBeUsed;
private bool _enabled;
private float _lastUsed;
private bool _justUsed;
private Transform traveller;
public AudioClip TeleportSound;
// poopy code, can be done much more efficient if this class is rewritten and attached to Portal parent object
private AudioSource audioSource;
private GameObject vfx_gameobject;
private void Start()
{
linkedPortalTransform = linkedPortal.transform;
_portalIsEnabled = true;
_portalCanBeUsed = true;
vfx_gameobject = transform.parent.Find("PortalFX").gameObject;
audioSource = transform.parent.GetComponent<AudioSource>();
audioSource.mute = true;
if (_enabled)
{
vfx_gameobject.SetActive(true);
}
else
{
vfx_gameobject.SetActive(false);
}
}
void OnTriggerEnter(Collider other)
{
traveller = other.gameObject.transform;
if (_portalIsEnabled && !_justUsed)
Debug.Log(_enabled);
if (_portalCanBeUsed && !_justUsed && _enabled)
{
if (other.name.StartsWith("Holster"))
{
@@ -32,7 +49,7 @@ public class PortalTeleporter : MonoBehaviour
}
else
{
linkedPortal._portalIsEnabled = false;
linkedPortal._portalCanBeUsed = false;
_travellerIsOverlapping = true;
if (other.tag == "Throwable")
{
@@ -47,6 +64,28 @@ public class PortalTeleporter : MonoBehaviour
}
}
}
// Enable/Disable portal if selected item is in a socket.
public void EnablePortal()
{
Debug.Log("enabled");
_enabled = true;
linkedPortal._enabled = true;
vfx_gameobject.SetActive(true);
linkedPortal.vfx_gameobject.SetActive(true);
audioSource.mute = false;
}
public void DisablePortal()
{
Debug.Log("disabled");
_enabled = false;
linkedPortal._enabled = false;
vfx_gameobject.SetActive(false);
linkedPortal.vfx_gameobject.SetActive(false);
audioSource.mute = true;
}
private void HandlePlayer()
{
Vector3 portalToTraveller = traveller.position - transform.position;
@@ -65,7 +104,7 @@ public class PortalTeleporter : MonoBehaviour
AudioSource.PlayClipAtPoint(TeleportSound, traveller.position, 1);
_travellerIsOverlapping = false;
_portalIsEnabled = false;
_portalCanBeUsed = false;
_lastUsed = Time.time;
_justUsed = true;
}
@@ -86,7 +125,7 @@ public class PortalTeleporter : MonoBehaviour
Vector3 positionOffset = Quaternion.Euler(0f, rotationDiff, 0f) * portalToTraveller;
traveller.position = linkedPortalTransform.position + positionOffset;
_travellerIsOverlapping = false;
_portalIsEnabled = false;
_portalCanBeUsed = false;
_lastUsed = Time.time;
_justUsed = true;
}
@@ -108,8 +147,8 @@ public class PortalTeleporter : MonoBehaviour
if (_lastUsed + _portalCooldown < Time.time)
{
_justUsed = false;
_portalIsEnabled = true;
linkedPortal._portalIsEnabled = true;
_portalCanBeUsed = true;
linkedPortal._portalCanBeUsed = true;
}
}