8 Commits

81 changed files with 633 additions and 46 deletions

View File

@@ -1,3 +1,3 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyVersion("0.0.1")] [assembly: AssemblyVersion("0.0.2")]

View File

@@ -34,20 +34,26 @@ namespace Cryville.EEW.Unity {
} }
[JsonPolymorphic(TypeDiscriminatorPropertyName = "Type", UnknownDerivedTypeHandling = JsonUnknownDerivedTypeHandling.FallBackToBaseType)] [JsonPolymorphic(TypeDiscriminatorPropertyName = "Type", UnknownDerivedTypeHandling = JsonUnknownDerivedTypeHandling.FallBackToBaseType)]
[JsonDerivedType(typeof(BMKGOpenDataEventSourceConfig), "BMKGOpenData")]
[JsonDerivedType(typeof(CWAOpenDataEventSourceConfig), "CWAOpenData")] [JsonDerivedType(typeof(CWAOpenDataEventSourceConfig), "CWAOpenData")]
[JsonDerivedType(typeof(EMSCRealTimeEventSourceConfig), "EMSCRealTime")]
[JsonDerivedType(typeof(GlobalQuakeServerEventSourceConfig), "GlobalQuakeServer")] [JsonDerivedType(typeof(GlobalQuakeServerEventSourceConfig), "GlobalQuakeServer")]
[JsonDerivedType(typeof(GlobalQuakeServer15EventSourceConfig), "GlobalQuakeServer15")] [JsonDerivedType(typeof(GlobalQuakeServer15EventSourceConfig), "GlobalQuakeServer15")]
[JsonDerivedType(typeof(JMAAtomEventSourceConfig), "JMAAtom")] [JsonDerivedType(typeof(JMAAtomEventSourceConfig), "JMAAtom")]
[JsonDerivedType(typeof(NOAAEventSourceConfig), "NOAA")] [JsonDerivedType(typeof(NOAAEventSourceConfig), "NOAA")]
[JsonDerivedType(typeof(UpdateCheckerEventSourceConfig), "UpdateChecker")] [JsonDerivedType(typeof(UpdateCheckerEventSourceConfig), "UpdateChecker")]
[JsonDerivedType(typeof(USGSQuakeMLEventSourceConfig), "USGSQuakeML")]
[JsonDerivedType(typeof(WolfxEventSourceConfig), "Wolfx")] [JsonDerivedType(typeof(WolfxEventSourceConfig), "Wolfx")]
abstract record EventSourceConfig(); abstract record EventSourceConfig();
record BMKGOpenDataEventSourceConfig([property: JsonRequired] string[] Subtypes) : EventSourceConfig;
record CWAOpenDataEventSourceConfig([property: JsonRequired] string Subtype, [property: JsonRequired] string Token) : EventSourceConfig; record CWAOpenDataEventSourceConfig([property: JsonRequired] string Subtype, [property: JsonRequired] string Token) : EventSourceConfig;
record EMSCRealTimeEventSourceConfig() : EventSourceConfig;
record GlobalQuakeServerEventSourceConfig([property: JsonRequired] string Host, int Port = 38000) : EventSourceConfig; record GlobalQuakeServerEventSourceConfig([property: JsonRequired] string Host, int Port = 38000) : EventSourceConfig;
record GlobalQuakeServer15EventSourceConfig(string Host, int Port = 38000) : GlobalQuakeServerEventSourceConfig(Host, Port); record GlobalQuakeServer15EventSourceConfig(string Host, int Port = 38000) : GlobalQuakeServerEventSourceConfig(Host, Port);
record JMAAtomEventSourceConfig(IReadOnlyCollection<string> Filter = null, bool IsFilterWhitelist = false) : EventSourceConfig; record JMAAtomEventSourceConfig(IReadOnlyCollection<string> Filter = null, bool IsFilterWhitelist = false) : EventSourceConfig;
record NOAAEventSourceConfig([property: JsonRequired] string Subtype) : EventSourceConfig; record NOAAEventSourceConfig([property: JsonRequired] string Subtype) : EventSourceConfig;
record UpdateCheckerEventSourceConfig : EventSourceConfig; record UpdateCheckerEventSourceConfig : EventSourceConfig;
record USGSQuakeMLEventSourceConfig([property: JsonRequired] string Subtype) : EventSourceConfig;
record WolfxEventSourceConfig(IReadOnlyCollection<string> Filter = null, bool IsFilterWhitelist = false) : EventSourceConfig; record WolfxEventSourceConfig(IReadOnlyCollection<string> Filter = null, bool IsFilterWhitelist = false) : EventSourceConfig;
[JsonSerializable(typeof(Config))] [JsonSerializable(typeof(Config))]

View File

@@ -1,9 +1,12 @@
using Cryville.EEW.BMKGOpenData.Map;
using Cryville.EEW.Core; using Cryville.EEW.Core;
using Cryville.EEW.CWAOpenData.Map; using Cryville.EEW.CWAOpenData.Map;
using Cryville.EEW.EMSC.Map;
using Cryville.EEW.GlobalQuake.Map; using Cryville.EEW.GlobalQuake.Map;
using Cryville.EEW.JMAAtom.Map; using Cryville.EEW.JMAAtom.Map;
using Cryville.EEW.Map; using Cryville.EEW.Map;
using Cryville.EEW.NOAA.Map; using Cryville.EEW.NOAA.Map;
using Cryville.EEW.QuakeML.Map;
using Cryville.EEW.Report; using Cryville.EEW.Report;
using Cryville.EEW.Wolfx.Map; using Cryville.EEW.Wolfx.Map;
using System.Collections.Generic; using System.Collections.Generic;
@@ -23,6 +26,7 @@ namespace Cryville.EEW.Unity.Map {
readonly List<int> _displayingOrder = new(); readonly List<int> _displayingOrder = new();
public int Count => _displayingReports.Count; public int Count => _displayingReports.Count;
public int OngoingCount => _displayingReports.Count - (_selected != null ? 1 : 0);
[SerializeField] MapElementManager m_subManager; [SerializeField] MapElementManager m_subManager;
@@ -123,16 +127,19 @@ namespace Cryville.EEW.Unity.Map {
} }
readonly ContextedGeneratorManager<IMapGeneratorContext, MapElement> _gen = new(new IContextedGenerator<IMapGeneratorContext, MapElement>[] { readonly ContextedGeneratorManager<IMapGeneratorContext, MapElement> _gen = new(new IContextedGenerator<IMapGeneratorContext, MapElement>[] {
new BMKGEarthquakeMapGenerator(),
new CENCEarthquakeMapGenerator(), new CENCEarthquakeMapGenerator(),
new CENCEEWMapGenerator(), new CENCEEWMapGenerator(),
new CWAEarthquakeMapGenerator(), new CWAEarthquakeMapGenerator(),
new CWAEEWMapGenerator(), new CWAEEWMapGenerator(),
new CWATsunamiMapGenerator(), new CWATsunamiMapGenerator(),
new EMSCRealTimeEventMapGenerator(),
new FujianEEWMapGenerator(), new FujianEEWMapGenerator(),
new GlobalQuakeMapViewGenerator(), new GlobalQuakeMapViewGenerator(),
new JMAAtomMapGenerator(), new JMAAtomMapGenerator(),
new JMAEEWMapGenerator(), new JMAEEWMapGenerator(),
new NOAAMapGenerator(), new NOAAMapGenerator(),
new QuakeMLEventMapGenerator(),
new SichuanEEWMapGenerator(), new SichuanEEWMapGenerator(),
}); });
public UnityMapElement Build(object e, out CultureInfo culture, out int order) { public UnityMapElement Build(object e, out CultureInfo culture, out int order) {

View File

@@ -1,6 +1,5 @@
using Cryville.EEW.Core.Map; using Cryville.EEW.Core.Map;
using System; using System;
using System.Diagnostics.CodeAnalysis;
using System.IO; using System.IO;
using System.Net.Http; using System.Net.Http;
using System.Threading; using System.Threading;
@@ -67,7 +66,6 @@ namespace Cryville.EEW.Unity.Map {
_downloadDone = true; _downloadDone = true;
} }
[SuppressMessage("CodeQuality", "IDE0051", Justification = "Unity message")]
void Update() { void Update() {
if (_downloadDone) { if (_downloadDone) {
try { try {
@@ -100,7 +98,6 @@ namespace Cryville.EEW.Unity.Map {
_callback?.Invoke(this); _callback?.Invoke(this);
} }
[SuppressMessage("CodeQuality", "IDE0051", Justification = "Unity message")]
void OnDestroy() { void OnDestroy() {
if (_req != null) { if (_req != null) {
_req.Abort(); _req.Abort();

View File

@@ -77,7 +77,13 @@ namespace Cryville.EEW.Unity.Map {
DTSweep.Triangulate(tcx); DTSweep.Triangulate(tcx);
var codeToIndex = new Dictionary<uint, int>(); var codeToIndex = new Dictionary<uint, int>();
var vertices = ArrayPool<Vector3>.Shared.Rent(convertedPolygon.Points.Count); int vertexCount = convertedPolygon.Points.Count;
if (convertedPolygon.Holes != null) {
foreach (var hole in convertedPolygon.Holes) {
vertexCount += hole.Points.Count;
}
}
var vertices = ArrayPool<Vector3>.Shared.Rent(vertexCount);
var triangles = ArrayPool<int>.Shared.Rent(convertedPolygon.Triangles.Count * 3); var triangles = ArrayPool<int>.Shared.Rent(convertedPolygon.Triangles.Count * 3);
int vi = 0, ii = 0; int vi = 0, ii = 0;
foreach (var tri in convertedPolygon.Triangles) { foreach (var tri in convertedPolygon.Triangles) {

View File

@@ -1,21 +1,27 @@
using Cryville.EEW.BMKGOpenData;
using Cryville.EEW.BMKGOpenData.TTS;
using Cryville.EEW.Core; using Cryville.EEW.Core;
using Cryville.EEW.CWAOpenData; using Cryville.EEW.CWAOpenData;
using Cryville.EEW.CWAOpenData.Model; using Cryville.EEW.CWAOpenData.Model;
using Cryville.EEW.CWAOpenData.TTS; using Cryville.EEW.CWAOpenData.TTS;
using Cryville.EEW.EMSC;
using Cryville.EEW.GlobalQuake; using Cryville.EEW.GlobalQuake;
using Cryville.EEW.JMAAtom; using Cryville.EEW.JMAAtom;
using Cryville.EEW.JMAAtom.TTS; using Cryville.EEW.JMAAtom.TTS;
using Cryville.EEW.NOAA; using Cryville.EEW.NOAA;
using Cryville.EEW.NOAA.TTS; using Cryville.EEW.NOAA.TTS;
using Cryville.EEW.QuakeML;
using Cryville.EEW.Report; using Cryville.EEW.Report;
using Cryville.EEW.Unity.Map; using Cryville.EEW.Unity.Map;
using Cryville.EEW.Unity.UI; using Cryville.EEW.Unity.UI;
using Cryville.EEW.UpdateChecker; using Cryville.EEW.UpdateChecker;
using Cryville.EEW.USGS;
using Cryville.EEW.Wolfx; using Cryville.EEW.Wolfx;
using Cryville.EEW.Wolfx.Model; using Cryville.EEW.Wolfx.Model;
using Cryville.EEW.Wolfx.TTS; using Cryville.EEW.Wolfx.TTS;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Globalization;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
@@ -80,20 +86,24 @@ namespace Cryville.EEW.Unity {
} }
static void RegisterViewModelGenerators(CoreWorker worker) { static void RegisterViewModelGenerators(CoreWorker worker) {
worker.RegisterViewModelGenerator(new BMKGEarthquakeRVMGenerator());
worker.RegisterViewModelGenerator(new CENCEarthquakeRVMGenerator()); worker.RegisterViewModelGenerator(new CENCEarthquakeRVMGenerator());
worker.RegisterViewModelGenerator(new CENCEEWRVMGenerator()); worker.RegisterViewModelGenerator(new CENCEEWRVMGenerator());
worker.RegisterViewModelGenerator(new CWAEarthquakeRVMGenerator()); worker.RegisterViewModelGenerator(new CWAEarthquakeRVMGenerator());
worker.RegisterViewModelGenerator(new CWAEEWRVMGenerator()); worker.RegisterViewModelGenerator(new CWAEEWRVMGenerator());
worker.RegisterViewModelGenerator(new CWATsunamiRVMGenerator()); worker.RegisterViewModelGenerator(new CWATsunamiRVMGenerator());
worker.RegisterViewModelGenerator(new EMSCRealTimeEventRVMGenerator());
worker.RegisterViewModelGenerator(new FujianEEWRVMGenerator()); worker.RegisterViewModelGenerator(new FujianEEWRVMGenerator());
worker.RegisterViewModelGenerator(new GlobalQuakeRVMGenerator()); worker.RegisterViewModelGenerator(new GlobalQuakeRVMGenerator());
worker.RegisterViewModelGenerator(new JMAAtomRVMGenerator()); worker.RegisterViewModelGenerator(new JMAAtomRVMGenerator());
worker.RegisterViewModelGenerator(new JMAEEWRVMGenerator()); worker.RegisterViewModelGenerator(new JMAEEWRVMGenerator());
worker.RegisterViewModelGenerator(new NOAAAtomRVMGenerator()); worker.RegisterViewModelGenerator(new NOAAAtomRVMGenerator());
worker.RegisterViewModelGenerator(new QuakeMLEventRVMGenerator());
worker.RegisterViewModelGenerator(new SichuanEEWRVMGenerator()); worker.RegisterViewModelGenerator(new SichuanEEWRVMGenerator());
worker.RegisterViewModelGenerator(new VersionRVMGenerator()); worker.RegisterViewModelGenerator(new VersionRVMGenerator());
} }
static void RegisterTTSMessageGenerators(CoreWorker worker) { static void RegisterTTSMessageGenerators(CoreWorker worker) {
worker.RegisterTTSMessageGenerator(new BMKGEarthquakeTTSMessageGenerator());
worker.RegisterTTSMessageGenerator(new CENCEarthquakeTTSMessageGenerator()); worker.RegisterTTSMessageGenerator(new CENCEarthquakeTTSMessageGenerator());
worker.RegisterTTSMessageGenerator(new CENCEEWTTSMessageGenerator()); worker.RegisterTTSMessageGenerator(new CENCEEWTTSMessageGenerator());
worker.RegisterTTSMessageGenerator(new CWAEarthquakeTTSMessageGenerator()); worker.RegisterTTSMessageGenerator(new CWAEarthquakeTTSMessageGenerator());
@@ -114,17 +124,22 @@ namespace Cryville.EEW.Unity {
_worker.AddWorker(new CWAReportWorker<Tsunami>(new Uri("http://localhost:9095/E-A0014-001.json"), "1")); _worker.AddWorker(new CWAReportWorker<Tsunami>(new Uri("http://localhost:9095/E-A0014-001.json"), "1"));
_worker.AddWorker(new CWAReportWorker<Earthquake>(new Uri("http://localhost:9095/E-A0015-001.json"), "1")); _worker.AddWorker(new CWAReportWorker<Earthquake>(new Uri("http://localhost:9095/E-A0015-001.json"), "1"));
_worker.AddWorker(new CWAReportWorker<Earthquake>(new Uri("http://localhost:9095/E-A0016-001.json"), "1")); _worker.AddWorker(new CWAReportWorker<Earthquake>(new Uri("http://localhost:9095/E-A0016-001.json"), "1"));
BMKGOpenDataWorker bmkgWorker = new(new Uri("http://localhost:9095/autogempa.json"));
bmkgWorker.SetDataUris(new Uri[] { new("http://localhost:9095/gempadirasakan.json") });
_worker.AddWorker(bmkgWorker);
_worker.AddWorker(new NOAAAtomWorker(new("http://localhost:9095/PAAQAtom.xml"))); _worker.AddWorker(new NOAAAtomWorker(new("http://localhost:9095/PAAQAtom.xml")));
_worker.AddWorker(new UpdateCheckerWorker(typeof(Worker).Assembly.GetName().Version?.ToString(3) ?? "", "unity")); _worker.AddWorker(new UpdateCheckerWorker(typeof(Worker).Assembly.GetName().Version?.ToString(3) ?? "", "unity"));
#else #else
foreach (var source in SharedSettings.Instance.EventSources) { foreach (var source in SharedSettings.Instance.EventSources) {
_worker.AddWorker(source switch { _worker.AddWorker(source switch {
BMKGOpenDataEventSourceConfig bmkgOpenData => BuildBMKGOpenDataWorkerUris(new BMKGOpenDataWorker(new("https://data.bmkg.go.id/DataMKG/TEWS/autogempa.json")), bmkgOpenData),
CWAOpenDataEventSourceConfig cwaOpenData => cwaOpenData.Subtype switch { CWAOpenDataEventSourceConfig cwaOpenData => cwaOpenData.Subtype switch {
"E-A0014-001" => new CWAReportWorker<Tsunami>(new Uri("https://opendata.cwa.gov.tw/api/v1/rest/datastore/E-A0014-001"), cwaOpenData.Token, 1440, 17280), "E-A0014-001" => new CWAReportWorker<Tsunami>(new Uri("https://opendata.cwa.gov.tw/api/v1/rest/datastore/E-A0014-001"), cwaOpenData.Token, 1440, 17280),
"E-A0015-001" => new CWAReportWorker<Earthquake>(new Uri("https://opendata.cwa.gov.tw/api/v1/rest/datastore/E-A0015-001"), cwaOpenData.Token), "E-A0015-001" => new CWAReportWorker<Earthquake>(new Uri("https://opendata.cwa.gov.tw/api/v1/rest/datastore/E-A0015-001"), cwaOpenData.Token),
"E-A0016-001" => new CWAReportWorker<Earthquake>(new Uri("https://opendata.cwa.gov.tw/api/v1/rest/datastore/E-A0016-001"), cwaOpenData.Token), "E-A0016-001" => new CWAReportWorker<Earthquake>(new Uri("https://opendata.cwa.gov.tw/api/v1/rest/datastore/E-A0016-001"), cwaOpenData.Token),
_ => throw new InvalidOperationException("Unknown CWA open data sub-type."), _ => throw new InvalidOperationException("Unknown CWA open data sub-type."),
}, },
EMSCRealTimeEventSourceConfig => new EMSCRealTimeWorker(new("wss://www.seismicportal.eu/standing_order/websocket")),
GlobalQuakeServer15EventSourceConfig gq => new GlobalQuakeWorker15(gq.Host, gq.Port), GlobalQuakeServer15EventSourceConfig gq => new GlobalQuakeWorker15(gq.Host, gq.Port),
GlobalQuakeServerEventSourceConfig gq => new GlobalQuakeWorker(gq.Host, gq.Port), GlobalQuakeServerEventSourceConfig gq => new GlobalQuakeWorker(gq.Host, gq.Port),
JMAAtomEventSourceConfig jmaAtom => BuildJMAAtomWorkerFilter(new JMAAtomWorker(new("https://www.data.jma.go.jp/developer/xml/feed/eqvol.xml")), jmaAtom), JMAAtomEventSourceConfig jmaAtom => BuildJMAAtomWorkerFilter(new JMAAtomWorker(new("https://www.data.jma.go.jp/developer/xml/feed/eqvol.xml")), jmaAtom),
@@ -134,18 +149,19 @@ namespace Cryville.EEW.Unity {
_ => throw new InvalidOperationException("Unknown NOAA sub-type."), _ => throw new InvalidOperationException("Unknown NOAA sub-type."),
}, },
UpdateCheckerEventSourceConfig => new UpdateCheckerWorker(typeof(Worker).Assembly.GetName().Version?.ToString(3) ?? "", "unity"), UpdateCheckerEventSourceConfig => new UpdateCheckerWorker(typeof(Worker).Assembly.GetName().Version?.ToString(3) ?? "", "unity"),
USGSQuakeMLEventSourceConfig usgsQuakeML => BuildUSGSQuakeMLWorkerUri(new USGSQuakeMLWorker(new Uri("https://earthquake.usgs.gov/earthquakes/feed/v1.0/quakeml.php")), usgsQuakeML),
WolfxEventSourceConfig wolfx => BuildWolfxWorkerFilter(new WolfxWorker(new Uri("wss://ws-api.wolfx.jp/all_eew")), wolfx), WolfxEventSourceConfig wolfx => BuildWolfxWorkerFilter(new WolfxWorker(new Uri("wss://ws-api.wolfx.jp/all_eew")), wolfx),
_ => throw new InvalidOperationException("Unknown event source type."), _ => throw new InvalidOperationException("Unknown event source type."),
}); });
} }
#endif #endif
} }
JMAAtomWorker BuildJMAAtomWorkerFilter(JMAAtomWorker worker, JMAAtomEventSourceConfig config) { static JMAAtomWorker BuildJMAAtomWorkerFilter(JMAAtomWorker worker, JMAAtomEventSourceConfig config) {
if (config.Filter != null) worker.SetFilter(config.Filter); if (config.Filter != null) worker.SetFilter(config.Filter);
worker.IsFilterWhitelist = config.IsFilterWhitelist; worker.IsFilterWhitelist = config.IsFilterWhitelist;
return worker; return worker;
} }
WolfxWorker BuildWolfxWorkerFilter(WolfxWorker worker, WolfxEventSourceConfig config) { static WolfxWorker BuildWolfxWorkerFilter(WolfxWorker worker, WolfxEventSourceConfig config) {
if (config.Filter != null) worker.SetFilter(config.Filter.Select(i => i switch { if (config.Filter != null) worker.SetFilter(config.Filter.Select(i => i switch {
"cenc_eew" => typeof(CENCEEW), "cenc_eew" => typeof(CENCEEW),
"cenc_eqlist" => typeof(WolfxEarthquakeList<CENCEarthquake>), "cenc_eqlist" => typeof(WolfxEarthquakeList<CENCEarthquake>),
@@ -158,6 +174,14 @@ namespace Cryville.EEW.Unity {
worker.IsFilterWhitelist = config.IsFilterWhitelist; worker.IsFilterWhitelist = config.IsFilterWhitelist;
return worker; return worker;
} }
static BMKGOpenDataWorker BuildBMKGOpenDataWorkerUris(BMKGOpenDataWorker worker, BMKGOpenDataEventSourceConfig config) {
worker.SetDataUris(config.Subtypes.Select(i => new Uri(string.Format(CultureInfo.InvariantCulture, "https://data.bmkg.go.id/DataMKG/TEWS/{0}.json", i))));
return worker;
}
static USGSQuakeMLWorker BuildUSGSQuakeMLWorkerUri(USGSQuakeMLWorker worker, USGSQuakeMLEventSourceConfig config) {
worker.SetFeedRelativeUri(new(string.Format(CultureInfo.InvariantCulture, "/earthquakes/feed/v1.0/summary/{0}.quakeml", config.Subtype), UriKind.Relative));
return worker;
}
readonly OngoingReportManager _ongoingReportManager = new(); readonly OngoingReportManager _ongoingReportManager = new();
readonly ConcurrentQueue<Action> _uiActionQueue = new(); readonly ConcurrentQueue<Action> _uiActionQueue = new();
@@ -167,11 +191,13 @@ namespace Cryville.EEW.Unity {
Debug.LogError(e); Debug.LogError(e);
_ongoingReportManager.Report(e); _ongoingReportManager.Report(e);
_uiActionQueue.Enqueue(() => { _uiActionQueue.Enqueue(() => {
m_mapElementManager.SetSelected(e); if (m_mapElementManager.OngoingCount == 0) {
m_mapElementManager.SetSelected(e);
m_cameraController.OnMapElementUpdated();
}
if (e.InvalidatedTime == null && (!(e.RevisionKey?.IsCancellation ?? false))) { if (e.InvalidatedTime == null && (!(e.RevisionKey?.IsCancellation ?? false))) {
_latestHistoryReport = e; _latestHistoryReport = e;
} }
m_cameraController.OnMapElementUpdated();
}); });
} }
void OnOngoingReported(ReportViewModel item, CollectionChangeAction action) { void OnOngoingReported(ReportViewModel item, CollectionChangeAction action) {
@@ -181,7 +207,6 @@ namespace Cryville.EEW.Unity {
m_mapElementManager.SetSelected(null); m_mapElementManager.SetSelected(null);
} }
m_ongoingEventList.Add(item); m_ongoingEventList.Add(item);
m_cameraController.OnMapElementUpdated();
}); });
} }
else if (action == CollectionChangeAction.Remove) { else if (action == CollectionChangeAction.Remove) {
@@ -191,7 +216,6 @@ namespace Cryville.EEW.Unity {
m_mapElementManager.SetSelected(_latestHistoryReport, true); m_mapElementManager.SetSelected(_latestHistoryReport, true);
} }
m_ongoingEventList.Remove(item); m_ongoingEventList.Remove(item);
m_cameraController.OnMapElementUpdated();
}); });
} }
} }

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 9c2c20067e0adc54c813350fd61f9a3a
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: e9164d2df3d1c03499419935666416ae
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 152cea136489ac044b7c12c66ba72b53
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: e1ef9470a2a1d7b4da9ddd106620b665
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 48f0c884a8a1e4043948f765ed18e4bc
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 4d3d5b78e07866347b2ba028b4bd3ef8
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: ec4fba30706c64142a5504e3f0e64620
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: b3347ce24f73cab44a4191aa8976d88a
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -519,7 +519,7 @@
<param name="Properties">The properties of the feature.</param> <param name="Properties">The properties of the feature.</param>
<param name="BoundingBox">The bounding box.</param> <param name="BoundingBox">The bounding box.</param>
</member> </member>
<member name="M:Cryville.EEW.Models.GeoJSON.Feature.#ctor(System.Object,Cryville.EEW.Models.GeoJSON.Geometry,System.Collections.Generic.IDictionary{System.String,System.Object},System.Double[])"> <member name="M:Cryville.EEW.Models.GeoJSON.Feature.#ctor(System.Text.Json.JsonElement,Cryville.EEW.Models.GeoJSON.Geometry,System.Collections.Generic.IDictionary{System.String,System.Text.Json.JsonElement},System.Double[])">
<summary> <summary>
Represents a spatially bounded thing. Represents a spatially bounded thing.
</summary> </summary>
@@ -741,143 +741,143 @@
<member name="M:Cryville.EEW.Models.GeoJSON.PositionConverter.Write(System.Text.Json.Utf8JsonWriter,Cryville.EEW.Models.GeoJSON.Position,System.Text.Json.JsonSerializerOptions)"> <member name="M:Cryville.EEW.Models.GeoJSON.PositionConverter.Write(System.Text.Json.Utf8JsonWriter,Cryville.EEW.Models.GeoJSON.Position,System.Text.Json.JsonSerializerOptions)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="T:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext"> <member name="T:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext">
<summary> <summary>
<see cref="T:System.Text.Json.Serialization.JsonSerializerContext" /> for GeoJSON objects. <see cref="T:System.Text.Json.Serialization.JsonSerializerContext" /> for GeoJSON objects.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.Double"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.Double">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.NullableDouble"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.NullableDouble">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.DoubleArray"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.DoubleArray">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.Feature"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.Feature">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.FeatureArray"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.FeatureArray">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.FeatureCollection"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.FeatureCollection">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.GeoJSONObject"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.GeoJSONObject">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.Geometry"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.Geometry">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.GeometryArray"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.GeometryArray">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.GeometryCollection"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.GeometryCollection">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.LineString"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.LineString">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.MultiLineString"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.MultiLineString">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.MultiPoint"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.MultiPoint">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.MultiPolygon"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.MultiPolygon">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.Point"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.Point">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.Polygon"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.Polygon">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.Position"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.Position">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.PositionArray"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.PositionArray">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.PositionArrayArray"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.PositionArrayArray">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.PositionArrayArrayArray"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.PositionArrayArrayArray">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.IDictionaryStringObject"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.IDictionaryStringJsonElement">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.Object"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.JsonElement">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.String"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.String">
<summary> <summary>
Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.Default"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.Default">
<summary> <summary>
The default <see cref="T:System.Text.Json.Serialization.JsonSerializerContext"/> associated with a default <see cref="T:System.Text.Json.JsonSerializerOptions"/> instance. The default <see cref="T:System.Text.Json.Serialization.JsonSerializerContext"/> associated with a default <see cref="T:System.Text.Json.JsonSerializerOptions"/> instance.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.GeneratedSerializerOptions"> <member name="P:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.GeneratedSerializerOptions">
<summary> <summary>
The source-generated options associated with this context. The source-generated options associated with this context.
</summary> </summary>
</member> </member>
<member name="M:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.#ctor"> <member name="M:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.#ctor">
<inheritdoc/> <inheritdoc/>
</member> </member>
<member name="M:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.#ctor(System.Text.Json.JsonSerializerOptions)"> <member name="M:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.#ctor(System.Text.Json.JsonSerializerOptions)">
<inheritdoc/> <inheritdoc/>
</member> </member>
<member name="M:Cryville.EEW.Models.GeoJSON.GeoJSONSerializationContext.GetTypeInfo(System.Type)"> <member name="M:Cryville.EEW.Models.GeoJSON.GeoJSONSerializerContext.GetTypeInfo(System.Type)">
<inheritdoc/> <inheritdoc/>
</member> </member>
<member name="T:Cryville.EEW.Models.XmlSerializedDateTimeOffset"> <member name="T:Cryville.EEW.Models.XmlSerializedDateTimeOffset">
@@ -1039,6 +1039,9 @@
<member name="P:Cryville.EEW.Report.EmptyRVMGeneratorContext.SeverityScheme"> <member name="P:Cryville.EEW.Report.EmptyRVMGeneratorContext.SeverityScheme">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="P:Cryville.EEW.Report.EmptyRVMGeneratorContext.LocationConverter">
<inheritdoc />
</member>
<member name="T:Cryville.EEW.Report.EmptySeverityScheme"> <member name="T:Cryville.EEW.Report.EmptySeverityScheme">
<summary> <summary>
An empty <see cref="T:Cryville.EEW.Report.ISeverityScheme" /> that always returns <c>-1</c>. An empty <see cref="T:Cryville.EEW.Report.ISeverityScheme" /> that always returns <c>-1</c>.
@@ -1189,6 +1192,11 @@
The severity scheme. The severity scheme.
</summary> </summary>
</member> </member>
<member name="P:Cryville.EEW.Report.IRVMGeneratorContext.LocationConverter">
<summary>
The location converter.
</summary>
</member>
<member name="T:Cryville.EEW.Report.ISeverityScheme"> <member name="T:Cryville.EEW.Report.ISeverityScheme">
<summary> <summary>
Represents a severity scheme, extracting severity values from different properties. Represents a severity scheme, extracting severity values from different properties.
@@ -1497,6 +1505,11 @@
The culture <c>en-US</c>. The culture <c>en-US</c>.
</summary> </summary>
</member> </member>
<member name="F:Cryville.EEW.SharedCultures.IdIdCulture">
<summary>
The culture <c>id-ID</c>.
</summary>
</member>
<member name="F:Cryville.EEW.SharedCultures.JaJpCulture"> <member name="F:Cryville.EEW.SharedCultures.JaJpCulture">
<summary> <summary>
The culture <c>ja-JP</c>. The culture <c>ja-JP</c>.
@@ -1549,6 +1562,11 @@
China Standard Time. China Standard Time.
</summary> </summary>
</member> </member>
<member name="F:Cryville.EEW.SharedTimeZones.SEAsia">
<summary>
SE Asia Standard Time.
</summary>
</member>
<member name="F:Cryville.EEW.SharedTimeZones.Taipei"> <member name="F:Cryville.EEW.SharedTimeZones.Taipei">
<summary> <summary>
Taipei Standard Time. Taipei Standard Time.

BIN
Assets/Plugins/QuakeML.dll Normal file

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: a5809b30a2765e54aa6f2b5d15c00a76
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 75452b90c729a7248958090ab7acd6fd
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,12 @@
{
"Culture": "en-US",
"Strings": {
"Headline": "An earthquake{1} occurred at {0:HH:mm:ss 'on' MMM dd yyyy} Western Indonesia Time.{2}",
"HeadlineDepth": " Hypocenter depth {0}km.",
"HeadlineMagnitude": " of magnitude {0:F1}",
"MaxIntensity": "The maximum intensity observed is {0}.",
"Region": "The epicenter is in {0}.",
"Title": "Earthquake Data.",
"TitleStandAlone": "Earthquake Data"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e4420490220c6df4fb07cd0c63dec184
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,12 @@
{
"Culture": "id-ID",
"Strings": {
"Headline": "Telah terjadi gempa pada {0:dd MMMM yyyy 'pukul' H 'lewat' m 'menit' s 'detik'} Waktu Indonesia Barat{1}{2}.",
"HeadlineDepth": ", pada kedalaman {0} km",
"HeadlineMagnitude": ", dengan magnitudo {0:F1}",
"MaxIntensity": "Intensitas gempa maksimum yang dirasakan adalah {0}.",
"Region": "Pusat gempa berada di {0}.",
"Title": "Data Gempabumi.",
"TitleStandAlone": "Data Gempabumi"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 76aa8016add210b489ed175d006ef35d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,12 @@
{
"Culture": "yue-HK",
"Strings": {
"Headline": "印度尼西亞西部時間{0},發生咗一次{1}地震。{2}",
"HeadlineDepth": "震源深度{0}公里。",
"HeadlineMagnitude": "規模{0:F1}級。",
"MaxIntensity": "觀測到嘅最大烈度為{0}。",
"Region": "震中位於{0}。",
"Title": "地震數據。",
"TitleStandAlone": "地震數據"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8e3514f18dcd7b74b9b54beccc44859a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,12 @@
{
"Culture": "zh-TW",
"Strings": {
"Headline": "印度尼西亞西部時間{0},發生了一次{1}地震。{2}",
"HeadlineDepth": "震源深度{0}公里。",
"HeadlineMagnitude": "規模{0:F1}級。",
"MaxIntensity": "觀測到的最大震度為{0}。",
"Region": "震中位於{0}。",
"Title": "地震數據。",
"TitleStandAlone": "地震數據"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: cfe65eab919d49d468d19f4ecc516dd8
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,12 @@
{
"Culture": "zh-CN",
"Strings": {
"Headline": "印度尼西亚西部时间{0},发生了一次{1}地震。{2}",
"HeadlineDepth": "震源深度{0}千米。",
"HeadlineMagnitude": "规模{0:F1}级",
"MaxIntensity": "观测到的最大烈度为{0}。",
"Region": "震中位于{0}。",
"Title": "地震数据。",
"TitleStandAlone": "地震数据"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 899b38f34c7628c4e936ec2bdfdd5410
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 470f88c90de9dd74387453bffdbf21f7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,6 @@
{
"Culture": "en-US",
"Strings": {
"SourceName": "BMKG Open Data"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a1d44f3546003e1498cfc23e8d16942f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,6 @@
{
"Culture": "id-ID",
"Strings": {
"SourceName": "Data Terbuka BMKG"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f3b9467d0b8b4054c818a5607dcc247a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,6 @@
{
"Culture": "yue-HK",
"Strings": {
"SourceName": "BMKG 開放數據"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a025449f2f513e14fbbd596f87d47cb3
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,6 @@
{
"Culture": "zh-TW",
"Strings": {
"SourceName": "BMKG 開放數據"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d7c4a0eac847b5e458d4aaead9380023
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,6 @@
{
"Culture": "zh-CN",
"Strings": {
"SourceName": "BMKG 开放数据"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 76619ea161099bc4ab2efb2ad0802bde
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 561a1f4df4315a04f9bcc5f961a8fd60
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,6 @@
{
"Culture": "en-US",
"Strings": {
"SourceName": "EMSC"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 717e698cdc268a74b990d4c756f2bbda
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
{
"Culture": "en-US",
"Parent": "und",
"Strings": {
"526": "Gulf of America"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 01d2f8da0a8c09b45a8d79163519000a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -75,7 +75,7 @@
"WEHW": "Hawaii", "WEHW": "Hawaii",
"WEPA": "non US Pacific", "WEPA": "non US Pacific",
"WEPA41": "Alaska, British Colombia, and US West Coast", "WEPA41": "Alaska, British Colombia, and US West Coast",
"WEXX": "US Atlantic, Gulf of Mexico, and Canada", "WEXX": "US Atlantic, Gulf of America, and Canada",
"WEZS": "American Samoa" "WEZS": "American Samoa"
} }
}, },
@@ -378,9 +378,9 @@
"WEPA40": "Tsunami Threat Message for Non US Pacific", "WEPA40": "Tsunami Threat Message for Non US Pacific",
"WEPA41": "Tsunami Warning, Advisory, and Watch for Alaska, British Colombia, and US West Coast", "WEPA41": "Tsunami Warning, Advisory, and Watch for Alaska, British Colombia, and US West Coast",
"WEPA42": "Tsunami Information Statement for Non US Pacific", "WEPA42": "Tsunami Information Statement for Non US Pacific",
"WEXX20": "Tsunami Warning, Advisory, and Watch for US Atlantic, Gulf of Mexico, and Canada", "WEXX20": "Tsunami Warning, Advisory, and Watch for US Atlantic, Gulf of America, and Canada",
"WEXX30": "Tsunami Warning, Advisory, and Watch for US Atlantic, Gulf of Mexico, and Canada", "WEXX30": "Tsunami Warning, Advisory, and Watch for US Atlantic, Gulf of America, and Canada",
"WEXX32": "Tsunami Information Statement for US Atlantic, Gulf of Mexico, and Canada", "WEXX32": "Tsunami Information Statement for US Atlantic, Gulf of America, and Canada",
"WEZS40": "Tsunami Warning, Advisory, and Watch for American Samoa", "WEZS40": "Tsunami Warning, Advisory, and Watch for American Samoa",
"WEZS42": "Tsunami Information Statement for American Samoa" "WEZS42": "Tsunami Information Statement for American Samoa"
} }

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 58a3af6a954cf284991d05d023df9ac8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,6 @@
{
"Culture": "en-US",
"Strings": {
"SourceName": "USGS"
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8319fb6384cd5254c86e9baae6810020
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -134,7 +134,7 @@ PlayerSettings:
16:10: 1 16:10: 1
16:9: 1 16:9: 1
Others: 1 Others: 1
bundleVersion: 0.0.1 bundleVersion: 0.0.2
preloadedAssets: [] preloadedAssets: []
metroInputSource: 0 metroInputSource: 0
wsaTransparentSwapchain: 0 wsaTransparentSwapchain: 0