Cleanup of usings
This commit is contained in:
parent
c34fd5eb0d
commit
d5b7f0aa26
@ -1,8 +1,8 @@
|
||||
using System;
|
||||
using Aki.Common;
|
||||
using astealz.SmartSpawnController.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Aki.Common;
|
||||
using astealz.SmartSpawnController.Utils;
|
||||
|
||||
namespace Aki.SinglePlayer.Utils
|
||||
{
|
||||
|
208
src/Aki/ZLib.cs
208
src/Aki/ZLib.cs
@ -1,127 +1,127 @@
|
||||
using System;
|
||||
using ComponentAce.Compression.Libs.zlib;
|
||||
using System;
|
||||
using System.IO;
|
||||
using ComponentAce.Compression.Libs.zlib;
|
||||
|
||||
namespace Aki.Common
|
||||
{
|
||||
public enum ZlibCompression
|
||||
{
|
||||
Store = 0,
|
||||
Fastest = 1,
|
||||
Fast = 3,
|
||||
Normal = 5,
|
||||
Ultra = 7,
|
||||
Maximum = 9
|
||||
}
|
||||
public enum ZlibCompression
|
||||
{
|
||||
Store = 0,
|
||||
Fastest = 1,
|
||||
Fast = 3,
|
||||
Normal = 5,
|
||||
Ultra = 7,
|
||||
Maximum = 9
|
||||
}
|
||||
|
||||
public static class Zlib
|
||||
{
|
||||
// Level | CM/CI FLG
|
||||
// ----- | ---------
|
||||
// 1 | 78 01
|
||||
// 2 | 78 5E
|
||||
// 3 | 78 5E
|
||||
// 4 | 78 5E
|
||||
// 5 | 78 5E
|
||||
// 6 | 78 9C
|
||||
// 7 | 78 DA
|
||||
// 8 | 78 DA
|
||||
// 9 | 78 DA
|
||||
public static class Zlib
|
||||
{
|
||||
// Level | CM/CI FLG
|
||||
// ----- | ---------
|
||||
// 1 | 78 01
|
||||
// 2 | 78 5E
|
||||
// 3 | 78 5E
|
||||
// 4 | 78 5E
|
||||
// 5 | 78 5E
|
||||
// 6 | 78 9C
|
||||
// 7 | 78 DA
|
||||
// 8 | 78 DA
|
||||
// 9 | 78 DA
|
||||
|
||||
/// <summary>
|
||||
/// Check if the file is ZLib compressed
|
||||
/// </summary>
|
||||
/// <param name="Data">Data</param>
|
||||
/// <returns>If the file is Zlib compressed</returns>
|
||||
public static bool IsCompressed(byte[] Data)
|
||||
{
|
||||
// We need the first two bytes;
|
||||
// First byte: Info (CM/CINFO) Header, should always be 0x78
|
||||
// Second byte: Flags (FLG) Header, should define our compression level.
|
||||
/// <summary>
|
||||
/// Check if the file is ZLib compressed
|
||||
/// </summary>
|
||||
/// <param name="Data">Data</param>
|
||||
/// <returns>If the file is Zlib compressed</returns>
|
||||
public static bool IsCompressed(byte[] Data)
|
||||
{
|
||||
// We need the first two bytes;
|
||||
// First byte: Info (CM/CINFO) Header, should always be 0x78
|
||||
// Second byte: Flags (FLG) Header, should define our compression level.
|
||||
|
||||
if (Data == null || Data.Length < 3 || Data[0] != 0x78)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (Data == null || Data.Length < 3 || Data[0] != 0x78)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (Data[1])
|
||||
{
|
||||
case 0x01: // fastest
|
||||
case 0x5E: // low
|
||||
case 0x9C: // normal
|
||||
case 0xDA: // max
|
||||
return true;
|
||||
}
|
||||
switch (Data[1])
|
||||
{
|
||||
case 0x01: // fastest
|
||||
case 0x5E: // low
|
||||
case 0x9C: // normal
|
||||
case 0xDA: // max
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deflate data.
|
||||
/// </summary>
|
||||
public static byte[] Compress(byte[] data, ZlibCompression level)
|
||||
{
|
||||
byte[] buffer = new byte[data.Length + 24];
|
||||
/// <summary>
|
||||
/// Deflate data.
|
||||
/// </summary>
|
||||
public static byte[] Compress(byte[] data, ZlibCompression level)
|
||||
{
|
||||
byte[] buffer = new byte[data.Length + 24];
|
||||
|
||||
ZStream zs = new ZStream()
|
||||
{
|
||||
avail_in = data.Length,
|
||||
next_in = data,
|
||||
next_in_index = 0,
|
||||
avail_out = buffer.Length,
|
||||
next_out = buffer,
|
||||
next_out_index = 0
|
||||
};
|
||||
ZStream zs = new ZStream()
|
||||
{
|
||||
avail_in = data.Length,
|
||||
next_in = data,
|
||||
next_in_index = 0,
|
||||
avail_out = buffer.Length,
|
||||
next_out = buffer,
|
||||
next_out_index = 0
|
||||
};
|
||||
|
||||
zs.deflateInit((int)level);
|
||||
zs.deflate(zlibConst.Z_FINISH);
|
||||
zs.deflateInit((int)level);
|
||||
zs.deflate(zlibConst.Z_FINISH);
|
||||
|
||||
data = new byte[zs.next_out_index];
|
||||
Array.Copy(zs.next_out, 0, data, 0, zs.next_out_index);
|
||||
data = new byte[zs.next_out_index];
|
||||
Array.Copy(zs.next_out, 0, data, 0, zs.next_out_index);
|
||||
|
||||
return data;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Inflate data.
|
||||
/// </summary>
|
||||
public static byte[] Decompress(byte[] data)
|
||||
{
|
||||
byte[] buffer = new byte[4096];
|
||||
/// <summary>
|
||||
/// Inflate data.
|
||||
/// </summary>
|
||||
public static byte[] Decompress(byte[] data)
|
||||
{
|
||||
byte[] buffer = new byte[4096];
|
||||
|
||||
ZStream zs = new ZStream()
|
||||
{
|
||||
avail_in = data.Length,
|
||||
next_in = data,
|
||||
next_in_index = 0,
|
||||
avail_out = buffer.Length,
|
||||
next_out = buffer,
|
||||
next_out_index = 0
|
||||
};
|
||||
ZStream zs = new ZStream()
|
||||
{
|
||||
avail_in = data.Length,
|
||||
next_in = data,
|
||||
next_in_index = 0,
|
||||
avail_out = buffer.Length,
|
||||
next_out = buffer,
|
||||
next_out_index = 0
|
||||
};
|
||||
|
||||
zs.inflateInit();
|
||||
zs.inflateInit();
|
||||
|
||||
using (MemoryStream ms = new MemoryStream())
|
||||
{
|
||||
do
|
||||
{
|
||||
zs.avail_out = buffer.Length;
|
||||
zs.next_out = buffer;
|
||||
zs.next_out_index = 0;
|
||||
using (MemoryStream ms = new MemoryStream())
|
||||
{
|
||||
do
|
||||
{
|
||||
zs.avail_out = buffer.Length;
|
||||
zs.next_out = buffer;
|
||||
zs.next_out_index = 0;
|
||||
|
||||
int result = zs.inflate(0);
|
||||
int result = zs.inflate(0);
|
||||
|
||||
if (result != 0 && result != 1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (result != 0 && result != 1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
ms.Write(zs.next_out, 0, zs.next_out_index);
|
||||
}
|
||||
while (zs.avail_in > 0 || zs.avail_out == 0);
|
||||
ms.Write(zs.next_out, 0, zs.next_out_index);
|
||||
}
|
||||
while (zs.avail_in > 0 || zs.avail_out == 0);
|
||||
|
||||
return ms.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
return ms.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -2,7 +2,6 @@
|
||||
using EFT;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
namespace astealz.SmartSpawnController.Behaviors
|
||||
@ -22,12 +21,12 @@ namespace astealz.SmartSpawnController.Behaviors
|
||||
private readonly List<Player> players = new List<Player>(playersPool);
|
||||
private readonly Dictionary<string, int> playerCounters = new Dictionary<string, int>(playersPool);
|
||||
|
||||
private readonly List<WildSpawnType> rolesToLeave =
|
||||
new List<WildSpawnType>(Enum.GetValues(typeof(WildSpawnType)).Length) {
|
||||
WildSpawnType.assault,
|
||||
WildSpawnType.assaultGroup,
|
||||
WildSpawnType.cursedAssault,
|
||||
WildSpawnType.pmcBot
|
||||
private readonly List<WildSpawnType> rolesToLeave =
|
||||
new List<WildSpawnType>(Enum.GetValues(typeof(WildSpawnType)).Length) {
|
||||
WildSpawnType.assault,
|
||||
WildSpawnType.assaultGroup,
|
||||
WildSpawnType.cursedAssault,
|
||||
WildSpawnType.pmcBot
|
||||
};
|
||||
|
||||
public bool DEBUG_ENABLED => Globals.Config.Debug;
|
||||
|
@ -1,10 +1,5 @@
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace astealz.SmartSpawnController
|
||||
{
|
||||
|
@ -1,12 +1,6 @@
|
||||
using astealz.SmartSpawnController.Utils;
|
||||
using EFT;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace astealz.SmartSpawnController
|
||||
|
@ -1,10 +1,6 @@
|
||||
using Comfort.Common;
|
||||
using EFT;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace astealz.SmartSpawnController
|
||||
@ -13,8 +9,10 @@ namespace astealz.SmartSpawnController
|
||||
{
|
||||
public static Config Config { get; set; }
|
||||
|
||||
public static MapConfig CurrentMapConfig {
|
||||
get {
|
||||
public static MapConfig CurrentMapConfig
|
||||
{
|
||||
get
|
||||
{
|
||||
MapConfig config = null;
|
||||
if (!Config.Maps.TryGetValue(LocationId, out config))
|
||||
{
|
||||
@ -22,10 +20,11 @@ namespace astealz.SmartSpawnController
|
||||
return new MapConfig();
|
||||
}
|
||||
return config;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static string LocationId {
|
||||
public static string LocationId
|
||||
{
|
||||
get
|
||||
{
|
||||
var game = GameObject.Find("GAME");
|
||||
|
@ -1,14 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using astealz.SmartSpawnController.Utils;
|
||||
using Comfort.Common;
|
||||
using EFT;
|
||||
using astealz.SmartSpawnController.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
|
||||
namespace astealz.SmartSpawnController
|
||||
{
|
||||
@ -25,13 +17,13 @@ namespace astealz.SmartSpawnController
|
||||
{
|
||||
// start console initialization
|
||||
EFT.StaticManager.Instance.StaticUpdate += Instance_StaticUpdate;
|
||||
|
||||
|
||||
// get config from server
|
||||
var json = Aki.SinglePlayer.Utils.RequestHandler.GetJson($"/mods/{Name.ToLower()}/config");
|
||||
var config = JsonConvert.DeserializeObject<Config>(json);
|
||||
|
||||
Globals.Config = config;
|
||||
|
||||
|
||||
// apply patches
|
||||
isApplyPatchesSuccess = Patches.BotSpawnerPatches.Apply();
|
||||
}
|
||||
|
@ -1,10 +1,7 @@
|
||||
using EFT;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace astealz.SmartSpawnController.Patches
|
||||
{
|
||||
|
@ -15,7 +15,7 @@ namespace astealz.SmartSpawnController.Patches
|
||||
class BotSpawnManager
|
||||
{
|
||||
const int poolSize = 20;
|
||||
|
||||
|
||||
private bool enabled;
|
||||
/// <summary>
|
||||
/// internal spawn wave counter
|
||||
@ -83,7 +83,7 @@ namespace astealz.SmartSpawnController.Patches
|
||||
if (DEBUG_ENABLED)
|
||||
Utils.Logger.Debug("OnStart(botZones)");
|
||||
var mapConfig = Globals.CurrentMapConfig;
|
||||
|
||||
|
||||
this.enabled = mapConfig.EnableSpawnControl;
|
||||
|
||||
if (mapConfig.EnableUnspawn)
|
||||
@ -113,7 +113,7 @@ namespace astealz.SmartSpawnController.Patches
|
||||
this.botsPerZoneBase = mapConfig.BotsPerZoneBase;
|
||||
this.scavSpawnZones.Clear();
|
||||
this.bossSpawnZones.Clear();
|
||||
|
||||
|
||||
SetScavRoles(mapConfig.ScavRoles);
|
||||
SetBossRoles(mapConfig.BossRoles);
|
||||
|
||||
|
@ -1,10 +1,7 @@
|
||||
using HarmonyLib;
|
||||
using System.Collections.Generic;
|
||||
using astealz.SmartSpawnController.Utils;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Reflection.Emit;
|
||||
using UnityEngine;
|
||||
using astealz.SmartSpawnController.Utils;
|
||||
|
||||
namespace astealz.SmartSpawnController.Patches
|
||||
{
|
||||
@ -14,7 +11,8 @@ namespace astealz.SmartSpawnController.Patches
|
||||
{
|
||||
private static float scavWaveRetrySpawnDeltaTime = 15f;
|
||||
private static float lastCheckTime = 0f;
|
||||
public BotSpawnerDelayPatch() : base(prefix: nameof(PatchPrefix)) {
|
||||
public BotSpawnerDelayPatch() : base(prefix: nameof(PatchPrefix))
|
||||
{
|
||||
scavWaveRetrySpawnDeltaTime = Globals.Config.ScavWaveRetryInterval;
|
||||
}
|
||||
|
||||
|
@ -1,12 +1,9 @@
|
||||
using astealz.SmartSpawnController.Utils;
|
||||
using EFT;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace astealz.SmartSpawnController.Patches
|
||||
{
|
||||
@ -38,7 +35,8 @@ namespace astealz.SmartSpawnController.Patches
|
||||
var bossSpawnerType = botSpawnerType.GetField("BossSpawner").FieldType;
|
||||
var bossLateSpawnMethod = bossSpawnerType
|
||||
.GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
|
||||
.Single(m => {
|
||||
.Single(m =>
|
||||
{
|
||||
var mp = m.GetParameters();
|
||||
if (mp.Length < methodParams.Count)
|
||||
return false;
|
||||
@ -59,7 +57,7 @@ namespace astealz.SmartSpawnController.Patches
|
||||
bossWaveDataWrapper.SetData(wave, botZone);
|
||||
|
||||
botSpawnManager.OnActivateBoss(bossWaveDataWrapper);
|
||||
|
||||
|
||||
botSpawnManager.Callback(false);
|
||||
|
||||
bossWaveDataWrapper.ResetData();
|
||||
@ -75,11 +73,13 @@ namespace astealz.SmartSpawnController.Patches
|
||||
|
||||
public WildSpawnType WildSpawnType { get; private set; }
|
||||
|
||||
public string ZoneName {
|
||||
get => nameZone;
|
||||
set {
|
||||
public string ZoneName
|
||||
{
|
||||
get => nameZone;
|
||||
set
|
||||
{
|
||||
Logger.Info("Can't change boss 'ZoneName'");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int Count => 1;
|
||||
|
@ -1,11 +1,6 @@
|
||||
using astealz.SmartSpawnController.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace astealz.SmartSpawnController.Patches
|
||||
{
|
||||
|
@ -1,9 +1,6 @@
|
||||
using astealz.SmartSpawnController.Utils;
|
||||
using System;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace astealz.SmartSpawnController.Patches
|
||||
{
|
||||
|
@ -1,5 +1,4 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Общие сведения об этой сборке предоставляются следующим набором
|
||||
|
Loading…
x
Reference in New Issue
Block a user