Fix sandbox_high not registering properly - Change processor to use map id instead of name

This commit is contained in:
Dev 2024-04-22 22:17:04 +01:00
parent 87ff9ecb0c
commit f3c904e1d5
6 changed files with 43 additions and 42 deletions

View File

@ -1,5 +1,5 @@
---
Customs:
bigmap:
- 5938188786f77474f723e87f # Case 0031
- 5c12301c86f77419522ba7e4 # Flash drive with fake info
- 593965cf86f774087a77e1b6 # Case 0048
@ -15,7 +15,7 @@ Customs:
- 64e74a3d4d49d23b2c39d319 # item_quest_clock_07 (Out of Time)
#- 64bd1abff3a668f08805ce4f # Secure Flash drive V4 REMOVED BY BSG
Woods:
woods:
- 5938878586f7741b797c562f # Case 0052
- 5d3ec50586f774183a607442 # Jaeger's message Underneath the wooden lookout post.
- 5af04e0a86f7743a532b79e2 # Single-axis Fiber Optic Gyroscope: item_barter_electr_gyroscope
@ -24,7 +24,7 @@ Woods:
#- 64bde2248f3a947a990aa4a5 # Sliderkey Secure Flash drive #1 REMOVED BY BSG
#- 64bde265807321a9b905f076 # Sliderkey Secure Flash drive #2 REMOVED BY BSG
Shoreline:
shoreline:
- 5a294d7c86f7740651337cf9 # Drone 1 SAS disk
- 5a294d8486f774068638cd93 # Drone 2 SAS disk: ambiguous with itemTpl 5a294f1686f774340c7b7e4a
- 5efdafc1e70b5e33f86de058 # Sanitar's Surgery kit marked with a blue symbol
@ -42,7 +42,7 @@ Shoreline:
- 5a29284f86f77463ef3db363 # Toughbook reinforced laptop
- 64e74a534d49d23b2c39d31b # item_quest_clock_10 (Out of Time)
Interchange:
interchange:
- 5ae9a18586f7746e381e16a3 # OLI cargo manifests
- 5ae9a0dd86f7742e5f454a05 # Goshan cargo manifests
- 5ae9a1b886f77404c8537c62 # Idea cargo manifests
@ -53,11 +53,15 @@ Interchange:
- 5b4c81bd86f77418a75ae159 # Chemical container item_quest_chem_container3
- 64e74a5ac2b4f829615ec336 # item_quest_clock_11 (Out of Time)
Factory:
factory4_day:
- 591093bb86f7747caa7bb2ee # On the neck of the dead scav in the bunker (Postman Pat Part 2)
- 593a87af86f774122f54a951 # Syringe with a chemical
Lighthouse:
factory4_night:
- 591093bb86f7747caa7bb2ee # On the neck of the dead scav in the bunker (Postman Pat Part 2)
- 593a87af86f774122f54a951 # Syringe with a chemical
lighthouse:
- 61904c9df62c89219a56e034 # The message is tucked under the bottom of the door to the cabin.
- 619268ad78f4fa33f173dbe5 # Water pump operation data On the desk between other documents in the upper office.
- 619268de2be33f2604340159 # Pumping Station Operation Data In the upper floor office on the shelf.
@ -71,7 +75,7 @@ Lighthouse:
- 578f87a3245977356274f2cb #
# - 64b91627dd13d43b9d01d6d1 # Toughbook reinforced laptop (Event quest) REMOVED BY BSG
ReserveBase:
rezervbase:
- 60915994c49cf53e4772cc38 # Military documents 1 on the table inside bunker control room (Documents)
- 60a3b6359c427533db36cf84 # Military documents 2 On the bottom shelf of the cupboard near the corner.
- 60a3b65c27adf161da7b6e14 # Military documents 3 Inside the cupboard next to the 4x4 Weapon Box.
@ -82,7 +86,7 @@ ReserveBase:
- 6398a072e301557ae24cec92 # Original Lightkeeper Intelligence (Snatch)
- 64e74a4baac4cd0a7264ecdd # item_quest_clock_09 (Out of Time)
Laboratory:
laboratory:
- 5eff135be0d3331e9d282b7b # Flash drive marked with blue tape (TerraGroup employee)
- 6398a4cfb5992f573c6562b3 # Secured tape
#- 64e74a44c2b4f829615ec334 # item_quest_clock_08 (Out of Time) #1 REMOVED BY BSG
@ -90,7 +94,7 @@ Laboratory:
#- 64bdd008b0bf3baa6702f35f # Hermetic container for storing various chemicals #2 REMOVED BY BSG
#- 64bdd014f3a668f08805ce64 # Hermetic container for storing various chemicals #3 REMOVED BY BSG
Streets of Tarkov:
tarkovstreets:
- 63a943cead5cc12f22161ff7 # Accountant's notes (Audit)
- 638cbc68a63f1b49be6a3010 # Registered letter (Youve Got Mail)
- 638df4cc7b560b03794a18d2 # AG guitar pick (Audiophile)
@ -114,6 +118,10 @@ Streets of Tarkov:
- 64f5b4f71a5f313cb144c06c # Secret component (Beyond the Red Meat - Part 2)
- 657acb2ac900be5902191ac9 # Cadastral registry records
Sandbox:
sandbox:
- 6582bd252b50c61c565828e2 # Bottle of Le Jean wine
- 6575a6ca8778e96ded05a802 # TerraGroup scientist's hard drive
sandbox_high:
- 6582bd252b50c61c565828e2 # Bottle of Le Jean wine
- 6575a6ca8778e96ded05a802 # TerraGroup scientist's hard drive

View File

@ -5,17 +5,17 @@ static_weapon_ids:
- 5cdeb229d7f00c000e7ce174
forced_items:
Customs:
bigmap:
# unknown key
- containerId: custom_multiScene_00058
itemTpl: 593962ca86f774068014d9af
Streets of Tarkov:
tarkovstreets:
# Backup hideout key
- containerId: container_City_SE_02_DesignStuff_00025
itemTpl: 6398fd8ad3de3849057f5128
Sandbox:
sandbox:
- containerId: container_Test_for_export_00002 # Lab technician body
itemTpl: 658199aa38c79576a2569e13 # TerraGroup science office key
- containerId: container_custom_DesignStuff_00029 # dead body of scav near exit

View File

@ -55,16 +55,17 @@ public class MultithreadSteppedDumpProcessor : IDumpProcessor
if (LoggerFactory.GetInstance().CanBeLogged(LogLevel.Debug))
LoggerFactory.GetInstance().Log($"Processing static data for file {dumped.BasicInfo.FileName}", LogLevel.Debug);
var dataDump = _jsonSerializer.Deserialize<RootData>(File.ReadAllText(dumped.BasicInfo.FileName));
var mapName = dataDump.Data.Name;
//var mapName = dataDump.Data.Name;
var mapId = dataDump.Data.Id.ToLower();
// the if statement below takes care of processing "forced" or real static data for each map, only need
// to do this once per map, we dont care about doing it again
lock (staticContainersLock)
{
if (!staticContainers.ContainsKey(mapName))
if (!staticContainers.ContainsKey(mapId))
{
if (LoggerFactory.GetInstance().CanBeLogged(LogLevel.Info))
LoggerFactory.GetInstance().Log($"Doing first time process for map {mapName} of real static data", LogLevel.Info);
LoggerFactory.GetInstance().Log($"Doing first time process for map {mapId} of real static data", LogLevel.Info);
var mapStaticContainers = StaticLootProcessor.CreateStaticWeaponsAndStaticForcedContainers(dataDump);
// .Item1 = map name
// .Item2 = force/weapon static arrays
@ -77,10 +78,10 @@ public class MultithreadSteppedDumpProcessor : IDumpProcessor
lock (mapStaticContainersAggregatedLock)
{
// Init dict if map key doesnt exist
if (!mapStaticContainersAggregated.TryGetValue(mapName, out mapAggregatedDataDict))
if (!mapStaticContainersAggregated.TryGetValue(mapId, out mapAggregatedDataDict))
{
mapAggregatedDataDict = new Dictionary<Template, int>();
mapStaticContainersAggregated.Add(mapName, mapAggregatedDataDict);
mapStaticContainersAggregated.Add(mapId, mapAggregatedDataDict);
}
}
@ -93,10 +94,10 @@ public class MultithreadSteppedDumpProcessor : IDumpProcessor
// Keep track of how many dumps we have for each map
lock (mapDumpCounterLock)
{
IncrementMapCounterDictionaryValue(mapDumpCounter, mapName);
IncrementMapCounterDictionaryValue(mapDumpCounter, mapId);
}
var containerIgnoreListExists = LootDumpProcessorContext.GetConfig().ContainerIgnoreList.TryGetValue(dataDump.Data.Id.ToLower(), out string[]? ignoreListForMap);
var containerIgnoreListExists = LootDumpProcessorContext.GetConfig().ContainerIgnoreList.TryGetValue(mapId, out string[]? ignoreListForMap);
foreach (var dynamicStaticContainer in StaticLootProcessor.CreateDynamicStaticContainers(dataDump))
{
lock (mapStaticContainersAggregatedLock)

View File

@ -33,6 +33,7 @@ public static class StaticLootProcessor
public static Tuple<string, MapStaticLoot> CreateStaticWeaponsAndStaticForcedContainers(RootData rawMapDump)
{
var mapName = rawMapDump.Data.Name;
var mapId = rawMapDump.Data.Id.ToLower();
var staticLootPositions = (from li in rawMapDump.Data.Loot
where li.IsContainer ?? false
select li).ToList();
@ -55,7 +56,7 @@ public static class StaticLootProcessor
StaticWeapons = staticWeapons,
StaticForced = forcedStaticItems
};
return Tuple.Create(mapName, mapStaticData);
return Tuple.Create(mapId, mapStaticData);
}
public static List<Template> CreateDynamicStaticContainers(RootData rawMapDump)

View File

@ -39,7 +39,7 @@ public class JsonFileIntakeReader : IIntakeReader
{
basicInfo = new BasicInfo
{
Map = fi.Data.Name,
Map = fi.Data.Id.ToLower(),
FileHash = ProcessorUtil.HashFile(fileData),
Data = fi,
Date = date.Value,

View File

@ -47,13 +47,10 @@ public class FileWriter : IWriter
var looseLootData = (Dictionary<string, LooseLootRoot>)data;
foreach (var (key, value) in looseLootData)
{
foreach (var s in LootDumpProcessorContext.GetDirectoryMappings()[key].Name)
{
if (!Directory.Exists($@"{_outputPath}\locations\{s}"))
Directory.CreateDirectory($@"{_outputPath}\locations\{s}");
File.WriteAllText($@"{_outputPath}\locations\{s}\looseLoot.json",
_jsonSerializer.Serialize(value));
}
if (!Directory.Exists($@"{_outputPath}\locations\{key}"))
Directory.CreateDirectory($@"{_outputPath}\locations\{key}");
File.WriteAllText($@"{_outputPath}\locations\{key}\looseLoot.json",
_jsonSerializer.Serialize(value));
}
break;
@ -61,13 +58,10 @@ public class FileWriter : IWriter
var staticContainer = (Dictionary<string, MapStaticLoot>)data;
foreach (var (key, value) in staticContainer)
{
foreach (var s in LootDumpProcessorContext.GetDirectoryMappings()[key].Name)
{
if (!Directory.Exists($@"{_outputPath}\locations\{s}"))
Directory.CreateDirectory($@"{_outputPath}\locations\{s}");
File.WriteAllText($@"{_outputPath}\locations\{s}\staticContainers.json",
if (!Directory.Exists($@"{_outputPath}\locations\{key}"))
Directory.CreateDirectory($@"{_outputPath}\locations\{key}");
File.WriteAllText($@"{_outputPath}\locations\{key}\staticContainers.json",
_jsonSerializer.Serialize(value));
}
}
break;
@ -75,13 +69,10 @@ public class FileWriter : IWriter
var staticLootData = (Dictionary<string, Dictionary<string, StaticItemDistribution>>)data;
foreach (var (key, value) in staticLootData)
{
foreach (var s in LootDumpProcessorContext.GetDirectoryMappings()[key].Name)
{
if (!Directory.Exists($@"{_outputPath}\locations\{s}"))
Directory.CreateDirectory($@"{_outputPath}\locations\{s}");
File.WriteAllText($@"{_outputPath}\locations\{s}\staticLoot.json",
_jsonSerializer.Serialize(value));
}
if (!Directory.Exists($@"{_outputPath}\locations\{key}"))
Directory.CreateDirectory($@"{_outputPath}\locations\{key}");
File.WriteAllText($@"{_outputPath}\locations\{key}\staticLoot.json",
_jsonSerializer.Serialize(value));
}
break;