From 287bc902fe9d915da292b077e423793fc9184df0 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Sat, 15 Jan 2022 01:54:02 -0800 Subject: [PATCH] qsb network transform child, update prefabs --- QSB/AssetBundles/network | Bin 3201 -> 3160 bytes QSB/AssetBundles/network.manifest | 12 +++--- QSB/AssetBundles/textassets.manifest | 2 +- .../TransformSync/PlayerTransformSync.cs | 2 + QSB/Syncs/QSBNetworkTransformChild.cs | 38 ++++++++++++++++++ 5 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 QSB/Syncs/QSBNetworkTransformChild.cs diff --git a/QSB/AssetBundles/network b/QSB/AssetBundles/network index 98bdb609624f02fa9beba5c81c15e959d8003787..0354333e075e48b5677b7cc0d0f5484ff1aa5a44 100644 GIT binary patch delta 3068 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 K*q;AbLl6KtHvDY> delta 3110 zcmV+>4B7M87=am(B>{nvCL#ts$N&Hg0Fh2Rf4eXZm=hAXS5MzmE(+yuqXYM4GmgFK zN1X;S>k4rs{Lc7`Zi5Zk+WQ3wTAxV&ECr&WppTfEt#8iVLPa@qn47k{2@`O1D}Mrj zH>o!xcHt2zcGG(GbBfU9+;yyHWizpwk=SU)q076I>zhz*pC@6r21j60L3u6!MUwwU ze=G;S;igAv;gr~scyKb5!n2J_o0N)Q*Z|*L@g*P-WRq%Lxiez%#u@~1X-h|MUvAvF zUsTVs6DR9wj?R9_ht4|`EneCP0TTz#-ZG>P6=0OCc}Q*04@r(|iS^KlZs&(>T(B8# zA-`#;L?a$?G3CgBb=y+FE*J=XO>P6ae=eY#D~9~dDzgjFNaDPHqR2Fd-0a${AAjX~ zh6-?GFS4rCHx8Jv1Na}ZBchB($I%{7mfN#l}F2Q)_6MjI%BNRNp(v+uiZCr5E z&!wP}&Ef!%7d5!WwQx-`A@~~xvQd!(iGgx!*OVHR%i(R4mJqeC?$b0s-A61iva15V zVwOjT6)nRlfBSZb5W|Fc(a*{g$&N_+Dvuk<+XYPssyR4UNqu8y@q3A3JbLNDqzD7zXQ^DK&rRd%#_&e;-4z>7=cK+`fxJ#HY={7gMX zTVY(Y){Ww*WlD2^PrZ*_!=@Tu$|kc6CUeZ|Ba-uh#J|yg24gxub}ZF2{Pp8yYk2_A zg_#9f``c`nDtW<-ii^4)e=j1wX=3@M5JR>asTD2c`+moy5J{GNEjZJ@OZZ3|8B%>( ztmu_f4)ZB&ax3`{S0(=s`!t#_B9eX{$hxkG(H+tk(k4Y-R0gMy1HLC9U`1$MZ9ciF zICME30Ks~FH1zdX$myOw3$UrQe=8sB1-b6HDoJogAal)s&pGd`f8XuXKIVUDy6J!v zya$eHN8x>4h{vQyn#$1Jwcm+ooLNZ!tL$v;RT17-u}H|Sx^J9a`Y-u~>CVDwm)ZuO z4?Kt}gu5!eSmRjnBCW2b!ZsBNQz<5N5SpU#9L~^HVYDY-Lb&{8E7B31IKB<}E52v% zu<|lQ#P8e(ZmF-Le+TmAYtQ8gilBTCEBf)VvIj(O`&6@yUzZ zXq8$cTcXgeo>-jLGMO6KHx|pH;Ns??(CvLq71ENvsIxTbk73@EvjH ze9%Z1hGfzC5+gV4Xumrt_n&;vFr}6S%Q|LY^Xk?b*oUV7!rtoFz+###5xtw}g8aKk zb3LdbuQ==7e^k~quo#4v_lGfJ4QvsRU0%*mA;WbJ`50gPK@a?6T^{%DamwG(^m_?m z!rA`}?M_fg=Va893r|QF2WA7g4p31y))NJ9gq|KEzN}Xx?>u4Iqknt3rdP{D+cJ=R zHjKw52uK=L)hzxM~B?|F>t`!||Ey>imKW|B~!~Twc4S&uc^n z?;5FEe+s@^Ou9!cjiW-G6nONexf)A?ThCm=$x9E0m_q8pUATBT1D3??%}~g5=R2(tg$Kf zy+-O8u?swy!m<^`$B0ivcvpWb&UiKyhB(`7x!5Sj<(dldh5fyxyevj&Uyw*348t4H zAI%we>1_jVIw>EE&EeU8&OEbSq9z`TN;>@p#>%2-ok! zD5BNB4VMyPWC1#f#ggmgwaf67i>DJ=MVq}f8bTBzk~C+Ivm^PGGq+K}$_|ucmM+7H zz_&dQn4TIml-it?R^W=><5(UIJ+%PCkp{Hf*~@^t|R#vajWV(qvmojvJ!+uFeL z$`QQmCwjJ{2Glkt$@9uwj;mpMitK@lk^jN#ws|5egtH`WdQTJcgK@olLCgG(Xk}O> zB+U#dX&KF-Du6j-LTi#xBf$54FU|?PJopBP#9wz@S(qTI6?uu6nd?#CoCyYoMS^@2U%& zq9g;Pl4W>-7m6VG2a6vz`y90Ke;2dK=SvVysa(e0S-tVpNctOX{Nwh9M>Rps_v3jtkHVI_qFps%@vph zPZjhSlZY4|p!Kvw_}Nvau@v2?-^MRma3_zcOSYJz5{u9*`bMif6sFWh6R88m5p%9I z3g&bl{|G#VC5GxOW-dQv(YIScE8ZMY;33`x6``*mu1X8*eK3Fwe@xp0GDmTvdh?9Z z(A4<0iM4nE-@4o?mAqAyAQCot-Ia@X%zb9|QV4XHEK5pj)LDPWgYIKjq`B|@Bx4(t zEi&;xhtV$vDSCtoRz^rpLNGyZyjNHB+`xuz%Z=YDU89dgeqAwSro=31#I7YxT$0#g z^lxE2tbw(RyV6RUe?vP#W6Kv8k+)=OkMQiq!Ks$_g0Prq5FmK3G|eH=Ja7rs|IUP} z=BKD&sKxDiYyGz@we$MW#zG44Htkb<5LcPuc%iT>SqX>xiQ&15xw#uKRBMP1N-4gD zR8^kCe%Xr^6&IuzRuxb`|CpRrF5cyBeZzuHky6>&{fo=je_r+<#*&BEW4cu7L>nbI zU1T(+*a?c2Y6cnhL}et6rq%{{WlKB&FI4Vp3o#^g&F_o!D>ES+ipN79+I{PDwsouGE@DKzKlI!;CX zSb&~!2t!Jde_NY}gIoLl5O(y4c8;Z1nRw7b1W^ckJ=pXI4{(dKdN*h7mmo{CD`{yv zBBjC@ZxP{QS7FGG=@72PGkO?a(pFY4{4R9sR56K_{d~-^@n9%@cnXjblb z*B$`&R6Es5X4-^D_g$^aJV>)vHm!89enW% AJOBUy diff --git a/QSB/AssetBundles/network.manifest b/QSB/AssetBundles/network.manifest index 384c021c..3569c411 100644 --- a/QSB/AssetBundles/network.manifest +++ b/QSB/AssetBundles/network.manifest @@ -1,12 +1,12 @@ ManifestFileVersion: 0 -CRC: 3225525052 +CRC: 579357437 Hashes: AssetFileHash: serializedVersion: 2 - Hash: 87f7c3f8f1dad1f9a7b628009679b8a9 + Hash: b2d68021be358d61283f066b03d4921c TypeTreeHash: serializedVersion: 2 - Hash: aea5b327f5eb025bf5354f2e56c088be + Hash: c7e0c4b68194cd411e13354a8f977a46 HashAppended: 0 ClassTypes: - Class: 1 @@ -14,9 +14,7 @@ ClassTypes: - Class: 4 Script: {instanceID: 0} - Class: 114 - Script: {fileID: -1208705890, guid: 8929207a0d76fd54a8a2a820c652720f, type: 3} -- Class: 114 - Script: {fileID: 1142416158, guid: 8929207a0d76fd54a8a2a820c652720f, type: 3} + Script: {fileID: 860895539, guid: b782d36837e164d4e87858bf8f2736c6, type: 3} - Class: 114 Script: {fileID: -790547616, guid: 27687deae413b90448366870cb0de502, type: 3} - Class: 114 @@ -35,6 +33,8 @@ ClassTypes: Script: {fileID: 677635994, guid: 27687deae413b90448366870cb0de502, type: 3} - Class: 114 Script: {fileID: 2036222940, guid: 27687deae413b90448366870cb0de502, type: 3} +- Class: 114 + Script: {fileID: -1617191155, guid: 27687deae413b90448366870cb0de502, type: 3} - Class: 115 Script: {instanceID: 0} SerializeReferenceClassIdentifiers: [] diff --git a/QSB/AssetBundles/textassets.manifest b/QSB/AssetBundles/textassets.manifest index defacd49..0cc55be0 100644 --- a/QSB/AssetBundles/textassets.manifest +++ b/QSB/AssetBundles/textassets.manifest @@ -3,7 +3,7 @@ CRC: 3102539871 Hashes: AssetFileHash: serializedVersion: 2 - Hash: 520c501e95916cc8415cccee47d482d5 + Hash: a82172ddab4ffc78bd7c16996c5f9328 TypeTreeHash: serializedVersion: 2 Hash: 5ad585dd02dfb5016c0dad519eab8f49 diff --git a/QSB/Player/TransformSync/PlayerTransformSync.cs b/QSB/Player/TransformSync/PlayerTransformSync.cs index 78ed8c93..b4cd5643 100644 --- a/QSB/Player/TransformSync/PlayerTransformSync.cs +++ b/QSB/Player/TransformSync/PlayerTransformSync.cs @@ -20,6 +20,7 @@ namespace QSB.Player.TransformSync private Transform _visibleCameraRoot; private Transform _networkCameraRoot => gameObject.transform.GetChild(0); + // todo? stick root might be the thing that moves instead of roasting system. one of them doesn't, i just don't know which private Transform _visibleRoastingSystem; private Transform _networkRoastingSystem => gameObject.transform.GetChild(1); private Transform _networkStickRoot => _networkRoastingSystem.GetChild(0); @@ -273,6 +274,7 @@ namespace QSB.Player.TransformSync return; } + Popcron.Gizmos.Cube(ReferenceTransform.TransformPoint(_networkRoastingSystem.position), ReferenceTransform.TransformRotation(_networkRoastingSystem.rotation), Vector3.one / 4, Color.red); Popcron.Gizmos.Cube(ReferenceTransform.TransformPoint(_networkRoastingSystem.position), ReferenceTransform.TransformRotation(_networkRoastingSystem.rotation), Vector3.one / 4, Color.red); Popcron.Gizmos.Cube(ReferenceTransform.TransformPoint(_networkStickPivot.position), ReferenceTransform.TransformRotation(_networkStickPivot.rotation), Vector3.one / 4, Color.red); Popcron.Gizmos.Cube(ReferenceTransform.TransformPoint(_networkStickTip.position), ReferenceTransform.TransformRotation(_networkStickTip.rotation), Vector3.one / 4, Color.red); diff --git a/QSB/Syncs/QSBNetworkTransformChild.cs b/QSB/Syncs/QSBNetworkTransformChild.cs new file mode 100644 index 00000000..c65544fc --- /dev/null +++ b/QSB/Syncs/QSBNetworkTransformChild.cs @@ -0,0 +1,38 @@ +using Mirror; +using QSB.Utility; +using UnityEngine; + +namespace QSB.Syncs +{ + public class QSBNetworkTransformChild : QSBNetworkBehaviour + { + public Transform Target; + + protected override float SendInterval => 0.05f; + + protected Vector3 _prevPosition; + protected Quaternion _prevRotation; + + protected override void UpdatePrevData() + { + _prevPosition = Target.localPosition; + _prevRotation = Target.localRotation; + } + + protected override bool HasChanged() => + Vector3.Distance(Target.localPosition, _prevPosition) > 1E-05f || + Quaternion.Angle(Target.localRotation, _prevRotation) > 1E-05f; + + protected override void Serialize(NetworkWriter writer, bool initialState) + { + writer.Write(Target.localPosition); + writer.Write(Target.localRotation); + } + + protected override void Deserialize(NetworkReader reader, bool initialState) + { + Target.localPosition = reader.ReadVector3(); + Target.localRotation = reader.ReadQuaternion(); + } + } +}