private bool LoadPlayerFromDisk() { try { ZPackage zpackage = this.LoadPlayerDataFromDisk(); if (zpackage == null) { ZLog.LogWarning((object)"No player data"); return(false); } int version = zpackage.ReadInt(); if (!Version.IsPlayerVersionCompatible(version)) { ZLog.Log((object)"Player data is not compatible, ignoring"); return(false); } if (version >= 28) { this.m_playerStats.m_kills = zpackage.ReadInt(); this.m_playerStats.m_deaths = zpackage.ReadInt(); this.m_playerStats.m_crafts = zpackage.ReadInt(); this.m_playerStats.m_builds = zpackage.ReadInt(); } this.m_worldData.Clear(); int num = zpackage.ReadInt(); for (int index = 0; index < num; ++index) { long key = zpackage.ReadLong(); PlayerProfile.WorldPlayerData worldPlayerData = new PlayerProfile.WorldPlayerData(); worldPlayerData.m_haveCustomSpawnPoint = zpackage.ReadBool(); worldPlayerData.m_spawnPoint = zpackage.ReadVector3(); worldPlayerData.m_haveLogoutPoint = zpackage.ReadBool(); worldPlayerData.m_logoutPoint = zpackage.ReadVector3(); if (version >= 30) { worldPlayerData.m_haveDeathPoint = zpackage.ReadBool(); worldPlayerData.m_deathPoint = zpackage.ReadVector3(); } worldPlayerData.m_homePoint = zpackage.ReadVector3(); if (version >= 29 && zpackage.ReadBool()) { worldPlayerData.m_mapData = zpackage.ReadByteArray(); } this.m_worldData.Add(key, worldPlayerData); } this.m_playerName = zpackage.ReadString(); this.m_playerID = zpackage.ReadLong(); this.m_startSeed = zpackage.ReadString(); this.m_playerData = !zpackage.ReadBool() ? (byte[])null : zpackage.ReadByteArray(); } catch (Exception ex) { ZLog.LogWarning((object)("Exception while loading player profile:" + this.m_filename + " , " + ex.ToString())); } return(true); }
private PlayerProfile.WorldPlayerData GetWorldData(long worldUID) { PlayerProfile.WorldPlayerData worldPlayerData1; if (this.m_worldData.TryGetValue(worldUID, out worldPlayerData1)) { return(worldPlayerData1); } PlayerProfile.WorldPlayerData worldPlayerData2 = new PlayerProfile.WorldPlayerData(); this.m_worldData.Add(worldUID, worldPlayerData2); return(worldPlayerData2); }
public static void Deserialize(this PlayerProfile profile, ZPackage data) { Debug.Assert(data.ReadInt() <= Version.m_playerVersion); profile.m_playerStats.m_kills = data.ReadInt(); profile.m_playerStats.m_deaths = data.ReadInt(); profile.m_playerStats.m_crafts = data.ReadInt(); profile.m_playerStats.m_builds = data.ReadInt(); profile.m_worldData.Clear(); int num = data.ReadInt(); for (int i = 0; i < num; i++) { long key = data.ReadLong(); PlayerProfile.WorldPlayerData worldPlayerData = (PlayerProfile.WorldPlayerData)Activator.CreateInstance(typeof(PlayerProfile.WorldPlayerData), true); worldPlayerData.m_haveCustomSpawnPoint = data.ReadBool(); worldPlayerData.m_spawnPoint = data.ReadVector3(); worldPlayerData.m_haveLogoutPoint = data.ReadBool(); worldPlayerData.m_logoutPoint = data.ReadVector3(); worldPlayerData.m_haveDeathPoint = data.ReadBool(); worldPlayerData.m_deathPoint = data.ReadVector3(); worldPlayerData.m_homePoint = data.ReadVector3(); if (data.ReadBool()) { worldPlayerData.m_mapData = data.ReadByteArray(); } profile.m_worldData.Add(key, worldPlayerData); } profile.m_playerName = data.ReadString(); profile.m_playerID = data.ReadLong(); if (profile.m_playerID == 0L) { profile.m_playerID = Utils.GenerateUID(); } profile.m_startSeed = data.ReadString(); if (data.ReadBool()) { profile.m_playerData = data.ReadByteArray(); } }