/// <summary> /// Method to create cargo plane that drops our custom airdrops /// </summary> /// <param name="supplySignal">Supply signal that has initiated the custom airdrop (used for position & to cancel default airdrop)</param> /// <param name="cargoType">The type of cargo to drop (custom airdrop)</param> private void CallSpecializedCargoPlane(SupplySignal supplySignal, CargoType cargoType) { // Stop the normal cargo plane var cargoPlane = supplySignal.GetComponent <CargoPlane>(); if (cargoPlane == null) { Interface.Oxide.LogDebug("Cargo plane not found"); } NextTick(() => { cargoPlane?.Kill(); }); // REMOVE WHEN FINISHED<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< var planes = UnityEngine.Object.FindObjectsOfType <CargoPlane>().ToList(); Interface.Oxide.LogDebug($"Found {planes?.Count ?? 0} active cargo planes"); foreach (var plane in planes) { Interface.Oxide.LogDebug($"Killing plane: {plane.name}"); NextTick(() => { plane?.Kill(); }); } // Service to create custom airdrops (type defined in constructor) var vehicleDroppingService = new VehicleDroppingService(cargoType); // Put the special cargo plane into action vehicleDroppingService.CallPlane(supplySignal.transform.position); }
void OnWeaponThrown(BasePlayer player, BaseEntity entity) { if (entity is SupplySignal) { timer.Once(2.5f, () => { SupplySignal signal = entity as SupplySignal; Vector3 location = signal.GetEstimatedWorldPosition(); ConsoleSystem.Broadcast("chat.add", 0, string.Format("<color=orange>{0}:</color> {1}", "SERVER (Supply Drop)", "Location: X: " + location.x + " Y: " + location.y + " Z: " + location.z)); }); } }
void OnExplosiveThrown(BasePlayer player, SupplySignal signal) { if (!configData.alerts.supplySignal) { return; } if (player == null || signal == null) { return; } SendMsg(Lang("SupplySignal", player.UserIDString, player.displayName, GetLocation(player.transform.position, player, null))); }
private void HandleSupplySignal(BasePlayer player, SupplySignal entity) { if (_configData.SupplyDropSettings.Enabled) { NextTick(() => { if (player != null && entity != null) { if (_configData.GlobalSettings.LoggingEnabled) { Puts($"SupplySignal was thrown by {player.displayName.Replace("*", "*")} at {GetGridPosition(entity.transform.position)}"); } SendMessage(Lang("SupplySignal", null, player.displayName.Replace("*", "*"), GetGridPosition(entity.transform.position)), _configData.SupplyDropSettings.WebhookURL); } }); } }
void OnExplosiveDropped(BasePlayer player, SupplySignal signal) { if (!configData.Alerts.SupplySignal) { return; } if (player == null || signal == null) { return; } var pos = player.transform.position; string msg = Lang("SupplySignal", player.UserIDString, player.displayName, GetLocation(pos, player, null)); Server.Broadcast(msg); if (configData.Misc.LogToConsole) { Puts(msg); } if (configData.Misc.LogToFile) { LogToFile("log", $"[{DateTime.Now.ToString("HH:mm:ss")}] {msg}", this); } }
private void OnExplosiveDropped(BasePlayer player, SupplySignal entity) { HandleSupplySignal(player, entity); }
void OnExplosiveDropped(BasePlayer player, SupplySignal signal) => OnExplosiveThrown(player, signal);