mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-03-10 16:14:45 +00:00
guh
This commit is contained in:
parent
9472a3708f
commit
76458bed4b
@ -1,4 +1,6 @@
|
|||||||
using QSB.Utility;
|
using QSB.Utility;
|
||||||
|
using QSB.WorldSync;
|
||||||
|
using System.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace QSB.Player
|
namespace QSB.Player
|
||||||
@ -24,42 +26,46 @@ namespace QSB.Player
|
|||||||
{
|
{
|
||||||
DebugLog.DebugWrite($"WARP {_player.TransformSync}");
|
DebugLog.DebugWrite($"WARP {_player.TransformSync}");
|
||||||
|
|
||||||
transform.parent = _player.Body.transform.parent;
|
var playerGo = _player.Body;
|
||||||
transform.localPosition = _player.Body.transform.localPosition;
|
transform.parent = playerGo.transform.parent;
|
||||||
transform.localRotation = _player.Body.transform.localRotation;
|
transform.localPosition = playerGo.transform.localPosition;
|
||||||
transform.localScale = _player.Body.transform.localScale;
|
transform.localRotation = playerGo.transform.localRotation;
|
||||||
|
transform.localScale = playerGo.transform.localScale;
|
||||||
|
|
||||||
var SingularityWarpEffect = _player.Body.transform.Find("SingularityWarpEffect").gameObject;
|
var fakePlayerGo = _player.Body.transform.Find("REMOTE_Traveller_HEA_Player_v2")
|
||||||
|
.gameObject.InstantiateInactive();
|
||||||
|
fakePlayerGo.transform.parent = transform;
|
||||||
|
fakePlayerGo.transform.localPosition = Vector3.zero;
|
||||||
|
fakePlayerGo.transform.localRotation = Quaternion.identity;
|
||||||
|
fakePlayerGo.transform.localScale = Vector3.one;
|
||||||
|
fakePlayerGo.SetActive(true);
|
||||||
|
|
||||||
var effectGo = SingularityWarpEffect.InstantiateInactive();
|
var effectGo = QSBWorldSync.GetUnityObjects<GravityCannonController>().First()._warpEffect
|
||||||
|
.gameObject.InstantiateInactive();
|
||||||
effectGo.transform.parent = transform;
|
effectGo.transform.parent = transform;
|
||||||
effectGo.transform.localPosition = Vector3.zero;
|
effectGo.transform.localPosition = Vector3.zero;
|
||||||
effectGo.transform.localRotation = Quaternion.identity;
|
effectGo.transform.localRotation = Quaternion.identity;
|
||||||
effectGo.transform.localScale = Vector3.one;
|
effectGo.transform.localScale = Vector3.one;
|
||||||
|
|
||||||
var effect = effectGo.GetComponent<SingularityWarpEffect>();
|
_effect = effectGo.GetComponent<SingularityWarpEffect>();
|
||||||
var curve = AnimationCurve.EaseInOut(0, 0, .2f, 1);
|
_effect.enabled = true;
|
||||||
effect._singularity._creationCurve = curve;
|
_effect._singularity.enabled = true;
|
||||||
effect._singularity._destructionCurve = curve;
|
|
||||||
|
_effect._singularity._startActive = false;
|
||||||
|
_effect._singularity._muteSingularityEffectAudio = false;
|
||||||
|
// var curve = AnimationCurve.EaseInOut(0, 0, .2f, 1);
|
||||||
|
// _effect._singularity._creationCurve = curve;
|
||||||
|
// _effect._singularity._destructionCurve = curve;
|
||||||
|
|
||||||
var renderer = effectGo.GetComponent<OWRenderer>();
|
var renderer = effectGo.GetComponent<OWRenderer>();
|
||||||
renderer.SetMaterialProperty(Shader.PropertyToID("_DistortFadeDist"), 3);
|
// renderer.SetMaterialProperty(Shader.PropertyToID("_DistortFadeDist"), 3);
|
||||||
renderer.SetMaterialProperty(Shader.PropertyToID("_MassScale"), _joining ? -1 : 1);
|
// renderer.SetMaterialProperty(Shader.PropertyToID("_MassScale"), _joining ? -1 : 1);
|
||||||
renderer.SetMaterialProperty(Shader.PropertyToID("_MaxDistortRadius"), 10);
|
// renderer.SetMaterialProperty(Shader.PropertyToID("_MaxDistortRadius"), 10);
|
||||||
renderer.SetMaterialProperty(Shader.PropertyToID("_Radius"), 1);
|
// renderer.SetMaterialProperty(Shader.PropertyToID("_Radius"), 1);
|
||||||
renderer.SetColor(_joining ? Color.white * 2 : Color.black);
|
renderer.SetColor(_joining ? Color.white * 2 : Color.black);
|
||||||
|
|
||||||
_effect = effect;
|
_effect._warpedObjectGeometry = fakePlayerGo;
|
||||||
var warpedObjectGeometry = _effect._warpedObjectGeometry.InstantiateInactive();
|
|
||||||
warpedObjectGeometry.transform.parent = transform;
|
|
||||||
warpedObjectGeometry.transform.localPosition = Vector3.zero;
|
|
||||||
warpedObjectGeometry.transform.localRotation = Quaternion.identity;
|
|
||||||
warpedObjectGeometry.transform.localScale = Vector3.one;
|
|
||||||
_effect._warpedObjectGeometry = warpedObjectGeometry;
|
|
||||||
|
|
||||||
_effect.OnWarpComplete += OnWarpComplete;
|
_effect.OnWarpComplete += OnWarpComplete;
|
||||||
|
|
||||||
warpedObjectGeometry.SetActive(true);
|
|
||||||
effectGo.SetActive(true);
|
effectGo.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,8 +49,11 @@ namespace QSB.Player.TransformSync
|
|||||||
public override void OnStartLocalPlayer() => LocalInstance = this;
|
public override void OnStartLocalPlayer() => LocalInstance = this;
|
||||||
|
|
||||||
public override void OnStopClient()
|
public override void OnStopClient()
|
||||||
|
{
|
||||||
|
if (!isLocalPlayer)
|
||||||
{
|
{
|
||||||
JoinLeaveSingularity.Create(Player, false);
|
JoinLeaveSingularity.Create(Player, false);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO : Maybe move this to a leave event...? Would ensure everything could finish up before removing the player
|
// TODO : Maybe move this to a leave event...? Would ensure everything could finish up before removing the player
|
||||||
QSBPlayerManager.OnRemovePlayer?.Invoke(Player);
|
QSBPlayerManager.OnRemovePlayer?.Invoke(Player);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user