Skip to content
1 change: 1 addition & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ jobs:
BepInEx-BepInExPack-5.4.2100
Evaisa-LethalLib-1.1.1
WhiteSpike-Interactive_Terminal_API-1.3.0
Sigurd-CSync-5.0.1
website: ${{ steps.get-properties.outputs.WEBSITE }}
files: |
./src/ShipInventoryUpdated/bin/Release/ShipInventoryUpdated.dll
Expand Down
13 changes: 9 additions & 4 deletions src/ShipInventoryUpdated/Configurations/ChuteConfig.cs
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
using BepInEx.Configuration;
using CSync.Extensions;
using CSync.Lib;
using ShipInventoryUpdated.Helpers;

namespace ShipInventoryUpdated.Configurations;

/// <summary>
/// Class that holds the configurations related to the chute itself
/// </summary>
internal class ChuteConfig
internal class ChuteConfig : SyncedConfig2<ChuteConfig>
{
private const string GUID_ = MyPluginInfo.PLUGIN_GUID + "." + nameof(ChuteConfig);
private const string SECTION = "Chute";

public readonly ConfigEntry<string> Blacklist;
[SyncedEntryField] public readonly SyncedEntry<string> Blacklist;
public readonly ConfigEntry<float> StoreSpeed;

public ChuteConfig(ConfigFile cfg)
public ChuteConfig(ConfigFile cfg) : base(GUID_)
{
Blacklist = cfg.Bind(
Blacklist = cfg.BindSyncedEntry(
new ConfigDefinition(SECTION, "ChuteBlacklist"),
"",
new ConfigDescription(Localization.Get("configuration.chute.blacklist.description"))
Expand All @@ -26,5 +29,7 @@ public ChuteConfig(ConfigFile cfg)
0.5f,
new ConfigDescription(Localization.Get("configuration.chute.storeSpeed.description"))
);

ConfigManager.Register(this);
}
}
17 changes: 11 additions & 6 deletions src/ShipInventoryUpdated/Configurations/InventoryConfig.cs
Original file line number Diff line number Diff line change
@@ -1,28 +1,31 @@
using BepInEx.Configuration;
using CSync.Extensions;
using CSync.Lib;
using ShipInventoryUpdated.Helpers;

namespace ShipInventoryUpdated.Configurations;

/// <summary>
/// Class that holds the configurations related to the inventory itself
/// </summary>
internal class InventoryConfig
internal class InventoryConfig : SyncedConfig2<InventoryConfig>
{
private const string GUID_ = MyPluginInfo.PLUGIN_GUID + "." + nameof(InventoryConfig);
private const string SECTION = "Inventory";

public readonly ConfigEntry<int> MaxItemCount;
public readonly ConfigEntry<bool> ClearOnWipe;
[SyncedEntryField] public readonly SyncedEntry<int> MaxItemCount;
[SyncedEntryField] public readonly SyncedEntry<bool> ClearOnWipe;
public readonly ConfigEntry<float> RetrieveSpeed;

public InventoryConfig(ConfigFile cfg)
public InventoryConfig(ConfigFile cfg) : base(GUID_)
{
MaxItemCount = cfg.Bind(
MaxItemCount = cfg.BindSyncedEntry(
new ConfigDefinition(SECTION, "MaxItemCount"),
5_000,
new ConfigDescription(Localization.Get("configuration.inventory.maxItemCount.description"))
);

ClearOnWipe = cfg.Bind(
ClearOnWipe = cfg.BindSyncedEntry(
new ConfigDefinition(SECTION, "ClearOnWipe"),
true,
new ConfigDescription(Localization.Get("configuration.inventory.clearOnWipe.description"))
Expand All @@ -33,5 +36,7 @@ public InventoryConfig(ConfigFile cfg)
0.5f,
new ConfigDescription(Localization.Get("configuration.inventory.retrieveSpeed.description"))
);

ConfigManager.Register(this);
}
}
19 changes: 12 additions & 7 deletions src/ShipInventoryUpdated/Configurations/UnlockConfig.cs
Original file line number Diff line number Diff line change
@@ -1,40 +1,45 @@
using BepInEx.Configuration;
using CSync.Extensions;
using CSync.Lib;
using ShipInventoryUpdated.Helpers;

namespace ShipInventoryUpdated.Configurations;

/// <summary>
/// Class that holds the configurations related to the unlocking of the inventory
/// </summary>
internal class UnlockConfig
internal class UnlockConfig : SyncedConfig2<UnlockConfig>
{
private const string GUID_ = MyPluginInfo.PLUGIN_GUID + "." + nameof(UnlockConfig);
private const string SECTION = "Unlock";

public readonly ConfigEntry<string> UnlockName;
public readonly ConfigEntry<int> UnlockCost;
public readonly ConfigEntry<bool> IsChuteUnlocked;
[SyncedEntryField] public readonly SyncedEntry<int> UnlockCost;
[SyncedEntryField] public readonly SyncedEntry<bool> IsChuteUnlocked;

public UnlockConfig(ConfigFile cfg)
public UnlockConfig(ConfigFile cfg) : base(GUID_)
{
UnlockName = cfg.Bind(
new ConfigDefinition(SECTION, "ChuteUnlockName"),
"ship inventory",
new ConfigDescription(Localization.Get("configuration.unlock.unlockName.description"))
);

UnlockCost = cfg.Bind(
UnlockCost = cfg.BindSyncedEntry(
new ConfigDefinition(SECTION, "ChuteUnlockCost"),
60,
new ConfigDescription(Localization.Get("configuration.unlock.unlockCost.description"))
);

IsChuteUnlocked = cfg.Bind(
IsChuteUnlocked = cfg.BindSyncedEntry(
new ConfigDefinition(SECTION, "ChuteIsUnlock"),
false,
new ConfigDescription(Localization.Get("configuration.unlock.isUnlockable.description"))
);

UnlockName.SettingChanged += (_, _) => Patches.Terminal_Patches.AssignNewCommand(UnlockName.Value);
UnlockCost.SettingChanged += (_, _) => Patches.Terminal_Patches.AssignNewCost(UnlockCost.Value);
UnlockCost.Changed += (_, _) => Patches.Terminal_Patches.AssignNewCost(UnlockCost.Value);

ConfigManager.Register(this);
}
}
10 changes: 5 additions & 5 deletions src/ShipInventoryUpdated/Dependencies/LethalConfig/Dependency.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ private static void ApplyInformation()
private static void ApplyChuteConfiguration(ChuteConfig config)
{
LethalConfigManager.AddConfigItem(new TextInputFieldConfigItem(
config.Blacklist,
config.Blacklist.Entry,
new TextInputFieldOptions
{
Name = Localization.Get("configuration.chute.blacklist.name"),
Expand Down Expand Up @@ -100,7 +100,7 @@ private static void ApplyChuteConfiguration(ChuteConfig config)
private static void ApplyInventoryConfiguration(InventoryConfig config)
{
LethalConfigManager.AddConfigItem(new IntInputFieldConfigItem(
config.MaxItemCount,
config.MaxItemCount.Entry,
new IntInputFieldOptions
{
Name = Localization.Get("configuration.inventory.maxItemCount.name"),
Expand All @@ -111,7 +111,7 @@ private static void ApplyInventoryConfiguration(InventoryConfig config)
));

LethalConfigManager.AddConfigItem(new BoolCheckBoxConfigItem(
config.ClearOnWipe,
config.ClearOnWipe.Entry,
new BoolCheckBoxOptions
{
Name = Localization.Get("configuration.inventory.clearOnWipe.name"),
Expand Down Expand Up @@ -167,7 +167,7 @@ private static void ApplyUnlockConfiguration(UnlockConfig config)
));

LethalConfigManager.AddConfigItem(new IntInputFieldConfigItem(
config.UnlockCost,
config.UnlockCost.Entry,
new IntInputFieldOptions
{
Name = Localization.Get("configuration.unlock.unlockCost.name"),
Expand All @@ -178,7 +178,7 @@ private static void ApplyUnlockConfiguration(UnlockConfig config)
));

LethalConfigManager.AddConfigItem(new BoolCheckBoxConfigItem(
config.IsChuteUnlocked,
config.IsChuteUnlocked.Entry,
new BoolCheckBoxOptions
{
Name = Localization.Get("configuration.unlock.isUnlockable.name"),
Expand Down
1 change: 1 addition & 0 deletions src/ShipInventoryUpdated/ShipInventoryUpdated.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ namespace ShipInventoryUpdated;
// Hard
[BepInDependency("WhiteSpike.InteractiveTerminalAPI", "1.3.0")]
[BepInDependency(LethalLib.Plugin.ModGUID)]
[BepInDependency("com.sigurd.csync", "5.0.1")]
// Soft
[BepInDependency(LethalConfig.PluginInfo.Guid, BepInDependency.DependencyFlags.SoftDependency)]
public class ShipInventoryUpdated : BaseUnityPlugin
Expand Down
1 change: 1 addition & 0 deletions src/ShipInventoryUpdated/ShipInventoryUpdated.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
PrivateAssets="all" />
<PackageReference Include="LethalCompany.GameLibs.Steam" Version="*-*" PrivateAssets="all" />
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="Sigurd.BepInEx.CSync" Version="5.0.1" />
<PackageReference Include="UnityEngine.Modules" Version="2022.3.9" IncludeAssets="compile"
PrivateAssets="all" />
<PackageReference Include="MinVer" Version="6.*" PrivateAssets="all" />
Expand Down