private void SpawnAlwaysContainedItems() { if (SpawnWithId.Length > 0) { string[] splitIds = SpawnWithId.Split(','); foreach (string id in splitIds) { ItemPrefab prefab = ItemPrefab.Prefabs.Find(m => m.Identifier == id); if (prefab != null && Inventory != null && Inventory.CanBePut(prefab)) { bool isEditor = false; #if CLIENT isEditor = Screen.Selected == GameMain.SubEditorScreen; #endif if (!isEditor && (Entity.Spawner == null || Entity.Spawner.Removed) && GameMain.NetworkMember == null) { var spawnedItem = new Item(prefab, Vector2.Zero, null); Inventory.TryPutItem(spawnedItem, null, spawnedItem.AllowedSlots, createNetworkEvent: false); alwaysContainedItemsSpawned = true; } else { IsActive = true; Entity.Spawner?.AddToSpawnQueue(prefab, Inventory, spawnIfInventoryFull: false, onSpawned: (Item item) => { alwaysContainedItemsSpawned = true; }); } } } } }
private void SpawnAlwaysContainedItems() { if (SpawnWithId.Length > 0) { ItemPrefab prefab = ItemPrefab.Prefabs.Find(m => m.Identifier == SpawnWithId); if (prefab != null && Inventory != null && Inventory.CanBePut(prefab)) { Entity.Spawner?.AddToSpawnQueue(prefab, Inventory, spawnIfInventoryFull: false); } } }