using Sandbox; namespace Sasalka; public class ItemSpawner : Component { [Property] public bool SpawnTestItems { get; set; } = false; [Property] public GameObject ItemPrefab { get; set; } protected override void OnStart() { if (!Network.IsOwner || !SpawnTestItems) return; GameTask.DelaySeconds(2f).ContinueWith(_ => SpawnItems()); } private void SpawnItems() { if (ItemPrefab == null) { // Log.Warning("ItemPrefab не установлен!"); return; } // Log.Info("Спавним тестовые предметы..."); var player = Dedugan.Local; if (player?.Transform == null) return; var playerPos = player.WorldPosition; var spawnRadius = 5f; var itemCount = 5; for (int i = 0; i < itemCount; i++) { var angle = (float)i / itemCount * 360f * MathF.PI / 180f; var offset = new Vector3( MathF.Cos(angle) * spawnRadius, 0, MathF.Sin(angle) * spawnRadius ); var position = playerPos + offset; var item = ItemPrefab.Clone(position); // Добавляем случайный поворот item.WorldRotation = Rotation.Random; // Спавним в сети item.NetworkSpawn(); // Log.Info($"Предмет создан в позиции {position}"); } } }