using NewHorizons.External.Modules.Audio;
using NewHorizons.Utility;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace NewHorizons.External.Modules.Volumes
{
[JsonObject]
public class VolumesModule
{
///
/// Add audio volumes to this planet.
///
public AudioVolumeInfo[] audioVolumes;
///
/// Add destruction volumes to this planet.
///
public DestructionVolumeInfo[] destructionVolumes;
///
/// Add fluid volumes to this planet.
///
public FluidVolumeInfo[] fluidVolumes;
///
/// Add hazard volumes to this planet.
///
public HazardVolumeInfo[] hazardVolumes;
///
/// Add interference volumes to this planet.
///
public VolumeInfo[] interferenceVolumes;
///
/// Add insulating volumes to this planet. These will stop electricty hazard volumes from affecting you (just like the jellyfish).
///
public VolumeInfo[] insulatingVolumes;
///
/// Add light source volumes to this planet. These will activate rafts and other light detectors.
///
public VolumeInfo[] lightSourceVolumes;
///
/// Add map restriction volumes to this planet.
///
public VolumeInfo[] mapRestrictionVolumes;
///
/// Add notification volumes to this planet.
///
public NotificationVolumeInfo[] notificationVolumes;
///
/// Add oxygen volumes to this planet.
///
public OxygenVolumeInfo[] oxygenVolumes;
///
/// Add probe-specific volumes to this planet.
///
public ProbeModule probe;
///
/// Add reference frame blocker volumes to this planet. These will stop the player from seeing/targeting any reference frames.
///
public VolumeInfo[] referenceFrameBlockerVolumes;
///
/// Add triggers that reveal parts of the ship log on this planet.
///
public RevealVolumeInfo[] revealVolumes;
///
/// Add reverb volumes to this planet. Great for echoes in caves.
///
public VolumeInfo[] reverbVolumes;
///
/// Add ruleset volumes to this planet.
///
public RulesetModule rulesets;
///
/// Add speed trap volumes to this planet. Slows down the player when they enter this volume.
///
public SpeedTrapVolumeInfo[] speedTrapVolumes;
///
/// Add visor effect volumes to this planet.
///
public VisorEffectModule visorEffects;
///
/// Add zero-gravity volumes to this planet.
/// Good for surrounding planets which are using a static position to stop the player being pulled away.
///
public PriorityVolumeInfo[] zeroGravityVolumes;
///
/// Entering this volume will load a new solar system.
///
public ChangeStarSystemVolumeInfo[] solarSystemVolume;
///
/// Enter this volume to be sent to the end credits scene
///
public LoadCreditsVolumeInfo[] creditsVolume;
}
}