Rectangular Zones

Would it be possible to add support for rectangular zones? i.e setting "size" and "rotation" instead of "radius" for the zone.

Monuments such as Launch Site and Harbour would benefit from this!

Unfortuantely no, as Zone Domes does NOT support that.

uHMSmm8geFEp1bR.jpg FastBurst

Unfortuantely no, as Zone Domes does NOT support that.

If a user was willing to accept ZoneDomes would never be drawn over a rectangular zone, would it be possible?

bQQYkfjkGOGZBcK.jpg FastBurst

Unfortuantely no, as Zone Domes does NOT support that.

For what it's worth, I looked at modifying the code to support rectangular zones, specifically launch.

This works absolutely fine. I have made Radius a nullable parameter, so can check that to see if a Dome should be drawn or not:

 

if (monument.name.Contains("launch_site_1", CompareOptions.IgnoreCase))
{
	string friendlyname = monument.displayPhrase.english;
	string ID = "launch_site";

	if (config.LaunchSite.Enabled)
	{
		List<String> messages = new List<String>();
		messages.Add("name");
		messages.Add(friendlyname);
		messages.Add("enter_message");
		messages.Add(configData.Location.Monuments.LaunchSite.EnterMessage);
		messages.Add("leave_message");
		messages.Add(configData.Location.Monuments.LaunchSite.LeaveMessage);

		if (configData.Location.Monuments.LaunchSite.Radius.HasValue)
		{
			messages.Add("radius");
			messages.Add(Convert.ToInt32(configData.Location.Monuments.LaunchSite.Radius.Value).ToString());
		} else
		{
			messages.Add("size");
			messages.Add(configData.Location.Monuments.LaunchSite.Size.ToString());
			messages.Add("rotation");
			messages.Add(monument.transform.rotation.eulerAngles.y.ToString());
		}

		ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages.ToArray(), monument.transform.position);

		if (configData.Location.Monuments.LaunchSite.ZoneFlags != null)
			foreach (var flag in configData.Location.Monuments.LaunchSite.ZoneFlags)
				ZoneManager?.CallHook("AddFlag", ID, flag);

		if (configData.ZoneOption.UseTruePVE)
			TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.LaunchSite.TruePVERules);
		else if (configData.ZoneOption.UseNextGenPVE)
			NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.LaunchSite.NextGenPVERules);

		if (configData.ZoneOption.UseZoneDomes && configData.Location.Monuments.LaunchSite.Radius.HasValue)
		{
			ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
			ZoneDomes?.CallHook("AddNewDome", player, ID);
		} else
		{
			Puts("Not drawing a ZoneDome over Launch Site as configured to be rectangle");
		}
	}
	else
	{
		ZoneManager?.CallHook("EraseZone", ID);

		if (configData.ZoneOption.UseTruePVE)
			TruePVE?.CallHook("RemoveMapping", ID);
		else if (configData.ZoneOption.UseNextGenPVE)
			NextGenPVE?.CallHook("RemoveMapping", ID);

		if (configData.ZoneOption.UseZoneDomes)
			ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
	}
	continue;
}