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

View File

@ -5,17 +5,17 @@ static_weapon_ids:
- 5cdeb229d7f00c000e7ce174 - 5cdeb229d7f00c000e7ce174
forced_items: forced_items:
Customs: bigmap:
# unknown key # unknown key
- containerId: custom_multiScene_00058 - containerId: custom_multiScene_00058
itemTpl: 593962ca86f774068014d9af itemTpl: 593962ca86f774068014d9af
Streets of Tarkov: tarkovstreets:
# Backup hideout key # Backup hideout key
- containerId: container_City_SE_02_DesignStuff_00025 - containerId: container_City_SE_02_DesignStuff_00025
itemTpl: 6398fd8ad3de3849057f5128 itemTpl: 6398fd8ad3de3849057f5128
Sandbox: sandbox:
- containerId: container_Test_for_export_00002 # Lab technician body - containerId: container_Test_for_export_00002 # Lab technician body
itemTpl: 658199aa38c79576a2569e13 # TerraGroup science office key itemTpl: 658199aa38c79576a2569e13 # TerraGroup science office key
- containerId: container_custom_DesignStuff_00029 # dead body of scav near exit - 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)) if (LoggerFactory.GetInstance().CanBeLogged(LogLevel.Debug))
LoggerFactory.GetInstance().Log($"Processing static data for file {dumped.BasicInfo.FileName}", 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 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 // 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 // to do this once per map, we dont care about doing it again
lock (staticContainersLock) lock (staticContainersLock)
{ {
if (!staticContainers.ContainsKey(mapName)) if (!staticContainers.ContainsKey(mapId))
{ {
if (LoggerFactory.GetInstance().CanBeLogged(LogLevel.Info)) 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); var mapStaticContainers = StaticLootProcessor.CreateStaticWeaponsAndStaticForcedContainers(dataDump);
// .Item1 = map name // .Item1 = map name
// .Item2 = force/weapon static arrays // .Item2 = force/weapon static arrays
@ -77,10 +78,10 @@ public class MultithreadSteppedDumpProcessor : IDumpProcessor
lock (mapStaticContainersAggregatedLock) lock (mapStaticContainersAggregatedLock)
{ {
// Init dict if map key doesnt exist // Init dict if map key doesnt exist
if (!mapStaticContainersAggregated.TryGetValue(mapName, out mapAggregatedDataDict)) if (!mapStaticContainersAggregated.TryGetValue(mapId, out mapAggregatedDataDict))
{ {
mapAggregatedDataDict = new Dictionary<Template, int>(); 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 // Keep track of how many dumps we have for each map
lock (mapDumpCounterLock) 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)) foreach (var dynamicStaticContainer in StaticLootProcessor.CreateDynamicStaticContainers(dataDump))
{ {
lock (mapStaticContainersAggregatedLock) lock (mapStaticContainersAggregatedLock)

View File

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

View File

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

View File

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