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.WorldSync;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
namespace QSB.Player
|
||||
@ -24,42 +26,46 @@ namespace QSB.Player
|
||||
{
|
||||
DebugLog.DebugWrite($"WARP {_player.TransformSync}");
|
||||
|
||||
transform.parent = _player.Body.transform.parent;
|
||||
transform.localPosition = _player.Body.transform.localPosition;
|
||||
transform.localRotation = _player.Body.transform.localRotation;
|
||||
transform.localScale = _player.Body.transform.localScale;
|
||||
var playerGo = _player.Body;
|
||||
transform.parent = playerGo.transform.parent;
|
||||
transform.localPosition = playerGo.transform.localPosition;
|
||||
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.localPosition = Vector3.zero;
|
||||
effectGo.transform.localRotation = Quaternion.identity;
|
||||
effectGo.transform.localScale = Vector3.one;
|
||||
|
||||
var effect = effectGo.GetComponent<SingularityWarpEffect>();
|
||||
var curve = AnimationCurve.EaseInOut(0, 0, .2f, 1);
|
||||
effect._singularity._creationCurve = curve;
|
||||
effect._singularity._destructionCurve = curve;
|
||||
_effect = effectGo.GetComponent<SingularityWarpEffect>();
|
||||
_effect.enabled = true;
|
||||
_effect._singularity.enabled = true;
|
||||
|
||||
_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>();
|
||||
renderer.SetMaterialProperty(Shader.PropertyToID("_DistortFadeDist"), 3);
|
||||
renderer.SetMaterialProperty(Shader.PropertyToID("_MassScale"), _joining ? -1 : 1);
|
||||
renderer.SetMaterialProperty(Shader.PropertyToID("_MaxDistortRadius"), 10);
|
||||
renderer.SetMaterialProperty(Shader.PropertyToID("_Radius"), 1);
|
||||
// renderer.SetMaterialProperty(Shader.PropertyToID("_DistortFadeDist"), 3);
|
||||
// renderer.SetMaterialProperty(Shader.PropertyToID("_MassScale"), _joining ? -1 : 1);
|
||||
// renderer.SetMaterialProperty(Shader.PropertyToID("_MaxDistortRadius"), 10);
|
||||
// renderer.SetMaterialProperty(Shader.PropertyToID("_Radius"), 1);
|
||||
renderer.SetColor(_joining ? Color.white * 2 : Color.black);
|
||||
|
||||
_effect = effect;
|
||||
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._warpedObjectGeometry = fakePlayerGo;
|
||||
_effect.OnWarpComplete += OnWarpComplete;
|
||||
|
||||
warpedObjectGeometry.SetActive(true);
|
||||
effectGo.SetActive(true);
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,10 @@ namespace QSB.Player.TransformSync
|
||||
|
||||
public override void OnStopClient()
|
||||
{
|
||||
JoinLeaveSingularity.Create(Player, false);
|
||||
if (!isLocalPlayer)
|
||||
{
|
||||
JoinLeaveSingularity.Create(Player, false);
|
||||
}
|
||||
|
||||
// TODO : Maybe move this to a leave event...? Would ensure everything could finish up before removing the player
|
||||
QSBPlayerManager.OnRemovePlayer?.Invoke(Player);
|
||||
|
Loading…
x
Reference in New Issue
Block a user