// Remove an item public void Remove(GameObject item) { items.Remove(item); // Remove item from list inventoryUI.RemoveItem(item); PlayerAsset playerAsset = Player.instance.PlayerAsset; if (item.CompareTag("Object")) { nbItems -= 1; for (int i = 0; i < 2; i++) { if (playerAsset.ObjectsList[i] == item) { playerAsset.ObjectsList[i] = null; break; } } } else if (item.CompareTag("Weapon")) { nbWeapons -= 1; for (int i = 0; i < 2; i++) { if (playerAsset.WeaponsList[i] == item) { playerAsset.WeaponsList[i] = null; break; } } } }
public static void LoadingPlayerData(ref PlayerAsset playerData, ref UnlockedItemsAsset unlockedItems) { string path; if (Application.isEditor) { path = Path.Combine(Path.GetDirectoryName(Application.dataPath), "playerData.bin"); } else { path = Path.Combine(Application.persistentDataPath, "playerData.bin"); } Debug.Log("File path: " + path); //DEBUG //Binary save file opening Stream streamRestauration = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read); //Loading the GameSave object from the binary file Saver.PlayerSave save = (Saver.PlayerSave) new BinaryFormatter().Deserialize(streamRestauration); string test = save.playerData; string test2 = save.unlockedItems; JsonUtility.FromJsonOverwrite(save.playerData, playerData); JsonUtility.FromJsonOverwrite(save.unlockedItems, unlockedItems); streamRestauration.Close(); //GameObject.FindGameObjectWithTag("SoundManager").GetComponent<SoundManager>().ChangeBO(.GetComponent<Player>().PlayerAsset.Floor + 2); }
public void BuildContent(int num)//初始化,在Grid创建中调用 { specialitem1 = specialitem2 = 1; contents = new content[num]; TotalNum = num; Total = num; Nothing = Total - ResourceNum - ElectricNum - FirstAidNum - MResourceNum - MElectricNum - MFirstAidNum - ChipNum - IncidentNum - 2 - 2;//2为起点加终点+2个specialitem Resource = ResourceNum; Electric = ElectricNum; FirstAid = FirstAidNum; MResource = MResourceNum; MElectric = MElectricNum; MFirstAid = MFirstAidNum; Incident = IncidentNum; Chip = ChipNum; grid = GameObject.FindWithTag("Grid").GetComponent <HexGrid>(); asset = GameObject.FindWithTag("Player").GetComponent <PlayerAsset>(); solve = GameObject.FindWithTag("Player").GetComponent <SolveInput>(); Portal = 9 * 20 + 8; si1image = 16 * 20 + 12; si2image = 6 * 20 + 17; printlist = new int[num]; MonsterNum = new int[num]; for (int i = 0; i < MonsterNum.Length; i++) { MonsterNum[i] = 1; } portalsee = sisee = false; }
private void OnAssetUpdatedByClient(NetMessagePlayerAssets netMessage, INetworkInterfaceConnection source) { if (netMessage.Assets == null || netMessage.Assets.Length == 0) { return; } UpdateOrCreateLocalAssets(netMessage); List <PlayerAsset> assetsToSend = new List <PlayerAsset>(netMessage.Assets.Length); for (int i = 0; i < netMessage.Assets.Length; i++) { PlayerAsset playerAsset = GetAsset(netMessage.Assets[i].Guid); if (playerAsset != null) { assetsToSend.Add(playerAsset); } } List <INetworkInterfaceConnection> clientsToSendTo = _session.Connections.ToList(); clientsToSendTo.Remove(source); SendPlayerAssetsToClients(assetsToSend.ToArray(), clientsToSendTo.ToArray()); }
public Data(PlayerAsset playerAsset) { Guid = playerAsset.Guid; Type = playerAsset.Type; Author = playerAsset.Author; UtcCreationTime = playerAsset.UtcCreationTime; AssetData = playerAsset.Serialize(); }
protected override void PublishAssetChangesInternal(PlayerAsset playerAsset) { if (_session == null) { return; } SendPlayerAssetsToClients(new PlayerAsset[] { playerAsset }, _session.Connections.ToArray()); }
private void OnAssetCreated(PlayerAsset asset) { // If the newly created asset matches our guid, assign it! // This generally occurs when the simulation mentions a doodle BEFORE our PlayerAssetManager finishes downloading the asset its creator. if (_doodleAssetGuid.Get() == asset.Guid && asset is PlayerDoodleAsset doodleAsset) { _doodleAssetGuid.ClearDirty(); _doodleAsset.Set(doodleAsset); } }
public HttpResponseMessage GetPlayerAsset() { string steamId = User.Identity.Name; int playerId = PlayerDataSql.PlayerId(steamId); PlayerAsset playerAsset = PlayerDataSql.GetPlayerAsset(playerId); string serializedElement = JsonConvert.SerializeObject(playerAsset); var response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent(serializedElement); return(response); }
/// <summary> /// Create a brand new asset /// </summary> private PlayerAsset CreateAsset(Type type) { if (AssetTypeToEnum(type) == PlayerAssetType.Invalid) { throw new Exception($"Unsupported asset type {type.GetPrettyName()}."); } PlayerAsset asset = CreateAssetInternal(Guid.NewGuid(), AssetTypeToEnum(type)); asset.Author = Environment.UserName; asset.UtcCreationTime = DateTime.UtcNow; return(asset); }
// Add a new item. If there is enough room we // return true. Else we return false. public bool Add(GameObject item) { if (item.CompareTag("Object") && item.GetComponent <Object>().ObjectsAsset.passive) { item.GetComponent <Object>().PassiveChange(); return(true); } // Check if out of space if (items.Count < space) { PlayerAsset playerAsset = Player.instance.PlayerAsset; if (item.CompareTag("Object") && nbItems != 2) { nbItems += 1; items.Add(item); // Add item to list InventoryUI.instance.AddItem(item); for (int i = 0; i < 2; i++) { if (playerAsset.ObjectsList[i] == null || GetComponent <Player>().PlayerAsset.ObjectsList[i] == item) { playerAsset.ObjectsList[i] = item; break; } } return(true); } if (item.CompareTag("Weapon") && nbWeapons != 2) { nbWeapons += 1; items.Add(item); // Add item to list InventoryUI.instance.AddItem(item); for (int i = 0; i < 2; i++) { if (playerAsset.WeaponsList[i] == null || playerAsset.WeaponsList[i] == item) { playerAsset.WeaponsList[i] = item; break; } } return(true); } } return(false); }
/// <summary> /// Create an asset using an existing meta data set (Can be useful when an online player shares an asset he/she has created before) /// </summary> protected PlayerAsset CreateAssetInternal(Guid guid, PlayerAssetType assetType) { if (assetType == PlayerAssetType.Invalid) { throw new Exception($"Unsupported asset type."); } PlayerAsset asset = (PlayerAsset)Activator.CreateInstance(AssetTypeFromEnum(assetType), guid); _assetMap.Add(asset.Guid, asset); AssetCreated?.InvokeCatchException(asset); return(asset); }
protected override void PublishAssetChangesInternal(PlayerAsset playerAsset) { if (_session == null) { return; } NetMessagePlayerAssets.Data[] asset = new NetMessagePlayerAssets.Data[] { new NetMessagePlayerAssets.Data(playerAsset) }; // send message _session.BeginLargeDataTransfer(new NetMessagePlayerAssets() { Assets = asset }, _session.ServerConnection, "Doodle"); }
protected void UpdateOrCreateLocalAssets(NetMessagePlayerAssets netMessage) { foreach (var item in netMessage.Assets) { if (item.Type == PlayerAssetType.Invalid) { logDiscardReason($"Invalid asset type"); continue; } if (item.Guid == Guid.Empty) { logDiscardReason($"Invalid guid"); continue; } if (item.AssetData == null) { logDiscardReason($"Null asset data"); continue; } PlayerAsset asset = GetAsset(item.Guid); if (asset == null) { asset = CreateAssetInternal(item.Guid, item.Type); } asset.Author = item.Author; asset.UtcCreationTime = item.UtcCreationTime; asset.Load(item.AssetData); } void logDiscardReason(string reason) { Log.Warning($"{reason} in {nameof(NetMessagePlayerAssets)}. Discarding asset."); } }
protected abstract void PublishAssetChangesInternal(PlayerAsset playerAsset);
//init playerData and turn off the toggle and ExPoints private void Start() { PlayerData = ScriptableObject.CreateInstance <PlayerAsset>(); }
public static void SavePlayerData(PlayerAsset playerData, UnlockedItemsAsset unlockedItems) { Saving(new PlayerSave(playerData, unlockedItems)); }
private void Start() { player = Player.instance.PlayerAsset; }
protected override void PublishAssetChangesInternal(PlayerAsset playerAsset) { } // nothing to do
public PlayerSave(PlayerAsset playerData, UnlockedItemsAsset unlockedItems) { this.playerData = JsonUtility.ToJson(playerData); this.unlockedItems = JsonUtility.ToJson(unlockedItems); }