mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Merge branch 'dev' into better-comets
This commit is contained in:
commit
4bac76b0bb
2
.github/workflows/docs_build.yml
vendored
2
.github/workflows/docs_build.yml
vendored
@ -12,7 +12,7 @@ on:
|
||||
branches: [main]
|
||||
paths:
|
||||
- docs/**
|
||||
- NewHorizons/Schemas/*.xsd
|
||||
- NewHorizons/Schemas/*
|
||||
|
||||
env:
|
||||
URL_PREFIX: '/'
|
||||
|
||||
7
.github/workflows/release_build.yml
vendored
7
.github/workflows/release_build.yml
vendored
@ -35,13 +35,6 @@ jobs:
|
||||
with:
|
||||
artifact_name: NewHorizons-Schemas-Release
|
||||
secrets: inherit
|
||||
Update_Docs:
|
||||
name: 'Update Docs'
|
||||
needs: Build
|
||||
if: ${{ needs.Build.outputs.schemas_changed == 'true' && github.ref == 'refs/heads/main' }} # Same thing with docs
|
||||
uses: './.github/workflows/docs_build.yml'
|
||||
with:
|
||||
schemas_artifact: NewHorizons-Schemas-Debug
|
||||
Update_Release:
|
||||
name: 'Create/Update Release Asset'
|
||||
needs: Build
|
||||
|
||||
21
NewHorizons/Builder/Props/Audio/AudioSourceBuilder.cs
Normal file
21
NewHorizons/Builder/Props/Audio/AudioSourceBuilder.cs
Normal file
@ -0,0 +1,21 @@
|
||||
using NewHorizons.External.Modules.Props.Audio;
|
||||
using NewHorizons.Utility;
|
||||
using OWML.Common;
|
||||
using UnityEngine;
|
||||
|
||||
namespace NewHorizons.Builder.Props.Audio
|
||||
{
|
||||
public static class AudioSourceBuilder
|
||||
{
|
||||
public static GameObject Make(GameObject planetGO, Sector sector, AudioSourceInfo info, IModBehaviour mod)
|
||||
{
|
||||
var owAudioSource = GeneralAudioBuilder.Make(planetGO, sector, info, mod);
|
||||
|
||||
owAudioSource.SetTrack(info.track.ConvertToOW());
|
||||
|
||||
owAudioSource.gameObject.SetActive(true);
|
||||
|
||||
return owAudioSource.gameObject;
|
||||
}
|
||||
}
|
||||
}
|
||||
44
NewHorizons/Builder/Props/Audio/GeneralAudioBuilder.cs
Normal file
44
NewHorizons/Builder/Props/Audio/GeneralAudioBuilder.cs
Normal file
@ -0,0 +1,44 @@
|
||||
using NewHorizons.External.Modules.Props.Audio;
|
||||
using NewHorizons.Utility.Files;
|
||||
using NewHorizons.Utility.OuterWilds;
|
||||
using OWML.Common;
|
||||
using UnityEngine;
|
||||
|
||||
namespace NewHorizons.Builder.Props.Audio
|
||||
{
|
||||
public static class GeneralAudioBuilder
|
||||
{
|
||||
public static AnimationCurve CustomCurve => new(
|
||||
new Keyframe(0.0333f, 1f, -30.012f, -30.012f, 0.3333f, 0.3333f),
|
||||
new Keyframe(0.0667f, 0.5f, -7.503f, -7.503f, 0.3333f, 0.3333f),
|
||||
new Keyframe(0.1333f, 0.25f, -1.8758f, -1.8758f, 0.3333f, 0.3333f),
|
||||
new Keyframe(0.2667f, 0.125f, -0.4689f, -0.4689f, 0.3333f, 0.3333f),
|
||||
new Keyframe(0.5333f, 0.0625f, -0.1172f, -0.1172f, 0.3333f, 0.3333f),
|
||||
new Keyframe(1f, 0f, -0.0333f, -0.0333f, 0.3333f, 0.3333f)
|
||||
);
|
||||
|
||||
public static OWAudioSource Make(GameObject planetGO, Sector sector, BaseAudioInfo info, IModBehaviour mod)
|
||||
{
|
||||
var signalGO = GeneralPropBuilder.MakeNew($"{(string.IsNullOrEmpty(info.rename) ? "AudioSource" : info.rename)}", planetGO, sector, info);
|
||||
signalGO.layer = Layer.AdvancedEffectVolume;
|
||||
|
||||
var source = signalGO.AddComponent<AudioSource>();
|
||||
var owAudioSource = signalGO.AddComponent<OWAudioSource>();
|
||||
owAudioSource._audioSource = source;
|
||||
|
||||
source.loop = true;
|
||||
source.minDistance = info.minDistance;
|
||||
source.maxDistance = info.maxDistance;
|
||||
source.velocityUpdateMode = AudioVelocityUpdateMode.Fixed;
|
||||
source.rolloffMode = AudioRolloffMode.Custom;
|
||||
source.spatialBlend = 1f;
|
||||
source.volume = info.volume;
|
||||
source.dopplerLevel = 0;
|
||||
|
||||
source.SetCustomCurve(AudioSourceCurveType.CustomRolloff, CustomCurve);
|
||||
AudioUtilities.SetAudioClip(owAudioSource, info.audio, mod);
|
||||
|
||||
return owAudioSource;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -7,14 +7,12 @@ using OWML.Common;
|
||||
using OWML.Utils;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using NewHorizons.External.Modules.Props.Audio;
|
||||
|
||||
|
||||
namespace NewHorizons.Builder.Props
|
||||
namespace NewHorizons.Builder.Props.Audio
|
||||
{
|
||||
public static class SignalBuilder
|
||||
{
|
||||
private static AnimationCurve _customCurve = null;
|
||||
|
||||
private static Dictionary<SignalName, string> _customSignalNames;
|
||||
|
||||
private static Dictionary<SignalFrequency, string> _customFrequencyNames;
|
||||
@ -56,7 +54,7 @@ namespace NewHorizons.Builder.Props
|
||||
public static SignalFrequency AddFrequency(string str)
|
||||
{
|
||||
if (_customFrequencyNames == null) Init();
|
||||
|
||||
|
||||
var freq = CollectionUtilities.KeyByValue(_customFrequencyNames, str);
|
||||
if (freq != default) return freq;
|
||||
|
||||
@ -74,7 +72,7 @@ namespace NewHorizons.Builder.Props
|
||||
NumberOfFrequencies = EnumUtils.GetValues<SignalFrequency>().Length;
|
||||
|
||||
// This stuff happens after the signalscope is Awake so we have to change the number of frequencies now
|
||||
GameObject.FindObjectOfType<Signalscope>()._strongestSignals = new AudioSignal[NumberOfFrequencies + 1];
|
||||
Object.FindObjectOfType<Signalscope>()._strongestSignals = new AudioSignal[NumberOfFrequencies + 1];
|
||||
|
||||
return freq;
|
||||
}
|
||||
@ -90,7 +88,7 @@ namespace NewHorizons.Builder.Props
|
||||
public static SignalName AddSignalName(string str)
|
||||
{
|
||||
if (_customSignalNames == null) Init();
|
||||
|
||||
|
||||
var name = CollectionUtilities.KeyByValue(_customSignalNames, str);
|
||||
if (name != default) return name;
|
||||
|
||||
@ -110,14 +108,10 @@ namespace NewHorizons.Builder.Props
|
||||
return name;
|
||||
}
|
||||
|
||||
public static GameObject Make(GameObject planetGO, Sector sector, SignalModule.SignalInfo info, IModBehaviour mod)
|
||||
public static GameObject Make(GameObject planetGO, Sector sector, SignalInfo info, IModBehaviour mod)
|
||||
{
|
||||
var signalGO = GeneralPropBuilder.MakeNew($"Signal_{info.name}", planetGO, sector, info);
|
||||
signalGO.layer = Layer.AdvancedEffectVolume;
|
||||
|
||||
var source = signalGO.AddComponent<AudioSource>();
|
||||
var owAudioSource = signalGO.AddComponent<OWAudioSource>();
|
||||
owAudioSource._audioSource = source;
|
||||
var owAudioSource = GeneralAudioBuilder.Make(planetGO, sector, info, mod);
|
||||
var signalGO = owAudioSource.gameObject;
|
||||
|
||||
var audioSignal = signalGO.AddComponent<AudioSignal>();
|
||||
audioSignal._owAudioSource = owAudioSource;
|
||||
@ -137,36 +131,11 @@ namespace NewHorizons.Builder.Props
|
||||
audioSignal._identificationDistance = info.identificationRadius;
|
||||
audioSignal._canBePickedUpByScope = true;
|
||||
audioSignal._outerFogWarpVolume = planetGO.GetComponentInChildren<OuterFogWarpVolume>(); // shouldn't break non-bramble signals
|
||||
|
||||
source.loop = true;
|
||||
source.minDistance = 0;
|
||||
source.maxDistance = 30;
|
||||
source.velocityUpdateMode = AudioVelocityUpdateMode.Fixed;
|
||||
source.rolloffMode = AudioRolloffMode.Custom;
|
||||
|
||||
if (_customCurve == null)
|
||||
{
|
||||
_customCurve = new AnimationCurve(
|
||||
new Keyframe(0.0333f, 1f, -30.012f, -30.012f, 0.3333f, 0.3333f),
|
||||
new Keyframe(0.0667f, 0.5f, -7.503f, -7.503f, 0.3333f, 0.3333f),
|
||||
new Keyframe(0.1333f, 0.25f, -1.8758f, -1.8758f, 0.3333f, 0.3333f),
|
||||
new Keyframe(0.2667f, 0.125f, -0.4689f, -0.4689f, 0.3333f, 0.3333f),
|
||||
new Keyframe(0.5333f, 0.0625f, -0.1172f, -0.1172f, 0.3333f, 0.3333f),
|
||||
new Keyframe(1f, 0f, -0.0333f, -0.0333f, 0.3333f, 0.3333f));
|
||||
}
|
||||
|
||||
source.SetCustomCurve(AudioSourceCurveType.CustomRolloff, _customCurve);
|
||||
// If it can be heard regularly then we play it immediately
|
||||
source.playOnAwake = !info.onlyAudibleToScope;
|
||||
source.spatialBlend = 1f;
|
||||
source.volume = 0.5f;
|
||||
source.dopplerLevel = 0;
|
||||
|
||||
owAudioSource.SetTrack(OWAudioMixer.TrackName.Signal);
|
||||
AudioUtilities.SetAudioClip(owAudioSource, info.audio, mod);
|
||||
owAudioSource.playOnAwake = !info.onlyAudibleToScope;
|
||||
|
||||
// Frequency detection trigger volume
|
||||
|
||||
var sphereShape = signalGO.AddComponent<SphereShape>();
|
||||
var owTriggerVolume = signalGO.AddComponent<OWTriggerVolume>();
|
||||
var audioSignalDetectionTrigger = signalGO.AddComponent<AudioSignalDetectionTrigger>();
|
||||
@ -175,6 +144,8 @@ namespace NewHorizons.Builder.Props
|
||||
audioSignalDetectionTrigger._signal = audioSignal;
|
||||
audioSignalDetectionTrigger._trigger = owTriggerVolume;
|
||||
|
||||
owAudioSource.SetTrack(OWAudioMixer.TrackName.Signal);
|
||||
|
||||
signalGO.SetActive(true);
|
||||
|
||||
// Track certain special signal things
|
||||
@ -186,12 +157,12 @@ namespace NewHorizons.Builder.Props
|
||||
|
||||
private static SignalFrequency StringToFrequency(string str)
|
||||
{
|
||||
return EnumUtils.TryParse<SignalFrequency>(str, out SignalFrequency frequency) ? frequency : AddFrequency(str);
|
||||
return EnumUtils.TryParse(str, out SignalFrequency frequency) ? frequency : AddFrequency(str);
|
||||
}
|
||||
|
||||
public static SignalName StringToSignalName(string str)
|
||||
{
|
||||
return EnumUtils.TryParse<SignalName>(str, out SignalName name) ? name : AddSignalName(str);
|
||||
return EnumUtils.TryParse(str, out SignalName name) ? name : AddSignalName(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,7 @@
|
||||
using NewHorizons.Builder.Body;
|
||||
using NewHorizons.Builder.Props.Audio;
|
||||
using NewHorizons.External.Configs;
|
||||
using NewHorizons.External.Modules.Props.Audio;
|
||||
using NewHorizons.Handlers;
|
||||
using NewHorizons.Utility;
|
||||
using NewHorizons.Utility.OuterWilds;
|
||||
|
||||
@ -170,8 +170,11 @@ namespace NewHorizons.Builder.Props
|
||||
|
||||
if (detail.removeComponents)
|
||||
{
|
||||
NHLogger.LogVerbose($"Removing all components from [{prop.name}]");
|
||||
|
||||
// Just swap all the children to a new game object
|
||||
var newDetailGO = new GameObject(prop.name);
|
||||
newDetailGO.SetActive(false);
|
||||
newDetailGO.transform.position = prop.transform.position;
|
||||
newDetailGO.transform.parent = prop.transform.parent;
|
||||
|
||||
@ -185,7 +188,8 @@ namespace NewHorizons.Builder.Props
|
||||
{
|
||||
child.parent = newDetailGO.transform;
|
||||
}
|
||||
GameObject.Destroy(prop);
|
||||
// Have to destroy it right away, else parented props might get attached to the old one
|
||||
GameObject.DestroyImmediate(prop);
|
||||
prop = newDetailGO;
|
||||
}
|
||||
|
||||
|
||||
@ -16,9 +16,15 @@ namespace NewHorizons.Builder.Props
|
||||
// Returns the character dialogue tree and remote dialogue trigger, if applicable.
|
||||
public static (CharacterDialogueTree, RemoteDialogueTrigger) Make(GameObject go, Sector sector, DialogueInfo info, IModBehaviour mod)
|
||||
{
|
||||
NHLogger.LogVerbose($"[DIALOGUE] Created a new character dialogue [{info.rename}] on [{info.parentPath}]");
|
||||
|
||||
// In stock I think they disable dialogue stuff with conditions
|
||||
// Here we just don't make it at all
|
||||
if (info.blockAfterPersistentCondition != null && PlayerData.GetPersistentCondition(info.blockAfterPersistentCondition)) return (null, null);
|
||||
if (!string.IsNullOrEmpty(info.blockAfterPersistentCondition) && PlayerData.GetPersistentCondition(info.blockAfterPersistentCondition))
|
||||
{
|
||||
NHLogger.LogVerbose($"[DIALOGUE] Persistent condition [{info.blockAfterPersistentCondition}] was met for [{info.rename}], aborting");
|
||||
return (null, null);
|
||||
}
|
||||
|
||||
var dialogue = MakeConversationZone(go, sector, info, mod.ModHelper);
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using NewHorizons.Builder.Body;
|
||||
using NewHorizons.Builder.Props.Audio;
|
||||
using NewHorizons.Builder.Props.TranslatorText;
|
||||
using NewHorizons.Builder.ShipLog;
|
||||
using NewHorizons.External;
|
||||
@ -106,11 +107,15 @@ namespace NewHorizons.Builder.Props
|
||||
{
|
||||
try
|
||||
{
|
||||
DialogueBuilder.Make(go, sector, dialogueInfo, mod);
|
||||
var (dialogue, trigger) = DialogueBuilder.Make(go, sector, dialogueInfo, mod);
|
||||
if (dialogue == null)
|
||||
{
|
||||
NHLogger.LogVerbose($"[DIALOGUE] Failed to create dialogue [{dialogueInfo.xmlFile}]");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
NHLogger.LogError($"Couldn't make dialogue [{dialogueInfo.xmlFile}] for [{go.name}]:\n{ex}");
|
||||
NHLogger.LogError($"[DIALOGUE] Couldn't make dialogue [{dialogueInfo.xmlFile}] for [{go.name}]:\n{ex}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -265,6 +270,20 @@ namespace NewHorizons.Builder.Props
|
||||
}
|
||||
}
|
||||
}
|
||||
if (config.Props.audioSources != null)
|
||||
{
|
||||
foreach (var audioSource in config.Props.audioSources)
|
||||
{
|
||||
try
|
||||
{
|
||||
AudioSourceBuilder.Make(go, sector, audioSource, mod);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
NHLogger.LogError($"Couldn't make audio source [{audioSource.audio}] for [{go.name}]:\n{ex}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
using NewHorizons.Builder.Props;
|
||||
using NewHorizons.External.Modules.Volumes.VolumeInfos;
|
||||
using NewHorizons.Utility;
|
||||
using NewHorizons.Utility.Files;
|
||||
using NewHorizons.Utility.OuterWilds;
|
||||
using OWML.Common;
|
||||
using OWML.Utils;
|
||||
using UnityEngine;
|
||||
|
||||
namespace NewHorizons.Builder.Volumes
|
||||
@ -21,8 +21,8 @@ namespace NewHorizons.Builder.Volumes
|
||||
owAudioSource._audioSource = audioSource;
|
||||
owAudioSource.loop = info.loop;
|
||||
owAudioSource.SetMaxVolume(info.volume);
|
||||
owAudioSource.SetClipSelectionType(EnumUtils.Parse<OWAudioSource.ClipSelectionOnPlay>(info.clipSelection.ToString()));
|
||||
owAudioSource.SetTrack(EnumUtils.Parse<OWAudioMixer.TrackName>(info.track.ToString()));
|
||||
owAudioSource.SetClipSelectionType(info.clipSelection.ConvertToOW());
|
||||
owAudioSource.SetTrack(info.track.ConvertToOW());
|
||||
AudioUtilities.SetAudioClip(owAudioSource, info.audio, mod);
|
||||
|
||||
var audioVolume = go.AddComponent<AudioVolume>();
|
||||
|
||||
@ -33,6 +33,7 @@ public class AddPhysics : MonoBehaviour
|
||||
|
||||
var bodyGo = new GameObject($"{name}_Body");
|
||||
bodyGo.SetActive(false);
|
||||
bodyGo.transform.parent = transform.parent;
|
||||
bodyGo.transform.position = transform.position;
|
||||
bodyGo.transform.rotation = transform.rotation;
|
||||
|
||||
|
||||
3
NewHorizons/External/Configs/PlanetConfig.cs
vendored
3
NewHorizons/External/Configs/PlanetConfig.cs
vendored
@ -1,5 +1,6 @@
|
||||
using NewHorizons.External.Modules;
|
||||
using NewHorizons.External.Modules.Props;
|
||||
using NewHorizons.External.Modules.Props.Audio;
|
||||
using NewHorizons.External.Modules.Props.Dialogue;
|
||||
using NewHorizons.External.Modules.Props.Quantum;
|
||||
using NewHorizons.External.Modules.VariableSize;
|
||||
@ -420,7 +421,7 @@ namespace NewHorizons.External.Configs
|
||||
if (Signal?.signals != null)
|
||||
{
|
||||
if (Props == null) Props = new PropModule();
|
||||
if (Props.signals == null) Props.signals = new SignalModule.SignalInfo[0];
|
||||
if (Props.signals == null) Props.signals = new SignalInfo[0];
|
||||
Props.signals = Props.signals.Concat(Signal.signals).ToArray();
|
||||
}
|
||||
|
||||
|
||||
8
NewHorizons/External/Modules/PropModule.cs
vendored
8
NewHorizons/External/Modules/PropModule.cs
vendored
@ -1,4 +1,5 @@
|
||||
using NewHorizons.External.Modules.Props;
|
||||
using NewHorizons.External.Modules.Props.Audio;
|
||||
using NewHorizons.External.Modules.Props.Dialogue;
|
||||
using NewHorizons.External.Modules.Props.EchoesOfTheEye;
|
||||
using NewHorizons.External.Modules.Props.Quantum;
|
||||
@ -89,7 +90,7 @@ namespace NewHorizons.External.Modules
|
||||
/// <summary>
|
||||
/// Add signalscope signals to this planet
|
||||
/// </summary>
|
||||
public SignalModule.SignalInfo[] signals;
|
||||
public SignalInfo[] signals;
|
||||
|
||||
/// <summary>
|
||||
/// Add projection pools/platforms, whiteboards, and stones to this planet
|
||||
@ -106,6 +107,11 @@ namespace NewHorizons.External.Modules
|
||||
/// </summary>
|
||||
public NomaiWarpTransmitterInfo[] warpTransmitters;
|
||||
|
||||
/// <summary>
|
||||
/// Add audio point sources to this planet. For audio across an entire area, look for AudioVolumes under the Volumes module.
|
||||
/// </summary>
|
||||
public AudioSourceInfo[] audioSources;
|
||||
|
||||
[Obsolete("reveal is deprecated. Use Volumes->revealVolumes instead.")] public RevealVolumeInfo[] reveal;
|
||||
|
||||
[Obsolete("audioVolumes is deprecated. Use Volumes->audioVolumes instead.")] public AudioVolumeInfo[] audioVolumes;
|
||||
|
||||
15
NewHorizons/External/Modules/Props/Audio/AudioSourceInfo.cs
vendored
Normal file
15
NewHorizons/External/Modules/Props/Audio/AudioSourceInfo.cs
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
using NewHorizons.External.SerializableEnums;
|
||||
using Newtonsoft.Json;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace NewHorizons.External.Modules.Props.Audio
|
||||
{
|
||||
[JsonObject]
|
||||
public class AudioSourceInfo : BaseAudioInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// The audio track of this audio source
|
||||
/// </summary>
|
||||
[DefaultValue("environment")] public NHAudioMixerTrackName track = NHAudioMixerTrackName.Environment;
|
||||
}
|
||||
}
|
||||
29
NewHorizons/External/Modules/Props/Audio/BaseAudioInfo.cs
vendored
Normal file
29
NewHorizons/External/Modules/Props/Audio/BaseAudioInfo.cs
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
using Newtonsoft.Json;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace NewHorizons.External.Modules.Props.Audio
|
||||
{
|
||||
[JsonObject]
|
||||
public abstract class BaseAudioInfo : GeneralPointPropInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// The audio to use. Can be a path to a .wav/.ogg/.mp3 file, or taken from the AudioClip list.
|
||||
/// </summary>
|
||||
public string audio;
|
||||
|
||||
/// <summary>
|
||||
/// At this distance the sound is at its loudest.
|
||||
/// </summary>
|
||||
public float minDistance;
|
||||
|
||||
/// <summary>
|
||||
/// The sound will drop off by this distance (Note: for signals, this only effects when it is heard aloud and not via the signalscope).
|
||||
/// </summary>
|
||||
[DefaultValue(5f)] public float maxDistance = 30f;
|
||||
|
||||
/// <summary>
|
||||
/// How loud the sound will play
|
||||
/// </summary>
|
||||
[DefaultValue(0.5f)] public float volume = 0.5f;
|
||||
}
|
||||
}
|
||||
61
NewHorizons/External/Modules/Props/Audio/SignalInfo.cs
vendored
Normal file
61
NewHorizons/External/Modules/Props/Audio/SignalInfo.cs
vendored
Normal file
@ -0,0 +1,61 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace NewHorizons.External.Modules.Props.Audio
|
||||
{
|
||||
[JsonObject]
|
||||
public class SignalInfo : BaseAudioInfo
|
||||
{
|
||||
[Obsolete("audioClip is deprecated, please use audio instead")]
|
||||
public string audioClip;
|
||||
|
||||
[Obsolete("audioFilePath is deprecated, please use audio instead")]
|
||||
public string audioFilePath;
|
||||
|
||||
/// <summary>
|
||||
/// How close the player must get to the signal to detect it. This is when you get the "Unknown Signal Detected"
|
||||
/// notification.
|
||||
/// </summary>
|
||||
[Range(0f, double.MaxValue)] public float detectionRadius;
|
||||
|
||||
/// <summary>
|
||||
/// The frequency ID of the signal. The built-in game values are `Default`, `Traveler`, `Quantum`, `EscapePod`,
|
||||
/// `Statue`, `WarpCore`, `HideAndSeek`, and `Radio`. You can also put a custom value.
|
||||
/// </summary>
|
||||
public string frequency;
|
||||
|
||||
/// <summary>
|
||||
/// How close the player must get to the signal to identify it. This is when you learn its name.
|
||||
/// </summary>
|
||||
[DefaultValue(10f)]
|
||||
[Range(0f, double.MaxValue)]
|
||||
public float identificationRadius = 10f;
|
||||
|
||||
/// <summary>
|
||||
/// Only set to `true` if you are putting this signal inside a cloaking field.
|
||||
/// </summary>
|
||||
public bool insideCloak;
|
||||
|
||||
/// <summary>
|
||||
/// The unique ID of the signal.
|
||||
/// </summary>
|
||||
public string name;
|
||||
|
||||
/// <summary>
|
||||
/// `false` if the player can hear the signal without equipping the signal-scope.
|
||||
/// </summary>
|
||||
[DefaultValue(true)] public bool onlyAudibleToScope = true;
|
||||
|
||||
/// <summary>
|
||||
/// A ship log fact to reveal when the signal is identified.
|
||||
/// </summary>
|
||||
[DefaultValue("")] public string reveals = "";
|
||||
|
||||
/// <summary>
|
||||
/// Radius of the sphere giving off the signal.
|
||||
/// </summary>
|
||||
[DefaultValue(1f)] public float sourceRadius = 1f;
|
||||
}
|
||||
}
|
||||
63
NewHorizons/External/Modules/SignalModule.cs
vendored
63
NewHorizons/External/Modules/SignalModule.cs
vendored
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using NewHorizons.External.Modules.Props.Audio;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace NewHorizons.External.Modules
|
||||
@ -8,67 +9,7 @@ namespace NewHorizons.External.Modules
|
||||
[JsonObject]
|
||||
public class SignalModule
|
||||
{
|
||||
/// <summary>
|
||||
/// List of signals to add (Why did xen do it like this)
|
||||
/// </summary>
|
||||
[Obsolete("signals is deprecated, please use Props->signals instead")]
|
||||
public SignalInfo[] signals;
|
||||
|
||||
[JsonObject]
|
||||
public class SignalInfo : GeneralPointPropInfo
|
||||
{
|
||||
[Obsolete("audioClip is deprecated, please use audio instead")]
|
||||
public string audioClip;
|
||||
|
||||
[Obsolete("audioFilePath is deprecated, please use audio instead")]
|
||||
public string audioFilePath;
|
||||
|
||||
/// <summary>
|
||||
/// The audio to use. Can be a path to a .wav/.ogg/.mp3 file, or taken from the AudioClip list.
|
||||
/// </summary>
|
||||
public string audio;
|
||||
|
||||
/// <summary>
|
||||
/// How close the player must get to the signal to detect it. This is when you get the "Unknown Signal Detected"
|
||||
/// notification.
|
||||
/// </summary>
|
||||
[Range(0f, double.MaxValue)] public float detectionRadius;
|
||||
|
||||
/// <summary>
|
||||
/// The frequency ID of the signal. The built-in game values are `Default`, `Traveler`, `Quantum`, `EscapePod`,
|
||||
/// `Statue`, `WarpCore`, `HideAndSeek`, and `Radio`. You can also put a custom value.
|
||||
/// </summary>
|
||||
public string frequency;
|
||||
|
||||
/// <summary>
|
||||
/// How close the player must get to the signal to identify it. This is when you learn its name.
|
||||
/// </summary>
|
||||
[DefaultValue(10f)] [Range(0f, double.MaxValue)]
|
||||
public float identificationRadius = 10f;
|
||||
|
||||
/// <summary>
|
||||
/// Only set to `true` if you are putting this signal inside a cloaking field.
|
||||
/// </summary>
|
||||
public bool insideCloak;
|
||||
|
||||
/// <summary>
|
||||
/// The unique ID of the signal.
|
||||
/// </summary>
|
||||
public string name;
|
||||
|
||||
/// <summary>
|
||||
/// `false` if the player can hear the signal without equipping the signal-scope.
|
||||
/// </summary>
|
||||
[DefaultValue(true)] public bool onlyAudibleToScope = true;
|
||||
|
||||
/// <summary>
|
||||
/// A ship log fact to reveal when the signal is identified.
|
||||
/// </summary>
|
||||
[DefaultValue("")] public string reveals = "";
|
||||
|
||||
/// <summary>
|
||||
/// Radius of the sphere giving off the signal.
|
||||
/// </summary>
|
||||
[DefaultValue(1f)] public float sourceRadius = 1f;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -5,6 +5,11 @@ namespace NewHorizons.External.Modules.WarpPad
|
||||
[JsonObject]
|
||||
public abstract class NomaiWarpPadInfo : GeneralPropInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// This can be anything. To have a warp pad transmitter send you to a receiver you must give them the same frequency.
|
||||
/// Try to make it something unique so it does not overlap with other warp pad pairs.
|
||||
/// Futhermore, multiple transmitters can send you to the same receiver if they all have the same frequency.
|
||||
/// </summary>
|
||||
public string frequency;
|
||||
}
|
||||
}
|
||||
|
||||
10
NewHorizons/External/NewHorizonsData.cs
vendored
10
NewHorizons/External/NewHorizonsData.cs
vendored
@ -128,6 +128,16 @@ namespace NewHorizons.External
|
||||
}
|
||||
}
|
||||
|
||||
public static void ForgetFrequency(string frequency)
|
||||
{
|
||||
if (_activeProfile == null) return;
|
||||
if (KnowsFrequency(frequency))
|
||||
{
|
||||
_activeProfile.KnownFrequencies.Remove(frequency);
|
||||
Save();
|
||||
}
|
||||
}
|
||||
|
||||
public static bool KnowsMultipleFrequencies()
|
||||
{
|
||||
return _activeProfile != null && _activeProfile.KnownFrequencies.Count > 0;
|
||||
|
||||
@ -146,6 +146,7 @@ namespace NewHorizons.Handlers
|
||||
|
||||
var hasParentBody = !string.IsNullOrEmpty(system.Config.Vessel?.vesselSpawn?.parentBody);
|
||||
var hasPhysics = system.Config.Vessel?.hasPhysics ?? !hasParentBody;
|
||||
var planetGO = hasParentBody ? vesselObject.transform.parent.gameObject : null;
|
||||
|
||||
if (hasPhysics)
|
||||
{
|
||||
@ -168,8 +169,6 @@ namespace NewHorizons.Handlers
|
||||
var attachWarpExitToVessel = system.Config.Vessel?.warpExit?.attachToVessel ?? false;
|
||||
var warpExitParent = vesselWarpController._targetWarpPlatform.transform.parent;
|
||||
|
||||
var planetGO = hasPhysics ? vesselObject.transform.parent.gameObject : null;
|
||||
|
||||
var warpExit = GeneralPropBuilder.MakeFromExisting(vesselWarpController._targetWarpPlatform.gameObject, planetGO, null, system.Config.Vessel?.warpExit, parentOverride: attachWarpExitToVessel ? warpExitParent : null);
|
||||
if (attachWarpExitToVessel)
|
||||
{
|
||||
|
||||
@ -32,6 +32,7 @@ using UnityEngine.SceneManagement;
|
||||
using NewHorizons.Utility.DebugTools;
|
||||
using NewHorizons.Utility.DebugTools.Menu;
|
||||
using NewHorizons.Components.Ship;
|
||||
using NewHorizons.Builder.Props.Audio;
|
||||
|
||||
namespace NewHorizons
|
||||
{
|
||||
|
||||
@ -1,7 +1,9 @@
|
||||
using NewHorizons.Builder.Props;
|
||||
using NewHorizons.Builder.Props.Audio;
|
||||
using NewHorizons.External;
|
||||
using NewHorizons.External.Modules;
|
||||
using NewHorizons.External.Modules.Props;
|
||||
using NewHorizons.External.Modules.Props.Audio;
|
||||
using NewHorizons.External.Modules.Props.Dialogue;
|
||||
using NewHorizons.Utility;
|
||||
using NewHorizons.Utility.OWML;
|
||||
@ -174,7 +176,7 @@ namespace NewHorizons
|
||||
float sourceRadius = 1f, float detectionRadius = 20f, float identificationRadius = 10f, bool insideCloak = false,
|
||||
bool onlyAudibleToScope = true, string reveals = "")
|
||||
{
|
||||
var info = new SignalModule.SignalInfo()
|
||||
var info = new SignalInfo()
|
||||
{
|
||||
audio = audio,
|
||||
detectionRadius = detectionRadius,
|
||||
@ -204,11 +206,11 @@ namespace NewHorizons
|
||||
radius = radius,
|
||||
range = range,
|
||||
xmlFile = xmlFile,
|
||||
remoteTrigger = new RemoteTriggerInfo()
|
||||
remoteTrigger = remoteTriggerRadius > 0f ? new RemoteTriggerInfo()
|
||||
{
|
||||
position = null,
|
||||
radius = remoteTriggerRadius,
|
||||
},
|
||||
} : null,
|
||||
};
|
||||
|
||||
return DialogueBuilder.Make(root, null, info, mod);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
using NewHorizons.Builder.Props;
|
||||
using NewHorizons.Builder.Props.Audio;
|
||||
using NewHorizons.Handlers;
|
||||
using Newtonsoft.Json;
|
||||
using System.Linq;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
using HarmonyLib;
|
||||
using NewHorizons.Builder.Props;
|
||||
using NewHorizons.Builder.Props.Audio;
|
||||
using NewHorizons.External;
|
||||
using NewHorizons.Handlers;
|
||||
using NewHorizons.OtherMods.AchievementsPlus;
|
||||
@ -40,6 +40,19 @@ namespace NewHorizons.Patches.PlayerPatches
|
||||
return true;
|
||||
}
|
||||
|
||||
[HarmonyPrefix]
|
||||
[HarmonyPatch(nameof(PlayerData.ForgetFrequency))]
|
||||
public static bool PlayerData_ForgetFrequency(SignalFrequency frequency)
|
||||
{
|
||||
var freqString = SignalBuilder.GetCustomFrequencyName(frequency);
|
||||
if (!string.IsNullOrEmpty(freqString))
|
||||
{
|
||||
NewHorizonsData.ForgetFrequency(freqString);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
[HarmonyPrefix]
|
||||
[HarmonyPatch(nameof(PlayerData.KnowsSignal))]
|
||||
public static bool PlayerData_KnowsSignal(SignalName signalName, ref bool __result)
|
||||
@ -60,11 +73,7 @@ namespace NewHorizons.Patches.PlayerPatches
|
||||
var customSignalName = SignalBuilder.GetCustomSignalName(signalName);
|
||||
if (!string.IsNullOrEmpty(customSignalName))
|
||||
{
|
||||
if (!NewHorizonsData.KnowsSignal(customSignalName))
|
||||
{
|
||||
NewHorizonsData.LearnSignal(customSignalName);
|
||||
}
|
||||
|
||||
NewHorizonsData.LearnSignal(customSignalName);
|
||||
AchievementHandler.OnLearnSignal();
|
||||
|
||||
return false;
|
||||
|
||||
@ -91,8 +91,12 @@ namespace NewHorizons.Patches.ShipLogPatches
|
||||
[HarmonyPatch(nameof(ShipLogManager.CheckForCompletionAchievement))]
|
||||
public static bool ShipLogManager_CheckForCompletionAchievement(ShipLogManager __instance)
|
||||
{
|
||||
// In other star systems they won't have the base game ship log facts, so they'll instantly get the achievement.
|
||||
if (Main.Instance.CurrentStarSystem != "SolarSystem") return false;
|
||||
|
||||
foreach (KeyValuePair<string, ShipLogFact> keyValuePair in __instance._factDict)
|
||||
{
|
||||
// Don't want to include modded facts, otherwise this is the same as the vanilla method
|
||||
if (!ShipLogHandler.IsModdedFact(keyValuePair.Key) && !keyValuePair.Value.IsRumor() && !keyValuePair.Value.IsRevealed() && !keyValuePair.Key.Equals("TH_VILLAGE_X3") && !keyValuePair.Key.Equals("GD_GABBRO_ISLAND_X1") && __instance.GetEntry(keyValuePair.Value.GetEntryID()).GetCuriosityName() != CuriosityName.InvisiblePlanet)
|
||||
{
|
||||
return false;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
using HarmonyLib;
|
||||
using NewHorizons.Builder.Props;
|
||||
using NewHorizons.Builder.Props.Audio;
|
||||
using NewHorizons.External;
|
||||
using NewHorizons.Handlers;
|
||||
using System;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
using HarmonyLib;
|
||||
using NewHorizons.Builder.Props;
|
||||
using NewHorizons.Builder.Props.Audio;
|
||||
|
||||
namespace NewHorizons.Patches.SignalPatches
|
||||
{
|
||||
|
||||
@ -1098,6 +1098,13 @@
|
||||
"items": {
|
||||
"$ref": "#/definitions/NomaiWarpTransmitterInfo"
|
||||
}
|
||||
},
|
||||
"audioSources": {
|
||||
"type": "array",
|
||||
"description": "Add audio point sources to this planet. For audio across an entire area, look for AudioVolumes under the Volumes module.",
|
||||
"items": {
|
||||
"$ref": "#/definitions/AudioSourceInfo"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2157,6 +2164,27 @@
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"audio": {
|
||||
"type": "string",
|
||||
"description": "The audio to use. Can be a path to a .wav/.ogg/.mp3 file, or taken from the AudioClip list."
|
||||
},
|
||||
"minDistance": {
|
||||
"type": "number",
|
||||
"description": "At this distance the sound is at its loudest.",
|
||||
"format": "float"
|
||||
},
|
||||
"maxDistance": {
|
||||
"type": "number",
|
||||
"description": "The sound will drop off by this distance (Note: for signals, this only effects when it is heard aloud and not via the signalscope).",
|
||||
"format": "float",
|
||||
"default": 5.0
|
||||
},
|
||||
"volume": {
|
||||
"type": "number",
|
||||
"description": "How loud the sound will play",
|
||||
"format": "float",
|
||||
"default": 0.5
|
||||
},
|
||||
"position": {
|
||||
"description": "Position of the object",
|
||||
"$ref": "#/definitions/MVector3"
|
||||
@ -2173,10 +2201,6 @@
|
||||
"type": "string",
|
||||
"description": "An optional rename of this object"
|
||||
},
|
||||
"audio": {
|
||||
"type": "string",
|
||||
"description": "The audio to use. Can be a path to a .wav/.ogg/.mp3 file, or taken from the AudioClip list."
|
||||
},
|
||||
"detectionRadius": {
|
||||
"type": "number",
|
||||
"description": "How close the player must get to the signal to detect it. This is when you get the \"Unknown Signal Detected\"\nnotification.",
|
||||
@ -2412,7 +2436,8 @@
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"frequency": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"description": "This can be anything. To have a warp pad transmitter send you to a receiver you must give them the same frequency. \nTry to make it something unique so it does not overlap with other warp pad pairs.\nFuthermore, multiple transmitters can send you to the same receiver if they all have the same frequency."
|
||||
},
|
||||
"rotation": {
|
||||
"description": "Rotation of the object",
|
||||
@ -2493,7 +2518,8 @@
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"frequency": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"description": "This can be anything. To have a warp pad transmitter send you to a receiver you must give them the same frequency. \nTry to make it something unique so it does not overlap with other warp pad pairs.\nFuthermore, multiple transmitters can send you to the same receiver if they all have the same frequency."
|
||||
},
|
||||
"rotation": {
|
||||
"description": "Rotation of the object",
|
||||
@ -2534,6 +2560,94 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"AudioSourceInfo": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"audio": {
|
||||
"type": "string",
|
||||
"description": "The audio to use. Can be a path to a .wav/.ogg/.mp3 file, or taken from the AudioClip list."
|
||||
},
|
||||
"minDistance": {
|
||||
"type": "number",
|
||||
"description": "At this distance the sound is at its loudest.",
|
||||
"format": "float"
|
||||
},
|
||||
"maxDistance": {
|
||||
"type": "number",
|
||||
"description": "The sound will drop off by this distance (Note: for signals, this only effects when it is heard aloud and not via the signalscope).",
|
||||
"format": "float",
|
||||
"default": 5.0
|
||||
},
|
||||
"volume": {
|
||||
"type": "number",
|
||||
"description": "How loud the sound will play",
|
||||
"format": "float",
|
||||
"default": 0.5
|
||||
},
|
||||
"position": {
|
||||
"description": "Position of the object",
|
||||
"$ref": "#/definitions/MVector3"
|
||||
},
|
||||
"parentPath": {
|
||||
"type": "string",
|
||||
"description": "The relative path from the planet to the parent of this object. Optional (will default to the root sector)."
|
||||
},
|
||||
"isRelativeToParent": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the positional and rotational coordinates are relative to parent instead of the root planet object."
|
||||
},
|
||||
"rename": {
|
||||
"type": "string",
|
||||
"description": "An optional rename of this object"
|
||||
},
|
||||
"track": {
|
||||
"description": "The audio track of this audio source",
|
||||
"default": "environment",
|
||||
"$ref": "#/definitions/NHAudioMixerTrackName"
|
||||
}
|
||||
}
|
||||
},
|
||||
"NHAudioMixerTrackName": {
|
||||
"type": "string",
|
||||
"description": "",
|
||||
"x-enumNames": [
|
||||
"Undefined",
|
||||
"Menu",
|
||||
"Music",
|
||||
"Environment",
|
||||
"Environment_Unfiltered",
|
||||
"EndTimes_SFX",
|
||||
"Signal",
|
||||
"Death",
|
||||
"Player",
|
||||
"Player_External",
|
||||
"Ship",
|
||||
"Map",
|
||||
"EndTimes_Music",
|
||||
"MuffleWhileRafting",
|
||||
"MuffleIndoors",
|
||||
"SlideReelMusic"
|
||||
],
|
||||
"enum": [
|
||||
"undefined",
|
||||
"menu",
|
||||
"music",
|
||||
"environment",
|
||||
"environmentUnfiltered",
|
||||
"endTimesSfx",
|
||||
"signal",
|
||||
"death",
|
||||
"player",
|
||||
"playerExternal",
|
||||
"ship",
|
||||
"map",
|
||||
"endTimesMusic",
|
||||
"muffleWhileRafting",
|
||||
"muffleIndoors",
|
||||
"slideReelMusic"
|
||||
]
|
||||
},
|
||||
"ReferenceFrameModule": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
@ -3273,46 +3387,6 @@
|
||||
"manual"
|
||||
]
|
||||
},
|
||||
"NHAudioMixerTrackName": {
|
||||
"type": "string",
|
||||
"description": "",
|
||||
"x-enumNames": [
|
||||
"Undefined",
|
||||
"Menu",
|
||||
"Music",
|
||||
"Environment",
|
||||
"Environment_Unfiltered",
|
||||
"EndTimes_SFX",
|
||||
"Signal",
|
||||
"Death",
|
||||
"Player",
|
||||
"Player_External",
|
||||
"Ship",
|
||||
"Map",
|
||||
"EndTimes_Music",
|
||||
"MuffleWhileRafting",
|
||||
"MuffleIndoors",
|
||||
"SlideReelMusic"
|
||||
],
|
||||
"enum": [
|
||||
"undefined",
|
||||
"menu",
|
||||
"music",
|
||||
"environment",
|
||||
"environmentUnfiltered",
|
||||
"endTimesSfx",
|
||||
"signal",
|
||||
"death",
|
||||
"player",
|
||||
"playerExternal",
|
||||
"ship",
|
||||
"map",
|
||||
"endTimesMusic",
|
||||
"muffleWhileRafting",
|
||||
"muffleIndoors",
|
||||
"slideReelMusic"
|
||||
]
|
||||
},
|
||||
"DestructionVolumeInfo": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
|
||||
@ -253,9 +253,16 @@ namespace NewHorizons.Utility
|
||||
OWML.NHLogger.LogVerbose($"Coordinate Check for {system}: {xCorrect}, {yCorrect}, {zCorrect} [{string.Join("-", coordinates.x)}, {string.Join("-", coordinates.y)}, {string.Join("-", coordinates.z)}]");
|
||||
return xCorrect && yCorrect && zCorrect;
|
||||
}
|
||||
|
||||
public static FluidVolume.Type ConvertToOW(this NHFluidType fluidType, FluidVolume.Type @default = FluidVolume.Type.NONE) => EnumUtils.Parse(fluidType.ToString().ToUpper(), @default);
|
||||
|
||||
public static FluidVolume.Type ConvertToOW(this NHFluidType fluidType, FluidVolume.Type @default = FluidVolume.Type.NONE)
|
||||
=> EnumUtils.Parse(fluidType.ToString().ToUpper(), @default);
|
||||
|
||||
public static OWAudioMixer.TrackName ConvertToOW(this NHAudioMixerTrackName trackName, OWAudioMixer.TrackName @default = OWAudioMixer.TrackName.Environment)
|
||||
=> EnumUtils.Parse(trackName.ToString().ToUpper(), @default);
|
||||
|
||||
public static OWAudioSource.ClipSelectionOnPlay ConvertToOW(this NHClipSelectionType clipSelection, OWAudioSource.ClipSelectionOnPlay @default = OWAudioSource.ClipSelectionOnPlay.RANDOM)
|
||||
=> EnumUtils.Parse(clipSelection.ToString().ToUpper(), @default);
|
||||
|
||||
public static void SmoothLookDir(this GameObject go, Vector3 direction, float dt, float angularVelocity)
|
||||
{
|
||||
var start = go.transform.rotation;
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
"author": "xen, Bwc9876, clay, MegaPiggy, John, Trifid, Hawkbar, Book",
|
||||
"name": "New Horizons",
|
||||
"uniqueName": "xen.NewHorizons",
|
||||
"version": "1.10.0",
|
||||
"version": "1.10.2",
|
||||
"owmlVersion": "2.9.0",
|
||||
"dependencies": [ "JohnCorby.VanillaFix", "_nebula.MenuFramework", "xen.CommonCameraUtility", "dgarro.CustomShipLogModes" ],
|
||||
"conflicts": [ "Raicuparta.QuantumSpaceBuddies", "PacificEngine.OW_CommonResources" ],
|
||||
|
||||
242
docs/Pipfile.lock
generated
242
docs/Pipfile.lock
generated
@ -27,11 +27,11 @@
|
||||
},
|
||||
"beautifulsoup4": {
|
||||
"hashes": [
|
||||
"sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30",
|
||||
"sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"
|
||||
"sha256:2130a5ad7f513200fae61a17abb5e338ca980fa28c439c0571014bc0217e9591",
|
||||
"sha256:c5fceeaec29d09c84970e47c65f2f0efe57872f7cff494c9691a26ec0ff13234"
|
||||
],
|
||||
"markers": "python_full_version >= '3.6.0'",
|
||||
"version": "==4.11.1"
|
||||
"version": "==4.12.0"
|
||||
},
|
||||
"certifi": {
|
||||
"hashes": [
|
||||
@ -43,97 +43,84 @@
|
||||
},
|
||||
"charset-normalizer": {
|
||||
"hashes": [
|
||||
"sha256:00d3ffdaafe92a5dc603cb9bd5111aaa36dfa187c8285c543be562e61b755f6b",
|
||||
"sha256:024e606be3ed92216e2b6952ed859d86b4cfa52cd5bc5f050e7dc28f9b43ec42",
|
||||
"sha256:0298eafff88c99982a4cf66ba2efa1128e4ddaca0b05eec4c456bbc7db691d8d",
|
||||
"sha256:02a51034802cbf38db3f89c66fb5d2ec57e6fe7ef2f4a44d070a593c3688667b",
|
||||
"sha256:083c8d17153ecb403e5e1eb76a7ef4babfc2c48d58899c98fcaa04833e7a2f9a",
|
||||
"sha256:0a11e971ed097d24c534c037d298ad32c6ce81a45736d31e0ff0ad37ab437d59",
|
||||
"sha256:0bf2dae5291758b6f84cf923bfaa285632816007db0330002fa1de38bfcb7154",
|
||||
"sha256:0c0a590235ccd933d9892c627dec5bc7511ce6ad6c1011fdf5b11363022746c1",
|
||||
"sha256:0f438ae3532723fb6ead77e7c604be7c8374094ef4ee2c5e03a3a17f1fca256c",
|
||||
"sha256:109487860ef6a328f3eec66f2bf78b0b72400280d8f8ea05f69c51644ba6521a",
|
||||
"sha256:11b53acf2411c3b09e6af37e4b9005cba376c872503c8f28218c7243582df45d",
|
||||
"sha256:12db3b2c533c23ab812c2b25934f60383361f8a376ae272665f8e48b88e8e1c6",
|
||||
"sha256:14e76c0f23218b8f46c4d87018ca2e441535aed3632ca134b10239dfb6dadd6b",
|
||||
"sha256:16a8663d6e281208d78806dbe14ee9903715361cf81f6d4309944e4d1e59ac5b",
|
||||
"sha256:292d5e8ba896bbfd6334b096e34bffb56161c81408d6d036a7dfa6929cff8783",
|
||||
"sha256:2c03cc56021a4bd59be889c2b9257dae13bf55041a3372d3295416f86b295fb5",
|
||||
"sha256:2e396d70bc4ef5325b72b593a72c8979999aa52fb8bcf03f701c1b03e1166918",
|
||||
"sha256:2edb64ee7bf1ed524a1da60cdcd2e1f6e2b4f66ef7c077680739f1641f62f555",
|
||||
"sha256:31a9ddf4718d10ae04d9b18801bd776693487cbb57d74cc3458a7673f6f34639",
|
||||
"sha256:356541bf4381fa35856dafa6a965916e54bed415ad8a24ee6de6e37deccf2786",
|
||||
"sha256:358a7c4cb8ba9b46c453b1dd8d9e431452d5249072e4f56cfda3149f6ab1405e",
|
||||
"sha256:37f8febc8ec50c14f3ec9637505f28e58d4f66752207ea177c1d67df25da5aed",
|
||||
"sha256:39049da0ffb96c8cbb65cbf5c5f3ca3168990adf3551bd1dee10c48fce8ae820",
|
||||
"sha256:39cf9ed17fe3b1bc81f33c9ceb6ce67683ee7526e65fde1447c772afc54a1bb8",
|
||||
"sha256:3ae1de54a77dc0d6d5fcf623290af4266412a7c4be0b1ff7444394f03f5c54e3",
|
||||
"sha256:3b590df687e3c5ee0deef9fc8c547d81986d9a1b56073d82de008744452d6541",
|
||||
"sha256:3e45867f1f2ab0711d60c6c71746ac53537f1684baa699f4f668d4c6f6ce8e14",
|
||||
"sha256:3fc1c4a2ffd64890aebdb3f97e1278b0cc72579a08ca4de8cd2c04799a3a22be",
|
||||
"sha256:4457ea6774b5611f4bed5eaa5df55f70abde42364d498c5134b7ef4c6958e20e",
|
||||
"sha256:44ba614de5361b3e5278e1241fda3dc1838deed864b50a10d7ce92983797fa76",
|
||||
"sha256:4a8fcf28c05c1f6d7e177a9a46a1c52798bfe2ad80681d275b10dcf317deaf0b",
|
||||
"sha256:4b0d02d7102dd0f997580b51edc4cebcf2ab6397a7edf89f1c73b586c614272c",
|
||||
"sha256:502218f52498a36d6bf5ea77081844017bf7982cdbe521ad85e64cabee1b608b",
|
||||
"sha256:503e65837c71b875ecdd733877d852adbc465bd82c768a067badd953bf1bc5a3",
|
||||
"sha256:5995f0164fa7df59db4746112fec3f49c461dd6b31b841873443bdb077c13cfc",
|
||||
"sha256:59e5686dd847347e55dffcc191a96622f016bc0ad89105e24c14e0d6305acbc6",
|
||||
"sha256:601f36512f9e28f029d9481bdaf8e89e5148ac5d89cffd3b05cd533eeb423b59",
|
||||
"sha256:608862a7bf6957f2333fc54ab4399e405baad0163dc9f8d99cb236816db169d4",
|
||||
"sha256:62595ab75873d50d57323a91dd03e6966eb79c41fa834b7a1661ed043b2d404d",
|
||||
"sha256:70990b9c51340e4044cfc394a81f614f3f90d41397104d226f21e66de668730d",
|
||||
"sha256:71140351489970dfe5e60fc621ada3e0f41104a5eddaca47a7acb3c1b851d6d3",
|
||||
"sha256:72966d1b297c741541ca8cf1223ff262a6febe52481af742036a0b296e35fa5a",
|
||||
"sha256:74292fc76c905c0ef095fe11e188a32ebd03bc38f3f3e9bcb85e4e6db177b7ea",
|
||||
"sha256:761e8904c07ad053d285670f36dd94e1b6ab7f16ce62b9805c475b7aa1cffde6",
|
||||
"sha256:772b87914ff1152b92a197ef4ea40efe27a378606c39446ded52c8f80f79702e",
|
||||
"sha256:79909e27e8e4fcc9db4addea88aa63f6423ebb171db091fb4373e3312cb6d603",
|
||||
"sha256:7e189e2e1d3ed2f4aebabd2d5b0f931e883676e51c7624826e0a4e5fe8a0bf24",
|
||||
"sha256:7eb33a30d75562222b64f569c642ff3dc6689e09adda43a082208397f016c39a",
|
||||
"sha256:81d6741ab457d14fdedc215516665050f3822d3e56508921cc7239f8c8e66a58",
|
||||
"sha256:8499ca8f4502af841f68135133d8258f7b32a53a1d594aa98cc52013fff55678",
|
||||
"sha256:84c3990934bae40ea69a82034912ffe5a62c60bbf6ec5bc9691419641d7d5c9a",
|
||||
"sha256:87701167f2a5c930b403e9756fab1d31d4d4da52856143b609e30a1ce7160f3c",
|
||||
"sha256:88600c72ef7587fe1708fd242b385b6ed4b8904976d5da0893e31df8b3480cb6",
|
||||
"sha256:8ac7b6a045b814cf0c47f3623d21ebd88b3e8cf216a14790b455ea7ff0135d18",
|
||||
"sha256:8b8af03d2e37866d023ad0ddea594edefc31e827fee64f8de5611a1dbc373174",
|
||||
"sha256:8c7fe7afa480e3e82eed58e0ca89f751cd14d767638e2550c77a92a9e749c317",
|
||||
"sha256:8eade758719add78ec36dc13201483f8e9b5d940329285edcd5f70c0a9edbd7f",
|
||||
"sha256:911d8a40b2bef5b8bbae2e36a0b103f142ac53557ab421dc16ac4aafee6f53dc",
|
||||
"sha256:93ad6d87ac18e2a90b0fe89df7c65263b9a99a0eb98f0a3d2e079f12a0735837",
|
||||
"sha256:95dea361dd73757c6f1c0a1480ac499952c16ac83f7f5f4f84f0658a01b8ef41",
|
||||
"sha256:9ab77acb98eba3fd2a85cd160851816bfce6871d944d885febf012713f06659c",
|
||||
"sha256:9cb3032517f1627cc012dbc80a8ec976ae76d93ea2b5feaa9d2a5b8882597579",
|
||||
"sha256:9cf4e8ad252f7c38dd1f676b46514f92dc0ebeb0db5552f5f403509705e24753",
|
||||
"sha256:9d9153257a3f70d5f69edf2325357251ed20f772b12e593f3b3377b5f78e7ef8",
|
||||
"sha256:a152f5f33d64a6be73f1d30c9cc82dfc73cec6477ec268e7c6e4c7d23c2d2291",
|
||||
"sha256:a16418ecf1329f71df119e8a65f3aa68004a3f9383821edcb20f0702934d8087",
|
||||
"sha256:a60332922359f920193b1d4826953c507a877b523b2395ad7bc716ddd386d866",
|
||||
"sha256:a8d0fc946c784ff7f7c3742310cc8a57c5c6dc31631269876a88b809dbeff3d3",
|
||||
"sha256:ab5de034a886f616a5668aa5d098af2b5385ed70142090e2a31bcbd0af0fdb3d",
|
||||
"sha256:c22d3fe05ce11d3671297dc8973267daa0f938b93ec716e12e0f6dee81591dc1",
|
||||
"sha256:c2ac1b08635a8cd4e0cbeaf6f5e922085908d48eb05d44c5ae9eabab148512ca",
|
||||
"sha256:c512accbd6ff0270939b9ac214b84fb5ada5f0409c44298361b2f5e13f9aed9e",
|
||||
"sha256:c75ffc45f25324e68ab238cb4b5c0a38cd1c3d7f1fb1f72b5541de469e2247db",
|
||||
"sha256:c95a03c79bbe30eec3ec2b7f076074f4281526724c8685a42872974ef4d36b72",
|
||||
"sha256:cadaeaba78750d58d3cc6ac4d1fd867da6fc73c88156b7a3212a3cd4819d679d",
|
||||
"sha256:cd6056167405314a4dc3c173943f11249fa0f1b204f8b51ed4bde1a9cd1834dc",
|
||||
"sha256:db72b07027db150f468fbada4d85b3b2729a3db39178abf5c543b784c1254539",
|
||||
"sha256:df2c707231459e8a4028eabcd3cfc827befd635b3ef72eada84ab13b52e1574d",
|
||||
"sha256:e62164b50f84e20601c1ff8eb55620d2ad25fb81b59e3cd776a1902527a788af",
|
||||
"sha256:e696f0dd336161fca9adbb846875d40752e6eba585843c768935ba5c9960722b",
|
||||
"sha256:eaa379fcd227ca235d04152ca6704c7cb55564116f8bc52545ff357628e10602",
|
||||
"sha256:ebea339af930f8ca5d7a699b921106c6e29c617fe9606fa7baa043c1cdae326f",
|
||||
"sha256:f4c39b0e3eac288fedc2b43055cfc2ca7a60362d0e5e87a637beac5d801ef478",
|
||||
"sha256:f5057856d21e7586765171eac8b9fc3f7d44ef39425f85dbcccb13b3ebea806c",
|
||||
"sha256:f6f45710b4459401609ebebdbcfb34515da4fc2aa886f95107f556ac69a9147e",
|
||||
"sha256:f97e83fa6c25693c7a35de154681fcc257c1c41b38beb0304b9c4d2d9e164479",
|
||||
"sha256:f9d0c5c045a3ca9bedfc35dca8526798eb91a07aa7a2c0fee134c6c6f321cbd7",
|
||||
"sha256:ff6f3db31555657f3163b15a6b7c6938d08df7adbfc9dd13d9d19edad678f1e8"
|
||||
"sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6",
|
||||
"sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1",
|
||||
"sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e",
|
||||
"sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373",
|
||||
"sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62",
|
||||
"sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230",
|
||||
"sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be",
|
||||
"sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c",
|
||||
"sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0",
|
||||
"sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448",
|
||||
"sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f",
|
||||
"sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649",
|
||||
"sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d",
|
||||
"sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0",
|
||||
"sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706",
|
||||
"sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a",
|
||||
"sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59",
|
||||
"sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23",
|
||||
"sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5",
|
||||
"sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb",
|
||||
"sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e",
|
||||
"sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e",
|
||||
"sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c",
|
||||
"sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28",
|
||||
"sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d",
|
||||
"sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41",
|
||||
"sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974",
|
||||
"sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce",
|
||||
"sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f",
|
||||
"sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1",
|
||||
"sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d",
|
||||
"sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8",
|
||||
"sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017",
|
||||
"sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31",
|
||||
"sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7",
|
||||
"sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8",
|
||||
"sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e",
|
||||
"sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14",
|
||||
"sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd",
|
||||
"sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d",
|
||||
"sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795",
|
||||
"sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b",
|
||||
"sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b",
|
||||
"sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b",
|
||||
"sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203",
|
||||
"sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f",
|
||||
"sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19",
|
||||
"sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1",
|
||||
"sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a",
|
||||
"sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac",
|
||||
"sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9",
|
||||
"sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0",
|
||||
"sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137",
|
||||
"sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f",
|
||||
"sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6",
|
||||
"sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5",
|
||||
"sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909",
|
||||
"sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f",
|
||||
"sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0",
|
||||
"sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324",
|
||||
"sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755",
|
||||
"sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb",
|
||||
"sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854",
|
||||
"sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c",
|
||||
"sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60",
|
||||
"sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84",
|
||||
"sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0",
|
||||
"sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b",
|
||||
"sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1",
|
||||
"sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531",
|
||||
"sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1",
|
||||
"sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11",
|
||||
"sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326",
|
||||
"sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df",
|
||||
"sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.0.1"
|
||||
"markers": "python_full_version >= '3.7.0'",
|
||||
"version": "==3.1.0"
|
||||
},
|
||||
"click": {
|
||||
"hashes": [
|
||||
@ -153,11 +140,11 @@
|
||||
},
|
||||
"elementpath": {
|
||||
"hashes": [
|
||||
"sha256:6122419481a4c73101918714274b2cec907feecd04a44b623b4bae4292853328",
|
||||
"sha256:cca18742dc0f354f79874c41a906e6ce4cc15230b7858d22a861e1ec5946940f"
|
||||
"sha256:2b1b524223d70fd6dd63a36b9bc32e4919c96a272c2d1454094c4d85086bc6f8",
|
||||
"sha256:dbd7eba3cf0b3b4934f627ba24851a3e0798ef2bc9104555a4cd831f2e6e8e14"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==3.0.2"
|
||||
"version": "==4.1.0"
|
||||
},
|
||||
"htmlmin": {
|
||||
"hashes": [
|
||||
@ -190,11 +177,11 @@
|
||||
},
|
||||
"json-schema-for-humans": {
|
||||
"hashes": [
|
||||
"sha256:1d4359e25717418e06cd673aec9c5cea2c89466d077ba118884dffa058fe05a6",
|
||||
"sha256:6c8f470f645ae4d89d0aac7d4fcd1c123e00a0570f90fe2e5200058465c551c2"
|
||||
"sha256:1e34f1ae053c0884a52bcfc415f8de10a9dc918554523912f53015d202549f37",
|
||||
"sha256:62a72dd2edb064fb6f2cb6939670185b80a79317b1e7cdb2132634287b142493"
|
||||
],
|
||||
"markers": "python_version >= '3.7' and python_version < '4.0'",
|
||||
"version": "==0.44"
|
||||
"version": "==0.44.4"
|
||||
},
|
||||
"jsonschema": {
|
||||
"hashes": [
|
||||
@ -225,11 +212,11 @@
|
||||
},
|
||||
"markdown2": {
|
||||
"hashes": [
|
||||
"sha256:528f978beb3dbcf529a139b6c76f6ac6ecf8bb96c131beab751bb095b3873b58",
|
||||
"sha256:f65b4dbe1e16591b14fd40bc659b8b58d285eab70c1da21f390294fcdec42bb0"
|
||||
"sha256:7d49ca871d3e0e412c65d7d21fcbc13ae897f7876f3e5f14dd4db3b7fbf27f10",
|
||||
"sha256:90475aca3d9c8e7df6d70c51de5bbbe9edf7fcf6a380bd1044d321500f5445da"
|
||||
],
|
||||
"markers": "python_version >= '3.5' and python_version < '4'",
|
||||
"version": "==2.4.6"
|
||||
"version": "==2.4.8"
|
||||
},
|
||||
"markupsafe": {
|
||||
"hashes": [
|
||||
@ -304,26 +291,27 @@
|
||||
},
|
||||
"menagerie-docs": {
|
||||
"hashes": [
|
||||
"sha256:214fb87bf94ce1b814c718ae98e319ef470fe3ea0b01f215ab43e46623289e92",
|
||||
"sha256:b20d0f099edd3316f00e72ef754d885982a3f80c80c70ca8a01d43721388813b"
|
||||
"sha256:ad6ff178b3edc493b7e031d932616e4aaef788c2e796494e729fb2fb96c334eb",
|
||||
"sha256:bfd5b78c8a2931983a1941ee2e96204b93e5ff90f5bbc0e0178c763de42b844f"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.1.13"
|
||||
"version": "==0.1.14"
|
||||
},
|
||||
"more-itertools": {
|
||||
"hashes": [
|
||||
"sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41",
|
||||
"sha256:5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab"
|
||||
"sha256:cabaa341ad0389ea83c17a94566a53ae4c9d07349861ecb14dc6d0345cf9ac5d",
|
||||
"sha256:d2bc7f02446e86a68911e58ded76d6561eea00cddfb2a91e7019bbb586c799f3"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==9.0.0"
|
||||
"version": "==9.1.0"
|
||||
},
|
||||
"mypy-extensions": {
|
||||
"hashes": [
|
||||
"sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d",
|
||||
"sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"
|
||||
"sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d",
|
||||
"sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"
|
||||
],
|
||||
"version": "==0.4.3"
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==1.0.0"
|
||||
},
|
||||
"ndicts": {
|
||||
"hashes": [
|
||||
@ -467,10 +455,10 @@
|
||||
},
|
||||
"pytz": {
|
||||
"hashes": [
|
||||
"sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c",
|
||||
"sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"
|
||||
"sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588",
|
||||
"sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"
|
||||
],
|
||||
"version": "==2021.3"
|
||||
"version": "==2023.3"
|
||||
},
|
||||
"pyyaml": {
|
||||
"hashes": [
|
||||
@ -584,19 +572,19 @@
|
||||
},
|
||||
"soupsieve": {
|
||||
"hashes": [
|
||||
"sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759",
|
||||
"sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"
|
||||
"sha256:49e5368c2cda80ee7e84da9dbe3e110b70a4575f196efb74e51b94549d921955",
|
||||
"sha256:e28dba9ca6c7c00173e34e4ba57448f0688bb681b7c5e8bf4971daafc093d69a"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.3.2.post1"
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.4"
|
||||
},
|
||||
"typing-extensions": {
|
||||
"hashes": [
|
||||
"sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa",
|
||||
"sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"
|
||||
"sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb",
|
||||
"sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==4.4.0"
|
||||
"version": "==4.5.0"
|
||||
},
|
||||
"typing-inspect": {
|
||||
"hashes": [
|
||||
@ -607,19 +595,19 @@
|
||||
},
|
||||
"urllib3": {
|
||||
"hashes": [
|
||||
"sha256:076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72",
|
||||
"sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1"
|
||||
"sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305",
|
||||
"sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
|
||||
"version": "==1.26.14"
|
||||
"version": "==1.26.15"
|
||||
},
|
||||
"xmlschema": {
|
||||
"hashes": [
|
||||
"sha256:5717a8a239637a9ad7d7563ce676dddf0a8989644c833f96bfc6d157c3cb3750",
|
||||
"sha256:5ca34ff15dd3276cfb2e3e7b4c8dde4b7d4d27080f333a93b6c3f817e90abddf"
|
||||
"sha256:0caa96668807b4b51c42a0fe2b6610752bc59f069615df3e34dcfffb962973fd",
|
||||
"sha256:557f3632b54b6ff10576736bba62e43db84eb60f6465a83818576cd9ffcc1799"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.1.1"
|
||||
"version": "==2.2.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,3 +21,5 @@ aaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
## 9/2/22
|
||||
|
||||
Where were you when new horizons docs died, im going gorbo mode
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user