diff options
Diffstat (limited to 'Valheim_v202102/Valheim/assembly_valheim/LocationProxy.cs')
-rw-r--r-- | Valheim_v202102/Valheim/assembly_valheim/LocationProxy.cs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Valheim_v202102/Valheim/assembly_valheim/LocationProxy.cs b/Valheim_v202102/Valheim/assembly_valheim/LocationProxy.cs new file mode 100644 index 0000000..2ff2833 --- /dev/null +++ b/Valheim_v202102/Valheim/assembly_valheim/LocationProxy.cs @@ -0,0 +1,43 @@ +using UnityEngine; + +public class LocationProxy : MonoBehaviour +{ + private GameObject m_instance; + + private ZNetView m_nview; + + private void Awake() + { + m_nview = GetComponent<ZNetView>(); + SpawnLocation(); + } + + public void SetLocation(string location, int seed, bool spawnNow, int pgw) + { + int stableHashCode = location.GetStableHashCode(); + m_nview.GetZDO().Set("location", stableHashCode); + m_nview.GetZDO().Set("seed", seed); + m_nview.GetZDO().SetPGWVersion(pgw); + if (spawnNow) + { + SpawnLocation(); + } + } + + private bool SpawnLocation() + { + int @int = m_nview.GetZDO().GetInt("location"); + int int2 = m_nview.GetZDO().GetInt("seed"); + if (@int == 0) + { + return false; + } + m_instance = ZoneSystem.instance.SpawnProxyLocation(@int, int2, base.transform.position, base.transform.rotation); + if (m_instance == null) + { + return false; + } + m_instance.transform.SetParent(base.transform, worldPositionStays: true); + return true; + } +} |