From 065edf31e2d69caa3a477fd789d337f049e771df Mon Sep 17 00:00:00 2001 From: vijer Date: Mon, 21 Jun 2021 15:51:51 +0700 Subject: [PATCH 1/6] Create README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..20c7852 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# SubnauticaModSystem + +Change AutosortLockers to get all category and techtype information from json files. From 8bda51eac342afd20e7cb91cb9d2b146dcb4a630 Mon Sep 17 00:00:00 2001 From: Vijer Date: Mon, 21 Jun 2021 17:07:21 +0700 Subject: [PATCH 2/6] These are the changes I made to DaWraka's port of AutosortLockers to BZ. --- .../AutosortLockers/Assets/filters.json | 720 ---------- .../Assets/type_reference.json | 1206 ----------------- .../AutosortLockers/AutosortLocker.cs | 793 ++++++----- ...ckers.csproj => AutosortLockersSML.csproj} | 90 +- .../AutosortLockers/AutosortLockersSML.sln | 34 + .../AutosortLockers/AutosortTarget.cs | 244 +++- .../AutosortLockers/AutosortTypePicker.cs | 128 +- .../AutosortLockers/AutosorterCategories.cs | 552 +------- .../AutosortLockers/CanvasLink_Patch.cs | 43 + .../AutosortLockers/ColorPicker.cs | 17 +- .../AutosortLockers/ColorPickerButton.cs | 11 +- .../AutosortLockers/ColorPickerPageButton.cs | 10 +- .../AutosortLockers/ColorSetting.cs | 32 +- .../AutosortLockers/ColoredIconButton.cs | 33 +- SubnauticaModSystem/AutosortLockers/Config.cs | 35 +- .../AutosortLockers/ConfigureButton.cs | 6 +- .../AutosortLockers/CustomizeScreen.cs | 60 +- .../AutosortLockers/FilterPickerButton.cs | 142 ++ .../AutosortLockers/GetLists.cs | 72 + .../AutosortLockers/LabelController.cs | 36 +- SubnauticaModSystem/AutosortLockers/Mod.cs | 38 +- SubnauticaModSystem/AutosortLockers/Picker.cs | 98 +- .../AutosortLockers/PickerPageButton.cs | 10 +- .../AutosortLockers/SaveData.cs | 4 +- SubnauticaModSystem/Common/Mod/ImageUtils.cs | 2 +- .../Common/Mod/LockerPrefabShared.cs | 70 +- SubnauticaModSystem/Common/Mod/ModUtils.cs | 88 +- .../Common/Mod/SerializableColor.cs | 2 +- SubnauticaModSystem/GameDir.targets | 9 + 29 files changed, 1377 insertions(+), 3208 deletions(-) delete mode 100644 SubnauticaModSystem/AutosortLockers/Assets/filters.json delete mode 100644 SubnauticaModSystem/AutosortLockers/Assets/type_reference.json rename SubnauticaModSystem/AutosortLockers/{AutosortLockers.csproj => AutosortLockersSML.csproj} (58%) create mode 100644 SubnauticaModSystem/AutosortLockers/AutosortLockersSML.sln create mode 100644 SubnauticaModSystem/AutosortLockers/CanvasLink_Patch.cs create mode 100644 SubnauticaModSystem/AutosortLockers/FilterPickerButton.cs create mode 100644 SubnauticaModSystem/AutosortLockers/GetLists.cs create mode 100644 SubnauticaModSystem/GameDir.targets diff --git a/SubnauticaModSystem/AutosortLockers/Assets/filters.json b/SubnauticaModSystem/AutosortLockers/Assets/filters.json deleted file mode 100644 index 2b39b59..0000000 --- a/SubnauticaModSystem/AutosortLockers/Assets/filters.json +++ /dev/null @@ -1,720 +0,0 @@ -[ - { - "Category": "", - "Types": [ - 3021 - ] - }, - { - "Category": "", - "Types": [ - 34 - ] - }, - { - "Category": "", - "Types": [ - 59 - ] - }, - { - "Category": "", - "Types": [ - 3063 - ] - }, - { - "Category": "", - "Types": [ - 504 - ] - }, - { - "Category": "", - "Types": [ - 61 - ] - }, - { - "Category": "", - "Types": [ - 27 - ] - }, - { - "Category": "", - "Types": [ - 3034 - ] - }, - { - "Category": "", - "Types": [ - 35 - ] - }, - { - "Category": "", - "Types": [ - 44 - ] - }, - { - "Category": "", - "Types": [ - 7 - ] - }, - { - "Category": "", - "Types": [ - 32 - ] - }, - { - "Category": "", - "Types": [ - 3502 - ] - }, - { - "Category": "", - "Types": [ - 23 - ] - }, - { - "Category": "", - "Types": [ - 3035 - ] - }, - { - "Category": "", - "Types": [ - 65 - ] - }, - { - "Category": "", - "Types": [ - 36 - ] - }, - { - "Category": "", - "Types": [ - 42 - ] - }, - { - "Category": "", - "Types": [ - 3 - ] - }, - { - "Category": "", - "Types": [ - 4514 - ] - }, - { - "Category": "", - "Types": [ - 2530 - ] - }, - { - "Category": "", - "Types": [ - 3010 - ] - }, - { - "Category": "", - "Types": [ - 15 - ] - }, - { - "Category": "", - "Types": [ - 21 - ] - }, - { - "Category": "", - "Types": [ - 1547 - ] - }, - { - "Category": "", - "Types": [ - 53 - ] - }, - { - "Category": "", - "Types": [ - 4210 - ] - }, - { - "Category": "", - "Types": [ - 66 - ] - }, - { - "Category": "", - "Types": [ - 4209 - ] - }, - { - "Category": "", - "Types": [ - 68 - ] - }, - { - "Category": "", - "Types": [ - 8 - ] - }, - { - "Category": "", - "Types": [ - 40 - ] - }, - { - "Category": "", - "Types": [ - 62 - ] - }, - { - "Category": "", - "Types": [ - 54 - ] - }, - { - "Category": "", - "Types": [ - 2 - ] - }, - { - "Category": "", - "Types": [ - 69 - ] - }, - { - "Category": "", - "Types": [ - 41 - ] - }, - { - "Category": "", - "Types": [ - 56 - ] - }, - { - "Category": "", - "Types": [ - 43 - ] - }, - { - "Category": "", - "Types": [ - 1 - ] - }, - { - "Category": "", - "Types": [ - 64 - ] - }, - { - "Category": "", - "Types": [ - 52 - ] - }, - { - "Category": "", - "Types": [ - 9 - ] - }, - { - "Category": "", - "Types": [ - 17 - ] - }, - { - "Category": "", - "Types": [ - 28 - ] - }, - { - "Category": "", - "Types": [ - 3504 - ] - }, - { - "Category": "", - "Types": [ - 57 - ] - }, - { - "Category": "", - "Types": [ - 3501 - ] - }, - { - "Category": "", - "Types": [ - 16 - ] - }, - { - "Category": "", - "Types": [ - 30 - ] - }, - { - "Category": "", - "Types": [ - 63 - ] - }, - { - "Category": "", - "Types": [ - 33 - ] - }, - - { - "Category": "Food", - "Types": [ - 4506, - 4509, - 4510, - 4504, - 4503, - 4512, - 4507, - 4519, - 4518, - 4511, - 4502, - 4505, - 4508, - 4517, - 4604, - 4607, - 4608, - 4602, - 4601, - 4610, - 4605, - 4613, - 4612, - 4609, - 4600, - 4603, - 4606, - 4611, - 4513, - 4520, - 4521, - 4522, - 3506, - 3513, - 3516, - 3514 - ] - }, - { - "Category": "Water", - "Types": [ - 4516, - 4523, - 4501, - 4500, - 4515 - ] - }, - { - "Category": "Plants & Seeds", - "Types": [ - 3509, - 3520, - 3506, - 2529, - 2503, - 3531, - 3529, - 3525, - 3513, - 3524, - 3503, - 3516, - 3517, - 3527, - 3507, - 3530, - 3528, - 3511, - 3518, - 3540, - 3521, - 3512, - 3533, - 3523, - 3508, - 3514, - 3534, - 3535, - 3536, - 3532, - 3539, - 3526, - 3537, - 3522, - 3515, - 3541, - 3519, - 3538, - 3510 - ] - }, - { - "Category": "Metals", - "Types": [ - 7, - 21, - 8, - 40, - 54, - 2, - 69, - 28, - 16 - ] - }, - { - "Category": "Electronics", - "Types": [ - 34, - 44, - 32, - 65, - 64, - 33 - ] - }, - { - "Category": "Batteries", - "Types": [ - 504, - 43, - 4210, - 4209 - ] - }, - { - "Category": "Natural Materials", - "Types": [ - 2530, - 3502, - 3035, - 3021, - 3501, - 3034, - 35, - 9, - 3063, - 3504, - 3010 - ] - }, - { - "Category": "Synthetic Materials", - "Types": [ - 59, - 57, - 61, - 27, - 42, - 3, - 15, - 1547, - 53, - 62, - 56, - 66, - 17, - 30, - 41 - ] - }, - { - "Category": "Crystal Materials", - "Types": [ - 52, - 36, - 68, - 1, - 23, - 63 - ] - }, - { - "Category": "Fish", - "Types": [ - 2515, - 2510, - 2554, - 2513, - 2555, - 2507, - 2501, - 2531, - 2546, - 2516, - 2505, - 2504, - 2519, - 2520, - 2522, - 2534, - 2550, - 2539, - 2509, - 2523, - 2517, - 2502, - 2551, - 2535, - 2506, - 2518, - 2524, - 2545, - 2512, - 2538 - ] - }, - { - "Category": "Eggs", - "Types": [ - 1266, - 1267, - 1283, - 1281, - 1285, - 1269, - 1265, - 1263, - 1287, - 1262, - 1261, - 1259, - 1264, - 1268, - 1260, - 1258, - 1253, - 1252, - 1251, - 1255, - 1257, - 1254, - 1250, - 1256, - 1270, - 1271, - 1272, - 1273, - 1274, - 1275, - 1276, - 1277, - 1278, - 1279, - 1280, - 1281, - 1282, - 1283, - 1284, - 1285, - 1286, - 1287, - 1288, - 1289, - 1290 - ] - }, - { - "Category": "Tools", - "Types": [ - 513, - 508, - 509, - 527, - 800, - 517, - 528, - 524, - 754, - 507, - 758, - 801, - 505, - 761, - 762, - 515, - 526, - 757, - 807, - 523, - 751, - 759, - 755, - 750, - 1807 - ] - }, - { - "Category": "Equipment", - "Types": [ - 525, - 518, - 512, - 502, - 804, - 803, - 521, - 520, - 519, - 522, - 529, - 808, - 806, - 503, - 805 - ] - }, - { - "Category": "Mysterious Tablets", - "Types": [ - 4201, - 4202, - 4204 - ] - }, - { - "Category": "Scanner Room Upgrades", - "Types": [ - 2250, - 2251, - 5527 - ] - }, - { - "Category": "General Upgrades", - "Types": [ - 1501, - 1516, - 2105, - 2101, - 2103 - ] - }, - { - "Category": "Seamoth Upgrades", - "Types": [ - 2104, - 2100, - 2102, - 2110, - 2112, - 2113, - 2114, - 2109 - ] - }, - { - "Category": "PrawnSuit Upgrades", - "Types": [ - 2128, - 2129, - 2116, - 2121, - 2115, - 2120, - 2117, - 2122 - ] - }, - { - "Category": "Cyclops Upgrades", - "Types": [ - 1554, - 1555, - 1537, - 1538, - 1558, - 1553, - 1551, - 1552, - 1557 - ] - }, - { - "Category": "Torpedoes", - "Types": [ - 2119, - 2111 - ] - }, - { - "Category": "Alterra Stuff", - "Types": [ - 1816, - 1817, - 1818, - 1808, - 1814, - 1815, - 1809, - 1810, - 1811, - 1143, - 1823, - 6005, - 1824, - 1825, - 1826, - 1827 - ] - } -] \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/Assets/type_reference.json b/SubnauticaModSystem/AutosortLockers/Assets/type_reference.json deleted file mode 100644 index 9b2c805..0000000 --- a/SubnauticaModSystem/AutosortLockers/Assets/type_reference.json +++ /dev/null @@ -1,1206 +0,0 @@ -[ - { - "Name": "Quartz", - "Value": 1 - }, - { - "Name": "ScrapMetal", - "Value": 2 - }, - { - "Name": "FiberMesh", - "Value": 3 - }, - { - "Name": "Copper", - "Value": 7 - }, - { - "Name": "Lead", - "Value": 8 - }, - { - "Name": "Salt", - "Value": 9 - }, - { - "Name": "MercuryOre", - "Value": 12 - }, - { - "Name": "Glass", - "Value": 15 - }, - { - "Name": "Titanium", - "Value": 16 - }, - { - "Name": "Silicone", - "Value": 17 - }, - { - "Name": "Gold", - "Value": 21 - }, - { - "Name": "Magnesium", - "Value": 22 - }, - { - "Name": "Sulphur", - "Value": 23 - }, - { - "Name": "SandLoot", - "Value": 26 - }, - { - "Name": "Bleach", - "Value": 27 - }, - { - "Name": "Silver", - "Value": 28 - }, - { - "Name": "TitaniumIngot", - "Value": 30 - }, - { - "Name": "CopperWire", - "Value": 32 - }, - { - "Name": "WiringKit", - "Value": 33 - }, - { - "Name": "AdvancedWiringKit", - "Value": 34 - }, - { - "Name": "CrashPowder", - "Value": 35 - }, - { - "Name": "Diamond", - "Value": 36 - }, - { - "Name": "Lithium", - "Value": 40 - }, - { - "Name": "PlasteelIngot", - "Value": 41 - }, - { - "Name": "EnameledGlass", - "Value": 42 - }, - { - "Name": "PowerCell", - "Value": 43 - }, - { - "Name": "ComputerChip", - "Value": 44 - }, - { - "Name": "Uranium", - "Value": 51 - }, - { - "Name": "AluminumOxide", - "Value": 52 - }, - { - "Name": "HydrochloricAcid", - "Value": 53 - }, - { - "Name": "Magnetite", - "Value": 54 - }, - { - "Name": "Polyaniline", - "Value": 56 - }, - { - "Name": "AramidFibers", - "Value": 57 - }, - { - "Name": "Aerogel", - "Value": 59 - }, - { - "Name": "Benzene", - "Value": 61 - }, - { - "Name": "Lubricant", - "Value": 62 - }, - { - "Name": "UraniniteCrystal", - "Value": 63 - }, - { - "Name": "ReactorRod", - "Value": 64 - }, - { - "Name": "DepletedReactorRod", - "Value": 65 - }, - { - "Name": "PrecursorIonCrystal", - "Value": 66 - }, - { - "Name": "PrecursorIonCrystalMatrix", - "Value": 67 - }, - { - "Name": "Kyanite", - "Value": 68 - }, - { - "Name": "Nickel", - "Value": 69 - }, - { - "Name": "Fins", - "Value": 502 - }, - { - "Name": "Tank", - "Value": 503 - }, - { - "Name": "Battery", - "Value": 504 - }, - { - "Name": "Knife", - "Value": 505 - }, - { - "Name": "Flashlight", - "Value": 507 - }, - { - "Name": "Beacon", - "Value": 508 - }, - { - "Name": "Builder", - "Value": 509 - }, - { - "Name": "Compass", - "Value": 512 - }, - { - "Name": "AirBladder", - "Value": 513 - }, - { - "Name": "Terraformer", - "Value": 514 - }, - { - "Name": "Pipe", - "Value": 515 - }, - { - "Name": "Thermometer", - "Value": 516 - }, - { - "Name": "DiveReel", - "Value": 517 - }, - { - "Name": "Rebreather", - "Value": 518 - }, - { - "Name": "RadiationSuit", - "Value": 519 - }, - { - "Name": "RadiationHelmet", - "Value": 520 - }, - { - "Name": "RadiationGloves", - "Value": 521 - }, - { - "Name": "ReinforcedDiveSuit", - "Value": 522 - }, - { - "Name": "Scanner", - "Value": 523 - }, - { - "Name": "FireExtinguisher", - "Value": 524 - }, - { - "Name": "MapRoomHUDChip", - "Value": 525 - }, - { - "Name": "PipeSurfaceFloater", - "Value": 526 - }, - { - "Name": "CyclopsDecoy", - "Value": 527 - }, - { - "Name": "DoubleTank", - "Value": 528 - }, - { - "Name": "ReinforcedGloves", - "Value": 529 - }, - { - "Name": "Welder", - "Value": 750 - }, - { - "Name": "Seaglide", - "Value": 751 - }, - { - "Name": "Constructor", - "Value": 752 - }, - { - "Name": "Transfuser", - "Value": 753 - }, - { - "Name": "Flare", - "Value": 754 - }, - { - "Name": "StasisRifle", - "Value": 755 - }, - { - "Name": "PropulsionCannon", - "Value": 757 - }, - { - "Name": "Gravsphere", - "Value": 758 - }, - { - "Name": "SmallStorage", - "Value": 759 - }, - { - "Name": "LaserCutter", - "Value": 761 - }, - { - "Name": "LEDLight", - "Value": 762 - }, - { - "Name": "DiamondBlade", - "Value": 800 - }, - { - "Name": "HeatBlade", - "Value": 801 - }, - { - "Name": "LithiumIonBattery", - "Value": 802 - }, - { - "Name": "PlasteelTank", - "Value": 803 - }, - { - "Name": "HighCapacityTank", - "Value": 804 - }, - { - "Name": "UltraGlideFins", - "Value": 805 - }, - { - "Name": "SwimChargeFins", - "Value": 806 - }, - { - "Name": "RepulsionCannon", - "Value": 807 - }, - { - "Name": "Stillsuit", - "Value": 808 - }, - { - "Name": "StasisRifleFragment", - "Value": 1101 - }, - { - "Name": "ReinforceHullFragment", - "Value": 1105 - }, - { - "Name": "PropulsionCannonFragment", - "Value": 1107 - }, - { - "Name": "SeaglideFragment", - "Value": 1117 - }, - { - "Name": "SolarPanelFragment", - "Value": 1119 - }, - { - "Name": "PowerTransmitterFragment", - "Value": 1120 - }, - { - "Name": "SpecimenAnalyzerFragment", - "Value": 1130 - }, - { - "Name": "LEDLightFragment", - "Value": 1143 - }, - { - "Name": "SafeShallowsEgg", - "Value": 1250 - }, - { - "Name": "KelpForestEgg", - "Value": 1251 - }, - { - "Name": "GrassyPlateausEgg", - "Value": 1252 - }, - { - "Name": "GrandReefsEgg", - "Value": 1253 - }, - { - "Name": "MushroomForestEgg", - "Value": 1254 - }, - { - "Name": "KooshZoneEgg", - "Value": 1255 - }, - { - "Name": "TwistyBridgesEgg", - "Value": 1256 - }, - { - "Name": "LavaZoneEgg", - "Value": 1257 - }, - { - "Name": "StalkerEgg", - "Value": 1258 - }, - { - "Name": "ReefbackEgg", - "Value": 1259 - }, - { - "Name": "SpadefishEgg", - "Value": 1260 - }, - { - "Name": "RabbitrayEgg", - "Value": 1261 - }, - { - "Name": "MesmerEgg", - "Value": 1262 - }, - { - "Name": "JumperEgg", - "Value": 1263 - }, - { - "Name": "SandsharkEgg", - "Value": 1264 - }, - { - "Name": "JellyrayEgg", - "Value": 1265 - }, - { - "Name": "BonesharkEgg", - "Value": 1266 - }, - { - "Name": "CrabsnakeEgg", - "Value": 1267 - }, - { - "Name": "ShockerEgg", - "Value": 1268 - }, - { - "Name": "GasopodEgg", - "Value": 1269 - }, - { - "Name": "CrashEgg", - "Value": 1281 - }, - { - "Name": "CrabsquidEgg", - "Value": 1283 - }, - { - "Name": "CutefishEgg", - "Value": 1285 - }, - { - "Name": "LavaLizardEgg", - "Value": 1287 - }, - { - "Name": "HullReinforcementModule", - "Value": 1501 - }, - { - "Name": "PowerUpgradeModule", - "Value": 1516 - }, - { - "Name": "CyclopsHullModule1", - "Value": 1537 - }, - { - "Name": "CyclopsHullModule2", - "Value": 1538 - }, - { - "Name": "HatchingEnzymes", - "Value": 1547 - }, - { - "Name": "CyclopsShieldModule", - "Value": 1551 - }, - { - "Name": "CyclopsSonarModule", - "Value": 1552 - }, - { - "Name": "CyclopsSeamothRepairModule", - "Value": 1553 - }, - { - "Name": "CyclopsDecoyModule", - "Value": 1554 - }, - { - "Name": "CyclopsFireSuppressionModule", - "Value": 1555 - }, - { - "Name": "CyclopsThermalReactorModule", - "Value": 1557 - }, - { - "Name": "CyclopsHullModule3", - "Value": 1558 - }, - { - "Name": "LuggageBag", - "Value": 1807 - }, - { - "Name": "ArcadeGorgetoy", - "Value": 1808 - }, - { - "Name": "LabEquipment1", - "Value": 1809 - }, - { - "Name": "LabEquipment2", - "Value": 1810 - }, - { - "Name": "LabEquipment3", - "Value": 1811 - }, - { - "Name": "Cap1", - "Value": 1814 - }, - { - "Name": "Cap2", - "Value": 1815 - }, - { - "Name": "LabContainer", - "Value": 1816 - }, - { - "Name": "LabContainer2", - "Value": 1817 - }, - { - "Name": "LabContainer3", - "Value": 1818 - }, - { - "Name": "StarshipSouvenir", - "Value": 1823 - }, - { - "Name": "PosterAurora", - "Value": 1824 - }, - { - "Name": "PosterExoSuit1", - "Value": 1825 - }, - { - "Name": "PosterExoSuit2", - "Value": 1826 - }, - { - "Name": "PosterKitty", - "Value": 1827 - }, - { - "Name": "Signal", - "Value": 2005 - }, - { - "Name": "SeamothReinforcementModule", - "Value": 2100 - }, - { - "Name": "VehiclePowerUpgradeModule", - "Value": 2101 - }, - { - "Name": "SeamothSolarCharge", - "Value": 2102 - }, - { - "Name": "VehicleStorageModule", - "Value": 2103 - }, - { - "Name": "SeamothElectricalDefense", - "Value": 2104 - }, - { - "Name": "VehicleArmorPlating", - "Value": 2105 - }, - { - "Name": "SeamothTorpedoModule", - "Value": 2109 - }, - { - "Name": "SeamothSonarModule", - "Value": 2110 - }, - { - "Name": "WhirlpoolTorpedo", - "Value": 2111 - }, - { - "Name": "VehicleHullModule1", - "Value": 2112 - }, - { - "Name": "VehicleHullModule2", - "Value": 2113 - }, - { - "Name": "VehicleHullModule3", - "Value": 2114 - }, - { - "Name": "ExosuitJetUpgradeModule", - "Value": 2115 - }, - { - "Name": "ExosuitDrillArmModule", - "Value": 2116 - }, - { - "Name": "ExosuitThermalReactorModule", - "Value": 2117 - }, - { - "Name": "GasTorpedo", - "Value": 2119 - }, - { - "Name": "ExosuitPropulsionArmModule", - "Value": 2120 - }, - { - "Name": "ExosuitGrapplingArmModule", - "Value": 2121 - }, - { - "Name": "ExosuitTorpedoArmModule", - "Value": 2122 - }, - { - "Name": "ExosuitPropulsionArmFragment", - "Value": 2124 - }, - { - "Name": "ExosuitGrapplingArmFragment", - "Value": 2125 - }, - { - "Name": "ExosuitTorpedoArmFragment", - "Value": 2126 - }, - { - "Name": "ExoHullModule1", - "Value": 2128 - }, - { - "Name": "ExoHullModule2", - "Value": 2129 - }, - { - "Name": "MapRoomUpgradeScanRange", - "Value": 2250 - }, - { - "Name": "MapRoomUpgradeScanSpeed", - "Value": 2251 - }, - { - "Name": "HoleFish", - "Value": 2501 - }, - { - "Name": "CreepvineSeedCluster", - "Value": 2503 - }, - { - "Name": "Peeper", - "Value": 2504 - }, - { - "Name": "Oculus", - "Value": 2505 - }, - { - "Name": "GarryFish", - "Value": 2507 - }, - { - "Name": "Boomerang", - "Value": 2510 - }, - { - "Name": "Eyeye", - "Value": 2513 - }, - { - "Name": "Bladderfish", - "Value": 2515 - }, - { - "Name": "Hoverfish", - "Value": 2516 - }, - { - "Name": "Reginald", - "Value": 2519 - }, - { - "Name": "Spadefish", - "Value": 2520 - }, - { - "Name": "Floater", - "Value": 2522 - }, - { - "Name": "CreepvinePiece", - "Value": 2529 - }, - { - "Name": "GasPod", - "Value": 2530 - }, - { - "Name": "Hoopfish", - "Value": 2531 - }, - { - "Name": "Spinefish", - "Value": 2546 - }, - { - "Name": "LavaBoomerang", - "Value": 2554 - }, - { - "Name": "LavaEyeye", - "Value": 2555 - }, - { - "Name": "JellyPlant", - "Value": 3010 - }, - { - "Name": "AcidMushroom", - "Value": 3021 - }, - { - "Name": "BloodOil", - "Value": 3034 - }, - { - "Name": "WhiteMushroom", - "Value": 3035 - }, - { - "Name": "PinkMushroom", - "Value": 3039 - }, - { - "Name": "PurpleRattle", - "Value": 3040 - }, - { - "Name": "SeaTreaderPoop", - "Value": 3063 - }, - { - "Name": "JeweledDiskPiece", - "Value": 3501 - }, - { - "Name": "CoralChunk", - "Value": 3502 - }, - { - "Name": "KooshChunk", - "Value": 3503 - }, - { - "Name": "StalkerTooth", - "Value": 3504 - }, - { - "Name": "BulboTreePiece", - "Value": 3506 - }, - { - "Name": "OrangeMushroomSpore", - "Value": 3507 - }, - { - "Name": "PurpleVasePlantSeed", - "Value": 3508 - }, - { - "Name": "AcidMushroomSpore", - "Value": 3509 - }, - { - "Name": "WhiteMushroomSpore", - "Value": 3510 - }, - { - "Name": "PinkMushroomSpore", - "Value": 3511 - }, - { - "Name": "PurpleRattleSpore", - "Value": 3512 - }, - { - "Name": "HangingFruit", - "Value": 3513 - }, - { - "Name": "PurpleVegetable", - "Value": 3514 - }, - { - "Name": "SmallMelon", - "Value": 3515 - }, - { - "Name": "Melon", - "Value": 3516 - }, - { - "Name": "MelonSeed", - "Value": 3517 - }, - { - "Name": "PurpleBrainCoralPiece", - "Value": 3518 - }, - { - "Name": "SpikePlantSeed", - "Value": 3519 - }, - { - "Name": "BluePalmSeed", - "Value": 3520 - }, - { - "Name": "PurpleFanSeed", - "Value": 3521 - }, - { - "Name": "SmallFanSeed", - "Value": 3522 - }, - { - "Name": "PurpleTentacleSeed", - "Value": 3523 - }, - { - "Name": "JellyPlantSeed", - "Value": 3524 - }, - { - "Name": "GabeSFeatherSeed", - "Value": 3525 - }, - { - "Name": "SeaCrownSeed", - "Value": 3526 - }, - { - "Name": "MembrainTreeSeed", - "Value": 3527 - }, - { - "Name": "PinkFlowerSeed", - "Value": 3528 - }, - { - "Name": "FernPalmSeed", - "Value": 3529 - }, - { - "Name": "OrangePetalsPlantSeed", - "Value": 3530 - }, - { - "Name": "EyesPlantSeed", - "Value": 3531 - }, - { - "Name": "RedGreenTentacleSeed", - "Value": 3532 - }, - { - "Name": "PurpleStalkSeed", - "Value": 3533 - }, - { - "Name": "RedBasketPlantSeed", - "Value": 3534 - }, - { - "Name": "RedBushSeed", - "Value": 3535 - }, - { - "Name": "RedConePlantSeed", - "Value": 3536 - }, - { - "Name": "ShellGrassSeed", - "Value": 3537 - }, - { - "Name": "SpottedLeavesPlantSeed", - "Value": 3538 - }, - { - "Name": "RedRollPlantSeed", - "Value": 3539 - }, - { - "Name": "PurpleBranchesSeed", - "Value": 3540 - }, - { - "Name": "SnakeMushroomSpore", - "Value": 3541 - }, - { - "Name": "PrecursorKey_Red", - "Value": 4200 - }, - { - "Name": "PrecursorKey_Blue", - "Value": 4201 - }, - { - "Name": "PrecursorKey_Orange", - "Value": 4202 - }, - { - "Name": "PrecursorKey_White", - "Value": 4203 - }, - { - "Name": "PrecursorKey_Purple", - "Value": 4204 - }, - { - "Name": "PrecursorIonPowerCell", - "Value": 4209 - }, - { - "Name": "PrecursorIonBattery", - "Value": 4210 - }, - { - "Name": "FilteredWater", - "Value": 4500 - }, - { - "Name": "DisinfectedWater", - "Value": 4501 - }, - { - "Name": "CookedPeeper", - "Value": 4502 - }, - { - "Name": "CookedHoleFish", - "Value": 4503 - }, - { - "Name": "CookedGarryFish", - "Value": 4504 - }, - { - "Name": "CookedReginald", - "Value": 4505 - }, - { - "Name": "CookedBladderfish", - "Value": 4506 - }, - { - "Name": "CookedHoverfish", - "Value": 4507 - }, - { - "Name": "CookedSpadefish", - "Value": 4508 - }, - { - "Name": "CookedBoomerang", - "Value": 4509 - }, - { - "Name": "CookedEyeye", - "Value": 4510 - }, - { - "Name": "CookedOculus", - "Value": 4511 - }, - { - "Name": "CookedHoopfish", - "Value": 4512 - }, - { - "Name": "NutrientBlock", - "Value": 4513 - }, - { - "Name": "FirstAidKit", - "Value": 4514 - }, - { - "Name": "StillsuitWater", - "Value": 4515 - }, - { - "Name": "BigFilteredWater", - "Value": 4516 - }, - { - "Name": "CookedSpinefish", - "Value": 4517 - }, - { - "Name": "CookedLavaEyeye", - "Value": 4518 - }, - { - "Name": "CookedLavaBoomerang", - "Value": 4519 - }, - { - "Name": "Snack1", - "Value": 4520 - }, - { - "Name": "Snack2", - "Value": 4521 - }, - { - "Name": "Snack3", - "Value": 4522 - }, - { - "Name": "Coffee", - "Value": 4523 - }, - { - "Name": "CuredPeeper", - "Value": 4600 - }, - { - "Name": "CuredHoleFish", - "Value": 4601 - }, - { - "Name": "CuredGarryFish", - "Value": 4602 - }, - { - "Name": "CuredReginald", - "Value": 4603 - }, - { - "Name": "CuredBladderfish", - "Value": 4604 - }, - { - "Name": "CuredHoverfish", - "Value": 4605 - }, - { - "Name": "CuredSpadefish", - "Value": 4606 - }, - { - "Name": "CuredBoomerang", - "Value": 4607 - }, - { - "Name": "CuredEyeye", - "Value": 4608 - }, - { - "Name": "CuredOculus", - "Value": 4609 - }, - { - "Name": "CuredHoopfish", - "Value": 4610 - }, - { - "Name": "CuredSpinefish", - "Value": 4611 - }, - { - "Name": "CuredLavaEyeye", - "Value": 4612 - }, - { - "Name": "CuredLavaBoomerang", - "Value": 4613 - }, - { - "Name": "MapRoomCamera", - "Value": 5527 - }, - { - "Name": "Poster", - "Value": 6005 - }, - { - "Name": "BoneShark", - "Value": 2534 - }, - { - "Name": "CrabSquid", - "Value": 2550 - }, - { - "Name": "Crabsnake", - "Value": 2539 - }, - { - "Name": "Crash", - "Value": 2509 - }, - { - "Name": "Gasopod", - "Value": 2523 - }, - { - "Name": "Jellyray", - "Value": 2517 - }, - { - "Name": "Jumper", - "Value": 2502 - }, - { - "Name": "LavaLizard", - "Value": 2551 - }, - { - "Name": "Mesmer", - "Value": 2535 - }, - { - "Name": "RabbitRay", - "Value": 2506 - }, - { - "Name": "Reefback", - "Value": 2518 - }, - { - "Name": "Sandshark", - "Value": 2524 - }, - { - "Name": "Shocker", - "Value": 2545 - }, - { - "Name": "Stalker", - "Value": 2512 - }, - { - "Name": "Cutefish", - "Value": 2538 - } -] \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/AutosortLocker.cs b/SubnauticaModSystem/AutosortLockers/AutosortLocker.cs index c454801..6bfbb87 100644 --- a/SubnauticaModSystem/AutosortLockers/AutosortLocker.cs +++ b/SubnauticaModSystem/AutosortLockers/AutosortLocker.cs @@ -7,369 +7,436 @@ using SMLHelper.V2.Crafting; using UnityEngine; using UnityEngine.UI; +#if SUBNAUTICA +//using RecipeData = SMLHelper.V2.Crafting.RecipeData; +#elif BELOWZERO +using TMPro; +#endif namespace AutosortLockers { - public class AutosortLocker : MonoBehaviour - { - private static readonly Color MainColor = new Color(1, 0.2f, 0.2f); - private static readonly Color PulseColor = Color.white; - - private bool initialized; - private Constructable constructable; - private StorageContainer container; - private List singleItemTargets = new List(); - private List categoryTargets = new List(); - private List anyTargets = new List(); - - private int unsortableItems = 0; - - [SerializeField] - private Image background; - [SerializeField] - private Image icon; - [SerializeField] - private Text text; - [SerializeField] - private Text sortingText; - [SerializeField] - private bool isSorting; - [SerializeField] - private bool sortedItem; - - public bool IsSorting => isSorting; - - private void Awake() - { - constructable = GetComponent(); - container = GetComponent(); - container.hoverText = "Open autosorter"; - container.storageLabel = "Autosorter"; - } - - private void Update() - { - if (!initialized && constructable._constructed && transform.parent != null) - { - Initialize(); - } - - if (!initialized || !constructable._constructed) - { - return; - } - - UpdateText(); - } - - private void UpdateText() - { - string output = ""; - if (isSorting) - { - output = "Sorting..."; - } - else if (unsortableItems > 0) - { - output = "Unsorted Items: " + unsortableItems; - } - else - { - output = "Ready to Sort"; - } - - sortingText.text = output; - } - - private void Initialize() - { - background.gameObject.SetActive(true); - icon.gameObject.SetActive(true); - text.gameObject.SetActive(true); - sortingText.gameObject.SetActive(true); - - background.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("LockerScreen.png")); - icon.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("Sorter.png")); - - initialized = true; - } - - private IEnumerator Start() - { - while (true) - { - yield return new WaitForSeconds(Mathf.Max(0, Mod.config.SortInterval - (unsortableItems / 60.0f))); - - yield return Sort(); - } - } - - private void AccumulateTargets() - { - singleItemTargets.Clear(); - categoryTargets.Clear(); - anyTargets.Clear(); - - SubRoot subRoot = gameObject.GetComponentInParent(); - if (subRoot == null) - { - return; - } - - var allTargets = subRoot.GetComponentsInChildren().ToList(); - foreach (var target in allTargets) - { - if (target.isActiveAndEnabled && target.CanAddItems()) - { - if (target.CanTakeAnyItem()) - { - anyTargets.Add(target); - } - else - { - if (target.HasItemFilters()) - { - singleItemTargets.Add(target); - } - if (target.HasCategoryFilters()) - { - categoryTargets.Add(target); - } - } - } - } - } - - private IEnumerator Sort() - { - sortedItem = false; - unsortableItems = container.container.count; - - if (!initialized || container.IsEmpty()) - { - isSorting = false; - yield break; - } - - AccumulateTargets(); - if (NoTargets()) - { - isSorting = false; - yield break; - } - - isSorting = true; - yield return SortFilteredTargets(false); - if (sortedItem) - { - yield break; - } - - yield return SortFilteredTargets(true); - if (sortedItem) - { - yield break; - } - - yield return SortAnyTargets(); - if (sortedItem) - { - yield break; - } - - isSorting = false; - } - - private bool NoTargets() - { - return singleItemTargets.Count <= 0 && categoryTargets.Count <= 0 && anyTargets.Count <= 0; - } - - private IEnumerator SortFilteredTargets(bool byCategory) - { - int callsToCanAddItem = 0; - const int CanAddItemCallThreshold = 10; - - foreach (AutosortTarget target in byCategory ? categoryTargets : singleItemTargets) - { - foreach (AutosorterFilter filter in target.GetCurrentFilters()) - { - if (filter.IsCategory() == byCategory) - { - foreach (var techType in filter.Types) - { - callsToCanAddItem++; - var items = container.container.GetItems(techType); - if (items != null && items.Count > 0 && target.CanAddItem(items[0].item)) - { - unsortableItems -= items.Count; - SortItem(items[0].item, target); - sortedItem = true; - yield break; - } - else if (callsToCanAddItem > CanAddItemCallThreshold) - { - callsToCanAddItem = 0; - yield return null; - } - } - } - } - } - } - - private IEnumerator SortAnyTargets() - { - int callsToCanAddItem = 0; - const int CanAddItemCallThreshold = 10; - foreach (var item in container.container.ToList()) - { - foreach (AutosortTarget target in anyTargets) - { - callsToCanAddItem++; - if (target.CanAddItem(item.item)) - { - SortItem(item.item, target); - unsortableItems--; - sortedItem = true; - yield break; - } - else if (callsToCanAddItem > CanAddItemCallThreshold) - { - callsToCanAddItem = 0; - yield return null; - } - } - } - } - - private void SortItem(Pickupable pickup, AutosortTarget target) - { - container.container.RemoveItem(pickup, true); - target.AddItem(pickup); - - StartCoroutine(PulseIcon()); - } - - public IEnumerator PulseIcon() - { - float t = 0; - float rate = 0.5f; - while (t < 1.0) - { - t += Time.deltaTime * rate; - icon.color = Color.Lerp(PulseColor, MainColor, t); - yield return null; - } - } - - private AutosortTarget FindTarget(Pickupable item) - { - foreach (AutosortTarget target in singleItemTargets) - { - if (target.CanAddItemByItemFilter(item)) - { - return target; - } - } - foreach (AutosortTarget target in categoryTargets) - { - if (target.CanAddItemByCategoryFilter(item)) - { - return target; - } - } - foreach (AutosortTarget target in anyTargets) - { - if (target.CanAddItem(item)) - { - return target; - } - } - return null; - } - - internal class AutosortLockerBuildable : Buildable - { - public AutosortLockerBuildable() - : base("Autosorter", - "Autosort Locker", - "Small, wall-mounted smart-locker that automatically transfers items into linked Autosort Receptacles.") - { - } - - public override TechGroup GroupForPDA => TechGroup.InteriorModules; - - public override TechCategory CategoryForPDA => TechCategory.InteriorModule; - - public override GameObject GetGameObject() - { - GameObject originalPrefab = CraftData.GetPrefabForTechType(TechType.SmallLocker); - GameObject prefab = GameObject.Instantiate(originalPrefab); - - var container = prefab.GetComponent(); - container.width = Mod.config.AutosorterWidth; - container.height = Mod.config.AutosorterHeight; - container.container.Resize(Mod.config.AutosorterWidth, Mod.config.AutosorterHeight); - - var meshRenderers = prefab.GetComponentsInChildren(); - foreach (var meshRenderer in meshRenderers) - { - meshRenderer.material.color = new Color(1, 0, 0); - } - - var prefabText = prefab.GetComponentInChildren(); - var label = prefab.FindChild("Label"); - DestroyImmediate(label); - - var autoSorter = prefab.AddComponent(); - - var canvas = LockerPrefabShared.CreateCanvas(prefab.transform); - autoSorter.background = LockerPrefabShared.CreateBackground(canvas.transform); - autoSorter.icon = LockerPrefabShared.CreateIcon(autoSorter.background.transform, MainColor, 40); - autoSorter.text = LockerPrefabShared.CreateText(autoSorter.background.transform, prefabText, MainColor, 0, 14, "Autosorter"); - - autoSorter.sortingText = LockerPrefabShared.CreateText(autoSorter.background.transform, prefabText, MainColor, -120, 12, "Sorting..."); - autoSorter.sortingText.alignment = TextAnchor.UpperCenter; - - autoSorter.background.gameObject.SetActive(false); - autoSorter.icon.gameObject.SetActive(false); - autoSorter.text.gameObject.SetActive(false); - autoSorter.sortingText.gameObject.SetActive(false); - - return prefab; - } - - protected override TechData GetBlueprintRecipe() - { - return new TechData - { - craftAmount = 1, - Ingredients = Mod.config.EasyBuild - ? new List - { - new Ingredient(TechType.Titanium, 2) - } - : new List - { - new Ingredient(TechType.Titanium, 2), - new Ingredient(TechType.ComputerChip, 1), - new Ingredient(TechType.AluminumOxide, 2) - } - }; - } - - protected override Atlas.Sprite GetItemSprite() - { - return SMLHelper.V2.Utility.ImageUtils.LoadSpriteFromFile(Mod.GetAssetPath("AutosortLocker.png")); - } - } - - /////////////////////////////////////////////////////////////////////////////////////////// - public static void AddBuildable() - { - var autosorter = new AutosortLockerBuildable(); - autosorter.Patch(); - } - } -} + public class AutosortLocker : MonoBehaviour + { + private static readonly Color MainColor = new Color(1, 0.2f, 0.2f); + private static readonly Color PulseColor = Color.white; + + private bool initialized; + private Constructable constructable; + private StorageContainer container; + private List singleItemTargets = new List(); + private List categoryTargets = new List(); + private List anyTargets = new List(); + + private int unsortableItems = 0; + + [SerializeField] + private Image background; + [SerializeField] + private Image icon; +#if SUBNAUTICA + [SerializeField] + private Text text; + [SerializeField] + private Text sortingText; +#elif BELOWZERO + [SerializeField] + private TextMeshProUGUI text; + [SerializeField] + private TextMeshProUGUI sortingText; +#endif + [SerializeField] + private bool isSorting; + [SerializeField] + private bool sortedItem; + + public bool IsSorting => isSorting; + + private void Awake() + { + constructable = GetComponent(); + container = GetComponent(); + container.hoverText = "Open Autosorter"; + container.storageLabel = "Autosorter"; + } + + private void Update() + { + if (!initialized && constructable._constructed && transform.parent != null) + { + Initialize(); + } + + if (!initialized || !constructable._constructed) + { + return; + } + + UpdateText(); + } + + private void UpdateText() + { + string output = ""; + if (isSorting) + { + output = "Sorting..."; + } + else if (unsortableItems > 0) + { + output = "Unsorted Items: " + unsortableItems; + } + else + { + output = "Ready to Sort"; + } + + sortingText.text = output; + } + + private void Initialize() + { + background.gameObject.SetActive(true); + icon.gameObject.SetActive(true); + text.gameObject.SetActive(true); + sortingText.gameObject.SetActive(true); + + background.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("LockerScreen.png")); + icon.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("Sorter.png")); + + initialized = true; + } + + private IEnumerator Start() + { + while (true) + { + yield return new WaitForSeconds(Mathf.Max(0, Mod.config.SortInterval - (unsortableItems / 60.0f))); + + yield return Sort(); + } + } + + private void AccumulateTargets() + { + singleItemTargets.Clear(); + categoryTargets.Clear(); + anyTargets.Clear(); + + SubRoot subRoot = gameObject.GetComponentInParent(); + if (subRoot == null) + { + return; + } + + var allTargets = subRoot.GetComponentsInChildren().ToList(); + foreach (var target in allTargets) + { + if (target.isActiveAndEnabled && target.CanAddItems()) + { + if (target.CanTakeAnyItem()) + { + anyTargets.Add(target); + } + else + { + if (target.HasItemFilters()) + { + singleItemTargets.Add(target); + } + if (target.HasCategoryFilters()) + { + categoryTargets.Add(target); + } + } + } + } + } + + private IEnumerator Sort() + { + sortedItem = false; + unsortableItems = container.container.count; + + if (!initialized || container.IsEmpty()) + { + isSorting = false; + yield break; + } + + AccumulateTargets(); + if (NoTargets()) + { + isSorting = false; + yield break; + } + + isSorting = true; + yield return SortFilteredTargets(false); + if (sortedItem) + { + yield break; + } + + yield return SortFilteredTargets(true); + if (sortedItem) + { + yield break; + } + + yield return SortAnyTargets(); + if (sortedItem) + { + yield break; + } + isSorting = false; + } + + private bool NoTargets() + { + return singleItemTargets.Count <= 0 && categoryTargets.Count <= 0 && anyTargets.Count <= 0; + } + + private IEnumerator SortFilteredTargets(bool byCategory) + { + int callsToCanAddItem = 0; + const int CanAddItemCallThreshold = 10; + + foreach (AutosortTarget target in byCategory ? categoryTargets : singleItemTargets) + { + foreach (AutosorterFilter filter in target.GetCurrentFilters()) + { + if (filter.IsCategory() == byCategory) + { + foreach (var techType in filter.Types) + { + callsToCanAddItem++; + var items = container.container.GetItems(techType); + + if (items != null && items.Count > 0 && target.CanAddItem(items[0].item)) + { + unsortableItems -= items.Count; + SortItem(items[0].item, target); + sortedItem = true; + + yield break; + } + else if (callsToCanAddItem > CanAddItemCallThreshold) + { + callsToCanAddItem = 0; + yield return null; + } + } + } + } + } + } + + private IEnumerator SortAnyTargets() + { + int callsToCanAddItem = 0; + const int CanAddItemCallThreshold = 10; + foreach (var item in container.container.ToList()) + { + foreach (AutosortTarget target in anyTargets) + { + callsToCanAddItem++; + if (target.CanAddItem(item.item)) + { + SortItem(item.item, target); + unsortableItems--; + sortedItem = true; + yield break; + } + else if (callsToCanAddItem > CanAddItemCallThreshold) + { + callsToCanAddItem = 0; + yield return null; + } + } + } + } + + private void SortItem(Pickupable pickup, AutosortTarget target) + { + container.container.RemoveItem(pickup, true); + target.AddItem(pickup); + + StartCoroutine(PulseIcon()); + } + + public IEnumerator PulseIcon() + { + float t = 0; + float rate = 0.5f; + while (t < 1.0) + { + t += Time.deltaTime * rate; + icon.color = Color.Lerp(PulseColor, MainColor, t); + yield return null; + } + } + + private AutosortTarget FindTarget(Pickupable item) + { + foreach (AutosortTarget target in singleItemTargets) + { + if (target.CanAddItemByItemFilter(item)) + { + return target; + } + } + foreach (AutosortTarget target in categoryTargets) + { + if (target.CanAddItemByCategoryFilter(item)) + { + return target; + } + } + foreach (AutosortTarget target in anyTargets) + { + if (target.CanAddItem(item)) + { + return target; + } + } + return null; + } + + internal class AutosortLockerBuildable : Buildable + { + public AutosortLockerBuildable() + : base("Autosorter", + "Autosort Locker", + "Small, wall-mounted smart-locker that automatically transfers items into linked Autosort Receptacles.") + { + } + + public override TechGroup GroupForPDA => TechGroup.InteriorModules; + + public override TechCategory CategoryForPDA => TechCategory.InteriorModule; + +#if SUBNAUTICA + public override GameObject GetGameObject() + { + GameObject originalPrefab = CraftData.GetPrefabForTechType(TechType.SmallLocker); + GameObject prefab = GameObject.Instantiate(originalPrefab); + + var container = prefab.GetComponent(); + container.width = Mod.config.AutosorterWidth; + container.height = Mod.config.AutosorterHeight; + container.container.Resize(Mod.config.AutosorterWidth, Mod.config.AutosorterHeight); + + var meshRenderers = prefab.GetComponentsInChildren(); + foreach (var meshRenderer in meshRenderers) + { + meshRenderer.material.color = new Color(1, 0, 0); + } + + var prefabText = prefab.GetComponentInChildren(); + var label = prefab.FindChild("Label"); + DestroyImmediate(label); + + var autoSorter = prefab.AddComponent(); + + var canvas = LockerPrefabShared.CreateCanvas(prefab.transform); + autoSorter.background = LockerPrefabShared.CreateBackground(canvas.transform); + autoSorter.icon = LockerPrefabShared.CreateIcon(autoSorter.background.transform, MainColor, 40); + autoSorter.text = LockerPrefabShared.CreateText(autoSorter.background.transform, prefabText, MainColor, 0, 14, "Autosorter"); + + autoSorter.sortingText = LockerPrefabShared.CreateText(autoSorter.background.transform, prefabText, MainColor, -120, 12, "Sorting..."); + autoSorter.sortingText.alignment = TextAnchor.UpperCenter; + + autoSorter.background.gameObject.SetActive(false); + autoSorter.icon.gameObject.SetActive(false); + autoSorter.text.gameObject.SetActive(false); + autoSorter.sortingText.gameObject.SetActive(false); + + return prefab; + } +#endif + + public override IEnumerator GetGameObjectAsync(IOut gameObject) + { + CoroutineTask task = CraftData.GetPrefabForTechTypeAsync(TechType.SmallLocker); + yield return task; + + GameObject originalPrefab = task.GetResult(); + GameObject prefab = GameObject.Instantiate(originalPrefab); + + StorageContainer container = prefab.GetComponent(); + container.width = Mod.config.AutosorterWidth; + container.height = Mod.config.AutosorterHeight; + container.Resize(Mod.config.AutosorterWidth, Mod.config.AutosorterHeight); + var meshRenderers = prefab.GetComponentsInChildren(); + foreach (var meshRenderer in meshRenderers) + { + meshRenderer.material.color = new Color(1, 0, 0); + } + +#if SUBNAUTICA + var prefabText = prefab.GetComponentInChildren(); +#elif BELOWZERO + var prefabText = prefab.GetComponentInChildren(); +#endif + var label = prefab.FindChild("Label"); + DestroyImmediate(label); + + var autoSorter = prefab.AddComponent(); + + var canvas = LockerPrefabShared.CreateCanvas(prefab.transform); + autoSorter.background = LockerPrefabShared.CreateBackground(canvas.transform, autoSorter.name); + autoSorter.icon = LockerPrefabShared.CreateIcon(autoSorter.background.transform, MainColor, 40); + // The first number is the vertical position, the second number is the font + autoSorter.text = LockerPrefabShared.CreateText(autoSorter.background.transform, prefabText, MainColor, 0, 14, "Autosorter", "Autosorter"); + autoSorter.text.rectTransform.anchoredPosition += new Vector2(20, 0); + + autoSorter.sortingText = LockerPrefabShared.CreateText(autoSorter.background.transform, prefabText, MainColor, -120, 18, "Sorting...", "Autosorter"); +#if SUBNAUTICA + autoSorter.sortingText.alignment = TextAnchor.UpperCenter; +#elif BELOWZERO + autoSorter.sortingText.alignment = TextAlignmentOptions.Top; +#endif + + autoSorter.background.gameObject.SetActive(false); + autoSorter.icon.gameObject.SetActive(false); + autoSorter.text.gameObject.SetActive(false); + autoSorter.sortingText.gameObject.SetActive(false); + + gameObject.Set(prefab); + yield break; + } + + protected override RecipeData GetBlueprintRecipe() + { + return new RecipeData() + { + craftAmount = 1, + Ingredients = Mod.config.EasyBuild + ? new List + { + new Ingredient(TechType.Titanium, 2) + } + : new List + { + new Ingredient(TechType.Titanium, 2), + new Ingredient(TechType.ComputerChip, 1), + new Ingredient(TechType.AluminumOxide, 2) + } + }; + } + + protected override Sprite GetItemSprite() + { + return SMLHelper.V2.Utility.ImageUtils.LoadSpriteFromFile(Mod.GetAssetPath("AutosortLocker.png")); + } + } + + /*_____________________________________________________________________________________________________*/ + + public static void AddBuildable() + { + var autosorter = new AutosortLockerBuildable(); + autosorter.Patch(); + } + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/AutosortLockers.csproj b/SubnauticaModSystem/AutosortLockers/AutosortLockersSML.csproj similarity index 58% rename from SubnauticaModSystem/AutosortLockers/AutosortLockers.csproj rename to SubnauticaModSystem/AutosortLockers/AutosortLockersSML.csproj index 8c1c9af..0ab39f0 100644 --- a/SubnauticaModSystem/AutosortLockers/AutosortLockers.csproj +++ b/SubnauticaModSystem/AutosortLockers/AutosortLockersSML.csproj @@ -1,6 +1,7 @@  + Debug AnyCPU @@ -9,7 +10,8 @@ Properties AutosortLockers AutosortLockersSML - v4.0 + $(SolutionDir)$(AssemblyName)\$(Configuration)\ + v4.7.2 512 @@ -35,77 +37,103 @@ Always + + BZ;BELOWZERO + true + true + $(CommonDir)SubnauticaZero.Stable + SubnauticaZero_Data + SMLHelper_BZ + AnyCPU + 7.1 + prompt + false + + + SN1;SUBNAUTICA + true + true + $(CommonDir)Subnautica.Stable + Subnautica_Data + Modding Helper + AnyCPU + 7.1 + prompt + false + - - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\0Harmony-1.2.0.1.dll - False + + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\BepInEx\core\0Harmony.dll False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\Assembly-CSharp.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Assembly-CSharp.dll False False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\Assembly-CSharp-firstpass.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Assembly-CSharp-firstpass.dll False False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\Newtonsoft.Json.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Newtonsoft.Json.dll False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\QModInstaller.dll + ..\..\..\SteamLibrary\steamapps\common\Subnautica\BepInEx\plugins\QModManager\QModInstaller.dll False - D:\SteamLibrary\steamapps\common\Subnautica\QMods\Modding Helper\SMLHelper.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\QMods\SMLHelper_BZ\SMLHelper.dll False + + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.TextMeshPro.dll + - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\UnityEngine.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.dll False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\UnityEngine.CoreModule.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.CoreModule.dll False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\UnityEngine.InputLegacyModule.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.InputLegacyModule.dll False False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\UnityEngine.Physics2DModule.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.Physics2DModule.dll False False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\UnityEngine.PhysicsModule.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.PhysicsModule.dll False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\UnityEngine.TextCoreModule.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TextCoreModule.dll False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\UnityEngine.TextRenderingModule.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TextRenderingModule.dll False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\UnityEngine.UI.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UI.dll False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\UnityEngine.UIElementsModule.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UIElementsModule.dll False - D:\SteamLibrary\steamapps\common\Subnautica\Subnautica_Data\Managed\UnityEngine.UIModule.dll + ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UIModule.dll False @@ -114,6 +142,7 @@ + @@ -121,6 +150,7 @@ + @@ -130,7 +160,7 @@ - + True @@ -139,27 +169,21 @@ - - - PreserveNewest - - ResXFileCodeGenerator Resources.Designer.cs + Designer - + + + - xcopy $(TargetPath) D:\SteamLibrary\steamapps\common\Subnautica\QMods\$(ProjectName)\ /q /y -xcopy $(ProjectDir)mod.json D:\SteamLibrary\steamapps\common\Subnautica\QMods\$(ProjectName)\ /q /y -xcopy $(ProjectDir)Assets D:\SteamLibrary\steamapps\common\Subnautica\QMods\$(ProjectName)\Assets\ /q /y /i - -xcopy $(TargetPath) D:\EpicGames\Subnautica\QMods\$(ProjectName)\ /q /y -xcopy $(ProjectDir)mod.json D:\EpicGames\Subnautica\QMods\$(ProjectName)\ /q /y -xcopy $(ProjectDir)Assets D:\EpicGames\Subnautica\QMods\$(ProjectName)\Assets\ /q /y /i + If $(Configuration) == SN1 D:\Code\below_zero\copy_SN_dll.bat +If $(Configuration) == BZ D:\Code\below_zero\copy_BZ_dll.bat + \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/AutosortLockersSML.sln b/SubnauticaModSystem/AutosortLockers/AutosortLockersSML.sln new file mode 100644 index 0000000..5e0e693 --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/AutosortLockersSML.sln @@ -0,0 +1,34 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31321.278 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutosortLockersSML", "AutosortLockersSML.csproj", "{6C883B28-31E6-4C26-B32B-BF5BE0D70190}" +EndProject +Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + ..\Common\Common.projitems*{6c883b28-31e6-4c26-b32b-bf5be0d70190}*SharedItemsImports = 4 + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + BZ|Any CPU = BZ|Any CPU + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + SN1|Any CPU = SN1|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.BZ|Any CPU.ActiveCfg = BZ|Any CPU + {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.BZ|Any CPU.Build.0 = BZ|Any CPU + {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.Release|Any CPU.Build.0 = Release|Any CPU + {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.SN1|Any CPU.ActiveCfg = SN1|Any CPU + {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.SN1|Any CPU.Build.0 = SN1|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {225DA48E-099A-4A1B-93BB-50193BFA7900} + EndGlobalSection +EndGlobal diff --git a/SubnauticaModSystem/AutosortLockers/AutosortTarget.cs b/SubnauticaModSystem/AutosortLockers/AutosortTarget.cs index c311362..35cdd00 100644 --- a/SubnauticaModSystem/AutosortLockers/AutosortTarget.cs +++ b/SubnauticaModSystem/AutosortLockers/AutosortTarget.cs @@ -7,12 +7,19 @@ using SMLHelper.V2.Crafting; using UnityEngine; using UnityEngine.UI; +using UnityEngine.EventSystems; +using UWE; +#if SUBNAUTICA +using RecipeData = SMLHelper.V2.Crafting.RecipeData; +#elif BELOWZERO +using TMPro; +#endif namespace AutosortLockers { public class AutosortTarget : MonoBehaviour { - public const int MaxTypes = 7; + public const int MaxTypes = 10; public const float MaxDistance = 3; private bool initialized; @@ -23,8 +30,29 @@ public class AutosortTarget : MonoBehaviour private Coroutine plusCoroutine; private SaveDataEntry saveData; +#if SUBNAUTICA [SerializeField] private Text textPrefab; + [SerializeField] + private Text text; + [SerializeField] + private Text label; + [SerializeField] + private Text plus; + [SerializeField] + private Text quantityText; +#elif BELOWZERO + [SerializeField] + private TextMeshProUGUI textPrefab; + [SerializeField] + private TextMeshProUGUI text; + [SerializeField] + private TextMeshProUGUI label; + [SerializeField] + private TextMeshProUGUI plus; + [SerializeField] + private TextMeshProUGUI quantityText; +#endif [SerializeField] private Image background; [SerializeField] @@ -38,14 +66,6 @@ public class AutosortTarget : MonoBehaviour [SerializeField] private Image customizeButtonImage; [SerializeField] - private Text text; - [SerializeField] - private Text label; - [SerializeField] - private Text plus; - [SerializeField] - private Text quantityText; - [SerializeField] private List currentFilters = new List(); private void Awake() @@ -126,16 +146,50 @@ public void RemoveFilter(AutosorterFilter filter) private void UpdateText() { + int strLen = 17; + string lockerType = container.name; + if (lockerType == "AutosortTarget(Clone)") + { + strLen = 17; // Trim filter lables so they don't wrap on the lockers + } + else + { + strLen = 22; // Trim filter lables so they don't wrap on the lockers + } + if (text != null) { if (currentFilters == null || currentFilters.Count == 0) { text.text = "[Any]"; +#if SUBNAUTICA + text.alignment = TextAnchor.MiddleCenter; +#elif BELOWZERO + text.alignment = TextAlignmentOptions.Center; +#endif } else { - string filtersText = string.Join("\n", currentFilters.Select((f) => f.IsCategory() ? "[" + f.GetString() + "]" : f.GetString()).ToArray()); + string filtersText = string.Join("\n", currentFilters.Select((f) => f.IsCategory() ? "[" + (f.GetString().Length > strLen ? f.GetString().Substring(0, strLen) : f.GetString()) + "]" : f.GetString().Length > strLen ? f.GetString().Substring(0, strLen) : f.GetString()).ToArray()); + // Filter text displayed on the lockers text.text = filtersText; + + if (currentFilters.Count == 1) + { +#if SUBNAUTICA + text.alignment = TextAnchor.MiddleCenter; +#elif BELOWZERO + text.alignment = TextAlignmentOptions.Center; +#endif + } + else + { +#if SUBNAUTICA + text.alignment = TextAnchor.MiddleLeft; +#elif BELOWZERO + text.alignment = TextAlignmentOptions.Left; +#endif + } } } } @@ -370,10 +424,25 @@ private void Initialize() UpdateText(); + StartCoroutine("FinalSetup"); + initialized = true; + } + + internal bool bPrefabsLoaded = false; + internal GameObject lockerPrefab; + + private IEnumerator FinalSetup() + { + IPrefabRequest request = PrefabDatabase.GetPrefabForFilenameAsync("Submarine/Build/SmallLocker.prefab"); + yield return request; + request.TryGetPrefab(out GameObject prefab); + lockerPrefab = prefab; + bPrefabsLoaded = true; + CreatePicker(); CreateCustomizeScreen(); - initialized = true; + yield break; } private void InitializeFromSaveData() @@ -381,6 +450,7 @@ private void InitializeFromSaveData() Logger.Log("Object Initialize from Save Data"); label.text = saveData.Label; label.color = saveData.LabelColor.ToColor(); + DestroyImmediate(label); icon.color = saveData.IconColor.ToColor(); configureButtonImage.color = saveData.ButtonsColor.ToColor(); customizeButtonImage.color = saveData.ButtonsColor.ToColor(); @@ -421,7 +491,9 @@ private List GetNewVersion(List filterData) { Dictionary validItems = new Dictionary(); Dictionary validCategories = new Dictionary(); + var filterList = AutosorterList.GetFilters(); + foreach (var filter in filterList) { if (filter.IsCategory()) @@ -449,15 +521,6 @@ private List GetNewVersion(List filterData) newData.Add(filter); continue; } - - var newTypes = AutosorterList.GetOldFilter(filter.Category, out bool success, out string newCategory); - if (success) - { - newData.Add(new AutosorterFilter() { Category = newCategory, Types = newTypes }); - continue; - } - - newData.Add(filter); } return newData; } @@ -472,7 +535,7 @@ private void CreatePicker() private void CreateCustomizeScreen() { - customizeScreen = CustomizeScreen.Create(background.transform, saveData); + customizeScreen = CustomizeScreen.Create(background.transform, saveData, lockerPrefab); customizeScreen.onModified += InitializeFromSaveData; customizeScreen.Initialize(saveData); customizeScreen.gameObject.SetActive(false); @@ -518,15 +581,16 @@ public IEnumerator ShowPlus() private void UpdateQuantityText() { var count = container.container.count; - quantityText.text = count == 0 ? "empty" : count.ToString(); + + quantityText.text = count == 0 ? "Empty" : count.ToString(); } internal class AutosortTargetBuildable : Buildable { public AutosortTargetBuildable() : base("AutosortTarget", - "Autosort Receptacle", - "Wall locker linked to an Autosorter that receives sorted items.") + "Autosort Receptacle", + "Wall locker linked to an Autosorter that receives sorted items.") { } @@ -534,21 +598,26 @@ public AutosortTargetBuildable() public override TechCategory CategoryForPDA => TechCategory.InteriorModule; - public override GameObject GetGameObject() + public override IEnumerator GetGameObjectAsync(IOut gameObject) { - GameObject prefab = GetPrefab(TechType.SmallLocker); + TaskResult result = new TaskResult(); + yield return GetPrefabAsync(TechType.SmallLocker, result); + + GameObject basePrefab = result.Get(); + GameObject prefab = GameObject.Instantiate(basePrefab); StorageContainer container = prefab.GetComponent(); container.width = Mod.config.ReceptacleWidth; container.height = Mod.config.ReceptacleHeight; - container.container.Resize(Mod.config.ReceptacleWidth, Mod.config.ReceptacleHeight); + container.Resize(Mod.config.ReceptacleWidth, Mod.config.ReceptacleHeight); - return prefab; + gameObject.Set(prefab); + yield break; } - protected override TechData GetBlueprintRecipe() + protected override RecipeData GetBlueprintRecipe() { - return new TechData + return new RecipeData { craftAmount = 1, Ingredients = Mod.config.EasyBuild @@ -564,7 +633,7 @@ protected override TechData GetBlueprintRecipe() }; } - protected override Atlas.Sprite GetItemSprite() + protected override Sprite GetItemSprite() { return SMLHelper.V2.Utility.ImageUtils.LoadSpriteFromFile(Mod.GetAssetPath("AutosortTarget.png")); } @@ -574,8 +643,8 @@ internal class AutosortStandingTargetBuildable : Buildable { public AutosortStandingTargetBuildable() : base("AutosortTargetStanding", - "Standing Autosort Receptacle", - "Large locker linked to an Autosorter that receives sorted items.") + "Standing Autosort Receptacle", + "Large locker linked to an Autosorter that receives sorted items.") { } @@ -583,21 +652,25 @@ public AutosortStandingTargetBuildable() public override TechCategory CategoryForPDA => TechCategory.InteriorModule; - public override GameObject GetGameObject() + public override IEnumerator GetGameObjectAsync(IOut gameObject) { - var prefab = GetPrefab(TechType.Locker); + TaskResult result = new TaskResult(); + yield return GetPrefabAsync(TechType.Locker, result); + + GameObject basePrefab = result.Get(); + GameObject prefab = GameObject.Instantiate(basePrefab); - var container = prefab.GetComponent(); + StorageContainer container = prefab.GetComponent(); container.width = Mod.config.StandingReceptacleWidth; container.height = Mod.config.StandingReceptacleHeight; - container.container.Resize(Mod.config.StandingReceptacleWidth, Mod.config.StandingReceptacleHeight); - - return prefab; + container.Resize(Mod.config.StandingReceptacleWidth, Mod.config.StandingReceptacleHeight); + gameObject.Set(prefab); + yield break; } - protected override TechData GetBlueprintRecipe() + protected override RecipeData GetBlueprintRecipe() { - return new TechData + return new RecipeData { craftAmount = 1, Ingredients = Mod.config.EasyBuild @@ -615,13 +688,14 @@ protected override TechData GetBlueprintRecipe() }; } - protected override Atlas.Sprite GetItemSprite() + protected override Sprite GetItemSprite() { return SMLHelper.V2.Utility.ImageUtils.LoadSpriteFromFile(Mod.GetAssetPath("AutosortTargetStanding.png")); } } - /////////////////////////////////////////////////////////////////////////////////////////// + /*__________________________________________________________________________________________________________*/ + public static void AddBuildable() { var sorterTarget = new AutosortTargetBuildable(); @@ -631,9 +705,12 @@ public static void AddBuildable() sorterStandingTarget.Patch(); } - public static GameObject GetPrefab(TechType basePrefab) + public static IEnumerator GetPrefabAsync(TechType basePrefab, IOut gameObject) { - GameObject originalPrefab = CraftData.GetPrefabForTechType(basePrefab); + CoroutineTask task = CraftData.GetPrefabForTechTypeAsync(basePrefab); + yield return task; + + GameObject originalPrefab = task.GetResult(); GameObject prefab = GameObject.Instantiate(originalPrefab); var meshRenderers = prefab.GetComponentsInChildren(); @@ -644,40 +721,85 @@ public static GameObject GetPrefab(TechType basePrefab) var autosortTarget = prefab.AddComponent(); - var smallLockerPrefab = CraftData.GetPrefabForTechType(TechType.SmallLocker); + task = CraftData.GetPrefabForTechTypeAsync(TechType.SmallLocker); + yield return task; + var smallLockerPrefab = GameObject.Instantiate(task.GetResult()); + +#if SUBNAUTICA autosortTarget.textPrefab = GameObject.Instantiate(smallLockerPrefab.GetComponentInChildren()); +#elif BELOWZERO + autosortTarget.textPrefab = GameObject.Instantiate(smallLockerPrefab.GetComponentInChildren()); +#endif + // Destroys the lable on the small locker var label = prefab.FindChild("Label"); DestroyImmediate(label); + label = prefab.FindChild("Locker"); + DestroyImmediate(label); var canvas = LockerPrefabShared.CreateCanvas(prefab.transform); if (basePrefab == TechType.Locker) { - canvas.transform.localPosition = new Vector3(0, 1.1f, 0.25f); + // Positions the rectangle on the standing locker horz, vert, depth + canvas.transform.localPosition = new Vector3(0.04f, 1.0f, 0.25f); } - autosortTarget.background = LockerPrefabShared.CreateBackground(canvas.transform); - autosortTarget.icon = LockerPrefabShared.CreateIcon(autosortTarget.background.transform, autosortTarget.textPrefab.color, 70); - autosortTarget.text = LockerPrefabShared.CreateText(autosortTarget.background.transform, autosortTarget.textPrefab, autosortTarget.textPrefab.color, -20, 12, "Any"); + autosortTarget.background = LockerPrefabShared.CreateBackground(canvas.transform, prefab.name); - autosortTarget.label = LockerPrefabShared.CreateText(autosortTarget.background.transform, autosortTarget.textPrefab, autosortTarget.textPrefab.color, 100, 12, "Locker"); + int iconPos = 75; // The vertical pos of the icon at the top of the container + int textPos = 110; // The vertical pos of the "Locker" text at the top of the container + int buttonPos = -104; // The vertical positions of the color and customize buttons + int labelFont = 12; // The font for the label on the lockers + if (Mod.config.ShowLabel) + { // This is a cludge until I can find the placeholder + labelFont = 0; // Set to zero and the Locker text does not display + } + else + { + labelFont = 12; + } + + // Change the positions for the Standing Locker + if (prefab.name == "Locker(Clone)") + { + iconPos = 93; + textPos = 120; + buttonPos = -120; + } + + // Position the locker icon + autosortTarget.icon = LockerPrefabShared.CreateIcon(autosortTarget.background.transform, autosortTarget.textPrefab.color, iconPos); + // Position the Filter lables, the first number is the horizontal position, the second number is the font size. + autosortTarget.text = LockerPrefabShared.CreateText(autosortTarget.background.transform, autosortTarget.textPrefab, autosortTarget.textPrefab.color, 0, 12, "[Any] - Doesn't display", prefab.name); + // Position the "Locker" text + autosortTarget.label = LockerPrefabShared.CreateText(autosortTarget.background.transform, autosortTarget.textPrefab, autosortTarget.textPrefab.color, textPos, labelFont, "Locker - Doesn't display", prefab.name); autosortTarget.background.gameObject.SetActive(false); autosortTarget.icon.gameObject.SetActive(false); autosortTarget.text.gameObject.SetActive(false); + // The container filters ?? + autosortTarget.plus = LockerPrefabShared.CreateText(autosortTarget.background.transform, autosortTarget.textPrefab, autosortTarget.textPrefab.color, 0, 12, "+ - Doesn't display", prefab.name); - autosortTarget.plus = LockerPrefabShared.CreateText(autosortTarget.background.transform, autosortTarget.textPrefab, autosortTarget.textPrefab.color, 0, 30, "+"); + // Pos of the color picker autosortTarget.plus.color = new Color(autosortTarget.textPrefab.color.r, autosortTarget.textPrefab.color.g, autosortTarget.textPrefab.color.g, 0); - autosortTarget.plus.rectTransform.anchoredPosition += new Vector2(30, 70); - - autosortTarget.quantityText = LockerPrefabShared.CreateText(autosortTarget.background.transform, autosortTarget.textPrefab, autosortTarget.textPrefab.color, 0, 10, "XX"); - autosortTarget.quantityText.rectTransform.anchoredPosition += new Vector2(-35, -104); - - autosortTarget.configureButton = ConfigureButton.Create(autosortTarget.background.transform, autosortTarget.textPrefab.color, 40); + // Pos of the item count on the locker + autosortTarget.quantityText = LockerPrefabShared.CreateText(autosortTarget.background.transform, autosortTarget.textPrefab, autosortTarget.textPrefab.color, 0, 12, "XX - Doesn't display", prefab.name); + // Pos the quantity text on the locker + if (prefab.name == "Locker(Clone)") + { + autosortTarget.quantityText.rectTransform.anchoredPosition += new Vector2(14, -210); + } + else + { + autosortTarget.quantityText.rectTransform.anchoredPosition += new Vector2(4, -198); + } + // Pos of the configure button on the locker + autosortTarget.configureButton = ConfigureButton.Create(autosortTarget.background.transform, autosortTarget.textPrefab.color, 45, buttonPos); autosortTarget.configureButtonImage = autosortTarget.configureButton.GetComponent(); - autosortTarget.customizeButton = ConfigureButton.Create(autosortTarget.background.transform, autosortTarget.textPrefab.color, 20); + // Pos of the customize button on the locker + autosortTarget.customizeButton = ConfigureButton.Create(autosortTarget.background.transform, autosortTarget.textPrefab.color, 20, buttonPos); autosortTarget.customizeButtonImage = autosortTarget.customizeButton.GetComponent(); - return prefab; + gameObject.Set(prefab); } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/AutosortTypePicker.cs b/SubnauticaModSystem/AutosortLockers/AutosortTypePicker.cs index 6c70d0d..2d3efc9 100644 --- a/SubnauticaModSystem/AutosortLockers/AutosortTypePicker.cs +++ b/SubnauticaModSystem/AutosortLockers/AutosortTypePicker.cs @@ -3,6 +3,9 @@ using System.Linq; using Common.Mod; using Common.Utility; +#if BELOWZERO +using TMPro; +#endif using UnityEngine; using UnityEngine.UI; @@ -20,25 +23,30 @@ private enum Mode { Categories, Items } [SerializeField] private AutosortTarget locker; [SerializeField] - private PickerButton[] currentList = new PickerButton[AutosortTarget.MaxTypes]; + private FilterPickerButton[] currentList = new FilterPickerButton[AutosortTarget.MaxTypes]; [SerializeField] - private PickerButton[] availableList = new PickerButton[AutosortTarget.MaxTypes]; + private FilterPickerButton[] availableList = new FilterPickerButton[AutosortTarget.MaxTypes]; [SerializeField] private Image background; [SerializeField] private Image[] underlines = new Image[2]; [SerializeField] private PickerCloseButton closeButton; +#if SUBNAUTICA [SerializeField] private Text pageText; +#elif BELOWZERO + [SerializeField] + private TextMeshProUGUI pageText; +#endif [SerializeField] private PickerPageButton prevPageButton; [SerializeField] private PickerPageButton nextPageButton; [SerializeField] - private PickerButton categoriesTabButton; + private FilterPickerButton categoriesTabButton; [SerializeField] - private PickerButton itemsTabButton; + private FilterPickerButton itemsTabButton; public void Initialize(AutosortTarget locker) { @@ -102,7 +110,6 @@ public void OnCurrentListItemClick(AutosorterFilter filter) { return; } - locker.RemoveFilter(filter); RefreshCurrentFilters(); } @@ -113,7 +120,6 @@ public void OnAvailableListItemClick(AutosorterFilter filter) { return; } - locker.AddFilter(filter); RefreshCurrentFilters(); } @@ -165,9 +171,14 @@ private void SetCurrentPage(int page) } } + public static AutosortTypePicker Create(Transform parent, +#if SUBNAUTICA + Text textPrefab +#elif BELOWZERO + TextMeshProUGUI textPrefab +#endif + ) - - public static AutosortTypePicker Create(Transform parent, Text textPrefab) { var picker = LockerPrefabShared.CreateCanvas(parent).gameObject.AddComponent(); picker.GetComponent().sortingLayerID = 0; @@ -175,43 +186,64 @@ public static AutosortTypePicker Create(Transform parent, Text textPrefab) var t = picker.transform; t.localEulerAngles = new Vector3(0, 180, 0); - t.localPosition = new Vector3(0, 0, 0.4f); + //t.localPosition = new Vector3(0, 0, 0.4f); - picker.background = LockerPrefabShared.CreateBackground(picker.transform); - picker.background.color = new Color(0, 0, 0, 1); - picker.background.type = Image.Type.Simple; - RectTransformExtensions.SetSize(picker.background.rectTransform, 240, 220); + picker.background = LockerPrefabShared.CreateBackground(picker.transform, picker.name); + //picker.background.color = new Color(0, 0, 0, 1); + //picker.background.type = Image.Type.Simple; + // Set the size of the Item Picker background - first number width, second height + RectTransformExtensions.SetSize(picker.background.rectTransform, 250, 295); + // Position the Item Picker on the locker + if (parent.name.Contains("Standing(Clone)")) + { + picker.background.rectTransform.anchoredPosition = new Vector2(0.2f, 0.0f); + } + else + { + picker.background.rectTransform.anchoredPosition = new Vector2(0.15f, 0.0f); + } + // Hoizontal spacing between items in the picker int spacing = 20; - int startY = 60; - int x = 55; - - picker.underlines[0] = CreateUnderline(picker.background.transform, x); - picker.underlines[1] = CreateUnderline(picker.background.transform, -x); - - var currentText = LockerPrefabShared.CreateText(picker.background.transform, textPrefab, Color.white, 90, 12, "Current"); - currentText.rectTransform.anchoredPosition = new Vector2(-x, 90); - - picker.categoriesTabButton = CreatePickerButton(picker.background.transform, x - 23 + 2, 90, textPrefab, picker.OnCategoriesButtonClick, 60); - picker.categoriesTabButton.Override("Categories", true); - - picker.itemsTabButton = CreatePickerButton(picker.background.transform, x + 30 + 2, 90, textPrefab, picker.OnItemsButtonClick, 38); - picker.itemsTabButton.Override("Items", false); - - picker.pageText = LockerPrefabShared.CreateText(picker.background.transform, textPrefab, Color.white, 90, 10, "1/X"); - picker.pageText.rectTransform.anchoredPosition = new Vector2(x, -80); - - picker.prevPageButton = AddPageButton(picker.background.transform, picker, -1, x - 20, -80); - picker.nextPageButton = AddPageButton(picker.background.transform, picker, +1, x + 20, -80); - + // Top position of the Item Picker list, but not the Item and Category buttons + int startY = 88; + // Offset from the center of Selected and Available Item columns in the picker + int centOff = 58; + // The horizontal offset of the Current Filters, Category, and Items + // and the Close and Page buttons + int horzOff = 120; + + picker.underlines[0] = CreateUnderline(picker.background.transform, centOff); + picker.underlines[1] = CreateUnderline(picker.background.transform, -centOff); + + // The first number is the vertical pos of the Item button, the second number is the font size + var currentText = LockerPrefabShared.CreateText(picker.background.transform, textPrefab, Color.white, horzOff, 12, "Current Filters", "Picker"); + // The vertical position of the "Current Filters" text in the picker is set by the second number + currentText.rectTransform.anchoredPosition = new Vector2(-33, 27); + // The width of the Categories button is the last number, x - is the horizontal pos, the next number is the vertical pos + picker.categoriesTabButton = CreatePickerButton(picker.background.transform, 35, horzOff, textPrefab, picker.OnCategoriesButtonClick, 65); + // Prefix with space until I can find the button instance to override + picker.categoriesTabButton.Override(" Categories", true); + // The width of the Items button is the last number, x - is the horizontal pos, the next number is the vertical pos + picker.itemsTabButton = CreatePickerButton(picker.background.transform, 92, horzOff, textPrefab, picker.OnItemsButtonClick, 40); + // Prefix with space until I can find the button instance to override + picker.itemsTabButton.Override(" Items", false); + // The smaller number is the font size, the vertical position is overwritten below + picker.pageText = LockerPrefabShared.CreateText(picker.background.transform, textPrefab, Color.white, 0, 14, "1/X", "Picker"); + // The vertical position of the page numbers + picker.pageText.rectTransform.anchoredPosition = new Vector2(95, -211); + + // The vertical and horizontal position of the page arrows + picker.prevPageButton = AddPageButton(picker.background.transform, picker, -1, 28, -120); + picker.nextPageButton = AddPageButton(picker.background.transform, picker, +1, 89, -120); + // The vertical position of the close button ? picker.closeButton = AddCloseButton(picker.background.transform); for (int i = 0; i < AutosortTarget.MaxTypes; ++i) { - picker.currentList[i] = CreatePickerButton(picker.background.transform, -x, startY - (i * spacing), textPrefab, picker.OnCurrentListItemClick); - picker.availableList[i] = CreatePickerButton(picker.background.transform, x, startY - (i * spacing), textPrefab, picker.OnAvailableListItemClick); + picker.currentList[i] = CreatePickerButton(picker.background.transform, -centOff, startY - (i * spacing), textPrefab, picker.OnCurrentListItemClick); + picker.availableList[i] = CreatePickerButton(picker.background.transform, centOff, startY - (i * spacing), textPrefab, picker.OnAvailableListItemClick); } - return picker; } @@ -220,7 +252,8 @@ private static PickerPageButton AddPageButton(Transform parent, AutosortTypePick var pageButton = LockerPrefabShared.CreateIcon(parent, Color.white, y); pageButton.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath(pageOffset < 0 ? "ArrowLeft.png" : "ArrowRight.png")); pageButton.rectTransform.anchoredPosition = new Vector2(x, y); - RectTransformExtensions.SetSize(pageButton.rectTransform, 44 / 4.0f, 73 / 4.0f); + // Sets the size of the arrows + RectTransformExtensions.SetSize(pageButton.rectTransform, 14.0f, 16.0f); var controller = pageButton.gameObject.AddComponent(); controller.target = target; @@ -235,7 +268,8 @@ private static Image CreateUnderline(Transform parent, int x) RectTransformExtensions.SetParams(underline.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(underline.rectTransform, 272 / 3, 78 / 3); underline.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("TitleUnderline.png")); - underline.rectTransform.anchoredPosition = new Vector2(x, 90); + // Vertical position of Underline + underline.rectTransform.anchoredPosition = new Vector2(x, 115); return underline; } @@ -246,16 +280,24 @@ public static PickerCloseButton AddCloseButton(Transform parent) RectTransformExtensions.SetParams(closeImage.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(closeImage.rectTransform, 20, 20); closeImage.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("Close.png")); - closeImage.rectTransform.anchoredPosition = new Vector2(0, -90); + // Vertical and horizontal pos of the X - close button + closeImage.rectTransform.anchoredPosition = new Vector2(0, -120); var closeButton = closeImage.gameObject.AddComponent(); return closeButton; } - public static PickerButton CreatePickerButton(Transform parent, int x, int y, Text textPrefab, Action action, int width = 100) + public static FilterPickerButton CreatePickerButton(Transform parent, int x, int y, +#if SUBNAUTICA + Text textPrefab, +#elif BELOWZERO + TextMeshProUGUI textPrefab, +#endif + // The width of the picker button is set here + Action action, int width = 110) { - var button = PickerButton.Create(parent, textPrefab, action, width); + var button = FilterPickerButton.Create(parent, textPrefab, action, width); var rt = button.transform as RectTransform; rt.anchoredPosition = new Vector2(x, y); @@ -263,4 +305,4 @@ public static PickerButton CreatePickerButton(Transform parent, int x, int y, Te return button; } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/AutosorterCategories.cs b/SubnauticaModSystem/AutosortLockers/AutosorterCategories.cs index 2873056..ff33739 100644 --- a/SubnauticaModSystem/AutosortLockers/AutosorterCategories.cs +++ b/SubnauticaModSystem/AutosortLockers/AutosorterCategories.cs @@ -1,452 +1,21 @@ -using Oculus.Newtonsoft.Json; +#if SUBNAUTICA +using Newtonsoft.Json; +#elif BELOWZERO +using Newtonsoft.Json; +#endif using System; -using System.Collections; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; -using UnityEngine; namespace AutosortLockers { - [Serializable] - public enum AutoSorterCategory - { - None, - Food, - Water, - PlantsAndSeeds, - Metals, - Electronics, - Batteries, - NaturalMaterials, - SyntheticMaterials, - CrystalMaterials, - Fish, - Eggs, - Tools, - Equipment, - MysteriousTablets, - ScannerRoomUpgrades, - GeneralUpgrades, - SeamothUpgrades, - PrawnSuitUpgrades, - CyclopsUpgrades, - Torpedoes, - AlterraStuff, - } - - public static class AutosorterCategoryData - { - public static List Fish = new List { - TechType.Bladderfish, - TechType.Boomerang, - TechType.LavaBoomerang, - TechType.Eyeye, - TechType.LavaEyeye, - TechType.GarryFish, - TechType.HoleFish, - TechType.Hoopfish, - TechType.Spinefish, - TechType.Hoverfish, - TechType.Oculus, - TechType.Peeper, - TechType.Reginald, - TechType.Spadefish, - }; - - public static List AlterraArtifacts = new List { - TechType.LabContainer, - TechType.LabContainer2, - TechType.LabContainer3, - TechType.ArcadeGorgetoy, - TechType.Cap1, - TechType.Cap2, - TechType.LabEquipment1, - TechType.LabEquipment2, - TechType.LabEquipment3, - TechType.LEDLightFragment, - TechType.StarshipSouvenir, - TechType.Poster, - TechType.PosterAurora, - TechType.PosterExoSuit1, - TechType.PosterExoSuit2, - TechType.PosterKitty, - }; - - public static List MysteriousTablets = new List { - TechType.PrecursorKey_Blue, - TechType.PrecursorKey_Orange, - TechType.PrecursorKey_Purple, - }; - - public static List CreatureEggs = new List { - TechType.BonesharkEgg, - TechType.CrabsnakeEgg, - TechType.CrabsquidEgg, - TechType.CrashEgg, - TechType.CutefishEgg, - TechType.GasopodEgg, - TechType.JellyrayEgg, - TechType.JumperEgg, - TechType.LavaLizardEgg, - TechType.MesmerEgg, - TechType.RabbitrayEgg, - TechType.ReefbackEgg, - TechType.SandsharkEgg, - TechType.ShockerEgg, - TechType.SpadefishEgg, - TechType.StalkerEgg, - TechType.GrandReefsEgg, - TechType.GrassyPlateausEgg, - TechType.KelpForestEgg, - TechType.KooshZoneEgg, - TechType.LavaZoneEgg, - TechType.MushroomForestEgg, - TechType.SafeShallowsEgg, - TechType.TwistyBridgesEgg, - TechType.RabbitrayEggUndiscovered, - TechType.JellyrayEggUndiscovered, - TechType.StalkerEggUndiscovered, - TechType.ReefbackEggUndiscovered, - TechType.JumperEggUndiscovered, - TechType.BonesharkEggUndiscovered, - TechType.GasopodEggUndiscovered, - TechType.MesmerEggUndiscovered, - TechType.SandsharkEggUndiscovered, - TechType.ShockerEggUndiscovered, - TechType.GenericEgg, - TechType.CrashEgg, - TechType.CrashEggUndiscovered, - TechType.CrabsquidEgg, - TechType.CrabsquidEggUndiscovered, - TechType.CutefishEgg, - TechType.CutefishEggUndiscovered, - TechType.LavaLizardEgg, - TechType.LavaLizardEggUndiscovered, - TechType.CrabsnakeEggUndiscovered, - TechType.SpadefishEggUndiscovered - }; - - public static List Food = new List { - TechType.CookedBladderfish, - TechType.CookedBoomerang, - TechType.CookedEyeye, - TechType.CookedGarryFish, - TechType.CookedHoleFish, - TechType.CookedHoopfish, - TechType.CookedHoverfish, - TechType.CookedLavaBoomerang, - TechType.CookedLavaEyeye, - TechType.CookedOculus, - TechType.CookedPeeper, - TechType.CookedReginald, - TechType.CookedSpadefish, - TechType.CookedSpinefish, - TechType.CuredBladderfish, - TechType.CuredBoomerang, - TechType.CuredEyeye, - TechType.CuredGarryFish, - TechType.CuredHoleFish, - TechType.CuredHoopfish, - TechType.CuredHoverfish, - TechType.CuredLavaBoomerang, - TechType.CuredLavaEyeye, - TechType.CuredOculus, - TechType.CuredPeeper, - TechType.CuredReginald, - TechType.CuredSpadefish, - TechType.CuredSpinefish, - TechType.NutrientBlock, - TechType.Snack1, - TechType.Snack2, - TechType.Snack3, - TechType.BulboTreePiece, - TechType.HangingFruit, - TechType.Melon, - TechType.PurpleVegetable, - }; - - public static List Water = new List { - TechType.BigFilteredWater, - TechType.Coffee, - TechType.DisinfectedWater, - TechType.FilteredWater, - TechType.StillsuitWater, - }; - - public static List ScannerRoomUpgrades = new List { - TechType.MapRoomUpgradeScanRange, - TechType.MapRoomUpgradeScanSpeed, - TechType.MapRoomCamera, - }; - - public static List CyclopsUpgrades = new List { - TechType.CyclopsDecoyModule, - TechType.CyclopsFireSuppressionModule, - TechType.CyclopsHullModule1, - TechType.CyclopsHullModule2, - TechType.CyclopsHullModule3, - TechType.CyclopsSeamothRepairModule, - TechType.CyclopsShieldModule, - TechType.CyclopsSonarModule, - TechType.CyclopsThermalReactorModule, - }; - - public static List PrawnSuitUpgrades = new List { - TechType.ExoHullModule1, - TechType.ExoHullModule2, - TechType.ExosuitDrillArmModule, - TechType.ExosuitGrapplingArmModule, - TechType.ExosuitJetUpgradeModule, - TechType.ExosuitPropulsionArmModule, - TechType.ExosuitThermalReactorModule, - TechType.ExosuitTorpedoArmModule, - }; - - public static List SeamothUpgrades = new List { - TechType.SeamothElectricalDefense, - TechType.SeamothReinforcementModule, - TechType.SeamothSolarCharge, - TechType.SeamothSonarModule, - TechType.SeamothTorpedoModule, - }; - - public static List GeneralUpgrades = new List { - TechType.HullReinforcementModule, - TechType.PowerUpgradeModule, - TechType.VehicleArmorPlating, - TechType.VehicleHullModule1, - TechType.VehicleHullModule2, - TechType.VehicleHullModule3, - TechType.VehiclePowerUpgradeModule, - TechType.VehicleStorageModule, - }; - - public static List Equipment = new List { - TechType.MapRoomHUDChip, - TechType.Rebreather, - TechType.Compass, - TechType.Fins, - TechType.HighCapacityTank, - TechType.PlasteelTank, - TechType.RadiationGloves, - TechType.RadiationHelmet, - TechType.RadiationSuit, - TechType.ReinforcedDiveSuit, - TechType.ReinforcedGloves, - TechType.Stillsuit, - TechType.SwimChargeFins, - TechType.Tank, - TechType.UltraGlideFins, - }; - - public static List Tools = new List { - TechType.AirBladder, - TechType.Beacon, - TechType.Builder, - TechType.CyclopsDecoy, - TechType.DiamondBlade, - TechType.DiveReel, - TechType.DoubleTank, - TechType.FireExtinguisher, - TechType.Flare, - TechType.Flashlight, - TechType.Gravsphere, - TechType.HeatBlade, - TechType.Knife, - TechType.LaserCutter, - TechType.LEDLight, - TechType.Pipe, - TechType.PipeSurfaceFloater, - TechType.PropulsionCannon, - TechType.RepulsionCannon, - TechType.Scanner, - TechType.Seaglide, - TechType.SmallStorage, - TechType.StasisRifle, - TechType.Welder, - TechType.LuggageBag, - }; - - public static List Torpedoes = new List { - TechType.GasTorpedo, - TechType.WhirlpoolTorpedo - }; - - public static List PlantsAndSeeds = new List { - TechType.AcidMushroomSpore, - TechType.BluePalmSeed, - TechType.BulboTreePiece, - TechType.CreepvinePiece, - TechType.CreepvineSeedCluster, - TechType.EyesPlantSeed, - TechType.FernPalmSeed, - TechType.GabeSFeatherSeed, - TechType.HangingFruit, - TechType.JellyPlantSeed, - TechType.KooshChunk, - TechType.Melon, - TechType.MelonSeed, - TechType.MembrainTreeSeed, - TechType.OrangeMushroomSpore, - TechType.OrangePetalsPlantSeed, - TechType.PinkFlowerSeed, - TechType.PinkMushroomSpore, - TechType.PurpleBrainCoralPiece, - TechType.PurpleBranchesSeed, - TechType.PurpleFanSeed, - TechType.PurpleRattleSpore, - TechType.PurpleStalkSeed, - TechType.PurpleTentacleSeed, - TechType.PurpleVasePlantSeed, - TechType.PurpleVegetable, - TechType.RedBasketPlantSeed, - TechType.RedBushSeed, - TechType.RedConePlantSeed, - TechType.RedGreenTentacleSeed, - TechType.RedRollPlantSeed, - TechType.SeaCrownSeed, - TechType.ShellGrassSeed, - TechType.SmallFanSeed, - TechType.SmallMelon, - TechType.SnakeMushroomSpore, - TechType.SpikePlantSeed, - TechType.SpottedLeavesPlantSeed, - TechType.WhiteMushroomSpore, - }; - - public static List Metals = new List { - TechType.Copper, - TechType.Gold, - TechType.Lead, - TechType.Lithium, - TechType.Magnetite, - TechType.ScrapMetal, - TechType.Nickel, - TechType.PlasteelIngot, - TechType.Silver, - TechType.Titanium, - TechType.TitaniumIngot, - }; - - public static List NaturalMaterials = new List { - TechType.GasPod, - TechType.CoralChunk, - TechType.WhiteMushroom, - TechType.AcidMushroom, - TechType.JeweledDiskPiece, - TechType.BloodOil, - TechType.CrashPowder, - TechType.Salt, - TechType.SeaTreaderPoop, - TechType.StalkerTooth, - TechType.JellyPlant, - }; - - public static List Electronics = new List { - TechType.AdvancedWiringKit, - TechType.ComputerChip, - TechType.CopperWire, - TechType.DepletedReactorRod, - TechType.ReactorRod, - TechType.WiringKit, - }; - - public static List SyntheticMaterials = new List { - TechType.Aerogel, - TechType.AramidFibers, - TechType.Benzene, - TechType.Bleach, - TechType.EnameledGlass, - TechType.FiberMesh, - TechType.Glass, - TechType.HatchingEnzymes, - TechType.HydrochloricAcid, - TechType.Lubricant, - TechType.Polyaniline, - TechType.PrecursorIonCrystal, - TechType.Silicone, - }; - - public static List CrystalMaterials = new List { - TechType.AluminumOxide, - TechType.Diamond, - TechType.Kyanite, - TechType.Quartz, - TechType.Sulphur, - TechType.UraniniteCrystal, - }; - - public static List Batteries = new List { - TechType.Battery, - TechType.PowerCell, - TechType.PrecursorIonBattery, - TechType.PrecursorIonPowerCell, - }; - - public static List IndividualItems = new List { - TechType.GasPod, - TechType.CoralChunk, - TechType.WhiteMushroom, - TechType.AcidMushroom, - TechType.JeweledDiskPiece, - TechType.AdvancedWiringKit, - TechType.Aerogel, - TechType.AluminumOxide, - TechType.AramidFibers, - TechType.Benzene, - TechType.Bleach, - TechType.BloodOil, - TechType.ComputerChip, - TechType.Copper, - TechType.CopperWire, - TechType.CrashPowder, - TechType.DepletedReactorRod, - TechType.Diamond, - TechType.EnameledGlass, - TechType.FiberMesh, - TechType.FirstAidKit, - TechType.Glass, - TechType.Gold, - TechType.HatchingEnzymes, - TechType.HydrochloricAcid, - TechType.JellyPlant, - TechType.Kyanite, - TechType.Lead, - TechType.Lithium, - TechType.Lubricant, - TechType.Magnetite, - TechType.ScrapMetal, - TechType.Nickel, - TechType.PlasteelIngot, - TechType.Polyaniline, - TechType.PrecursorIonCrystal, - TechType.Quartz, - TechType.ReactorRod, - TechType.Salt, - TechType.SeaTreaderPoop, - TechType.Silicone, - TechType.Silver, - TechType.StalkerTooth, - TechType.Sulphur, - TechType.Titanium, - TechType.TitaniumIngot, - TechType.UraniniteCrystal, - TechType.WiringKit, - TechType.Battery, - TechType.PowerCell, - TechType.PrecursorIonBattery, - TechType.PrecursorIonPowerCell, - }; - } - [Serializable] public class AutosorterFilter { public string Category; public List Types = new List(); - public bool IsCategory() => !string.IsNullOrEmpty(Category); public string GetString() @@ -487,106 +56,39 @@ public static List GetFilters() return Filters; } - public static List GetOldFilter(string oldCategory, out bool success, out string newCategory) - { - var category = AutoSorterCategory.None; - if (!Int32.TryParse(oldCategory, out int oldCategoryInt)) - { - newCategory = ""; - success = false; - return new List(); - } - category = (AutoSorterCategory)oldCategoryInt; - newCategory = category.ToString(); - - success = true; - switch (category) - { - default: - case AutoSorterCategory.None: return AutosorterCategoryData.IndividualItems; - - case AutoSorterCategory.Food: return AutosorterCategoryData.Food; - case AutoSorterCategory.Water: return AutosorterCategoryData.Water; - case AutoSorterCategory.PlantsAndSeeds: return AutosorterCategoryData.PlantsAndSeeds; - case AutoSorterCategory.Metals: return AutosorterCategoryData.Metals; - case AutoSorterCategory.NaturalMaterials: return AutosorterCategoryData.NaturalMaterials; - case AutoSorterCategory.SyntheticMaterials: return AutosorterCategoryData.SyntheticMaterials; - case AutoSorterCategory.Electronics: return AutosorterCategoryData.Electronics; - case AutoSorterCategory.CrystalMaterials: return AutosorterCategoryData.CrystalMaterials; - case AutoSorterCategory.Batteries: return AutosorterCategoryData.Batteries; - case AutoSorterCategory.Fish: return AutosorterCategoryData.Fish; - case AutoSorterCategory.Eggs: return AutosorterCategoryData.CreatureEggs; - case AutoSorterCategory.Tools: return AutosorterCategoryData.Tools; - case AutoSorterCategory.Equipment: return AutosorterCategoryData.Equipment; - case AutoSorterCategory.MysteriousTablets: return AutosorterCategoryData.MysteriousTablets; - case AutoSorterCategory.ScannerRoomUpgrades: return AutosorterCategoryData.ScannerRoomUpgrades; - case AutoSorterCategory.GeneralUpgrades: return AutosorterCategoryData.GeneralUpgrades; - case AutoSorterCategory.SeamothUpgrades: return AutosorterCategoryData.SeamothUpgrades; - case AutoSorterCategory.PrawnSuitUpgrades: return AutosorterCategoryData.PrawnSuitUpgrades; - case AutoSorterCategory.CyclopsUpgrades: return AutosorterCategoryData.CyclopsUpgrades; - case AutoSorterCategory.Torpedoes: return AutosorterCategoryData.Torpedoes; - case AutoSorterCategory.AlterraStuff: return AutosorterCategoryData.AlterraArtifacts; - } - } - [Serializable] private class TypeReference { - public string Name = ""; - public TechType Value = TechType.None; + public string TechName = ""; + public TechType TechID = TechType.None; } private static void InitializeFilters() { - var path = Mod.GetAssetPath("filters.json"); - var file = JsonConvert.DeserializeObject>(File.ReadAllText(path)); - Filters = file.Where((f) => f.IsCategory()).ToList(); - - if (Mod.config.ShowAllItems) - { - var typeRefPath = Mod.GetAssetPath("type_reference.json"); - List typeReferences = - JsonConvert.DeserializeObject>(File.ReadAllText(typeRefPath)); - typeReferences.Sort((TypeReference a, TypeReference b) => - { - string aName = Language.main.Get(a.Value); - string bName = Language.main.Get(b.Value); - return String.Compare(aName.ToLowerInvariant(), bName.ToLowerInvariant(), StringComparison.Ordinal); - }); + string getFilters; + // Gets the list of Cateories that are UsedInMod = true + getFilters = GetLists.GetFiltersFromJson('C', Mod.config.GameVersion); + var categoryList = JsonConvert.DeserializeObject>(getFilters); + Filters = categoryList.Where((f) => f.IsCategory()).ToList(); - foreach (var typeRef in typeReferences) - { - Filters.Add(new AutosorterFilter() {Category = "", Types = new List {typeRef.Value}}); - } - return; - } - var sorted = file.Where(f => !f.IsCategory()).ToList(); - sorted.Sort((x, y) => - { - string xName = Language.main.Get(x.Types.First()); - string yName = Language.main.Get(y.Types.First()); - return string.Compare(xName.ToLowerInvariant(), yName.ToLowerInvariant(), StringComparison.Ordinal); - }); - foreach (var filter in sorted) + // Gets the list of TechTypes for the Game Version SN or BZ + getFilters = GetLists.GetFiltersFromJson('T', Mod.config.GameVersion); + List techTypeList = JsonConvert.DeserializeObject>(getFilters); + + techTypeList.Sort((TypeReference a, TypeReference b) => { - Filters.Add(filter); - } - } + string aName = Language.main.Get(a.TechID); + string bName = Language.main.Get(b.TechID); - private static void AddEntry(string category, List types) - { - Filters.Add(new AutosorterFilter { - Category = category, - Types = types + //Returns the list of items from techtypes.json + return aName.CompareTo(bName); }); - } - private static void AddEntry(TechType type) - { - Filters.Add(new AutosorterFilter { - Category = "", - Types = new List { type } - }); + foreach (var typeRef in techTypeList) + { + Filters.Add(new AutosorterFilter() { Category = "", Types = new List { typeRef.TechID } }); + } + return; } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/CanvasLink_Patch.cs b/SubnauticaModSystem/AutosortLockers/CanvasLink_Patch.cs new file mode 100644 index 0000000..9e0fd17 --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/CanvasLink_Patch.cs @@ -0,0 +1,43 @@ +using HarmonyLib; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace AutosortLockers +{ + [HarmonyPatch(typeof(CanvasLink))] + public class CanvasLink_Patch + { + private static readonly FieldInfo canvasesInfo = typeof(CanvasLink).GetField("canvases", BindingFlags.NonPublic | BindingFlags.Instance); + + [HarmonyPatch("SetCanvasesEnabled")] + [HarmonyPrefix] + public static bool PrefixSetCanvasesEnabled(ref CanvasLink __instance) + { + if (__instance == null) + return false; + + Canvas[] array = (Canvas[])(canvasesInfo.GetValue(__instance)); + List list = new List(); + if (array != null && array.Length > 0) + { + for (int i = 0; i < array.Length; i++) + { + if (array[i] != null) + { + list.Add(array[i]); + } + else + { + } + } + canvasesInfo.SetValue(__instance, list.ToArray()); + } + return true; + } + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/ColorPicker.cs b/SubnauticaModSystem/AutosortLockers/ColorPicker.cs index 2889211..9f48f24 100644 --- a/SubnauticaModSystem/AutosortLockers/ColorPicker.cs +++ b/SubnauticaModSystem/AutosortLockers/ColorPicker.cs @@ -51,21 +51,20 @@ public override void Open() int buttonPage = index / ButtonsPerPage; ShowPage(buttonPage); } + + /*_____________________________________________________________________________________________________*/ - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////// - public static ColorPicker Create(Transform parent) + public static ColorPicker Create(Transform parent, GameObject lockerPrefab = null) { var beaconColorPicker = new GameObject("ColorPicker", typeof(RectTransform)).AddComponent(); - + // Used to calculate the size of the color picker background beaconColorPicker.ButtonSize = 15; beaconColorPicker.Spacing = 15; - beaconColorPicker.ButtonsPerPage = 72; - beaconColorPicker.ButtonsPerRow = 8; - - Picker.Create(parent, beaconColorPicker, Mod.colors.Count); + beaconColorPicker.ButtonsPerPage = 140; + beaconColorPicker.ButtonsPerRow = 10; + Picker.Create(parent, beaconColorPicker, Mod.colors.Count, lockerPrefab); return beaconColorPicker; } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/ColorPickerButton.cs b/SubnauticaModSystem/AutosortLockers/ColorPickerButton.cs index 1c97187..e1671ef 100644 --- a/SubnauticaModSystem/AutosortLockers/ColorPickerButton.cs +++ b/SubnauticaModSystem/AutosortLockers/ColorPickerButton.cs @@ -32,12 +32,6 @@ public void OnPointerClick(PointerEventData eventData) } public void Initialize(int id, Color color, bool toggled, Sprite imageSprite) - { - var sprite = new Atlas.Sprite(imageSprite); - Initialize(id, color, toggled, sprite); - } - - public void Initialize(int id, Color color, bool toggled, Atlas.Sprite imageSprite) { this.id = id; this.toggled = toggled; @@ -74,9 +68,8 @@ public void OnPointerExit(PointerEventData eventData) pointerOver = false; } + /*_____________________________________________________________________________________________________*/ - - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static ColorPickerButton Create(Transform parent, float width, float iconWidth) { var button = new GameObject("ColorPickerButton", typeof(RectTransform)).AddComponent(); @@ -99,4 +92,4 @@ public static ColorPickerButton Create(Transform parent, float width, float icon return button; } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/ColorPickerPageButton.cs b/SubnauticaModSystem/AutosortLockers/ColorPickerPageButton.cs index 48e1f01..57632e6 100644 --- a/SubnauticaModSystem/AutosortLockers/ColorPickerPageButton.cs +++ b/SubnauticaModSystem/AutosortLockers/ColorPickerPageButton.cs @@ -42,7 +42,6 @@ public void Initialize(Sprite sprite, Color color) public void Update() { var color = (pointerDown ? DownColor : (pointerOver ? HoverColor : UpColor)); - if (image != null) { image.color = color; @@ -69,20 +68,17 @@ public void OnPointerUp(PointerEventData eventData) pointerDown = false; } + /*_____________________________________________________________________________________________________*/ - - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static ColorPickerPageButton Create(Transform parent, Color color, float iconWidth = 20) { var pageButton = new GameObject("ColorPickerPageButton", typeof(RectTransform)); var rt = pageButton.transform as RectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); - RectTransformExtensions.SetSize(rt, iconWidth, iconWidth); - rt.anchoredPosition = new Vector2(0, 0); var icon = LockerPrefabShared.CreateIcon(rt, color, 0); + // Size of the arrows RectTransformExtensions.SetSize(icon.rectTransform, iconWidth, iconWidth); - icon.rectTransform.anchoredPosition = new Vector2(0, 0); pageButton.AddComponent(); @@ -92,4 +88,4 @@ public static ColorPickerPageButton Create(Transform parent, Color color, float return button; } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/ColorSetting.cs b/SubnauticaModSystem/AutosortLockers/ColorSetting.cs index bf727f2..01d64dc 100644 --- a/SubnauticaModSystem/AutosortLockers/ColorSetting.cs +++ b/SubnauticaModSystem/AutosortLockers/ColorSetting.cs @@ -1,10 +1,10 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using UnityEngine; -using UnityEngine.EventSystems; +#if SUBNAUTICA using UnityEngine.UI; +#elif BELOWZERO +using TMPro; +#endif namespace AutosortLockers { @@ -20,12 +20,18 @@ private void Awake() { rectTransform = transform as RectTransform; } - +#if SUBNAUTICA private void Initialize(Text textPrefab, string label) { activeButton = ColoredIconButton.Create(transform, CustomizeScreen.ScreenContentColor, textPrefab, label, 100, 15); activeButton.text.supportRichText = true; } +#elif BELOWZERO + private void Initialize(TextMeshProUGUI textPrefab, string label) + { + activeButton = ColoredIconButton.Create(transform, CustomizeScreen.ScreenContentColor, textPrefab, label, 100, 15); + } +#endif internal void SetInitialValue(Color initialColor) { @@ -43,15 +49,17 @@ private void OnClick() onClick(); } + /*_____________________________________________________________________________________________________*/ - /////////////////////////////////////////////////////////////////////////////////////////// - public static ColorSetting Create(Transform parent, string label) + public static ColorSetting Create(Transform parent, string label, GameObject lockerPrefab = null) { - var lockerPrefab = Resources.Load("Submarine/Build/SmallLocker"); +#if SUBNAUTICA + lockerPrefab = Resources.Load("Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); - textPrefab.fontSize = 12; - textPrefab.color = new Color32(66, 134, 244, 255); - +#elif BELOWZERO + var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); +#endif + var beaconController = new GameObject("ColorSettings", typeof(RectTransform)).AddComponent(); var rt = beaconController.gameObject.transform as RectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); @@ -60,4 +68,4 @@ public static ColorSetting Create(Transform parent, string label) return beaconController; } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/ColoredIconButton.cs b/SubnauticaModSystem/AutosortLockers/ColoredIconButton.cs index a453539..7d28d1b 100644 --- a/SubnauticaModSystem/AutosortLockers/ColoredIconButton.cs +++ b/SubnauticaModSystem/AutosortLockers/ColoredIconButton.cs @@ -1,12 +1,12 @@ using Common.Mod; using Common.Utility; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; +#if BELOWZERO +using TMPro; +#endif namespace AutosortLockers { @@ -23,7 +23,11 @@ public class ColoredIconButton : MonoBehaviour, IPointerClickHandler, IPointerEn public Color imageColor; public Image image; +#if SUBNAUTICA public Text text; +#elif BELOWZERO + public TextMeshProUGUI text; +#endif public Action onClick = delegate { }; private Color imageDisabledColor; @@ -87,9 +91,15 @@ public void OnPointerUp(PointerEventData eventData) pointerDown = false; } + /*_____________________________________________________________________________________________________*/ - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - public static ColoredIconButton Create(Transform parent, Color color, Text textPrefab = null, string label = "", float width = 100, float iconWidth = 20) + public static ColoredIconButton Create(Transform parent, Color color, +#if SUBNAUTICA + Text textPrefab = null, +#elif BELOWZERO + TextMeshProUGUI textPrefab = null, +#endif + string label = "", float width = 100, float iconWidth = 20) { var checkboxButton = new GameObject("Checkbox", typeof(RectTransform)); var rt = checkboxButton.transform as RectTransform; @@ -101,14 +111,23 @@ public static ColoredIconButton Create(Transform parent, Color color, Text textP RectTransformExtensions.SetSize(checkbox.rectTransform, iconWidth, iconWidth); checkbox.rectTransform.anchoredPosition = new Vector2(textPrefab != null ? - width / 2 + 10 : 0, 0); +#if SUBNAUTICA Text text = null; +#elif BELOWZERO + TextMeshProUGUI text = null; +#endif + if (textPrefab != null) { var spacing = 5; - text = LockerPrefabShared.CreateText(rt, textPrefab, color, 0, 10, label); + text = LockerPrefabShared.CreateText(rt, textPrefab, color, 0, 10, label, "Label"); RectTransformExtensions.SetSize(text.rectTransform, width - 20 - spacing, 20); text.rectTransform.anchoredPosition = new Vector2(10 + spacing, 0); +#if SUBNAUTICA text.alignment = TextAnchor.MiddleLeft; +#elif BELOWZERO + text.alignment = TextAlignmentOptions.MidlineLeft; +#endif } checkboxButton.AddComponent(); @@ -121,4 +140,4 @@ public static ColoredIconButton Create(Transform parent, Color color, Text textP return button; } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/Config.cs b/SubnauticaModSystem/AutosortLockers/Config.cs index 4cc282a..f82cc0d 100644 --- a/SubnauticaModSystem/AutosortLockers/Config.cs +++ b/SubnauticaModSystem/AutosortLockers/Config.cs @@ -1,18 +1,23 @@ -using Oculus.Newtonsoft.Json; +using Newtonsoft.Json; namespace AutosortLockers { - [JsonObject] - public class Config - { - public bool EasyBuild { get; set; } = false; - public float SortInterval { get; set; } = 1.0f; - public bool ShowAllItems { get; set; } = false; - public int AutosorterWidth { get; set; } = 5; - public int AutosorterHeight { get; set; } = 6; - public int ReceptacleWidth { get; set; } = 6; - public int ReceptacleHeight { get; set; } = 8; - public int StandingReceptacleWidth { get; set; } = 6; - public int StandingReceptacleHeight { get; set; } = 8; - } -} + [JsonObject] + public class Config + { + public bool ShowLabel { get; set; } = false; + public bool EasyBuild { get; set; } = false; + public float SortInterval { get; set; } = 1.0f; + public int AutosorterWidth { get; set; } = 5; + public int AutosorterHeight { get; set; } = 6; + public int ReceptacleWidth { get; set; } = 6; + public int ReceptacleHeight { get; set; } = 8; + public int StandingReceptacleWidth { get; set; } = 6; + public int StandingReceptacleHeight { get; set; } = 8; +#if SUBNAUTICA + public char GameVersion { get; set; } = '1'; +#elif BELOWZERO + public char GameVersion { get; set; } = '2'; +#endif + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/ConfigureButton.cs b/SubnauticaModSystem/AutosortLockers/ConfigureButton.cs index 9a3bd66..932ea09 100644 --- a/SubnauticaModSystem/AutosortLockers/ConfigureButton.cs +++ b/SubnauticaModSystem/AutosortLockers/ConfigureButton.cs @@ -44,11 +44,11 @@ public void OnPointerExit(PointerEventData eventData) } - public static ConfigureButton Create(Transform parent, Color color, float x) + public static ConfigureButton Create(Transform parent, Color color, float x, int buttonPos) { var config = LockerPrefabShared.CreateIcon(parent, color, 0); RectTransformExtensions.SetSize(config.rectTransform, 20, 20); - config.rectTransform.anchoredPosition = new Vector2(x, -104); + config.rectTransform.anchoredPosition = new Vector2(x, buttonPos); config.gameObject.AddComponent(); var button = config.gameObject.AddComponent(); @@ -56,4 +56,4 @@ public static ConfigureButton Create(Transform parent, Color color, float x) return button; } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/CustomizeScreen.cs b/SubnauticaModSystem/AutosortLockers/CustomizeScreen.cs index 09debf6..fbe15b4 100644 --- a/SubnauticaModSystem/AutosortLockers/CustomizeScreen.cs +++ b/SubnauticaModSystem/AutosortLockers/CustomizeScreen.cs @@ -1,11 +1,10 @@ -using Common.Mod; -using Common.Utility; +using Common.Utility; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using UnityEngine; using UnityEngine.UI; +#if BELOWZERO +using TMPro; +#endif namespace AutosortLockers { @@ -20,8 +19,6 @@ class CustomizeScreen : MonoBehaviour [SerializeField] private Image background; [SerializeField] - private Text labelLabel; - [SerializeField] private LabelController label; [SerializeField] private ConfigureButton exitButton; @@ -171,56 +168,57 @@ private void OnLockerColorPicked(int index) SetColor(target); } + /*_____________________________________________________________________________________________________*/ - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////// - public static CustomizeScreen Create(Transform parent, SaveDataEntry data) + public static CustomizeScreen Create(Transform parent, SaveDataEntry data, GameObject lockerPrefab = null) { - var lockerPrefab = Resources.Load("Submarine/Build/SmallLocker"); +#if SUBNAUTICA + lockerPrefab = Resources.Load("Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); +#elif BELOWZERO + var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); +#endif textPrefab.fontSize = 12; textPrefab.color = CustomizeScreen.ScreenContentColor; - + // The color picker settings var screen = new GameObject("CustomizeScreen", typeof(RectTransform)).AddComponent(); RectTransformExtensions.SetParams(screen.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(screen.rectTransform, 114, 241); screen.background = new GameObject("Background").AddComponent(); screen.background.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("CustomizeScreen.png")); - RectTransformExtensions.SetParams(screen.background.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), screen.transform); - RectTransformExtensions.SetSize(screen.background.rectTransform, 114, 241); - - screen.labelLabel = LockerPrefabShared.CreateText(screen.background.transform, textPrefab, ScreenContentColor, 100, 9, "Label:"); - RectTransformExtensions.SetSize(screen.labelLabel.rectTransform, 90, 40); - screen.labelLabel.alignment = TextAnchor.MiddleLeft; - - screen.label = LabelController.Create(data, screen.background.transform); - screen.label.rectTransform.anchoredPosition = new Vector2(0, 80); + // 1st = 2nd = 3rd = horizontal 4th = vertical positon of the color settings + RectTransformExtensions.SetParams(screen.background.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.41f, 0.4f), screen.transform); + RectTransformExtensions.SetSize(screen.background.rectTransform, 114, 220); - screen.exitButton = ConfigureButton.Create(screen.background.transform, Color.white, 40); + screen.label = LabelController.Create(data, screen.background.transform, lockerPrefab); + // The position of the LOCKER label + screen.label.rectTransform.anchoredPosition = new Vector2(0, 70); + // The position of the close (X) button on the color settings + screen.exitButton = ConfigureButton.Create(screen.background.transform, Color.white, 0, -85); var startX = 0; var startY = 30; - screen.labelColorSetting = ColorSetting.Create(screen.background.transform, "Label Color"); - screen.labelColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY); + screen.lockerColorSetting = ColorSetting.Create(screen.background.transform, "Locker Color", lockerPrefab); + screen.lockerColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY); - screen.iconColorSetting = ColorSetting.Create(screen.background.transform, "Icon Color"); + screen.iconColorSetting = ColorSetting.Create(screen.background.transform, "Icon Color", lockerPrefab); screen.iconColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - 19); - screen.textColorSetting = ColorSetting.Create(screen.background.transform, "Filters Color"); + screen.textColorSetting = ColorSetting.Create(screen.background.transform, "Filters Color", lockerPrefab); screen.textColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - (19 * 2)); - screen.buttonsColorSetting = ColorSetting.Create(screen.background.transform, "Misc Color"); + screen.buttonsColorSetting = ColorSetting.Create(screen.background.transform, "Misc Color", lockerPrefab); screen.buttonsColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - (19 * 3)); - screen.lockerColorSetting = ColorSetting.Create(screen.background.transform, "Locker Color"); - screen.lockerColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - (19 * 4)); + screen.labelColorSetting = ColorSetting.Create(screen.background.transform, "Label Color", lockerPrefab); + screen.labelColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - (19 * 4)); - screen.colorPicker = ColorPicker.Create(screen.background.transform); + screen.colorPicker = ColorPicker.Create(screen.background.transform, lockerPrefab); screen.colorPicker.gameObject.SetActive(false); screen.colorPicker.rectTransform.anchoredPosition = new Vector2(0, 30); return screen; } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/FilterPickerButton.cs b/SubnauticaModSystem/AutosortLockers/FilterPickerButton.cs new file mode 100644 index 0000000..bcb54d1 --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/FilterPickerButton.cs @@ -0,0 +1,142 @@ +using Common.Utility; +using System; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +#if BELOWZERO +using TMPro; +#endif + +namespace AutosortLockers +{ + public class FilterPickerButton : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler + { + private static readonly Color inactiveColor = new Color(0.7f, 0.7f, 0.7f, 0.5f); + private static readonly Color inactiveHoverColor = new Color(0.7f, 0.7f, 0.7f, 1f); + private static readonly Color upColor = new Color(0.9f, 0.9f, 0.9f, 1f); + private static readonly Color hoverColor = new Color(1, 1, 1); + private const int Slice = 70; + private bool hover; + private bool tabActive = true; + private AutosorterFilter filter; + + public Action onClick = delegate { }; + + [SerializeField] + private Image background; + [SerializeField] +#if SUBNAUTICA + private Text text; +#elif BELOWZERO + private TextMeshProUGUI text; +#endif + + public AutosorterFilter GetTechType() + { + return filter; + } + + public void Override(string text, bool category) + { + filter = null; + this.text.text = text; + SetBackgroundSprite(category); + gameObject.SetActive(true); + } + + public void SetFilter(AutosorterFilter value) + { + filter = value; + if (filter != null) + { + // The filter text displayed on the lockers + text.text = filter.GetString(); + + SetBackgroundSprite(filter.IsCategory()); + } + gameObject.SetActive(filter != null); + } + + private void SetBackgroundSprite(bool category) + { + if (background != null) + { + var spriteName = category ? "MainMenuPressedSprite.png" : "MainMenuStandardSprite.png"; + background.sprite = ImageUtils.Load9SliceSprite(Mod.GetAssetPath(spriteName), new RectOffset(Slice, Slice, Slice, Slice)); + } + } + + public void Update() + { + if (background != null) + { + if (tabActive) + { + background.color = hover ? hoverColor : upColor; + } + else + { + background.color = hover ? inactiveHoverColor : inactiveColor; + } + } + } + + public void OnPointerClick(PointerEventData eventData) + { + onClick.Invoke(filter); + } + + public void OnPointerEnter(PointerEventData eventData) + { + hover = true; + } + + public void OnPointerExit(PointerEventData eventData) + { + hover = false; + } + + public void SetTabActive(bool active) + { + tabActive = active; + } + + public static FilterPickerButton Create(Transform parent, +#if SUBNAUTICA + Text textPrefab, +#elif BELOWZERO + TextMeshProUGUI textPrefab, +#endif + // The size of the picker buttons, only the height is useful, the width is overwritten later + Action action, int width = 100, int height = 18) + { + var button = new GameObject("PickerButton", typeof(RectTransform)).AddComponent(); + button.transform.SetParent(parent, false); + + button.background = new GameObject("Background", typeof(RectTransform)).AddComponent(); + RectTransformExtensions.SetParams(button.background.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), button.transform); + RectTransformExtensions.SetSize(button.background.rectTransform, width * 10, height * 10); + button.background.rectTransform.localScale = new Vector3(0.1f, 0.1f, 0.5f); + button.background.sprite = ImageUtils.Load9SliceSprite(Mod.GetAssetPath("MainMenuStandardSprite.png"), new RectOffset(Slice, Slice, Slice, Slice)); + button.background.color = upColor; + button.background.type = Image.Type.Sliced; +#if SUBNAUTICA + button.text = new GameObject("Text", typeof(RectTransform)).AddComponent(); + button.text.alignment = TextAnchor.MiddleCenter; +#elif BELOWZERO + button.text = new GameObject("TextMeshProUGUI", typeof(RectTransform)).AddComponent(); +#endif + RectTransformExtensions.SetParams(button.text.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), button.transform); + RectTransformExtensions.SetSize(button.text.rectTransform, width, height); + button.text.color = new Color(1, 1, 1); + button.text.font = textPrefab.font; + button.text.fontSize = 10; + button.onClick += action; + button.text.alignment = TextAlignmentOptions.Left; + // Set the left margin + button.text.margin = new Vector4(5.0f, 0.0f); + + return button; + } + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/GetLists.cs b/SubnauticaModSystem/AutosortLockers/GetLists.cs new file mode 100644 index 0000000..160e874 --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/GetLists.cs @@ -0,0 +1,72 @@ +using System.Collections.Generic; +using System.Linq; +using System.IO; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; + +namespace AutosortLockers +{ + class GetLists + { + // Class to get valid lists of Category and TechTypes + + //Vince + //Logger.Log("Vince: " + text.text); + //QModManager.Utility.Logger.Log(QModManager.Utility.Logger.Level.Debug, $"Vince: " + text.text); + + private static string FilterFromJson; + + public static string GetFiltersFromJson(char listType, char gameVersion) + { + // Load categories.json + JObject catObj = JObject.Load(new JsonTextReader(File.OpenText(Mod.GetModPath() + "/categories.json"))); + // Load techtypes.json + JObject ttObj = JObject.Load(new JsonTextReader(File.OpenText(Mod.GetModPath() + "/techtypes.json"))); + + foreach (var categoriesJson in catObj) + { + // Filter variables + var gameVersions = new HashSet { 'A', gameVersion }; + var categoryIDs = new HashSet { }; + var useInMod = new HashSet { true }; + + // Right outer join on catObj. Select all Items[*] array items + var query = from c in catObj.SelectTokens("Categories[*]").OfType() + // Join catObj with ttObj on CategoryID + join t in ttObj.SelectTokens("TechTypes[*]") on (string)c["CategoryID"] equals (string)t["CategoryID"] + // Process the filters + where categoryIDs.Count() > 0 ? + useInMod.Contains((bool)c["UseInMod"]) + && gameVersions.Contains((char)c["GameVersion"]) + && gameVersions.Contains((char)t["GameVersion"]) + && categoryIDs.Contains((string)c["CategoryID"]) : + useInMod.Contains((bool)c["UseInMod"]) + && gameVersions.Contains((char)c["GameVersion"]) + && gameVersions.Contains((char)t["GameVersion"]) + select new + { + CategoryDescription = c["CategoryDescription"], + CategoryID = c["CategoryID"], + TechName = t["TechName"], + TechType = t["TechType"], + TechID = t["TechID"], + GameVersion = t["GameVersion"] + }; + // Convert the query into a formatted list + if (listType == 'T') + { + FilterFromJson = JsonConvert.SerializeObject(query.ToArray(), Formatting.Indented); + } + else + { + var results = query.GroupBy( + i => i.CategoryDescription, + t => t.TechID, + (key, g) => new { Category = key, Types = g.ToList() }); + FilterFromJson = JsonConvert.SerializeObject(results, Formatting.Indented); + } + } + return FilterFromJson; + } + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/LabelController.cs b/SubnauticaModSystem/AutosortLockers/LabelController.cs index 9f1d516..08061bc 100644 --- a/SubnauticaModSystem/AutosortLockers/LabelController.cs +++ b/SubnauticaModSystem/AutosortLockers/LabelController.cs @@ -1,10 +1,11 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using UnityEngine; using UnityEngine.EventSystems; +#if SUBNAUTICA using UnityEngine.UI; +#elif BELOWZERO +using TMPro; +#endif namespace AutosortLockers { @@ -14,8 +15,11 @@ class LabelController : MonoBehaviour, IPointerClickHandler, IPointerEnterHandle public RectTransform rectTransform; public Action onModified = delegate { }; +#if SUBNAUTICA public Text text; - +#elif BELOWZERO + public TextMeshProUGUI text; +#endif [SerializeField] private SaveDataEntry target; @@ -24,12 +28,16 @@ private void Awake() rectTransform = transform as RectTransform; } +#if SUBNAUTICA private void Initialize(SaveDataEntry data, Text textPrefab) +#elif BELOWZERO + private void Initialize(SaveDataEntry data, TextMeshProUGUI textPrefab) +#endif { target = data; text = GameObject.Instantiate(textPrefab); - text.fontSize = 16; + text.fontSize = 12; text.gameObject.name = "Text"; text.rectTransform.SetParent(transform, false); RectTransformExtensions.SetSize(text.rectTransform, 140, 50); @@ -65,17 +73,25 @@ private void Update() if (hover) { HandReticle.main.SetIcon(HandReticle.IconType.Rename); +#if SUBNAUTICA HandReticle.main.SetInteractTextRaw("Set Locker Label", ""); +#elif BELOWZERO + HandReticle.main.SetTextRaw(HandReticle.TextType.Hand, "Set Locker Label"); +#endif } } + /*__________________________________________________________________________________________________________*/ - - /////////////////////////////////////////////////////////////////////////////////////////// - public static LabelController Create(SaveDataEntry data, Transform parent) + public static LabelController Create(SaveDataEntry data, Transform parent, GameObject lockerPrefab = null) { - var lockerPrefab = Resources.Load("Submarine/Build/SmallLocker"); +#if SUBNAUTICA + lockerPrefab = Resources.Load("Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); +#elif BELOWZERO + var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); +#endif + textPrefab.fontSize = 12; textPrefab.color = CustomizeScreen.ScreenContentColor; @@ -87,4 +103,4 @@ public static LabelController Create(SaveDataEntry data, Transform parent) return habitatNameController; } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/Mod.cs b/SubnauticaModSystem/AutosortLockers/Mod.cs index f617fa2..75de80d 100644 --- a/SubnauticaModSystem/AutosortLockers/Mod.cs +++ b/SubnauticaModSystem/AutosortLockers/Mod.cs @@ -4,15 +4,22 @@ using System.IO; using System.Reflection; using Common.Mod; -using Harmony; -using Oculus.Newtonsoft.Json; +using HarmonyLib; +using Newtonsoft.Json; using UnityEngine; namespace AutosortLockers { internal static class Mod { +#if SUBNAUTICA public const string SaveDataFilename = "AutosortLockerSMLSaveData.json"; +#elif BELOWZERO + public const string SaveDataFilename = "AutosortLockerSMLBZSaveData.json"; +#endif + + private const int MAX_LOCKER_WIDTH = 8; + private const int MAX_LOCKER_HEIGHT = 10; public static Config config; public static SaveData saveData; public static List colors = new List(); @@ -25,13 +32,16 @@ internal static class Mod public static void Patch(string modDirectory = null) { Logger.Log("Starting patching"); - - Mod.modDirectory = modDirectory ?? "Subnautica_Data/Managed"; +#if SUBNAUTICA + Mod.modDirectory = modDirectory ?? "Subnautica_Data/Managed"; +#elif BELOWZERO + Mod.modDirectory = modDirectory ?? "SubnauticaZero_Data/Managed"; +#endif LoadConfig(); AddBuildables(); - HarmonyInstance harmony = HarmonyInstance.Create("com.AutosortLockersSML.mod"); + Harmony harmony = new Harmony("com.AutosortLockersSML.mod"); harmony.PatchAll(Assembly.GetExecutingAssembly()); Logger.Log("Patched"); @@ -58,7 +68,7 @@ private static void LoadConfig() config = ModUtils.LoadConfig(GetModPath() + "/config.json"); ValidateConfig(); - var serializedColors = JsonConvert.DeserializeObject>(File.ReadAllText(GetAssetPath("colors.json"))); + List serializedColors = JsonConvert.DeserializeObject>(File.ReadAllText(GetAssetPath("colors.json"))); foreach (var sColor in serializedColors) { colors.Add(sColor.ToColor()); @@ -70,10 +80,18 @@ private static void ValidateConfig() Config defaultConfig = new Config(); ModUtils.ValidateConfigValue("SortInterval", 0.1f, 10.0f, ref config, ref defaultConfig); - ModUtils.ValidateConfigValue("AutosorterWidth", 1, 8, ref config, ref defaultConfig); - ModUtils.ValidateConfigValue("AutosorterHeight", 1, 10, ref config, ref defaultConfig); - ModUtils.ValidateConfigValue("ReceptacleWidth", 1, 8, ref config, ref defaultConfig); - ModUtils.ValidateConfigValue("ReceptacleHeight", 1, 10, ref config, ref defaultConfig); + ModUtils.ValidateConfigValue("ShowLabel", true, false, ref config, ref defaultConfig); + ModUtils.ValidateConfigValue("AutosorterWidth", 1, MAX_LOCKER_WIDTH, ref config, ref defaultConfig); + ModUtils.ValidateConfigValue("AutosorterHeight", 1, MAX_LOCKER_HEIGHT, ref config, ref defaultConfig); + ModUtils.ValidateConfigValue("ReceptacleWidth", 1, MAX_LOCKER_WIDTH, ref config, ref defaultConfig); + ModUtils.ValidateConfigValue("ReceptacleHeight", 1, MAX_LOCKER_HEIGHT, ref config, ref defaultConfig); + ModUtils.ValidateConfigValue("StandingReceptacleWidth", 1, MAX_LOCKER_WIDTH, ref config, ref defaultConfig); + ModUtils.ValidateConfigValue("StandingReceptacleHeight", 1, MAX_LOCKER_HEIGHT, ref config, ref defaultConfig); +#if SUBNAUTICA + ModUtils.ValidateConfigValue("GameVersion", '1', '1', ref config, ref defaultConfig); +#elif BELOWZERO + ModUtils.ValidateConfigValue("GameVersion", '2', '2', ref config, ref defaultConfig); +#endif } public static SaveData GetSaveData() diff --git a/SubnauticaModSystem/AutosortLockers/Picker.cs b/SubnauticaModSystem/AutosortLockers/Picker.cs index 7e75d8b..2e7d36f 100644 --- a/SubnauticaModSystem/AutosortLockers/Picker.cs +++ b/SubnauticaModSystem/AutosortLockers/Picker.cs @@ -2,10 +2,11 @@ using Common.Utility; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using UnityEngine; using UnityEngine.UI; +#if BELOWZERO +using TMPro; +#endif namespace AutosortLockers { @@ -28,12 +29,6 @@ class Picker : MonoBehaviour [SerializeField] private Image background; [SerializeField] - private ColorPickerPageButton prevPageButton; - [SerializeField] - private ColorPickerPageButton nextPageButton; - [SerializeField] - private Text pageText; - [SerializeField] protected List buttons = new List(); private void Awake() @@ -43,50 +38,20 @@ private void Awake() public virtual void Initialize() { - bool firstInitialize = false; - if (background.sprite == null) - { - background.sprite = ImageUtils.Load9SliceSprite(Mod.GetAssetPath("PickerBackground.png"), new RectOffset(100, 100, 100, 100)); - firstInitialize = true; - } - - int pages = GetPageCount(); - int rows = Mathf.CeilToInt(ButtonsPerPage / (float)ButtonsPerRow); float StartX = -(Spacing * (ButtonsPerRow - 1) / 2.0f); - float StartY = (Spacing * ((rows - 0.5f) / 2.0f)) + 10; + float StartY = (Spacing * ((rows - 0.5f) / 2.0f)); for (int i = 0; i < this.buttons.Count; ++i) { var button = this.buttons[i]; int page = i / ButtonsPerPage; int row = (i / ButtonsPerRow) % (ButtonsPerPage / ButtonsPerRow); int col = i % ButtonsPerRow; - button.rectTransform.anchoredPosition = new Vector2(StartX + (Spacing * col), StartY - (row * Spacing)); + button.rectTransform.anchoredPosition = new Vector2(StartX + (Spacing * col), StartY - (row * Spacing) - 3); button.onClick += OnClick; button.gameObject.SetActive(page == 0); button.toggled = false; } - - prevPageButton.Initialize("Left.png", Color.white); - nextPageButton.Initialize("Right.png", Color.white); - - var paginationY = -Spacing * rows / 2.0f; - (prevPageButton.transform as RectTransform).anchoredPosition = new Vector2(-20, paginationY); - (nextPageButton.transform as RectTransform).anchoredPosition = new Vector2(20, paginationY); - pageText.rectTransform.anchoredPosition = new Vector2(0, paginationY); - - if (firstInitialize) - { - prevPageButton.onClick += OnPrevPage; - nextPageButton.onClick += OnNextPage; - } - - page = 0; - //prevPageButton.gameObject.SetActive(pages > 1); - //nextPageButton.gameObject.SetActive(pages > 1); - //pageText.gameObject.SetActive(pages > 1); - - UpdateText(); } private int GetPageCount() @@ -94,12 +59,6 @@ private int GetPageCount() return Mathf.CeilToInt((float)buttons.Count / ButtonsPerPage); } - private void UpdateText() - { - int pages = GetPageCount(); - pageText.text = (page + 1) + "/" + pages; - } - private void OnPrevPage() { ShowPage(page - 1); @@ -114,6 +73,7 @@ protected void ShowPage(int newPage) { int pages = GetPageCount(); page = newPage; + if (page < 0) { page = pages - 1; @@ -129,7 +89,6 @@ protected void ShowPage(int newPage) int buttonPage = i / ButtonsPerPage; button.gameObject.SetActive(page == buttonPage); } - UpdateText(); } protected void OnClick(int index) @@ -168,40 +127,39 @@ public void Close() gameObject.SetActive(false); } + /*__________________________________________________________________________________________________________*/ - - /////////////////////////////////////////////////////////////////////////////////////////////////////// - protected static void Create(Transform parent, Picker instance, int buttonCount) + protected static void Create(Transform parent, Picker colorGrid, int buttonCount, GameObject lockerPrefab = null) { - var lockerPrefab = Resources.Load("Submarine/Build/SmallLocker"); +#if SUBNAUTICA + lockerPrefab = Resources.Load("Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); - textPrefab.fontSize = 16; +#elif BELOWZERO + var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); +#endif + + textPrefab.fontSize = 12; textPrefab.color = ScreenContentColor; - float padding = 30; - float width = padding + instance.ButtonSize + ((instance.ButtonsPerRow - 1) * instance.Spacing) - 20; - int rowCount = Mathf.CeilToInt(instance.ButtonsPerPage / (float)instance.ButtonsPerRow); - float height = padding + instance.ButtonSize + ((rowCount - 0.5f) * instance.Spacing); + float padding = 10; + float width = padding + colorGrid.ButtonSize + (colorGrid.ButtonsPerRow * colorGrid.Spacing); + int rowCount = Mathf.CeilToInt(colorGrid.ButtonsPerPage / (float)colorGrid.ButtonsPerRow); + float height = 20 + colorGrid.ButtonSize + ((rowCount - 0.5f) * colorGrid.Spacing); - var rt = instance.rectTransform; - RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); + var rt = colorGrid.rectTransform; + // The first Vector2 positions the colorGrid on the locker horz / vert. + RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.6f), parent); RectTransformExtensions.SetSize(rt, width, height); - instance.background = instance.gameObject.AddComponent(); - instance.background.type = Image.Type.Sliced; - instance.background.rectTransform.anchoredPosition = new Vector2(0, -20); - - instance.pageText = LockerPrefabShared.CreateText(instance.transform, textPrefab, Color.white, 0, 10, "X/X"); - RectTransformExtensions.SetSize(instance.pageText.rectTransform, 30, 20); + colorGrid.background = colorGrid.gameObject.AddComponent(); + colorGrid.background.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("Background.png")); + colorGrid.background.color = new Color(1, 1, 1); for (int i = 0; i < buttonCount; ++i) { - var colorButton = ColorPickerButton.Create(instance.transform, instance.ButtonSize, instance.ButtonSize * 0.7f); - instance.buttons.Add(colorButton); + var colorButton = ColorPickerButton.Create(colorGrid.transform, colorGrid.ButtonSize, colorGrid.ButtonSize * 0.7f); + colorGrid.buttons.Add(colorButton); } - - instance.prevPageButton = ColorPickerPageButton.Create(instance.transform, Color.white); - instance.nextPageButton = ColorPickerPageButton.Create(instance.transform, Color.white); } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/PickerPageButton.cs b/SubnauticaModSystem/AutosortLockers/PickerPageButton.cs index 22d9504..f0f56e2 100644 --- a/SubnauticaModSystem/AutosortLockers/PickerPageButton.cs +++ b/SubnauticaModSystem/AutosortLockers/PickerPageButton.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using UnityEngine; +using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; @@ -24,7 +20,7 @@ public void Awake() { image = GetComponent(); } - + public void OnPointerClick(PointerEventData eventData) { if (canChangePage) @@ -48,4 +44,4 @@ public void OnPointerExit(PointerEventData eventData) pointerOver = false; } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/SaveData.cs b/SubnauticaModSystem/AutosortLockers/SaveData.cs index ff43937..e6e6a3a 100644 --- a/SubnauticaModSystem/AutosortLockers/SaveData.cs +++ b/SubnauticaModSystem/AutosortLockers/SaveData.cs @@ -1,8 +1,6 @@ using Common.Mod; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using UnityEngine; namespace AutosortLockers @@ -25,4 +23,4 @@ public class SaveData { public List Entries = new List(); } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/Common/Mod/ImageUtils.cs b/SubnauticaModSystem/Common/Mod/ImageUtils.cs index e81b1ff..334ca4b 100644 --- a/SubnauticaModSystem/Common/Mod/ImageUtils.cs +++ b/SubnauticaModSystem/Common/Mod/ImageUtils.cs @@ -49,4 +49,4 @@ public static class ImageUtils return Sprite.Create(tex, new Rect(0f, 0f, tex.width, tex.height), pivot, pixelsPerUnit, 0u, spriteType, border); } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/Common/Mod/LockerPrefabShared.cs b/SubnauticaModSystem/Common/Mod/LockerPrefabShared.cs index ef9eca8..c58c814 100644 --- a/SubnauticaModSystem/Common/Mod/LockerPrefabShared.cs +++ b/SubnauticaModSystem/Common/Mod/LockerPrefabShared.cs @@ -1,5 +1,9 @@ -using UnityEngine; +using System; +using UnityEngine; using UnityEngine.UI; +#if BELOWZERO +using TMPro; +#endif namespace Common.Mod { @@ -15,9 +19,10 @@ internal static Canvas CreateCanvas(Transform parent) var raycaster = canvas.gameObject.AddComponent(); var rt = t as RectTransform; + // Positions the ?? RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f)); RectTransformExtensions.SetSize(rt, 1.7f, 3.0f); - + // Seems to be the front to back position of the small locker t.localPosition = new Vector3(0, 0, 0.345f); t.localRotation = new Quaternion(0, 1, 0, 0); t.localScale = new Vector3(0.5f, 0.5f, 0.5f); @@ -32,25 +37,52 @@ internal static Canvas CreateCanvas(Transform parent) return canvas; } - internal static Image CreateBackground(Transform parent) +#if SUBNAUTICA + internal static Image CreateBackground(Transform parent) + { + var background = new GameObject("Background", typeof(RectTransform)).AddComponent(); + var rt = background.rectTransform; + RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); + RectTransformExtensions.SetSize(rt, 114, 241); + background.color = new Color(0, 0, 0); + + background.transform.localScale = new Vector3(0.01f, 0.01f, 1); + background.type = Image.Type.Sliced; + + return background; + } +#elif BELOWZERO + internal static Image CreateBackground(Transform parent, string lockerType) { var background = new GameObject("Background", typeof(RectTransform)).AddComponent(); var rt = background.rectTransform; - RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); - RectTransformExtensions.SetSize(rt, 114, 241); - background.color = new Color(0, 0, 0); - background.transform.localScale = new Vector3(0.01f, 0.01f, 1); + // The size of the rectangle on the locker, adjusted for locker type + if (lockerType == "Locker(Clone)") + { // The second Vector2 positions the background on the locker, the 1st number is horizontal and the 2nd is vertical + RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.43f, 0.5f), parent); + RectTransformExtensions.SetSize(rt, 150, 280); + } + else //(lockerType == "SmallLocker(Clone)") + { + RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.52f, 0.49f), parent); + RectTransformExtensions.SetSize(rt, 128, 264); + } + // Overrides the color of the png image + background.color = new Color(0, 0, 0); + background.transform.localScale = new Vector3(0.01f, 0.01f, 1f); background.type = Image.Type.Sliced; return background; } +#endif internal static Image CreateIcon(Transform parent, Color color, int y) { var icon = new GameObject("Text", typeof(RectTransform)).AddComponent(); var rt = icon.rectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); + // The size of the locker icon RectTransformExtensions.SetSize(rt, 40, 40); rt.anchoredPosition = new Vector2(0, y); @@ -59,21 +91,37 @@ internal static Image CreateIcon(Transform parent, Color color, int y) return icon; } +#if SUBNAUTICA internal static Text CreateText(Transform parent, Text prefab, Color color, int y, int size, string initial) { var text = new GameObject("Text", typeof(RectTransform)).AddComponent(); +#elif BELOWZERO + internal static TextMeshProUGUI CreateText(Transform parent, TextMeshProUGUI prefab, Color color, int y, int size, string initial, string lockerType) + { + var text = new GameObject("TextMeshProUGUI", typeof(RectTransform)).AddComponent(); +#endif var rt = text.rectTransform; + // Positions the "Locker" label on the locker RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); - RectTransformExtensions.SetSize(rt, 120, 200); - rt.anchoredPosition = new Vector2(0, y); + // The size of the Filter rectangle for each locker type + if (lockerType == "Locker(Clone)") + { + RectTransformExtensions.SetSize(rt, 138, 200); + } + else + { + RectTransformExtensions.SetSize(rt, 112, 200); + } + + rt.anchoredPosition = new Vector2(0, y); + text.font = prefab.font; text.fontSize = size; text.color = color; - text.alignment = TextAnchor.MiddleCenter; text.text = initial; return text; } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/Common/Mod/ModUtils.cs b/SubnauticaModSystem/Common/Mod/ModUtils.cs index ad851b2..2576041 100644 --- a/SubnauticaModSystem/Common/Mod/ModUtils.cs +++ b/SubnauticaModSystem/Common/Mod/ModUtils.cs @@ -5,23 +5,26 @@ using System.Linq; using System.Reflection; using System.Text; -using Oculus.Newtonsoft.Json; +using Newtonsoft.Json; +#if SUBNAUTICA using UnityEngine; using UnityEngine.UI; +#elif BELOWZERO +using TMPro; +#endif +using UnityEngine; namespace Common.Mod { internal static class ModUtils { - //private static FieldInfo CraftData_techMapping = typeof(CraftData).GetField("techMapping", BindingFlags.NonPublic | BindingFlags.Static); - - //private static List pickupableTypes; private static MonoBehaviour coroutineObject; public static ConfigT LoadConfig(string configFilePath) where ConfigT : class, new() { if (!File.Exists(configFilePath)) { + QModManager.Utility.Logger.Log(QModManager.Utility.Logger.Level.Error, $"Could not find config file {configFilePath}", null, true); return WriteDefaultConfig(configFilePath); } @@ -31,6 +34,7 @@ internal static class ModUtils if (string.IsNullOrEmpty(serialilzedConfig)) { + QModManager.Utility.Logger.Log(QModManager.Utility.Logger.Level.Error, $"Config file {configFilePath} empty; creating default config", null, true); return new ConfigT(); } @@ -38,13 +42,15 @@ internal static class ModUtils if (config == null) { + QModManager.Utility.Logger.Log(QModManager.Utility.Logger.Level.Error, $"Failed to deserialise configuration object from file {configFilePath}", null, true); config = new ConfigT(); } return config; } - catch + catch (Exception e) { + QModManager.Utility.Logger.Log(QModManager.Utility.Logger.Level.Error, $"Exception caught while parsing config file {configFilePath}", e, true); return WriteDefaultConfig(configFilePath); } } @@ -64,13 +70,16 @@ public static void ValidateConfigValue(string field, T min, T max, r var value = (T)fieldInfo.GetValue(config, null); if (value.CompareTo(min) < 0 || value.CompareTo(max) > 0) { - Console.WriteLine("Config value for '{0}' ({1}) was not valid. Must be between {2} and {3}", - field, - value, - min, - max - ); - fieldInfo.SetValue(config, fieldInfo.GetValue(defaultConfig, null), null); + string errorString = $"Config value for '{field}' ({value}) was not valid. Must be between {min} and {max}"; + + QModManager.Utility.Logger.Log(QModManager.Utility.Logger.Level.Error, errorString, null, true); + var newValue = value; + if (value.CompareTo(min) < 0) + newValue = min; + else if (value.CompareTo(max) > 0) + newValue = max; + + fieldInfo.SetValue(config, newValue, null); } } @@ -213,22 +222,29 @@ public static void PrintObjectFields(object obj, string indent = "") Console.WriteLine(indent + " " + property.Name + " : " + property.GetValue(obj, new object[] { })); } } - +#if SUBNAUTICA public static Text GetTextPrefab() { - Text prefab = GameObject.FindObjectOfType().interactPrimaryText; - if (prefab == null) - { - return null; - } - + Text prefab = null; + prefab = GameObject.FindObjectOfType().interactPrimaryText; +#elif BELOWZERO + public static TextMeshProUGUI GetTextPrefab() + { + TextMeshProUGUI prefab = GameObject.FindObjectOfType().progressText; +#endif return prefab; } +#if SUBNAUTICA public static Text InstantiateNewText(string name, Transform parent) { Text text = GameObject.Instantiate(GetTextPrefab()); - text.gameObject.layer = parent.gameObject.layer; +#elif BELOWZERO + public static TextMeshProUGUI InstantiateNewText(string name, Transform parent) + { + TextMeshProUGUI text = GameObject.Instantiate(GetTextPrefab()); +#endif + text.gameObject.layer = parent.gameObject.layer; text.gameObject.name = name; text.transform.SetParent(parent, false); text.transform.localScale = new Vector3(1, 1, 1); @@ -264,36 +280,6 @@ public static GameObject GetChildByName(GameObject parent, string name, bool rec return found; } - /* - public static List GetPickupableTechTypes() - { - if (pickupableTypes != null) - { - return pickupableTypes; - } - - Console.WriteLine("[ModUtils] Initialize Pickupable Types"); - pickupableTypes = new List(); - - var techMapping = (Dictionary)CraftData_techMapping.GetValue(null); - foreach (var entry in techMapping) - { - var techType = entry.Key; - var prefab = CraftData.GetPrefabForTechType(techType); - if (prefab != null) - { - if (prefab.GetComponent() != null) - { - Console.WriteLine("" + techType); - pickupableTypes.Add(techType); - } - } - } - - return pickupableTypes; - } - */ - public static T CopyComponent(T original, GameObject destination) where T : Component { Type type = original.GetType(); @@ -317,4 +303,4 @@ private static Coroutine StartCoroutine(IEnumerator coroutine) return coroutineObject.StartCoroutine(coroutine); } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/Common/Mod/SerializableColor.cs b/SubnauticaModSystem/Common/Mod/SerializableColor.cs index 1ecdcce..093c222 100644 --- a/SubnauticaModSystem/Common/Mod/SerializableColor.cs +++ b/SubnauticaModSystem/Common/Mod/SerializableColor.cs @@ -35,4 +35,4 @@ public static SerializableColor Create(Color c) } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/GameDir.targets b/SubnauticaModSystem/GameDir.targets new file mode 100644 index 0000000..112228b --- /dev/null +++ b/SubnauticaModSystem/GameDir.targets @@ -0,0 +1,9 @@ + + + + + S:\Steam\steamapps\common\ + $(CommonDir)\Subnautica\ + $(CommonDir)\SubnauticaZero\ + + \ No newline at end of file From c4e28534bacb11d7220dda438367d42340e62ac3 Mon Sep 17 00:00:00 2001 From: Vijer Date: Thu, 1 Jul 2021 09:59:18 +0700 Subject: [PATCH 3/6] All the changes I have made to DaWrecka's BZ port and now SN. New filter sytsem. Changes to UI elements Changed the colors.json --- .../AutosortLockers/.gitattributes | 63 + .../AutosortLockers/.gitignore | 363 ++ .../AutosortLockers/Assets/Copy_Colors.bat | 2 + .../Assets/LockerScreen-old.png | Bin 0 -> 77359 bytes .../AutosortLockers/Assets/LockerScreen1.png | Bin 0 -> 19232 bytes .../AutosortLockers/Assets/colors - Copy.json | 704 +++ .../AutosortLockers/Assets/colors.json | 837 ++-- .../AutosortLockers/AutosortLocker.cs | 55 +- .../AutosortLockers/AutosortLockersSML.csproj | 103 +- .../AutosortLockers/AutosortLockersSML.sln | 34 - .../AutosortLockersSML/BZ/0Harmony.dll | Bin 0 -> 186880 bytes .../AutosortLockersSML/BZ/0Harmony.xml | 4109 +++++++++++++++++ .../BZ/AutosortLockersSML.dll | Bin 0 -> 79360 bytes .../BZ/Unity.TextMeshPro.dll | Bin 0 -> 368128 bytes .../AutosortLockers/AutosortTarget.cs | 136 +- .../AutosortLockers/AutosortTypePicker.cs | 44 +- .../AutosortLockers/AutosorterCategories.cs | 6 +- .../AutosortLockers/BZ/AutosortLockersSML.dll | Bin 0 -> 79360 bytes .../AutosortLockers/BZ/Unity.TextMeshPro.dll | Bin 0 -> 368128 bytes .../BZ/UnityEngine.ARModule.dll | Bin 0 -> 12800 bytes .../BZ/UnityEngine.AccessibilityModule.dll | Bin 0 -> 12288 bytes .../BZ/UnityEngine.AndroidJNIModule.dll | Bin 0 -> 57344 bytes .../BZ/UnityEngine.ClothModule.dll | Bin 0 -> 15360 bytes .../BZ/UnityEngine.ClusterInputModule.dll | Bin 0 -> 10240 bytes .../BZ/UnityEngine.ClusterRendererModule.dll | Bin 0 -> 9216 bytes .../BZ/UnityEngine.CrashReportingModule.dll | Bin 0 -> 9728 bytes .../BZ/UnityEngine.DSPGraphModule.dll | Bin 0 -> 17920 bytes .../BZ/UnityEngine.GameCenterModule.dll | Bin 0 -> 27136 bytes .../BZ/UnityEngine.GridModule.dll | Bin 0 -> 13824 bytes .../BZ/UnityEngine.LocalizationModule.dll | Bin 0 -> 9728 bytes ...UnityEngine.PerformanceReportingModule.dll | Bin 0 -> 9216 bytes .../BZ/UnityEngine.SpriteMaskModule.dll | Bin 0 -> 10240 bytes .../BZ/UnityEngine.SpriteShapeModule.dll | Bin 0 -> 13824 bytes .../BZ/UnityEngine.SubsystemsModule.dll | Bin 0 -> 16896 bytes .../BZ/UnityEngine.TerrainPhysicsModule.dll | Bin 0 -> 9728 bytes .../BZ/UnityEngine.TilemapModule.dll | Bin 0 -> 25088 bytes .../BZ/UnityEngine.UNETModule.dll | Bin 0 -> 77312 bytes .../BZ/UnityEngine.UnityAnalyticsModule.dll | Bin 0 -> 32768 bytes .../BZ/UnityEngine.UnityConnectModule.dll | Bin 0 -> 10752 bytes ...UnityEngine.UnityWebRequestAudioModule.dll | Bin 0 -> 11264 bytes ...ityEngine.UnityWebRequestTextureModule.dll | Bin 0 -> 10752 bytes .../BZ/UnityEngine.VFXModule.dll | Bin 0 -> 38400 bytes .../BZ/UnityEngine.VRModule.dll | Bin 0 -> 34816 bytes .../BZ/UnityEngine.VehiclesModule.dll | Bin 0 -> 12288 bytes .../BZ/UnityEngine.VideoModule.dll | Bin 0 -> 28672 bytes .../BZ/UnityEngine.XRModule.dll | Bin 0 -> 53760 bytes .../AutosortLockers/BZ/UnityEngine.dll | Bin 0 -> 84992 bytes .../AutosortLockers/CanvasLink_Patch.cs | 6 +- .../AutosortLockers/ColorPicker.cs | 1 + .../AutosortLockers/ColorPickerButton.cs | 6 + .../AutosortLockers/ColorSetting.cs | 12 +- .../AutosortLockers/ColoredIconButton.cs | 18 +- SubnauticaModSystem/AutosortLockers/Config.cs | 12 +- .../AutosortLockers/CustomizeScreen.cs | 36 +- .../AutosortLockers/FilterPickerButton.cs | 18 +- .../AutosortLockers/GetLists.cs | 5 + .../AutosortLockers/LabelController.cs | 20 +- SubnauticaModSystem/AutosortLockers/Mod.cs | 19 +- .../Patches/Initializer_Patch.cs | 5 +- SubnauticaModSystem/AutosortLockers/Picker.cs | 6 +- .../AutosortLockers/PickerButton.cs | 128 - .../AutosortLockers/PickerCloseButton.cs | 6 +- .../Properties/AssemblyInfo.cs | 2 +- .../Properties/Resources.Designer.cs | 9 - SubnauticaModSystem/AutosortLockers/README.md | 25 + .../AutosortLockers/SN/AutosortLockersSML.dll | Bin 0 -> 77312 bytes .../SN/UnityEngine.AIModule.dll | Bin 0 -> 44544 bytes .../SN/UnityEngine.ARModule.dll | Bin 0 -> 12800 bytes .../SN/UnityEngine.AccessibilityModule.dll | Bin 0 -> 11776 bytes .../SN/UnityEngine.AndroidJNIModule.dll | Bin 0 -> 56832 bytes .../SN/UnityEngine.ClothModule.dll | Bin 0 -> 14848 bytes .../SN/UnityEngine.ClusterInputModule.dll | Bin 0 -> 9728 bytes .../SN/UnityEngine.ClusterRendererModule.dll | Bin 0 -> 8704 bytes .../SN/UnityEngine.CrashReportingModule.dll | Bin 0 -> 9216 bytes .../SN/UnityEngine.DSPGraphModule.dll | Bin 0 -> 17920 bytes .../SN/UnityEngine.GameCenterModule.dll | Bin 0 -> 26624 bytes .../SN/UnityEngine.GridModule.dll | Bin 0 -> 13312 bytes .../SN/UnityEngine.LocalizationModule.dll | Bin 0 -> 9216 bytes ...UnityEngine.PerformanceReportingModule.dll | Bin 0 -> 8704 bytes .../SN/UnityEngine.SpriteMaskModule.dll | Bin 0 -> 9728 bytes .../SN/UnityEngine.SpriteShapeModule.dll | Bin 0 -> 12800 bytes .../SN/UnityEngine.StreamingModule.dll | Bin 0 -> 9216 bytes .../SN/UnityEngine.TerrainPhysicsModule.dll | Bin 0 -> 9216 bytes .../SN/UnityEngine.TilemapModule.dll | Bin 0 -> 24576 bytes .../SN/UnityEngine.UNETModule.dll | Bin 0 -> 77312 bytes .../SN/UnityEngine.UnityAnalyticsModule.dll | Bin 0 -> 28672 bytes .../SN/UnityEngine.UnityConnectModule.dll | Bin 0 -> 10240 bytes ...UnityEngine.UnityWebRequestAudioModule.dll | Bin 0 -> 10752 bytes ...ityEngine.UnityWebRequestTextureModule.dll | Bin 0 -> 10240 bytes .../SN/UnityEngine.VFXModule.dll | Bin 0 -> 33792 bytes .../SN/UnityEngine.VehiclesModule.dll | Bin 0 -> 12288 bytes .../SN/UnityEngine.VideoModule.dll | Bin 0 -> 28160 bytes .../SN/UnityEngine.WindModule.dll | Bin 0 -> 9216 bytes .../AutosortLockers/SN/UnityEngine.dll | Bin 0 -> 81920 bytes .../AutosortLockers/SaveData.cs | 2 +- .../AutosortLockers/categories.json | 118 + .../AutosortLockers/{mod.json => mod_BZ.json} | 1 + .../AutosortLockers/mod_SN.json | 10 + .../AutosortLockers/techtypes.json | 2628 +++++++++++ 99 files changed, 8804 insertions(+), 745 deletions(-) create mode 100644 SubnauticaModSystem/AutosortLockers/.gitattributes create mode 100644 SubnauticaModSystem/AutosortLockers/.gitignore create mode 100644 SubnauticaModSystem/AutosortLockers/Assets/Copy_Colors.bat create mode 100644 SubnauticaModSystem/AutosortLockers/Assets/LockerScreen-old.png create mode 100644 SubnauticaModSystem/AutosortLockers/Assets/LockerScreen1.png create mode 100644 SubnauticaModSystem/AutosortLockers/Assets/colors - Copy.json delete mode 100644 SubnauticaModSystem/AutosortLockers/AutosortLockersSML.sln create mode 100644 SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/0Harmony.dll create mode 100644 SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/0Harmony.xml create mode 100644 SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/AutosortLockersSML.dll create mode 100644 SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/Unity.TextMeshPro.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/AutosortLockersSML.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/Unity.TextMeshPro.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.ARModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.AccessibilityModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.AndroidJNIModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.ClothModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.ClusterInputModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.ClusterRendererModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.CrashReportingModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.DSPGraphModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.GameCenterModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.GridModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.LocalizationModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.PerformanceReportingModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.SpriteMaskModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.SpriteShapeModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.SubsystemsModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.TerrainPhysicsModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.TilemapModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.UNETModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.UnityAnalyticsModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.UnityConnectModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.UnityWebRequestAudioModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.UnityWebRequestTextureModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.VFXModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.VRModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.VehiclesModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.VideoModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.XRModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.dll delete mode 100644 SubnauticaModSystem/AutosortLockers/PickerButton.cs create mode 100644 SubnauticaModSystem/AutosortLockers/README.md create mode 100644 SubnauticaModSystem/AutosortLockers/SN/AutosortLockersSML.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.AIModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.ARModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.AccessibilityModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.AndroidJNIModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.ClothModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.ClusterInputModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.ClusterRendererModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.CrashReportingModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.DSPGraphModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.GameCenterModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.GridModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.LocalizationModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.PerformanceReportingModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.SpriteMaskModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.SpriteShapeModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.StreamingModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.TerrainPhysicsModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.TilemapModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.UNETModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.UnityAnalyticsModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.UnityConnectModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.UnityWebRequestAudioModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.UnityWebRequestTextureModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.VFXModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.VehiclesModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.VideoModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.WindModule.dll create mode 100644 SubnauticaModSystem/AutosortLockers/SN/UnityEngine.dll create mode 100644 SubnauticaModSystem/AutosortLockers/categories.json rename SubnauticaModSystem/AutosortLockers/{mod.json => mod_BZ.json} (90%) create mode 100644 SubnauticaModSystem/AutosortLockers/mod_SN.json create mode 100644 SubnauticaModSystem/AutosortLockers/techtypes.json diff --git a/SubnauticaModSystem/AutosortLockers/.gitattributes b/SubnauticaModSystem/AutosortLockers/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/SubnauticaModSystem/AutosortLockers/.gitignore b/SubnauticaModSystem/AutosortLockers/.gitignore new file mode 100644 index 0000000..9491a2f --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/.gitignore @@ -0,0 +1,363 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Oo]ut/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/Assets/Copy_Colors.bat b/SubnauticaModSystem/AutosortLockers/Assets/Copy_Colors.bat new file mode 100644 index 0000000..2ff1a47 --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/Assets/Copy_Colors.bat @@ -0,0 +1,2 @@ +xcopy /y /u colors.json D:\SteamLibrary\steamapps\common\Subnautica\QMods\AutosortLockersSML\Assets\colors.json +xcopy /y /u colors.json D:\SteamLibrary\steamapps\common\SubnauticaZero\QMods\AutosortLockersSML\Assets\colors.json \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/Assets/LockerScreen-old.png b/SubnauticaModSystem/AutosortLockers/Assets/LockerScreen-old.png new file mode 100644 index 0000000000000000000000000000000000000000..08d9b346ceea9dce051e1cfd3dac5df3726162c7 GIT binary patch literal 77359 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/Assets/colors - Copy.json b/SubnauticaModSystem/AutosortLockers/Assets/colors - Copy.json new file mode 100644 index 0000000..4474a7c --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/Assets/colors - Copy.json @@ -0,0 +1,704 @@ +[ + { + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + { + "r": 0.827451, + "g": 1.0, + "b": 0.992156863, + "a": 1.0 + }, + { + "r": 0.6862745, + "g": 0.933333337, + "b": 0.933333337, + "a": 1.0 + }, + { + "r": 0.870588243, + "g": 0.721568644, + "b": 0.5294118, + "a": 1.0 + }, + { + "r": 0.8235294, + "g": 0.7058824, + "b": 0.549019635, + "a": 1.0 + }, + { + "r": 0.8039216, + "g": 0.360784322, + "b": 0.360784322, + "a": 1.0 + }, + { + "r": 0.9411765, + "g": 0.5019608, + "b": 0.5019608, + "a": 1.0 + }, + { + "r": 0.980392158, + "g": 0.5019608, + "b": 0.447058827, + "a": 1.0 + }, + { + "r": 0.9137255, + "g": 0.5882353, + "b": 0.478431374, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.627451, + "b": 0.478431374, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.498039216, + "b": 0.3137255, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.3882353, + "b": 0.2784314, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.270588249, + "b": 0.0, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.549019635, + "b": 0.0, + "a": 1.0 + }, + { + "r": 0.866666734, + "g": 0.196078449, + "b": 0.1254902, + "a": 1.0 + }, + { + "r": 0.8627451, + "g": 0.0784313753, + "b": 0.235294119, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.0, + "b": 0.0, + "a": 1.0 + }, + { + "r": 0.698039234, + "g": 0.13333334, + "b": 0.13333334, + "a": 1.0 + }, + { + "r": 0.545098066, + "g": 0.0, + "b": 0.0, + "a": 1.0 + }, + { + "r": 0.647058845, + "g": 0.164705887, + "b": 0.164705887, + "a": 1.0 + }, + { + "r": 0.5019608, + "g": 0.0, + "b": 0.0, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.7137255, + "b": 0.75686276, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.4117647, + "b": 0.7058824, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.0784313753, + "b": 0.5764706, + "a": 1.0 + }, + { + "r": 0.78039217, + "g": 0.08235294, + "b": 0.521568656, + "a": 1.0 + }, + { + "r": 0.858823538, + "g": 0.4392157, + "b": 0.5764706, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.627451, + "b": 0.478431374, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.647058845, + "b": 0.0, + "a": 1.0 + }, + { + "r": 0.9568628, + "g": 0.764705956, + "b": 0.0, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.843137264, + "b": 0.0, + "a": 1.0 + }, + { + "r": 1.0, + "g": 1.0, + "b": 0.0, + "a": 1.0 + }, + { + "r": 0.933333337, + "g": 0.9098039, + "b": 0.6666667, + "a": 1.0 + }, + { + "r": 0.9411765, + "g": 0.9019608, + "b": 0.549019635, + "a": 1.0 + }, + { + "r": 0.7411765, + "g": 0.7176471, + "b": 0.419607848, + "a": 1.0 + }, + { + "r": 0.9019608, + "g": 0.9019608, + "b": 0.980392158, + "a": 1.0 + }, + { + "r": 0.847058833, + "g": 0.7490196, + "b": 0.847058833, + "a": 1.0 + }, + { + "r": 0.8666667, + "g": 0.627451, + "b": 0.8666667, + "a": 1.0 + }, + { + "r": 0.933333337, + "g": 0.509803951, + "b": 0.933333337, + "a": 1.0 + }, + { + "r": 0.854901969, + "g": 0.4392157, + "b": 0.8392157, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.0, + "b": 1.0, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.0, + "b": 1.0, + "a": 1.0 + }, + { + "r": 0.7294118, + "g": 0.333333343, + "b": 0.827451, + "a": 1.0 + }, + { + "r": 0.5764706, + "g": 0.4392157, + "b": 0.858823538, + "a": 1.0 + }, + { + "r": 0.5411765, + "g": 0.168627456, + "b": 0.8862745, + "a": 1.0 + }, + { + "r": 0.6, + "g": 0.196078435, + "b": 0.8, + "a": 1.0 + }, + { + "r": 0.509803951, + "g": 0.0156862754, + "b": 0.9333334, + "a": 1.0 + }, + { + "r": 0.5803922, + "g": 0.0, + "b": 0.827451, + "a": 1.0 + }, + { + "r": 0.117647059, + "g": 0.5647059, + "b": 1.0, + "a": 1.0 + }, + { + "r": 0.4, + "g": 0.2, + "b": 0.6, + "a": 1.0 + }, + { + "r": 0.254901975, + "g": 0.4117647, + "b": 0.882352948, + "a": 1.0 + }, + { + "r": 0.545098066, + "g": 0.0, + "b": 0.545098066, + "a": 1.0 + }, + { + "r": 0.5019608, + "g": 0.0, + "b": 0.5019608, + "a": 1.0 + }, + { + "r": 0.294117659, + "g": 0.0, + "b": 0.509803951, + "a": 1.0 + }, + { + "r": 0.41568628, + "g": 0.3529412, + "b": 0.8039216, + "a": 1.0 + }, + { + "r": 0.282352954, + "g": 0.239215687, + "b": 0.545098066, + "a": 1.0 + }, + { + "r": 0.482352942, + "g": 0.407843143, + "b": 0.933333337, + "a": 1.0 + }, + { + "r": 0.6784314, + "g": 1.0, + "b": 0.184313729, + "a": 1.0 + }, + { + "r": 0.498039216, + "g": 1.0, + "b": 0.0, + "a": 1.0 + }, + { + "r": 0.4862745, + "g": 0.9882353, + "b": 0.0, + "a": 1.0 + }, + { + "r": 0.0, + "g": 1.0, + "b": 0.0, + "a": 1.0 + }, + { + "r": 0.2784314, + "g": 0.850980461, + "b": 0.0, + "a": 1.0 + }, + { + "r": 0.196078435, + "g": 0.8039216, + "b": 0.196078435, + "a": 1.0 + }, + { + "r": 0.596078455, + "g": 0.9843137, + "b": 0.596078455, + "a": 1.0 + }, + { + "r": 0.5647059, + "g": 0.933333337, + "b": 0.5647059, + "a": 1.0 + }, + { + "r": 0.0, + "g": 0.980392158, + "b": 0.6039216, + "a": 1.0 + }, + { + "r": 0.0, + "g": 1.0, + "b": 0.498039216, + "a": 1.0 + }, + { + "r": 0.235294119, + "g": 0.7019608, + "b": 0.443137258, + "a": 1.0 + }, + { + "r": 0.180392161, + "g": 0.545098066, + "b": 0.34117648, + "a": 1.0 + }, + { + "r": 0.13333334, + "g": 0.545098066, + "b": 0.13333334, + "a": 1.0 + }, + { + "r": 0.0, + "g": 0.5019608, + "b": 0.0, + "a": 1.0 + }, + { + "r": 0.0, + "g": 0.392156869, + "b": 0.0, + "a": 1.0 + }, + { + "r": 0.6039216, + "g": 0.8039216, + "b": 0.196078435, + "a": 1.0 + }, + { + "r": 0.419607848, + "g": 0.5568628, + "b": 0.137254909, + "a": 1.0 + }, + { + "r": 0.5019608, + "g": 0.5019608, + "b": 0.0, + "a": 1.0 + }, + { + "r": 0.333333343, + "g": 0.419607848, + "b": 0.184313729, + "a": 1.0 + }, + { + "r": 0.4, + "g": 0.8039216, + "b": 0.6666667, + "a": 1.0 + }, + { + "r": 0.56078434, + "g": 0.7372549, + "b": 0.545098066, + "a": 1.0 + }, + { + "r": 0.1254902, + "g": 0.698039234, + "b": 0.6666667, + "a": 1.0 + }, + { + "r": 0.0, + "g": 0.545098066, + "b": 0.545098066, + "a": 1.0 + }, + { + "r": 0.0, + "g": 0.5019608, + "b": 0.5019608, + "a": 1.0 + }, + { + "r": 0.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + { + "r": 0.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + { + "r": 0.2509804, + "g": 0.8784314, + "b": 0.8156863, + "a": 1.0 + }, + { + "r": 0.282352954, + "g": 0.819607854, + "b": 0.8, + "a": 1.0 + }, + { + "r": 0.0, + "g": 0.807843149, + "b": 0.819607854, + "a": 1.0 + }, + { + "r": 0.372549027, + "g": 0.619607866, + "b": 0.627451, + "a": 1.0 + }, + { + "r": 0.274509817, + "g": 0.509803951, + "b": 0.7058824, + "a": 1.0 + }, + { + "r": 0.6901961, + "g": 0.768627465, + "b": 0.870588243, + "a": 1.0 + }, + { + "r": 0.6901961, + "g": 0.8784314, + "b": 0.9019608, + "a": 1.0 + }, + { + "r": 0.6784314, + "g": 0.847058833, + "b": 0.9019608, + "a": 1.0 + }, + { + "r": 0.5294118, + "g": 0.807843149, + "b": 0.921568632, + "a": 1.0 + }, + { + "r": 0.5294118, + "g": 0.807843149, + "b": 0.980392158, + "a": 1.0 + }, + { + "r": 0.0, + "g": 0.7490196, + "b": 1.0, + "a": 1.0 + }, + { + "r": 0.392156869, + "g": 0.58431375, + "b": 0.929411769, + "a": 1.0 + }, + { + "r": 0.482352942, + "g": 0.407843143, + "b": 0.933333337, + "a": 1.0 + }, + { + "r": 0.0, + "g": 0.0, + "b": 1.0, + "a": 1.0 + }, + { + "r": 0.0, + "g": 0.321568638, + "b": 0.850980461, + "a": 1.0 + }, + { + "r": 0.0, + "g": 0.0, + "b": 0.8039216, + "a": 1.0 + }, + { + "r": 0.0, + "g": 0.0, + "b": 0.545098066, + "a": 1.0 + }, + { + "r": 0.0, + "g": 0.0, + "b": 0.5019608, + "a": 1.0 + }, + { + "r": 0.09803922, + "g": 0.09803922, + "b": 0.4392157, + "a": 1.0 + }, + { + "r": 0.7372549, + "g": 0.56078434, + "b": 0.56078434, + "a": 1.0 + }, + { + "r": 0.956862748, + "g": 0.6431373, + "b": 0.3764706, + "a": 1.0 + }, + { + "r": 0.854901969, + "g": 0.647058845, + "b": 0.1254902, + "a": 1.0 + }, + { + "r": 0.721568644, + "g": 0.5254902, + "b": 0.0431372561, + "a": 1.0 + }, + { + "r": 0.8039216, + "g": 0.521568656, + "b": 0.247058824, + "a": 1.0 + }, + { + "r": 0.8235294, + "g": 0.4117647, + "b": 0.117647059, + "a": 1.0 + }, + { + "r": 0.545098066, + "g": 0.270588249, + "b": 0.07450981, + "a": 1.0 + }, + { + "r": 0.627451, + "g": 0.321568638, + "b": 0.1764706, + "a": 1.0 + }, + { + "r": 0.6627451, + "g": 0.6627451, + "b": 0.6627451, + "a": 1.0 + }, + { + "r": 0.5019608, + "g": 0.5019608, + "b": 0.5019608, + "a": 1.0 + }, + { + "r": 0.4117647, + "g": 0.4117647, + "b": 0.4117647, + "a": 1.0 + }, + { + "r": 0.466666669, + "g": 0.533333361, + "b": 0.6, + "a": 1.0 + }, + { + "r": 0.4392157, + "g": 0.5019608, + "b": 0.5647059, + "a": 1.0 + }, + { + "r": 0.184313729, + "g": 0.309803933, + "b": 0.309803933, + "a": 1.0 + }, + { + "r": 0.3, + "g": 0.3, + "b": 0.3, + "a": 1.0 + }, + { + "r": 1.0, + "g": 0.3, + "b": 0.42, + "a": 1.0 + } +] \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/Assets/colors.json b/SubnauticaModSystem/AutosortLockers/Assets/colors.json index b4ff88e..b66c232 100644 --- a/SubnauticaModSystem/AutosortLockers/Assets/colors.json +++ b/SubnauticaModSystem/AutosortLockers/Assets/colors.json @@ -1,800 +1,841 @@ [ { - "r": 0.827451, + "r": 1.0, "g": 1.0, - "b": 0.992156863, + "b": 1.0, "a": 1.0 }, { - "r": 0.9568628, - "g": 0.764705956, - "b": 0.0, + "r": 0.97, + "g": 0.97, + "b": 0.97, "a": 1.0 }, { - "r": 0.866666734, - "g": 0.196078449, - "b": 0.1254902, + "r": 0.94, + "g": 0.94, + "b": 0.94, "a": 1.0 }, { - "r": 1.0, - "g": 1.0, - "b": 1.0, + "r": 0.91, + "g": 0.91, + "b": 0.91, "a": 1.0 }, { - "r": 0.2784314, - "g": 0.850980461, - "b": 0.0, + "r": 0.88, + "g": 0.88, + "b": 0.88, "a": 1.0 }, { - "r": 0.0, - "g": 0.321568638, - "b": 0.850980461, + "r": 0.85, + "g": 0.85, + "b": 0.85, "a": 1.0 }, { - "r": 0.509803951, - "g": 0.0156862754, - "b": 0.9333334, + "r": 0.82, + "g": 0.82, + "b": 0.82, "a": 1.0 }, { - "r": 0.8039216, - "g": 0.360784322, - "b": 0.360784322, + "r": 0.79, + "g": 0.79, + "b": 0.79, "a": 1.0 }, { - "r": 0.9411765, - "g": 0.5019608, - "b": 0.5019608, + "r": 0.76, + "g": 0.76, + "b": 0.76, "a": 1.0 }, { - "r": 0.980392158, - "g": 0.5019608, - "b": 0.447058827, + "r": 0.73, + "g": 0.73, + "b": 0.73, "a": 1.0 }, { - "r": 0.9137255, - "g": 0.5882353, - "b": 0.478431374, + "r": 0.70, + "g": 0.70, + "b": 0.70, "a": 1.0 }, { - "r": 1.0, - "g": 0.627451, - "b": 0.478431374, + "r": 0.67, + "g": 0.67, + "b": 0.67, "a": 1.0 }, { - "r": 0.8627451, - "g": 0.0784313753, - "b": 0.235294119, + "r": 0.64, + "g": 0.64, + "b": 0.64, "a": 1.0 }, { - "r": 1.0, - "g": 0.0, - "b": 0.0, + "r": 0.61, + "g": 0.61, + "b": 0.61, "a": 1.0 }, { - "r": 0.698039234, - "g": 0.13333334, - "b": 0.13333334, + "r": 0.58, + "g": 0.58, + "b": 0.58, "a": 1.0 }, { - "r": 0.545098066, - "g": 0.0, - "b": 0.0, + "r": 0.55, + "g": 0.55, + "b": 0.55, "a": 1.0 }, { - "r": 1.0, - "g": 0.7529412, - "b": 0.796078444, + "r": 0.52, + "g": 0.52, + "b": 0.52, "a": 1.0 }, { - "r": 1.0, - "g": 0.7137255, - "b": 0.75686276, + "r": 0.49, + "g": 0.49, + "b": 0.49, "a": 1.0 }, { - "r": 1.0, - "g": 0.4117647, - "b": 0.7058824, + "r": 0.46, + "g": 0.46, + "b": 0.46, "a": 1.0 }, { - "r": 1.0, - "g": 0.0784313753, - "b": 0.5764706, + "r": 0.43, + "g": 0.43, + "b": 0.43, "a": 1.0 }, { - "r": 0.78039217, - "g": 0.08235294, - "b": 0.521568656, + "r": 0.40, + "g": 0.40, + "b": 0.40, "a": 1.0 }, { - "r": 0.858823538, - "g": 0.4392157, - "b": 0.5764706, + "r": 0.37, + "g": 0.37, + "b": 0.37, "a": 1.0 }, { - "r": 1.0, - "g": 0.627451, - "b": 0.478431374, + "r": 0.34, + "g": 0.34, + "b": 0.34, "a": 1.0 }, { - "r": 1.0, - "g": 0.498039216, - "b": 0.3137255, + "r": 0.31, + "g": 0.31, + "b": 0.31, "a": 1.0 }, { - "r": 1.0, - "g": 0.3882353, - "b": 0.2784314, + "r": 0.28, + "g": 0.28, + "b": 0.28, "a": 1.0 }, { - "r": 1.0, - "g": 0.270588249, - "b": 0.0, + "r": 0.25, + "g": 0.25, + "b": 0.25, "a": 1.0 }, { - "r": 1.0, - "g": 0.549019635, - "b": 0.0, + "r": 0.22, + "g": 0.22, + "b": 0.22, "a": 1.0 }, { - "r": 1.0, - "g": 0.647058845, - "b": 0.0, + "r": 0.19, + "g": 0.19, + "b": 0.19, "a": 1.0 }, { - "r": 1.0, - "g": 0.843137264, - "b": 0.0, + "r": 0.16, + "g": 0.16, + "b": 0.16, "a": 1.0 }, { - "r": 1.0, - "g": 1.0, - "b": 0.0, + "r": 0.00, + "g": 0.00, + "b": 0.00, "a": 1.0 }, { - "r": 1.0, - "g": 1.0, - "b": 0.8784314, + "r": 1.00, + "g": 0.70, + "b": 1.00, "a": 1.0 }, { - "r": 1.0, - "g": 0.980392158, - "b": 0.8039216, + "r": 1.00, + "g": 0.50, + "b": 1.00, "a": 1.0 }, { - "r": 0.980392158, - "g": 0.980392158, - "b": 0.8235294, + "r": 1.00, + "g": 0.40, + "b": 1.00, "a": 1.0 }, { - "r": 1.0, - "g": 0.9372549, - "b": 0.8352941, + "r": 1.00, + "g": 0.30, + "b": 1.00, "a": 1.0 }, { - "r": 1.0, - "g": 0.894117653, - "b": 0.709803939, + "r": 1.00, + "g": 0.20, + "b": 1.00, "a": 1.0 }, { - "r": 1.0, - "g": 0.854901969, - "b": 0.7254902, + "r": 1.00, + "g": 0.10, + "b": 1.00, "a": 1.0 }, { - "r": 0.933333337, - "g": 0.9098039, - "b": 0.6666667, + "r": 1.00, + "g": 0.00, + "b": 1.00, "a": 1.0 }, { - "r": 0.9411765, - "g": 0.9019608, - "b": 0.549019635, + "r": 0.90, + "g": 0.00, + "b": 0.90, "a": 1.0 }, { - "r": 0.7411765, - "g": 0.7176471, - "b": 0.419607848, + "r": 0.80, + "g": 0.00, + "b": 0.80, "a": 1.0 }, { - "r": 0.9019608, - "g": 0.9019608, - "b": 0.980392158, + "r": 0.70, + "g": 0.00, + "b": 0.70, "a": 1.0 }, { - "r": 0.847058833, - "g": 0.7490196, - "b": 0.847058833, + "r": 0.95, + "g": 0.70, + "b": 1.00, "a": 1.0 }, { - "r": 0.8666667, - "g": 0.627451, - "b": 0.8666667, + "r": 0.92, + "g": 0.50, + "b": 1.00, "a": 1.0 }, { - "r": 0.933333337, - "g": 0.509803951, - "b": 0.933333337, + "r": 0.90, + "g": 0.40, + "b": 1.00, "a": 1.0 }, { - "r": 0.854901969, - "g": 0.4392157, - "b": 0.8392157, + "r": 0.88, + "g": 0.30, + "b": 1.00, "a": 1.0 }, { - "r": 1.0, - "g": 0.0, - "b": 1.0, + "r": 0.87, + "g": 0.20, + "b": 1.00, "a": 1.0 }, { - "r": 1.0, - "g": 0.0, - "b": 1.0, + "r": 0.85, + "g": 0.10, + "b": 1.00, "a": 1.0 }, { - "r": 0.7294118, - "g": 0.333333343, - "b": 0.827451, + "r": 0.83, + "g": 0.00, + "b": 1.00, "a": 1.0 }, { - "r": 0.5764706, - "g": 0.4392157, - "b": 0.858823538, + "r": 0.75, + "g": 0.00, + "b": 0.90, "a": 1.0 }, { - "r": 0.4, - "g": 0.2, - "b": 0.6, + "r": 0.67, + "g": 0.00, + "b": 0.80, "a": 1.0 }, { - "r": 0.5411765, - "g": 0.168627456, - "b": 0.8862745, + "r": 0.58, + "g": 0.00, + "b": 0.70, "a": 1.0 }, { - "r": 0.5803922, - "g": 0.0, - "b": 0.827451, + "r": 0.70, + "g": 0.70, + "b": 1.00, "a": 1.0 }, { - "r": 0.6, - "g": 0.196078435, - "b": 0.8, + "r": 0.50, + "g": 0.50, + "b": 1.00, "a": 1.0 }, { - "r": 0.545098066, - "g": 0.0, - "b": 0.545098066, + "r": 0.40, + "g": 0.40, + "b": 1.00, "a": 1.0 }, { - "r": 0.5019608, - "g": 0.0, - "b": 0.5019608, + "r": 0.30, + "g": 0.30, + "b": 1.00, "a": 1.0 }, { - "r": 0.294117659, - "g": 0.0, - "b": 0.509803951, + "r": 0.20, + "g": 0.20, + "b": 1.00, "a": 1.0 }, { - "r": 0.41568628, - "g": 0.3529412, - "b": 0.8039216, + "r": 0.10, + "g": 0.10, + "b": 1.00, "a": 1.0 }, { - "r": 0.282352954, - "g": 0.239215687, - "b": 0.545098066, + "r": 0.00, + "g": 0.00, + "b": 1.00, "a": 1.0 }, { - "r": 0.482352942, - "g": 0.407843143, - "b": 0.933333337, + "r": 0.00, + "g": 0.13, + "b": 0.80, "a": 1.0 }, { - "r": 0.6784314, - "g": 1.0, - "b": 0.184313729, + "r": 0.00, + "g": 0.12, + "b": 0.70, "a": 1.0 }, { - "r": 0.498039216, - "g": 1.0, - "b": 0.0, + "r": 0.00, + "g": 0.00, + "b": 0.70, "a": 1.0 }, { - "r": 0.4862745, - "g": 0.9882353, - "b": 0.0, + "r": 0.60, + "g": 0.93, + "b": 1.00, "a": 1.0 }, { - "r": 0.0, - "g": 1.0, - "b": 0.0, + "r": 0.50, + "g": 0.92, + "b": 1.00, "a": 1.0 }, { - "r": 0.196078435, - "g": 0.8039216, - "b": 0.196078435, + "r": 0.40, + "g": 0.90, + "b": 1.00, "a": 1.0 }, { - "r": 0.596078455, - "g": 0.9843137, - "b": 0.596078455, + "r": 0.30, + "g": 0.88, + "b": 1.00, "a": 1.0 }, { - "r": 0.5647059, - "g": 0.933333337, - "b": 0.5647059, + "r": 0.20, + "g": 0.87, + "b": 1.00, "a": 1.0 }, { - "r": 0.0, - "g": 0.980392158, - "b": 0.6039216, + "r": 0.10, + "g": 0.85, + "b": 1.00, "a": 1.0 }, { - "r": 0.0, - "g": 1.0, - "b": 0.498039216, + "r": 0.00, + "g": 0.84, + "b": 1.00, "a": 1.0 }, { - "r": 0.235294119, - "g": 0.7019608, - "b": 0.443137258, + "r": 0.00, + "g": 0.75, + "b": 0.90, "a": 1.0 }, { - "r": 0.180392161, - "g": 0.545098066, - "b": 0.34117648, + "r": 0.00, + "g": 0.67, + "b": 0.80, "a": 1.0 }, { - "r": 0.13333334, - "g": 0.545098066, - "b": 0.13333334, + "r": 0.00, + "g": 0.50, + "b": 0.60, "a": 1.0 }, { - "r": 0.0, - "g": 0.5019608, - "b": 0.0, + "r": 0.70, + "g": 1.00, + "b": 0.70, "a": 1.0 }, { - "r": 0.0, - "g": 0.392156869, - "b": 0.0, + "r": 0.50, + "g": 1.00, + "b": 0.50, "a": 1.0 }, { - "r": 0.6039216, - "g": 0.8039216, - "b": 0.196078435, + "r": 0.40, + "g": 1.00, + "b": 0.40, "a": 1.0 }, { - "r": 0.419607848, - "g": 0.5568628, - "b": 0.137254909, + "r": 0.30, + "g": 1.00, + "b": 0.30, "a": 1.0 }, { - "r": 0.5019608, - "g": 0.5019608, - "b": 0.0, + "r": 0.20, + "g": 1.00, + "b": 0.20, "a": 1.0 }, { - "r": 0.333333343, - "g": 0.419607848, - "b": 0.184313729, + "r": 0.10, + "g": 1.00, + "b": 0.10, "a": 1.0 }, { - "r": 0.4, - "g": 0.8039216, - "b": 0.6666667, + "r": 0.15, + "g": 0.90, + "b": 0.00, "a": 1.0 }, { - "r": 0.56078434, - "g": 0.7372549, - "b": 0.545098066, + "r": 0.00, + "g": 0.70, + "b": 0.00, "a": 1.0 }, { - "r": 0.1254902, - "g": 0.698039234, - "b": 0.6666667, + "r": 0.00, + "g": 0.60, + "b": 0.00, "a": 1.0 }, { - "r": 0.0, - "g": 0.545098066, - "b": 0.545098066, + "r": 0.00, + "g": 0.40, + "b": 0.00, "a": 1.0 }, { - "r": 0.0, - "g": 0.5019608, - "b": 0.5019608, + "r": 0.95, + "g": 1.00, + "b": 0.70, "a": 1.0 }, { - "r": 0.0, - "g": 1.0, - "b": 1.0, + "r": 0.92, + "g": 1.00, + "b": 0.50, "a": 1.0 }, { - "r": 0.0, - "g": 1.0, - "b": 1.0, + "r": 0.88, + "g": 1.00, + "b": 0.30, "a": 1.0 }, { - "r": 0.8784314, - "g": 1.0, - "b": 1.0, + "r": 0.87, + "g": 1.00, + "b": 0.20, "a": 1.0 }, { - "r": 0.6862745, - "g": 0.933333337, - "b": 0.933333337, + "r": 0.85, + "g": 1.00, + "b": 0.10, "a": 1.0 }, { - "r": 0.498039216, - "g": 1.0, - "b": 0.831372559, + "r": 0.83, + "g": 1.00, + "b": 0.00, "a": 1.0 }, { - "r": 0.2509804, - "g": 0.8784314, - "b": 0.8156863, + "r": 0.67, + "g": 0.80, + "b": 0.00, "a": 1.0 }, { - "r": 0.282352954, - "g": 0.819607854, - "b": 0.8, + "r": 0.50, + "g": 0.60, + "b": 0.00, "a": 1.0 }, { - "r": 0.0, - "g": 0.807843149, - "b": 0.819607854, + "r": 0.33, + "g": 0.40, + "b": 0.00, "a": 1.0 }, { - "r": 0.372549027, - "g": 0.619607866, - "b": 0.627451, + "r": 0.10, + "g": 0.30, + "b": 0.00, "a": 1.0 }, { - "r": 0.274509817, - "g": 0.509803951, - "b": 0.7058824, + "r": 1.00, + "g": 1.00, + "b": 0.70, "a": 1.0 }, { - "r": 0.6901961, - "g": 0.768627465, - "b": 0.870588243, + "r": 1.00, + "g": 1.00, + "b": 0.50, "a": 1.0 }, { - "r": 0.6901961, - "g": 0.8784314, - "b": 0.9019608, + "r": 1.00, + "g": 1.00, + "b": 0.40, "a": 1.0 }, { - "r": 0.6784314, - "g": 0.847058833, - "b": 0.9019608, + "r": 1.00, + "g": 1.00, + "b": 0.30, "a": 1.0 }, { - "r": 0.5294118, - "g": 0.807843149, - "b": 0.921568632, + "r": 1.00, + "g": 1.00, + "b": 0.20, "a": 1.0 }, { - "r": 0.5294118, - "g": 0.807843149, - "b": 0.980392158, + "r": 1.00, + "g": 1.00, + "b": 0.10, "a": 1.0 }, { - "r": 0.0, - "g": 0.7490196, - "b": 1.0, + "r": 1.00, + "g": 1.00, + "b": 0.00, "a": 1.0 }, { - "r": 0.117647059, - "g": 0.5647059, - "b": 1.0, + "r": 0.90, + "g": 0.90, + "b": 0.00, "a": 1.0 }, { - "r": 0.392156869, - "g": 0.58431375, - "b": 0.929411769, + "r": 0.80, + "g": 0.80, + "b": 0.00, "a": 1.0 }, { - "r": 0.482352942, - "g": 0.407843143, - "b": 0.933333337, + "r": 0.70, + "g": 0.70, + "b": 0.00, "a": 1.0 }, { - "r": 0.254901975, - "g": 0.4117647, - "b": 0.882352948, + "r": 1.00, + "g": 0.90, + "b": 0.70, "a": 1.0 }, { - "r": 0.0, - "g": 0.0, - "b": 1.0, + "r": 1.00, + "g": 0.83, + "b": 0.50, "a": 1.0 }, { - "r": 0.0, - "g": 0.0, - "b": 0.8039216, + "r": 1.00, + "g": 0.80, + "b": 0.40, "a": 1.0 }, { - "r": 0.0, - "g": 0.0, - "b": 0.545098066, + "r": 1.00, + "g": 0.76, + "b": 0.30, "a": 1.0 }, { - "r": 0.0, - "g": 0.0, - "b": 0.5019608, + "r": 1.00, + "g": 0.73, + "b": 0.20, "a": 1.0 }, { - "r": 0.09803922, - "g": 0.09803922, - "b": 0.4392157, + "r": 1.00, + "g": 0.70, + "b": 0.10, "a": 1.0 }, { - "r": 1.0, - "g": 0.972549, - "b": 0.8627451, + "r": 1.00, + "g": 0.67, + "b": 0.00, "a": 1.0 }, { - "r": 1.0, - "g": 0.921568632, - "b": 0.8039216, + "r": 0.90, + "g": 0.60, + "b": 0.00, "a": 1.0 }, { - "r": 1.0, - "g": 0.894117653, - "b": 0.768627465, + "r": 0.80, + "g": 0.53, + "b": 0.00, "a": 1.0 }, { - "r": 1.0, - "g": 0.870588243, - "b": 0.6784314, + "r": 0.60, + "g": 0.40, + "b": 0.00, "a": 1.0 }, { - "r": 0.9607843, - "g": 0.870588243, - "b": 0.7019608, + "r": 1.00, + "g": 0.85, + "b": 0.70, "a": 1.0 }, { - "r": 0.870588243, - "g": 0.721568644, - "b": 0.5294118, + "r": 1.00, + "g": 0.75, + "b": 0.50, "a": 1.0 }, { - "r": 0.8235294, - "g": 0.7058824, - "b": 0.549019635, + "r": 1.00, + "g": 0.70, + "b": 0.40, "a": 1.0 }, { - "r": 0.7372549, - "g": 0.56078434, - "b": 0.56078434, + "r": 1.00, + "g": 0.65, + "b": 0.30, "a": 1.0 }, { - "r": 0.956862748, - "g": 0.6431373, - "b": 0.3764706, + "r": 1.00, + "g": 0.60, + "b": 0.20, "a": 1.0 }, { - "r": 0.854901969, - "g": 0.647058845, - "b": 0.1254902, + "r": 1.00, + "g": 0.55, + "b": 0.10, "a": 1.0 }, { - "r": 0.721568644, - "g": 0.5254902, - "b": 0.0431372561, + "r": 1.00, + "g": 0.50, + "b": 0.00, "a": 1.0 }, { - "r": 0.8039216, - "g": 0.521568656, - "b": 0.247058824, + "r": 0.90, + "g": 0.45, + "b": 0.00, "a": 1.0 }, { - "r": 0.8235294, - "g": 0.4117647, - "b": 0.117647059, + "r": 0.80, + "g": 0.40, + "b": 0.00, "a": 1.0 }, { - "r": 0.545098066, - "g": 0.270588249, - "b": 0.07450981, + "r": 0.70, + "g": 0.35, + "b": 0.00, "a": 1.0 }, { - "r": 0.627451, - "g": 0.321568638, - "b": 0.1764706, + "r": 1.00, + "g": 0.70, + "b": 0.70, "a": 1.0 }, { - "r": 0.647058845, - "g": 0.164705887, - "b": 0.164705887, + "r": 1.00, + "g": 0.50, + "b": 0.50, "a": 1.0 }, { - "r": 0.5019608, - "g": 0.0, - "b": 0.0, + "r": 1.00, + "g": 0.40, + "b": 0.40, "a": 1.0 }, { - "r": 1.0, - "g": 0.980392158, - "b": 0.980392158, + "r": 1.00, + "g": 0.30, + "b": 0.30, "a": 1.0 }, { - "r": 0.9411765, - "g": 1.0, - "b": 0.9411765, + "r": 1.00, + "g": 0.20, + "b": 0.20, + "a": 1.0 + }, + { + "r": 1.00, + "g": 0.10, + "b": 0.10, + "a": 1.0 + }, + { + "r": 1.00, + "g": 0.00, + "b": 0.00, + "a": 1.0 }, + { + "r": 0.90, + "g": 0.00, + "b": 0.00, + "a": 1.0 + }, + { + "r": 0.80, + "g": 0.00, + "b": 0.00, + "a": 1.0 + }, + { + "r": 0.60, + "g": 0.00, + "b": 0.00, + "a": 1.0 + }, + { + "r": 1.00, + "g": 0.70, + "b": 0.75, + "a": 1.0 + }, + { + "r": 1.00, + "g": 0.50, + "b": 0.58, "a": 1.0 }, { - "r": 0.7529412, - "g": 0.7529412, - "b": 0.7529412, + "r": 1.00, + "g": 0.40, + "b": 0.50, "a": 1.0 }, { - "r": 0.6627451, - "g": 0.6627451, - "b": 0.6627451, + "r": 1.00, + "g": 0.30, + "b": 0.42, "a": 1.0 }, { - "r": 0.5019608, - "g": 0.5019608, - "b": 0.5019608, + "r": 1.00, + "g": 0.20, + "b": 0.33, "a": 1.0 }, { - "r": 0.4117647, - "g": 0.4117647, - "b": 0.4117647, + "r": 1.00, + "g": 0.10, + "b": 0.25, "a": 1.0 }, { - "r": 0.466666669, - "g": 0.533333361, - "b": 0.6, + "r": 1.00, + "g": 0.00, + "b": 0.17, "a": 1.0 }, { - "r": 0.4392157, - "g": 0.5019608, - "b": 0.5647059, + "r": 0.90, + "g": 0.00, + "b": 0.15, "a": 1.0 }, { - "r": 0.184313729, - "g": 0.309803933, - "b": 0.309803933, + "r": 0.80, + "g": 0.00, + "b": 0.13, "a": 1.0 }, { - "r": 0.3, - "g": 0.3, - "b": 0.3, + "r": 0.70, + "g": 0.00, + "b": 0.12, "a": 1.0 } ] \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/AutosortLocker.cs b/SubnauticaModSystem/AutosortLockers/AutosortLocker.cs index 6bfbb87..a89d585 100644 --- a/SubnauticaModSystem/AutosortLockers/AutosortLocker.cs +++ b/SubnauticaModSystem/AutosortLockers/AutosortLocker.cs @@ -7,9 +7,8 @@ using SMLHelper.V2.Crafting; using UnityEngine; using UnityEngine.UI; -#if SUBNAUTICA -//using RecipeData = SMLHelper.V2.Crafting.RecipeData; -#elif BELOWZERO +#if SN +#elif BZ using TMPro; #endif @@ -33,12 +32,12 @@ public class AutosortLocker : MonoBehaviour private Image background; [SerializeField] private Image icon; -#if SUBNAUTICA +#if SN [SerializeField] private Text text; [SerializeField] private Text sortingText; -#elif BELOWZERO +#elif BZ [SerializeField] private TextMeshProUGUI text; [SerializeField] @@ -312,10 +311,9 @@ public AutosortLockerBuildable() } public override TechGroup GroupForPDA => TechGroup.InteriorModules; - public override TechCategory CategoryForPDA => TechCategory.InteriorModule; -#if SUBNAUTICA +#if SN public override GameObject GetGameObject() { GameObject originalPrefab = CraftData.GetPrefabForTechType(TechType.SmallLocker); @@ -334,16 +332,18 @@ public override GameObject GetGameObject() var prefabText = prefab.GetComponentInChildren(); var label = prefab.FindChild("Label"); + label.SetActive(false); DestroyImmediate(label); var autoSorter = prefab.AddComponent(); var canvas = LockerPrefabShared.CreateCanvas(prefab.transform); - autoSorter.background = LockerPrefabShared.CreateBackground(canvas.transform); + autoSorter.background = LockerPrefabShared.CreateBackground(canvas.transform, autoSorter.name); autoSorter.icon = LockerPrefabShared.CreateIcon(autoSorter.background.transform, MainColor, 40); - autoSorter.text = LockerPrefabShared.CreateText(autoSorter.background.transform, prefabText, MainColor, 0, 14, "Autosorter"); + autoSorter.text = LockerPrefabShared.CreateText(autoSorter.background.transform, prefabText, MainColor, -4, 14, "Autosorter", "Autosorter"); + autoSorter.text.rectTransform.anchoredPosition += new Vector2(23, 0); - autoSorter.sortingText = LockerPrefabShared.CreateText(autoSorter.background.transform, prefabText, MainColor, -120, 12, "Sorting..."); + autoSorter.sortingText = LockerPrefabShared.CreateText(autoSorter.background.transform, prefabText, MainColor, -120, 12, "Sorting...", "Autosorter"); autoSorter.sortingText.alignment = TextAnchor.UpperCenter; autoSorter.background.gameObject.SetActive(false); @@ -373,9 +373,9 @@ public override IEnumerator GetGameObjectAsync(IOut gameObject) meshRenderer.material.color = new Color(1, 0, 0); } -#if SUBNAUTICA +#if SN var prefabText = prefab.GetComponentInChildren(); -#elif BELOWZERO +#elif BZ var prefabText = prefab.GetComponentInChildren(); #endif var label = prefab.FindChild("Label"); @@ -388,12 +388,12 @@ public override IEnumerator GetGameObjectAsync(IOut gameObject) autoSorter.icon = LockerPrefabShared.CreateIcon(autoSorter.background.transform, MainColor, 40); // The first number is the vertical position, the second number is the font autoSorter.text = LockerPrefabShared.CreateText(autoSorter.background.transform, prefabText, MainColor, 0, 14, "Autosorter", "Autosorter"); - autoSorter.text.rectTransform.anchoredPosition += new Vector2(20, 0); + autoSorter.text.rectTransform.anchoredPosition += new Vector2(19, 0); autoSorter.sortingText = LockerPrefabShared.CreateText(autoSorter.background.transform, prefabText, MainColor, -120, 18, "Sorting...", "Autosorter"); -#if SUBNAUTICA +#if SN autoSorter.sortingText.alignment = TextAnchor.UpperCenter; -#elif BELOWZERO +#elif BZ autoSorter.sortingText.alignment = TextAlignmentOptions.Top; #endif @@ -406,6 +406,30 @@ public override IEnumerator GetGameObjectAsync(IOut gameObject) yield break; } +#if SN + protected override TechData GetBlueprintRecipe() + { + return new TechData + { + craftAmount = 1, + Ingredients = Mod.config.EasyBuild + ? new List + { + new Ingredient(TechType.Titanium, 2) + } + : new List + { + new Ingredient(TechType.Titanium, 2), + new Ingredient(TechType.ComputerChip, 1), + new Ingredient(TechType.AluminumOxide, 2) + } + }; + } + protected override Atlas.Sprite GetItemSprite() + { + return SMLHelper.V2.Utility.ImageUtils.LoadSpriteFromFile(Mod.GetAssetPath("AutosortLocker.png")); + } +#elif BZ protected override RecipeData GetBlueprintRecipe() { return new RecipeData() @@ -429,6 +453,7 @@ protected override Sprite GetItemSprite() { return SMLHelper.V2.Utility.ImageUtils.LoadSpriteFromFile(Mod.GetAssetPath("AutosortLocker.png")); } +#endif } /*_____________________________________________________________________________________________________*/ diff --git a/SubnauticaModSystem/AutosortLockers/AutosortLockersSML.csproj b/SubnauticaModSystem/AutosortLockers/AutosortLockersSML.csproj index 0ab39f0..c9fcab5 100644 --- a/SubnauticaModSystem/AutosortLockers/AutosortLockersSML.csproj +++ b/SubnauticaModSystem/AutosortLockers/AutosortLockersSML.csproj @@ -37,11 +37,11 @@ Always - - BZ;BELOWZERO + + BZ true true - $(CommonDir)SubnauticaZero.Stable + $(CommonDir)SubnauticaZero SubnauticaZero_Data SMLHelper_BZ AnyCPU @@ -49,11 +49,11 @@ prompt false - - SN1;SUBNAUTICA + + SN true true - $(CommonDir)Subnautica.Stable + $(CommonDir)Subnautica Subnautica_Data Modding Helper AnyCPU @@ -63,77 +63,102 @@ - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\BepInEx\core\0Harmony.dll + $(GameDir)\BepInEx\core\0Harmony.dll + False - - False - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Assembly-CSharp.dll + + $(GameDir)\$(DataFolder)\Managed\publicized_assemblies\Assembly-CSharp-firstpass_publicized.dll False - - False - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Assembly-CSharp-firstpass.dll + + $(GameDir)\$(DataFolder)\Managed\publicized_assemblies\Assembly-CSharp_publicized.dll False - - False - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Newtonsoft.Json.dll + + $(GameDir)\$(DataFolder)\Managed\Newtonsoft.Json.dll False - ..\..\..\SteamLibrary\steamapps\common\Subnautica\BepInEx\plugins\QModManager\QModInstaller.dll + $(GameDir)\BepInEx\plugins\QModManager\QModInstaller.dll False - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\QMods\SMLHelper_BZ\SMLHelper.dll + $(GameDir)\QMods\$(SMLHelperFolder)\SMLHelper.dll False - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.TextMeshPro.dll + $(GameDir)\$(DataFolder)\Managed\Unity.TextMeshPro.dll - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.dll + $(GameDir)\$(DataFolder)\Managed\UnityEngine.dll + + + $(GameDir)\$(DataFolder)\Managed\UnityEngine.AssetBundleModule.dll + False + + + $(GameDir)\$(DataFolder)\Managed\UnityEngine.AudioModule.dll False - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.CoreModule.dll + $(GameDir)\$(DataFolder)\Managed\UnityEngine.CoreModule.dll + False + + + $(GameDir)\$(DataFolder)\Managed\UnityEngine.ImageConversionModule.dll + False + + + $(GameDir)\$(DataFolder)\Managed\UnityEngine.IMGUIModule.dll False - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.InputLegacyModule.dll + $(GameDir)\$(DataFolder)\Managed\UnityEngine.InputLegacyModule.dll False False - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.Physics2DModule.dll + $(GameDir)\$(DataFolder)\Managed\UnityEngine.Physics2DModule.dll False False - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.PhysicsModule.dll + $(GameDir)\$(DataFolder)\Managed\UnityEngine.PhysicsModule.dll False - - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TextCoreModule.dll + + $(GameDir)\$(DataFolder)\Managed\UnityEngine.InputModule.dll False - - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TextRenderingModule.dll + + $(GameDir)\$(DataFolder)\Managed\UnityEngine.ParticleSystemModule.dll + False + + + $(GameDir)\$(DataFolder)\Managed\UnityEngine.PhysicsModule.dll False - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UI.dll + $(GameDir)\$(DataFolder)\Managed\UnityEngine.UI.dll + False + + + $(GameDir)\$(DataFolder)\Managed\UnityEngine.TextCoreModule.dll + False + + + $(GameDir)\$(DataFolder)\Managed\UnityEngine.TextRenderingModule.dll False - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UIElementsModule.dll + $(GameDir)\$(DataFolder)\Managed\UnityEngine.UIElementsModule.dll False - ..\..\..\SteamLibrary\steamapps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UIModule.dll + $(GameDir)\$(DataFolder)\Managed\UnityEngine.UIModule.dll False @@ -177,13 +202,23 @@ + + - If $(Configuration) == SN1 D:\Code\below_zero\copy_SN_dll.bat -If $(Configuration) == BZ D:\Code\below_zero\copy_BZ_dll.bat - + if $(ConfigurationName) == BZ ( +mkdir "D:\SteamLibrary\steamapps\common\SubnauticaZero\QMods\$(TargetName)" +xcopy /Y "$(TargetPath)" "D:\SteamLibrary\steamapps\common\SubnauticaZero\QMods\$(TargetName)" +xcopy /Y "$(ProjectDir)\mod_BZ.json" "D:\SteamLibrary\steamapps\common\SubnauticaZero\QMods\$(TargetName)\mod.json" +del "D:\SteamLibrary\steamapps\common\SubnauticaZero\qmodmanager_log-SubnauticaZero.txt" ) + +if $(ConfigurationName) == SN ( +mkdir "D:\SteamLibrary\steamapps\common\Subnautica\QMods\$(TargetName)" +xcopy /Y "$(TargetPath)" "D:\SteamLibrary\steamapps\common\Subnautica\QMods\$(TargetName)" +xcopy /Y "$(ProjectDir)\mod_SN.json" "D:\SteamLibrary\steamapps\common\Subnautica\QMods\$(TargetName)\mod.json" +del "D:\SteamLibrary\steamapps\common\Subnautica\qmodmanager_log-Subnautica.txt") \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/AutosortLockersSML.sln b/SubnauticaModSystem/AutosortLockers/AutosortLockersSML.sln deleted file mode 100644 index 5e0e693..0000000 --- a/SubnauticaModSystem/AutosortLockers/AutosortLockersSML.sln +++ /dev/null @@ -1,34 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31321.278 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutosortLockersSML", "AutosortLockersSML.csproj", "{6C883B28-31E6-4C26-B32B-BF5BE0D70190}" -EndProject -Global - GlobalSection(SharedMSBuildProjectFiles) = preSolution - ..\Common\Common.projitems*{6c883b28-31e6-4c26-b32b-bf5be0d70190}*SharedItemsImports = 4 - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - BZ|Any CPU = BZ|Any CPU - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - SN1|Any CPU = SN1|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.BZ|Any CPU.ActiveCfg = BZ|Any CPU - {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.BZ|Any CPU.Build.0 = BZ|Any CPU - {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.Release|Any CPU.Build.0 = Release|Any CPU - {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.SN1|Any CPU.ActiveCfg = SN1|Any CPU - {6C883B28-31E6-4C26-B32B-BF5BE0D70190}.SN1|Any CPU.Build.0 = SN1|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {225DA48E-099A-4A1B-93BB-50193BFA7900} - EndGlobalSection -EndGlobal diff --git a/SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/0Harmony.dll b/SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/0Harmony.dll new file mode 100644 index 0000000000000000000000000000000000000000..fc1bc4716873c8feb7b2bbc70d9aaee8ed7422b9 GIT binary patch literal 186880 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/0Harmony.xml b/SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/0Harmony.xml new file mode 100644 index 0000000..e25d511 --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/0Harmony.xml @@ -0,0 +1,4109 @@ + + + + 0Harmony + + + +

A factory to create delegate types + + + + Instance for the delegate type factory + + + Exists for API compatibility with Harmony + + + + + Creates a delegate type for a method + + Type of the return value + Types of the arguments + The new delegate type for the given type info + + + + Creates a delegate type for a method + + Type of the return value + Types of the arguments + Calling convention. If specified, adds to the delegate type + The new delegate type for the given type info + + + Creates a delegate type for a method + The method + The new delegate type + + + Creates a delegate type for a method + The method + Calling convention. If specified, adds to the delegate type. + The new delegate type + + + A getter delegate type + Type that getter gets field/property value from + Type of the value that getter gets + The instance get getter uses + An delegate + + + + A setter delegate type + Type that setter sets field/property value for + Type of the value that setter sets + The instance the setter uses + The value the setter uses + An delegate + + + + A constructor delegate type + Type that constructor creates + An delegate + + + + A helper class for fast access to getters and setters + + + Creates an instantiation delegate + Type that constructor creates + The new instantiation delegate + + + + Creates an getter delegate for a property + Type that getter reads property from + Type of the property that gets accessed + The property + The new getter delegate + + + + Creates an getter delegate for a field + Type that getter reads field from + Type of the field that gets accessed + The field + The new getter delegate + + + + Creates an getter delegate for a field (with a list of possible field names) + Type that getter reads field/property from + Type of the field/property that gets accessed + A list of possible field names + The new getter delegate + + + + Creates an setter delegate + Type that setter assigns property value to + Type of the property that gets assigned + The property + The new setter delegate + + + + Creates an setter delegate for a field + Type that setter assigns field value to + Type of the field that gets assigned + The field + The new getter delegate + + + + A delegate to invoke a method + The instance + The method parameters + The method result + + + A helper class to invoke method with delegates + + + Creates a fast invocation handler from a method + The method to invoke + Controls if boxed value object is accessed/updated directly + The + + + The directBoxValueAccess option controls how value types passed by reference (e.g. ref int, out my_struct) are handled in the arguments array + passed to the fast invocation handler. + Since the arguments array is an object array, any value types contained within it are actually references to a boxed value object. + Like any other object, there can be other references to such boxed value objects, other than the reference within the arguments array. + For example, + + var val = 5; + var box = (object)val; + var arr = new object[] { box }; + handler(arr); // for a method with parameter signature: ref/out/in int + + + + + If directBoxValueAccess is true, the boxed value object is accessed (and potentially updated) directly when the handler is called, + such that all references to the boxed object reflect the potentially updated value. + In the above example, if the method associated with the handler updates the passed (boxed) value to 10, both box and arr[0] + now reflect the value 10. Note that the original val is not updated, since boxing always copies the value into the new boxed value object. + + + If directBoxValueAccess is false (default), the boxed value object in the arguments array is replaced with a "reboxed" value object, + such that potential updates to the value are reflected only in the arguments array. + In the above example, if the method associated with the handler updates the passed (boxed) value to 10, only arr[0] now reflects the value 10. + + + + + Patch function helpers + + + Sorts patch methods by their priority rules + The original method + Patches to sort + Use debug mode + The sorted patch methods + + + + Sorts patch methods by their priority rules + The original method + Patches to sort + Use debug mode + The sorted patch methods + + + + Creates new replacement method with the latest patches and detours the original method + The original method + Information describing the patches + The newly created replacement method + + + + + High-level IL code manipulator for MonoMod that allows to manipulate a method as a stream of CodeInstructions. + + + + + Initialize IL transpiler + + Body of the method to transpile + Whether to always log everything for this instance + + + + Adds a transpiler method that edits the IL of the given method + + Transpiler method + Currently not implemented + + + + Processes and writes IL to the provided method body. + Note that this cleans the existing method body (removes insturctions and exception handlers). + + Method body to write to. + Original method that transpiler can optionally call into + + One of IL opcodes contains a CallSide (e.g. calli), which is currently not + fully supported. + + One of IL opcodes with an operand contains a null operand. + + + + Converts all branches to long types. This exists to mimic the behaviour of Harmony 2 + + Enumerable of instructions + Enumerable of fixed instructions + + + + Helper wrapper around ILProcessor to allow emitting code at certain positions + + + + + Write method body to a ILDasm -like representation + + Method body to write + String representation of the method body (locals and instruction) + Unexpected exception block type + + + + Patching methods potentially messes up the stack. + Especially calls to GetExecutingAssembly won't turn in correct methods + + + + Creates a patch sorter + Array of patches that will be sorted + Use debugging + + + Sorts internal PatchSortingWrapper collection and caches the results. + After first run the result is provided from the cache. + The original method + The sorted patch methods + + + Sorts internal PatchSortingWrapper collection and caches the results. + After first run the result is provided from the cache. + The original method + The sorted patch methods as instance + + + Checks if the sorter was created with the same patch list and as a result can be reused to + get the sorted order of the patches. + List of patches to check against + true if equal + + + Removes one unresolved dependency from the least important patch. + + + Outputs all unblocked patches from the waiting list to results list + + + Adds patch to both results list and handled patches set + Patch to add + + + Wrapper used over the Patch object to allow faster dependency access and + dependency removal in case of cyclic dependencies + + + Create patch wrapper object used for sorting + Patch to wrap + + + Determines how patches sort + The other patch + integer to define sort order (-1, 0, 1) + + + Determines whether patches are equal + The other patch + true if equal + + + Hash function + A hash code + + + Bidirectionally registers Patches as after dependencies + List of dependencies to register + + + Bidirectionally registers Patches as before dependencies + List of dependencies to register + + + Bidirectionally removes Patch from after dependencies + Patch to remove + + + Bidirectionally removes Patch from before dependencies + Patch to remove + + + Specifies the type of method + + + + This is a normal method + + + This is a getter + + + This is a setter + + + This is a constructor + + + This is a static constructor + + + Specifies the type of argument + + + + This is a normal argument + + + This is a reference argument (ref) + + + This is an out argument (out) + + + This is a pointer argument (&) + + + Specifies the type of patch + + + + Any patch + + + A prefix patch + + + A postfix patch + + + A transpiler + + + A finalizer + + + A reverse patch + + + A MonoMod + + + Specifies the type of reverse patch + + + + Use the unmodified original method (directly from IL) + + + Use the original as it is right now including previous patches but excluding future ones + + + Specifies the type of method call dispatching mechanics + + + + Call the method using dynamic dispatching if method is virtual (including overriden) + + + This is the built-in form of late binding (a.k.a. dynamic binding) and is the default dispatching mechanic in C#. + This directly corresponds with the instruction. + + + For virtual (including overriden) methods, the instance type's most-derived/overriden implementation of the method is called. + For non-virtual (including static) methods, same behavior as : the exact specified method implementation is called. + + + Note: This is not a fully dynamic dispatch, since non-virtual (including static) methods are still called non-virtually. + A fully dynamic dispatch in C# involves using + the dynamic type + (actually a fully dynamic binding, since even the name and overload resolution happens at runtime), which does not support. + + + + + Call the method using static dispatching, regardless of whether method is virtual (including overriden) or non-virtual (including static) + + + a.k.a. non-virtual dispatching, early binding, or static binding. + This directly corresponds with the instruction. + + + For both virtual (including overriden) and non-virtual (including static) methods, the exact specified method implementation is called, without virtual/override mechanics. + + + + + The base class for all Harmony annotations (not meant to be used directly) + + + + The common information for all attributes + + + Annotation to define your Harmony patch methods + + + + An empty annotation can be used together with TargetMethod(s) + + + + An annotation that specifies a class to patch + The declaring class/type + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The argument types of the method or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + An array of argument types to target overloads + Array of + + + + An annotation that specifies a method, property or constructor to patch + Assembly-qualified name of the declaring class/type + The name of the method, property or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + Assembly-qualified name of the declaring class/type + The name of the method, property or constructor to patch + The + An array of argument types to target overloads + Array of + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The + An array of argument types to target overloads + Array of + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + The + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + An array of argument types to target overloads + An array of + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + The + + + + An annotation that specifies a method, property or constructor to patch + The + + + + An annotation that specifies a method, property or constructor to patch + The + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The + An array of argument types to target overloads + An array of + + + + An annotation that specifies a method, property or constructor to patch + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + An array of argument types to target overloads + An array of + + + + Annotation to define the original method for delegate injection + + + + An annotation that specifies a class to patch + The declaring class/type + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The argument types of the method or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + An array of argument types to target overloads + Array of + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The + An array of argument types to target overloads + Array of + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + The + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + An array of argument types to target overloads + An array of + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + The + + + + An annotation that specifies call dispatching mechanics for the delegate + The + + + + An annotation that specifies a method, property or constructor to patch + The + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The + An array of argument types to target overloads + An array of + + + + An annotation that specifies a method, property or constructor to patch + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + An array of argument types to target overloads + An array of + + + + Annotation to define your standin methods for reverse patching + + + + An annotation that specifies the type of reverse patching + The of the reverse patch + + + + A Harmony annotation to define that all methods in a class are to be patched + + + + A Harmony annotation + + + + A Harmony annotation to define patch priority + The priority + + + + A Harmony annotation + + + + A Harmony annotation to define that a patch comes before another patch + The array of harmony IDs of the other patches + + + + A Harmony annotation + + + A Harmony annotation to define that a patch comes after another patch + The array of harmony IDs of the other patches + + + + A Harmony annotation + + + A Harmony annotation to debug a patch (output uses to log to your Desktop) + + + + A Harmony attribute + + + If specified on a prefix, postfix or a finalizer, the method will be automatically wrapped into try/catch. + + + + Specifies the Prepare function in a patch class + + + + Specifies the Cleanup function in a patch class + + + + Specifies the TargetMethod function in a patch class + + + + Specifies the TargetMethods function in a patch class + + + + Specifies the Prefix function in a patch class + + + + Specifies the Postfix function in a patch class + + + + Specifies the Transpiler function in a patch class + + + + Specifies the ILManipulator function in a patch class> + + + + Specifies the Finalizer function in a patch class + + + + A Harmony annotation + + + + The name of the original argument + + + + The index of the original argument + + + + The new name of the original argument + + + + An annotation to declare injected arguments by name + + + + An annotation to declare injected arguments by index + Zero-based index + + + + An annotation to declare injected arguments by renaming them + Name of the original argument + New name + + + + An annotation to declare injected arguments by index and renaming them + Zero-based index + New name + + + + An abstract wrapper around OpCode and their operands. Used by transpilers + + + + The opcode + + + + The operand + + + + All labels defined on this instruction + + + + All exception block boundaries defined on this instruction + + + + Creates a new CodeInstruction with a given opcode and optional operand + The opcode + The operand + + + + Create a full copy (including labels and exception blocks) of a CodeInstruction + The to copy + + + + Clones a CodeInstruction and resets its labels and exception blocks + A lightweight copy of this code instruction + + + + Clones a CodeInstruction, resets labels and exception blocks and sets its opcode + The opcode + A copy of this CodeInstruction with a new opcode + + + + Clones a CodeInstruction, resets labels and exception blocks and sets its operand + The operand + A copy of this CodeInstruction with a new operand + + + + Creates a CodeInstruction calling a method (CALL) + The class/type where the method is declared + The name of the method (case sensitive) + Optional parameters to target a specific overload of the method + Optional list of types that define the generic version of the method + A code instruction that calls the method matching the arguments + + + + Creates a CodeInstruction calling a method (CALL) + The target method in the form TypeFullName:MethodName, where the type name matches a form recognized by Type.GetType like Some.Namespace.Type. + Optional parameters to target a specific overload of the method + Optional list of types that define the generic version of the method + A code instruction that calls the method matching the arguments + + + + Creates a CodeInstruction calling a method (CALL) + The lambda expression using the method + + + + + Creates a CodeInstruction calling a method (CALL) + The lambda expression using the method + + + + + Creates a CodeInstruction calling a method (CALL) + The lambda expression using the method + + + + + Creates a CodeInstruction calling a method (CALL) + The lambda expression using the method + + + + + Creates a CodeInstruction loading a field (LD[S]FLD[A]) + The class/type where the field is defined + The name of the field (case sensitive) + Use address of field + + + + Creates a CodeInstruction storing to a field (ST[S]FLD) + The class/type where the field is defined + The name of the field (case sensitive) + + + + Returns a string representation of the code instruction + A string representation of the code instruction + + + + Exception block types + + + + The beginning of an exception block + + + + The beginning of a catch block + + + + The beginning of an except filter block + + + + The beginning of a fault block + + + + The beginning of a finally block + + + + The end of an exception block + + + + An exception block + + + + Block type + + + + Catch type + + + + Creates an exception block + The + The catch type + + + + + An exception thrown when a patch argument in a Harmony patch is invalid. + + + + + Original method to be patched. + + + + + Patch that was attempted to be applied. + + + + + + + + Constructs a new exception instance. + + Message of the exception. + Original method to be patched. + Patch that was attempted to be applied. + + + + An exception thrown when a reflection member is not found. + + + + + + + The Harmony instance is the main entry to Harmony. After creating one with an unique identifier, it is used to patch and query the current application domain + + + + Set to true before instantiating Harmony to debug Harmony or use an environment variable to set HARMONY_DEBUG to '1' like this: cmd /C "set HARMONY_DEBUG=1 && game.exe" + This is for full debugging. To debug only specific patches, use the attribute + + + + Creates a new Harmony instance + A unique identifier (you choose your own) + A Harmony instance + + + + The unique identifier + + + + Searches the current assembly for Harmony annotations and uses them to create patches + + + + Creates a empty patch processor for an original method + The original method/constructor + A new instance + + + + Creates a patch class processor from an annotated class + The class/type + A new instance + + + + Creates a patch class processor from an annotated class + The class/type + If true, the type doesn't need to have any attributes present for processing + A new instance + + + + Creates a reverse patcher for one of your stub methods + The original method/constructor + The stand-in stub method as + A new instance + + + + Searches an assembly for Harmony annotations and uses them to create patches + The assembly + + + + Searches the given type for Harmony annotation and uses them to create patches + The type to search + + + + Creates patches by manually specifying the methods + The original method/constructor + An optional prefix method wrapped in a object + An optional postfix method wrapped in a object + An optional transpiler method wrapped in a object + An optional finalizer method wrapped in a object + An optional ilmanipulator method wrapped in a + The replacement method that was created to patch the original method + + + + Creates patches by manually specifying the methods + The original method/constructor + An optional prefix method wrapped in a object + An optional postfix method wrapped in a object + An optional transpiler method wrapped in a object + An optional finalizer method wrapped in a object + The replacement method that was created to patch the original method + + + + Patches a foreign method onto a stub method of yours and optionally applies transpilers during the process + The original method/constructor you want to duplicate + Your stub method as that will become the original. Needs to have the correct signature (either original or whatever your transpilers generates) + An optional transpiler as method that will be applied during the process + An optional ilmanipulator as method that will be applied during the process + The replacement method that was created to patch the stub method + + + + Patches a foreign method onto a stub method of yours and optionally applies transpilers during the process + The original method/constructor you want to duplicate + Your stub method as that will become the original. Needs to have the correct signature (either original or whatever your transpilers generates) + An optional transpiler as method that will be applied during the process + The replacement method that was created to patch the stub method + + + + Unpatches methods by patching them with zero patches. Fully unpatching is not supported. Be careful, unpatching is global + The optional Harmony ID to restrict unpatching to a specific Harmony instance + This method could be static if it wasn't for the fact that unpatching creates a new replacement method that contains your harmony ID + + + + Unpatches all methods that were patched by this Harmony instance's ID. Unpatching is done by repatching methods without patches of this instance. + + + + Unpatches a method by patching it with zero patches. Fully unpatching is not supported. Be careful, unpatching is global + The original method/constructor + The + The optional Harmony ID to restrict unpatching to a specific Harmony instance + + + + Unpatches a method by patching it with zero patches. Fully unpatching is not supported. Be careful, unpatching is global + The original method/constructor + The patch method as method to remove + + + + Test for patches from a specific Harmony ID + The Harmony ID + True if patches for this ID exist + + + + Gets patch information for a given original method + The original method/constructor + The patch information as + + + + Gets the methods this instance has patched + An enumeration of original methods/constructors + + + + Gets all patched original methods in the appdomain + An enumeration of patched original methods/constructors + + + + Gets the original method from a given replacement method + A replacement method, for example from a stacktrace + The original method/constructor or null if not found + + + + Tries to get the method from a stackframe including dynamic replacement methods + The + For normal frames, frame.GetMethod() is returned. For frames containing patched methods, the replacement method is returned or null if no method can be found + + + + Gets Harmony version for all active Harmony instances + [out] The current Harmony version + A dictionary containing assembly versions keyed by Harmony IDs + + + + Creates a new Harmony instance and applies all patches specified in the type + The type to scan for patches. + The ID for the Harmony instance to create, which will be used. + + + + Applies all patches specified in the assembly + The assembly to scan. + The ID for the Harmony instance to create, which will be used. + + + + Under Mono, HarmonyException wraps IL compile errors with detailed information about the failure + + + + Default serialization constructor (not implemented) + The info + The context + + + + Get a list of IL instructions in pairs of offset+code + A list of key/value pairs which represent an offset and the code at that offset + + + + Get a list of IL instructions without offsets + A list of + + + + Get the error offset of the errornous IL instruction + The offset + + + + Get the index of the errornous IL instruction + The index into the list of instructions or -1 if not found + + + + A wrapper around a method to use it as a patch (for example a Prefix) + + + + The original method + + + + Class/type declaring this patch + + + + Patch method name + + + + Optional patch + + + + Array of argument types of the patch method + + + + of the patch + + + + Install this patch before patches with these Harmony IDs + + + + Install this patch after patches with these Harmony IDs + + + + Reverse patch type, see + + + + Create debug output for this patch + + + + Whether to use (true) or (false) mechanics + for -attributed delegate + + + + Whether to wrap the patch itself into a try/catch. + + + + Default constructor + + + + Creates a patch from a given method + The original method + + + + Creates a patch from a given method + The original method + The patch + A list of harmony IDs that should come after this patch + A list of harmony IDs that should come before this patch + Set to true to generate debug output + + + + Creates a patch from a given method + The patch class/type + The patch method name + The optional argument types of the patch method (for overloaded methods) + + + + Gets the names of all internal patch info fields + A list of field names + + + + Merges annotations + The list of to merge + The merged + + + + Returns a string that represents the annotation + A string representation + + + + Annotation extensions + + + + Copies annotation information + The source + The destination + + + + Clones an annotation + The to clone + A copied + + + + Merges annotations + The master + The detail + A new, merged + + + + Gets all annotations on a class/type + The class/type + A list of all + + + + Gets merged annotations on a class/type + The class/type + The merged + + + + Gets all annotations on a method + The method/constructor + A list of + + + + Gets merged annotations on a method + The method/constructor + The merged + + + + + A mutable representation of an inline signature, similar to Mono.Cecil's CallSite. + Used by the calli instruction, can be used by transpilers + + + + + See + + + + See + + + + See + + + + The list of all parameter types or function pointer signatures received by the call site + + + + The return type or function pointer signature returned by the call site + + + + Returns a string representation of the inline signature + A string representation of the inline signature + + + + + A mutable representation of a parameter type with an attached type modifier, + similar to Mono.Cecil's OptionalModifierType / RequiredModifierType and C#'s modopt / modreq + + + + + Whether this is a modopt (optional modifier type) or a modreq (required modifier type) + + + + The modifier type attached to the parameter type + + + + The modified parameter type + + + + Returns a string representation of the modifier type + A string representation of the modifier type + + + + Patch serialization + + + + Control the binding of a serialized object to a type + Specifies the assembly name of the serialized object + Specifies the type name of the serialized object + The type of the object the formatter creates a new instance of + + + + Serializes a patch info + The + The serialized data + + + + Deserialize a patch info + The serialized data + A + + + + Compare function to sort patch priorities + The patch + Zero-based index + The priority + A standard sort integer (-1, 0, 1) + + + + Serializable patch information + + + + Prefixes as an array of + + + + Postfixes as an array of + + + + Transpilers as an array of + + + + Finalizers as an array of + + + + ILManipulators as an array of + + + + Returns if any of the patches wants debugging turned on + + + + Adds prefixes + An owner (Harmony ID) + The patch methods + + + + Adds a prefix + + + Removes prefixes + The owner of the prefixes, or * for all + + + + Adds postfixes + An owner (Harmony ID) + The patch methods + + + + Adds a postfix + + + Removes postfixes + The owner of the postfixes, or * for all + + + + Adds transpilers + An owner (Harmony ID) + The patch methods + + + + Adds a transpiler + + + Removes transpilers + The owner of the transpilers, or * for all + + + + Adds finalizers + An owner (Harmony ID) + The patch methods + + + + Adds a finalizer + + + Removes finalizers + The owner of the finalizers, or * for all + + + + Adds ilmanipulators + An owner (Harmony ID) + The patch methods + + + + Removes ilmanipulators + The owner of the ilmanipulators, or * for all + + + + Removes a patch using its method + The method of the patch to remove + + + + Gets a concatenated list of patches + The Harmony instance ID adding the new patches + The patches to add + The current patches + + + + Gets a list of patches with any from the given owner removed + The owner of the methods, or * for all + The current patches + + + + A serializable patch + + + + Zero-based index + + + + The owner (Harmony ID) + + + + The priority, see + + + + Keep this patch before the patches indicated in the list of Harmony IDs + + + + Keep this patch after the patches indicated in the list of Harmony IDs + + + + A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future + + + + Whether to wrap the patch into a general try/catch that logs the error + + + + The method of the static patch method + + + + Creates a patch + The method of the patch + Zero-based index + An owner (Harmony ID) + The priority, see + A list of Harmony IDs for patches that should run after this patch + A list of Harmony IDs for patches that should run before this patch + A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future + + + + Creates a patch + The method of the patch + Zero-based index + An owner (Harmony ID) + The priority, see + A list of Harmony IDs for patches that should run after this patch + A list of Harmony IDs for patches that should run before this patch + A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future + Whether to wrap the patch into a general try/catch that logs the error + + + + Creates a patch + The method of the patch + Zero-based index + An owner (Harmony ID) + + + Get the patch method or a DynamicMethod if original patch method is a patch factory + The original method/constructor + The method of the patch + + + + Determines whether patches are equal + The other patch + true if equal + + + + Determines how patches sort + The other patch + integer to define sort order (-1, 0, 1) + + + + Hash function + A hash code + + + + A PatchClassProcessor used to turn on a class/type into patches + + + + Creates a patch class processor by pointing out a class. Similar to PatchAll() but without searching through all classes. + The Harmony instance + The class to process (need to have at least a [HarmonyPatch] attribute if allowUnannotatedType is set to false) + + + + Creates a patch class processor by pointing out a class. Similar to PatchAll() but without searching through all classes. + The Harmony instance + The class to process (need to have at least a [HarmonyPatch] attribute if allowUnannotatedType is set to false) + If true, the type doesn't need to have any attributes present for processing + + + + Applies the patches + A list of all created replacement methods or null if patch class is not annotated + + + + A group of patches + + + + A collection of prefix + + + + A collection of postfix + + + + A collection of transpiler + + + + A collection of finalizer + + + + A collection of ILManipulator + + + + Gets all owners (Harmony IDs) or all known patches + The patch owners + + + + Creates a group of patches + An array of prefixes as + An array of postfixes as + An array of transpileres as + An array of finalizeres as + An array of ilmanipulators as + + + + Creates a group of patches + An array of prefixes as + An array of postfixes as + An array of transpileres as + An array of finalizeres as + + + + + IL manipulator to create Harmony-style patches + + + + + + Manipulates a by applying Harmony patches to it. + + Reference to the method that should be considered as original. Used to reference parameter and return types. + Collection of Harmony patches to apply. + Method body to manipulate as instance. Should contain instructions to patch. + + In most cases you will want to use to create or obtain global + patch info for the method that contains aggregated info of all Harmony instances. + + + + + + Method patcher for normal managed methods that have IL body attached to them. + Uses in order to apply hooks in a way compatible with MonoMod's own + hooking system. + + + + + + + + + + + + + + + + + + A handler for that checks if a method is a normal Managed method. + + Not used + Patch resolver arguments + + + + + A general method patcher for implementing custom Harmony patcher backends. + + + + + + Constructs a method patcher + + Original method to patch + + + + + Original method to patch. + + + + + + Prepares method body for the unpatched that simply calls + function. + + + A that contains a call to + the original method to pass to the IL manipulator. + If null, Harmony patches must be manually applied to the original via . + + + + + + Detours to the provided replacement function. If called multiple times, + is re-detoured to the new method. + + + Result of + if returned non-null. + Otherwise, this will be null, in which case you must manually generate Harmony-patched method + with . + + of the hook, if it's different from `replacement`. + + + + + Creates a copy of the original method. If not possible, creates a method that calls into the original method. + + Copy of the original method that is transpileable. If not possible, returns null. + + This method creates a pure copy of the original method that is usable with transpilers. Currently, this + method is used to generate reverse patchers. + If a purse IL copy is not possible, a best approximation should be generated + (e.g. a wrapper that calls original method). + If no best approximation is possible, this method should return null, in which case generating reverse + patchers for the method will fail. + + + + + + A method patcher that uses to patch internal calls, + methods marked with and any other managed method that CLR managed-to-native + trampolines for and which has no IL body defined. + + + + + Constructs a new instance of method patcher. + + + + + + + + + + + + + + + A handler for that checks if a method doesn't have a body + (e.g. it's icall or marked with ) and thus can be patched with + . + + Not used + Patch resolver arguments + + + + + A global manager for handling Harmony patch state. Contains information about all patched methods and all + actual instances that handle patching implementation. + + + + + + Method patcher resolve event. + + + When a method is to be patched, this resolver event is called once on the method to determine which + backend to use in order to patch the method. + To make Harmony use the specified backend, set to an + instance of the method patcher backend to use. + + + + + + Creates or gets an existing instance of that handles patching the method. + + Method to patch. + Instance of that handles patching the method. + No suitable patcher found for the method. + + + + + Gets patch info for the given target method. + + Method to get patch info for. + Current patch info of the method. + + + + + Gets or creates patch info for the given method. + + Method to get info from. + An existing or new patch info for the method containing information about the applied patches. + + + + + Gets all methods that have been patched. + + List of methods that have been patched. + + + + + Removes all method resolvers. Use with care, this removes the default ones too! + + + + + Patcher resolve event arguments. + + + + + + Original method that is to be patched. + + + + + + Method patcher to use to patch . + Set this value to specify which one to use. + + + + + A PatchProcessor handles patches on a method/constructor + + + + Creates an empty patch processor + The Harmony instance + The original method/constructor + + + + Adds a prefix + The prefix as a + A for chaining calls + + + + Adds a prefix + The prefix method + A for chaining calls + + + + Adds a postfix + The postfix as a + A for chaining calls + + + + Adds a postfix + The postfix method + A for chaining calls + + + + Adds a transpiler + The transpiler as a + A for chaining calls + + + + Adds a transpiler + The transpiler method + A for chaining calls + + + + Adds a finalizer + The finalizer as a + A for chaining calls + + + + Adds a finalizer + The finalizer method + A for chaining calls + + + + Adds an ilmanipulator + The ilmanipulator as a + A for chaining calls + + + + Adds an ilmanipulator + The ilmanipulator method + A for chaining calls + + + + Gets all patched original methods in the appdomain + An enumeration of patched method/constructor + + + + Applies all registered patches + The generated replacement method + + + + Unpatches patches of a given type and/or Harmony ID + The patch type + Harmony ID or * for any + A for chaining calls + + + + Unpatches a specific patch + The method of the patch + A for chaining calls + + + + Gets patch information on an original + The original method/constructor + The patch information as + + + + Sort patch methods by their priority rules + The original method + Patches to sort + The sorted patch methods + + + + Gets Harmony version for all active Harmony instances + [out] The current Harmony version + A dictionary containing assembly version keyed by Harmony ID + + + + Creates a new empty generator to use when reading method bodies + A new + + + + Creates a new generator matching the method/constructor to use when reading method bodies + The original method/constructor to copy method information from + A new + + + + Returns the methods unmodified list of code instructions + The original method/constructor + Optionally an existing generator that will be used to create all local variables and labels contained in the result (if not specified, an internal generator is used) + A list containing all the original + + + + Returns the methods unmodified list of code instructions + The original method/constructor + A new generator that now contains all local variables and labels contained in the result + A list containing all the original + + + + Returns the methods current list of code instructions after all existing transpilers have been applied + The original method/constructor + Apply only the first count of transpilers + Optionally an existing generator that will be used to create all local variables and labels contained in the result (if not specified, an internal generator is used) + A list of + + + + Returns the methods current list of code instructions after all existing transpilers have been applied + The original method/constructor + A new generator that now contains all local variables and labels contained in the result + Apply only the first count of transpilers + A list of + + + + A low level way to read the body of a method. Used for quick searching in methods + The original method + All instructions as opcode/operand pairs + + + + A low level way to read the body of a method. Used for quick searching in methods + The original method + An existing generator that will be used to create all local variables and labels contained in the result + All instructions as opcode/operand pairs + + + + A patch priority + + + + Patch last + + + + Patch with very low priority + + + + Patch with low priority + + + + Patch with lower than normal priority + + + + Patch with normal priority + + + + Patch with higher than normal priority + + + + Patch with high priority + + + + Patch with very high priority + + + + Patch first + + + + A reverse patcher + + + + Creates a reverse patcher + The Harmony instance + The original method/constructor + Your stand-in stub method as + + + + Applies the patch + The type of patch, see + The generated replacement method + + + + A collection of commonly used transpilers + + + + Returns an instruction to call the specified delegate + The delegate type to emit + The delegate to emit + The instruction to call the specified action + + + + A transpiler that replaces all occurrences of a given method with another one using the same signature + The enumeration of to act on + Method or constructor to search for + Method or constructor to replace with + Modified enumeration of + + + + A transpiler that alters instructions that match a predicate by calling an action + The enumeration of to act on + A predicate selecting the instructions to change + An action to apply to matching instructions + Modified enumeration of + + + + A transpiler that logs a text at the beginning of the method + The instructions to act on + The log text + Modified enumeration of + + + + A transpiler that replaces the entire body of the method with another one + The replacement method. It's up to the caller of this transpiler to make sure that the signatures match. + of the patch. This is passed via transpiler. + A collection of that contains instructions of replacement method. + The replacement method is not a managed method that contains any IL. + This transpiler has a side effect of clearing up all previous locals and previous transpilers. + Use to run this transpiler as early as possible. + + + A helper class for reflection related functions + + + + Shortcut for to simplify the use of reflections and make it work for any access level + + + + Shortcut for to simplify the use of reflections and make it work for any access level but only within the current type + + + + Enumerates all assemblies in the current app domain, excluding visual studio assemblies + An enumeration of + + + Gets a type by name. Prefers a full name with namespace but falls back to the first type matching the name otherwise + The name + A type or null if not found + + + + Gets all successfully loaded types from a given assembly + The assembly + An array of types + + This calls and returns , while catching any thrown . + If such an exception is thrown, returns the successfully loaded types (, + filtered for non-null values). + + + + + Enumerates all successfully loaded types in the current app domain, excluding visual studio assemblies + An enumeration of all in all assemblies, excluding visual studio assemblies + + + Applies a function going up the type hierarchy and stops at the first non-null result + Result type of func() + The class/type to start with + The evaluation function returning T + The first non-null result, or null if no match + + The type hierarchy of a class or value type (including struct) does NOT include implemented interfaces, + and the type hierarchy of an interface is only itself (regardless of whether that interface implements other interfaces). + The top-most type in the type hierarchy of all non-interface types (including value types) is . + + + + + Applies a function going into inner types and stops at the first non-null result + Generic type parameter + The class/type to start with + The evaluation function returning T + The first non-null result, or null if no match + + + + Gets the reflection information for a directly declared field + The class/type where the field is defined + The name of the field + A field or null when type/name is null or when the field cannot be found + + + + Gets the reflection information for a field by searching the type and all its super types + The class/type where the field is defined + The name of the field (case sensitive) + A field or null when type/name is null or when the field cannot be found + + + + Gets the reflection information for a field + The class/type where the field is declared + The zero-based index of the field inside the class definition + A field or null when type is null or when the field cannot be found + + + + Gets the reflection information for a directly declared property + The class/type where the property is declared + The name of the property (case sensitive) + A property or null when type/name is null or when the property cannot be found + + + + Gets the reflection information for the getter method of a directly declared property + The class/type where the property is declared + The name of the property (case sensitive) + A method or null when type/name is null or when the property cannot be found + + + + Gets the reflection information for the setter method of a directly declared property + The class/type where the property is declared + The name of the property (case sensitive) + A method or null when type/name is null or when the property cannot be found + + + + Gets the reflection information for a property by searching the type and all its super types + The class/type + The name + A property or null when type/name is null or when the property cannot be found + + + + Gets the reflection information for the getter method of a property by searching the type and all its super types + The class/type + The name + A method or null when type/name is null or when the property cannot be found + + + + Gets the reflection information for the setter method of a property by searching the type and all its super types + The class/type + The name + A method or null when type/name is null or when the property cannot be found + + + + Gets the reflection information for a directly declared method + The class/type where the method is declared + The name of the method (case sensitive) + Optional parameters to target a specific overload of the method + Optional list of types that define the generic version of the method + A method or null when type/name is null or when the method cannot be found + + + + Gets the reflection information for a method by searching the type and all its super types + The class/type where the method is declared + The name of the method (case sensitive) + Optional parameters to target a specific overload of the method + Optional list of types that define the generic version of the method + A method or null when type/name is null or when the method cannot be found + + + + Gets the reflection information for a method by searching the type and all its super types + The target method in the form TypeFullName:MethodName, where the type name matches a form recognized by Type.GetType like Some.Namespace.Type. + Optional parameters to target a specific overload of the method + Optional list of types that define the generic version of the method + A method or null when type/name is null or when the method cannot be found + + + + Gets the names of all method that are declared in a type + The declaring class/type + A list of method names + + + + Gets the names of all method that are declared in the type of the instance + An instance of the type to search in + A list of method names + + + + Gets the names of all fields that are declared in a type + The declaring class/type + A list of field names + + + + Gets the names of all fields that are declared in the type of the instance + An instance of the type to search in + A list of field names + + + + Gets the names of all properties that are declared in a type + The declaring class/type + A list of property names + + + + Gets the names of all properties that are declared in the type of the instance + An instance of the type to search in + A list of property names + + + + Gets the type of any class member of + A member + The class/type of this member + + + + Test if a class member is actually an concrete implementation + A member + True if the member is a declared + + + + Gets the real implementation of a class member + A member + The member itself if its declared. Otherwise the member that is actually implemented in some base type + + + + Gets the reflection information for a directly declared constructor + The class/type where the constructor is declared + Optional parameters to target a specific overload of the constructor + Optional parameters to only consider static constructors + A constructor info or null when type is null or when the constructor cannot be found + + + + Gets the reflection information for a constructor by searching the type and all its super types + The class/type where the constructor is declared + Optional parameters to target a specific overload of the method + Optional parameters to only consider static constructors + A constructor info or null when type is null or when the method cannot be found + + + + Gets reflection information for all declared constructors + The class/type where the constructors are declared + Optional parameters to only consider static constructors + A list of constructor infos + + + + Gets reflection information for all declared methods + The class/type where the methods are declared + A list of methods + + + + Gets reflection information for all declared properties + The class/type where the properties are declared + A list of properties + + + + Gets reflection information for all declared fields + The class/type where the fields are declared + A list of fields + + + + Gets the return type of a method or constructor + The method/constructor + The return type + + + + Given a type, returns the first inner type matching a recursive search by name + The class/type to start searching at + The name of the inner type (case sensitive) + The inner type or null if type/name is null or if a type with that name cannot be found + + + + Given a type, returns the first inner type matching a recursive search with a predicate + The class/type to start searching at + The predicate to search with + The inner type or null if type/predicate is null or if a type with that name cannot be found + + + + Given a type, returns the first method matching a predicate + The class/type to start searching at + The predicate to search with + The method or null if type/predicate is null or if a type with that name cannot be found + + + + Given a type, returns the first constructor matching a predicate + The class/type to start searching at + The predicate to search with + The constructor info or null if type/predicate is null or if a type with that name cannot be found + + + + Given a type, returns the first property matching a predicate + The class/type to start searching at + The predicate to search with + The property or null if type/predicate is null or if a type with that name cannot be found + + + + Returns an array containing the type of each object in the given array + An array of objects + An array of types or an empty array if parameters is null (if an object is null, the type for it will be object) + + + + Creates an array of input parameters for a given method and a given set of potential inputs + The method/constructor you are planing to call + The possible input parameters in any order + An object array matching the method signature + + + + A readable/assignable reference delegate to an instance field of a class or static field (NOT an instance field of a struct) + + An arbitrary type if the field is static; otherwise the class that defines the field, or a parent class (including ), + implemented interface, or derived class of this type + + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The runtime instance to access the field (ignored and can be omitted for static fields) + A readable/assignable reference to the field + Null instance passed to a non-static field ref delegate + + Instance of invalid type passed to a non-static field ref delegate + (this can happen if is a parent class or interface of the field's declaring type) + + + + This delegate cannot be used for instance fields of structs, since a struct instance passed to the delegate would be passed by + value and thus would be a copy that only exists within the delegate's invocation. This is fine for a readonly reference, + but makes assignment futile. Use instead. + + + Note that is not required to be the field's declaring type. It can be a parent class (including ), + implemented interface, or a derived class of the field's declaring type ("instanceOfT is FieldDeclaringType" must be possible). + Specifically, must be assignable from OR to the field's declaring type. + Technically, this allows Nullable, although Nullable is only relevant for structs, and since only static fields of structs + are allowed for this delegate, and the instance passed to such a delegate is ignored, this hardly matters. + + + Similarly, is not required to be the field's field type, unless that type is a non-enum value type. + It can be a parent class (including object) or implemented interface of the field's field type. It cannot be a derived class. + This variance is not allowed for value types, since that would require boxing/unboxing, which is not allowed for ref values. + Special case for enum types: can also be the underlying integral type of the enum type. + Specifically, for reference types, must be assignable from + the field's field type; for non-enum value types, must be exactly the field's field type; for enum types, + must be either the field's field type or the underyling integral type of that field type. + + + This delegate supports static fields, even those defined in structs, for legacy reasons. + For such static fields, is effectively ignored. + Consider using (and StaticFieldRefAccess methods that return it) instead for static fields. + + + + + + Creates a field reference delegate for an instance field of a class + The class that defines the instance field, or derived class of this type + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The name of the field + A readable/assignable delegate + + + For backwards compatibility, there is no class constraint on . + Instead, the non-value-type check is done at runtime within the method. + + + + + + Creates an instance field reference for a specific instance of a class + The class that defines the instance field, or derived class of this type + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The instance + The name of the field + A readable/assignable reference to the field + + + This method is meant for one-off access to a field's value for a single instance. + If you need to access a field's value for potentially multiple instances, use instead. + FieldRefAccess<T, F>(instance, fieldName) is functionally equivalent to FieldRefAccess<T, F>(fieldName)(instance). + + + For backwards compatibility, there is no class constraint on . + Instead, the non-value-type check is done at runtime within the method. + + + + + + Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct) + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + + The type that defines the field, or derived class of this type; must not be a struct type unless the field is static + + The name of the field + + A readable/assignable delegate with T=object + (for static fields, the instance delegate parameter is ignored) + + + + This method is meant for cases where the given type is only known at runtime and thus can't be used as a type parameter T + in e.g. . + + + This method supports static fields, even those defined in structs, for legacy reasons. + Consider using (and other overloads) instead for static fields. + + + + + + Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct) + + An arbitrary type if the field is static; otherwise the class that defines the field, or a parent class (including ), + implemented interface, or derived class of this type ("instanceOfT is FieldDeclaringType" must be possible) + + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The field + A readable/assignable delegate + + + This method is meant for cases where the field has already been obtained, avoiding the field searching cost in + e.g. . + + + This method supports static fields, even those defined in structs, for legacy reasons. + For such static fields, is effectively ignored. + Consider using (and other overloads) instead for static fields. + + + For backwards compatibility, there is no class constraint on . + Instead, the non-value-type check is done at runtime within the method. + + + + + + Creates a field reference for an instance field of a class + + The type that defines the field; or a parent class (including ), implemented interface, or derived class of this type + ("instanceOfT is FieldDeclaringType" must be possible) + + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The instance + The field + A readable/assignable reference to the field + + + This method is meant for one-off access to a field's value for a single instance and where the field has already been obtained. + If you need to access a field's value for potentially multiple instances, use instead. + FieldRefAccess<T, F>(instance, fieldInfo) is functionally equivalent to FieldRefAccess<T, F>(fieldInfo)(instance). + + + For backwards compatibility, there is no class constraint on . + Instead, the non-value-type check is done at runtime within the method. + + + + + + A readable/assignable reference delegate to an instance field of a struct + The struct that defines the instance field + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + A reference to the runtime instance to access the field + A readable/assignable reference to the field + + + + Creates a field reference delegate for an instance field of a struct + The struct that defines the instance field + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The name of the field + A readable/assignable delegate + + + + Creates an instance field reference for a specific instance of a struct + The struct that defines the instance field + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The instance + The name of the field + A readable/assignable reference to the field + + + This method is meant for one-off access to a field's value for a single instance. + If you need to access a field's value for potentially multiple instances, use instead. + StructFieldRefAccess<T, F>(ref instance, fieldName) is functionally equivalent to StructFieldRefAccess<T, F>(fieldName)(ref instance). + + + + + + Creates a field reference delegate for an instance field of a struct + The struct that defines the instance field + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The field + A readable/assignable delegate + + + This method is meant for cases where the field has already been obtained, avoiding the field searching cost in + e.g. . + + + + + + Creates a field reference for an instance field of a struct + The struct that defines the instance field + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The instance + The field + A readable/assignable reference to the field + + + This method is meant for one-off access to a field's value for a single instance and where the field has already been obtained. + If you need to access a field's value for potentially multiple instances, use instead. + StructFieldRefAccess<T, F>(ref instance, fieldInfo) is functionally equivalent to StructFieldRefAccess<T, F>(fieldInfo)(ref instance). + + + + + + A readable/assignable reference delegate to a static field + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + A readable/assignable reference to the field + + + + Creates a static field reference + The type (can be class or struct) the field is defined in + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The name of the field + A readable/assignable reference to the field + + + + Creates a static field reference + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The type (can be class or struct) the field is defined in + The name of the field + A readable/assignable reference to the field + + + + Creates a static field reference + An arbitrary type (by convention, the type the field is defined in) + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The field + A readable/assignable reference to the field + + The type parameter is only used in exception messaging and to distinguish between this method overload + and the overload (which returns a rather than a reference). + + + + + Creates a static field reference delegate + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The field + A readable/assignable delegate + + + + Creates a delegate to a given method + The delegate Type + The method to create a delegate from. + + Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate + where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound) + instance delegate where the delegate invocation always applies to the given . + + + Only applies for instance methods. If true (default) and is virtual, invocation of the delegate + calls the instance method virtually (the instance type's most-derived/overriden implementation of the method is called); + else, invocation of the delegate calls the exact specified (this is useful for calling base class methods) + Note: if false and is an interface method, an ArgumentException is thrown. + + A delegate of given to given + + + Delegate invocation is more performant and more convenient to use than + at a one-time setup cost. + + + Works for both type of static and instance methods, both open and closed (a.k.a. unbound and bound) instance methods, + and both class and struct methods. + + + + + + Creates a delegate for a given delegate definition, attributed with [] + The delegate Type, attributed with [] + + Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate + where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound) + instance delegate where the delegate invocation always applies to the given . + + A delegate of given to the method specified via [] + attributes on + + This calls with the method and virtualCall arguments + determined from the [] attributes on , + and the given (for closed instance delegates). + + + + + Returns who called the current method + The calling method/constructor (excluding the caller) + + + + Rethrows an exception while preserving its stack trace (throw statement typically clobbers existing stack traces) + The exception to rethrow + + + + True if the current runtime is based on Mono, false otherwise (.NET) + + + + True if the current runtime is .NET Framework, false otherwise (.NET Core or Mono, although latter isn't guaranteed) + + + + True if the current runtime is .NET Core, false otherwise (Mono or .NET Framework) + + + + Throws a missing member runtime exception + The type that is involved + A list of names + + + + Gets default value for a specific type + The class/type + The default value + + + + Creates an (possibly uninitialized) instance of a given type + The class/type + The new instance + + + + Creates an (possibly uninitialized) instance of a given type + The class/type + The new instance + + + + + A cache for the or similar Add methods for different types. + + + + Makes a deep copy of any object + The type of the instance that should be created; for legacy reasons, this must be a class or interface + The original object + A copy of the original object but of type T + + + + Makes a deep copy of any object + The type of the instance that should be created + The original object + [out] The copy of the original object + Optional value transformation function (taking a field name and src/dst instances) + The optional path root to start with + + + + Makes a deep copy of any object + The original object + The type of the instance that should be created + Optional value transformation function (taking a field name and src/dst instances) + The optional path root to start with + The copy of the original object + + + + Tests if a type is a struct + The type + True if the type is a struct + + + + Tests if a type is a class + The type + True if the type is a class + + + + Tests if a type is a value type + The type + True if the type is a value type + + + + Tests if a type is an integer type + The type + True if the type represents some integer + + + + Tests if a type is a floating point type + The type + True if the type represents some floating point + + + + Tests if a type is a numerical type + The type + True if the type represents some number + + + + Tests if a type is void + The type + True if the type is void + + + + Test whether an instance is of a nullable type + Type of instance + An instance to test + True if instance is of nullable type, false if not + + + + Tests whether a type or member is static, as defined in C# + The type or member + True if the type or member is static + + + + Tests whether a type is static, as defined in C# + The type + True if the type is static + + + + Tests whether a property is static, as defined in C# + The property + True if the property is static + + + + Tests whether an event is static, as defined in C# + The event + True if the event is static + + + + Calculates a combined hash code for an enumeration of objects + The objects + The hash code + + + + A CodeInstruction match + + + The name of the match + + + The matched opcodes + + + The matched operands + + + The matched labels + + + The matched blocks + + + The jumps from the match + + + The jumps to the match + + + The match predicate + + + Creates a code match + The optional opcode + The optional operand + The optional name + + + + Creates a code match + The CodeInstruction + An optional name + + + + Creates a code match + The predicate + An optional name + + + + Returns a string that represents the match + A string representation + + + + A CodeInstruction matcher + + + The current position + The index or -1 if out of bounds + + + + Gets the number of code instructions in this matcher + The count + + + + Checks whether the position of this CodeMatcher is within bounds + True if this CodeMatcher is valid + + + + Checks whether the position of this CodeMatcher is outside its bounds + True if this CodeMatcher is invalid + + + + Gets the remaining code instructions + The remaining count + + + + Gets the opcode at the current position + The opcode + + + + Gets the operand at the current position + The operand + + + + Gets the labels at the current position + The labels + + + + Gets the exception blocks at the current position + The blocks + + + + Creates an empty code matcher + + + Creates a code matcher from an enumeration of instructions + The instructions (transpiler argument) + An optional IL generator + + + + Makes a clone of this instruction matcher + A copy of this matcher + + + + Gets instructions at the current position + The instruction + + + + Gets instructions at the current position with offset + The offset + The instruction + + + + Gets all instructions + A list of instructions + + + + Gets all instructions as an enumeration + A list of instructions + + + + Gets some instructions counting from current position + Number of instructions + A list of instructions + + + + Gets all instructions within a range + The start index + The end index + A list of instructions + + + + Gets all instructions within a range (relative to current position) + The start offset + The end offset + A list of instructions + + + + Gets a list of all distinct labels + The instructions (transpiler argument) + A list of Labels + + + + Reports a failure + The method involved + The logger + True if current position is invalid and error was logged + + + + Sets an instruction at current position + The instruction to set + The same code matcher + + + + Sets instruction at current position and advances + The instruction + The same code matcher + + + + Sets opcode and operand at current position + The opcode + The operand + The same code matcher + + + + Sets opcode and operand at current position and advances + The opcode + The operand + The same code matcher + + + + Sets opcode at current position and advances + The opcode + The same code matcher + + + + Sets operand at current position and advances + The operand + The same code matcher + + + + Creates a label at current position + [out] The label + The same code matcher + + + + Creates a label at a position + The position + [out] The new label + The same code matcher + + + + Adds an enumeration of labels to current position + The labels + The same code matcher + + + + Adds an enumeration of labels at a position + The position + The labels + The same code matcher + + + + Sets jump to + Branch instruction + Destination for the jump + [out] The created label + The same code matcher + + + + Inserts some instructions + The instructions + The same code matcher + + + + Inserts an enumeration of instructions + The instructions + The same code matcher + + + + Inserts a branch + The branch opcode + Branch destination + The same code matcher + + + + Inserts some instructions and advances the position + The instructions + The same code matcher + + + + Inserts an enumeration of instructions and advances the position + The instructions + The same code matcher + + + + Inserts a branch and advances the position + The branch opcode + Branch destination + The same code matcher + + + + Removes current instruction + The same code matcher + + + + Removes some instruction fro current position by count + Number of instructions + The same code matcher + + + + Removes the instructions in a range + The start + The end + The same code matcher + + + + Removes the instructions in a offset range + The start offset + The end offset + The same code matcher + + + + Advances the current position + The offset + The same code matcher + + + + Moves the current position to the start + The same code matcher + + + + Moves the current position to the end + The same code matcher + + + + Searches forward with a predicate and advances position + The predicate + The same code matcher + + + + Searches backwards with a predicate and reverses position + The predicate + The same code matcher + + + + Matches forward and advances position + True to set position to end of match, false to set it to the beginning of the match + Some code matches + The same code matcher + + + + Matches backwards and reverses position + True to set position to end of match, false to set it to the beginning of the match + Some code matches + The same code matcher + + + + Repeats a match action until boundaries are met + The match action + An optional action that is executed when no match is found + The same code matcher + + + + Gets a match by its name + The match name + An instruction + + + + General extensions for common cases + + + + Joins an enumeration with a value converter and a delimiter to a string + The inner type of the enumeration + The enumeration + An optional value converter (from T to string) + An optional delimiter + The values joined into a string + + + + Converts an array of types (for example methods arguments) into a human readable form + The array of types + A human readable description including brackets + + + + A full description of a type + The type + A human readable description + + + + A a full description of a method or a constructor without assembly details but with generics + The method/constructor + A human readable description + + + + A helper converting parameter infos to types + The array of parameter infos + An array of types + + + + A helper to access a value via key from a dictionary + The key type + The value type + The dictionary + The key + The value for the key or the default value (of T) if that key does not exist + + + + A helper to access a value via key from a dictionary with extra casting + The value type + The dictionary + The key + The value for the key or the default value (of T) if that key does not exist or cannot be cast to T + + + + Escapes Unicode and ASCII non printable characters + The string to convert + The string to convert + A string literal surrounded by + + + + Extensions for + + + + Shortcut for testing whether the operand is equal to a non-null value + The + The value + True if the operand has the same type and is equal to the value + + + + Shortcut for testing whether the operand is equal to a non-null value + The + The value + True if the operand is equal to the value + This is an optimized version of for + + + + Shortcut for code.opcode == opcode && code.OperandIs(operand) + The + The + The operand value + True if the opcode is equal to the given opcode and the operand has the same type and is equal to the given operand + + + + Shortcut for code.opcode == opcode && code.OperandIs(operand) + The + The + The operand value + True if the opcode is equal to the given opcode and the operand is equal to the given operand + This is an optimized version of for + + + + Tests for any form of Ldarg* + The + The (optional) index + True if it matches one of the variations + + + + Tests for Ldarga/Ldarga_S + The + The (optional) index + True if it matches one of the variations + + + + Tests for Starg/Starg_S + The + The (optional) index + True if it matches one of the variations + + + + Tests for any form of Ldloc* + The + The optional local variable + True if it matches one of the variations + + + + Tests for any form of Stloc* + The + The optional local variable + True if it matches one of the variations + + + + Tests if the code instruction branches + The + The label if the instruction is a branch operation or if not + True if the instruction branches + + + + Tests if the code instruction calls the method/constructor + The + The method + True if the instruction calls the method or constructor + + + + Tests if the code instruction loads a constant + The + True if the instruction loads a constant + + + + Tests if the code instruction loads an integer constant + The + The integer constant + True if the instruction loads the constant + + + + Tests if the code instruction loads a floating point constant + The + The floating point constant + True if the instruction loads the constant + + + + Tests if the code instruction loads an enum constant + The + The enum + True if the instruction loads the constant + + + + Tests if the code instruction loads a field + The + The field + Set to true if the address of the field is loaded + True if the instruction loads the field + + + + Tests if the code instruction stores a field + The + The field + True if the instruction stores this field + + + + Adds labels to the code instruction and return it + The + One or several to add + The same code instruction + + + Adds labels to the code instruction and return it + The + An enumeration of + The same code instruction + + + Extracts all labels from the code instruction and returns them + The + A list of + + + Moves all labels from the code instruction to a different one + The to move the labels from + The to move the labels to + The code instruction labels were moved from (now empty) + + + Moves all labels from a different code instruction to the current one + The to move the labels from + The to move the labels to + The code instruction that received the labels + + + Adds ExceptionBlocks to the code instruction and return it + The + One or several to add + The same code instruction + + + Adds ExceptionBlocks to the code instruction and return it + The + An enumeration of + The same code instruction + + + Extracts all ExceptionBlocks from the code instruction and returns them + The + A list of + + + Moves all ExceptionBlocks from the code instruction to a different one + The to move the ExceptionBlocks from + The to move the ExceptionBlocks to + The code instruction blocks were moved from (now empty) + + + Moves all ExceptionBlocks from a different code instruction to the current one + The to move the ExceptionBlocks from + The to move the ExceptionBlocks to + The code instruction that received the blocks + + + General extensions for collections + + + + A simple way to execute code for every element in a collection + The inner type of the collection + The collection + The action to execute + + + + A simple way to execute code for elements in a collection matching a condition + The inner type of the collection + The collection + The predicate + The action to execute + + + + A helper to add an item to a collection + The inner type of the collection + The collection + The item to add + The collection containing the item + + + + A helper to add an item to an array + The inner type of the collection + The array + The item to add + The array containing the item + + + + A helper to add items to an array + The inner type of the collection + The array + The items to add + The array containing the items + + + + General extensions for collections + + + + Tests a class member if it has an IL method body (external methods for example don't have a body) + The member to test + Returns true if the member has an IL body or false if not + + + A file log for debugging + + + + Full pathname of the log file, defaults to a file called harmony.log.txt on your Desktop + + + + The indent character. The default is tab + + + + The current indent level + + + + Changes the indentation level + The value to add to the indentation level + + + + Log a string in a buffered way. Use this method only if you are sure that FlushBuffer will be called + or else logging information is incomplete in case of a crash + The string to log + + + + Logs a list of string in a buffered way. Use this method only if you are sure that FlushBuffer will be called + or else logging information is incomplete in case of a crash + A list of strings to log (they will not be re-indented) + + + + Returns the log buffer and optionally empties it + True to empty the buffer + The buffer. + + + + Replaces the buffer with new lines + The lines to store + + + + Flushes the log buffer to disk (use in combination with LogBuffered) + + + + Log a string directly to disk. Slower method that prevents missing information in case of a crash + The string to log. + + + + Resets and deletes the log + + + + Logs some bytes as hex values + The pointer to some memory + The length of bytes to log + + + + + Default Harmony logger that writes to a file + + + + + Whether or not to enable writing the log. + + + + + Text writer to write the logs to. If not set, defaults to a file log. + + + + + File path of the log. + + + + + Main logger class that exposes log events. + + + + + A single log event that represents a single log message. + + + + + Log channel of the message. + + + + + The log message. + + + + + Log channel for the messages. + + + + + No channels (or an empty channel). + + + + + Basic information. + + + + + Full IL dumps of the generated dynamic methods. + + + + + Channel for warnings. + + + + + Channel for errors. + + + + + Additional debug information that is related to patching + + + + + All channels. + + + + + Filter for which channels should be listened to. + If the channel is in the filter, all log messages from that channel get propagated into event. + + + + + Event fired on any incoming message that passes the channel filter. + + + + + Pretty print a full type name. + + The . + The pretty printed full type name. + + + + A helper class to retrieve reflection info for non-private methods + + + + Given a lambda expression that calls a method, returns the method info + The lambda expression using the method + The method in the lambda expression + + + + Given a lambda expression that calls a method, returns the method info + The generic type + The lambda expression using the method + The method in the lambda expression + + + + Given a lambda expression that calls a method, returns the method info + The generic type + The generic result type + The lambda expression using the method + The method in the lambda expression + + + + Given a lambda expression that calls a method, returns the method info + The lambda expression using the method + The method in the lambda expression + + + + A reflection helper to read and write private elements + The result type defined by GetValue() + + + + Creates a traverse instance from an existing instance + The existing instance + + + + Gets/Sets the current value + The value to read or write + + + + A reflection helper to read and write private elements + + + + Creates a new traverse instance from a class/type + The class/type + A instance + + + + Creates a new traverse instance from a class T + The class + A instance + + + + Creates a new traverse instance from an instance + The object + A instance + + + + Creates a new traverse instance from a named type + The type name, for format see + A instance + + + + Creates a new and empty traverse instance + + + + Creates a new traverse instance from a class/type + The class/type + + + + Creates a new traverse instance from an instance + The object + + + + Gets the current value + The value + + + + Gets the current value + The type of the value + The value + + + + Invokes the current method with arguments and returns the result + The method arguments + The value returned by the method + + + + Invokes the current method with arguments and returns the result + The type of the value + The method arguments + The value returned by the method + + + + Sets a value of the current field or property + The value + The same traverse instance + + + + Gets the type of the current field or property + The type + + + + Moves the current traverse instance to a inner type + The type name + A traverse instance + + + + Moves the current traverse instance to a field + The type name + A traverse instance + + + + Moves the current traverse instance to a field + The type of the field + The type name + A traverse instance + + + + Gets all fields of the current type + A list of field names + + + + Moves the current traverse instance to a property + The type name + Optional property index + A traverse instance + + + + Moves the current traverse instance to a field + The type of the property + The type name + Optional property index + A traverse instance + + + + Gets all properties of the current type + A list of property names + + + + Moves the current traverse instance to a method + The name of the method + The arguments defining the argument types of the method overload + A traverse instance + + + + Moves the current traverse instance to a method + The name of the method + The argument types of the method + The arguments for the method + A traverse instance + + + + Gets all methods of the current type + A list of method names + + + + Checks if the current traverse instance is for a field + True if its a field + + + + Checks if the current traverse instance is for a property + True if its a property + + + + Checks if the current traverse instance is for a method + True if its a method + + + + Checks if the current traverse instance is for a type + True if its a type + + + + Iterates over all fields of the current type and executes a traverse action + Original object + The action receiving a instance for each field + + + + Iterates over all fields of the current type and executes a traverse action + Original object + Target object + The action receiving a pair of instances for each field pair + + + + Iterates over all fields of the current type and executes a traverse action + Original object + Target object + The action receiving a dot path representing the field pair and the instances + + + + Iterates over all properties of the current type and executes a traverse action + Original object + The action receiving a instance for each property + + + + Iterates over all properties of the current type and executes a traverse action + Original object + Target object + The action receiving a pair of instances for each property pair + + + + Iterates over all properties of the current type and executes a traverse action + Original object + Target object + The action receiving a dot path representing the property pair and the instances + + + + A default field action that copies fields to fields + + + + Returns a string that represents the current traverse + A string representation + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will not be reported as unused (as well as by other usage inspections). + + + + + Can be applied to attributes, type parameters, and parameters of a type assignable from . + When applied to an attribute, the decorated attribute behaves the same as . + When applied to a type parameter or to a parameter of type , indicates that the corresponding type + is used implicitly. + + + + + Specify the details of implicitly used symbol when it is marked + with or . + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specify what is considered to be used implicitly when marked + with or . + + + + Members of entity marked with attribute are considered used. + + + Inherited entities are considered used. + + + Entity marked with attribute and all its members considered used. + + + diff --git a/SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/AutosortLockersSML.dll b/SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/AutosortLockersSML.dll new file mode 100644 index 0000000000000000000000000000000000000000..49121baf459bd12fe24a0dfc16db12861eabfa04 GIT binary patch literal 79360 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/Unity.TextMeshPro.dll b/SubnauticaModSystem/AutosortLockers/AutosortLockersSML/BZ/Unity.TextMeshPro.dll new file mode 100644 index 0000000000000000000000000000000000000000..62f78c180719703410857f0d5e39837d35c37c1a GIT binary patch literal 368128 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 z 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
    tE+n_*u`b#SCrc?!680T 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/AutosortTarget.cs b/SubnauticaModSystem/AutosortLockers/AutosortTarget.cs index 35cdd00..050bbc6 100644 --- a/SubnauticaModSystem/AutosortLockers/AutosortTarget.cs +++ b/SubnauticaModSystem/AutosortLockers/AutosortTarget.cs @@ -4,14 +4,12 @@ using Common.Mod; using Common.Utility; using SMLHelper.V2.Assets; -using SMLHelper.V2.Crafting; using UnityEngine; using UnityEngine.UI; -using UnityEngine.EventSystems; using UWE; -#if SUBNAUTICA -using RecipeData = SMLHelper.V2.Crafting.RecipeData; -#elif BELOWZERO +using SMLHelper.V2.Crafting; +#if SN +#elif BZ using TMPro; #endif @@ -30,7 +28,7 @@ public class AutosortTarget : MonoBehaviour private Coroutine plusCoroutine; private SaveDataEntry saveData; -#if SUBNAUTICA +#if SN [SerializeField] private Text textPrefab; [SerializeField] @@ -41,7 +39,7 @@ public class AutosortTarget : MonoBehaviour private Text plus; [SerializeField] private Text quantityText; -#elif BELOWZERO +#elif BZ [SerializeField] private TextMeshProUGUI textPrefab; [SerializeField] @@ -123,7 +121,6 @@ private bool ContainsFilter(AutosorterFilter filter) return true; } } - return false; } @@ -162,9 +159,9 @@ private void UpdateText() if (currentFilters == null || currentFilters.Count == 0) { text.text = "[Any]"; -#if SUBNAUTICA +#if SN text.alignment = TextAnchor.MiddleCenter; -#elif BELOWZERO +#elif BZ text.alignment = TextAlignmentOptions.Center; #endif } @@ -176,17 +173,17 @@ private void UpdateText() if (currentFilters.Count == 1) { -#if SUBNAUTICA +#if SN text.alignment = TextAnchor.MiddleCenter; -#elif BELOWZERO +#elif BZ text.alignment = TextAlignmentOptions.Center; #endif } else { -#if SUBNAUTICA +#if SN text.alignment = TextAnchor.MiddleLeft; -#elif BELOWZERO +#elif BZ text.alignment = TextAlignmentOptions.Left; #endif } @@ -266,7 +263,6 @@ private bool IsTypeAllowedByCategoryFilter(TechType techType) return true; } } - return false; } @@ -279,7 +275,6 @@ private bool IsTypeAllowedByItemFilter(TechType techType) return true; } } - return false; } @@ -292,7 +287,6 @@ private bool IsTypeAllowed(TechType techType) return true; } } - return false; } @@ -331,7 +325,6 @@ private void Update() { Mod.Save(); } - UpdateQuantityText(); } @@ -436,6 +429,7 @@ private IEnumerator FinalSetup() IPrefabRequest request = PrefabDatabase.GetPrefabForFilenameAsync("Submarine/Build/SmallLocker.prefab"); yield return request; request.TryGetPrefab(out GameObject prefab); + lockerPrefab = prefab; bPrefabsLoaded = true; @@ -450,7 +444,6 @@ private void InitializeFromSaveData() Logger.Log("Object Initialize from Save Data"); label.text = saveData.Label; label.color = saveData.LabelColor.ToColor(); - DestroyImmediate(label); icon.color = saveData.IconColor.ToColor(); configureButtonImage.color = saveData.ButtonsColor.ToColor(); customizeButtonImage.color = saveData.ButtonsColor.ToColor(); @@ -598,6 +591,42 @@ public AutosortTargetBuildable() public override TechCategory CategoryForPDA => TechCategory.InteriorModule; +#if SN + public override GameObject GetGameObject() + { + GameObject prefab = GetPrefab(TechType.SmallLocker); + + StorageContainer container = prefab.GetComponent(); + container.width = Mod.config.ReceptacleWidth; + container.height = Mod.config.ReceptacleHeight; + container.container.Resize(Mod.config.ReceptacleWidth, Mod.config.ReceptacleHeight); + + return prefab; + } + + protected override TechData GetBlueprintRecipe() + { + return new TechData + { + craftAmount = 1, + Ingredients = Mod.config.EasyBuild + ? new List + { + new Ingredient(TechType.Titanium, 2) + } + : new List + { + new Ingredient(TechType.Titanium, 2), + new Ingredient(TechType.Magnetite, 1) + } + }; + } + + protected override Atlas.Sprite GetItemSprite() + { + return SMLHelper.V2.Utility.ImageUtils.LoadSpriteFromFile(Mod.GetAssetPath("AutosortTarget.png")); + } +#elif BZ public override IEnumerator GetGameObjectAsync(IOut gameObject) { TaskResult result = new TaskResult(); @@ -637,6 +666,7 @@ protected override Sprite GetItemSprite() { return SMLHelper.V2.Utility.ImageUtils.LoadSpriteFromFile(Mod.GetAssetPath("AutosortTarget.png")); } +#endif } internal class AutosortStandingTargetBuildable : Buildable @@ -652,6 +682,44 @@ public AutosortStandingTargetBuildable() public override TechCategory CategoryForPDA => TechCategory.InteriorModule; +#if SN + public override GameObject GetGameObject() + { + var prefab = GetPrefab(TechType.Locker); + + var container = prefab.GetComponent(); + container.width = Mod.config.StandingReceptacleWidth; + container.height = Mod.config.StandingReceptacleHeight; + container.container.Resize(Mod.config.StandingReceptacleWidth, Mod.config.StandingReceptacleHeight); + + return prefab; + } + + protected override TechData GetBlueprintRecipe() + { + return new TechData + { + craftAmount = 1, + Ingredients = Mod.config.EasyBuild + ? new List + { + new Ingredient(TechType.Titanium, 2), + new Ingredient(TechType.Quartz, 1) + } + : new List + { + new Ingredient(TechType.Titanium, 2), + new Ingredient(TechType.Quartz, 1), + new Ingredient(TechType.Magnetite, 1) + } + }; + } + + protected override Atlas.Sprite GetItemSprite() + { + return SMLHelper.V2.Utility.ImageUtils.LoadSpriteFromFile(Mod.GetAssetPath("AutosortTargetStanding.png")); + } +#elif BZ public override IEnumerator GetGameObjectAsync(IOut gameObject) { TaskResult result = new TaskResult(); @@ -692,8 +760,8 @@ protected override Sprite GetItemSprite() { return SMLHelper.V2.Utility.ImageUtils.LoadSpriteFromFile(Mod.GetAssetPath("AutosortTargetStanding.png")); } +#endif } - /*__________________________________________________________________________________________________________*/ public static void AddBuildable() @@ -705,6 +773,24 @@ public static void AddBuildable() sorterStandingTarget.Patch(); } +#if SN + public static GameObject GetPrefab(TechType basePrefab) + { + GameObject originalPrefab = CraftData.GetPrefabForTechType(basePrefab); + GameObject prefab = GameObject.Instantiate(originalPrefab); + + var meshRenderers = prefab.GetComponentsInChildren(); + foreach (var meshRenderer in meshRenderers) + { + meshRenderer.material.color = new Color(0.3f, 0.3f, 0.3f); + } + + var autosortTarget = prefab.AddComponent(); + + var smallLockerPrefab = CraftData.GetPrefabForTechType(TechType.SmallLocker); + autosortTarget.textPrefab = GameObject.Instantiate(smallLockerPrefab.GetComponentInChildren()); + +#elif BZ public static IEnumerator GetPrefabAsync(TechType basePrefab, IOut gameObject) { CoroutineTask task = CraftData.GetPrefabForTechTypeAsync(basePrefab); @@ -725,16 +811,11 @@ public static IEnumerator GetPrefabAsync(TechType basePrefab, IOut g yield return task; var smallLockerPrefab = GameObject.Instantiate(task.GetResult()); -#if SUBNAUTICA - autosortTarget.textPrefab = GameObject.Instantiate(smallLockerPrefab.GetComponentInChildren()); -#elif BELOWZERO autosortTarget.textPrefab = GameObject.Instantiate(smallLockerPrefab.GetComponentInChildren()); #endif // Destroys the lable on the small locker var label = prefab.FindChild("Label"); DestroyImmediate(label); - label = prefab.FindChild("Locker"); - DestroyImmediate(label); var canvas = LockerPrefabShared.CreateCanvas(prefab.transform); if (basePrefab == TechType.Locker) @@ -778,7 +859,6 @@ public static IEnumerator GetPrefabAsync(TechType basePrefab, IOut g autosortTarget.text.gameObject.SetActive(false); // The container filters ?? autosortTarget.plus = LockerPrefabShared.CreateText(autosortTarget.background.transform, autosortTarget.textPrefab, autosortTarget.textPrefab.color, 0, 12, "+ - Doesn't display", prefab.name); - // Pos of the color picker autosortTarget.plus.color = new Color(autosortTarget.textPrefab.color.r, autosortTarget.textPrefab.color.g, autosortTarget.textPrefab.color.g, 0); // Pos of the item count on the locker @@ -799,7 +879,11 @@ public static IEnumerator GetPrefabAsync(TechType basePrefab, IOut g autosortTarget.customizeButton = ConfigureButton.Create(autosortTarget.background.transform, autosortTarget.textPrefab.color, 20, buttonPos); autosortTarget.customizeButtonImage = autosortTarget.customizeButton.GetComponent(); +#if BZ gameObject.Set(prefab); +#elif SN + return prefab; +#endif } } } \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/AutosortTypePicker.cs b/SubnauticaModSystem/AutosortLockers/AutosortTypePicker.cs index 2d3efc9..4c08b94 100644 --- a/SubnauticaModSystem/AutosortLockers/AutosortTypePicker.cs +++ b/SubnauticaModSystem/AutosortLockers/AutosortTypePicker.cs @@ -3,7 +3,7 @@ using System.Linq; using Common.Mod; using Common.Utility; -#if BELOWZERO +#if BZ using TMPro; #endif using UnityEngine; @@ -32,10 +32,10 @@ private enum Mode { Categories, Items } private Image[] underlines = new Image[2]; [SerializeField] private PickerCloseButton closeButton; -#if SUBNAUTICA +#if SN [SerializeField] private Text pageText; -#elif BELOWZERO +#elif BZ [SerializeField] private TextMeshProUGUI pageText; #endif @@ -172,9 +172,9 @@ private void SetCurrentPage(int page) } public static AutosortTypePicker Create(Transform parent, -#if SUBNAUTICA +#if SN Text textPrefab -#elif BELOWZERO +#elif BZ TextMeshProUGUI textPrefab #endif ) @@ -186,18 +186,18 @@ TextMeshProUGUI textPrefab var t = picker.transform; t.localEulerAngles = new Vector3(0, 180, 0); - //t.localPosition = new Vector3(0, 0, 0.4f); + t.localPosition = new Vector3(0, 0, 0.4f); picker.background = LockerPrefabShared.CreateBackground(picker.transform, picker.name); - //picker.background.color = new Color(0, 0, 0, 1); - //picker.background.type = Image.Type.Simple; + picker.background.color = new Color(0, 0, 0, 1); + picker.background.type = Image.Type.Simple; // Set the size of the Item Picker background - first number width, second height - RectTransformExtensions.SetSize(picker.background.rectTransform, 250, 295); + RectTransformExtensions.SetSize(picker.background.rectTransform, 260, 295); // Position the Item Picker on the locker if (parent.name.Contains("Standing(Clone)")) { - picker.background.rectTransform.anchoredPosition = new Vector2(0.2f, 0.0f); + picker.background.rectTransform.anchoredPosition = new Vector2(0.13f, 0.0f); } else { @@ -208,24 +208,24 @@ TextMeshProUGUI textPrefab // Top position of the Item Picker list, but not the Item and Category buttons int startY = 88; // Offset from the center of Selected and Available Item columns in the picker - int centOff = 58; + int centOff = 61; // The horizontal offset of the Current Filters, Category, and Items // and the Close and Page buttons int horzOff = 120; - picker.underlines[0] = CreateUnderline(picker.background.transform, centOff); - picker.underlines[1] = CreateUnderline(picker.background.transform, -centOff); + picker.underlines[0] = CreateUnderline(picker.background.transform, 60); + picker.underlines[1] = CreateUnderline(picker.background.transform, -63); // The first number is the vertical pos of the Item button, the second number is the font size - var currentText = LockerPrefabShared.CreateText(picker.background.transform, textPrefab, Color.white, horzOff, 12, "Current Filters", "Picker"); + var currentText = LockerPrefabShared.CreateText(picker.background.transform, textPrefab, Color.white, 120, 12, "Current Filters", "Picker"); // The vertical position of the "Current Filters" text in the picker is set by the second number - currentText.rectTransform.anchoredPosition = new Vector2(-33, 27); - // The width of the Categories button is the last number, x - is the horizontal pos, the next number is the vertical pos - picker.categoriesTabButton = CreatePickerButton(picker.background.transform, 35, horzOff, textPrefab, picker.OnCategoriesButtonClick, 65); + currentText.rectTransform.anchoredPosition = new Vector2(-45, 28); + // The width of the Categories button is the last number, horzOff is the horizontal pos, the next number is the vertical pos + picker.categoriesTabButton = CreatePickerButton(picker.background.transform, 38, horzOff, textPrefab, picker.OnCategoriesButtonClick, 67); // Prefix with space until I can find the button instance to override picker.categoriesTabButton.Override(" Categories", true); // The width of the Items button is the last number, x - is the horizontal pos, the next number is the vertical pos - picker.itemsTabButton = CreatePickerButton(picker.background.transform, 92, horzOff, textPrefab, picker.OnItemsButtonClick, 40); + picker.itemsTabButton = CreatePickerButton(picker.background.transform, 96, horzOff, textPrefab, picker.OnItemsButtonClick, 42); // Prefix with space until I can find the button instance to override picker.itemsTabButton.Override(" Items", false); // The smaller number is the font size, the vertical position is overwritten below @@ -266,7 +266,7 @@ private static Image CreateUnderline(Transform parent, int x) { var underline = new GameObject("Underline", typeof(RectTransform)).AddComponent(); RectTransformExtensions.SetParams(underline.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); - RectTransformExtensions.SetSize(underline.rectTransform, 272 / 3, 78 / 3); + RectTransformExtensions.SetSize(underline.rectTransform, 90.6f, 26.0f); underline.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("TitleUnderline.png")); // Vertical position of Underline underline.rectTransform.anchoredPosition = new Vector2(x, 115); @@ -289,13 +289,13 @@ public static PickerCloseButton AddCloseButton(Transform parent) } public static FilterPickerButton CreatePickerButton(Transform parent, int x, int y, -#if SUBNAUTICA +#if SN Text textPrefab, -#elif BELOWZERO +#elif BZ TextMeshProUGUI textPrefab, #endif // The width of the picker button is set here - Action action, int width = 110) + Action action, int width = 116) { var button = FilterPickerButton.Create(parent, textPrefab, action, width); diff --git a/SubnauticaModSystem/AutosortLockers/AutosorterCategories.cs b/SubnauticaModSystem/AutosortLockers/AutosorterCategories.cs index ff33739..8fa832b 100644 --- a/SubnauticaModSystem/AutosortLockers/AutosorterCategories.cs +++ b/SubnauticaModSystem/AutosortLockers/AutosorterCategories.cs @@ -1,6 +1,6 @@ -#if SUBNAUTICA -using Newtonsoft.Json; -#elif BELOWZERO +#if SN +using Oculus.Newtonsoft.Json; +#elif BZ using Newtonsoft.Json; #endif using System; diff --git a/SubnauticaModSystem/AutosortLockers/BZ/AutosortLockersSML.dll b/SubnauticaModSystem/AutosortLockers/BZ/AutosortLockersSML.dll new file mode 100644 index 0000000000000000000000000000000000000000..30262597a57f84567c1b0c9391cbe54ee7b96393 GIT binary patch literal 79360 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 z zf+{(m9Z`YUj08pHRPyYju@xALCSh-kC;#vIIB?6mPm8%XEYwbcDY-ooGABcqrmE({|u^~1ga05YIfU?(1S0Ux++0BDZ&7| z^DtIRw%I6HH}UYb*%-7CgX<>}#2`w)&QOY7+Kcuc-BIpSl+GykS^6m#lQd|yyGU7- z{IIC&rqW5jKAlE!uSaJ&E#CBodDFYVn_lA4V~}X}Xh$;HAu0;`l~FW}oY(*#$cs0) z&yhS}V+qd_gbgzZT)5{yl?!~=)tD5gY5;qv74GO=Z#KRM^2#O%iE>37K%Y;aL3 z=+m*zU_^~~Ef7{^hN&UjY}tq)1mo>Bw)8O+%O4wCYlA>B3wkC~pF;iILc!we@BDO? z&4egJP?u)>CK)3W(QN(+tpPR*814X>APQk{5r|A}X~9f~oV9A@55|`jtJkVrnqdos zCrpA7KeiwcL!g`7k`rvPe<$0osP{f^3EgbrnLgjLooQMR8cdVc#ly>JSloxgw+klb6M0Ox)xAKQP3>HHPc;QS3V zDl`!#Lp?lDei2&=vh9(4-{2aktbWoS*a;$A=k%92OAOIVx?ux#Ua4+0gO1?J7C$(inJ?><}o znjAOG0;?^Ap|MZtQI?lXXK++VVx-g=u+C^QhnbwwR9#UyApw@OPwdo}F>u^5yc(f7 zyt9Tc^k=HCwnBLN^W@4XzlN+n%xuKdT~Y1}oKN4_3^Q%86_6<=o*L4igXTwlSsU~j z4F#_toDCmGveZK%5^&;p5g^h{D;o8^Y`-y|_4>X;F2BIc3m+MPJ{wCPwWfI-mb}Ww zP}`QDZHJjrZ5MMy8l5Ej&c;TyU99+pi|c`wRKb>z0HbXTR7?sHqDH8pfVh~)3`MSk zEdlB8$@(+$3q{L@tBzv6ZMa=Vo{pR7L(!CUBafPPS#VnZxVTwF zhVVBp1ClV#(u629QB8#dxWUoFCqNG33ur|}i#8*^Y*V3xcUfY@ zSz?6}-id&bp9!o`#=8&+uft=Yyyu+M23X)5?l}y>HTh^!90`g3G|GeV7 zzXY~l-Z65O$)?}(&Ql_HDvJvIyrocqpEv&%`2F|!PNaNaG{h`yhrZ*c(lOBJ`=tE3 zd-TFc%m>}HE;7WpE%alXg1$r}OHCkqEJg};fDuECEArQ9i$e)J>cN}Xm;kZ2?L5XG zcP-*XaX5qREI6c&nD(dTuQ8bdvKRu=ukC3H$g0W)tW5zI8C>*hwEd1gfER5T-2_WV zGQm(lOdi9OlLj!}vw}@C2=AQh_Hrs;$hPgA97-wouq<`tPb~e&Jf-6faB9bm*Mk9hT4kA6{p^lP-;@{}LJ z(&dL~aeXk=MMD3UE;+*nwe>&BZ@vZ0d@E+E@nzB zdY6pe`7;`&bjtiXpC`*sbw6B2gLqDGu$dGCK6frtiba-xMx8t1JJW`2$z~2YP73pF zdnlobf%jqu+jbD6RI@$lsnnK~AlWdo;WY9sUL)UFp4b`;ZpP9snFT!|Lw~XkBMk-A zA2`G?zc$iW@o5p~;ZsZMJMmN0?RM(WQbE-16p#UE>8AycAbOi_IW5)vr5{H;9%-5? z%131Xtg7mFROP4Tw%L;HldBvv8`(0ckeqnoOfc%%C_X{?t-`owTL(_Cv0V@_=0Tzc z{?i@}&P~L9_&*B&(Rc+t%}n#ljC~*xbmv}Oytm;ZaBv2Q;#534h?IG~5s#4n(b0pt7vDwggSP_pEl#VF{Mf&Szk0jE>ik#5x44Uu;C zkV*CTh++?w2Y-)hG6a`KOMj2*K2@TWN3>5>X^$Fys)WC)yZls@@~G*js+32Jy;cyG z_|bCUP(v44JA-nQ#WUFOp|N0lAC$tgt(kD7h18kJ_87<)zjz;Ou)V3lmV{b{@x<%A zW&62?a{LF+i-;9$aRgbSvQ~o`X*X15F+%~SsKLKS#-mX=b1+*>LJ8BLiUx(Rdmj!p*`@Q6vo>q{<#W5#MzVo&ng23W>%Nc7V~@!(ay(T|5kSfN{5n!H)Je z9FoB_v-$6V9H38X0wzg3OJ!<<)x|W|b{YlfuvnZ&kwi*HSC0~QfYHsvV28JwY;VER z`fAPg4#7U2N@QPyNphj2yGIE-IxDe>I6VorU89g_2KZ`suzi5R)f2J?R}WCjMml;yG>~#KT~7FMdKS$W2soU2Y@9M+@kUpNXMR@4kl^_^=p$xW32{ zU^|W&xDLqMo;>kuL|fR0+%ZPybe@A5onui@_L)W+NijC&!Z*FL(OHL4U!dPLd!)}l zuatj3kN+YWejHxd1=gr^U1|UxK$vwTPyCtU&j*9zr}*fXVnW(}Bfr7qhceIvjy**t z%E0Kn2mZ8efM*k6j7t06>+gr6u0%zR-!S!CnSQ-h>z>W(d47)a70+`S6BA`T2R|W} zc1G|G_+K0U(FbLhB$0q9H{R@m-7|Ly5XzdET-M}Bl%rIDD-|+%p|;P^L<3yy0dfQT z2U5q)&ima|DZoWKf|9ES1hKXN+d1SQ3A;a4=u}7Pu2x!ifDI=>mZZP{SAPU{KnX>{ z#-PExfGTcm>zlZiDPexOolB6`*)- zF}Pt<^7x)S8U*sZ10nF9u;7LW5o!C9JfgfFZAeuhd3*tn09!ChNydjqqUf7z_}bNr zmo7E8ngU#1Pz*_x19a6R2qvPe=vOy6btKy$k$WC;h6=b0!ERaZmYc;;@t0veqYE*G=1RMD!U(PQ% zU_CbB$Gx50uFXuhfI6Q<5j)>N7E`N1rZfw0pkzrIhm*E6Ty%{WFVRO(zN+AUlvEiC z=tq8g9Wz%i1E=IB_hZEHS3!$>gNx+&EWy2#1h{>>A6HI#QT#TzZBB zvW>pA9_Vz#ZaQI%aH}ICoWBd47w9Yk6O(4v*9l7c;;_u3%ZYW_AWbo2(#?Hy;7#-E zvfkZp6H6|IvC;fH0v~MV)3G~f@CgUrAsJ=k&V=?HPMbWJlhFm~^4JZrhNBdjiR~Mz zN8Q4U0flfOJ-{DV!^`jearGQMh_R{%+N!VyM}(+kv`6e#Jwms2fMc|5e69`jrD`Y2 zWHgGI%ib&2v8)&j7sR*%BSQ5MHZK(gD$B#y2ZM7;Md+`oQdx0IURhq}aw=q+^-!*4 znWiwk5~m4Cqnc-?jy}yL8L~Z!p8iu1MHyO(fwHVrih;rmV}>eByjIr~ByTmyR!$5( zn6EL&-sUGLyPFd;RakoJSdpm?*-@l1z!|iJc*KIbPhy6@!AP`wWXXo4dS!E^ESB|b zQKWH^-IQmgc*hUqJr=22X^WKM`1RH;OsU9P!PMGu@>7UaxyjxFlf}Ih&cvVOBfDr6 ztzq}*4}SDj5QEX_LS80EgX6~Po9r9?s1tN!6}n_X3>Ow@CO4M#r0x`cSp8{<&k*)m z;j;u02d(XK4N1Jnc9^)Rq;vRDbF%7ee2I^&JxM<}X~Pd2TXF>OiC2I+sFS~Z;>BYN zh470NdlYIOh}pG@lX!^pJbp^WNqoflH2vV@4nG_xIWS+LV=YhA@~|zy#hmi*{i0Z;9_Yn8$KQrY=3$}F8mDz&zACJeTIVPN-=F!Y2Za#Ti?^UwI(pR z!Cxr;PidIkAUVB3dMYN4v?3n^+VOiK>S9P-cQSghv z0`V)vq&)J+cqF2m)p^h&mNET>>AI{&ZmU@OAo+G;PRO9H^DH8%8PNx_E}pW8CM)y% z1&eD&ht(pigYx@X#9@=e8Z2%ah_lp4oZTj(jm`P}!oHQAk9OYCQnl*BVi60SHq$qYQ35gV$y_ST8iPZkY=~AEEKldZ|>apYw$fCHmA0WE( zQR06%;kmhyqUuDV1DO5~nM>Qh%F*nISmqBqAPNFhwp;H-t(k#Eet22F_WLsOb)a=ciXTy%kzxUAAyQ;bAU&@&CjAegMOnmKD63#` zA84d#!FAV_bDFtY7;?_XwFK_L9c$r0v?@L=n`;-R_FYapBdAEsEw|PJ2s>;k-OCJii}V#;0I^ z$%@jyaB*Yc)sYEa^q`TD5w@579y1X#iy%g6W&QOfc~ zZ?PGvp5B5|osT;@f$)2|KWWJqxs2XsG)&wNxp1+QOJWpm5s;S0=8~2%Vg~27-H59r zH;PH3gkx_JN3qWqr#SW+>#vTqiMa|@K2G7z;6s#@vMZggj_j?yBC2UYb;3o*5{ms5 z5zT1vR6-w$8XD!c6T)@HjxrD=e>z6!Q*jq-DTZW%_(H@mve*fIC+r%fb6O#x??oyV zix|Y{hG@i+{S(OVC(&FZ&$F{B)jx|?9K$Cu6vJ-{Ew4pL)4FoFCxFl;dn|}v6jc-qPV6@fT&jTIot~Eegg!>OB`;E<}{#MM0i~aw?UiCTE;ab zRMjBSK}OL)BzdYH`NfbQbdH^Pb>wuBtWe+8S4X~~r5L6gsK#ulqn;wgP{8SI%;nkL zu#5eEM2qaLEj1isEqTc8bg{~Cm{EJQa+_FVIK`5Sxs^X^xWXv1^VN~}ipLD^FnS}I zN_VH>eMSRUQGELhU$B-jken_K7`|h)FN9Kd)(~mjg1jegqn3Qh(B4R87B!!8bji?( z(XaCeeW%bhMn5YQfgBCP1WQW3#^qvEXvst5XHjVLgM@+=n$LYKLZNf4v#LT?4i~M^ z$W0Wk9#9cV_se~h>ITa14OuIuX(lS&4CEm}R8y!H_mvpaEcW{r^`0Q=n`WDkJyDrU zKGU?^L~Utx4{A%zOph>Xhc?kwv^Q-rQAt!EPO*129bmu9+YsyQ%pZF8r(%9 zlbO=8nETjFQ-GOzv3o0}vxE@Ra*q4Md{YpkF`UlD3QcFfRi;q(3uM1_rb>*8mywo@ zgrKt*qb;Uz_Uq3!a+@iF(I;6X`LROpGWraN@^EeB)sY>wuN2yZmeoSO+j{XRikOAxu{?-=PEF3)^}Q9VZe%|H5u%QxTjLxat~a^72DzB5b=!*)HD#1uy3 z6`GY#ev=gHf(v59#7u<>_6c!Ddx#M7cNuwz#H`Q6XrMx7MjI5eFj@l?4aopT9e`qh z0xi^a9>KhG7*LRfO1D1O(QJjDz!ED#%r#fG_)21dxvIs8vaWV7`7Jb8WAuD)Ld(q6 zSqszxtujY5n!{+d`7TCJFYKTxvpRAyUhuf zP^9zxaH{vc<|GRmnizvtFih+>C$rx_#**I=g*r_kbQ~xI;R?4AI&Dtj7#`pl&YBxA z+QjH7b7M;|>OGB(B(6i>|jHfi34XrtC@)|V!B|)+DfUS(x`Dr!>A1yt3>0C zL|+|6bV9!?hEy?c?F7V5k`x!Yw@;Y@DpNSM8^v|2;dF4uY?}${pXQ$q`cm>FyN}eS zls9QjX>L4@d=r?CN5+Nbbv(t^5u3Quhzx{GPb)&-C$j3@fVh9#f}HWJ;%?gF@b7LJB*s`!5T5|s11 zt5$&4oI&nx%rVEUg}d@VD)WxE?hz#O2sq!hAkHzSK3|h~bE1Yr^e6jA8+#V!b-iNf zS-9d6qWeL0@ph}Tm2`28>GMpxOj}Y{7acjq(V5$z`ThMnL2K840(AAbHZU5em~*op zajLZl4AsQ$c?aR%TICpMMioj)uMwx=9x{RGsku*qj-B)Z=#)%KbG!6^A(mnK>vcV4 zwaNMpN+}9d6OQ~jxR8A~a1P$Ub1LZraGJ%vQ`aaKkN5=CYX1WC{D~W&KiYo-{m%(Y zoKbXdTp9G2hpK>HLHp6fj3|oh(BkMgP5hhb8~4Y>VQpJLl5@KT;->${j}U#M9Z^fX z4g3f8CV`sljX@_QWFc(u(rmcrB@%5^(g~c`6T5=8S=tra;!>!cgsdg{bu!UPZHZn> z{t!U$Nn7Z4(o2VCrw&Y?9JN~-N~GtD0zzr*hF+~9MP4rB>y&ty213m6yhgLAk72g z$$jM^vIe(mla<@SG=IZ5JtCG`W4+GfP?8@leE{^cPUPMX zH+EXqT`^ci>gg%qOj}C&CoFQIM&4dBJ1!L#cp==&mQWoniKZHCJ#!gK`@s_%;ymqk zar%z9K862&i0F)^JK(z#u^Yu!rjNqf7{z|3g@?w$_dhYaK@GL{gSM?j^zqp{kdi&{ zwTOjGDK925DCP*#aCp&4xX4I|IISgLlJiD zv*6E}_#$K)Eu&sgf9xx8|2E_b4lJ&nqB2QnbQPRQjot?R*Vrj&Z=&G`aCd6>38;M^ zg&H42^r8GOz{ze&{ZX{0u$MMd|GI1QH{efT+HU0!aF1eobkHww_hY)X$}PB$RyD<= zKkf?xEnqt~Z#rrI0oKMOe%wczA8JCH520;nBIX47j@#cI$HiNR1mc3m^TUY##PkDD zO?)_)O5>GfVbJ;Bq$;2f3_n|GmKfH#I^2gj{Z}$b&vR{vPIY&W=vnB5b?RB@1~rKt zu+^Fv1Y3mI8&K>$*}Z2!rKego^6fT+=#B<4(0QvnxzBVY`ZfFhi|J#th|{4C(c!FT zIn&sq6xWi4q-|SE@+}-rG$@VoGJE|nq`z7oAib7;Co-24|^z z1awyEQXMp#b5ZTVF>q(hCE9=K1E5aBR8W(dXuhccv|CXTD9vZ;h}J!Zhu0C;R!#*? zZ!$F;b~`#SG*v9DGaD({Q!*d1^m#BlE>%p%{K}K6?}HX2RbMh~5kT$?rl*6+eU$0= z5OR-VdX4EjOvh9v{&1!ROs6n4S0etcP@*?1M8jFDj^(d2z05kFV|qXP4rbboed{po%d|JsNh~>z>3r5a zi)l<4rN0`}wk+9#X%thPX%p70vrGunTg>^H=>pbS!gLXH{>k(p(>+X|X5Z6H*RalI zOf^o!f7tyt(<@99IaEB;OU${*v<7pkGX0uM`*Wu0T>eQ+53uC3T%LWHw&8fc;<$z} z-5*G~?#TRD=Imq1LJoV0Ie|g0$?i;Zm`>(c@|ilB)@RM1u=^)=e+x-Zt6rSG0_o3dL9{#5)u0~V&2!fhe<@LS z{k6;=hY_t?@FU<<4Iw%sl;~vUG_OSNPE2nGk-Ig!2eZrwrrnq(vHYX#p2P0zaAPI_ z+eK@f`LJUPJCN0SuRYOG?TBtKCi>X|qTjC~`eXy5XC{;7|Ayyvufl$6qQ>21UAyzB zbPwk3npn@&j@c~wdp1$SBnsQxO7z<$*%*(OttR)Lbt9qS(=MbTaSw4E^=NLeg*o$A zZA02dv%B8Hop29k`c}~saOV_tkBAhjFwcw>Zl>Q&C3lxhqR%ZNI(7!p=2#0viW5w8 z*?0V6;{4i&=%Y1>&See382chcfA*a`jogn*op+Nvza7z6ZA8DROtcT{+&hKbJvdYs z)=-Q&ZKUW0n;9v3a~h)7k-IBvvoRewi8#%Yh)y0w^j)lIBE`^wM2FWV+Gqt)onu+Z z)WLKo)4SPs0#=ccq9tp1ifM5#;%s4REFrfcfM`vo?U+8%cTQlWc;*06=TV|1^NFsj zMD$h=(U&R{jY}uGA)e@Wb>{@?;sn;4kzyA{LtQipIS5Ps;HZOWQI#6d98#`l|5cAh zw-a}LpG1Ql9-f2*pDH+AS(HAg2emdq7IC8B)D+`NwW!0}j_iFVl0>>uxjN&Vdwz}AcnV}{YW5%nAr(!8aipwf2DOIr<1R(wLvr_tIMB*iziZ-4Zj+ZWere+TJwy|*a@WK!>~4S+y(a2n)(vfw zk`d~qDe0gBqa@`nqh66X%=5j!s?DRJxmUwXo>81Z%hbfuey!_yY{j(=9qRQdyfTXD z&W%KmL=w&ILbRkB(XUwM=PBeq%reJWrXS0!V3|!UGpQfRjAxlgS*9z?OlBE3%Unw% znJz5z5X+>oOb?cMfMwodnHDVb0L#R)ObeEo&oY*D(v!G|p5S~3 z>Iu7Q%5wS`Y7&jy*vBjR%7Hv^Zj=xm+n(r&CPeKkh<;Iz=u44# zUU_%@f#AH+cc7QEYRWKho=78lsT0waD~EY~tKK&UDcM_-sM$(1Je}w-jfsB4^y~TL z-rtGn$GeHX%=FAA?0cy6|2|+8G}qclG>&PlapYdopXkb(ME5c+IYaKW9;5J?pod`x zu&$Zmg!^9`XqHQ@*Cc-B8S>C^#G$@m664V?Orq6;6CwHRm<#bH(YePoxZgZPv*HnR zir`+xGC#6A4{g{a+M3qlTCfM_Q6noPo+Lv&Y< zEzmHvCdqubEeU0^b=%$G*tT~7?UqlR#yxky{msK;;0|a<8VuN@z$%hyb*2w6Z4*KK z9L)bsqC;EK8GVr4o7nd^%=}HF56jS~jg(+4Hi<;6eN1A(Hli!%lgx|pd5CfMVai1w zTit1o(kitN#(fiy^(N7KJ4w=rj~ZwGbYAhDSxB71qeNedAR5lG{1!>>vsiOMGiD1W z(Y3=c#A0Q7bPZ|Cj_(Q1^6~wVQyTFR<6xp~Fmo`8c?*bs;U?PPA)=d|~dBkV=2ZcJhwRyQUwm}_$jmq|32K=8=@h$X8k$)CWQ3-11{!3pS3YtmxOI!vMq zR-@RL<5e5YK(G}ID{T_LVP&d|{ZAaJhn3M2=U}}P4qQUmajw@u6F8R7u)BiR&hegR zj)CLN+(i7KZEr&I0?RC6+J@V?ktHv2njKhYq294FMSD0!xf{WpKg?pL|3{?LXrx8>fHGRFq~e$L~N z9;tB0VrFF$-FuRo#%t_Ua9n%2^j^j~8Zlxg+$1_;C)^~yE6IdpSUORfmzu=uOanQO zKVTF#iB*_uVV@_nJJz=CrnabGMSN*GTd9h;!gTubD~2j!DARkl1cp`-twG5$e_Ewa z;i@TZ>(f}%7W)6uux)*#h{asjD4J~O1o!)$x`N6bswQX&7I6_PWsCUb2)XB zd(i^rz8QA!v3us(QK#Kf^XWEiE zPod3NM9GMrIEtEn|9zmhM)U`LYs3)HA@`5O3v}Z^X?M<9zh_}Y=$ycwg>x}iw1`7B zX~#9xN;Ep1=-Ez0|FMbax4VhH#njY<+zCv7o=R%_R4Nq%D zbT(4hv+!MTJR{xW^hqesuQm`pym1oJCeJvw51&+D7Z1VG_AHF$w5>tfXr(i~ejRZy z_IT@vfki+C0G2S=Q|x8ENlJNOuXEg}lG2q|G& z9pf7HxQ|dHgZLCro_xtOFL~NE2lEY!m;x(@o2amm*m+|*ndw5Np*|7P_ApDah&4f!{@*e8vxqlg1FE{BL@nL#Xbw&7Z=l@c(Q(8R#- zvMZ@wypudGpL}aAqP{;0^8`&4E%_XMaCXB!7_Sdvyu3d$(m=785cX??m2puhoN93_rwe`n-#@M;y=ko%iIG$j1J(|PB*o=f)BUiQ_^ukX zU)}vKqOGw1uZexjIWENO>37#Q{DPi!Wfak!8;O3!oM#;5KFpj=%$d}WIOCZ!8gAVF zz^q0SN3eFr?#eLYY*|UMyxW!d)=fl%FkjU~I_Kq4*gC9F=Td5E{-cY>dGF=xks03f zEKa|LSh^p(RX<((x7lR#r8CGz=_I;yBhjxm5dC=y(ZkHy#GFa}h%=r!Ra42mI6cU# zXLR0LtVgN`5XFZeP%=B4QeAxU*b6mqs&YTs^M_2-&I4kOp*_4;ljxutM2jPcPVYr@ z%m||Yfm_3=1f6?+!>62d{-OzEQkaeSw3h#-9?9&UXSG>GyM8r6KP!oauYbIau>UXl zjl~&DJsb9LL?Y-$(FpSI?xho-*J~2>cZY1`_K(vs3e^(wqqVl6R}5|OQra_??r>*m zy+L;vdV5RY_nKF+Uw67X(eC4jwqjb#O78Dch|XF}bYg9y`v(vm-S4V*9QnQG+u)pB zNpxcEx4rzu>0f};Z!^&v6NujEL$sEa=yxeZ=N%zBYcWyH^@TTVaOx-E4Bkw%VfrUt z{-~DusKM%8^2?OiXC*@`;NS+VK9cjkI1HuD_F)-%3hYMEIFzKk+i*9Z5lH?seA_{C z7O=eJ_){s_V&MbOPykxG?mjDd4Ynv`57otG?9q8{R?NU|8*WEnA5Rlb6VbcO(-C&0 zncUAawOZWZG_{azSp-V8_7LhTO3VSx6w45!oGttdb1+X|C^_&RR>U2d9z90xi5=fV z8suKqB({Fi%59&r5gO#(33+qlTlO`Z=(a?oFq&X~7Sx)KM-A7ng;&hl# zcKqEzysH+|U<+bghC)^@ba72o?YF3s;#G;_sq4^T5bzl|}WsgjNNvsq>~S zT%<}Qnyh~hs0E`U@oMhJHmnPkU!Qef*doMy<+m;OJDXKJ=k@#9Rz+O(`e_M~A`

      tE+n_*u`b#SCrc?!680T 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.ARModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.ARModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..eeab9f4702db6cb3b31ca8b86aa541eac096304f GIT binary patch literal 12800 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%0A&biIAn@^s7>fBQ)#V>jRo6u1vUn<0n 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.ClusterInputModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.ClusterInputModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..6094dabc2fb92f2292dcd1b801d6efa74f115ac8 GIT binary patch literal 10240 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 Tfc$@Jev?>>KkzpB02$yv0cZh3 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.ClusterRendererModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.ClusterRendererModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..532fb222bd35d59ca7da0324fbcbf9dde728c6e8 GIT binary patch literal 9216 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.CrashReportingModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.CrashReportingModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..2af05768ac4cffe20d7021fc5f18ceb36a03a105 GIT binary patch literal 9728 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 E4KLSsx&QzG literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.DSPGraphModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.DSPGraphModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..b0d97c55cb2bde6daaabcee3ae0fd2286f112da0 GIT binary patch literal 17920 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.GameCenterModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.GameCenterModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..7b7e8d2601bda0fb7c4df2ad98bbb4c5a01b4ed5 GIT binary patch literal 27136 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.GridModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.GridModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..8d91d26ba3e7ebf0041188dee613b53751345f91 GIT binary patch literal 13824 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 C)LBdb literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.SpriteMaskModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.SpriteMaskModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..8ba618450e690e5a839397d673ca87e36da12a05 GIT binary patch literal 10240 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.SubsystemsModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.SubsystemsModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..c82575a256e0c575b83c7b6c49457cdae9aecd4c GIT binary patch literal 16896 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.TerrainPhysicsModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.TerrainPhysicsModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..a4efa0330d4c986a10d504b862ef7b73e85f3c1a GIT binary patch literal 9728 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 E1xXfHbpQYW literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.TilemapModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.TilemapModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..e32861a3c902b2977d761fa19085608130f43cfd GIT binary patch literal 25088 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 QKj$`PhTr`A|Hpy<1G+UlsQ>@~ literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.UnityAnalyticsModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.UnityAnalyticsModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..261a0da5d56595013fc749bc2f0db028348a2934 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.UnityConnectModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.UnityConnectModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..d54023ebfba0632cfbf7fa2178bbe26b102027f8 GIT binary patch literal 10752 zcmeHNeQX@Zb$@fDD2g&EQnDmVvgM^E>&x<*q$ta(?UbLQ&!$L*M^b9*RNA{69k<%s zz3lEureQQhkOasdZrlQKQKJdk#ArU?6m{SrL7Ei(BaLgIMuQe;i#8~P7A{brNPsjb z;1r1adv8B(Zz-#XqW{H1-tT7Kd-LYao0+#Wvv=`VU!pD|>c;22_lUlQZ%z|}cZN-{ z2k!s&0KKu}?cr~!`L~Bx*6qM(_+HJo>PE$KT`x4s+VGpMVY|l6V#%m`Rc-e7_Z^K@ zFU=Cot1epqkDq=wY3&vjhIgu7q6a|fiKsvSWqcb^UaaGMA+npPY`>&G0D{h`izYrv zG${YA@3K;{PG-8Bw$y^-zC^_V+zRJ*WEU)B}YR+lY{%snXL^D%Q@n-WW4S z%(Els#?EnL-O|N*C^+()M6codwJzjKp>MmjfF&;PjK=TC+-h+K<#m*w-2<5^$1Ae{ z61v_uxB3OOg9|@XXK3H|q{Uq*LLKeLhx4dPzl#s|l|SqdzhM66;oaXrH^(B{+4iSUCjNC`jGDQT)KiDDOxg^`7)VgpeL2M zG(qdqXRsjoduSH}!3m|;3;Q#r7ojs=Y~Z~DooR{o(5o`4QjhMVA0%@dl59(#s7!2W zl~`xXYS!5*T`3GHnXO`rQ`nm+9RaUD)p-WIR%sf%ft2@Q@LHwobWrigBEhm3=rBsx z3@(1^p0^4E91Gy7pTTvCUczukScoYReJl5PrdC#_JwHU;!Z7d{odkZB&P#q$=tbbi z)Q2ViE5O&34Ln9470QO70q^XlBLYclNQKp<68z~dmV8HAd{=OAfGLLHoS-ZCS;6lJ{;Oc0)EyPPEch|OKN5Uf za7p}gO7OpWO*~h2%Lu;F&8>V!&=Xt`+#&c*7jyqy@NsJCT34!18}A z_}hXF!3Du_!Civ?saW!_1pgE`Ow_&?kicHzN72XnsWS@oiEI_CG_f2!?`} z1s@gMC;0AmmN_W$-6;KwizIX*~g5uGqkw2ooBKVfzzYFeAOgDh9 z(@DusNWPb&_wIWUM-`%HH`afJ{vP;^0^{c;A5o%wqi_K+<(%NE;3hq-qS^{ty71YC zKLx$pkl&6!g&4XW`JH&?C_J|r2T&?dzu+!>D@3e*P=@flQkYGw|reKx}o-6%L#5HA=1;H>*@*{fL>=6P${%RyE0j+=pgX?m5m0o zZ)o4XW^-SsVe({%T}rtbYFb(MwN))y*D|yjU2fKDEZdS>EC-&W!we<0aLo>E$gX%T z=>=GDLq7%0+HXbB+B&+A1OPVmEKLt4Kb-K>P3A8R#dY^&ya0fsY3NO41$J?u2?m$ZMw#!yo< zYS?@7L<_Pr!kn_*s%%QdGn3T-3nFY0;;Gb5j3?=26*DKa16_yX0$MEp1}0sb^0;=E z7EQ{@0JX}_Mq+tMSDHSCj(%zQ`xD0x{?5!7KmN7H-|YE*m3qJV{IhEZ#&3NZ+si_i zL8_ZKjNPPEp=-M;AQlyd`nwIK2A)uK?xy9tFy2`3499b8+Bbq`qv83Xt{RqGHE!CD zV_42jYa=jx9X5T}2z^Wu#Iu4L>Mx8ddZZ&ARnNeoa2;(C$HRf4{vM-%uLFk_?VZzM z-kT>*M!_g*XP~Q>3TG9KMBWG<$xh3tfRRWuiTBNQ+4v7|?+4(IUe5GBpy)u-Vs5yS zR?!?c*^5KXL+{^Yt}?gAj_vK`5YGvHQ?ydpcgeRJ3!XdsTtzo{Wg<{`Hv_c|!b78w z-p)frgV^ayzoO|vbWG83hG5=4n$aOV39@3DSV%_|-Jj(}kt|;KQO}4D;IYysR7^O- zitcUWxK-b?t4}Ya5{9Bf?GkofVosvsUPb%c1e#UbOPEI#9nLbRohBlHUvwMIBpPq= zLM*eaT?9n!C#vpObTF%G#`dwgy!YpqmgX=l>q-5*7w3Gtn(*?Se98+ETs)lzz_ZnpN3IMDhdnbZKz`VJV7uiBR5c^InA`Vw>L|RAgk^ zT0*F_D~^t0Y@!J>^gx@``bK~NnXvO6Uy9gcGl@Xn>r1|OjU#Eo&v&O(@wIlRtp-9# z^1!D2EGsn-+Vn*$xSpuVJ1&yIdT69d@}}bMKwEXhn?%PJfo3@fEw_?t*kT3*kJ!uIY82`{_XD{kL}Ea$;28OKWyjr|~KuBrahykW|di zQGR5HQ%$$(q%$n9d)mPxF{z)Qe!SnF#zvvFnDW(&7jYSuRNunP#?ZV!*j?GjM856S z;wC&Y{cYe}e zUVcB$WXj1~J?&e;`m*NDPi7(J=jf95`KZHjV~cFwinX+@`xM=i?MdmT9ahqj&oB1N zW$(E~H=Q;4$+}b;PkNUhbg){D=7(%Shc`X{x@^JrDH_Tegqhf^%7&%waUf(f-WC(x zt!S6jGSkr|+`P5Nq6{lP?Q$F7EjyQ`re9gN0xwxbz((S9Sd ze=?_qI4#16}o^IDw;1k%^W~SzG zMGr*w-d@6tHJwoub->Kb^2jlnipXLRk~*ypW<&yW(s7FJXe3Is2R9s%0j*B+l1NT9 z4^Q*fw()QX|MF3ph)vFOuh|&Yh7|-Exh)TMKGj;zif>h-iOy?s&hu(Ge=kR!i_X)T zxo&b4$A0|c@?>TAEpn zYt}@c+<>D~)}OOD&4)IQsFbc~oMs&dTVL!uLEeSypUCwb?=xo#nQMG2GPzWY4jfb1 z@z%6CGBVnk*jQ&`XF3xb?@a7$XJU_bCU&kfF}wgww={R~+xd>fMn^gm>ueN8I~#@3 z&PHLhvr!oBY!pU28->x%Mq#wGQ5fxP6vjFmg|W^?VXU)J80%~l#xM%$-sk=1+l;;u zE!7SsVPS`oFtS6*&h5m6X@$K~a9Djvnr4HrL)>UO}# zXnsCN#1<{RyF6_qm({0@wdmOWB)?G1L3Nmn<~nseG%YL*?l@{HbC@vdw4 z$?~~#*4fJ0M@P?}8P_9^o!_fg3WKHVb_1Gl)mxFLzg*JD?-kU=CB9*Q93Kbo(Vbzw zzG)?X+nA&;fwx?mDdq3!SeeA-_-;`0ZRahsQ7sewAbwBJ`hLWDgL7L`@;<-Cxq^T{ z<2V;_K#lJ4wU(<}mU!<$GA3H0ALM?)J;3jqi0;7>YMbjkmvN>?jQf0-^1rqGTr&zTSl#j%>Wg&TI55I zO%7@3bm_hYi^+@GS}<=b;p(Kk4pL?>tfMbKV0iUwfY`cbz7JXX!$bLs!ru5t0#655OG=04=T*76toj(?ZMKAwbM1N5hkQF71| Xx{yB{=ZJLQJntjlwiSRf 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.VFXModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.VFXModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..5ae2cc7010a3b1f44be9481a142cc83ab6f9311c GIT binary patch literal 38400 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.VehiclesModule.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.VehiclesModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..bc77444b61a9d3be335f6398d5571c79196f86d6 GIT binary patch literal 12288 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

      4{&O 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

      )I`}K2)LKLOVm#^s~^iCnCK!)F$baz&@1!YZ}q7 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.dll b/SubnauticaModSystem/AutosortLockers/BZ/UnityEngine.dll new file mode 100644 index 0000000000000000000000000000000000000000..87a2f2eb62c352ad80be99cd2c9d2110446e1990 GIT binary patch literal 84992 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 z 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"Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); -#elif BELOWZERO +#elif BZ var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); #endif diff --git a/SubnauticaModSystem/AutosortLockers/ColoredIconButton.cs b/SubnauticaModSystem/AutosortLockers/ColoredIconButton.cs index 7d28d1b..a74bd40 100644 --- a/SubnauticaModSystem/AutosortLockers/ColoredIconButton.cs +++ b/SubnauticaModSystem/AutosortLockers/ColoredIconButton.cs @@ -4,7 +4,7 @@ using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; -#if BELOWZERO +#if BZ using TMPro; #endif @@ -23,9 +23,9 @@ public class ColoredIconButton : MonoBehaviour, IPointerClickHandler, IPointerEn public Color imageColor; public Image image; -#if SUBNAUTICA +#if SN public Text text; -#elif BELOWZERO +#elif BZ public TextMeshProUGUI text; #endif public Action onClick = delegate { }; @@ -94,9 +94,9 @@ public void OnPointerUp(PointerEventData eventData) /*_____________________________________________________________________________________________________*/ public static ColoredIconButton Create(Transform parent, Color color, -#if SUBNAUTICA +#if SN Text textPrefab = null, -#elif BELOWZERO +#elif BZ TextMeshProUGUI textPrefab = null, #endif string label = "", float width = 100, float iconWidth = 20) @@ -111,9 +111,9 @@ public static ColoredIconButton Create(Transform parent, Color color, RectTransformExtensions.SetSize(checkbox.rectTransform, iconWidth, iconWidth); checkbox.rectTransform.anchoredPosition = new Vector2(textPrefab != null ? - width / 2 + 10 : 0, 0); -#if SUBNAUTICA +#if SN Text text = null; -#elif BELOWZERO +#elif BZ TextMeshProUGUI text = null; #endif @@ -123,9 +123,9 @@ public static ColoredIconButton Create(Transform parent, Color color, text = LockerPrefabShared.CreateText(rt, textPrefab, color, 0, 10, label, "Label"); RectTransformExtensions.SetSize(text.rectTransform, width - 20 - spacing, 20); text.rectTransform.anchoredPosition = new Vector2(10 + spacing, 0); -#if SUBNAUTICA +#if SN text.alignment = TextAnchor.MiddleLeft; -#elif BELOWZERO +#elif BZ text.alignment = TextAlignmentOptions.MidlineLeft; #endif } diff --git a/SubnauticaModSystem/AutosortLockers/Config.cs b/SubnauticaModSystem/AutosortLockers/Config.cs index f82cc0d..e355dd2 100644 --- a/SubnauticaModSystem/AutosortLockers/Config.cs +++ b/SubnauticaModSystem/AutosortLockers/Config.cs @@ -1,4 +1,8 @@ -using Newtonsoft.Json; +#if SN +using Oculus.Newtonsoft.Json; +#elif BZ +using Newtonsoft.Json; +#endif namespace AutosortLockers { @@ -6,7 +10,7 @@ namespace AutosortLockers public class Config { public bool ShowLabel { get; set; } = false; - public bool EasyBuild { get; set; } = false; + public bool EasyBuild { get; set; } = true; public float SortInterval { get; set; } = 1.0f; public int AutosorterWidth { get; set; } = 5; public int AutosorterHeight { get; set; } = 6; @@ -14,9 +18,9 @@ public class Config public int ReceptacleHeight { get; set; } = 8; public int StandingReceptacleWidth { get; set; } = 6; public int StandingReceptacleHeight { get; set; } = 8; -#if SUBNAUTICA +#if SN public char GameVersion { get; set; } = '1'; -#elif BELOWZERO +#elif BZ public char GameVersion { get; set; } = '2'; #endif } diff --git a/SubnauticaModSystem/AutosortLockers/CustomizeScreen.cs b/SubnauticaModSystem/AutosortLockers/CustomizeScreen.cs index fbe15b4..8ef1266 100644 --- a/SubnauticaModSystem/AutosortLockers/CustomizeScreen.cs +++ b/SubnauticaModSystem/AutosortLockers/CustomizeScreen.cs @@ -2,7 +2,7 @@ using System; using UnityEngine; using UnityEngine.UI; -#if BELOWZERO +#if BZ using TMPro; #endif @@ -23,7 +23,7 @@ class CustomizeScreen : MonoBehaviour [SerializeField] private ConfigureButton exitButton; [SerializeField] - private ColorSetting labelColorSetting; + private ColorSetting labelSetting; [SerializeField] private ColorSetting iconColorSetting; [SerializeField] @@ -56,9 +56,6 @@ internal void Initialize(SaveDataEntry saveData) label.onModified += OnLabelChanged; exitButton.onClick += OnExitButtonClicked; - labelColorSetting.SetInitialValue(saveData.LabelColor.ToColor()); - labelColorSetting.onClick += OnLabelColorSettingClicked; - iconColorSetting.SetInitialValue(saveData.IconColor.ToColor()); iconColorSetting.onClick += OnIconColorSettingClicked; @@ -75,7 +72,6 @@ internal void Initialize(SaveDataEntry saveData) private void SetColor(SaveDataEntry saveData) { label.text.color = saveData.LabelColor.ToColor(); - labelColorSetting.SetColor(saveData.LabelColor.ToColor()); iconColorSetting.SetColor(saveData.IconColor.ToColor()); textColorSetting.SetColor(saveData.OtherTextColor.ToColor()); buttonsColorSetting.SetColor(saveData.ButtonsColor.ToColor()); @@ -152,7 +148,7 @@ private void OnButtonsColorPicked(int index) SetColor(target); } - + private void OnLockerColorSettingClicked() { colorPicker.Initialize(target.LockerColor.ToColor()); @@ -172,12 +168,13 @@ private void OnLockerColorPicked(int index) public static CustomizeScreen Create(Transform parent, SaveDataEntry data, GameObject lockerPrefab = null) { -#if SUBNAUTICA +#if SN lockerPrefab = Resources.Load("Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); -#elif BELOWZERO +#elif BZ var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); #endif + textPrefab.fontSize = 12; textPrefab.color = CustomizeScreen.ScreenContentColor; // The color picker settings @@ -188,12 +185,24 @@ public static CustomizeScreen Create(Transform parent, SaveDataEntry data, GameO screen.background = new GameObject("Background").AddComponent(); screen.background.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("CustomizeScreen.png")); // 1st = 2nd = 3rd = horizontal 4th = vertical positon of the color settings - RectTransformExtensions.SetParams(screen.background.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.41f, 0.4f), screen.transform); + if (parent.parent.parent.name == "AutosortTarget(Clone)") + { + RectTransformExtensions.SetParams(screen.background.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.52f, 0.4f), screen.transform); + } + else // Standing locker + { + RectTransformExtensions.SetParams(screen.background.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.41f, 0.4f), screen.transform); + } RectTransformExtensions.SetSize(screen.background.rectTransform, 114, 220); screen.label = LabelController.Create(data, screen.background.transform, lockerPrefab); - // The position of the LOCKER label - screen.label.rectTransform.anchoredPosition = new Vector2(0, 70); + // The position of the Label, it is hidden sort of so this pushes it off the background + screen.label.rectTransform.anchoredPosition = new Vector2(0, 300); + // Set the fontsize to zero to make it disappear, DestroyImmediate(label) doesn't work + screen.label.text.fontSize = 0; + screen.labelSetting = ColorSetting.Create(screen.background.transform, "Color Settings", lockerPrefab); + // The position of the Color Settings string + screen.labelSetting.rectTransform.anchoredPosition = new Vector2(-10, 70); // The position of the close (X) button on the color settings screen.exitButton = ConfigureButton.Create(screen.background.transform, Color.white, 0, -85); @@ -211,9 +220,6 @@ public static CustomizeScreen Create(Transform parent, SaveDataEntry data, GameO screen.buttonsColorSetting = ColorSetting.Create(screen.background.transform, "Misc Color", lockerPrefab); screen.buttonsColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - (19 * 3)); - screen.labelColorSetting = ColorSetting.Create(screen.background.transform, "Label Color", lockerPrefab); - screen.labelColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - (19 * 4)); - screen.colorPicker = ColorPicker.Create(screen.background.transform, lockerPrefab); screen.colorPicker.gameObject.SetActive(false); screen.colorPicker.rectTransform.anchoredPosition = new Vector2(0, 30); diff --git a/SubnauticaModSystem/AutosortLockers/FilterPickerButton.cs b/SubnauticaModSystem/AutosortLockers/FilterPickerButton.cs index bcb54d1..1459a3a 100644 --- a/SubnauticaModSystem/AutosortLockers/FilterPickerButton.cs +++ b/SubnauticaModSystem/AutosortLockers/FilterPickerButton.cs @@ -3,7 +3,7 @@ using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; -#if BELOWZERO +#if BZ using TMPro; #endif @@ -25,9 +25,9 @@ public class FilterPickerButton : MonoBehaviour, IPointerClickHandler, IPointerE [SerializeField] private Image background; [SerializeField] -#if SUBNAUTICA +#if SN private Text text; -#elif BELOWZERO +#elif BZ private TextMeshProUGUI text; #endif @@ -102,9 +102,9 @@ public void SetTabActive(bool active) } public static FilterPickerButton Create(Transform parent, -#if SUBNAUTICA +#if SN Text textPrefab, -#elif BELOWZERO +#elif BZ TextMeshProUGUI textPrefab, #endif // The size of the picker buttons, only the height is useful, the width is overwritten later @@ -120,10 +120,10 @@ public static FilterPickerButton Create(Transform parent, button.background.sprite = ImageUtils.Load9SliceSprite(Mod.GetAssetPath("MainMenuStandardSprite.png"), new RectOffset(Slice, Slice, Slice, Slice)); button.background.color = upColor; button.background.type = Image.Type.Sliced; -#if SUBNAUTICA +#if SN button.text = new GameObject("Text", typeof(RectTransform)).AddComponent(); button.text.alignment = TextAnchor.MiddleCenter; -#elif BELOWZERO +#elif BZ button.text = new GameObject("TextMeshProUGUI", typeof(RectTransform)).AddComponent(); #endif RectTransformExtensions.SetParams(button.text.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), button.transform); @@ -132,9 +132,13 @@ public static FilterPickerButton Create(Transform parent, button.text.font = textPrefab.font; button.text.fontSize = 10; button.onClick += action; +#if SN + button.text.alignment = TextAnchor.MiddleLeft; +#elif BZ button.text.alignment = TextAlignmentOptions.Left; // Set the left margin button.text.margin = new Vector4(5.0f, 0.0f); +#endif return button; } diff --git a/SubnauticaModSystem/AutosortLockers/GetLists.cs b/SubnauticaModSystem/AutosortLockers/GetLists.cs index 160e874..8aae828 100644 --- a/SubnauticaModSystem/AutosortLockers/GetLists.cs +++ b/SubnauticaModSystem/AutosortLockers/GetLists.cs @@ -1,8 +1,13 @@ using System.Collections.Generic; using System.Linq; using System.IO; +#if SN +using Oculus.Newtonsoft.Json; +using Oculus.Newtonsoft.Json.Linq; +#elif BZ using Newtonsoft.Json; using Newtonsoft.Json.Linq; +#endif namespace AutosortLockers { diff --git a/SubnauticaModSystem/AutosortLockers/LabelController.cs b/SubnauticaModSystem/AutosortLockers/LabelController.cs index 08061bc..247928e 100644 --- a/SubnauticaModSystem/AutosortLockers/LabelController.cs +++ b/SubnauticaModSystem/AutosortLockers/LabelController.cs @@ -1,9 +1,9 @@ using System; using UnityEngine; using UnityEngine.EventSystems; -#if SUBNAUTICA +#if SN using UnityEngine.UI; -#elif BELOWZERO +#elif BZ using TMPro; #endif @@ -15,9 +15,9 @@ class LabelController : MonoBehaviour, IPointerClickHandler, IPointerEnterHandle public RectTransform rectTransform; public Action onModified = delegate { }; -#if SUBNAUTICA +#if SN public Text text; -#elif BELOWZERO +#elif BZ public TextMeshProUGUI text; #endif [SerializeField] @@ -28,9 +28,9 @@ private void Awake() rectTransform = transform as RectTransform; } -#if SUBNAUTICA +#if SN private void Initialize(SaveDataEntry data, Text textPrefab) -#elif BELOWZERO +#elif BZ private void Initialize(SaveDataEntry data, TextMeshProUGUI textPrefab) #endif { @@ -73,9 +73,9 @@ private void Update() if (hover) { HandReticle.main.SetIcon(HandReticle.IconType.Rename); -#if SUBNAUTICA +#if SN HandReticle.main.SetInteractTextRaw("Set Locker Label", ""); -#elif BELOWZERO +#elif BZ HandReticle.main.SetTextRaw(HandReticle.TextType.Hand, "Set Locker Label"); #endif } @@ -85,10 +85,10 @@ private void Update() public static LabelController Create(SaveDataEntry data, Transform parent, GameObject lockerPrefab = null) { -#if SUBNAUTICA +#if SN lockerPrefab = Resources.Load("Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); -#elif BELOWZERO +#elif BZ var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); #endif diff --git a/SubnauticaModSystem/AutosortLockers/Mod.cs b/SubnauticaModSystem/AutosortLockers/Mod.cs index 75de80d..c66f8ed 100644 --- a/SubnauticaModSystem/AutosortLockers/Mod.cs +++ b/SubnauticaModSystem/AutosortLockers/Mod.cs @@ -5,16 +5,20 @@ using System.Reflection; using Common.Mod; using HarmonyLib; +#if SN +using Oculus.Newtonsoft.Json; +#elif BZ using Newtonsoft.Json; +#endif using UnityEngine; namespace AutosortLockers { internal static class Mod { -#if SUBNAUTICA +#if SN public const string SaveDataFilename = "AutosortLockerSMLSaveData.json"; -#elif BELOWZERO +#elif BZ public const string SaveDataFilename = "AutosortLockerSMLBZSaveData.json"; #endif @@ -32,9 +36,9 @@ internal static class Mod public static void Patch(string modDirectory = null) { Logger.Log("Starting patching"); -#if SUBNAUTICA - Mod.modDirectory = modDirectory ?? "Subnautica_Data/Managed"; -#elif BELOWZERO +#if SN + Mod.modDirectory = modDirectory ?? "Subnautica_Data/Managed"; +#elif BZ Mod.modDirectory = modDirectory ?? "SubnauticaZero_Data/Managed"; #endif LoadConfig(); @@ -80,16 +84,15 @@ private static void ValidateConfig() Config defaultConfig = new Config(); ModUtils.ValidateConfigValue("SortInterval", 0.1f, 10.0f, ref config, ref defaultConfig); - ModUtils.ValidateConfigValue("ShowLabel", true, false, ref config, ref defaultConfig); ModUtils.ValidateConfigValue("AutosorterWidth", 1, MAX_LOCKER_WIDTH, ref config, ref defaultConfig); ModUtils.ValidateConfigValue("AutosorterHeight", 1, MAX_LOCKER_HEIGHT, ref config, ref defaultConfig); ModUtils.ValidateConfigValue("ReceptacleWidth", 1, MAX_LOCKER_WIDTH, ref config, ref defaultConfig); ModUtils.ValidateConfigValue("ReceptacleHeight", 1, MAX_LOCKER_HEIGHT, ref config, ref defaultConfig); ModUtils.ValidateConfigValue("StandingReceptacleWidth", 1, MAX_LOCKER_WIDTH, ref config, ref defaultConfig); ModUtils.ValidateConfigValue("StandingReceptacleHeight", 1, MAX_LOCKER_HEIGHT, ref config, ref defaultConfig); -#if SUBNAUTICA +#if SN ModUtils.ValidateConfigValue("GameVersion", '1', '1', ref config, ref defaultConfig); -#elif BELOWZERO +#elif BZ ModUtils.ValidateConfigValue("GameVersion", '2', '2', ref config, ref defaultConfig); #endif } diff --git a/SubnauticaModSystem/AutosortLockers/Patches/Initializer_Patch.cs b/SubnauticaModSystem/AutosortLockers/Patches/Initializer_Patch.cs index 70f33e5..2cbfddf 100644 --- a/SubnauticaModSystem/AutosortLockers/Patches/Initializer_Patch.cs +++ b/SubnauticaModSystem/AutosortLockers/Patches/Initializer_Patch.cs @@ -1,5 +1,4 @@ - -using Harmony; +using HarmonyLib; namespace AutosortLockers.Patches { @@ -44,4 +43,4 @@ private static void PostFix() } } } -} +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/Picker.cs b/SubnauticaModSystem/AutosortLockers/Picker.cs index 2e7d36f..8462e1f 100644 --- a/SubnauticaModSystem/AutosortLockers/Picker.cs +++ b/SubnauticaModSystem/AutosortLockers/Picker.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; -#if BELOWZERO +#if BZ using TMPro; #endif @@ -131,10 +131,10 @@ public void Close() protected static void Create(Transform parent, Picker colorGrid, int buttonCount, GameObject lockerPrefab = null) { -#if SUBNAUTICA +#if SN lockerPrefab = Resources.Load("Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); -#elif BELOWZERO +#elif BZ var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren()); #endif diff --git a/SubnauticaModSystem/AutosortLockers/PickerButton.cs b/SubnauticaModSystem/AutosortLockers/PickerButton.cs deleted file mode 100644 index 5c9f294..0000000 --- a/SubnauticaModSystem/AutosortLockers/PickerButton.cs +++ /dev/null @@ -1,128 +0,0 @@ -using Common.Utility; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using UnityEngine; -using UnityEngine.EventSystems; -using UnityEngine.UI; - -namespace AutosortLockers -{ - public class PickerButton : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler - { - private static readonly Color inactiveColor = new Color(0.7f, 0.7f, 0.7f, 0.5f); - private static readonly Color inactiveHoverColor = new Color(0.7f, 0.7f, 0.7f, 1f); - private static readonly Color upColor = new Color(0.9f, 0.9f, 0.9f, 1f); - private static readonly Color hoverColor = new Color(1, 1, 1); - private const int Slice = 70; - - private bool hover; - private bool tabActive = true; - private AutosorterFilter filter; - - public Action onClick = delegate { }; - - [SerializeField] - private Image background; - [SerializeField] - private Text text; - - public AutosorterFilter GetTechType() - { - return filter; - } - - public void Override(string text, bool category) - { - filter = null; - this.text.text = text; - SetBackgroundSprite(category); - gameObject.SetActive(true); - } - - public void SetFilter(AutosorterFilter value) - { - filter = value; - if (filter != null) - { - text.text = filter.GetString(); - SetBackgroundSprite(filter.IsCategory()); - } - - gameObject.SetActive(filter != null); - } - - private void SetBackgroundSprite(bool category) - { - if (background != null) - { - var spriteName = category ? "MainMenuPressedSprite.png" : "MainMenuStandardSprite.png"; - background.sprite = ImageUtils.Load9SliceSprite(Mod.GetAssetPath(spriteName), new RectOffset(Slice, Slice, Slice, Slice)); - } - } - - public void Update() - { - if (background != null) - { - if (tabActive) - { - background.color = hover ? hoverColor : upColor; - } - else - { - background.color = hover ? inactiveHoverColor : inactiveColor; - } - } - } - - public void OnPointerClick(PointerEventData eventData) - { - onClick.Invoke(filter); - } - - public void OnPointerEnter(PointerEventData eventData) - { - hover = true; - } - - public void OnPointerExit(PointerEventData eventData) - { - hover = false; - } - - public void SetTabActive(bool active) - { - tabActive = active; - } - - - - public static PickerButton Create(Transform parent, Text textPrefab, Action action, int width = 100, int height = 18) - { - var button = new GameObject("PickerButton", typeof(RectTransform)).AddComponent(); - button.transform.SetParent(parent, false); - - button.background = new GameObject("Background", typeof(RectTransform)).AddComponent(); - RectTransformExtensions.SetParams(button.background.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), button.transform); - RectTransformExtensions.SetSize(button.background.rectTransform, width * 10, height * 10); - button.background.rectTransform.localScale = new Vector3(0.1f, 0.1f, 1); - button.background.sprite = ImageUtils.Load9SliceSprite(Mod.GetAssetPath("MainMenuStandardSprite.png"), new RectOffset(Slice, Slice, Slice, Slice)); - button.background.color = upColor; - button.background.type = Image.Type.Sliced; - - button.text = new GameObject("Text", typeof(RectTransform)).AddComponent(); - RectTransformExtensions.SetParams(button.text.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), button.transform); - RectTransformExtensions.SetSize(button.text.rectTransform, width, height); - button.text.color = new Color(1, 1, 1); - button.text.font = textPrefab.font; - button.text.fontSize = 10; - button.text.alignment = TextAnchor.MiddleCenter; - - button.onClick += action; - - return button; - } - } -} diff --git a/SubnauticaModSystem/AutosortLockers/PickerCloseButton.cs b/SubnauticaModSystem/AutosortLockers/PickerCloseButton.cs index 011986b..864cbc6 100644 --- a/SubnauticaModSystem/AutosortLockers/PickerCloseButton.cs +++ b/SubnauticaModSystem/AutosortLockers/PickerCloseButton.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using UnityEngine; +using UnityEngine; using UnityEngine.EventSystems; namespace AutosortLockers diff --git a/SubnauticaModSystem/AutosortLockers/Properties/AssemblyInfo.cs b/SubnauticaModSystem/AutosortLockers/Properties/AssemblyInfo.cs index e3dfa55..c999243 100644 --- a/SubnauticaModSystem/AutosortLockers/Properties/AssemblyInfo.cs +++ b/SubnauticaModSystem/AutosortLockers/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("2.0.0.0")] -[assembly: AssemblyFileVersion("2.0.0.0")] +[assembly: AssemblyFileVersion("2.0.0.0")] \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/Properties/Resources.Designer.cs b/SubnauticaModSystem/AutosortLockers/Properties/Resources.Designer.cs index 35b3449..164a01a 100644 --- a/SubnauticaModSystem/AutosortLockers/Properties/Resources.Designer.cs +++ b/SubnauticaModSystem/AutosortLockers/Properties/Resources.Designer.cs @@ -60,15 +60,6 @@ internal Resources() { } } - ///

      - /// Looks up a localized string similar to Build an auto-sorter locker and containers to hold sorted items. - /// - internal static string desc { - get { - return ResourceManager.GetString("desc", resourceCulture); - } - } - /// /// Looks up a localized string similar to AutosortLockers. /// diff --git a/SubnauticaModSystem/AutosortLockers/README.md b/SubnauticaModSystem/AutosortLockers/README.md new file mode 100644 index 0000000..8b81088 --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/README.md @@ -0,0 +1,25 @@ +# AutoSortLocker_Tweaks +Tweaks to the original ASL mod that I find useful. Only Below Zero at the moment. + +To date, 19/06/2021, I have changed the following: + +1) Made the background on the StandingLockers larger. +2) Changed some of the preprocessor directives #if/#endif. + a) Added a directive to AutosortLockerSMLSaveData and AutosortLockerSMLBZSaveData. + b) Added a directive to Subnautica_Data and SubnauticaZero_Data. +3) Left justified the list of Filters when there is more than one filter. +4) Truncated Category names when they exceed 15 characters. +5) Sorted the AutoSorterCategory enum. +6) Consolidated and renamed some categories; there are now two upgrade categories, Base_UPG and Vehicle_UPG. +7) Renamed Alterra Stuff to Decorations. +8) Consolidated TechTypes and added some of the missing items. +9) Increased the size of the category/item picker from 7 to 10. +10) Left justified the filter names in the picker. +11) Replaced the existing Category and TechType system. Now the data is read 100% from the json files, the hard-coded fields were removed. + +Going forward, I would like to: + +1) Add an inventory count to the locker labels (i.e. [15] Gold, [30] Silver, etc.) +2) Truncate the TechType names that are read in from the game files. +3) Make these changes to SubNautica +4) Change the LOCKER label on the Color Settings screen diff --git a/SubnauticaModSystem/AutosortLockers/SN/AutosortLockersSML.dll b/SubnauticaModSystem/AutosortLockers/SN/AutosortLockersSML.dll new file mode 100644 index 0000000000000000000000000000000000000000..f7d7a9e7c4a74c0def5b45fcf4e9b9449333f3ed GIT binary patch literal 77312 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

      81AKTJ!_hW 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 AV*mgE literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.AIModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.AIModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..08a5cee657d1add6592c3b3748601015eee5207c GIT binary patch literal 44544 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�G4{0RFO3L~c#E-L$^P&x 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.AccessibilityModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.AccessibilityModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..fdf96de6bdc5621ba77c16d5bb694dc603805c6a GIT binary patch literal 11776 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 H=YjtObqyU^ literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.AndroidJNIModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.AndroidJNIModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..bcc76da690643d6446924d7c6cb04d69969508b3 GIT binary patch literal 56832 zcmeHw31D2sk#@f~Z*ED}NU|hj$sS`1KOYGB03>5TwtUIhvax(|+GA-f%a$}^M)Coe z6@euofh8O<1VUDrBP1aS8%Q7!fuRlKeR!5H<%a{9je~JLZjKOWN#_ z-5q;sy1J{XtGlbKy5H;fwEFCi3ZD?d!1w+4g?JFZ^r>ffWYCA=g2@jRi2K9OOnFdS z^~{v@JK8hx?sTdxo#>3WB)Ym%J@IYHc)GVM-rf~ovZguSnQBc|=jTVJDbZ_}3b9Hf z4V=%Q(5FPTkPt5+FCg;^{)peWOtW^B)}`K*OZxMtUgLa9`$YXe3Q@@aonM7YYH|Nt zLTutR_-rAnkbdHt$aA41PR4~m3+zt__zD{nqPi!!w+DF13jiqNwxT`mPh5zt)#*&S zg)&(;rQ^$PD(;Q?>U6Rr1wz&pI#b_>S90hUXXgm<2HH;_(oGkBadZvG*_b)8MiV6@fIhkj!oWa~lYo&|W@;FI9W_Vu1Z6`PO^l;* zsSC-l6!<-KBL(VEuc)0tL}gN=i-=6BgE5WN<)aM5lxt4aV4^eE>1i~p+eAqKs_#b= zjF~5ah7u`A4a{7i`!b7=Fbjxg=1!dj?ni^1ChtepvP~1H3i{|55rsJo)nqjcMONDi zW3p`%YXV|7)PP}u(gP}8LcVy55RQ@F;EFm z91yWU3LO!NhygOk;-H8HktPaK2yN7gL#4&xS{k@mC>F;5n^WkP$iW!uFAgII8vGO* z1nQQ7rs8V!fmT&2)j3#ImY$BzK3G-mJ6JU#J&V)Fq))(aEM%f}k%Lte)AK0X#PCM~ znHb=Ox>*WcE0wJD$;?(}$t+hgCqU*gO6J6DnH4UX8T50c%v=MBCB=R=;g}!Bu2oPo zmx>cF6fyJ|sF41M$b%hd#WjXF8>L9cxF@Jpkb13;q88Jt;M;}hr=sv#!Iu7>)0Bv5({{mQ=EkMT7wfo29-PT&$~WdzJKVVaf* zuA6KZ4aZ#PK}{#o(^*p;*EBo{<<|VT zfp`P55c)^z%3X!mqtG?oNOkm$@-1Y}&>&3$^niICetA+lje0))F>1jav@-*J1AWv3 zPB)|nsbmdbFp1w$P8+0BPoHlsxr6pW0#)x zYoeQt?n0kA6PiTePDq*k7+yn{itWcxVL+--Jo8xPM`xY}HnZtUx4Sz{)ppcS)bvK_eT;FCObm<3Gd_Q&RFsLm3{ zHbTCN`UN9&dUjcWV~Wzl)yEiFyC$+TADC@@4KuqK<-^H=6&*>AyZC%@3G^@)K(2v%`#ME zvbqz|S687DRD}Lce-I=-p10-+=z3!TIU(86g}QHY_2d&$m}C*27nnKH8p#3;vj_B1 zOijYrRT$=OWaYVXLP2vb>@;5wJ7yea(-i~cvEcU1UhoJjhBt`QE~Rc1Vj^siXDuPh zxQC04dHGh{*F`XZQv=n|5lSUUa#e@c{t%i6HlLztiD0RUZ%(Clx7XEi4 zhj()+bf`NHb4WOu&!YP@F0Mb;?gLA+ZfJHD5!^{a@&+zN^)6Nz=CG_OVkH8_x-6R& zrlwe{QL9LQ3l?S~TEMltyQT|Lp1+ESm6-RTy-NdF-LM)E?^Q&gSPy5jqOxIGJBgJD z6zi4QtXRPg%i2M#M4(ukvRNk{fpr(L5`khZ&Su4OV%S=D5-SlX)|W9}u5LoG9+tJ8 zScyQf-U?PxODlGl0Jt+H0F-LdSVpn~0u*l|n+sk-E-dSp&>&|IZ5!C~!>;H{{=LX} zZ#-m7j2Z0X!se+kStZ=a77imp^QS*oT5BrDyci*Bcu^k;yYFr0`C?M_eRd7L1v>lR_G zVIA-eLOh9?^(MZUH~gVE_cU;XZ(lk_0)KE{8A$1@1vJlVmHl zKZw@0Wlw6yALMYh5~uABqP53ob2{$ecxprX^VAt$cVM|4I!F#sly6q7hpIpAXG*98X{mr(ME z%?V59I#%i%+3j&Ac8STF@A|P*I_n;6S!HMNO^l5kT-CYJ%O8bHL;SrQ0u>=>#VoJ#(V_5@{P+Y>lVHkXmD(9%II{*JOIaB(gr&N1x?Ttb#Wh|3!sbx+`7 zb)3Ob_XIA^2GZR21xMWzxHuORr|k-kx+idPE+S6b6C8C<;Nq+&PTLV2bx+{pJe@dg zKQO{Qfs6k%@GG-8+MdA0bt<_2mU{w^=>Ld4fwzkP@;$*Y^ZICe0;e5vm31fY2^L~N zjVC&=OCJwY9D9%WCE!^wMsTH-v) zo*;*l_XH;s=TY_qIh?#FIEgrqvM0#lr0W}ar>pfnp$HQ$S^ zC&lm?_WtBT!@56d-Iyf#@~*3MhllSm<3^skr3$b2gRwOQpS+JH0=N-63x*h#110aKidTa6J}e~0 zm09C74FBwr^Ph$KF~~7dF7LMs>xMhuYY&w1-FKgP93;xS@3;}9?!M!q6K?j>>Nz^V zx3U!VMVR4+vM*9w*;h!M(jbq@P`j_R>OE#;^#;mW6T{IYFoARY`w=aSOB}UewYFMS zs72(crDP4O=h@o?Gyccw35)m}=}Fh<&FTq$CB_`eJuqGDDh-NN+aiSyVY=w7V zVGq!Zc2m|>K*_%p{BB!OrZP^L81cw{gdxK+7_UfFYc;kOQUu!t>9om`IU)PJN4ELF zb4BPlLnK;keaS@59%3O)%SIcP9tK|>G)Z2+=>`cf8rg9?6O7f_GLf_Wk00FWG{ zefmbqdxF4ks9*(YMdQl85FM??+IJBylNl*YvVhqH;0$=Sug$<02ILVF?*0JZL#BQ~ zZBVf^;yzx+LBKFSNERdlS5qj9mgd#+O%fwyUV;4lU`X9XgY$~iLA(fae8DmVhYAmh zP}%0ZP~h~Z`GAm#yIg@_3Ka#44V>LtKo`OJ3OP=0kvEPRd@9Jifhha~vpK5{6;nwZ zHN1jTT{@jOz%I9xPd!=epusJ*nRM<+7hPid$M|?1GBt7g9iq}ef^6Urf)Y9qezr6P zpBs_ZR*FLc`K851?MG1@ju|)SiO>Sn0&Us3a3yStwJo3s@#zP70}DGNWc1QfwGInL zizCE~*Zl~)Mr}DrLcO#k&8DCnw%OW$Wf`>Iteb|UNEe4O+F*_-1wwc7Vst-P3{m?8 zlhYD2TOj2yN$s6X0RbKg%GnPxqxLeUpe19r49ejtT$^ADS{i0kP|kh;qn3s&)Jsdi zYzoTR4`9^7A%KFGdUY^#r*kN0KbnNb6mjpseziJGZ-+*%^6Y>kYJbhLU}w6Akh0kJ zd4xpmAtoeq^$=1P8<--zkqJ?&w`$5V&xS6Fu!{+C)W$23ve+CIA-Tp-FHFQsNLl6u zjzshhhWSAZvot2}9auVA2cyR+MBGFQ<5zt4l1Obi za?)=?D4+0*>gi)6qPvvOeUZt|$_u6EXXoUH(;J-}%->nXMlih{S=Lb|{U9B%oK@@( zr!RCU;WKB|m6GkJuS0GO2T;iYz+++-UQM&1I8gfr72lj&Ooor*=cxEIxy5A0DE=Z9 z-=AAdHjLuysrXQCF&Qw5d#L!^xy59?DBeKDFXa}K>7w`~D*kzHG1)DOVYzbfVulW&&^m@L;iCIpHsd4H^cqT31if~V zm&Ogz?vNa3GG9G?E;5vLAtKIVeIf&2gjJ-wytLOjv}8Mc=`AvV7$Va5cxk`w&?2DD z;>%=_0o>vf=~un9?>V%HE3^2*SY)7@XiM@u`p!j$(ih%n7GDaB4Cq9=%uBo7p+#(* z#TUOK1256wUF@a(q(h6?GK(*FMFu`Yv|skpzUt6omdxS{T#vNngD^4Y#D@((jPM^h#zgLB9!pH0jn$DME}L*7X0PB!O| zQ$AanMUI^w$T`lkbTT`KobuVwEb@P&v7z822hSUP^j;3faZpLCv_)}Hwxm3OV!f9G zGTE!pd+bOouQAkqj48;Msb>{>C>^QY&-om96{j6>)#>YVn1UlNEgT@5LoKEZ%;q#M zq|xPd2MQ_8;Z?Dde>zeN`FaQK$v1%xD#Wn#6*`@Ntw#o*e+_ac@G3CKcDjI8x4~Z4 znkJqvz-vQi`xq$O9C6OUJ^ficCbRs8=fku<1pVM0l9p{HA*zeb?k|!G__}< z`H#Hw`e&pA&(d6=yCso&N#G-b%bDO3CO{(;foyvTe1JUc&|?to2bgvp)6$f13&Utn zG%sUdXzphMIx!+@FJdyXR7sXXCQJdNG%-)D?(@@Mpl+ZO^Th_% z^}LQZqlEfP5o{4Ig$Tt0H}mBL1WkV|5DS`d5a6c@KM1{urr2$SPyZeTQ+Yun=8x6} zxq7l^S^bN$didIj#UWKcJwigETq};GpR+ZI$~{Y7X>oq-#l(eYPx5cBJByQ%SpGG{ z!Fjw`{jp5a=B~IPmKQ6a6Fm{RQHbTqCSic&?n}f9iu2^*Z#?*cBsz*LM#L<^%Zsrx#eZZtihtA7EOKt($utf&)z8v2}B|L(t0v z9$Pn&Yw3$4ExERC_BaH%P74B$t(zH#fObEDXFaxVrX7Mm&JsZ3uRQCYU9aIcSGsGimNom3zYX~#tJbc! zY?7$5>Rs4i)$0?rkcx>3H{$0oPS5DjrD=X*j}U5NWB|)#fzUR9AN8aZG2-GI-B&l^C8JmE#f< z(`!XU_RnIm_BuM^j5c6hyaK@(Q=HbtG^pt`L`Q1pBUkT5Skw5jnBGH4ekw;U1EN8> z0+HZHH{ay$0B%6D;joXc%@=qksfgV0ZKx$O;ICE@04chLVaRok;ItGPyKIOw{X6rEIx)bgq%IzsgJB3gVD=o14B3x#l#CL8SHq zt_V8G5bv(&POgZ~6$GEftj;C)E)&2ZfB-YzO#okpj9|S~Sz1c~ggUQ|aYe>+)dtr} zSyx5p@If=-XGevZ=< zgL-`g)*^_B^rKY355>y5)6XHpa@z7f& zKKuuFLspox?iD5T5dnx0S$S5`f;ZnX!WuhJ|>g5CRv@Dm8#LIgWAuRO+=C_H0cCo<>+-$&F zUCOO&NUb#0yC~*~E!WA%SGNgyra|s2F=JqC*MfcKPzBcySMV_^;4>qzL^)3&ryseI z0rUmB;aK#Uz=cNFITJ3Rb0%({+eg8pQNN>}JI28CsZsE-U7?G(d>jOh@S#85vq9MolvN7<` z$H@1aG4lPtG4lO- zjC`++k&it5SjORJW90kQ2>EnAQ)kU_^ZQ`)8mG%%3dULUK=LWSQ!T#1(eX{Q_;AH=H1$LL^mC^A{xAaHAiTEr#Gk9%~+cCrOS$1Za&yA`+%gzk*d!ypB z?94Eq9~GZvXNLL0sQ4^9GtBRdiqEn$xmX=}e_D2Cn9q!=KFiJw^XU=uWyhmK;2W8p zW%E5cM!v&i6H;&y0#*z7#>^S!6AuAj%9yxLB?oshsc4nAg7!{voXNLJNqvEsd%rNgA6`y5i zhWW)&@mY3enD>l|&$2Ul0Vmhch8qXV&J6RjqpHucGsFDM2>Ik5bB0`JnOMl=xFt(R z?;aETG`=SA*CA>ej%SwQd4Ci5oem4f5-;aUkw`1V>!-#l1wm|0=a^2k!>l-<)%5Rz45NwwHSpH{m^GZBn zjYx%09=^NhR@YRYSab5+lPSk9Iskt@Ux=xf2(k7=Aub<}baPL-y{j!l6fdk4;^`vf zZDHT#EFe z;CVRU@uxr=tm7Kw%n|pF+XZ+j-Ypyx6@`nDe@o#mKtJG_eXruF#yR3~rg<1NbHoh{ zS28>>%h4F%&jKZY zM*dRhP8NGb`C5#mv{avXT)QqClfrh6_u~%KG%PuVxVC&_K^WLsj8SXzv#=7a#8pa)q>P01&Il($ryOoxE*xdPaH zZHkB~Y?8KAn<}boY`#_{Y7}-?;bv{RSf#Mf7H-i@u~}jBw9VQ~(W9`_v@O~!(WkKX zLceyr_=LiKKaQ{m751aNHeiD`c7cX96_(AU*(9w^nG>(DsiIN zYGc=ECy6|S5rKKKuyDS%K-|xm9O;GPR}w={d`ep==3~K&$RK`*wx25cZR`T=bnzrR zmCMDQXze1=Pi`KRpFwLEixr3`gjH(uwI$+y8@oVTCSIwNWpmLJE5!Y$O6*khM58!& z5njfA#A-2( zF*)u{qMNZxMa#G`+*3IIXve zyA`%Nc#)nI?<#EV_^b6cv2_{o$@cBc(t4+;SuSOcAOA6Zr`W8p&jmlBcZj_TdopmZ z-YHsFNXm5aQ+l_kIYVOCl>~ejh}P8-yR9hTON;(B61%l%mMsvWuGcK;M*e#H%sgpajS2yn6I$A#2vm1#bz7(obM8GvBJ(35BNSH?zZ_h z>;EX?XGtk{iSzXjikld_R@|6(zWx#MTUB;0%B~R)o-HX?hJWk3UR0cKVGqH#_u1Gx zzK>A>Ldt>Ayu4cDfQ_A+w-DH$73DKxyMCi6-$KO)#4}>Eev_E5u)BcWEH>NNa^n+X zuZ^9r|FgJBVdsMKcJWmkTW;JbUa_(B^}EHp3ZpT)N0e`s^^G6D#rT{!S7FqHLnzFE(e0SN^<6d`BK51;%58Hg#Yuoj2 z+Sn_`AC1Rt>@Mw(#@W5yfZY;kGlo*K@InZw(Bq0*g4Vd`inMpT(rcG8)ozYM8z{YMu*$-{(oWd32M>h6I$vFRjjjci3U$wE_g%kWgwy{^?Lw;&w6QV1` z&ur{2vE2BDjhzeZS2mUc_8S|k1NM7yl^W@HqOTi&P-WMO?FFwJZ`zdaM341jZ%7}s z_OIe~1G`IwHH}N_Z`;_}dG8q58LP78z_1@z*g{bL*~aeloBqGpSTZodk6k!@P{R#@ zIsW%;>`ngyzphzj4+a|ie(i3hb+3P|KV+A!_21`@+Sr7^SN%9aLm$XIE$~f$%*JN; zzvC~lv8Vjs_v1*7qV)L({m0nYm-S!!D{ZX6xJaLDWA(ljSfM_dAjSitU4Pv_)h?T^ zpAo=;Y9;du-Ma4B7*>2w`q~3@bQ2%6;U`)ufJaCa z_D#JvFwe#+jf(>(+1Og&Wq~^F7YQOgAa?5?4&d!Yitj}IwE*qB@PW+heZLQ2v#797 z8gB=d+Ss|qy8*mTLzM-6zTg=)_L46WY_hR8v{>*=8~Z1WEj^Kd4{B(_*lx11K8!6r zKq}D1UDZ`g?8cDvT{2!%$^E_g$pp5fFuyU~DheO12StKr~=%@l22^dtW;v&}U;? zF}5GDu^kv&JPxHOXJc%yu(1~~wjZ*wevB zdu;4e#fw8#haylP`l#WqC-ZS1>+=S6;MV{gY=B0twYu4=z3)*kt#U3OJWi~d^sj4G>( zg`&T;%L;+LZetI`GSN3}?A)RYqi@^T{Gv;vf3~qi>_gFaY-})gP4qn*`$ge_C?0K5 z^DkO-Yt+!)yMmzppwguWYlfhHaSM?i5ET1^`o|PT(LSVqUSSm9!}^m7qnH}e-&GjJ z&8S|}Dy2}|%+p&HMzJwpze!;f-wX7o6-H5eoNgo~AI0|~eWAiAzK_>?6h;xfT)#(Q zwCb9u4=RjST@`xCb}5C{XO;R2h0*F_lHR8<@-|cS2Ng!1Xqx_p!pNgc*UdI5g*?Md zeXGLAYaFlNq%iU*HTts(Bi}Pm5ABeAlH@+tWMvnF!DTM6-KdYn_fegU|~xX zos#+vg;D(5q4z6{BHk|jWrb0s?9vN6B_Bo63-lEVquAf0_bH6l1$*=d6-M#>Lj4Ve zQJmhdn_W^0#qd6TtHLP0U#8!rFj@&*p+BoIS~Fa!hf zI{jXS(dy|2{Z|U3RnP%F-YuojYUU<=v%+YlbF=3>!jtrZ{CYxp|(0YR(LhxHu_qxI+4^nQiWy7lY&%L=14?P0yJN7hc!;t73; z!YCd+sq>#dgiTOf`Idf z{(XJD!YJCmtba&hv`YAa{#Aw1D&dFv8w#WK#EM2HlQZ(WEJ2)f<_Zhan7HZOTv$Yi1L_mR4UUU zPD}a&uF`)`TI!Hnm%HBFbRTNh1VLTA#QNvvj8^6hmNUpbM!b02S(sjZBx`rK(a)5_ z$sf5Uxs@sB|`7@qZb1b&6^GN#E-8%P(jHI_^js4u-%l*{q%dncX?DLCo zXg+0o(uUhSIk=IF9G#yyv3!)IBoC$u37=zY*;7C{Zi^Z&P0L$d6a#8P@{-JKt)%9T z1f6G@MMEv}i66r9$C`5<+lCtsvi=th14$EI$R2Za`=63S<1WWe$Gy(~y0lNl5!u_) z8f9ep@1G;*h1){@C*?@1kS+SJOj{P>X!7@yxPi zD*?GSkTkiz%k6mv3kpS@coe7C>ckIARv?GYmeq-0BHf5r z!hHleB77avy8}0hed4;{ry$|h{Ldr**EroZL(Iy*kEJ~%&VsZ#qfI!wHW13VYratSqys_-o)@r41dJ%-xwZKL|pS&!pWT8 z$M9neA7=PFhGoS>IfvmH4ATs6VtAP0s|?>|_btH!|*wV zZ!s)o-jf+_X1IsptqdPyIKYxSxh+i$A1$X^ZesWW&iN&$^CwXLe1_*R`~bsGGklie zpBPR$hA5XZ>|l63!-p9DgkfkR(VW0=Bg6d+KgIAlhVL+}svycWfS+ZXxlh~6ITx^2 zD*+$YF6Eqe%ZPF+=j)}E{(s{M9%lH@40{-^;?m8Wu3#8t_%^rq2Mix!cq_yCT-wK6 z(-AHxF-zrv;8XZSwDIOpHVX*n)uaZYbpgLV#D)PjGLG0Q1^8UE3Xzeq~~ zenflGxLrZYzn$~%!0D}1v?T_?!wii8r7vgL8svP2Mu^gPF#I{gzDN|c92$2$;2=X$ zNa;AkdWKsW_A%^dc!=R3LlI+ohV=}$GVEj6&+rh#L58A;=^55D+{&;UR{D41dn_ zVm#N&u%6+P@g!#}r(2P3GWs~(KmHc&EdL=+4>A;`%*(Kz;Z}xy4Eq@#VmMfOi}to( zlrcTSdWKsW_A%^dc!=R3Ls8E34C~8p(XI__<#Zpzeujq_4l)!In4V!h!>tVa81^$f z#BgxJEn0a{9K-Ys>ltok*vGJ+;UR{D48=sIpLmOQNwA*NTN(B->}Pn0;UGg%!SoF4 z8E$3RS8vX%i(c_v zF(`f`{uP_-ChbD)ChZ>WKJ6*(6|Gu7Q{SZ@)F0Hpr|0?R_!j#<;Cs~fgzshFAADyS zNn@4&j_AKczZCsS^pWV-qu-2vEBZ|I`RMnfuS9 zd1OImYeJo3%c5EiD(~lfJFh_$@fnEa>h}!s9WGm~e%GkqGu7`V@l!rxw@J~T1)QXx zqw>#D`RA$pUFx?}@u$>pM&B5#P!9PQ`b+ z?`iOS8Q-ts`!#%_T58+QIijT_ap8q?L}ORayt$M!SLVzW>r==(X+D+AIY}&Booemv zNS-E^H;CoQp5~rJPkYO<_GCvZo}bEWS(n`2k!UEi&0CrltzIgcl6&NHVH?&j6N|c9)2a5>l}(Lez39xeq|zPj+r*ZJL`R2grD)Hn z#1^{^VoS5t31U%4N2*0EN%kaKb~N;+)5)%$^*hqZM5|cTlbg46Z%eY9I%-Wz3lX=9 z&MmF&neJ2u$z|zOr)pWUl{*l_;K{IcSd!}9){&G{wl?leP`XjjxKUe9^WuFyUNNpb zqRXamFk6O`WozPOfyzNp?jY&pcB#KDNRErAQSMBpq-XkEG!AOZS(VD7AZvB9K;+BGSTI#ghXWJf;J1MmbtlXSq(c9X^$W$3sepQ5e{PWFY8Dpr1Nh5uQd)BBNXFhMlYR4r z&VG^%-bLg>F#%i!N+v(Dnw3oko|R$Qvn!K~*o8`2${=0&xjB-O?9N5zK_v|vmW#-X zODbtMF0!l)jIygpa==tvdD)nxV8d|HxbeoW-Kky4m5JSnwdvH}eTu4+jYQb)c1beR zl5XFY6gxqPDw65#iI${Tm+bDK-?n7W7F5-;Ykiu~P7>$BiOGfL20VlmuDua4DA5H8 zJ5*?cc_x#tAk&=K4)MuMCefA@OS@X7_F{3et-VX7t%!s=*Y$RFCE(>n0|H79H`31P zv{O6N7FpvG4kgSYO%?%rMWU+}B0%2L-kDs#uRE!7T9X~gHi%UyhK34hKB=5$*c~`G zbhY>FTiOK;lhu}TO^tFzkX6`_N+*ZNZia0o(Nc7JSE3`MD0ogcB|0%AaB_TUP=VBzZw(BN;m-Epc%olN54Tl45ml z2h>PpdX}iJNB8YcrrWo-(~!|p2x|tIX)g}Hu1j9f+m3!)ysrtm@Ai~#zg282mOapf#YZcjjI?o@})(x|Jooz^mm4yVW-=8f%{ zc2u}N<&;Ub6<8Z3(@t*o*f{xX6Bu(I4ku3;aYL%J8=bPPy#to%l(PG!Aj#^Aox8~t zcy2dl)~4G#q3rIYXqU79!lY>K?e0#)B9^tI3GK+p5NOO;vv|#Rtm~*hmgBVmi4Ls9 z6uv2$*yZG5^5FNuaA(I!aGDgxj=IDETHyO8jlC8Ul&vpm{|{FSgtrE)R?`p<06p11txk4sOEN0C9Ne{2QkilD7x%VzU}lQN?OpW4 z^AEskEr3ofjbg@a}PKPukgQQLmyJ(T#5gU)k~1 zOWG4{U8xMbV#dl+bG(|zG}YalOz&=o-}V-h4`}a5rtNa+dJ6ikhQEM zfwzFTZJZj3f($PR7NsfC)h>TADjBi#f?mWb0Vhm9;>#$k{CQtt4w9K@aSO_mn2&{5;Tph0_ zSfv{?&4|_tQB^Apu1BSy5igk(+D(f$m4;R+-mnN_=FPT9b#H0x?Cxl9Y3~t@i^yfH zOJ)$61ROa1fKaY@*g>d>PO)H!T+ni;@RH_cf|8c&Uc#I_(9r_iOP7;J^5iDbOFC3G zsL7nXq&az@os##=Ug8nT|PGQ+a(7j|X7AlG+2a zkO@TR*5qDz-o2Qu+W=vBSRwV0`@l6CuEok*pR#kP*fr3Id2S5S-6*>vdk85$ItYbE z2O~-cTc2{$pmPu+vxge;oHWQBL@nZ}71C1FYJyv#a=1p9g+Q9yGRU81;Y4rS1Bjh8 zC>?~z9BTlb3jv`EBTAPsfYgnF){PReWe}jWlOVIxMB^9(s9Xr>To@0y9N`4HD7U|s zn+61FM7556*g0je^5%t6L!vtYr?3wJUnSrw*n3kZxs5J%;)JQ7)11V$H^QxW2FJ?2 z$hFUsxQhT`iM^sM$lVvf)yVa&9kSPSNm@)1_+FXrCO0RqvC`$?s+}SscH?^j-d~l# zU)F9zY8|fNci~?`Y(p*{b@Nr@YvMZ_-x+xQQ4`+V5f>TI;jJ4;b&E7|_Tn5vTy%n? z2e~QHDi#12C&a}<&`tHwSvAK&xebqzB|+08a6NyDRpQpE8M5)_3{c^rt10b}orH!x zq8;CTVg+=~pw0%a6&lYn#VW|mZQB}GU8mqwL!%I9trSi8C0!dKlO#@u{5Vc_bm5m; zM)j>!(%cf_Vh__(A9SHNI`EHr15p8|IfQ>UFpM&86WR+Jj=aF3>;Za#OdM{MT2;hQ;vJ3&yd0M^0tCJiSe&4yfxwBIx&5-rW3MtT)n-<8988Ar8KhVetq5R^u>G~3A! z4ehOHLO4pE!2T^)nNx6cRw}z1^p@|HD&G0GQgLVnvzu}Dh#TTo6zY$c>Mye=s8s&; z|DMV_YC`p?Ue%k?h&GHXd2@2dh(_lO*ADOax+M>16WLuZrgWi(J$T!e6@h6olDnm7 z-a@snHsS7v9zM674p*N$-l4toq_b(__O)Z}fXm2;{8SUgJvouqpl(Maal&xz&z8MX zkO6JPieae8J$zqTW3U7|wD2UiW|q@FG2I;2I2|gqukZG?Xd3w`IXUBYEQ=#QjiK%3 zB@Qh<$d{2n7%rYt`S5YHTh$ZCkqIkC)8c_@NvLHM`6?+TD~8rd-+Kz=dt<0qM|Yq^ zh#67WE<&xO!#=#0*Ybjv_jdcmPH0QsQ7*;St2KuhCwa(3XfY^?CBBO3+R$S=;IOD) z$VA#fLta{%k_b|-@o&2L4j z*IK-WX^Bd`;w&ty*+|IsR-^A7M=T~=hUcbm%tHiaOT^Tn=xE~68i{C7TTHfOBkJye zHt2^TxfVlLS34(Ux7)>CIaHmN-H2kVe_R|xwx-$Xz41;@y10g{XBBj${u0GjkGnXA ztY?`s9^;*{adFwpe0N_jagSV?dmLSy(}(Jb1~tkFj?p{<#n#BXcw;nQv&MWJS)$A0 z`#$bn_tWmcy)>Ym0xdGS*!z(o4(%%B6grX%u$Izp2SBFkaAr+=yUVh7MlJ&$lEUp} zg<6*m=Q^yKopmm)OK%^0mpCgk%T}cywJI9kKaR3<8l3g0*C*19BriqYrUirN?&7S5 zVyi|&N&X01wPq(A$HhfB+O{9Oa{uITQJlyQ_e48~X=!I8*X87oXfr9Qh7QE;Awm%H zVO#3MyBPZ(IatB$^&5U?mZn`6X9QPsG(zi385Y)a9IAgYYj1>$-|MP&t*#R61yB{a|qDl1T+6%@rt z}uZ+zOLHm#q)KCOrTuzNH_u&{W3#%-EFo-Uy zP``2YTdsaXlB~ke(4U6Tw2DxTMjVp_9Kvv>x1ge;A`%Qx z4rQWmiYm&fm2pbO%a{Faw)+@b9i62^s9sdX-C7mI$QM-=RY8k#s4jb%?4i88ASevL z0v)|nUM@=tkS?Gek1z?T8rxq1SRUIS6h4?uOb-xqku)N_i98s>V1&xiA`CQYDJm~7 z&kqJ@Fsc9WYs9rsC@3@}D=P|up^Bn7%&MXwRJ1RI;V7!`MPRlOErc(W*I_`^Y51_! z(|hSb9tiq~2{Z=20emC)=HZ)Lts&d$Gd3mUu6s?4M zK=jIxUa9Mqe!bGrD+79EM6b-#EA#bApI%wu10^-OXkT$KT2wVjgh+yHC`Po9tf!p& z0WIWStgO((g&OrIQo%yahm;O&&{MJUaL`Xb_|NUCs6hV|U{uf^{5z9P%tt+60ZM6h z1yl*i3K)98rw0OhAfyK(dLT~^HQ{;k16}?HbfJ~4E zIs(tS9d}}}jK_QGV*BL~mivP=GCp+K0!^GKZxUoqu&&xSHJ-2*hh*DZTshW#UwN}M zQ;oe4&%RjSZO3Y2g2U<|)JYjJ9)BBP?W#rVm#ta1dds4wCF|DE-;aRGA*ftVLysXM z^+RN*q4EM0l~ZfTI739Fm4}!JYSSoHLU&(5IZZnxFt{=SE0u`=ContwDE2dQmL}Fa zYF5+93Az;}@AAjnGx3x<#Zw)}DWSNBl<#gS+D<+s7jMU*H9D^>Pz45ER*Z(oM4pw% zw-OO6fvE=?G!zX0gnAn^vDQ@~?tGAHd`J6;n$cZEhtjJTWJ51NC*s$y=9KB76YmF~naaL1ZNBLKeYFouR)R zFaKTVQi$$y(g5=9%Ok49_d^}hA(W~#xDFpfS^#O4KMHA<{TCL_cH(DLJIAYtaX`aR4trj&ITpwyj zI=~PS4Cx5NJcjuU5fFJ^h5UWj;LUPZx|E{{?z)q%^fPf|8V8eR!|V0Tj&H+|%{ZdU zBa(t@X5^Tc)JuAwkm2b$5^I^uNP3RuOAdp#=VXo235BE+3aRdqPADXuPzYuXUlc0O z3u1inDS#WN1vp-oi4{o@E0Z8rC_$`Lf>^NxHConI(yFi0M%5f^$7y1UE2DboQ^8`QCQ998t~14A8XgFAm&xKLdD{&+SHkB?;$Stph8 zR&!C2Rbu-`i#M)`iP;qGIPQd#c@{y1Cd#r1dRyC5R^e1lOmY`Cbo3&yrW?DudwVPz zyl4FwH_Z|p@ud@U!Jo^O`0c#B1kcv=))KKlr#t`-NE@TBV7& zyDl6$#96?Oq&%r%Nt%R}Sr*lfeHok>w2HkAUn`5}F0lx_y^gaO+v)6}RqkyL7NyB# z7fzPY`EHBIYd+20I75(-Uic2taW&}21Cf_Cs~!8n$TsPiEc~AF`5|f9+dT~ znyn)59Nb{fLGJ|G(77$0u-Lo?!_r}&U6>*kjj7=;xVauk;Pm=rh7J?8NGuk417RFCamywOJapy;EcJy5UL|*(F|6R)IxMSf|syjcZ8b zAtXHEgvah&v)XI$Yw;))o$AF?OF6V&WjER?RpJjgx*OcQr@g1eHY2a+*o>2$Yr1R` z^o~$dvS&{!y$ebTQL2fUTQJPC7h6-WM9!{OXTJqKFg}jC@PLvUO#FpKkArd*dFSS$ zRyt(bj?;xOW4zqjtKr(-bPFEoVhz1z7j6_-(K(lhAIPFnbGJqv-B;S!Q?=TiU+v<=UynIf z>N_+=wURVX6S4u-E^Fm7w`e&C7LU`wEZK`XIvTs?NK#zq*F=F-z-cs@wsp|-_y$_0 zb|2q^{^h6Y1gY#T-QJE-?M`GeF1nmRPY*05I_UXAY3MY!mZws9z;4kx**JN8)Me|{ zSc$eJt7~fTVy%&o%^expypfU39~s$+BO^O$WMn6gjI4HKWOXAVn^Q9~ zvXPC#oRN*foRN*foRN*foRN(JUOO=oLz*+PQJ6EbQJ6EbQJ6cjQJ6cjQJ6cjQJ6cj zQJ9NSu-7BQ&C?~x-EyjqkP;e>kP=FckaFaD!eAWVL^~pWY7Y`Y!i85kT>!vmK8D;$d=aH}vIJGO;3*|ay$K_3kGm`t(<4N_dQ@5Rb za^l366Hl5`H*bEjrnYXpwq7r6-qqd>NqEpsJ`1S5@)k8he%_;WTp^yHH(Yd1(H5+k zmvnTj#?DZ_)g+nZ=N*aS{VEZ!cS!#)^}nnK=-=jA^dq1bE3bigPE_zw|L#Z#pd6#!{&Vy3sz;ybUK9pQ&B+ m$bi!`QXkpIY#MK`$64C{5b%b;8{4oErRn;ApZ|3|@c#j<-M5GU literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.ClothModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.ClothModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..8f5ce4dba41e38453b7dff104fc3deacf9d869f3 GIT binary patch literal 14848 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.ClusterInputModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.ClusterInputModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..ccabd8959a95e2649a4c4b36539025c4473da35b GIT binary patch literal 9728 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 PweCYcqW`P^0W9!u-#nNc literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.ClusterRendererModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.ClusterRendererModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..bf12d7b0aa383d9104ee86b68dc5624a1408fbd0 GIT binary patch literal 8704 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.CrashReportingModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.CrashReportingModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..2108c82c2875f1923ef4e7b360818d5aa2d4051b GIT binary patch literal 9216 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.DSPGraphModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.DSPGraphModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..25f982e1db5ed72fd34ac60046535111e21fec06 GIT binary patch literal 17920 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.GameCenterModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.GameCenterModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..c4d20443e4f2bee7c66a91ba179ba4010817fafd GIT binary patch literal 26624 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 JZv0Ii_?%j0%dQkFrBswu>?l=^ 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.LocalizationModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.LocalizationModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..deef0038b83489369e2d46c8306b31b29b20c990 GIT binary patch literal 9216 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.PerformanceReportingModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.PerformanceReportingModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..c259518bbf8b67d018c3ca9d475e0f2a355e76b6 GIT binary patch literal 8704 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.SpriteMaskModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.SpriteMaskModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..93bfc607bff32a079477b7769964360bef8a464f GIT binary patch literal 9728 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 teE11`GmN%^er2I?(lTW^ApP$!n#O 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.TerrainPhysicsModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.TerrainPhysicsModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..1174bc2e5c8a6df49323e3cf4ec826a95df66afc GIT binary patch literal 9216 zcmeHNYit}>6+U;pb{ywXZ`!!cqscnXtEoG+oup}KL;Q@hA#oh9?F7`4%?Kq$C_2ydEU(!V&>N&O0;1fih@~{3|EBY+-UC7OH zeh^P6gez+46w&e^|DXJ(iC{sP+EG3jmWVXZIOn09Tn7M6Y^~{ylB6`zDb208c`mVT zgSFoc_>H7NP&C)D959Nmr$A&`oA5-^AklE7DA{Z5S0vUgL9O)7H1u9eq`30GNE;H{ z(X?a7?R{5gkQ(c?WC^Pq{n4GO+s)b@=Nes#>2ir8~Kgq(LK_6 z#dVk&^nLXtx2cOB0(Q`#YEQJ$X7z^Zpb^x-Q|cAfL+_$t8_lA=jozb2 zxr>_R>;VNku0Ud| z7u+i~L%?+EnB+e$xQ!m7bt#S3(cp5%je;$LUvJ@>x0W&fO7MBXOM-d9qk=mG-|Jw` z-w3`S_+>#`FeA7@Fd_KnQs)1q;7Ie#no9l^&1j|pxQB*EX^#+*MAd|I#|xKFT4@ST;+^Sa=-1kVd*1$zZs z1>ao3oG%JKBWMZ^3$7FVi|G6ua3|d_{{My8@|<9Ik|iVrugfUBD(H{M#lqt5Wj^LDkAU zI|PpjUJ;(pNdDJ?e-vzy`i+9af+q#P*E)hZdx02_VgG2OiPRd*o&@F|(GD6%E`hnH z@U&3!A}Slw6_jMzsMRWZpn>ieUSFi{ON-RW0vfA-Bq%?8#3@uQ-f5YneHk(&zJf#XFg?KV{@Sqd+D7+^AXcbUSa*jBR@JV|LNB4Q<46 z4Zo*`>RP9ZP$uW*D`vj32&LBM<_y_6-8Bjs8y48QwTK9)aMp0m)25!Yj1inVFgPQQWtr%Sw7loIl%215MoAkr^`h-mJh&^Uswn`sm&&GP zxLLzJYvzqg%|7g^a4d?Df6%dziH_B zrJOY%D3dkvRTm!MkbCRu(^r1B?WsdQUHi8mesShcW7PiQ`A25g?7H@amNcnknpQ1s zO)Ir(X>y55t>{Q6Q!7%b<%!Nja!DeQKsk|0b*5GWJR23Qjq;3|E*1jEy(v9AIqvG^xqu#b&$w$A z0$N=AgN`?a)3F{h#D^eL(u|oBR46!JF24?aM&p7`T3x$_(&Ye9-Y9PF?Gv4 zAFNvx_s3x;&-4a|Zc&tu_BE-yn3tB}Pt~Bi4T{z@a5XG;6gRxK)D4UV?c-jbbe+>Y z%>#PeoNV4T40}W`d)06mrg->d%b29b5xsII5EFNt&w)TMhdzm`iX*$Bm;Chw+X^kP zC0ot;+e6Sv+!wV;8<67;ZJg5qSKQ!fyp>HEHkQhWDhqmo%Sw7Vkg-gb?MAI=7( z_#B)GXIOj!&6IMk9yE&wj7Ud(+L$5%4_>o+qPI zSHT{z-K%Kp0(o_|q38tXwel9c?8HdC#Di|unB&L}_E(DgZ}z~6K&iNwX0eHd%S?O; zIF9WnXc&(`-deojs$HXlAZ!yk` zIF07 zvl88|Xr-?}-DnQ&;7ESo2p?0+_jwoue#s$XmE+XYCPuZaS1J*{1sgrT+341^tLObd z=eafRI7PfUP5H+8??#bW*LZ1n9;+Og8j3_y7=PNpsOBFr!T<_;T|ldOGF+IonGB-Q zw6Nuet?L7}fLLoDu0#?L{JJ1w;{>6P?*JW*L%j(UzB89VWa{`%cBi z{F(D<&Mi#A_pCbQBu>qvmURSolq8B8hFp;`$BiwN9;~ze&*%6X6TXoVU2Jp(M-LI^ z`ht4qJBa7RAik?buAbjbAgXB=-&Rio$7l+<3>~Ejlrz8s$a8un`Of?NWhtKa*D8|u zjfj=nQJ{iUom|K<$sz+XZ8}Yk&^P0I711=PI%+GR>*RsYL5b4^`ayCMLKSrKz-6Mo zxQL`);pv0jdmy`yc2SOffKRo2A3p+lCHxs^?V%TvklY-hm8JiASgQ*k_npSmD?EYb zqmWRcyy#JG(35%l@D)IXy3K;u1$W(+K79SCKSTxU20wel6J8sATM-RrKrum^$C$9y zY`Xy&)56UjQKYjc%HU^D7SYlJPa2PJXPwU< zkpkM4(9WeZkj*KL$D=LK`)ExD>%e*kKH?I4n&^Y-ufY-vf1LcWnna(zeR*gRA1mM1 dMxOX6q($0?6cEtze+C}x*s?>h*5%Lg`7oT_EB|3pSUrho}4Mri3oc>gV9uIwE z&Ix1VH|BH=r1G($T(&=#9E|lQGns55)?>wT!sdhX`SMWH4Ma8azj)WAQlU48 ziMBC5ijQN28TvX#RB7XX$vsAd9ynJJ^m>OPN))X91<UM*YD@JsABA3tg zGR18h)%S~WcU?_zNFryYvrv?_9)pl=U51bAY9dtMUsx{VicTiu+Q-OHfNgSfY}srx4%P6&FfAn5_frm4ffJ=_PaKNj@CqI< zrhK3(R-CITglV{P#Z;zDk2e_b=L6tm5dwY+PTO7?L;5}yO-aAe;xJBumow;jmi zRW4sQjvU@|%D;CUIsEC!-%}ztX$tCxcWt>R+vie{HYy$XyQtGYz78Bz)Un3b!I%_v zQse8uRYjdGG3`^h*D)hw&kTF)Sx@_wP21Ip z9y8o}+P7S9i5@fDdJ*Lpbg5L28E(C>(&G-4*kguU4{c;Wa}P`On4$Dc+JJt@$)3U3qCts`pR~dT0WC;)%ml*o?QqOdQiR97o@g)1aW+J>StiiEE+%9nK-m{NbhQO3q?RCk-+WW->>h{P! zN5-bw!06lrfq$X)-p#CK>qz{F&VO<1+`>9y^8<`2r+l!8-daSDII6c5ng7*c-Y!h> z%S+2(nx1P@7 ztIGA5;nu^vjeCmjXOaX)um zcUvp&53}qv(5utg9?*Q5sCV0?_lH8WLA-4&rKvAS?Pr0+e4!?MzKG8c@L7Nlf{LER zhg-<=6!U-<;jPTFvlPz-e?RIuWLxFzeS;v;O=lmR=cPXjC!`5yM|YKSECj=7;<=>Sdb; z03-ClKzjt5qEjO}%Y*Ha2z>(3Pd^4HOuzKkg(K82{2*YM4x*iY`g{dj{(6{o?uO1( znhQH&x-ht`Dnj*9#(xuNtGt~?v2hC1E#Qag!N7YnyiK$}cii!h~bCA73#cJrN??5Duz3Z7$ z?jO#y{%A!;}#^_@<4K}NJVav-vR&JwDIo`B{E zodb$BZx z3m!7)O)tZhA%<~(6%y0MbSG^comPDm@XJAle-eChl<`YK466eS&G1o2e`eqraHas- z7MkdJa5?}d(UaaU;YllB@io+91$LveZ&X|XxG0=qJdy)^yJ|1sgZ`@w+rpi|w~k&J zV0ge=?uIXN0zn zJ|gfwflmP17Cs%C4e3__ZO)|?XMpo+=nTxLu|4`;S&s~QwrU$RU!+R_*ZMCBZHaMA z9-e+$Wet2X;!u-89aB^=RTV=leqK{=dzpGoQx}Gq`i-W}^~XU~&mmmbi%lO*6Y3@7 zPt`4u*;I9)1$kknmQ{u?!_MX&n+jY;5l3@c^<_w_b~!WLf?Q-%U4a3b=1@0O3{jm! zT@u=l*ta#m9K0UUZd1cGmtp4G)Tg|c(R_zmQgH-PY|BN5 z?fn*H^+FvEzAyYkI-9m=>a8GCLz;TG@=Z`jG*w;o3sA>}ddbKHeh=!qn)+>p*H}cq z*VJ=0HO4tKb1v8Zl5u)urjei~P2J#&8;hyWp&E^PxV@X)2sc7Xqk ze-qSignEg3=)1;>k~q77Hk_%vwA1$|;{s>=SaTJ1iR=*lAy{cP(bZaWA5Ae=(;Zq? z89K{cL(ghiPer}Cj=m?9njIV1JQmTz!7IJzn;YnLC8H-p`#@FlLk%6Kd%XM13#my_ zK_2OiG@vPtf{ipP)OEp2gyK?cbAI5k$?K+~Rt0VbbySyQ&$rWKnqtql(+N#+)NP_~ zYU%^wW@8h*rYVlW&GZXR{VLdOY^L99>cxs%%`Ft+r5)q`-HJOv$%VE&8ot}S$e}(T z{urp~TJvW$_Zl6P(9}CM4}e-B)OD1r{<+yntx855pItQIP>n`6eNby24E@&JO8014 zGF0i=PXDT9*H%yV?4Unt*#~?xJv((w(A1DG@7YZkYl>$_zuiCja8(TrI5l)sKj|5uKCRjBd&YBxBfGr%OP(|h zY1w|?H#~!ml}l?nDMPnt*>U>5C*zcRi2lKorH8eQ=lc*nt|^}3SJKxt^=i#RZ;oEm z6z75h{Zdo!R9xsCrax+mbHP6H^EM2gSQJTn_fu3;Ca9}urlzVvT}@|c>Qj+|_Zn)@ z)bsxPyw}o7O?}4y74IQht0^-))AK&MNT@@Uz^GhLmuOjK*zY?`87*tBuJzsGc;XTG z6OS%@)f}cPv91)U*)G|kpx?8^XUh%+A2yfx@Sr2*4h7$5Hu~^@qp3SV;Za6YezVDU zmqX0}^&yA4$7u2$b*RTceb}KA<~rZq4z(84M;vOYca!fPhw1?JQJbP~dAfb~I@Ghq zrM{0j)IWJrzWW^NM@G)~fJ042?SJJ^JB@374>{ByJU99tcBpCI8-1T}sLRaTe2+TR z5U9r-YLn+9zT*zn=Xt>QX@@!;)Mp%OIjAQb>MGBpKHjV2syRffjmLc_9BP5_1>aK+ z^S>0V9!9rDZb^suJBU3shd0zIv%pHLoBWYRlcekZay#80s2`}wKqW<2?sG#d}?9=fRFKbA8S_Dwp58d0wsFKdIB zvP#FrkA=C-yC&SiHXqk=Q1n&5CIX)ea;Z~8wquHA57s8uFLK=YpObQKck8=x4_!Q_ z<)?0yTRMJEP1=KJT!YR*B-nL*RJ^3xukbVQOl{J1K!e=4(qRi8Ema()>8^1LY?^eZ zSa##LAjS+*@K$Mqg6^`)=5~y=YN6fEDV61%bvxF+w**uQPB)1pD_1Y^0~FFE<~d`4#=<0{SBj0p98z zGMgd22Jk4JH=2o`EIv(pqI*1_lTu#<{JxK24SfZ0o&N{I`H67e68NtIS^xXKkRd$+ z{JyVF@Hv3XW;6)iC@@IV=^j2KK+A#@qrU>2hts4W#pyWUB64lap>ZE2=xpP;5W|0nGJIQLw3hLDfolX_E^t)fJpxY%{HDMk3;Z{M zr%mFr=Lzf)c%#6-7WksTXQY;Y7W_WJcM5zn!e!qTIJ27Z6#{n(+%NE6fzJy3dx38Y zoKeI2D+O*Bc#Xj00)Hs*Hv%J4*K&b33VcCote(sk1_a(djq#@h{zPDKI&&5a+$!*( zzy}3>P2jHt*443QlfWwk-XZX5fj<*iJ0n3$#s3!=7XUxoNJ}j(Qu`Xg|7|MsuNKbT z0-qE3hQL1w{A?xb%$&k-g}@yG_X<2J@EL(W6<8%UmkHb{@O=Uw5%{ve*{Hq6Xq8so zC7x*!c&vhJIVfTY@K~ zUo)iM-&KiafzJqhP~Z&$FBf>ez|#c2EoFZoQ2FN$!LtH43#=A+MWlr$;k@|`+JhP4 zF&MT8>^1&C|LA9E1{ls4xCPK-91{FVNPkW3{s)W-jN|jrIT2*ICGb3S-T?krB?a4xF1p_nCRLTP9Ha)1^lW>6}MB1=W@Ui&nVzs zp35u$j{eE>I^Gg2@lw_8)agA2c)0PQYrWtdM#YVgFi1C8qGh^mX^Ih{5&#q7|#OqQ3JA@$K zi&WsfTmTVtBs49`LsCHiPJQL57~HO8_TTB>`^? z{1|Xb<(q)p!*2mrR{sKUUF6q*KlA?{aM=4D>`|1yDtmb)TWAi{VV9%Iy6wMKF$?@> z!>a+!DBJw8)cY@$%->v-!G3p@kKrdPa)9%E`v6Z=-U9e`_%^_awCcZA?Zp$te84q|cyT20adFV(r}w z{Ih^2-V%^MEEjjc-*N^bDX$&tj)z;O*oN`jzP&Mevqf z|AJU7y0)w^$6k2dH|BbJj5VVBh37>C`S9`M6T*zE)HALIvo4AcUoD6LzSimc z1GwK$%ZxgF@a_vG<1F54^%k+rgS(t! zokNz@NBve|SJJkvSoyK67Au|Z%5Kc|CevbnD4R|eP`bm~owM=-T*t1q%oT7Dn5fux zMAyiWOVD{T0ZMcZ!tHF%!$uzO*n9UB zo7}dkYfZkvq;54@; zT2aPfo4uti@{UK9qZ)dy3IWtXvHqAO=q)xYg33&dw7eo z)!F?gk?00UI284D1IoCpn@eW$yR*4LHTz3ToJ_{fLSR^#f=u1=qU`Hah`Dq+Ig%YN ztjnePsME@&l4%6_+LV>b@dxIjq55>yf`&t=-Atbiv_rLk7m-Bl}sBK=|wZ#Jv%O)d!RNCH$KEwZKL94kR;R zs~eA*JB?81zT}WF*C+FGZ^^=asf;4lsQ`g9Bv2@0?GvQ}o9WJ^3L|SWn44B&%fLuJ z)tg_^s#0``jNLg7yCs{m#$mI4_-GtS=Rh)N_1OtGuQdjDY5#4)^b_~=DSry>PQbh> zbfvUXF$p_t_UJflS2qcX-J-3$esHQqdPmBTB}hnktAvKvN@yM_WRGG2uCau{onM{I zTf{zFog2;%2!(02Cdcd+q!)x-3#Ze4DKOZi(`E^Q4#b=U$2jbcEM|r(v~K|UA01E& z0WTsNV~crN9mI-8H(^HYwc4%1K(?>BfCaf{7{$9YdofFPr;lyq2E4yQ0$ zt4CDHQmLcYolo|=O0`-&!~Oki&CwuLp8Z?owG8JA*+IugMZwyfWvv~~^zzDGZ?mgphku zD8`ml?;hKzTAS?|t|{FD*WyioZq23^UdGre?_N}Dl%$C*QeSFss&6=%#$GPNH}Lmh zgH)0wO6Gl{4^n5LA-$|nS2mlb&XIh<8l>I1>>#N?K!2U}LTnc)c5cC5FT}$|YE5Q% zP<*q$J(Uq;#73^N5w*{df*NIugV5hxTxg`MYh|(3?S+Wc)M`)W_edxvB|fFpU>T1y zLOD-nEpJ6Jp;XB}2g?ra!cHK?@s0uDM1S#?Y+lhF7OWM?A)DWyrRL#6mO44}bq`US zc0IdMC12SNBMD;&QbV+xL1#8s*qp;8k!I%|iW^*{bomZ!x~-hnEx@MQmMQ-iNlBmC zoD3NfB`}U2K{{=O-Hj9p8P}w+1V0!^JMi-^BuR9BEqtnV%6TeY60NCZeXZ;QpX3UjB))hXm7{(>+Eck}*Ko_gTuJ*`Oa84jiVcxfq5PQLF-=1@i6&X_7k za(k3Z-J51oDVY~EwTs3Gtiv|NA?#7;b8)%-{Y54Akc;fJ(g;lI;k|)s3FWLpF;}wl zrAcW_6_c2ZW~((P@ zRj?oAk^0akemr7KZxA>{v8Mt9wHJvk*nt*gu3=}J8XO+vhN=7}TOb+QlZe=V5UIJ# z`z2f1#X)7x!@4p!l-ipu$YL#NQ8r*3fNsE_4h9hB7EoXaIg$WG{ra)r3s8S|hH_M}I!{yGnH#W2%3 zVsi!xJXjfQ*zmYh7_pN`r`0=*GlCK67}5iFKp=48Wb($L`9IuN`BuwAFWs|e+scbx zpx~2NU9z=q+3Po%e$(_vJTWo?F|T2oX2cUPOwcCo%#V2Dz~dD0#S9}_6*O?%$X6)l zF>0sO)YzIw$(BqHR zhjo;-l@GxMemk+GGe7Xg-$@on7_-kk4vxu8kyT}_bqO-g)0sz*)SOa6QP5=R; zcDX+WpyZ9fqm2q*#rP_PFJpX};I(nqj|)B{I79OEn-m3n5do#!S}ifa?6CSJ^?G#Sgv7zG}} z9no3lY(%U%i_z$;%77QxtlD@GpFqq2jH*}#Te~L?bpyKKI9OcySeUb271!$ZOwzL2 zk;8R}JT{LXDc0_&-GM&Ag)?2HYFwv-QnI8kTBz4)Wtp4Cw&WhKjk8T(TkQLC6S0m-eKhRp*HuMx*nhvr5#8t#j0- zxXgr{$CQegpJz-QDJ!V)9gI(MX$SP93@S2eq7CZCxdYTJb>rv;wF-e$y93+`i8CPh z&tZUD?T$*!PQ{WCLmC3bfhEjU4%P@O(Pd!jlF?;sw$8=C{6(L^s6_K|tCcqM9B=2z z6v5=2YLB+8-o?jELWG^BWv^NTsxELK{AwA##cPU zItvV%XWP(Tvuo5O-&hmtz}ctPENfmug_vKRW5iBfHZg!zqkgSH30apiPXn3fju(K|v29sDd0XD;YFZ||+ob`ZrHjjavLV}(=OH<_#KZAZd)RiUczPwg-GomoMwOR2JxFJi zo6r?IQz9|o_0OtZZu%>I0W2w4*9nl518zvqmA*JLu(29~O7M53`<6GB+ zbSfEbNo!)D#-Iw9uZZRwG{?nAjDPq_oE_Y1#aW3r)CQgImNoa{859R_a(t$mMpTEt zWKp8jW=qP4uQ}6~%clA^Y;rU>{gjlo&&O;NSRSX9C=Ba)@)jT}yfR6wlyn zjdI5+4Fvj-W2C&P_-(P3#OWU&ir`H&(HMo{9`*LeRw(yHmxX7ylrwnc4%Ol^kCk`0 z3ujy^$GDm@rY5yTvl}wQpeb&rc5UpmMdfp_+nHhI6R3NzCzrH~l?RMiM|@^*Kw<0P z?-b2-*D83Il`r79ypY9lo~>9O?4r2M>fv(&sM~618#I56y`oyPdxD>XFB6J%ljvz*^F;njPNn8t<`{^FP~zZ$8jp}#7>RD1j|QglU3N4&Fw)W@mCKFZ0=p}ff1g=eMIFJg`Lpn(D-#f z{yc`1N;rc_R6fC6qVl=f+=n%=fcKvgN%+$)WxJ3q!#TX}&Pxl+Wt@DlQ_tY-1mQWZ zMz;emLqIDqk*32;1cWX9XBz2D{lo3tuh4V&p{BSS5J~;Zbwn@paG!ojVr2nnRnXI3IPM)56=-p>qlt1U_^p;wG0%cc(C_L&<#Jr8j0B=NG-nG@dEeKm5$fVjCX#^QucgRltA0h}6r;D-eV!l@&^`_wD_F{pAc_d;C>#$%c&yV-vW zwv>%8lI2>{>2^FClC;&b0ZiIF>3!ryl)254P)R8UD5ne1Km)^6z$9U~drrER@EJeDGuV%yY?xr2Y}~ zHYs`#i_Rj^v0L5>3wi35b_|uYlkL^xmkRuQ64lGC(8bq{Tz#p>FBFO&!mkZxK%c!) z5Zw&wPPu)ZZ^`!XD{AumAr%@IL`Tcq!ok literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.UNETModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.UNETModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..90e6429ff1e1450e023530539c49f249f17ebf0f GIT binary patch literal 77312 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.UnityConnectModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.UnityConnectModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..4da27d06c369b387ab1e4b9d7a60b3a478b25902 GIT binary patch literal 10240 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 X2x$I46JN}%+rQ&I`n~yYVFdmctDfWw literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.UnityWebRequestAudioModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.UnityWebRequestAudioModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..8f23dbc66785dea1cb52a19c6a772927a717200b GIT binary patch literal 10752 zcmeHNeQX@pai6zGQY0l&!sW zZqK`WqNp@A9XYo1k72iPiZ+emq-_w#ND!nAY_u{02QiQ)Fq*%dqBQ~)X@m9;HwY3$ zZBW$x&Ft;oaw(~oegFm9mF~B1=FOWoZ{~e3XFl>grHH5nzxUrKdL3_mMg?yTtH|!U z^Uu2IPdnc3e_fq?yMKPk@-kJ|DY-^DQ!pwO$Is-=j9aT@tV(9`bS_hNil)AKbLZZ= z>e(rxlZq{9Jl9C;->BM&?gFnZ;J-A6cP2=Sb)41$yP3=O%kwf2e11|i`YEDr`QLcg z$v}ioLhor#KZ;+Zgc2k9kvd((CsLO@;#)vcvZEO*NQl9^FVZV-p@MQ_TN|z!G;`6Un93`tv;`3oi-xY zcVoG@wsCC$e(WSI)iQwSwC!Jv7!GXgtaHanV~Gur_ykPq+|T+IZGj!ohIVmQWa1FH z9cZQpg`JmKZX4uMfgGBAz}W~rVY?p)D;(I$^*?}`2GUK}Q(9LKn#1xWbp9NVGxM34ID-*_WTyn%Xqg#(Vm>|T9uN=5?_MRSMlDnkfS0L zU=-1w;|tT1c>Amn=I+Zmt{la>l#Se}V zKFZ0PhdJ~3%{-!MjcMk5Hg!qsq_3oQ0ec1S2JWJNq4%hZj%t^*Hu?j__yp3u^pDzm zl%{Ly=~SA&3+$z7^&a$mRh{-`|e5AjlQx= zYeia72dKBTUD{@(TZP)M0;-2*GhFgB^kc0LxtAj9Ao{_}b?TTJLAmcl)Ni8Ze-i5H zox`bTXal_;QNK;-QT%kjKqdA2w2`*=Gx;QaLwg2o9uVr=w3ogPk51I7H&V}uf4SV# z?LX75#;6yyH)GTvYj4G<5qcAyNFJ1%q_;rLiq6l_7gF!SmsO$I&MO>ve#Ej7wUwTb zyeDb1x`GHlU$=!V+eWX}DYlHG&*h$OUsMmOZS=b2aSacHV!w|e@EWDmjnYA`BL5~b zQ^M!mR9!<{avS&% zT<~7OF2U;^T=s7S7o{#w@I}F^K#vZmb-GY**A}D;^!GiCe=hifU`g<(V6Wg$x>@Es zf}a<>ESMAgrsCX#lK$ZqPQNDjyr3mGE_j>Z&%0RWZNV=JJ|TEkFe}(8_#?5rRWx6f zcD*F{6!7CTD)wI&55FTAc>4uO+kz(r4+w4&{BeqF|CZqA1TPEb1cwBB1%IKj`B#gO1e!JoFXL=`BEwdNGf-tU`Fr^GQ$`{?Vi8V3ckoz9-4Ga+l&{ zUG$Ykktp?8lxie$lH5u^zzjO2=+|bPV$C)mqJ@g(ubeUSbLQhU)AMI)wr`cqqGix= z)1NeagUVjPacwJ4CDT7waLQHJ^gOdj-da)=O;t)(#ndMp*9Dxnq;ssk_t6WxTfKolP6}Ji8{Cxht|;SpmMx$pb*ZY;&saOmmT*4Hf0j~F*XcVFSr)f@N@Eytr5R@81l!O@ zy}=L|!+Ie??vcjyRaL5wd-ST{m;(4a_!wa z9(v}%?^FA0mp``HH+=2WEgMw2qa)Lzy1LSv(><7q(;Zzs+dIKY_X(?=S?Ru>?U=Zc z*P78(m-c|7;rMvY;5MOXV!A6}S}5w71<%YZT1C^DwT%_i#hn5=vr*JxOB<_6_oXtV z+E`c5b|kwtAjy@qQ)*{=6PQ}tPT01)72>;F)0qf{4C>3t}oF{QEn`!;kd zbqA$8S~^vF6YJlH^Z>+K6e>&&kT#*{p&-8Ap&O08L$kHKZ50lMJ-j}JMMFYg;-i?_ zneOK5vs`PIYwPCPvO#UxW7zusCn|~ik?ZMKbbEbR91#-6Rot#<#~Ojy5=eU#-4V~6uxsd1?sTPE!@|PrGtr%jcEx2TE%ZlBL^sXP z%^r7+>Qb1WbkA|uDu#JU>rXiT9PV+9NFW)4>9SG6^1;iQ7i;8Qigw3slm?tMOGaTO ztST9ahjXV-VOq2d+qxWX71sIVq*LJhH4fdUC=;)1)^IWP+Gen_gw@@lsBewb(u#)( zI?PTsd^X4)nhXV!UY~WH^E{J>`N`(w3a)8ZCX6cY8A73C_sLZ;=bAHycOjHWIxdhv zN3TXolBVL41Pf%agh&TjCs50KzELSe8j`-4H?c@qQ4dWzw4PmeNoZ-Z!Mp&?nH6k0 zVy3LC2`(!e)lkPSMcd;+nLn8evyx+QAsS)H0klxgyGB?nIe3M8*5mVnOICdzQ?Cc`gSaw6P1B&imr>`L(p-Et*T* zv!h;{^xxvKvtiMsmt=|!Gm}%m8EiGeykrmLoq|7Jggh9E zCwxDOd~zflH?RxE)}}F_l9f!);I{8(7Tj`zWT(d0fMneZ(^Ke`s66s((mxBQrsl({ zlkJmej^X&R!W+I&DvLARE#iCwr+z@u-dmJ7bLLE_J2^DY&fP3$EXqlC<@&-B4A_R# zlZ~5j4R2}AtvJ0E=DHpR&IY z>vkctHMg*2cyQzTJf3{87pmaILE9B|*X^kJPOx{tEoHbD(#LDA=M(Kvln%s%p-&Yp zK8!S0OnuVCVP%D_Vf9|v(zt0l9~SU!jQ1xZM6_SgzCdp>PZxH~1JMewPK`c~L#2&# zKT*`9)(aiOM>&&^lkwKnw}f?TqM@qC`FgD6J&NuM?7gvsUe|P=qM!kKthWY^i4{Z= zK?ut<8Wu4DsIe0NaP6&TQHGxtOpWbSzjQLP%D z7n57Jj`JDau;*Q)ASZCyryh5l67CA-g2n}B|5#twd1}Xze`anh)|;ZyqYq8$!4@Ox zKvAvh^6H+9CT4wM8okl7vE)ak8v$FFSuY;VMA9Mn-ezoeI#`Lvu@fzs`ru$Tw%5Of z*ids~_cbRr+??1*b7CKCP7GhansEp|QZ^%Yq$#oNU~^*4MIqZ<6tc}lA=_LOvdu*y z+guc~%|#*GTokg+MPaD9C=4|hg`wu6Fw|TWh7g5lKXS7HIB8xChH8_Nu&_x<7}=y` z^LC=cH0GupPDFC=sLz=t3pa|g0^;ricP%|*?TR$MQQ;kfqIs?N435vIoJw>r8Qh|( z)t7X&`c$yD#p)Vdpz-ojws583RCvh^m*mV5bHS_}%^yB&j1)#bm_2geusL}Dk?m?;>&{)Us?da6W!z4o zdVHH4<5mREbDYl9iNtF)CP#D*d*w;np23MQxal`dxvk|w@9(3`XrlE0B#FHc)bAvG zo>}v7V2Ch+*6~^F1b$~9#orLf_jBfO8hwQp@!j(raEj)Tn#Nz+oB}-!JQn=b4ZYFw zlYiqcvB~E{bq0U?(Gr=HpcS+lxc@wc+ejPtk<++0I7jFaYZ&=se*VcD~6j(GtqW+uV=~qEke&Gn_lg{I zcV;~^D~S;lONryWT%dvh14f*{2oU6jI1UoDMuPU2gFhE=zsew#>dj z_1px}v``i_%FjvLvsH8uHl^TSJmb+;@36bZbee|bGZ%#U6mA#e4416|23{b z(-$ERdY4sw1iwg$A_V0TqC3L+d%5O_;6YS6&^{fth;&b0@zDOydjR0^FR&XeE;*t{ zbjNi{s-`6@-kRfenKa$aY;9}TLaa&VET!TdVz)8}yRR0zTU4vN}*ed8w*aL0w zqrWYt6yy6mbX2^pF*m?V(c|dn^RA+MdicX=lXewOq__9Oq0I0DOzG=$F<|DJV)$&$ zhM5`dsxqm+6IEpJA(h3Z-aELr){k7b`<-`QQv(H3QJ|Ea+aVj+iD3@fnV7L-g)?I! z$h4X_mxlBK{rJF%p%ZF=HmU&chP`_~LG)Q%pNFEo1xFVnkEYYX%gV9V^ z*Z2?S1eVWhiVoFuDD}A3MJH27v@D&{RQ+4p5#SGj?cl$K&E!z(ExL=I)ZU_A`lZ;J z>ZN}LX6Qxn-&!xNfSaM`#B16K>VQcZ`d`p9^hxoz%D`Ym6|)w5cpnh~&Zc_kmUcICc}qJ?dw`R`SG8r} zeCh%X(~VS}20_0Din4W-_9N?4f#fsVP5KDx-=x1`G?;DzWzRa-Z!kVUU!bQ*r#1Tg z9STjx8OHxgDT>bZ?Tl}3Rg`~W{5IpWj2`0%V;|%1GfMJjj4v@h&A7@q&DhV_&G=5I zlK(a1D~#V|yvcZp(O?{7{2JSHkn6X&zH^&SS81(BCpYkD9Q8HY#rS%+s{e@bi;Ryk zo?+a}_@_IS%xjDH`4Q*kdB*FE7Z^tv?_&JDrZoJR@h10uf$J9; z&oCZf%rO2+DEV8AUuS%hvBEgXc#tv8_$JSp&v0MA{`Wk}8;t+KUcAKk6yrt44>Rs( z+{*ZiEo$8FFn*4)%6OLXAmeMSvy1Dmwk!Eeo5BYe&oX+9Uu66p%ltFfcW`}xafZ=k ze2VcKjQ`VCq7r?Fu8RU@P6u|nr+YH=QH+qn+9YztSFt)XXr-^C*;H1WTB`98reHxw zMGy`J8_H`;X_k9D-VAztZ$nR_n@rnD&k}uT#xB<@@+2+bP*iv1P@X2Gmp43vs&2`4 zDrS+UZKFI@HC7~5XKia<8fBwckz~c{PDos|OmBU{S}`rDkK2y))l;0z^<`O{mygw@ z>jeXEBFJNo+twxNxTbAwB2id199f>SJn2|Q#oa_AG1x{43VV;k2TumpP&KUN?aNjL z0XS_~<%)Dda`m*~hV@Vb0vD1J!-nJ)>0R*rK$AZnA_Mo#i>30$b@u~)P+^YzU(%r^L5KJs~E6aL$9J)LDm}F zaFm8azV4y(o3H0Q1!x`=LA~yylJdhw(FTCHzWmaV`f%sCbC(O&Ly)X-5}QR z1;(Mth6l5F%(TjU>^fI`RF*t8&c=+hJYTFalj-v1%h7a#4`b_|9CaLHJ+9C9e$;hk zwOCmvyLMsXvAUt+9~xPZB?J>~Rklph1TAp&k53q{n)Ktd&mF(|`45g~9;A+c`1r?` zb{+fq=h9n5wiAb+Y-d-y!tA!rTv~K>WqYza+DQXh%YcyG#*{6JlHI1I+OxZ~b}f}7 zk9E_BwiyR*C7a+>Jq=%AFA-L<<- zORJ4;OScgBP_{Fj5!pMGA-hoTM<=DeYh2Jt-+A}Q<`d({T)kK^OGgr!4i=A&y|P=- z)>v-vm?daWjG%A6A<+8;^~S|wI}_~_bZ?wDTEc|D;^H;o8%#J=()K2ysgSb=+jA4g zDm%7WJ~JCh)xA*WUO{)o zW%8zjnQA-l$}h}KI!0|Z6qn^m$d%0?akwP*N6m?DM&2lP|tmWcE@dG2d3qU zQCbg0l9@PDI5&$GYGQSKJiL)mG9J@*N%5Nkx?fN(KGvM!U>B%Jf4d2Xy9W;oO;W4t zF7}F$opgN8XAk8=fn?O@9Q&f$R6>5zokGcx(i%5v>OLC^C8tlJhNUlO40kP*NCwWA zz(lV_N|L7HK~Wl2e>cO;ooItVz36&|Rf;quW3eEyZ<*mOmy!Vu*g;4_OOp<(g*z`T z+>T>!>-9FEtzE*Z8OO&U>SG4uw!xts+*TLR#)etP$a2)ykdLN_L7`Er;u`g zDW3McDD%mcFlpd?g1c;EK_v&7n!y{7ceCKO8>9+q{2q`TdvR(4vl4?xaZSc&adu)M z96ISAXLA$>(sgzA2&D!E9lA}PHwo&4g7)2}$MW)Ws5`kd&dH&;T!e8WPi;Opty(zv(hfo0fgN?v_RkKnvyeVkcU-*C-YF>Si!ni; zD4Xg`+_+=vd5JUgy0S*8cSBF(rs?YJk8cR-e8NIR2L$c+^(J{blVcHx?f@Iq=nHt< zsNkuP8aI=TLZ|TYLaL{VxHrL}J+LNPs(PHR$9g^>=sw@x%_a0e(@{ab1A1(>`hkgc zL={O0`!pPkiMaY`r7~p=`l5JAE~v{lpy9Nd+To%9@VGjr)((3}0zXNUGC9e;XdCLDtI7W#d#Q2;#Y1=D!W}Nq(3!dB>b6r1zxp(G{r=3=GE3 z`nM4qYEA5DYhuS*6Fc6T*aun@!xw;70)h`at%wb`BsMtEnpkUD7;G&IgRNy@u(d1< zww8s#*0M0zS{4Rd%feu5Sr}?93q!4CVW_n%47HYpA!H#skG$Ig%*#vuQf*NZ7Pcq} zBU_Yg-A+uH#@3aSh5TD}k>Y``3Ly)H4aHw5W(1O;xjK^oZ3!S)9 zk~O|n^7}P${mZ(z{)B(F#og6^kE3ocRTHliY)jp8ePV+ay>>g43*WdN$}Rb?JReq{ z1@U(%H(sx($Hs>(S%+(oqM}(bW16|3f?|7^ISOc^~1-by7pn24$=p4mPS{E{CO@}LQ5HOPS;6W^&NbXxd+XtSDq+-m_`15_7$ zgFMLDXsPlzy_l{+senx$q)gCPHqkWAG6V4Y1auG3F)FGU;7f>xzT?nW#UH*wK#L1{ z4!?adUX90Jhqw5S0XbE2_#I-I(DFPuF23C;J8DgKD%k;i%Mp=nOOSOS-SA}q->@1# zLjMOLucG0xtc9^FF$)&KF~M6$PL$WmcL^O0`ZC%@!0|BpX9JgeYO6+f4Au)+7Y1W%H=^nGuZNoFa>+WtZT6I%Trj(?Bs$$z1i L{?)8MLj?X0^%K^Y literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.VFXModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.VFXModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..bb0759715866d6ee724f62635cadedd682be2d29 GIT binary patch literal 33792 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 V-{!d5`givtyy5E~$A7yX_+JcLR1p9G literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.VehiclesModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.VehiclesModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..211f1de248046d00d39949b2ad9819c84e506ee9 GIT binary patch literal 12288 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.VideoModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.VideoModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..5707566de74ed8820774dff9fb81b5e415f12667 GIT binary patch literal 28160 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 literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.WindModule.dll b/SubnauticaModSystem/AutosortLockers/SN/UnityEngine.WindModule.dll new file mode 100644 index 0000000000000000000000000000000000000000..7d9b4b26500119d5b43f69961bb0dfbf1248d7e0 GIT binary patch literal 9216 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 W8!d3W2aZ7-et!f0yXbF43;aJ4U1Yuh literal 0 HcmV?d00001 diff --git a/SubnauticaModSystem/AutosortLockers/SaveData.cs b/SubnauticaModSystem/AutosortLockers/SaveData.cs index e6e6a3a..a9eccb1 100644 --- a/SubnauticaModSystem/AutosortLockers/SaveData.cs +++ b/SubnauticaModSystem/AutosortLockers/SaveData.cs @@ -10,7 +10,7 @@ public class SaveDataEntry { public string Id; public List FilterData = new List(); - public string Label = "Locker"; + public string Label = ""; public SerializableColor LabelColor = Color.white; public SerializableColor IconColor = Color.white; public SerializableColor OtherTextColor = Color.white; diff --git a/SubnauticaModSystem/AutosortLockers/categories.json b/SubnauticaModSystem/AutosortLockers/categories.json new file mode 100644 index 0000000..363ad99 --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/categories.json @@ -0,0 +1,118 @@ +{ + "Categories": [ + { + "CategoryID": "batteries", + "CategoryDescription": "Batteries", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "baseupgrades", + "CategoryDescription": "Base Upgrades", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "crystalline", + "CategoryDescription": "Crystalline Materials", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "decorations", + "CategoryDescription": "Decorations", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "eggs", + "CategoryDescription": "Eggs", + "UseInMod": false, + "GameVersion": "A" + }, + { + "CategoryID": "electronics", + "CategoryDescription": "Electronics", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "CategoryDescription": "Equipment", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "fish", + "CategoryDescription": "Fish", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "food", + "CategoryDescription": "Food", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "metals", + "CategoryDescription": "Metals", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "natural", + "CategoryDescription": "Natural Materials", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "none", + "CategoryDescription": "None", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "CategoryDescription": "Plants & Seeds", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "synthetics", + "CategoryDescription": "Synthetic Materials", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "tablets", + "CategoryDescription": "Precursor Tablets", + "UseInMod": true, + "GameVersion": "1" + }, + { + "CategoryID": "tools", + "CategoryDescription": "Hand Held Tools", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "torpedoes", + "CategoryDescription": "Torpedoes", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "CategoryDescription": "Vehicle Upgrades", + "UseInMod": true, + "GameVersion": "A" + }, + { + "CategoryID": "water", + "CategoryDescription": "Water", + "UseInMod": true, + "GameVersion": "A" + } + ] +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/mod.json b/SubnauticaModSystem/AutosortLockers/mod_BZ.json similarity index 90% rename from SubnauticaModSystem/AutosortLockers/mod.json rename to SubnauticaModSystem/AutosortLockers/mod_BZ.json index 0a7eed4..d55260d 100644 --- a/SubnauticaModSystem/AutosortLockers/mod.json +++ b/SubnauticaModSystem/AutosortLockers/mod_BZ.json @@ -1,4 +1,5 @@ { + "Game": "BelowZero", "Id": "AutosortLockersSML", "DisplayName": "Autosort Lockers SML", "Author": "RandyKnapp w/PrimeSonic", diff --git a/SubnauticaModSystem/AutosortLockers/mod_SN.json b/SubnauticaModSystem/AutosortLockers/mod_SN.json new file mode 100644 index 0000000..f59a68e --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/mod_SN.json @@ -0,0 +1,10 @@ +{ + "Game": "Subnautica", + "Id": "AutosortLockersSML", + "DisplayName": "Autosort Lockers SML", + "Author": "RandyKnapp w/PrimeSonic", + "Version": "2.0.0", + "Requires": [ "SMLHelper" ], + "Enable": true, + "AssemblyName": "AutosortLockersSML.dll" +} \ No newline at end of file diff --git a/SubnauticaModSystem/AutosortLockers/techtypes.json b/SubnauticaModSystem/AutosortLockers/techtypes.json new file mode 100644 index 0000000..2fc3e7a --- /dev/null +++ b/SubnauticaModSystem/AutosortLockers/techtypes.json @@ -0,0 +1,2628 @@ +{ + "TechTypes": [ + { + "CategoryID": "crystalline", + "TechName": "Quartz", + "TechType": "Quartz", + "TechID": 1, + "GameVersion": "A" + }, + { + "CategoryID": "metals", + "TechName": "Metal Salvage", + "TechType": "ScrapMetal", + "TechID": 2, + "GameVersion": "A" + }, { + "CategoryID": "synthetics", + "TechName": "Fiber Mesh", + "TechType": "Fiber", + "TechID": 3, + "GameVersion": "A" + }, + { + "CategoryID": "metals", + "TechName": "Copper Ore", + "TechType": "Copper", + "TechID": 7, + "GameVersion": "A" + }, + { + "CategoryID": "metals", + "TechName": "Lead", + "TechType": "Lead", + "TechID": 8, + "GameVersion": "A" + }, + { + "CategoryID": "crystalline", + "TechName": "Salt Deposit", + "TechType": "Salt", + "TechID": 9, + "GameVersion": "A" + }, + { + "CategoryID": "synthetics", + "TechName": "Glass", + "TechType": "Glass", + "TechID": 15, + "GameVersion": "A" + }, + { + "CategoryID": "metals", + "TechName": "Titanium", + "TechType": "Titanium", + "TechID": 16, + "GameVersion": "A" + }, + { + "CategoryID": "synthetics", + "TechName": "Silicone Rubber", + "TechType": "Silicone", + "TechID": 17, + "GameVersion": "A" + }, + { + "CategoryID": "metals", + "TechName": "Gold", + "TechType": "Gold", + "TechID": 21, + "GameVersion": "A" + }, + { + "CategoryID": "crystalline", + "TechName": "Crystalline Sulfur", + "TechType": "Sulfur", + "TechID": 23, + "GameVersion": "A" + }, + { + "CategoryID": "synthetics", + "TechName": "Bleach", + "TechType": "Bleach", + "TechID": 27, + "GameVersion": "A" + }, + { + "CategoryID": "metals", + "TechName": "Silver Ore", + "TechType": "Silver", + "TechID": 28, + "GameVersion": "A" + }, + { + "CategoryID": "metals", + "TechName": "Titanium Ingot", + "TechType": "TitaniumIngot", + "TechID": 30, + "GameVersion": "A" + }, + { + "CategoryID": "electronics", + "TechName": "Copper Wire", + "TechType": "CopperWire", + "TechID": 32, + "GameVersion": "A" + }, + { + "CategoryID": "electronics", + "TechName": "Wiring Kit", + "TechType": "WiringKit", + "TechID": 33, + "GameVersion": "A" + }, + { + "CategoryID": "electronics", + "TechName": "Advanced Wiring Kit", + "TechType": "AdvancedWiringKit", + "TechID": 34, + "GameVersion": "A" + }, + { + "CategoryID": "natural", + "TechName": "Cave Sulfur", + "TechType": "CrashPowder", + "TechID": 35, + "GameVersion": "1" + }, + { + "CategoryID": "crystalline", + "TechName": "Diamond", + "TechType": "Diamond", + "TechID": 36, + "GameVersion": "A" + }, + { + "CategoryID": "metals", + "TechName": "Lithium", + "TechType": "Lithium", + "TechID": 40, + "GameVersion": "A" + }, + { + "CategoryID": "metals", + "TechName": "Plasteel Ingot", + "TechType": "PlasteelIngot", + "TechID": 41, + "GameVersion": "A" + }, + { + "CategoryID": "synthetics", + "TechName": "Enameled Glass", + "TechType": "EnameledGlass", + "TechID": 42, + "GameVersion": "A" + }, + { + "CategoryID": "batteries", + "TechName": "Power Cell", + "TechType": "PowerCell", + "TechID": 43, + "GameVersion": "A" + }, + { + "CategoryID": "electronics", + "TechName": "Computer Chip", + "TechType": "ComputerChip", + "TechID": 44, + "GameVersion": "A" + }, + { + "CategoryID": "crystalline", + "TechName": "Ruby", + "TechType": "AluminumOxide", + "TechID": 52, + "GameVersion": "A" + }, + { + "CategoryID": "synthetics", + "TechName": "Hydrochloric Acid", + "TechType": "HydroChloricAcid", + "TechID": 53, + "GameVersion": "A" + }, + { + "CategoryID": "metals", + "TechName": "Magnetite", + "TechType": "Magnetite", + "TechID": 54, + "GameVersion": "A" + }, + { + "CategoryID": "synthetics", + "TechName": "Polyaniline", + "TechType": "Polyaniline", + "TechID": 56, + "GameVersion": "A" + }, + { + "CategoryID": "synthetics", + "TechName": "Synthetic Fibers", + "TechType": "AramidFibers", + "TechID": 57, + "GameVersion": "A" + }, + { + "CategoryID": "synthetics", + "TechName": "Aerogel", + "TechType": "Aerogel", + "TechID": 59, + "GameVersion": "A" + }, + { + "CategoryID": "synthetics", + "TechName": "Benzene", + "TechType": "Benzene", + "TechID": 61, + "GameVersion": "A" + }, + { + "CategoryID": "synthetics", + "TechName": "Lubricant", + "TechType": "Lubricant", + "TechID": 62, + "GameVersion": "A" + }, + { + "CategoryID": "crystalline", + "TechName": "Uraninite Crystal", + "TechType": "UraniniteCrystal", + "TechID": 63, + "GameVersion": "A" + }, + { + "CategoryID": "electronics", + "TechName": "Reactor Rod", + "TechType": "ReactorRod", + "TechID": 64, + "GameVersion": "A" + }, + { + "CategoryID": "batteries", + "TechName": "Depleted Reactor Rod", + "TechType": "DepletedReactorRod", + "TechID": 65, + "GameVersion": "A" + }, + { + "CategoryID": "crystalline", + "TechName": "Ion Cube", + "TechType": "PrecursorIonCrystal", + "TechID": 66, + "GameVersion": "A" + }, + { + "CategoryID": "crystalline", + "TechName": "Kyanite", + "TechType": "Kyanite", + "TechID": 68, + "GameVersion": "2" + }, + { + "CategoryID": "metals", + "TechName": "Nickel Ore", + "TechType": "Nickel", + "TechID": 69, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": "Dive Suit", + "TechType": "DiveSuit", + "TechID": 500, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": "Fins", + "TechType": "Fins", + "TechID": 502, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": "Standard O₂ Tank", + "TechType": "Tank", + "TechID": 503, + "GameVersion": "A" + }, + { + "CategoryID": "batteries", + "TechName": "Battery", + "TechType": "Battery", + "TechID": 504, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Survival Knife", + "TechType": "Knife", + "TechID": 505, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Drill", + "TechType": "Drill", + "TechID": 506, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Flashlight", + "TechType": "Flashlight", + "TechID": 507, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Beacon", + "TechType": "Beacon", + "TechID": 508, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Habitat Builder", + "TechType": "Builder", + "TechID": 509, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": "Compass", + "TechType": "Compass", + "TechID": 512, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Air Bladder", + "TechType": "AirBladder", + "TechID": 513, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Terraformer", + "TechType": "Terraformer", + "TechID": 514, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": "Pipe", + "TechType": "Pipe", + "TechID": 515, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Pathfinder Tool", + "TechType": "DiveReel", + "TechID": 517, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": "Rebreather", + "TechType": "Rebreather", + "TechID": 518, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": "Radiation Suit", + "TechType": "RadiationSuit", + "TechID": 519, + "GameVersion": "1" + }, + { + "CategoryID": "equipment", + "TechName": "Radiation Helmet", + "TechType": "RadiationHelmet", + "TechID": 520, + "GameVersion": "1" + }, + { + "CategoryID": "equipment", + "TechName": "Radiation Gloves", + "TechType": "RadiationGloves", + "TechID": 521, + "GameVersion": "1" + }, + { + "CategoryID": "equipment", + "TechName": "Reinforced Dive Suit", + "TechType": "ReinforcedDiveSuit", + "TechID": 522, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Scanner", + "TechType": "Scanner", + "TechID": 523, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Fire Extinguisher", + "TechType": "FireExtinguisher", + "TechID": 524, + "GameVersion": "1" + }, + { + "CategoryID": "baseupgrades", + "TechName": "Scanner Room HUD Chip", + "TechType": "MapRoomHudChip", + "TechID": 525, + "GameVersion": "A" + }, + { + "CategoryID": "torpedoes", + "TechName": "Creature Decoy", + "TechType": "CyclopsDecoy", + "TechID": 527, + "GameVersion": "1" + }, + { + "CategoryID": "equipment", + "TechName": "High Capacity O₂ Tank", + "TechType": "DoubleTank", + "TechID": 528, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": "Reinforced Gloves", + "TechType": "ReinforcedGloves", + "TechID": 529, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Thumper", + "TechType": "Thumper", + "TechID": 530, + "GameVersion": "2" + }, + { + "CategoryID": "tools", + "TechName": "Precursor Tether", + "TechType": "TeleportationTool", + "TechID": 531, + "GameVersion": "2" + }, + { + "CategoryID": "tools", + "TechName": "Metal Detector", + "TechType": "MetalDetector", + "TechID": 532, + "GameVersion": "2" + }, + { + "CategoryID": "tools", + "TechName": "Headlamp", + "TechType": "FlashLightHelmet", + "TechID": 533, + "GameVersion": "2" + }, + { + "CategoryID": "tools", + "TechName": "Repair Tool", + "TechType": "Welder", + "TechID": 750, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Seaglide", + "TechType": "Seaglide", + "TechID": 751, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Mobile Vehicle Bay ", + "TechType": "Constructor", + "TechID": 752, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Flare", + "TechType": "Flare", + "TechID": 754, + "GameVersion": "2" + }, + { + "CategoryID": "tools", + "TechName": "Stasis Rifle", + "TechType": "StasisRifle", + "TechID": 755, + "GameVersion": "1" + }, + { + "CategoryID": "tools", + "TechName": "Propulsion Cannon", + "TechType": "PropulsionCannon", + "TechID": 757, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Grav Trap", + "TechType": "Gravsphere", + "TechID": 758, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Waterproof Locker", + "TechType": "SmallStorage", + "TechID": 759, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Laser Cutter", + "TechType": "LaserCutter", + "TechID": 761, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Light Stick", + "TechType": "LEDLight", + "TechID": 762, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Thermoblade", + "TechType": "HeatBlade", + "TechID": 801, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": "Lightweight High Capacity Tank", + "TechType": "PlasteelTank", + "TechID": 803, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": "Ultra High Capacity Tank", + "TechType": "HighCapacityTank", + "TechID": 804, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": " Ultra Glide Fins", + "TechType": "UltraGlideFins", + "TechID": 805, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": "Swim Charge Fins", + "TechType": "SwimChargeFins", + "TechID": 806, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Repulsion Cannon", + "TechType": "RepulsionCannon", + "TechID": 807, + "GameVersion": "1" + }, + { + "CategoryID": "equipment", + "TechName": "Stillsuit", + "TechType": "Stillsuit", + "TechID": 808, + "GameVersion": "A" + }, + { + "CategoryID": "equipment", + "TechName": "Cold Suit", + "TechType": "ColdSuit", + "TechID": 810, + "GameVersion": "2" + }, + { + "CategoryID": "equipment", + "TechName": "Cold Suit Gloves", + "TechType": "ColdSuitGloves", + "TechID": 811, + "GameVersion": "2" + }, + { + "CategoryID": "equipment", + "TechName": "Cold Suit Helmet", + "TechType": "ColdSuitHelmet", + "TechID": 812, + "GameVersion": "2" + }, + { + "CategoryID": "equipment", + "TechName": "Booster Tank", + "TechType": "SuitBoosterTank", + "TechID": 813, + "GameVersion": "2" + }, + { + "CategoryID": "eggs", + "TechName": "Safe Shallows Egg", + "TechType": "SafeShallowsEgg", + "TechID": 1250, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Kelp Forest Egg", + "TechType": "KelpForestEgg", + "TechID": 1251, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Grassy Plateaus Egg", + "TechType": "GrassyPlateausEgg", + "TechID": 1252, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Grand Reefs Egg", + "TechType": "GrandReefsEgg", + "TechID": 1253, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Mushroom Forest Egg", + "TechType": "MushroomForestEgg", + "TechID": 1254, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Bulb Zone Egg ", + "TechType": "KooshZoneEgg", + "TechID": 1255, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Identified Lava Lizard Egg", + "TechType": "LavaZoneEgg", + "TechID": 1257, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Stalker Egg", + "TechType": "StalkerEgg", + "TechID": 1258, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Reefback Leviathan Egg", + "TechType": "ReefbackEgg", + "TechID": 1259, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Spadefish Egg", + "TechType": "SpadefishEgg", + "TechID": 1260, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Rabbit Ray Egg", + "TechType": "RabbitrayEgg", + "TechID": 1261, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Mesmer Egg", + "TechType": "MesmerEgg", + "TechID": 1262, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Jumper Egg Undiscovered", + "TechType": "JumperEgg", + "TechID": 1263, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Sand Shark Egg", + "TechType": "SandsharkEgg", + "TechID": 1264, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Jellyray Egg", + "TechType": "JellyrayEgg", + "TechID": 1265, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Boneshark Egg Undiscovered", + "TechType": "BonesharkEgg", + "TechID": 1266, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Crabsnake Egg", + "TechType": "CrabsnakeEgg", + "TechID": 1267, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Ampeel Egg", + "TechType": "ShockerEgg", + "TechID": 1268, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Gasopod Egg", + "TechType": "GasopodEgg", + "TechID": 1269, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Generic Egg", + "TechType": "GenericEgg", + "TechID": 1280, + "GameVersion": "A" + }, + { + "CategoryID": "eggs", + "TechName": "Crashfish Egg", + "TechType": "CrashEgg", + "TechID": 1281, + "GameVersion": "A" + }, + { + "CategoryID": "eggs", + "TechName": "Crabsquid Egg", + "TechType": "CrabsquidEgg", + "TechID": 1283, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Cutefish Egg", + "TechType": "CutefishEgg", + "TechID": 1285, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "LavaLizard Egg", + "TechType": "LavalizardEgg", + "TechID": 1287, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Sea Monkey Egg", + "TechType": "SeamonkeyEgg", + "TechID": 1291, + "GameVersion": "2" + }, + { + "CategoryID": "eggs", + "TechName": "Arctic Ray Egg ", + "TechType": "ArcticrayEgg", + "TechID": 1292, + "GameVersion": "2" + }, + { + "CategoryID": "eggs", + "TechName": "Brute Shark Egg", + "TechType": "BrutesharkEgg", + "TechID": 1294, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Lily Paddler Egg", + "TechType": "LilyPaddlerEgg", + "TechID": 1296, + "GameVersion": "2" + }, + { + "CategoryID": "eggs", + "TechName": "Pinnacarid Egg", + "TechType": "pinnacaridEgg", + "TechID": 1298, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Squidshark Egg", + "TechType": "SquidsharkEgg", + "TechID": 1310, + "GameVersion": "A" + }, + { + "CategoryID": "eggs", + "TechName": "Titan Holefish Egg", + "TechType": "TitanHolefishEgg", + "TechID": 1312, + "GameVersion": "A" + }, + { + "CategoryID": "eggs", + "TechName": "Trivalve Egg Blue", + "TechType": "TrivalveBlueEgg", + "TechID": 1314, + "GameVersion": "A" + }, + { + "CategoryID": "eggs", + "TechName": "Trivalve Egg Gold", + "TechType": "TrivalveYellowEgg", + "TechID": 1315, + "GameVersion": "A" + }, + { + "CategoryID": "eggs", + "TechName": "Brinewing Egg", + "TechType": "BrinewingEgg", + "TechID": 1318, + "GameVersion": "1" + }, + { + "CategoryID": "eggs", + "TechName": "Cryptosuchus Egg", + "TechType": "CryptosuchusEgg", + "TechID": 1320, + "GameVersion": "A" + }, + { + "CategoryID": "eggs", + "TechName": "Glow Whale Egg", + "TechType": "GlowWhaleEgg", + "TechID": 1322, + "GameVersion": "A" + }, + { + "CategoryID": "eggs", + "TechName": "Jellyfish Egg", + "TechType": "JellyfishEgg", + "TechID": 1324, + "GameVersion": "A" + }, + { + "CategoryID": "eggs", + "TechName": "Pengwing Egg", + "TechType": "PenguinEgg", + "TechID": 1326, + "GameVersion": "2" + }, + { + "CategoryID": "eggs", + "TechName": "Rock Puncher Egg", + "TechType": "RockPuncherEgg", + "TechID": 1328, + "GameVersion": "2" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Cyclops Pressure Compensator", + "TechType": "HullRreinforcementModule", + "TechID": 1501, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Base Cyclops Rreinforcement Module", + "TechType": "HullRreinforcementModule2", + "TechID": 1514, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Chelonian Hull Rreinforcement Module", + "TechType": "HullRreinforcementModule3", + "TechID": 1515, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Cyclops Engine Efficiency Module", + "TechType": "PowerUpgradeModule", + "TechID": 1516, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Picture Frame", + "TechType": "PictureFrame", + "TechID": 1526, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Cyclops Depth Module MK1", + "TechType": "CyclopsHullModule1", + "TechID": 1537, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Cyclops Depth Module MK2", + "TechType": "CyclopsHullModule2", + "TechID": 1538, + "GameVersion": "1" + }, + { + "CategoryID": "synthetics", + "TechName": "Hatching Enzymes", + "TechType": "HatchingEnzymes", + "TechID": 1547, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Cyclops Shield GeneRator", + "TechType": "CyclopsShieldModule", + "TechID": 1551, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Cyclops Sonar Upgrade", + "TechType": "CyclopsSonArmodule", + "TechID": 1552, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Cyclops Docking Bay Repair Module", + "TechType": "CyclopsSeamothRepairModule", + "TechID": 1553, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Cyclops Decoy Tube Upgrade", + "TechType": "CyclopsDecoyModule", + "TechID": 1554, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Cyclops Fire Suppression System", + "TechType": "CyclopsFireSuppressionModule", + "TechID": 1555, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Cyclops Thermal Reactor Module", + "TechType": "CyclopsThermalReactorModule", + "TechID": 1557, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Cyclops Depth Module MK3", + "TechType": "CyclopsHullModule3", + "TechID": 1558, + "GameVersion": "1" + }, + { + "CategoryID": "tools", + "TechName": "Quantum Locker", + "TechType": "QuantumLocker", + "TechID": 1567, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Carry-all", + "TechType": "LuggageBag", + "TechID": 1807, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Electron Microscope", + "TechType": "LabEquipment1", + "TechID": 1809, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Fluid Analyser", + "TechType": "LabEquipment2", + "TechID": 1810, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Sample Analyser", + "TechType": "LabEquipment3", + "TechID": 1811, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Gray Cap", + "TechType": "Cap1", + "TechID": 1814, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Blue Cap", + "TechType": "Cap2", + "TechID": 1815, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Large Sample Flask", + "TechType": "LabContainer", + "TechID": 1816, + "GameVersion": "A" + }, + { + "CategoryID": "decorations", + "TechName": "Small Sample Flask", + "TechType": "LabContainer2", + "TechID": 1817, + "GameVersion": "A" + }, + { + "CategoryID": "decorations", + "TechName": "Cylindrical Sample Flask", + "TechType": "LabContainer3", + "TechID": 1818, + "GameVersion": "A" + }, + { + "CategoryID": "decorations", + "TechName": "Aurora Miniature", + "TechType": "StarShipSouvenir", + "TechID": 1823, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Aurora Poster", + "TechType": "PosterAurora", + "TechID": 1824, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Prawn Suit Poster", + "TechType": "PosterExosuit1", + "TechID": 1825, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Prawn Suit Poster", + "TechType": "PosterExosuit2", + "TechID": 1826, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Keep Calm Poster", + "TechType": "PosterKitty", + "TechID": 1827, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Toy Car", + "TechType": "ToyCar", + "TechID": 1828, + "GameVersion": "1" + }, + { + "CategoryID": "decorations", + "TechName": "Spy Pengling Poster", + "TechType": "PosterSpyPenguin", + "TechID": 1830, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Alterra Facilities Map", + "TechType": "RocketBaseWorldMap", + "TechID": 1836, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Motivational Poster", + "TechType": "PosterMotivational", + "TechID": 1837, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Seatruck X12 Poster", + "TechType": "SeatruckPoster", + "TechID": 1838, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Jeremiah's Bird Wall", + "TechType": "PosterJeremiahBirds", + "TechID": 1839, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Architect Poster", + "TechType": "PosterLilArchitect", + "TechID": 1840, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Bird Poster", + "TechType": "PosterJeremiahNobirds", + "TechID": 1842, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Pengling Picture", + "TechType": "PictureFredPengling", + "TechID": 1843, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Vinh Pham's Postcard", + "TechType": "PictureVinhPostcard", + "TechID": 1844, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Sam and Potato", + "TechType": "PictureSamPotato", + "TechID": 1845, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Fred's Shaving Kit", + "TechType": "FredShavingKit", + "TechID": 1847, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Seatruck Poster", + "TechType": "PosterSeatruck2", + "TechID": 1848, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Mercury Spaceship Poster", + "TechType": "PosterMercury", + "TechID": 1849, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Potato Portrait", + "TechType": "PicturePotatoPortrait", + "TechID": 1850, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Motivational Poster 2", + "TechType": "PosterMotivational2", + "TechID": 1852, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Motivational Poster 3", + "TechType": "PosterMotivational3", + "TechID": 1853, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Sam & Danielle", + "TechType": "PictureSamDanielleHappy", + "TechID": 1855, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Biological Art", + "TechType": "PictureVinhBiologyArt", + "TechID": 1857, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Abstract Art", + "TechType": "PictureDanielleAbstractArt", + "TechID": 1858, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Robot Hand Poster", + "TechType": "PictureSamHand", + "TechID": 1868, + "GameVersion": "2" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seamoth Depth Module", + "TechType": "SeamothRreinforcementModule", + "TechID": 2100, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Engine Efficiency Module", + "TechType": "VehiclePowerUpgradeModule", + "TechID": 2101, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seamoth Solar Charger", + "TechType": "SeamothSolarCharge", + "TechID": 2102, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Storage Module", + "TechType": "VehicleStorageModule", + "TechID": 2103, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seamoth Perimeter Defense System", + "TechType": "SeamothElectricalDefense", + "TechID": 2104, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Hull Rreinforcement", + "TechType": "VehicleArmorPlating", + "TechID": 2105, + "GameVersion": "1" + }, + { + "CategoryID": "tools", + "TechName": "Metal Sensor", + "TechType": "LootSensorMetal", + "TechID": 2106, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seamoth Torpedo System", + "TechType": "SeamothTorpedoModule", + "TechID": 2109, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seamoth Sonar", + "TechType": "SeamothSonArmodule", + "TechID": 2110, + "GameVersion": "1" + }, + { + "CategoryID": "torpedoes", + "TechName": "Vortex Torpedo", + "TechType": "WhirlpoolTorpedo", + "TechID": 2111, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seamoth Depth Module MK1", + "TechType": "VehicleHullModule1", + "TechID": 2112, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seamoth Depth Module MK2", + "TechType": "VehicleHullModule2", + "TechID": 2113, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seamoth Depth Module MK3", + "TechType": "VehicleHullModule3", + "TechID": 2114, + "GameVersion": "1" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Prawn Suit Jump Jet Upgrade", + "TechType": "ExosuitJetUpgradeModule", + "TechID": 2115, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Prawn Suit Drill Arm", + "TechType": "ExosuitDrillArmModule", + "TechID": 2116, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Prawn Suit Thermal Reactor", + "TechType": "ExosuitThermalReactorModule", + "TechID": 2117, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Prawn Suit Claw Arm", + "TechType": "ExosuitClawArmModule", + "TechID": 2118, + "GameVersion": "A" + }, + { + "CategoryID": "torpedoes", + "TechName": "Gas Torpedo", + "TechType": "GasTorpedo", + "TechID": 2119, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Prawn Suit Propulsion Cannon", + "TechType": "ExosuitPropulsionArmModule", + "TechID": 2120, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Prawn Suit Grappling Arm", + "TechType": "ExosuitGrapplingArmModule", + "TechID": 2121, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Prawn Suit Torpedo Arm", + "TechType": "ExosuitTorpedoArmModule", + "TechID": 2122, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Prawn Suit Depth Module MK1", + "TechType": "ExoHullModule1", + "TechID": 2128, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Prawn Suit Depth Module MK2", + "TechType": "ExoHullModule2", + "TechID": 2129, + "GameVersion": "A" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "SnowfoHop Module", + "TechType": "HoverbikeJumpModule", + "TechID": 2130, + "GameVersion": "2" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seatruck Afterburner", + "TechType": "SeatruckUpgradeAfterBurnerce", + "TechID": 2131, + "GameVersion": "2" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seatruck Thruster Upgrade", + "TechType": "SeatruckUpgradeThruster", + "TechID": 2132, + "GameVersion": "2" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seatruck Energy Efficiency Upgrade", + "TechType": "SeatruckUpgradeEnergyEfficiency", + "TechID": 2133, + "GameVersion": "2" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seatruck Perimeter Defense", + "TechType": "SeatruckUpgradePerimeterDefense", + "TechID": 2134, + "GameVersion": "2" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seatruck Horse Power Upgrade", + "TechType": "SeatruckUpgradeHorsePower", + "TechID": 2135, + "GameVersion": "2" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seatruck Depth Module MK1", + "TechType": "SeatruckUpgradeHull1", + "TechID": 2136, + "GameVersion": "2" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seatruck Depth Module MK2", + "TechType": "SeatruckUpgradeHull2", + "TechID": 2137, + "GameVersion": "2" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Seatruck Depth Module MK3", + "TechType": "SeatruckUpgradeHull3", + "TechID": 2138, + "GameVersion": "2" + }, + { + "CategoryID": "vehicleupgrades", + "TechName": "Snowfox Ice Worm Attack Reduction Module", + "TechType": "HoverbikeIceWormReductionModule", + "TechID": 2139, + "GameVersion": "2" + }, + { + "CategoryID": "baseupgrades", + "TechName": "Scanner Room Range Upgrade", + "TechType": "MapRoomUpgradeScanRange", + "TechID": 2250, + "GameVersion": "A" + }, + { + "CategoryID": "baseupgrades", + "TechName": "Scanner Room Speed Upgrade", + "TechType": "MapRoomUpgradeScanSpeed", + "TechID": 2251, + "GameVersion": "A" + }, + { + "CategoryID": "fish", + "TechName": "Holefish", + "TechType": "Holefish", + "TechID": 2501, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Creepvine Seed Cluster", + "TechType": "CreepvineSeedCluster", + "TechID": 2503, + "GameVersion": "A" + }, + { + "CategoryID": "fish", + "TechName": "Peeper", + "TechType": "Peeper", + "TechID": 2504, + "GameVersion": "1" + }, + { + "CategoryID": "fish", + "TechName": "Oculus", + "TechType": "Oculus", + "TechID": 2505, + "GameVersion": "1" + }, + { + "CategoryID": "fish", + "TechName": "Garryfish", + "TechType": "Garryfish", + "TechID": 2507, + "GameVersion": "1" + }, + { + "CategoryID": "fish", + "TechName": "Boomerang", + "TechType": "Boomerang", + "TechID": 2510, + "GameVersion": "A" + }, + { + "CategoryID": "eggs", + "TechName": "Lava Larva", + "TechType": "LavaLarva", + "TechID": 2511, + "GameVersion": "1" + }, + { + "CategoryID": "fish", + "TechName": "Eyeye", + "TechType": "Eyeye", + "TechID": 2513, + "GameVersion": "1" + }, + { + "CategoryID": "fish", + "TechName": "Bladderfish", + "TechType": "Bladderfish", + "TechID": 2515, + "GameVersion": "A" + }, + { + "CategoryID": "fish", + "TechName": "Hoverfish", + "TechType": "Hoverfish", + "TechID": 2516, + "GameVersion": "1" + }, + { + "CategoryID": "fish", + "TechName": "Reginald", + "TechType": "Reginald", + "TechID": 2519, + "GameVersion": "1" + }, + { + "CategoryID": "fish", + "TechName": "Spadefish", + "TechType": "Spadefish", + "TechID": 2520, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Creepvine Sample", + "TechType": "CreepvinePiece", + "TechID": 2529, + "GameVersion": "A" + }, + { + "CategoryID": "natural", + "TechName": "Gas Pod", + "TechType": "Gaspod", + "TechID": 2530, + "GameVersion": "A" + }, + { + "CategoryID": "fish", + "TechName": "Hoop Fish", + "TechType": "Hoopfish", + "TechID": 2531, + "GameVersion": "A" + }, + { + "CategoryID": "fish", + "TechName": "Spinefish", + "TechType": "Spinefish", + "TechID": 2546, + "GameVersion": "2" + }, + { + "CategoryID": "fish", + "TechName": "Spinner Fish", + "TechType": "spinnerfish", + "TechID": 2571, + "GameVersion": "2" + }, + { + "CategoryID": "fish", + "TechName": "Pengling", + "TechType": "PenguinBaby", + "TechID": 2575, + "GameVersion": "2" + }, + { + "CategoryID": "fish", + "TechName": "Arctic Peeper", + "TechType": "ArcticPeeper", + "TechID": 2578, + "GameVersion": "2" + }, + { + "CategoryID": "fish", + "TechName": "Arrow Ray", + "TechType": "ArrowRay", + "TechID": 2579, + "GameVersion": "2" + }, + { + "CategoryID": "fish", + "TechName": "Noot Fish", + "TechType": "Nootfish", + "TechID": 2585, + "GameVersion": "2" + }, + { + "CategoryID": "fish", + "TechName": "Triops", + "TechType": "Triops", + "TechID": 2587, + "GameVersion": "2" + }, + { + "CategoryID": "fish", + "TechName": "Feather Fish", + "TechType": "FeatherFish", + "TechID": 2593, + "GameVersion": "2" + }, + { + "CategoryID": "fish", + "TechName": "Feather Fish (Red)", + "TechType": "FeatherFishRed", + "TechID": 2594, + "GameVersion": "2" + }, + { + "CategoryID": "fish", + "TechName": "Discus Fish", + "TechType": "DiscusFish", + "TechID": 2600, + "GameVersion": "2" + }, + { + "CategoryID": "natural", + "TechName": "Gel Sack", + "TechType": "JellyPlant", + "TechID": 3010, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Acid Mushroom", + "TechType": "AcidMushroom", + "TechID": 3021, + "GameVersion": "1" + }, + { + "CategoryID": "natural", + "TechName": "Blood Oil", + "TechType": "BloodOil", + "TechID": 3034, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Deep Shroom", + "TechType": "WhiteMushroom", + "TechID": 3035, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Speckled Rattler", + "TechType": "PurpleRattle", + "TechID": 3040, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Bulbo Tree", + "TechType": "BulboTree", + "TechID": 3041, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Ming Plant", + "TechType": "PurpleVasePlant", + "TechID": 3042, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Jaffa Cup", + "TechType": "OrangeMushroom", + "TechID": 3043, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Chinese Potato Plant", + "TechType": "PurpleVegetablePlant", + "TechID": 3046, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Marblemelon Plant", + "TechType": "MelonPlant", + "TechID": 3047, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Gabe's Feather", + "TechType": "GabesFeather", + "TechID": 3049, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Eye Stalk", + "TechType": "EyesPlant", + "TechID": 3052, + "GameVersion": "1" + }, + { + "CategoryID": "natural", + "TechName": "Table Coral", + "TechType": "GenericJeweledDisk", + "TechID": 3064, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Spiral Plant", + "TechType": "GenericSpiral", + "TechID": 3078, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Ribbon Plant", + "TechType": "GenericRibbon", + "TechID": 3079, + "GameVersion": "2" + }, + { + "CategoryID": "natural", + "TechName": "Root Pustule", + "TechType": "KelpRootPustule", + "TechID": 3092, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Bullseye Shroom", + "TechType": "TwistyBridgesMushroom", + "TechID": 3099, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Young Cotton Anemone", + "TechType": "DeepLilyShroom", + "TechID": 3107, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Frost Vase Plant", + "TechType": "FrozenRiverPlant2", + "TechID": 3121, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Antennae Fruit", + "TechType": "SmallMaroonPlantFruit", + "TechID": 3132, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Preston's Delight", + "TechType": "SnowStalkerFruit", + "TechID": 3133, + "GameVersion": "2" + }, + { + "CategoryID": "natural", + "TechName": "Preston's Plant Leaf", + "TechType": "SnowStalkerPlantLeaf", + "TechID": 3135, + "GameVersion": "2" + }, + { + "CategoryID": "natural", + "TechName": "Table Coral Sample", + "TechType": "JeweledDiskPiece", + "TechID": 3501, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Bulb Bush Sample", + "TechType": "KooshChunk", + "TechID": 3503, + "GameVersion": "1" + }, + { + "CategoryID": "natural", + "TechName": "Stalker Tooth", + "TechType": "StalkerTooth", + "TechID": 3504, + "GameVersion": "1" + }, + { + "CategoryID": "natural", + "TechName": "Fungal Sample", + "TechType": "TreeMushroomPiece", + "TechID": 3505, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Bulbo Tree Sample", + "TechType": "BulboTreePiece", + "TechID": 3506, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Jaffa Cup Seed", + "TechType": "OrangeMushroomSpore", + "TechID": 3507, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Ming Plant Seed", + "TechType": "PurplevasePlantSeed", + "TechID": 3508, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Acid Mushroom Spore", + "TechType": "AcidMushroomSpore", + "TechID": 3509, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Deep Shroom Spore", + "TechType": "WhiteMushroomSpore", + "TechID": 3510, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Pink Cap Spore", + "TechType": "PinkMushroomSpore", + "TechID": 3511, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Speckled Rattler Spore", + "TechType": "PurpleRattleSpore", + "TechID": 3512, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Lantern Fruit", + "TechType": "HangingFruit", + "TechID": 3513, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Chinese Potato", + "TechType": "PurpleVegetable", + "TechID": 3514, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Small Marblemelon", + "TechType": "SmallMelon", + "TechID": 3515, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Marblemelon", + "TechType": "Melon", + "TechID": 3516, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Marblemelon Seeds", + "TechType": "MelonSeed", + "TechID": 3517, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Brain Coral Sample", + "TechType": "PurpleBrainCoralPiece", + "TechID": 3518, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Tiger Plant Seed", + "TechType": "SpikePlantSeed", + "TechID": 3519, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Blue Palm Seed", + "TechType": "BluepPalmSeed", + "TechID": 3520, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Veined Nettle Seed", + "TechType": "PurpleFanSeed", + "TechID": 3521, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Pygmy Fan Seed", + "TechType": "SmallFanSeed", + "TechID": 3522, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Writhing Weed Seed", + "TechType": "PurpleTentacleSeed", + "TechID": 3523, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Gel Sack Spores", + "TechType": "JellyPlantSeed", + "TechID": 3524, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Gabe's Feather Seed", + "TechType": "GabesFeatherSeed", + "TechID": 3525, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Sea Crown Seed", + "TechType": "SeaCrownSeed", + "TechID": 3526, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Membrain Tree Seed", + "TechType": "MembrainTreeSeed", + "TechID": 3527, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Voxel Shrub Seed", + "TechType": "PinkFlowerSeed", + "TechID": 3528, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Fern Palm Seed", + "TechType": "FernPalmSeed", + "TechID": 3529, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Grub Basket Seed", + "TechType": "OrangePetalsPlantSeed", + "TechID": 3530, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Eye Stalk Seed", + "TechType": "EyesPlantSeed", + "TechID": 3531, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Ghost Weed Seed", + "TechType": "RedGreenTentacleSeed", + "TechID": 3532, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Violet Beau Seed", + "TechType": "PurpleStalkSeed", + "TechID": 3533, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Rouge Cradle Seed", + "TechType": "RedBasketPlantSeed", + "TechID": 3534, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Redwort Seed", + "TechType": "RedBushSeed", + "TechID": 3535, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Regress Shell Seed", + "TechType": "RedConePlantSeed", + "TechID": 3536, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Spiked Horn Grass Seed", + "TechType": "ShellGrassSeed", + "TechID": 3537, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Spotted Dockleaf Seed", + "TechType": "SpottedLeavesPlantSeed", + "TechID": 3538, + "GameVersion": "A" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Furled Papyrus Seed", + "TechType": "RedRollPlantSeed", + "TechID": 3539, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Hardy Cave Bush Seed", + "TechType": "PurpleBranchesSeed", + "TechID": 3540, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Jellyshroom Spore", + "TechType": "SnakeMushroomSpore", + "TechID": 3541, + "GameVersion": "1" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Fevered Pepper", + "TechType": "HeatFruit", + "TechID": 3542, + "GameVersion": "2" + }, + { + "CategoryID": "natural", + "TechName": "Snow Stalker Fur", + "TechType": "SnowStalkerfur", + "TechID": 3543, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Ribbon Plant Seed", + "TechType": "GenericRibbonSeed", + "TechID": 3544, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Shrub Nut", + "TechType": "LeafyFruit", + "TechID": 3546, + "GameVersion": "2" + }, + { + "CategoryID": "food", + "TechName": "Frost Anemone Heart", + "TechType": "IceFruit", + "TechID": 3547, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Bullseye Shroom Chunck", + "TechType": "TwistyBridgesMushroomChunk", + "TechID": 3548, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Frost Vase Plant Seed", + "TechType": "FrozenRiverPlant2Seeds", + "TechID": 3549, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Spiral Chunk", + "TechType": "GenericSpiralChunk", + "TechID": 3550, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Deep Lily Shroom Seed", + "TechType": "DeepLilyShroomSeed", + "TechID": 3551, + "GameVersion": "2" + }, + { + "CategoryID": "plantsandseeds", + "TechName": "Antennae Seed", + "TechType": "SmallMaroonPlantSeed", + "TechID": 3552, + "GameVersion": "2" + }, + { + "CategoryID": "natural", + "TechName": "Snowball", + "TechType": "Snowball", + "TechID": 4020, + "GameVersion": "2" + }, + { + "CategoryID": "tablet", + "TechName": "Red Tablet", + "TechType": "PrecursorKey_Red", + "TechID": 4200, + "GameVersion": "1" + }, + { + "CategoryID": "tablet", + "TechName": "Blue Tablet", + "TechType": "PrecursorKey_Blue", + "TechID": 4201, + "GameVersion": "1" + }, + { + "CategoryID": "tablet", + "TechName": "Orange Tablet", + "TechType": "PrecursorKey_Orange", + "TechID": 4202, + "GameVersion": "1" + }, + { + "CategoryID": "tablet", + "TechName": "White Tablet", + "TechType": "PrecursorKey_White", + "TechID": 4203, + "GameVersion": "1" + }, + { + "CategoryID": "tablet", + "TechName": "Purple Tablet", + "TechType": "PrecursorKey_Purple", + "TechID": 4204, + "GameVersion": "1" + }, + { + "CategoryID": "batteries", + "TechName": "Ion Power Cell", + "TechType": "PrecursorIonPowerCell", + "TechID": 4209, + "GameVersion": "A" + }, + { + "CategoryID": "batteries", + "TechName": "Ion Battery", + "TechType": "PrecursorIonBattery", + "TechID": 4210, + "GameVersion": "A" + }, + { + "CategoryID": "water", + "TechName": "Filtered Water", + "TechType": "FilteredWater", + "TechID": 4500, + "GameVersion": "A" + }, + { + "CategoryID": "water", + "TechName": "Disinfected Water", + "TechType": "DisinfectedWater", + "TechID": 4501, + "GameVersion": "A" + }, + { + "CategoryID": "food", + "TechName": "Nutrient Block", + "TechType": "NutrientBlock", + "TechID": 4513, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "First Aid Kit", + "TechType": "FirstAidKit", + "TechID": 4514, + "GameVersion": "A" + }, + { + "CategoryID": "water", + "TechName": "Reclaimed Water", + "TechType": "StillSuitWater", + "TechID": 4515, + "GameVersion": "A" + }, + { + "CategoryID": "water", + "TechName": "Large Filtered Water", + "TechType": "BigFilteredWater", + "TechID": 4516, + "GameVersion": "A" + }, + { + "CategoryID": "food", + "TechName": "MiChips", + "TechType": "Snack1", + "TechID": 4520, + "GameVersion": "A" + }, + { + "CategoryID": "food", + "TechName": "Rice Snack", + "TechType": "Snack2", + "TechID": 4521, + "GameVersion": "A" + }, + { + "CategoryID": "food", + "TechName": "Potato Mi", + "TechType": "Snack3", + "TechID": 4522, + "GameVersion": "A" + }, + { + "CategoryID": "food", + "TechName": "Coffee Americano", + "TechType": "Coffee", + "TechID": 4523, + "GameVersion": "A" + }, + { + "CategoryID": "water", + "TechName": "Water Purification Tablet", + "TechType": "WaterPurificationTablet", + "TechID": 4534, + "GameVersion": "2" + }, + { + "CategoryID": "food", + "TechName": "Spicy Fruit Salad", + "TechType": "SpicyFruitSalad", + "TechID": 4535, + "GameVersion": "2" + }, + { + "CategoryID": "food", + "TechName": "Cured Peeper", + "TechType": "CuredPeeper", + "TechID": 4600, + "GameVersion": "1" + }, + { + "CategoryID": "food", + "TechName": "Cured Holefish", + "TechType": "CuredHolefish", + "TechID": 4601, + "GameVersion": "1" + }, + { + "CategoryID": "food", + "TechName": "Cured Garryfish", + "TechType": "CuredGarryfish", + "TechID": 4602, + "GameVersion": "1" + }, + { + "CategoryID": "food", + "TechName": "Cured Reginald", + "TechType": "CuredReginald", + "TechID": 4603, + "GameVersion": "1" + }, + { + "CategoryID": "food", + "TechName": "Cured Bladderfish", + "TechType": "CuredBladderfish", + "TechID": 4604, + "GameVersion": "A" + }, + { + "CategoryID": "food", + "TechName": "Cured Hoverfish", + "TechType": "CuredHoverfish", + "TechID": 4605, + "GameVersion": "1" + }, + { + "CategoryID": "food", + "TechName": "Cured Spadefish", + "TechType": "CuredSpadefish", + "TechID": 4606, + "GameVersion": "1" + }, + { + "CategoryID": "food", + "TechName": "Cured Boomerang", + "TechType": "CuredBoomerang", + "TechID": 4607, + "GameVersion": "A" + }, + { + "CategoryID": "food", + "TechName": "Cured Eyeye", + "TechType": "CuredEyeye", + "TechID": 4608, + "GameVersion": "1" + }, + { + "CategoryID": "food", + "TechName": "Cured Oculus", + "TechType": "CuredOculus", + "TechID": 4609, + "GameVersion": "1" + }, + { + "CategoryID": "food", + "TechName": "Cured Hoopfish", + "TechType": "CuredHoopfish", + "TechID": 4610, + "GameVersion": "A" + }, + { + "CategoryID": "food", + "TechName": "Cured Spinefish", + "TechType": "CuredSpinefish", + "TechID": 4611, + "GameVersion": "2" + }, + { + "CategoryID": "food", + "TechName": "Cured Red Eyeye", + "TechType": "CuredLavaEyeye", + "TechID": 4612, + "GameVersion": "1" + }, + { + "CategoryID": "food", + "TechName": "Cured Magmarang", + "TechType": "CuredLavaBoomerang", + "TechID": 4613, + "GameVersion": "1" + }, + { + "CategoryID": "food", + "TechName": "Cured Spinnerfish", + "TechType": "CuredSpinnerfish", + "TechID": 4614, + "GameVersion": "2" + }, + { + "CategoryID": "food", + "TechName": "Cured Symbiote", + "TechType": "CuredSymbiote", + "TechID": 4615, + "GameVersion": "2" + }, + { + "CategoryID": "food", + "TechName": "Cured Arctic Peeper", + "TechType": "CuredArcticPeeper", + "TechID": 4616, + "GameVersion": "2" + }, + { + "CategoryID": "food", + "TechName": "Cured Arrow Ray", + "TechType": "CuredArrowRay", + "TechID": 4617, + "GameVersion": "2" + }, + { + "CategoryID": "food", + "TechName": "Cured Noot Fish", + "TechType": "CuredNootfish", + "TechID": 4618, + "GameVersion": "2" + }, + { + "CategoryID": "food", + "TechName": "Cured Triops", + "TechType": "CuredTriops", + "TechID": 4619, + "GameVersion": "2" + }, + { + "CategoryID": "food", + "TechName": "Cured Feather Fish", + "TechType": "CuredFeatherfish", + "TechID": 4620, + "GameVersion": "2" + }, + { + "CategoryID": "food", + "TechName": "Cured Red Feather Fish", + "TechType": "CuredFeatherfishred", + "TechID": 4621, + "GameVersion": "2" + }, + { + "CategoryID": "food", + "TechName": "Cured Discus Fish", + "TechType": "CuredDiscusfish", + "TechID": 4622, + "GameVersion": "2" + }, + { + "CategoryID": "tools", + "TechName": "Camera Drone", + "TechType": "MapRoomCamera", + "TechID": 5527, + "GameVersion": "A" + }, + { + "CategoryID": "tools", + "TechName": "Floating Pump", + "TechType": "BasePipeConnector", + "TechID": 5530, + "GameVersion": "A" + }, + { + "CategoryID": "decorations", + "TechName": "Natural Selection 2 Poster", + "TechType": "Poster", + "TechID": 6005, + "GameVersion": "1" + }, + { + "CategoryID": "natural", + "TechName": "Flower Spore", + "TechType": "LilypadResource", + "TechID": 8005, + "GameVersion": "2" + }, + { + "CategoryID": "tools", + "TechName": "Spy Pengling", + "TechType": "SpyPenguin", + "TechID": 8030, + "GameVersion": "2" + }, + { + "CategoryID": "tools", + "TechName": "Spy Pengling Remote", + "TechType": "SpyPenguinRemote", + "TechID": 8033, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Alterra Bounty Poster", + "TechType": "AlterraBountyPoster", + "TechID": 8036, + "GameVersion": "2" + }, + { + "CategoryID": "tools", + "TechName": "Parallel Processing Unit", + "TechType": "RadioTowerPPU", + "TechID": 8039, + "GameVersion": "2" + }, + { + "CategoryID": "synthetics", + "TechName": "Hydraulic Fluid", + "TechType": "HydraulicFluid", + "TechID": 8044, + "GameVersion": "2" + }, + { + "CategoryID": "tools", + "TechName": "Test Override Module", + "TechType": "RadioTowerTOM", + "TechID": 8045, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Sea Creature Poster", + "TechType": "PosterParvan", + "TechID": 8047, + "GameVersion": "2" + }, + { + "CategoryID": "synthetics", + "TechName": "Kharaa Antidote", + "TechType": "FrozenCreatureAntidote", + "TechID": 8049, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Community Poster", + "TechType": "Posterbunkercommunity", + "TechID": 8050, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Glacial Basin Map", + "TechType": "SpyPenguinMap", + "TechID": 8051, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Hoverball Poster", + "TechType": "PosterZetaRollerDerby", + "TechID": 8052, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Spy Pengling Concepts", + "TechType": "PosterSpyPenguinConcepts", + "TechID": 8053, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Alien Intruder Poster", + "TechType": "PosterBoardgame", + "TechID": 8054, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Hang in there Poster", + "TechType": "PosterHangInThere", + "TechID": 8055, + "GameVersion": "2" + }, + { + "CategoryID": "decorations", + "TechName": "Poster Spy Penguin Blueprint", + "TechType": "PosterSpyPenguinBlueprint", + "TechID": 8056, + "GameVersion": "2" + }, + { + "CategoryID": "tools", + "TechName": "Tech Pistol", + "TechType": "TechPistol", + "TechID": 11698, + "GameVersion": "2" + }, + { + "CategoryID": "equipment", + "TechName": "SeaTruck Scanner HUD Chip", + "TechType": "SeaTruckScannerHUDChip", + "TechID": 11702, + "GameVersion": "2" + }, + { + "CategoryID": "tools", + "TechName": "Grav Trap MK2", + "TechType": "GravTrapMK2", + "TechID": 11708, + "GameVersion": "2" + } + ] +} \ No newline at end of file From 8288cf4cea14ca0b5bc26fa1ddd9ccb9161d9b1b Mon Sep 17 00:00:00 2001 From: vijer Date: Thu, 1 Jul 2021 10:13:40 +0700 Subject: [PATCH 4/6] Update README.md --- SubnauticaModSystem/AutosortLockers/README.md | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/SubnauticaModSystem/AutosortLockers/README.md b/SubnauticaModSystem/AutosortLockers/README.md index 8b81088..d54e2f6 100644 --- a/SubnauticaModSystem/AutosortLockers/README.md +++ b/SubnauticaModSystem/AutosortLockers/README.md @@ -8,18 +8,20 @@ To date, 19/06/2021, I have changed the following: a) Added a directive to AutosortLockerSMLSaveData and AutosortLockerSMLBZSaveData. b) Added a directive to Subnautica_Data and SubnauticaZero_Data. 3) Left justified the list of Filters when there is more than one filter. -4) Truncated Category names when they exceed 15 characters. -5) Sorted the AutoSorterCategory enum. -6) Consolidated and renamed some categories; there are now two upgrade categories, Base_UPG and Vehicle_UPG. -7) Renamed Alterra Stuff to Decorations. -8) Consolidated TechTypes and added some of the missing items. +4) Truncated Category names when they exceed 17 or 22 characters. Small or Large locker +5) Elminated the AutoSorterCategory enum. It is now 100% read in from the new json files. +6) All categories are now confifured in the categories.json file. +7) Hardcoded category names have been eliminated. +8) TechTypes are now read in from the techtypes.json. 9) Increased the size of the category/item picker from 7 to 10. 10) Left justified the filter names in the picker. -11) Replaced the existing Category and TechType system. Now the data is read 100% from the json files, the hard-coded fields were removed. +11) Changed the config to allow users to disable display of locker names. +12) Changed the color picker. +13) Eliminated the coloring of the Locker Name. +14) Consolidated the color picker to one page and increased the size. +15) Changed colors.json to group colors together (whites, grays, reds, purples, etc.) +16) Changed LOCKER to "Color Settings" Going forward, I would like to: -1) Add an inventory count to the locker labels (i.e. [15] Gold, [30] Silver, etc.) 2) Truncate the TechType names that are read in from the game files. -3) Make these changes to SubNautica -4) Change the LOCKER label on the Color Settings screen From 4d19df0378b49a3ebb785adb2e68f36522e9454e Mon Sep 17 00:00:00 2001 From: vijer Date: Tue, 4 Oct 2022 10:18:29 +0700 Subject: [PATCH 5/6] Add files via upload --- .../AdvancedHighlighting.csproj | 349 ++++++++++++++++++ .../AdvancedHighlighting.sln | 25 ++ .../AdvancedHighlighting/HighlightEnum.cs | 85 +++++ .../AdvancedHighlighting/HighlightingMod.cs | 23 ++ .../HighlightingMod.cs.test | 28 ++ .../AdvancedHighlighting/ImageUtils.cs | 109 ++++++ .../AdvancedHighlighting/OldSettings.cs | 93 +++++ .../Patches/Highlighting_Patch.cs | 248 +++++++++++++ .../Patches/PingInstance_Patch.cs | 32 ++ .../Patches/SaveLoadManager_Patch.cs | 34 ++ .../Patches/uGUI_OptionsPanel_Patch.cs | 130 +++++++ .../Patches/uGUI_Pings_Patch.cs | 51 +++ .../Properties/AssemblyInfo.cs | 36 ++ .../Properties/Resources.Designer.cs | 90 +++++ .../Properties/Resources.resx | 129 +++++++ .../AdvancedHighlighting/Qmod.cs.test | 55 +++ .../AdvancedHighlighting/Settings.cs | 68 ++++ .../AdvancedHighlighting/Utils.cs | 169 +++++++++ 18 files changed, 1754 insertions(+) create mode 100644 SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.csproj create mode 100644 SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.sln create mode 100644 SubnauticaModSystem/AdvancedHighlighting/HighlightEnum.cs create mode 100644 SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs create mode 100644 SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs.test create mode 100644 SubnauticaModSystem/AdvancedHighlighting/ImageUtils.cs create mode 100644 SubnauticaModSystem/AdvancedHighlighting/OldSettings.cs create mode 100644 SubnauticaModSystem/AdvancedHighlighting/Patches/Highlighting_Patch.cs create mode 100644 SubnauticaModSystem/AdvancedHighlighting/Patches/PingInstance_Patch.cs create mode 100644 SubnauticaModSystem/AdvancedHighlighting/Patches/SaveLoadManager_Patch.cs create mode 100644 SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_OptionsPanel_Patch.cs create mode 100644 SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_Pings_Patch.cs create mode 100644 SubnauticaModSystem/AdvancedHighlighting/Properties/AssemblyInfo.cs create mode 100644 SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.Designer.cs create mode 100644 SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.resx create mode 100644 SubnauticaModSystem/AdvancedHighlighting/Qmod.cs.test create mode 100644 SubnauticaModSystem/AdvancedHighlighting/Settings.cs create mode 100644 SubnauticaModSystem/AdvancedHighlighting/Utils.cs diff --git a/SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.csproj b/SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.csproj new file mode 100644 index 0000000..714a405 --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.csproj @@ -0,0 +1,349 @@ + + + + + Debug + AnyCPU + {ADB59190-BC97-4509-AB62-C64A4D9A93EC} + Library + Properties + AdvancedHighlighting + AdvancedHighlighting + v4.8 + 512 + true + + + + true + full + true + bin\BZ\ + BZ + prompt + 4 + true + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + bin\BZ\ + + + bin\SN\ + + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\BepInEx\core\0Harmony20.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Assembly-CSharp.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Assembly-CSharp-firstpass.dll + + + False + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Newtonsoft.Json.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\BepInEx\plugins\QModManager\QModInstaller.dll + + + D:\SteamLibrary\steamapps\common\SubnauticaZero\QMods\SMLHelper_BZ\SMLHelper.dll + + + + + + + + + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Addressables.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Burst.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Burst.Unsafe.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Collections.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Formats.Fbx.Runtime.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.InternalAPIEngineBridge.001.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Mathematics.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.MemoryProfiler.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.PlayableGraphVisualizer.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.ProBuilder.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.ProBuilder.KdTree.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.ProBuilder.Poly2Tri.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.ProBuilder.Stl.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Recorder.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.ResourceManager.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.ScriptableBuildPipeline.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.TextMeshPro.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Timeline.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.AccessibilityModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.AIModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.AndroidJNIModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.AnimationModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ARModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.AssetBundleModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.AudioModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ClothModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ClusterInputModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ClusterRendererModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.CoreModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.CrashReportingModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.DirectorModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.DSPGraphModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.GameCenterModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.GridModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.HotReloadModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ImageConversionModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.IMGUIModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.InputLegacyModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.InputModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.JSONSerializeModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.LocalizationModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ParticleSystemModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.PerformanceReportingModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.Physics2DModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.PhysicsModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ProfilerModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ScreenCaptureModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.SharedInternalsModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.SpriteMaskModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.SpriteShapeModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.StreamingModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.SubstanceModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.SubsystemsModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TerrainModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TerrainPhysicsModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TextCoreModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TextRenderingModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TilemapModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TLSModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UI.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UIElementsModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UIModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UmbraModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UNETModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityAnalyticsModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityConnectModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityTestProtocolModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityWebRequestAssetBundleModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityWebRequestAudioModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityWebRequestModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityWebRequestTextureModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityWebRequestWWWModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.VehiclesModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.VFXModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.VideoModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.VRModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.WindModule.dll + + + D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.XRModule.dll + + + + + + + + + + + + + + True + True + Resources.resx + + + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + if $(ConfigurationName) == BZ ( +mkdir "D:\SteamLibrary\steamapps\common\SubnauticaZero\QMods\$(TargetName)" +xcopy /Y "$(TargetPath)" "D:\SteamLibrary\steamapps\common\SubnauticaZero\QMods\$(TargetName)" +copy /Y "$(ProjectDir)\mod_BZ.json" "D:\SteamLibrary\steamapps\common\SubnauticaZero\QMods\$(TargetName)\mod.json" +del "D:\SteamLibrary\steamapps\common\SubnauticaZero\qmodmanager_log-SubnauticaZero.txt" ) + +if $(ConfigurationName) == SN ( +mkdir "D:\SteamLibrary\steamapps\common\Subnautica\QMods\$(TargetName)" +xcopy /Y "$(TargetPath)" "D:\SteamLibrary\steamapps\common\Subnautica\QMods\$(TargetName)" +copy /Y "$(ProjectDir)\mod_SN.json" "D:\SteamLibrary\steamapps\common\Subnautica\QMods\$(TargetName)\mod.json" +del "D:\SteamLibrary\steamapps\common\Subnautica\qmodmanager_log-Subnautica.txt") + + \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.sln b/SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.sln new file mode 100644 index 0000000..17cd1d3 --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31205.134 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdvancedHighlighting", "AdvancedHighlighting\AdvancedHighlighting.csproj", "{ADB59190-BC97-4509-AB62-C64A4D9A93EC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {ADB59190-BC97-4509-AB62-C64A4D9A93EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADB59190-BC97-4509-AB62-C64A4D9A93EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADB59190-BC97-4509-AB62-C64A4D9A93EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADB59190-BC97-4509-AB62-C64A4D9A93EC}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DE65AB4D-0403-405F-9AF3-B3C441CE4842} + EndGlobalSection +EndGlobal diff --git a/SubnauticaModSystem/AdvancedHighlighting/HighlightEnum.cs b/SubnauticaModSystem/AdvancedHighlighting/HighlightEnum.cs new file mode 100644 index 0000000..55f2527 --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/HighlightEnum.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +#if SN +#elif BZ +#endif + +namespace AdvancedHighlighting +{ + public enum Highlight + { + ScannableItems, + ScannableFragments, + ScannedFragments, + AnythingElse, + + Pickupable, + PickupableCreatures, + PickupableResource, + BreakableResource, + Interactables, + StoryItems, + JukeboxDisk, + SealedDoor, + GrownPlant, + Bladderfish, + CreatureEgg, + BaseLadder, + LaserCutObject + } + public static class HighlightExtenstions + { + private static readonly Dictionary highlightToText = new Dictionary() + { + [Highlight.ScannableItems] = "Scannable Items", + [Highlight.ScannableFragments] = "Scannable Fragments", + [Highlight.ScannedFragments] = "Already Scanned Fragments", + [Highlight.AnythingElse] = "Anything Else", + + [Highlight.Pickupable] = "Pickupable Items", + [Highlight.PickupableCreatures] = "Pickupable Creatures", + [Highlight.PickupableResource] = "Pickupable Resources", + [Highlight.BreakableResource] = "Breakable Outcrops", + [Highlight.Interactables] = "Interactables", + [Highlight.StoryItems] = "PDA Logs", + [Highlight.JukeboxDisk] = "Jukebox Disks", + [Highlight.SealedDoor] = "Sealed Ship Doors", + [Highlight.GrownPlant] = "Grown Plant", + [Highlight.Bladderfish] = "Bladder Fish", + [Highlight.CreatureEgg] = "Creature Egg", + [Highlight.BaseLadder] = "Base Ladder", + [Highlight.LaserCutObject] = "Laser Cut Object", + }; + private static readonly Dictionary highlightToType = new Dictionary() + { + [Highlight.Pickupable] = typeof(Pickupable), + [Highlight.PickupableCreatures] = typeof(Creature), + [Highlight.PickupableResource] = typeof(ResourceTracker), + [Highlight.BreakableResource] = typeof(BreakableResource), + [Highlight.Interactables] = typeof(HandTarget), + [Highlight.StoryItems] = typeof(StoryHandTarget), + [Highlight.JukeboxDisk] = typeof(JukeboxDisk), + [Highlight.SealedDoor] = typeof(StarshipDoor), + [Highlight.GrownPlant] = typeof(GrownPlant), + [Highlight.Bladderfish] = typeof(Bladderfish), + [Highlight.CreatureEgg] = typeof(CreatureEgg), + [Highlight.BaseLadder] = typeof(BaseLadder), + [Highlight.LaserCutObject] = typeof(Sealed), + }; + private static readonly List notComponentHighlights = new List() + { + Highlight.ScannableItems, + Highlight.ScannableFragments, + Highlight.ScannedFragments, + Highlight.AnythingElse + }; + public static bool IsPressent(this Highlight highlight, UnityEngine.Behaviour behaviour) => + highlight.IsComponent() && behaviour.TryGetComponent(highlight.GetComponentType(), out _); + public static bool IsPressentAndActive(this Highlight highlight, UnityEngine.Behaviour behaviour) => + highlight.IsComponent() && highlight.IsActive() && behaviour.TryGetComponent(highlight.GetComponentType(), out _); + public static bool IsActive(this Highlight highlight) => Settings.GetInstance().IsHighlightActive(highlight); + public static bool IsComponent(this Highlight highlight) => !notComponentHighlights.Contains(highlight); + public static string GetName(this Highlight highlight) => highlightToText.TryGetValue(highlight, out string name) ? name : null; + public static Type GetComponentType(this Highlight highlight) => highlightToType.TryGetValue(highlight, out Type type) ? type : null; + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs b/SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs new file mode 100644 index 0000000..4ea5686 --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs @@ -0,0 +1,23 @@ +using HarmonyLib; +using QModManager.API.ModLoading; +using SMLHelper.V2.Handlers; +using System; +#if SN +#elif BZ +#endif + +namespace AdvancedHighlighting +{ + [QModCore] + + public static class HighlightingMod + { + [QModPatch] + public static void InitMod() + { + Console.WriteLine("[AdvancedHighlighting] Start Patching..."); + Harmony harmony = new Harmony("net.ogmods.highlighting"); + harmony.PatchAll(); + } + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs.test b/SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs.test new file mode 100644 index 0000000..214c44c --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs.test @@ -0,0 +1,28 @@ +using HarmonyLib; +using QModManager.API.ModLoading; +using SMLHelper.V2.Handlers; +using System; +#if SN +#elif BZ +#endif + +namespace AdvancedHighlighting +{ + [QModCore] + + public static class HighlightingMod + { + internal static IngameConfigMenu Config { get; private set; } + + [QModPatch] + public static void InitMod() + { + Console.WriteLine("[AdvancedHighlighting] Start Patching..."); + Harmony harmony = new Harmony("net.ogmods.highlighting"); + harmony.PatchAll(); + + //Add the Ingame Config for User + Config = OptionsPanelHandler.Main.RegisterModOptions(); + } + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/ImageUtils.cs b/SubnauticaModSystem/AdvancedHighlighting/ImageUtils.cs new file mode 100644 index 0000000..fd46c66 --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/ImageUtils.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.IO; +using UnityEngine; +#if SN +#elif BZ +#endif + +namespace AdvancedHighlighting +{ + public static class ImageUtils + { + private static Dictionary textureCache = new Dictionary(); + + private static Dictionary spriteCache = new Dictionary(); + public static Sprite LoadSprite(string path, Vector2 pivot = default(Vector2), TextureFormat format = TextureFormat.BC7, float pixelsPerUnit = 100f, SpriteMeshType spriteType = SpriteMeshType.Tight) + { + Sprite sprite; + bool flag = ImageUtils.spriteCache.TryGetValue(path, out sprite); + Sprite result; + if (flag) + { + result = sprite; + } + else + { + Texture2D texture2D = ImageUtils.LoadTexture(path, format, 2, 2); + bool flag2 = !texture2D; + if (flag2) + { + result = null; + } + else + { + Sprite sprite2 = ImageUtils.TextureToSprite(texture2D, pivot, pixelsPerUnit, spriteType, default(Vector4)); + ImageUtils.spriteCache.Add(path, sprite2); + result = sprite2; + } + } + return result; + } + + public static Sprite Load9SliceSprite(string path, RectOffset slices, Vector2 pivot = default(Vector2), TextureFormat format = TextureFormat.BC7, float pixelsPerUnit = 100f, SpriteMeshType spriteType = SpriteMeshType.Tight) + { + string key = path + slices; + Sprite sprite; + bool flag = ImageUtils.spriteCache.TryGetValue(key, out sprite); + Sprite result; + if (flag) + { + result = sprite; + } + else + { + Texture2D texture2D = ImageUtils.LoadTexture(path, format, 2, 2); + bool flag2 = !texture2D; + if (flag2) + { + result = null; + } + else + { + Vector4 border = new Vector4((float)slices.left, (float)slices.right, (float)slices.top, (float)slices.bottom); + Sprite sprite2 = ImageUtils.TextureToSprite(texture2D, pivot, pixelsPerUnit, spriteType, border); + ImageUtils.spriteCache.Add(key, sprite2); + result = sprite2; + } + } + return result; + } + + public static Texture2D LoadTexture(string path, TextureFormat format = TextureFormat.BC7, int width = 2, int height = 2) + { + Texture2D texture2D; + bool flag = ImageUtils.textureCache.TryGetValue(path, out texture2D); + Texture2D result; + if (flag) + { + result = texture2D; + } + else + { + bool flag2 = File.Exists(path); + if (flag2) + { + byte[] data = File.ReadAllBytes(path); + Texture2D texture2D2 = new Texture2D(width, height, format, false); + bool flag3 = texture2D2.LoadImage(data); + if (flag3) + { + ImageUtils.textureCache.Add(path, texture2D2); + return texture2D2; + } + } + else + { + Console.WriteLine("[ImageUtils] ERROR: File not found " + path); + } + result = null; + } + return result; + } + + public static Sprite TextureToSprite(Texture2D tex, Vector2 pivot = default(Vector2), float pixelsPerUnit = 100f, SpriteMeshType spriteType = SpriteMeshType.Tight, Vector4 border = default(Vector4)) + { + return Sprite.Create(tex, new Rect(0f, 0f, (float)tex.width, (float)tex.height), pivot, pixelsPerUnit, 0U, spriteType, border); + } + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/OldSettings.cs b/SubnauticaModSystem/AdvancedHighlighting/OldSettings.cs new file mode 100644 index 0000000..99c464e --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/OldSettings.cs @@ -0,0 +1,93 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +#if SN +#elif BZ +#endif + +namespace AdvancedHighlighting +{ + public class OldSettings + { + private static readonly Dictionary TypeToHighlight = new Dictionary + { + [typeof(Pickupable)] = Highlight.Pickupable, + [typeof(ResourceTracker)] = Highlight.PickupableResource, + [typeof(Creature)] = Highlight.PickupableCreatures, + [typeof(Bladderfish)] = Highlight.Bladderfish, + [typeof(CreatureEgg)] = Highlight.CreatureEgg, + [typeof(BaseLadder)] = Highlight.BaseLadder, + [typeof(BreakableResource)] = Highlight.BreakableResource, + [typeof(HandTarget)] = Highlight.Interactables, + [typeof(GrownPlant)] = Highlight.GrownPlant, + [typeof(StoryHandTarget)] = Highlight.StoryItems, + [typeof(JukeboxDisk)] = Highlight.JukeboxDisk, + [typeof(StarshipDoor)] = Highlight.SealedDoor, + [typeof(Sealed)] = Highlight.LaserCutObject, + [Utils.FragmentsType] = Highlight.ScannableFragments, + [Utils.ScannableType] = Highlight.ScannableItems, + [Utils.EverythingType] = Highlight.AnythingElse, + }; + + public Dictionary enableHighlights; + public Dictionary highlightingColors; + public bool storyNearbyNotification = false; + public bool jukeboxDiskNotification = false; + public bool highlightEverythingExosuit = false; + public bool destoryNull = true; + public bool showPings = false; + public float highlightRadius = 20f; + public float minAlpha = 0f; + public static Settings Load() + { + Console.WriteLine("[AdvancedHighlighting] Loading Settings"); + string path = Path.Combine(Utils.ModDirectory, "settings.json"); + Settings settings = null; + if (File.Exists(path)) + { + try + { + var text = File.ReadAllText(path); + if (text.Contains("PublicKeyToken") || text.Contains("storyNearbyNotification")) + settings = JsonConvert.DeserializeObject(text).ConvertToNewSettings(); + else + settings = JsonConvert.DeserializeObject(text); + } + catch (Exception) { } + } + if (settings == null) settings = new Settings(); + if (settings.HighlightsEnabled == null) settings.HighlightsEnabled = new Dictionary(); + if (settings.HighlightsColor == null) settings.HighlightsColor = new Dictionary(); + foreach (var highlight in Utils.GetHighlights()) + { + if (!settings.HighlightsEnabled.ContainsKey(highlight)) settings.HighlightsEnabled[highlight] = true; + if (!settings.HighlightsColor.ContainsKey(highlight)) settings.HighlightsColor[highlight] = Settings.defaultColor; + } + settings.UpdateActiveHighlights(); + return settings; + } + public Settings ConvertToNewSettings() + { + var settings = new Settings + { + HighlightsEnabled = new Dictionary(), + HighlightsColor = new Dictionary(), + StoryNotification = storyNearbyNotification, + DisksNotification = jukeboxDiskNotification, + ExosuiteHighlightsEnabled = highlightEverythingExosuit, + DestroyNullPings = destoryNull, + ShowPings = showPings, + HighlightSearchDistance = highlightRadius, + MinimumAlpha = minAlpha, + }; + foreach (var highlight in enableHighlights) + if (TypeToHighlight.TryGetValue(highlight.Key, out Highlight val)) + settings.HighlightsEnabled[val] = highlight.Value; + foreach (var highlight in highlightingColors) + if (TypeToHighlight.TryGetValue(highlight.Key, out Highlight val)) + settings.HighlightsColor[val] = highlight.Value; + return settings; + } + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Patches/Highlighting_Patch.cs b/SubnauticaModSystem/AdvancedHighlighting/Patches/Highlighting_Patch.cs new file mode 100644 index 0000000..79ea5ef --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/Patches/Highlighting_Patch.cs @@ -0,0 +1,248 @@ +using HarmonyLib; +using HighlightingSystem; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; +using UWE; + +namespace AdvancedHighlighting.Patches +{ + public static class Highlighting_Patch + { + private static MethodInfo updateActiveHighlightersAsyncMethod; + private static readonly FieldInfo highlightersField = typeof(Highlighting).GetField("highlighters", BindingFlags.Instance | BindingFlags.NonPublic); + private static readonly FieldInfo handlersField = typeof(Highlighting).GetField("handlers", BindingFlags.Instance | BindingFlags.NonPublic); + private static readonly FieldInfo updateActiveHighligtersCoroutineField = typeof(Highlighting).GetField("updateActiveHighligtersCoroutine", BindingFlags.Instance | BindingFlags.NonPublic); + public static HashSet GetHighlighters(this Highlighting instance) => + (HashSet)highlightersField.GetValue(instance); + public static Dictionary GetHandlers(this Highlighting instance) => + (Dictionary)handlersField.GetValue(instance); + public static Coroutine GetUpdateActiveHighligtersCoroutine(this Highlighting instance) => + (Coroutine)updateActiveHighligtersCoroutineField.GetValue(instance); + public static void SetUpdateActiveHighligtersCoroutine(this Highlighting instance, Coroutine coroutine) => + updateActiveHighligtersCoroutineField.SetValue(instance, coroutine); + public static System.Collections.IEnumerator InvokeUpdateActiveHighlightersAsync(this Highlighting instance, Vector3 vector) + { + if (updateActiveHighlightersAsyncMethod == null) + updateActiveHighlightersAsyncMethod = typeof(Highlighting).GetMethods(BindingFlags.Instance | BindingFlags.NonPublic).Where(x => x.Name == "UpdateActiveHighlightersAsync").FirstOrDefault(); + return (System.Collections.IEnumerator)updateActiveHighlightersAsyncMethod.Invoke(instance, new object[] { vector }); + } + + } + [HarmonyPatch(typeof(Highlighting), "OnUpdate")] + public class Highlighting_OnUpdate_Patch + { + public static readonly Dictionary stories = new Dictionary(); + public static readonly Dictionary pings = new Dictionary(); + public static readonly List notifications = new List(); + private static int lastActiveTargetId = 0; + private static float hoverStart = 0f; + public static bool isLogged = false; + public static bool Prefix(Highlighting __instance) + { + Highlighting.Mode mode = Highlighting.GetMode(); + var settings = Settings.GetInstance(); + if (mode == Highlighting.Mode.None || settings.ActiveHighlights.Count == 0) + { + lastActiveTargetId = 0; + } + else + { + var time = Time.time; + Vector3 vector = MainCamera.camera?.transform.position ?? Vector3.zero; + GameObject gameObject = null; + if (mode == Highlighting.Mode.Exosuit) gameObject = (Player.main.GetVehicle() as Exosuit).GetActiveTarget(); + else if (mode == Highlighting.Mode.Player) gameObject = Player.main?.guiHand?.GetActiveTarget(); + int id = gameObject?.GetInstanceID() ?? 0; + if (lastActiveTargetId != id) + { + hoverStart = time; + lastActiveTargetId = id; + } + if (__instance.GetUpdateActiveHighligtersCoroutine() == null) + { + if (__instance.radiusOuter != settings.HighlightSearchDistance) + __instance.radiusOuter = settings.HighlightSearchDistance; + __instance.SetUpdateActiveHighligtersCoroutine(__instance.StartCoroutine(__instance.InvokeUpdateActiveHighlightersAsync(vector))); + } + + var highlighters = __instance.GetHighlighters(); + if (settings.StoryNotification || settings.DisksNotification || settings.ShowPings) + { + var removed = new List(); + foreach (var key in stories.Keys) + { + if (!highlighters.Any(x => x.GetInstanceID() == key)) + removed.Add(key); + } + foreach (var key in removed) + { + if (notifications.Contains(key)) + { + notifications.Remove(key); + ErrorMessage.AddMessage($"[Advanced Highlighting] {Language.main.Get(stories[key])} is no longer nearby"); + } + if (pings.ContainsKey(key)) + { + var ping = PingManager.Get(pings[key]); + if (ping != null) + UnityEngine.Object.Destroy(ping); + pings.Remove(key); + } + stories.Remove(key); + } + } + var radiusRange = settings.HighlightSearchDistance - __instance.radiusInner; + + if (!settings.PresetApplied && MainCamera.camera != null && MainCamera.camera.TryGetComponent(out HighlightingRenderer renderer)) + { + settings.PresetApplied = true; + if (settings.HighlightingRenderer >= 0 && settings.HighlightingRenderer < Utils.Presets.Count) + renderer.ApplyPreset(Utils.Presets[settings.HighlightingRenderer]); + //Console.WriteLine($"[AdvancedHighlighting] Active {settings.HighlightingRenderer},{Utils.Presets.Count} = [{renderer.name}, {renderer.blurDirections}, {renderer.blurIntensity}, {renderer.blurMinSpread}, {renderer.blurSpread}, {renderer.downsampleFactor}, {renderer.fillAlpha}, {renderer.iterations}]"); + } + foreach (Highlighter highlighter in highlighters) + { + if (highlighter != null) + { + var highlights = highlighter.gameObject.GetHighlightsForObject(out _, out _); + if (highlights.Count > 0) + { + Color highlightingColor = settings.GetHighlightColor(highlights.First()); + if (highlightingColor.a != 0f) + { + float magnitude = (highlighter.bounds.center - vector).magnitude; + float a = Mathf.Max(Mathf.Clamp01(1f - (magnitude - __instance.radiusInner) / radiusRange), settings.MinimumAlpha); + highlightingColor.a = a * a; + highlighter.ConstantOn(highlightingColor, 0f); + highlighter.filterMode = RendererFilterMode.None; + + if (magnitude <= settings.HighlightSearchDistance) + NotifiyAndPing(highlighter); + } + else + highlighter.ConstantOn(highlightingColor, 0f); + } + } + } + if (gameObject != null) + { + GameObject highlightableRoot = null; + Highlighting_GetHighlightableRoot_Patch.Prefix(__instance, ref highlightableRoot, mode, gameObject); + if (highlightableRoot != null) + { + Highlighter highlighter = highlightableRoot.GetComponent(); + if (highlighter != null) + { + Color highlightingColor = highlighter.constantColor; + float a2 = Mathf.Lerp(0.4f, 1f, Mathf.Cos((time - hoverStart) * 2f * Mathf.PI * __instance.hoverFlashingSpeed) * 0.5f + 0.5f); + highlightingColor.a = a2 * a2; + highlighter.Hover(highlightingColor); + } + } + } + } + return false; + } + private static void NotifiyAndPing(Highlighter highlighter) + { + var objId = highlighter.GetInstanceID(); + if (!stories.ContainsKey(objId)) + { + string name = null; + string type = null; + if (highlighter.TryGetComponent(out StoryHandTarget story)) + { + name = Language.main.Get(story.primaryTooltip); + type = "story"; + } + else if (highlighter.TryGetComponent(out JukeboxDisk disk)) + { + name = Language.main.Get(Jukebox.GetInfo(disk.track).label); + type = "disk"; + } + if (name != null) + { + var settings = Settings.GetInstance(); + stories[objId] = name; + if ((type == "story" && settings.StoryNotification) || + (type == "disk" && settings.DisksNotification)) + { + notifications.Add(objId); + ErrorMessage.AddMessage($"[Advanced Highlighting] {name} is nearby"); + } + if (settings.ShowPings) + { + PingInstance ping = highlighter.gameObject.EnsureComponent(); + ping.origin = highlighter.gameObject.transform; + ping.SetFakePosition(highlighter.bounds.center); + ping.SetVisible(true); + ping.SetLabel(name); + ping._id = $"ahping_{type}_{objId}"; + ping.pingType = PingType.Signal; + ping.displayPingInManager = false; + ping.visitable = false; + ping.minDist = 5f; + ping.range = 5f; + ping.enabled = true; + pings[objId] = ping._id; + } + } + } + } + } + + [HarmonyPatch(typeof(Highlighting), "GetHighlightableRoot", new Type[] { typeof(Highlighting.Mode), typeof(GameObject) })] + public static class Highlighting_GetHighlightableRoot_Patch + { + public static bool Prefix(Highlighting __instance, ref GameObject __result, Highlighting.Mode mode, GameObject target) + { + __result = null; + if (mode == Highlighting.Mode.None) + return false; + var settings = Settings.GetInstance(); + if (mode == Highlighting.Mode.Exosuit && !settings.ExosuiteHighlightsEnabled) + { + Exosuit exosuit = Player.main.GetVehicle() as Exosuit; + if (exosuit != null) + __result = exosuit.GetInteractableRoot(target); + return false; + } + else + { + var highlights = target.GetHighlightsForObject(out GameObject result, out Behaviour behaviour); + if (highlights.Count == 0) + return false; + if (highlights.Contains(Highlight.ScannableFragments) || + highlights.Contains(Highlight.ScannedFragments) || + highlights.Contains(Highlight.ScannableItems)) + { + __result = result; + return false; + } + + if (behaviour == null || !behaviour.enabled || behaviour.GetComponentInParent() != null || + behaviour.GetComponentInParent() != null) + { + return false; + } + + var handlers = __instance.GetHandlers(); + if (handlers != null && handlers.TryGetValue(behaviour.GetType(), out Highlighting.Handler handler)) + { + handler(ref behaviour); + if (behaviour == null) + return false; + } + __result = behaviour.gameObject; + } + return false; + } + } + +} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Patches/PingInstance_Patch.cs b/SubnauticaModSystem/AdvancedHighlighting/Patches/PingInstance_Patch.cs new file mode 100644 index 0000000..c5d0bcf --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/Patches/PingInstance_Patch.cs @@ -0,0 +1,32 @@ +using HarmonyLib; +using System; +using System.Reflection; +using UnityEngine; + +namespace AdvancedHighlighting.Patches +{ + public static class PingInstance_Patch + { + private static readonly FieldInfo fakePositionUsedField = typeof(PingInstance).GetField("fakePositionUsed", BindingFlags.Instance | BindingFlags.NonPublic); + public static bool GetFakePositionUsed(PingInstance instance) => + (bool)fakePositionUsedField.GetValue(instance); + } + [HarmonyPatch(typeof(PingInstance), "GetPosition")] + public static class PingInstance_GetPosition_Patch + { + public static bool Prefix(PingInstance __instance, ref Vector3 __result) + { + if (__instance == null || (__instance.origin == null && !PingInstance_Patch.GetFakePositionUsed(__instance))) + { + if (__instance != null && Settings.GetInstance().DestroyNullPings) + { + UnityEngine.Object.Destroy(__instance); + Console.WriteLine($"[AdvancedHighlighting] Destroying {__instance._id}..."); + } + __result = Vector3.zero; + return false; + } + return true; + } + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Patches/SaveLoadManager_Patch.cs b/SubnauticaModSystem/AdvancedHighlighting/Patches/SaveLoadManager_Patch.cs new file mode 100644 index 0000000..b2cad82 --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/Patches/SaveLoadManager_Patch.cs @@ -0,0 +1,34 @@ +using HarmonyLib; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AdvancedHighlighting.Patches +{ + [HarmonyPatch(typeof(SaveLoadManager), "NotifySaveInProgress", new Type[] { typeof(bool) })] + public static class SaveLoadManager_NotifySaveInProgress_Patch + { + public static void Postfix(SaveLoadManager __instance, bool isInProgress) + { + if (!Settings.GetInstance().ShowPings) + return; + if (isInProgress) + { + foreach (var pingKey in Highlighting_OnUpdate_Patch.pings.Keys) + { + var ping = PingManager.Get(Highlighting_OnUpdate_Patch.pings[pingKey]); + if (ping != null) + UnityEngine.Object.Destroy(ping); + } + Highlighting_OnUpdate_Patch.pings.Clear(); + } + else + { + Highlighting_OnUpdate_Patch.stories.Clear(); + } + } + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_OptionsPanel_Patch.cs b/SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_OptionsPanel_Patch.cs new file mode 100644 index 0000000..093f2d5 --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_OptionsPanel_Patch.cs @@ -0,0 +1,130 @@ +using HarmonyLib; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.UI; +#if SN +#elif BZ +#endif + +namespace AdvancedHighlighting.Patches +{ + [HarmonyPatch(typeof(uGUI_OptionsPanel), "OnDisable")] + public class uGUI_OptionsPanel_OnDisable_Patch + { + public static void Prefix() + { + Settings.GetInstance().Save(); + } + } + + [HarmonyPatch(typeof(uGUI_OptionsPanel), "AddAccessibilityTab")] + public class uGUI_OptionsPanel_AddAccessibilityTab_Patch + { + private static readonly Dictionary toggleOptions = new Dictionary(); + private static readonly Dictionary colorOptions = new Dictionary(); + private static readonly List options = new List(); + + private static void UpdatePingColors() + { + foreach (var pingKey in Highlighting_OnUpdate_Patch.pings.Keys) + { + var ping = PingManager.Get(Highlighting_OnUpdate_Patch.pings[pingKey]); + if (ping != null) + ping.SetColor(1); + } + } + public static bool Prefix(uGUI_OptionsPanel __instance) + { + var settings = Settings.GetInstance(); + int tabIndex = __instance.AddTab("Accessibility"); + options.Clear(); + toggleOptions.Clear(); + colorOptions.Clear(); + __instance.AddSliderOption(tabIndex, "UIScale", MiscSettings.GetUIScale(DisplayOperationMode.Current), 0.7f, 1.4f, 1f, 0.01f, (value) => + { + MiscSettings.SetUIScale(value, DisplayOperationMode.Current); + }, SliderLabelMode.Float, "0.00"); + __instance.AddToggleOption(tabIndex, "PDAPause", MiscSettings.pdaPause, new UnityAction((val) => MiscSettings.pdaPause = val), null); + __instance.AddToggleOption(tabIndex, "Flashes", MiscSettings.flashes, new UnityAction((val) => MiscSettings.flashes = val), null); + //highlightingColorOption = __instance.AddColorOption(tabIndex, "HighlightingColor", MiscSettings.highlightingColor, new UnityAction((val) => MiscSettings.highlightingColor = val )); + + __instance.AddHeading(tabIndex, "Advanced Highlighting"); + __instance.AddToggleOption(tabIndex, "Enable Highlighting", MiscSettings.highlighting, new UnityAction(OnHighlightingChanged), null); + + options.Add(__instance.AddChoiceOption(tabIndex, "Highlighting Renderer", Utils.Presets.Select(x => x.name).ToArray(), settings.HighlightingRenderer, new UnityAction((val) => + { + settings.HighlightingRenderer = val; + settings.PresetApplied = false; + }), null).gameObject); + //__instance.AddToggleOption(tabIndex, "Destrey Nulls", settings.destoryNull, new UnityAction((val) => settings.destoryNull = val), null); + options.Add(__instance.AddToggleOption(tabIndex, "Notify about nearby PDA Logs", settings.StoryNotification, new UnityAction((val) => settings.StoryNotification = val), null).gameObject); + options.Add(__instance.AddToggleOption(tabIndex, "Notify about nearby Jukebox Disks", settings.DisksNotification, new UnityAction((val) => settings.DisksNotification = val), null).gameObject); + options.Add(__instance.AddToggleOption(tabIndex, "Show pings for PDA Logs and Disks", settings.ShowPings, new UnityAction((val) => + { + settings.ShowPings = val; + TogglePings(); + }), null).gameObject); + + options.Add(__instance.AddToggleOption(tabIndex, "Highlight while in Exosuit", settings.ExosuiteHighlightsEnabled, new UnityAction((val) => settings.ExosuiteHighlightsEnabled = val), null).gameObject); + options.Add(__instance.AddSliderOption(tabIndex, "Highlight search radius", settings.HighlightSearchDistance, 10f, 100f, 20f, 0.5f, (value) => + { + settings.HighlightSearchDistance = value; + }, SliderLabelMode.Float, "0.0")); + options.Add(__instance.AddSliderOption(tabIndex, "Minimum allowed fade value", settings.MinimumAlpha, 0f, 1f, 0f, 0.1f, (value) => + { + settings.MinimumAlpha = value; + }, SliderLabelMode.Float, "0.0")); + foreach (var highlight in Utils.GetHighlights()) + { + toggleOptions[highlight] = __instance.AddToggleOption(tabIndex, $"Highlight {highlight.GetName()}", settings.IsHighlightEnabled(highlight), new UnityAction((val) => + { + settings.HighlightsEnabled[highlight] = val; + if (colorOptions.TryGetValue(highlight, out GameObject color)) + color.SetActive(val); + settings.UpdateActiveHighlights(); + }), null); + colorOptions[highlight] = __instance.AddColorOption(tabIndex, $"{highlight.GetName()} color", settings.GetHighlightColor(highlight), new UnityAction((val) => + { + settings.HighlightsColor[highlight] = ColorUtility.ToHtmlStringRGBA(val); + if ((highlight == Highlight.StoryItems || highlight == Highlight.JukeboxDisk) && settings.ShowPings) + UpdatePingColors(); + })); + } + OnHighlightingChanged(MiscSettings.highlighting); + return false; + } + private static void TogglePings() + { + if (!MiscSettings.highlighting || !Settings.GetInstance().ShowPings) + { + foreach (var pingKey in Highlighting_OnUpdate_Patch.pings.Keys) + { + var ping = PingManager.Get(Highlighting_OnUpdate_Patch.pings[pingKey]); + if (ping != null) + UnityEngine.Object.Destroy(ping); + } + Highlighting_OnUpdate_Patch.pings.Clear(); + } + else + { + Highlighting_OnUpdate_Patch.stories.Clear(); + } + } + private static void OnHighlightingChanged(bool value) + { + MiscSettings.highlighting = value; + TogglePings(); + foreach (var gameObject in options) + if (gameObject != null) + gameObject.SetActive(value); + foreach (var highlight in Utils.GetHighlights()) + { + toggleOptions[highlight].gameObject.SetActive(value); + colorOptions[highlight].SetActive(value && toggleOptions[highlight].isOn); + } + Settings.GetInstance().UpdateActiveHighlights(); + } + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_Pings_Patch.cs b/SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_Pings_Patch.cs new file mode 100644 index 0000000..8821450 --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_Pings_Patch.cs @@ -0,0 +1,51 @@ +using HarmonyLib; +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using UnityEngine; + +namespace AdvancedHighlighting.Patches +{ + public static class uGUI_Pings_Patch + { + private static readonly FieldInfo pingsField = typeof(uGUI_Pings).GetField("pings", BindingFlags.Instance | BindingFlags.NonPublic); + public static Dictionary GetPings(uGUI_Pings instance) => + (Dictionary)pingsField.GetValue(instance); + } + + [HarmonyPatch(typeof(uGUI_Pings), "OnAdd", new Type[] { typeof(PingInstance) })] + public static class uGUI_Pings_OnAdd_Patch + { + public static void Postfix(uGUI_Pings __instance, PingInstance instance) + { + var id = instance._id; + if (!id.StartsWith("ahping_")) return; + var pings = uGUI_Pings_Patch.GetPings(__instance); + if (pings != null && pings.TryGetValue(id, out uGUI_Ping ping)) + { + //Console.WriteLine($"[AdvancedHighlighting] OnAdd Ping {id} {Utils.GetEyeSprite(out _)}..."); + if (Utils.GetColorForType(id.Split('_')[1], out Color newColor)) + ping.SetColor(newColor); + if (Utils.GetEyeSprite(out Sprite sprite)) + ping.SetIcon(sprite); + } + } + } + + [HarmonyPatch(typeof(uGUI_Pings), "OnColor", new Type[] { typeof(string), typeof(Color) })] + public static class uGUI_Pings_OnColor_Patch + { + public static void Postfix(uGUI_Pings __instance, string id, Color color) + { + if (id.StartsWith("ahping_")) + { + //Console.WriteLine($"[AdvancedHighlighting] OnColor Ping {id}, {pings?.Count}..."); + var pings = uGUI_Pings_Patch.GetPings(__instance); + if (pings != null && pings.TryGetValue(id, out uGUI_Ping ping)) + if (Utils.GetColorForType(id.Split('_')[1], out Color newColor)) + ping.SetColor(newColor); + } + } + } +} diff --git a/SubnauticaModSystem/AdvancedHighlighting/Properties/AssemblyInfo.cs b/SubnauticaModSystem/AdvancedHighlighting/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e3cb5c0 --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("AdvancedHighlighting")] +[assembly: AssemblyDescription("A mod for Subnautica Below Zero")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("OGMods")] +[assembly: AssemblyProduct("AdvancedHighlighting")] +[assembly: AssemblyCopyright("Copyright OGMods © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("adb59190-bc97-4509-ab62-c64a4d9a93ec")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.2.0.0")] +[assembly: AssemblyFileVersion("1.2.0.0")] diff --git a/SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.Designer.cs b/SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e24305e --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.Designer.cs @@ -0,0 +1,90 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace AdvancedHighlighting.Properties { + using System; + + + ///

      + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AdvancedHighlighting.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to A mod to change the highlighting colors of objects in the game.. + /// + internal static string desc { + get { + return ResourceManager.GetString("desc", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AdvancedHighlighting. + /// + internal static string title { + get { + return ResourceManager.GetString("title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1.0.0. + /// + internal static string ver { + get { + return ResourceManager.GetString("ver", resourceCulture); + } + } + } +} diff --git a/SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.resx b/SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.resx new file mode 100644 index 0000000..9d5fd00 --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + A mod to change the highlighting colors of objects in the game. + + + AdvancedHighlighting + + + 1.0.0 + + \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Qmod.cs.test b/SubnauticaModSystem/AdvancedHighlighting/Qmod.cs.test new file mode 100644 index 0000000..a41a959 --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/Qmod.cs.test @@ -0,0 +1,55 @@ +using SMLHelper.V2.Json; +using SMLHelper.V2.Options.Attributes; +using UnityEngine; + +namespace AdvancedHighlighting +{ + [Menu("Advanced Highlighting", SaveOn = MenuAttribute.SaveEvents.ChangeValue)] + public class IngameConfigMenu : ConfigFile + { + public IngameConfigMenu() : base("config") { } + + [Toggle("Pickupable Items", Tooltip = "Highlight Pickupable Items.", Order = 1)] + public bool Pickupable = true; + + [Choice("Pickupable Color", Tooltip = "Select a color for Pickupable Items.", Options = new string[] {"Red", "16dcff"})] + public string PickupableColor = "fffb16"; + + [Toggle("Pickupable Creatures", Tooltip = "Highlight Pickupable Creatures.", Order = 2)] + public bool PickupableCreatures = true; + + [Toggle("Pickupable Resources", Tooltip = "Highlight Pickupable Resource.", Order = 3)] + public bool PickupableResource = true; + + [Toggle("Breakable Resources", Tooltip = "Highlight Breakable Resource.", Order = 4)] + public bool BreakableResource = true; + + [Toggle("Interactable Items", Tooltip = "Highlight Interactable Items.", Order = 5)] + public bool Interactables = true; + + [Toggle("Story Items", Tooltip = "Highlight Story Items.", Order = 6)] + public bool StoryItems = true; + + [Toggle("Jukebox Disks", Tooltip = "Highlight Jukebox Disks.", Order = 7)] + public bool JukeboxDisk = true; + + [Toggle("Sealed Doors", Tooltip = "Highlight Sealed Doors.", Order = 8)] + public bool SealedDoor = true; + + [Toggle("Grown Plants", Tooltip = "Highlight Grown Plants.", Order = 9)] + public bool GrownPlant = true; + + [Toggle("Bladder Fish", Tooltip = "Highlight Bladder Fish.", Order = 10)] + public bool Bladderfish = true; + + [Toggle("Creature Eggs", Tooltip = "Highlight Creature Eggs.", Order = 11)] + public bool CreatureEgg = true; + + [Toggle("Base Ladders", Tooltip = "Highlight Base Ladders.", Order = 12)] + public bool BaseLadder = true; + + [Toggle("Laser CutObjects", Tooltip = "Highlight Sealed Doors.", Order = 13)] + public bool LaserCutObject = true; + + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Settings.cs b/SubnauticaModSystem/AdvancedHighlighting/Settings.cs new file mode 100644 index 0000000..def3f1e --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/Settings.cs @@ -0,0 +1,68 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using UnityEngine; +#if SN +#elif BZ +#endif + +namespace AdvancedHighlighting +{ + public class Settings + { + public static readonly string defaultColor = "e0e238"; + public static readonly Color nullColor = new Color(0f, 0f, 0f, 0f); + [JsonIgnore] + public bool PresetApplied = false; + + public bool StoryNotification = false; + public bool DisksNotification = false; + public bool ShowPings = false; + public bool ExosuiteHighlightsEnabled = false; + public bool DestroyNullPings = true; + public float HighlightSearchDistance = 20f; + public float MinimumAlpha = 0f; + public int HighlightingRenderer = 1; + + public Dictionary HighlightsEnabled; + public Dictionary HighlightsColor; + + [JsonIgnore] + public List ActiveHighlights = new List(); + + [JsonIgnore] + private static Settings instance; + public static Settings GetInstance() + { + if (instance == null) + instance = OldSettings.Load(); + return instance; + } + public void Save() + { + Console.WriteLine("[AdvancedHighlighting] Saving Settings"); + File.WriteAllText(Path.Combine(Utils.ModDirectory, "settings.json"), JsonConvert.SerializeObject(this, Formatting.Indented)); + } + public void UpdateActiveHighlights() + { + ActiveHighlights.Clear(); + if (MiscSettings.highlighting) + { + foreach (var highlight in HighlightsEnabled) + if (highlight.Value) + ActiveHighlights.Add(highlight.Key); + //Console.WriteLine($"[AdvancedHighlighting] UpdateActiveHighlights {string.Join(",", ActiveHighlights)}..."); + } + } + + public bool IsHighlightActive(Highlight highlight) => + ActiveHighlights.Contains(highlight); + public bool IsHighlightEnabled(Highlight highlight) => + (HighlightsEnabled.TryGetValue(highlight, out bool e) ? e : MiscSettings.highlighting); + public Color GetHighlightColor(Highlight highlight) => + (HighlightsColor.TryGetValue(highlight, out string h) && ColorUtility.TryParseHtmlString("#" + h, out Color c) ? c : nullColor); + public string GetHtmlColor(Highlight highlight) => + (HighlightsColor.TryGetValue(highlight, out string h) ? h : null); + } +} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Utils.cs b/SubnauticaModSystem/AdvancedHighlighting/Utils.cs new file mode 100644 index 0000000..0d17216 --- /dev/null +++ b/SubnauticaModSystem/AdvancedHighlighting/Utils.cs @@ -0,0 +1,169 @@ +using HighlightingSystem; +using System; +using System.Collections.Generic; +using System.IO; +using UnityEngine; +using static PDAScanner; +#if SN +#elif BZ +#endif + +namespace AdvancedHighlighting +{ + public static class Utils + { + public static readonly Type FragmentsType = typeof(TechFragment); + public static readonly Type ScannableType = typeof(ScannerTarget); + public static readonly Type EverythingType = typeof(Utils); + public static readonly List Presets = new List + { + new HighlightingPreset { name = "Narrow", fillAlpha = 0f, downsampleFactor = 4, iterations = 2, blurMinSpread = 0.65f, blurSpread = 0.25f, blurIntensity = 0.3f, blurDirections = BlurDirections.Diagonal}, + new HighlightingPreset { name = "Wide (Game Default)", fillAlpha = 0f, downsampleFactor = 4, iterations = 4, blurMinSpread = 0.65f, blurSpread = 0.25f, blurIntensity = 0.3f, blurDirections = BlurDirections.Diagonal }, + new HighlightingPreset { name = "Strong", fillAlpha = 0f, downsampleFactor = 4, iterations = 2, blurMinSpread = 0.5f, blurSpread = 0.15f, blurIntensity = 0.325f, blurDirections = BlurDirections.Diagonal }, + new HighlightingPreset { name = "Speed", fillAlpha = 0f, downsampleFactor = 4, iterations = 1, blurMinSpread = 0.75f, blurSpread = 0f, blurIntensity = 0.35f, blurDirections = BlurDirections.Diagonal }, + new HighlightingPreset { name = "Quality", fillAlpha = 0f, downsampleFactor = 2, iterations = 3, blurMinSpread = 0.5f, blurSpread = 0.5f, blurIntensity = 0.28f, blurDirections = BlurDirections.Diagonal }, + new HighlightingPreset { name = "Solid 1px", fillAlpha = 0f, downsampleFactor = 1, iterations = 1, blurMinSpread = 1f, blurSpread = 0f, blurIntensity = 1f, blurDirections = BlurDirections.All }, + new HighlightingPreset { name = "Solid 2px", fillAlpha = 0f, downsampleFactor = 1, iterations = 2, blurMinSpread = 1f, blurSpread = 0f, blurIntensity = 1f, blurDirections = BlurDirections.All }, + new HighlightingPreset { name = "Solid 3px", fillAlpha = 0f, downsampleFactor = 1, iterations = 3, blurMinSpread = 1f, blurSpread = 0f, blurIntensity = 1f, blurDirections = BlurDirections.All }, + new HighlightingPreset { name = "Solid 4px", fillAlpha = 0f, downsampleFactor = 1, iterations = 4, blurMinSpread = 1f, blurSpread = 0f, blurIntensity = 1f, blurDirections = BlurDirections.All }, + new HighlightingPreset { name = "Solid 5px", fillAlpha = 0f, downsampleFactor = 1, iterations = 5, blurMinSpread = 1f, blurSpread = 0f, blurIntensity = 1f, blurDirections = BlurDirections.All } + }; + public static Highlight[] GetHighlights() => (Highlight[])Enum.GetValues(typeof(Highlight)); + private static Sprite eyeSprite; + public static bool GetEyeSprite(out Sprite sprite) + { + if (eyeSprite == null && File.Exists(Path.Combine(ModDirectory, "Assets", "Eye.png"))) + eyeSprite = ImageUtils.LoadSprite(Path.Combine(ModDirectory, "Assets", "Eye.png"), new Vector2(0.5f, 0.5f), TextureFormat.BC7, 100f, SpriteMeshType.Tight); + sprite = eyeSprite; + return (sprite != null); + } + public static bool GetColorForType(string type, out Color newColor) + { + if (type == "story") + { + newColor = Settings.GetInstance().GetHighlightColor(Highlight.StoryItems); + return true; + } + else if (type == "disk") + { + newColor = Settings.GetInstance().GetHighlightColor(Highlight.JukeboxDisk); + return true; + } + newColor = Settings.nullColor; + return false; + } + public static List GetHighlightsForObject(this GameObject gameObject, out GameObject targetObject, out Behaviour behaviour) + { + var supported = new List(); + targetObject = null; + behaviour = null; + if (gameObject == null) + return supported; + if (Targeting.GetRoot(gameObject, out TechType techType, out GameObject result)) + { + var scannableFragments = Settings.GetInstance().IsHighlightActive(Highlight.ScannableFragments); + targetObject = result; + if (PDAScanner.IsFragment(techType)) + { + if (!PDAScanner.ContainsCompleteEntry(techType)) + { + if (scannableFragments) supported.Add(Highlight.ScannableFragments); + } + else if (techType.GetEntryData(out EntryData data)) + { + if (data.destroyAfterScan && Highlight.ScannedFragments.IsActive()) supported.Add(Highlight.ScannedFragments); + } + } + else if (result != null) + { + if (techType.GetEntryData(out EntryData data) && PDAScanner.CanScan(result)) + { + if (data.blueprint > 0 && scannableFragments) + supported.Add(Highlight.ScannableFragments); + else if (data.blueprint == 0 && Highlight.ScannableItems.IsActive()) + supported.Add(Highlight.ScannableItems); + } + } + } + behaviour = gameObject.GetComponentInParent() as Behaviour; + if (behaviour != null) + { + if (Highlight.BreakableResource.IsPressent(behaviour)) + { + if (Highlight.BreakableResource.IsActive()) supported.Add(Highlight.BreakableResource); + } + else if (Highlight.PickupableResource.IsPressent(behaviour)) + { + if (Highlight.CreatureEgg.IsPressent(behaviour)) + { + if (Highlight.CreatureEgg.IsActive()) supported.Add(Highlight.CreatureEgg); + } + else + { + if (Highlight.PickupableResource.IsActive()) supported.Add(Highlight.PickupableResource); + } + } + else if (Highlight.PickupableCreatures.IsPressent(behaviour)) + { + if (Highlight.Bladderfish.IsPressent(behaviour)) + { + if (Highlight.Bladderfish.IsActive()) supported.Add(Highlight.Bladderfish); + } + else + { + if (Highlight.PickupableCreatures.IsActive()) supported.Add(Highlight.PickupableCreatures); + } + } + else if (Highlight.Pickupable.IsPressent(behaviour)) + { + if (Highlight.Pickupable.IsActive()) supported.Add(Highlight.Pickupable); + } + else if (Highlight.Interactables.IsPressent(behaviour)) + { + if(Highlight.BaseLadder.IsPressent(behaviour)) + { + if (Highlight.BaseLadder.IsActive()) supported.Add(Highlight.BaseLadder); + } + else if (Highlight.GrownPlant.IsPressent(behaviour)) + { + if (Highlight.GrownPlant.IsActive()) supported.Add(Highlight.GrownPlant); + } + else if (Highlight.SealedDoor.IsPressent(behaviour)) + { + if (Highlight.SealedDoor.IsActive()) supported.Add(Highlight.SealedDoor); + } + else if (Highlight.LaserCutObject.IsPressent(behaviour)) + { + if (Highlight.LaserCutObject.IsActive()) supported.Add(Highlight.LaserCutObject); + } + else + { + if (Highlight.Interactables.IsActive()) supported.Add(Highlight.Interactables); + } + } + + if (Highlight.StoryItems.IsPressentAndActive(behaviour)) supported.Add(Highlight.StoryItems); + if (Highlight.JukeboxDisk.IsPressentAndActive(behaviour)) supported.Add(Highlight.JukeboxDisk); + if (supported.Count == 0 && Highlight.AnythingElse.IsActive()) supported.Add(Highlight.AnythingElse); + } + //if (!logged.Contains(gameObject.GetInstanceID())) + //{ + // var types1 = gameObject.GetComponents().Select(x => x.GetType()); + // var types2 = behaviour?.gameObject?.GetComponents().Select(x => x.GetType()); + // Console.WriteLine($"[AdvancedHighlighting] GetSupportedComponentsTypes ([{gameObject.GetInstanceID()}] {gameObject.name},[{behaviour?.gameObject?.GetInstanceID()}] {behaviour?.gameObject?.name}), Supported = ({string.Join(", ", supported)}), Types1 = ({string.Join(", ", types1)}), Types2 = ({(types2 != null ? string.Join(", ", types2) : "")})"); + // logged.Add(gameObject.GetInstanceID()); + //} + return supported; + } + //private static readonly List logged = new List(); + public static string ModDirectory + { + get => Environment.CurrentDirectory + "\\QMods\\AdvancedHighlighting\\"; + } + public static bool GetEntryData(this TechType tech, out EntryData data) + { + data = PDAScanner.GetEntryData(tech); + return data != null; + } + } +} \ No newline at end of file From 4ddc0ec00df003d9eef428913d0c0b6efc2fb922 Mon Sep 17 00:00:00 2001 From: vijer Date: Tue, 4 Oct 2022 10:44:25 +0700 Subject: [PATCH 6/6] Delete SubnauticaModSystem/AdvancedHighlighting directory --- .../AdvancedHighlighting.csproj | 349 ------------------ .../AdvancedHighlighting.sln | 25 -- .../AdvancedHighlighting/HighlightEnum.cs | 85 ----- .../AdvancedHighlighting/HighlightingMod.cs | 23 -- .../HighlightingMod.cs.test | 28 -- .../AdvancedHighlighting/ImageUtils.cs | 109 ------ .../AdvancedHighlighting/OldSettings.cs | 93 ----- .../Patches/Highlighting_Patch.cs | 248 ------------- .../Patches/PingInstance_Patch.cs | 32 -- .../Patches/SaveLoadManager_Patch.cs | 34 -- .../Patches/uGUI_OptionsPanel_Patch.cs | 130 ------- .../Patches/uGUI_Pings_Patch.cs | 51 --- .../Properties/AssemblyInfo.cs | 36 -- .../Properties/Resources.Designer.cs | 90 ----- .../Properties/Resources.resx | 129 ------- .../AdvancedHighlighting/Qmod.cs.test | 55 --- .../AdvancedHighlighting/Settings.cs | 68 ---- .../AdvancedHighlighting/Utils.cs | 169 --------- 18 files changed, 1754 deletions(-) delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.csproj delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.sln delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/HighlightEnum.cs delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs.test delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/ImageUtils.cs delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/OldSettings.cs delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/Patches/Highlighting_Patch.cs delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/Patches/PingInstance_Patch.cs delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/Patches/SaveLoadManager_Patch.cs delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_OptionsPanel_Patch.cs delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_Pings_Patch.cs delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/Properties/AssemblyInfo.cs delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.Designer.cs delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.resx delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/Qmod.cs.test delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/Settings.cs delete mode 100644 SubnauticaModSystem/AdvancedHighlighting/Utils.cs diff --git a/SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.csproj b/SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.csproj deleted file mode 100644 index 714a405..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.csproj +++ /dev/null @@ -1,349 +0,0 @@ - - - - - Debug - AnyCPU - {ADB59190-BC97-4509-AB62-C64A4D9A93EC} - Library - Properties - AdvancedHighlighting - AdvancedHighlighting - v4.8 - 512 - true - - - - true - full - true - bin\BZ\ - BZ - prompt - 4 - true - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - bin\BZ\ - - - bin\SN\ - - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\BepInEx\core\0Harmony20.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Assembly-CSharp.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Assembly-CSharp-firstpass.dll - - - False - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Newtonsoft.Json.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\BepInEx\plugins\QModManager\QModInstaller.dll - - - D:\SteamLibrary\steamapps\common\SubnauticaZero\QMods\SMLHelper_BZ\SMLHelper.dll - - - - - - - - - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Addressables.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Burst.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Burst.Unsafe.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Collections.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Formats.Fbx.Runtime.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.InternalAPIEngineBridge.001.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Mathematics.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.MemoryProfiler.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.PlayableGraphVisualizer.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.ProBuilder.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.ProBuilder.KdTree.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.ProBuilder.Poly2Tri.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.ProBuilder.Stl.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Recorder.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.ResourceManager.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.ScriptableBuildPipeline.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.TextMeshPro.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\Unity.Timeline.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.AccessibilityModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.AIModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.AndroidJNIModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.AnimationModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ARModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.AssetBundleModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.AudioModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ClothModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ClusterInputModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ClusterRendererModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.CoreModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.CrashReportingModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.DirectorModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.DSPGraphModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.GameCenterModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.GridModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.HotReloadModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ImageConversionModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.IMGUIModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.InputLegacyModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.InputModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.JSONSerializeModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.LocalizationModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ParticleSystemModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.PerformanceReportingModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.Physics2DModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.PhysicsModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ProfilerModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.ScreenCaptureModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.SharedInternalsModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.SpriteMaskModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.SpriteShapeModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.StreamingModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.SubstanceModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.SubsystemsModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TerrainModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TerrainPhysicsModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TextCoreModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TextRenderingModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TilemapModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.TLSModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UI.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UIElementsModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UIModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UmbraModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UNETModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityAnalyticsModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityConnectModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityTestProtocolModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityWebRequestAssetBundleModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityWebRequestAudioModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityWebRequestModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityWebRequestTextureModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.UnityWebRequestWWWModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.VehiclesModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.VFXModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.VideoModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.VRModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.WindModule.dll - - - D:\SteamLibrary\SteamApps\common\SubnauticaZero\SubnauticaZero_Data\Managed\UnityEngine.XRModule.dll - - - - - - - - - - - - - - True - True - Resources.resx - - - - - - - - - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - - if $(ConfigurationName) == BZ ( -mkdir "D:\SteamLibrary\steamapps\common\SubnauticaZero\QMods\$(TargetName)" -xcopy /Y "$(TargetPath)" "D:\SteamLibrary\steamapps\common\SubnauticaZero\QMods\$(TargetName)" -copy /Y "$(ProjectDir)\mod_BZ.json" "D:\SteamLibrary\steamapps\common\SubnauticaZero\QMods\$(TargetName)\mod.json" -del "D:\SteamLibrary\steamapps\common\SubnauticaZero\qmodmanager_log-SubnauticaZero.txt" ) - -if $(ConfigurationName) == SN ( -mkdir "D:\SteamLibrary\steamapps\common\Subnautica\QMods\$(TargetName)" -xcopy /Y "$(TargetPath)" "D:\SteamLibrary\steamapps\common\Subnautica\QMods\$(TargetName)" -copy /Y "$(ProjectDir)\mod_SN.json" "D:\SteamLibrary\steamapps\common\Subnautica\QMods\$(TargetName)\mod.json" -del "D:\SteamLibrary\steamapps\common\Subnautica\qmodmanager_log-Subnautica.txt") - - \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.sln b/SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.sln deleted file mode 100644 index 17cd1d3..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/AdvancedHighlighting.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31205.134 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdvancedHighlighting", "AdvancedHighlighting\AdvancedHighlighting.csproj", "{ADB59190-BC97-4509-AB62-C64A4D9A93EC}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {ADB59190-BC97-4509-AB62-C64A4D9A93EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ADB59190-BC97-4509-AB62-C64A4D9A93EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ADB59190-BC97-4509-AB62-C64A4D9A93EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ADB59190-BC97-4509-AB62-C64A4D9A93EC}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DE65AB4D-0403-405F-9AF3-B3C441CE4842} - EndGlobalSection -EndGlobal diff --git a/SubnauticaModSystem/AdvancedHighlighting/HighlightEnum.cs b/SubnauticaModSystem/AdvancedHighlighting/HighlightEnum.cs deleted file mode 100644 index 55f2527..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/HighlightEnum.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; -using System.Collections.Generic; -#if SN -#elif BZ -#endif - -namespace AdvancedHighlighting -{ - public enum Highlight - { - ScannableItems, - ScannableFragments, - ScannedFragments, - AnythingElse, - - Pickupable, - PickupableCreatures, - PickupableResource, - BreakableResource, - Interactables, - StoryItems, - JukeboxDisk, - SealedDoor, - GrownPlant, - Bladderfish, - CreatureEgg, - BaseLadder, - LaserCutObject - } - public static class HighlightExtenstions - { - private static readonly Dictionary highlightToText = new Dictionary() - { - [Highlight.ScannableItems] = "Scannable Items", - [Highlight.ScannableFragments] = "Scannable Fragments", - [Highlight.ScannedFragments] = "Already Scanned Fragments", - [Highlight.AnythingElse] = "Anything Else", - - [Highlight.Pickupable] = "Pickupable Items", - [Highlight.PickupableCreatures] = "Pickupable Creatures", - [Highlight.PickupableResource] = "Pickupable Resources", - [Highlight.BreakableResource] = "Breakable Outcrops", - [Highlight.Interactables] = "Interactables", - [Highlight.StoryItems] = "PDA Logs", - [Highlight.JukeboxDisk] = "Jukebox Disks", - [Highlight.SealedDoor] = "Sealed Ship Doors", - [Highlight.GrownPlant] = "Grown Plant", - [Highlight.Bladderfish] = "Bladder Fish", - [Highlight.CreatureEgg] = "Creature Egg", - [Highlight.BaseLadder] = "Base Ladder", - [Highlight.LaserCutObject] = "Laser Cut Object", - }; - private static readonly Dictionary highlightToType = new Dictionary() - { - [Highlight.Pickupable] = typeof(Pickupable), - [Highlight.PickupableCreatures] = typeof(Creature), - [Highlight.PickupableResource] = typeof(ResourceTracker), - [Highlight.BreakableResource] = typeof(BreakableResource), - [Highlight.Interactables] = typeof(HandTarget), - [Highlight.StoryItems] = typeof(StoryHandTarget), - [Highlight.JukeboxDisk] = typeof(JukeboxDisk), - [Highlight.SealedDoor] = typeof(StarshipDoor), - [Highlight.GrownPlant] = typeof(GrownPlant), - [Highlight.Bladderfish] = typeof(Bladderfish), - [Highlight.CreatureEgg] = typeof(CreatureEgg), - [Highlight.BaseLadder] = typeof(BaseLadder), - [Highlight.LaserCutObject] = typeof(Sealed), - }; - private static readonly List notComponentHighlights = new List() - { - Highlight.ScannableItems, - Highlight.ScannableFragments, - Highlight.ScannedFragments, - Highlight.AnythingElse - }; - public static bool IsPressent(this Highlight highlight, UnityEngine.Behaviour behaviour) => - highlight.IsComponent() && behaviour.TryGetComponent(highlight.GetComponentType(), out _); - public static bool IsPressentAndActive(this Highlight highlight, UnityEngine.Behaviour behaviour) => - highlight.IsComponent() && highlight.IsActive() && behaviour.TryGetComponent(highlight.GetComponentType(), out _); - public static bool IsActive(this Highlight highlight) => Settings.GetInstance().IsHighlightActive(highlight); - public static bool IsComponent(this Highlight highlight) => !notComponentHighlights.Contains(highlight); - public static string GetName(this Highlight highlight) => highlightToText.TryGetValue(highlight, out string name) ? name : null; - public static Type GetComponentType(this Highlight highlight) => highlightToType.TryGetValue(highlight, out Type type) ? type : null; - } -} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs b/SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs deleted file mode 100644 index 4ea5686..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs +++ /dev/null @@ -1,23 +0,0 @@ -using HarmonyLib; -using QModManager.API.ModLoading; -using SMLHelper.V2.Handlers; -using System; -#if SN -#elif BZ -#endif - -namespace AdvancedHighlighting -{ - [QModCore] - - public static class HighlightingMod - { - [QModPatch] - public static void InitMod() - { - Console.WriteLine("[AdvancedHighlighting] Start Patching..."); - Harmony harmony = new Harmony("net.ogmods.highlighting"); - harmony.PatchAll(); - } - } -} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs.test b/SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs.test deleted file mode 100644 index 214c44c..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/HighlightingMod.cs.test +++ /dev/null @@ -1,28 +0,0 @@ -using HarmonyLib; -using QModManager.API.ModLoading; -using SMLHelper.V2.Handlers; -using System; -#if SN -#elif BZ -#endif - -namespace AdvancedHighlighting -{ - [QModCore] - - public static class HighlightingMod - { - internal static IngameConfigMenu Config { get; private set; } - - [QModPatch] - public static void InitMod() - { - Console.WriteLine("[AdvancedHighlighting] Start Patching..."); - Harmony harmony = new Harmony("net.ogmods.highlighting"); - harmony.PatchAll(); - - //Add the Ingame Config for User - Config = OptionsPanelHandler.Main.RegisterModOptions(); - } - } -} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/ImageUtils.cs b/SubnauticaModSystem/AdvancedHighlighting/ImageUtils.cs deleted file mode 100644 index fd46c66..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/ImageUtils.cs +++ /dev/null @@ -1,109 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using UnityEngine; -#if SN -#elif BZ -#endif - -namespace AdvancedHighlighting -{ - public static class ImageUtils - { - private static Dictionary textureCache = new Dictionary(); - - private static Dictionary spriteCache = new Dictionary(); - public static Sprite LoadSprite(string path, Vector2 pivot = default(Vector2), TextureFormat format = TextureFormat.BC7, float pixelsPerUnit = 100f, SpriteMeshType spriteType = SpriteMeshType.Tight) - { - Sprite sprite; - bool flag = ImageUtils.spriteCache.TryGetValue(path, out sprite); - Sprite result; - if (flag) - { - result = sprite; - } - else - { - Texture2D texture2D = ImageUtils.LoadTexture(path, format, 2, 2); - bool flag2 = !texture2D; - if (flag2) - { - result = null; - } - else - { - Sprite sprite2 = ImageUtils.TextureToSprite(texture2D, pivot, pixelsPerUnit, spriteType, default(Vector4)); - ImageUtils.spriteCache.Add(path, sprite2); - result = sprite2; - } - } - return result; - } - - public static Sprite Load9SliceSprite(string path, RectOffset slices, Vector2 pivot = default(Vector2), TextureFormat format = TextureFormat.BC7, float pixelsPerUnit = 100f, SpriteMeshType spriteType = SpriteMeshType.Tight) - { - string key = path + slices; - Sprite sprite; - bool flag = ImageUtils.spriteCache.TryGetValue(key, out sprite); - Sprite result; - if (flag) - { - result = sprite; - } - else - { - Texture2D texture2D = ImageUtils.LoadTexture(path, format, 2, 2); - bool flag2 = !texture2D; - if (flag2) - { - result = null; - } - else - { - Vector4 border = new Vector4((float)slices.left, (float)slices.right, (float)slices.top, (float)slices.bottom); - Sprite sprite2 = ImageUtils.TextureToSprite(texture2D, pivot, pixelsPerUnit, spriteType, border); - ImageUtils.spriteCache.Add(key, sprite2); - result = sprite2; - } - } - return result; - } - - public static Texture2D LoadTexture(string path, TextureFormat format = TextureFormat.BC7, int width = 2, int height = 2) - { - Texture2D texture2D; - bool flag = ImageUtils.textureCache.TryGetValue(path, out texture2D); - Texture2D result; - if (flag) - { - result = texture2D; - } - else - { - bool flag2 = File.Exists(path); - if (flag2) - { - byte[] data = File.ReadAllBytes(path); - Texture2D texture2D2 = new Texture2D(width, height, format, false); - bool flag3 = texture2D2.LoadImage(data); - if (flag3) - { - ImageUtils.textureCache.Add(path, texture2D2); - return texture2D2; - } - } - else - { - Console.WriteLine("[ImageUtils] ERROR: File not found " + path); - } - result = null; - } - return result; - } - - public static Sprite TextureToSprite(Texture2D tex, Vector2 pivot = default(Vector2), float pixelsPerUnit = 100f, SpriteMeshType spriteType = SpriteMeshType.Tight, Vector4 border = default(Vector4)) - { - return Sprite.Create(tex, new Rect(0f, 0f, (float)tex.width, (float)tex.height), pivot, pixelsPerUnit, 0U, spriteType, border); - } - } -} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/OldSettings.cs b/SubnauticaModSystem/AdvancedHighlighting/OldSettings.cs deleted file mode 100644 index 99c464e..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/OldSettings.cs +++ /dev/null @@ -1,93 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.IO; -#if SN -#elif BZ -#endif - -namespace AdvancedHighlighting -{ - public class OldSettings - { - private static readonly Dictionary TypeToHighlight = new Dictionary - { - [typeof(Pickupable)] = Highlight.Pickupable, - [typeof(ResourceTracker)] = Highlight.PickupableResource, - [typeof(Creature)] = Highlight.PickupableCreatures, - [typeof(Bladderfish)] = Highlight.Bladderfish, - [typeof(CreatureEgg)] = Highlight.CreatureEgg, - [typeof(BaseLadder)] = Highlight.BaseLadder, - [typeof(BreakableResource)] = Highlight.BreakableResource, - [typeof(HandTarget)] = Highlight.Interactables, - [typeof(GrownPlant)] = Highlight.GrownPlant, - [typeof(StoryHandTarget)] = Highlight.StoryItems, - [typeof(JukeboxDisk)] = Highlight.JukeboxDisk, - [typeof(StarshipDoor)] = Highlight.SealedDoor, - [typeof(Sealed)] = Highlight.LaserCutObject, - [Utils.FragmentsType] = Highlight.ScannableFragments, - [Utils.ScannableType] = Highlight.ScannableItems, - [Utils.EverythingType] = Highlight.AnythingElse, - }; - - public Dictionary enableHighlights; - public Dictionary highlightingColors; - public bool storyNearbyNotification = false; - public bool jukeboxDiskNotification = false; - public bool highlightEverythingExosuit = false; - public bool destoryNull = true; - public bool showPings = false; - public float highlightRadius = 20f; - public float minAlpha = 0f; - public static Settings Load() - { - Console.WriteLine("[AdvancedHighlighting] Loading Settings"); - string path = Path.Combine(Utils.ModDirectory, "settings.json"); - Settings settings = null; - if (File.Exists(path)) - { - try - { - var text = File.ReadAllText(path); - if (text.Contains("PublicKeyToken") || text.Contains("storyNearbyNotification")) - settings = JsonConvert.DeserializeObject(text).ConvertToNewSettings(); - else - settings = JsonConvert.DeserializeObject(text); - } - catch (Exception) { } - } - if (settings == null) settings = new Settings(); - if (settings.HighlightsEnabled == null) settings.HighlightsEnabled = new Dictionary(); - if (settings.HighlightsColor == null) settings.HighlightsColor = new Dictionary(); - foreach (var highlight in Utils.GetHighlights()) - { - if (!settings.HighlightsEnabled.ContainsKey(highlight)) settings.HighlightsEnabled[highlight] = true; - if (!settings.HighlightsColor.ContainsKey(highlight)) settings.HighlightsColor[highlight] = Settings.defaultColor; - } - settings.UpdateActiveHighlights(); - return settings; - } - public Settings ConvertToNewSettings() - { - var settings = new Settings - { - HighlightsEnabled = new Dictionary(), - HighlightsColor = new Dictionary(), - StoryNotification = storyNearbyNotification, - DisksNotification = jukeboxDiskNotification, - ExosuiteHighlightsEnabled = highlightEverythingExosuit, - DestroyNullPings = destoryNull, - ShowPings = showPings, - HighlightSearchDistance = highlightRadius, - MinimumAlpha = minAlpha, - }; - foreach (var highlight in enableHighlights) - if (TypeToHighlight.TryGetValue(highlight.Key, out Highlight val)) - settings.HighlightsEnabled[val] = highlight.Value; - foreach (var highlight in highlightingColors) - if (TypeToHighlight.TryGetValue(highlight.Key, out Highlight val)) - settings.HighlightsColor[val] = highlight.Value; - return settings; - } - } -} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Patches/Highlighting_Patch.cs b/SubnauticaModSystem/AdvancedHighlighting/Patches/Highlighting_Patch.cs deleted file mode 100644 index 79ea5ef..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/Patches/Highlighting_Patch.cs +++ /dev/null @@ -1,248 +0,0 @@ -using HarmonyLib; -using HighlightingSystem; -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; -using UnityEngine; -using UWE; - -namespace AdvancedHighlighting.Patches -{ - public static class Highlighting_Patch - { - private static MethodInfo updateActiveHighlightersAsyncMethod; - private static readonly FieldInfo highlightersField = typeof(Highlighting).GetField("highlighters", BindingFlags.Instance | BindingFlags.NonPublic); - private static readonly FieldInfo handlersField = typeof(Highlighting).GetField("handlers", BindingFlags.Instance | BindingFlags.NonPublic); - private static readonly FieldInfo updateActiveHighligtersCoroutineField = typeof(Highlighting).GetField("updateActiveHighligtersCoroutine", BindingFlags.Instance | BindingFlags.NonPublic); - public static HashSet GetHighlighters(this Highlighting instance) => - (HashSet)highlightersField.GetValue(instance); - public static Dictionary GetHandlers(this Highlighting instance) => - (Dictionary)handlersField.GetValue(instance); - public static Coroutine GetUpdateActiveHighligtersCoroutine(this Highlighting instance) => - (Coroutine)updateActiveHighligtersCoroutineField.GetValue(instance); - public static void SetUpdateActiveHighligtersCoroutine(this Highlighting instance, Coroutine coroutine) => - updateActiveHighligtersCoroutineField.SetValue(instance, coroutine); - public static System.Collections.IEnumerator InvokeUpdateActiveHighlightersAsync(this Highlighting instance, Vector3 vector) - { - if (updateActiveHighlightersAsyncMethod == null) - updateActiveHighlightersAsyncMethod = typeof(Highlighting).GetMethods(BindingFlags.Instance | BindingFlags.NonPublic).Where(x => x.Name == "UpdateActiveHighlightersAsync").FirstOrDefault(); - return (System.Collections.IEnumerator)updateActiveHighlightersAsyncMethod.Invoke(instance, new object[] { vector }); - } - - } - [HarmonyPatch(typeof(Highlighting), "OnUpdate")] - public class Highlighting_OnUpdate_Patch - { - public static readonly Dictionary stories = new Dictionary(); - public static readonly Dictionary pings = new Dictionary(); - public static readonly List notifications = new List(); - private static int lastActiveTargetId = 0; - private static float hoverStart = 0f; - public static bool isLogged = false; - public static bool Prefix(Highlighting __instance) - { - Highlighting.Mode mode = Highlighting.GetMode(); - var settings = Settings.GetInstance(); - if (mode == Highlighting.Mode.None || settings.ActiveHighlights.Count == 0) - { - lastActiveTargetId = 0; - } - else - { - var time = Time.time; - Vector3 vector = MainCamera.camera?.transform.position ?? Vector3.zero; - GameObject gameObject = null; - if (mode == Highlighting.Mode.Exosuit) gameObject = (Player.main.GetVehicle() as Exosuit).GetActiveTarget(); - else if (mode == Highlighting.Mode.Player) gameObject = Player.main?.guiHand?.GetActiveTarget(); - int id = gameObject?.GetInstanceID() ?? 0; - if (lastActiveTargetId != id) - { - hoverStart = time; - lastActiveTargetId = id; - } - if (__instance.GetUpdateActiveHighligtersCoroutine() == null) - { - if (__instance.radiusOuter != settings.HighlightSearchDistance) - __instance.radiusOuter = settings.HighlightSearchDistance; - __instance.SetUpdateActiveHighligtersCoroutine(__instance.StartCoroutine(__instance.InvokeUpdateActiveHighlightersAsync(vector))); - } - - var highlighters = __instance.GetHighlighters(); - if (settings.StoryNotification || settings.DisksNotification || settings.ShowPings) - { - var removed = new List(); - foreach (var key in stories.Keys) - { - if (!highlighters.Any(x => x.GetInstanceID() == key)) - removed.Add(key); - } - foreach (var key in removed) - { - if (notifications.Contains(key)) - { - notifications.Remove(key); - ErrorMessage.AddMessage($"[Advanced Highlighting] {Language.main.Get(stories[key])} is no longer nearby"); - } - if (pings.ContainsKey(key)) - { - var ping = PingManager.Get(pings[key]); - if (ping != null) - UnityEngine.Object.Destroy(ping); - pings.Remove(key); - } - stories.Remove(key); - } - } - var radiusRange = settings.HighlightSearchDistance - __instance.radiusInner; - - if (!settings.PresetApplied && MainCamera.camera != null && MainCamera.camera.TryGetComponent(out HighlightingRenderer renderer)) - { - settings.PresetApplied = true; - if (settings.HighlightingRenderer >= 0 && settings.HighlightingRenderer < Utils.Presets.Count) - renderer.ApplyPreset(Utils.Presets[settings.HighlightingRenderer]); - //Console.WriteLine($"[AdvancedHighlighting] Active {settings.HighlightingRenderer},{Utils.Presets.Count} = [{renderer.name}, {renderer.blurDirections}, {renderer.blurIntensity}, {renderer.blurMinSpread}, {renderer.blurSpread}, {renderer.downsampleFactor}, {renderer.fillAlpha}, {renderer.iterations}]"); - } - foreach (Highlighter highlighter in highlighters) - { - if (highlighter != null) - { - var highlights = highlighter.gameObject.GetHighlightsForObject(out _, out _); - if (highlights.Count > 0) - { - Color highlightingColor = settings.GetHighlightColor(highlights.First()); - if (highlightingColor.a != 0f) - { - float magnitude = (highlighter.bounds.center - vector).magnitude; - float a = Mathf.Max(Mathf.Clamp01(1f - (magnitude - __instance.radiusInner) / radiusRange), settings.MinimumAlpha); - highlightingColor.a = a * a; - highlighter.ConstantOn(highlightingColor, 0f); - highlighter.filterMode = RendererFilterMode.None; - - if (magnitude <= settings.HighlightSearchDistance) - NotifiyAndPing(highlighter); - } - else - highlighter.ConstantOn(highlightingColor, 0f); - } - } - } - if (gameObject != null) - { - GameObject highlightableRoot = null; - Highlighting_GetHighlightableRoot_Patch.Prefix(__instance, ref highlightableRoot, mode, gameObject); - if (highlightableRoot != null) - { - Highlighter highlighter = highlightableRoot.GetComponent(); - if (highlighter != null) - { - Color highlightingColor = highlighter.constantColor; - float a2 = Mathf.Lerp(0.4f, 1f, Mathf.Cos((time - hoverStart) * 2f * Mathf.PI * __instance.hoverFlashingSpeed) * 0.5f + 0.5f); - highlightingColor.a = a2 * a2; - highlighter.Hover(highlightingColor); - } - } - } - } - return false; - } - private static void NotifiyAndPing(Highlighter highlighter) - { - var objId = highlighter.GetInstanceID(); - if (!stories.ContainsKey(objId)) - { - string name = null; - string type = null; - if (highlighter.TryGetComponent(out StoryHandTarget story)) - { - name = Language.main.Get(story.primaryTooltip); - type = "story"; - } - else if (highlighter.TryGetComponent(out JukeboxDisk disk)) - { - name = Language.main.Get(Jukebox.GetInfo(disk.track).label); - type = "disk"; - } - if (name != null) - { - var settings = Settings.GetInstance(); - stories[objId] = name; - if ((type == "story" && settings.StoryNotification) || - (type == "disk" && settings.DisksNotification)) - { - notifications.Add(objId); - ErrorMessage.AddMessage($"[Advanced Highlighting] {name} is nearby"); - } - if (settings.ShowPings) - { - PingInstance ping = highlighter.gameObject.EnsureComponent(); - ping.origin = highlighter.gameObject.transform; - ping.SetFakePosition(highlighter.bounds.center); - ping.SetVisible(true); - ping.SetLabel(name); - ping._id = $"ahping_{type}_{objId}"; - ping.pingType = PingType.Signal; - ping.displayPingInManager = false; - ping.visitable = false; - ping.minDist = 5f; - ping.range = 5f; - ping.enabled = true; - pings[objId] = ping._id; - } - } - } - } - } - - [HarmonyPatch(typeof(Highlighting), "GetHighlightableRoot", new Type[] { typeof(Highlighting.Mode), typeof(GameObject) })] - public static class Highlighting_GetHighlightableRoot_Patch - { - public static bool Prefix(Highlighting __instance, ref GameObject __result, Highlighting.Mode mode, GameObject target) - { - __result = null; - if (mode == Highlighting.Mode.None) - return false; - var settings = Settings.GetInstance(); - if (mode == Highlighting.Mode.Exosuit && !settings.ExosuiteHighlightsEnabled) - { - Exosuit exosuit = Player.main.GetVehicle() as Exosuit; - if (exosuit != null) - __result = exosuit.GetInteractableRoot(target); - return false; - } - else - { - var highlights = target.GetHighlightsForObject(out GameObject result, out Behaviour behaviour); - if (highlights.Count == 0) - return false; - if (highlights.Contains(Highlight.ScannableFragments) || - highlights.Contains(Highlight.ScannedFragments) || - highlights.Contains(Highlight.ScannableItems)) - { - __result = result; - return false; - } - - if (behaviour == null || !behaviour.enabled || behaviour.GetComponentInParent() != null || - behaviour.GetComponentInParent() != null) - { - return false; - } - - var handlers = __instance.GetHandlers(); - if (handlers != null && handlers.TryGetValue(behaviour.GetType(), out Highlighting.Handler handler)) - { - handler(ref behaviour); - if (behaviour == null) - return false; - } - __result = behaviour.gameObject; - } - return false; - } - } - -} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Patches/PingInstance_Patch.cs b/SubnauticaModSystem/AdvancedHighlighting/Patches/PingInstance_Patch.cs deleted file mode 100644 index c5d0bcf..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/Patches/PingInstance_Patch.cs +++ /dev/null @@ -1,32 +0,0 @@ -using HarmonyLib; -using System; -using System.Reflection; -using UnityEngine; - -namespace AdvancedHighlighting.Patches -{ - public static class PingInstance_Patch - { - private static readonly FieldInfo fakePositionUsedField = typeof(PingInstance).GetField("fakePositionUsed", BindingFlags.Instance | BindingFlags.NonPublic); - public static bool GetFakePositionUsed(PingInstance instance) => - (bool)fakePositionUsedField.GetValue(instance); - } - [HarmonyPatch(typeof(PingInstance), "GetPosition")] - public static class PingInstance_GetPosition_Patch - { - public static bool Prefix(PingInstance __instance, ref Vector3 __result) - { - if (__instance == null || (__instance.origin == null && !PingInstance_Patch.GetFakePositionUsed(__instance))) - { - if (__instance != null && Settings.GetInstance().DestroyNullPings) - { - UnityEngine.Object.Destroy(__instance); - Console.WriteLine($"[AdvancedHighlighting] Destroying {__instance._id}..."); - } - __result = Vector3.zero; - return false; - } - return true; - } - } -} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Patches/SaveLoadManager_Patch.cs b/SubnauticaModSystem/AdvancedHighlighting/Patches/SaveLoadManager_Patch.cs deleted file mode 100644 index b2cad82..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/Patches/SaveLoadManager_Patch.cs +++ /dev/null @@ -1,34 +0,0 @@ -using HarmonyLib; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AdvancedHighlighting.Patches -{ - [HarmonyPatch(typeof(SaveLoadManager), "NotifySaveInProgress", new Type[] { typeof(bool) })] - public static class SaveLoadManager_NotifySaveInProgress_Patch - { - public static void Postfix(SaveLoadManager __instance, bool isInProgress) - { - if (!Settings.GetInstance().ShowPings) - return; - if (isInProgress) - { - foreach (var pingKey in Highlighting_OnUpdate_Patch.pings.Keys) - { - var ping = PingManager.Get(Highlighting_OnUpdate_Patch.pings[pingKey]); - if (ping != null) - UnityEngine.Object.Destroy(ping); - } - Highlighting_OnUpdate_Patch.pings.Clear(); - } - else - { - Highlighting_OnUpdate_Patch.stories.Clear(); - } - } - } -} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_OptionsPanel_Patch.cs b/SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_OptionsPanel_Patch.cs deleted file mode 100644 index 093f2d5..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_OptionsPanel_Patch.cs +++ /dev/null @@ -1,130 +0,0 @@ -using HarmonyLib; -using System.Collections.Generic; -using System.Linq; -using UnityEngine; -using UnityEngine.Events; -using UnityEngine.UI; -#if SN -#elif BZ -#endif - -namespace AdvancedHighlighting.Patches -{ - [HarmonyPatch(typeof(uGUI_OptionsPanel), "OnDisable")] - public class uGUI_OptionsPanel_OnDisable_Patch - { - public static void Prefix() - { - Settings.GetInstance().Save(); - } - } - - [HarmonyPatch(typeof(uGUI_OptionsPanel), "AddAccessibilityTab")] - public class uGUI_OptionsPanel_AddAccessibilityTab_Patch - { - private static readonly Dictionary toggleOptions = new Dictionary(); - private static readonly Dictionary colorOptions = new Dictionary(); - private static readonly List options = new List(); - - private static void UpdatePingColors() - { - foreach (var pingKey in Highlighting_OnUpdate_Patch.pings.Keys) - { - var ping = PingManager.Get(Highlighting_OnUpdate_Patch.pings[pingKey]); - if (ping != null) - ping.SetColor(1); - } - } - public static bool Prefix(uGUI_OptionsPanel __instance) - { - var settings = Settings.GetInstance(); - int tabIndex = __instance.AddTab("Accessibility"); - options.Clear(); - toggleOptions.Clear(); - colorOptions.Clear(); - __instance.AddSliderOption(tabIndex, "UIScale", MiscSettings.GetUIScale(DisplayOperationMode.Current), 0.7f, 1.4f, 1f, 0.01f, (value) => - { - MiscSettings.SetUIScale(value, DisplayOperationMode.Current); - }, SliderLabelMode.Float, "0.00"); - __instance.AddToggleOption(tabIndex, "PDAPause", MiscSettings.pdaPause, new UnityAction((val) => MiscSettings.pdaPause = val), null); - __instance.AddToggleOption(tabIndex, "Flashes", MiscSettings.flashes, new UnityAction((val) => MiscSettings.flashes = val), null); - //highlightingColorOption = __instance.AddColorOption(tabIndex, "HighlightingColor", MiscSettings.highlightingColor, new UnityAction((val) => MiscSettings.highlightingColor = val )); - - __instance.AddHeading(tabIndex, "Advanced Highlighting"); - __instance.AddToggleOption(tabIndex, "Enable Highlighting", MiscSettings.highlighting, new UnityAction(OnHighlightingChanged), null); - - options.Add(__instance.AddChoiceOption(tabIndex, "Highlighting Renderer", Utils.Presets.Select(x => x.name).ToArray(), settings.HighlightingRenderer, new UnityAction((val) => - { - settings.HighlightingRenderer = val; - settings.PresetApplied = false; - }), null).gameObject); - //__instance.AddToggleOption(tabIndex, "Destrey Nulls", settings.destoryNull, new UnityAction((val) => settings.destoryNull = val), null); - options.Add(__instance.AddToggleOption(tabIndex, "Notify about nearby PDA Logs", settings.StoryNotification, new UnityAction((val) => settings.StoryNotification = val), null).gameObject); - options.Add(__instance.AddToggleOption(tabIndex, "Notify about nearby Jukebox Disks", settings.DisksNotification, new UnityAction((val) => settings.DisksNotification = val), null).gameObject); - options.Add(__instance.AddToggleOption(tabIndex, "Show pings for PDA Logs and Disks", settings.ShowPings, new UnityAction((val) => - { - settings.ShowPings = val; - TogglePings(); - }), null).gameObject); - - options.Add(__instance.AddToggleOption(tabIndex, "Highlight while in Exosuit", settings.ExosuiteHighlightsEnabled, new UnityAction((val) => settings.ExosuiteHighlightsEnabled = val), null).gameObject); - options.Add(__instance.AddSliderOption(tabIndex, "Highlight search radius", settings.HighlightSearchDistance, 10f, 100f, 20f, 0.5f, (value) => - { - settings.HighlightSearchDistance = value; - }, SliderLabelMode.Float, "0.0")); - options.Add(__instance.AddSliderOption(tabIndex, "Minimum allowed fade value", settings.MinimumAlpha, 0f, 1f, 0f, 0.1f, (value) => - { - settings.MinimumAlpha = value; - }, SliderLabelMode.Float, "0.0")); - foreach (var highlight in Utils.GetHighlights()) - { - toggleOptions[highlight] = __instance.AddToggleOption(tabIndex, $"Highlight {highlight.GetName()}", settings.IsHighlightEnabled(highlight), new UnityAction((val) => - { - settings.HighlightsEnabled[highlight] = val; - if (colorOptions.TryGetValue(highlight, out GameObject color)) - color.SetActive(val); - settings.UpdateActiveHighlights(); - }), null); - colorOptions[highlight] = __instance.AddColorOption(tabIndex, $"{highlight.GetName()} color", settings.GetHighlightColor(highlight), new UnityAction((val) => - { - settings.HighlightsColor[highlight] = ColorUtility.ToHtmlStringRGBA(val); - if ((highlight == Highlight.StoryItems || highlight == Highlight.JukeboxDisk) && settings.ShowPings) - UpdatePingColors(); - })); - } - OnHighlightingChanged(MiscSettings.highlighting); - return false; - } - private static void TogglePings() - { - if (!MiscSettings.highlighting || !Settings.GetInstance().ShowPings) - { - foreach (var pingKey in Highlighting_OnUpdate_Patch.pings.Keys) - { - var ping = PingManager.Get(Highlighting_OnUpdate_Patch.pings[pingKey]); - if (ping != null) - UnityEngine.Object.Destroy(ping); - } - Highlighting_OnUpdate_Patch.pings.Clear(); - } - else - { - Highlighting_OnUpdate_Patch.stories.Clear(); - } - } - private static void OnHighlightingChanged(bool value) - { - MiscSettings.highlighting = value; - TogglePings(); - foreach (var gameObject in options) - if (gameObject != null) - gameObject.SetActive(value); - foreach (var highlight in Utils.GetHighlights()) - { - toggleOptions[highlight].gameObject.SetActive(value); - colorOptions[highlight].SetActive(value && toggleOptions[highlight].isOn); - } - Settings.GetInstance().UpdateActiveHighlights(); - } - } -} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_Pings_Patch.cs b/SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_Pings_Patch.cs deleted file mode 100644 index 8821450..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/Patches/uGUI_Pings_Patch.cs +++ /dev/null @@ -1,51 +0,0 @@ -using HarmonyLib; -using System; -using System.Collections.Generic; -using System.IO; -using System.Reflection; -using UnityEngine; - -namespace AdvancedHighlighting.Patches -{ - public static class uGUI_Pings_Patch - { - private static readonly FieldInfo pingsField = typeof(uGUI_Pings).GetField("pings", BindingFlags.Instance | BindingFlags.NonPublic); - public static Dictionary GetPings(uGUI_Pings instance) => - (Dictionary)pingsField.GetValue(instance); - } - - [HarmonyPatch(typeof(uGUI_Pings), "OnAdd", new Type[] { typeof(PingInstance) })] - public static class uGUI_Pings_OnAdd_Patch - { - public static void Postfix(uGUI_Pings __instance, PingInstance instance) - { - var id = instance._id; - if (!id.StartsWith("ahping_")) return; - var pings = uGUI_Pings_Patch.GetPings(__instance); - if (pings != null && pings.TryGetValue(id, out uGUI_Ping ping)) - { - //Console.WriteLine($"[AdvancedHighlighting] OnAdd Ping {id} {Utils.GetEyeSprite(out _)}..."); - if (Utils.GetColorForType(id.Split('_')[1], out Color newColor)) - ping.SetColor(newColor); - if (Utils.GetEyeSprite(out Sprite sprite)) - ping.SetIcon(sprite); - } - } - } - - [HarmonyPatch(typeof(uGUI_Pings), "OnColor", new Type[] { typeof(string), typeof(Color) })] - public static class uGUI_Pings_OnColor_Patch - { - public static void Postfix(uGUI_Pings __instance, string id, Color color) - { - if (id.StartsWith("ahping_")) - { - //Console.WriteLine($"[AdvancedHighlighting] OnColor Ping {id}, {pings?.Count}..."); - var pings = uGUI_Pings_Patch.GetPings(__instance); - if (pings != null && pings.TryGetValue(id, out uGUI_Ping ping)) - if (Utils.GetColorForType(id.Split('_')[1], out Color newColor)) - ping.SetColor(newColor); - } - } - } -} diff --git a/SubnauticaModSystem/AdvancedHighlighting/Properties/AssemblyInfo.cs b/SubnauticaModSystem/AdvancedHighlighting/Properties/AssemblyInfo.cs deleted file mode 100644 index e3cb5c0..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("AdvancedHighlighting")] -[assembly: AssemblyDescription("A mod for Subnautica Below Zero")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("OGMods")] -[assembly: AssemblyProduct("AdvancedHighlighting")] -[assembly: AssemblyCopyright("Copyright OGMods © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("adb59190-bc97-4509-ab62-c64a4d9a93ec")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0.0")] -[assembly: AssemblyFileVersion("1.2.0.0")] diff --git a/SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.Designer.cs b/SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.Designer.cs deleted file mode 100644 index e24305e..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.Designer.cs +++ /dev/null @@ -1,90 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace AdvancedHighlighting.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AdvancedHighlighting.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized string similar to A mod to change the highlighting colors of objects in the game.. - /// - internal static string desc { - get { - return ResourceManager.GetString("desc", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to AdvancedHighlighting. - /// - internal static string title { - get { - return ResourceManager.GetString("title", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 1.0.0. - /// - internal static string ver { - get { - return ResourceManager.GetString("ver", resourceCulture); - } - } - } -} diff --git a/SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.resx b/SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.resx deleted file mode 100644 index 9d5fd00..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/Properties/Resources.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - A mod to change the highlighting colors of objects in the game. - - - AdvancedHighlighting - - - 1.0.0 - - \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Qmod.cs.test b/SubnauticaModSystem/AdvancedHighlighting/Qmod.cs.test deleted file mode 100644 index a41a959..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/Qmod.cs.test +++ /dev/null @@ -1,55 +0,0 @@ -using SMLHelper.V2.Json; -using SMLHelper.V2.Options.Attributes; -using UnityEngine; - -namespace AdvancedHighlighting -{ - [Menu("Advanced Highlighting", SaveOn = MenuAttribute.SaveEvents.ChangeValue)] - public class IngameConfigMenu : ConfigFile - { - public IngameConfigMenu() : base("config") { } - - [Toggle("Pickupable Items", Tooltip = "Highlight Pickupable Items.", Order = 1)] - public bool Pickupable = true; - - [Choice("Pickupable Color", Tooltip = "Select a color for Pickupable Items.", Options = new string[] {"Red", "16dcff"})] - public string PickupableColor = "fffb16"; - - [Toggle("Pickupable Creatures", Tooltip = "Highlight Pickupable Creatures.", Order = 2)] - public bool PickupableCreatures = true; - - [Toggle("Pickupable Resources", Tooltip = "Highlight Pickupable Resource.", Order = 3)] - public bool PickupableResource = true; - - [Toggle("Breakable Resources", Tooltip = "Highlight Breakable Resource.", Order = 4)] - public bool BreakableResource = true; - - [Toggle("Interactable Items", Tooltip = "Highlight Interactable Items.", Order = 5)] - public bool Interactables = true; - - [Toggle("Story Items", Tooltip = "Highlight Story Items.", Order = 6)] - public bool StoryItems = true; - - [Toggle("Jukebox Disks", Tooltip = "Highlight Jukebox Disks.", Order = 7)] - public bool JukeboxDisk = true; - - [Toggle("Sealed Doors", Tooltip = "Highlight Sealed Doors.", Order = 8)] - public bool SealedDoor = true; - - [Toggle("Grown Plants", Tooltip = "Highlight Grown Plants.", Order = 9)] - public bool GrownPlant = true; - - [Toggle("Bladder Fish", Tooltip = "Highlight Bladder Fish.", Order = 10)] - public bool Bladderfish = true; - - [Toggle("Creature Eggs", Tooltip = "Highlight Creature Eggs.", Order = 11)] - public bool CreatureEgg = true; - - [Toggle("Base Ladders", Tooltip = "Highlight Base Ladders.", Order = 12)] - public bool BaseLadder = true; - - [Toggle("Laser CutObjects", Tooltip = "Highlight Sealed Doors.", Order = 13)] - public bool LaserCutObject = true; - - } -} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Settings.cs b/SubnauticaModSystem/AdvancedHighlighting/Settings.cs deleted file mode 100644 index def3f1e..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/Settings.cs +++ /dev/null @@ -1,68 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.IO; -using UnityEngine; -#if SN -#elif BZ -#endif - -namespace AdvancedHighlighting -{ - public class Settings - { - public static readonly string defaultColor = "e0e238"; - public static readonly Color nullColor = new Color(0f, 0f, 0f, 0f); - [JsonIgnore] - public bool PresetApplied = false; - - public bool StoryNotification = false; - public bool DisksNotification = false; - public bool ShowPings = false; - public bool ExosuiteHighlightsEnabled = false; - public bool DestroyNullPings = true; - public float HighlightSearchDistance = 20f; - public float MinimumAlpha = 0f; - public int HighlightingRenderer = 1; - - public Dictionary HighlightsEnabled; - public Dictionary HighlightsColor; - - [JsonIgnore] - public List ActiveHighlights = new List(); - - [JsonIgnore] - private static Settings instance; - public static Settings GetInstance() - { - if (instance == null) - instance = OldSettings.Load(); - return instance; - } - public void Save() - { - Console.WriteLine("[AdvancedHighlighting] Saving Settings"); - File.WriteAllText(Path.Combine(Utils.ModDirectory, "settings.json"), JsonConvert.SerializeObject(this, Formatting.Indented)); - } - public void UpdateActiveHighlights() - { - ActiveHighlights.Clear(); - if (MiscSettings.highlighting) - { - foreach (var highlight in HighlightsEnabled) - if (highlight.Value) - ActiveHighlights.Add(highlight.Key); - //Console.WriteLine($"[AdvancedHighlighting] UpdateActiveHighlights {string.Join(",", ActiveHighlights)}..."); - } - } - - public bool IsHighlightActive(Highlight highlight) => - ActiveHighlights.Contains(highlight); - public bool IsHighlightEnabled(Highlight highlight) => - (HighlightsEnabled.TryGetValue(highlight, out bool e) ? e : MiscSettings.highlighting); - public Color GetHighlightColor(Highlight highlight) => - (HighlightsColor.TryGetValue(highlight, out string h) && ColorUtility.TryParseHtmlString("#" + h, out Color c) ? c : nullColor); - public string GetHtmlColor(Highlight highlight) => - (HighlightsColor.TryGetValue(highlight, out string h) ? h : null); - } -} \ No newline at end of file diff --git a/SubnauticaModSystem/AdvancedHighlighting/Utils.cs b/SubnauticaModSystem/AdvancedHighlighting/Utils.cs deleted file mode 100644 index 0d17216..0000000 --- a/SubnauticaModSystem/AdvancedHighlighting/Utils.cs +++ /dev/null @@ -1,169 +0,0 @@ -using HighlightingSystem; -using System; -using System.Collections.Generic; -using System.IO; -using UnityEngine; -using static PDAScanner; -#if SN -#elif BZ -#endif - -namespace AdvancedHighlighting -{ - public static class Utils - { - public static readonly Type FragmentsType = typeof(TechFragment); - public static readonly Type ScannableType = typeof(ScannerTarget); - public static readonly Type EverythingType = typeof(Utils); - public static readonly List Presets = new List - { - new HighlightingPreset { name = "Narrow", fillAlpha = 0f, downsampleFactor = 4, iterations = 2, blurMinSpread = 0.65f, blurSpread = 0.25f, blurIntensity = 0.3f, blurDirections = BlurDirections.Diagonal}, - new HighlightingPreset { name = "Wide (Game Default)", fillAlpha = 0f, downsampleFactor = 4, iterations = 4, blurMinSpread = 0.65f, blurSpread = 0.25f, blurIntensity = 0.3f, blurDirections = BlurDirections.Diagonal }, - new HighlightingPreset { name = "Strong", fillAlpha = 0f, downsampleFactor = 4, iterations = 2, blurMinSpread = 0.5f, blurSpread = 0.15f, blurIntensity = 0.325f, blurDirections = BlurDirections.Diagonal }, - new HighlightingPreset { name = "Speed", fillAlpha = 0f, downsampleFactor = 4, iterations = 1, blurMinSpread = 0.75f, blurSpread = 0f, blurIntensity = 0.35f, blurDirections = BlurDirections.Diagonal }, - new HighlightingPreset { name = "Quality", fillAlpha = 0f, downsampleFactor = 2, iterations = 3, blurMinSpread = 0.5f, blurSpread = 0.5f, blurIntensity = 0.28f, blurDirections = BlurDirections.Diagonal }, - new HighlightingPreset { name = "Solid 1px", fillAlpha = 0f, downsampleFactor = 1, iterations = 1, blurMinSpread = 1f, blurSpread = 0f, blurIntensity = 1f, blurDirections = BlurDirections.All }, - new HighlightingPreset { name = "Solid 2px", fillAlpha = 0f, downsampleFactor = 1, iterations = 2, blurMinSpread = 1f, blurSpread = 0f, blurIntensity = 1f, blurDirections = BlurDirections.All }, - new HighlightingPreset { name = "Solid 3px", fillAlpha = 0f, downsampleFactor = 1, iterations = 3, blurMinSpread = 1f, blurSpread = 0f, blurIntensity = 1f, blurDirections = BlurDirections.All }, - new HighlightingPreset { name = "Solid 4px", fillAlpha = 0f, downsampleFactor = 1, iterations = 4, blurMinSpread = 1f, blurSpread = 0f, blurIntensity = 1f, blurDirections = BlurDirections.All }, - new HighlightingPreset { name = "Solid 5px", fillAlpha = 0f, downsampleFactor = 1, iterations = 5, blurMinSpread = 1f, blurSpread = 0f, blurIntensity = 1f, blurDirections = BlurDirections.All } - }; - public static Highlight[] GetHighlights() => (Highlight[])Enum.GetValues(typeof(Highlight)); - private static Sprite eyeSprite; - public static bool GetEyeSprite(out Sprite sprite) - { - if (eyeSprite == null && File.Exists(Path.Combine(ModDirectory, "Assets", "Eye.png"))) - eyeSprite = ImageUtils.LoadSprite(Path.Combine(ModDirectory, "Assets", "Eye.png"), new Vector2(0.5f, 0.5f), TextureFormat.BC7, 100f, SpriteMeshType.Tight); - sprite = eyeSprite; - return (sprite != null); - } - public static bool GetColorForType(string type, out Color newColor) - { - if (type == "story") - { - newColor = Settings.GetInstance().GetHighlightColor(Highlight.StoryItems); - return true; - } - else if (type == "disk") - { - newColor = Settings.GetInstance().GetHighlightColor(Highlight.JukeboxDisk); - return true; - } - newColor = Settings.nullColor; - return false; - } - public static List GetHighlightsForObject(this GameObject gameObject, out GameObject targetObject, out Behaviour behaviour) - { - var supported = new List(); - targetObject = null; - behaviour = null; - if (gameObject == null) - return supported; - if (Targeting.GetRoot(gameObject, out TechType techType, out GameObject result)) - { - var scannableFragments = Settings.GetInstance().IsHighlightActive(Highlight.ScannableFragments); - targetObject = result; - if (PDAScanner.IsFragment(techType)) - { - if (!PDAScanner.ContainsCompleteEntry(techType)) - { - if (scannableFragments) supported.Add(Highlight.ScannableFragments); - } - else if (techType.GetEntryData(out EntryData data)) - { - if (data.destroyAfterScan && Highlight.ScannedFragments.IsActive()) supported.Add(Highlight.ScannedFragments); - } - } - else if (result != null) - { - if (techType.GetEntryData(out EntryData data) && PDAScanner.CanScan(result)) - { - if (data.blueprint > 0 && scannableFragments) - supported.Add(Highlight.ScannableFragments); - else if (data.blueprint == 0 && Highlight.ScannableItems.IsActive()) - supported.Add(Highlight.ScannableItems); - } - } - } - behaviour = gameObject.GetComponentInParent() as Behaviour; - if (behaviour != null) - { - if (Highlight.BreakableResource.IsPressent(behaviour)) - { - if (Highlight.BreakableResource.IsActive()) supported.Add(Highlight.BreakableResource); - } - else if (Highlight.PickupableResource.IsPressent(behaviour)) - { - if (Highlight.CreatureEgg.IsPressent(behaviour)) - { - if (Highlight.CreatureEgg.IsActive()) supported.Add(Highlight.CreatureEgg); - } - else - { - if (Highlight.PickupableResource.IsActive()) supported.Add(Highlight.PickupableResource); - } - } - else if (Highlight.PickupableCreatures.IsPressent(behaviour)) - { - if (Highlight.Bladderfish.IsPressent(behaviour)) - { - if (Highlight.Bladderfish.IsActive()) supported.Add(Highlight.Bladderfish); - } - else - { - if (Highlight.PickupableCreatures.IsActive()) supported.Add(Highlight.PickupableCreatures); - } - } - else if (Highlight.Pickupable.IsPressent(behaviour)) - { - if (Highlight.Pickupable.IsActive()) supported.Add(Highlight.Pickupable); - } - else if (Highlight.Interactables.IsPressent(behaviour)) - { - if(Highlight.BaseLadder.IsPressent(behaviour)) - { - if (Highlight.BaseLadder.IsActive()) supported.Add(Highlight.BaseLadder); - } - else if (Highlight.GrownPlant.IsPressent(behaviour)) - { - if (Highlight.GrownPlant.IsActive()) supported.Add(Highlight.GrownPlant); - } - else if (Highlight.SealedDoor.IsPressent(behaviour)) - { - if (Highlight.SealedDoor.IsActive()) supported.Add(Highlight.SealedDoor); - } - else if (Highlight.LaserCutObject.IsPressent(behaviour)) - { - if (Highlight.LaserCutObject.IsActive()) supported.Add(Highlight.LaserCutObject); - } - else - { - if (Highlight.Interactables.IsActive()) supported.Add(Highlight.Interactables); - } - } - - if (Highlight.StoryItems.IsPressentAndActive(behaviour)) supported.Add(Highlight.StoryItems); - if (Highlight.JukeboxDisk.IsPressentAndActive(behaviour)) supported.Add(Highlight.JukeboxDisk); - if (supported.Count == 0 && Highlight.AnythingElse.IsActive()) supported.Add(Highlight.AnythingElse); - } - //if (!logged.Contains(gameObject.GetInstanceID())) - //{ - // var types1 = gameObject.GetComponents().Select(x => x.GetType()); - // var types2 = behaviour?.gameObject?.GetComponents().Select(x => x.GetType()); - // Console.WriteLine($"[AdvancedHighlighting] GetSupportedComponentsTypes ([{gameObject.GetInstanceID()}] {gameObject.name},[{behaviour?.gameObject?.GetInstanceID()}] {behaviour?.gameObject?.name}), Supported = ({string.Join(", ", supported)}), Types1 = ({string.Join(", ", types1)}), Types2 = ({(types2 != null ? string.Join(", ", types2) : "")})"); - // logged.Add(gameObject.GetInstanceID()); - //} - return supported; - } - //private static readonly List logged = new List(); - public static string ModDirectory - { - get => Environment.CurrentDirectory + "\\QMods\\AdvancedHighlighting\\"; - } - public static bool GetEntryData(this TechType tech, out EntryData data) - { - data = PDAScanner.GetEntryData(tech); - return data != null; - } - } -} \ No newline at end of file