Compare commits

..

No commits in common. "69231bc92aca78d0057a1cb2d4300c11d7bd72e1" and "11b26bb6937a1a3bea911ac669ec1bc22cfe41ca" have entirely different histories.

10 changed files with 42 additions and 24 deletions

View File

@ -1,4 +0,0 @@
[*.cs]
# IDE0130: Namespace does not match folder structure
dotnet_style_namespace_match_folder = false

View File

@ -54,7 +54,6 @@ public class HookahAssetBuilder
FileName = "dotnet", FileName = "dotnet",
Arguments = "build", Arguments = "build",
UseShellExecute = false, UseShellExecute = false,
WorkingDirectory = ModProjectPath,
}; };
var proc = Process.Start(psi); var proc = Process.Start(psi);

View File

@ -4,7 +4,7 @@
<PropertyGroup> <PropertyGroup>
<AssemblyName>Ratijas.HookahPlace</AssemblyName> <AssemblyName>Ratijas.HookahPlace</AssemblyName>
<Product>HookahPlace</Product> <Product>HookahPlace</Product>
<Version>4.2.0</Version> <Version>4.1.9</Version>
</PropertyGroup> </PropertyGroup>
<!-- Project Properties --> <!-- Project Properties -->
<PropertyGroup> <PropertyGroup>
@ -44,7 +44,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<DawnLibVersion>0.7.11</DawnLibVersion> <DawnLibVersion>0.7.3</DawnLibVersion>
</PropertyGroup> </PropertyGroup>
<!-- Primary Package References - BepInEx --> <!-- Primary Package References - BepInEx -->
@ -54,10 +54,6 @@
<PackageReference Include="BepInEx.Core" Version="5.*" PrivateAssets="all"/> <PackageReference Include="BepInEx.Core" Version="5.*" PrivateAssets="all"/>
<PackageReference Include="BepInEx.PluginInfoProps" Version="2.*" PrivateAssets="all"/> <PackageReference Include="BepInEx.PluginInfoProps" Version="2.*" PrivateAssets="all"/>
<PackageReference Include="LethalCompany.GameLibs.Steam" Version="*-*" PrivateAssets="all"/> <PackageReference Include="LethalCompany.GameLibs.Steam" Version="*-*" PrivateAssets="all"/>
<PackageReference Include="Microsoft.Unity.Analyzers" Version="1.25.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="UnityEngine.Modules" Version="2022.3.62" PrivateAssets="all"/> <PackageReference Include="UnityEngine.Modules" Version="2022.3.62" PrivateAssets="all"/>
<PackageReference Include="TeamXiaolan.DawnLib" Version="$(DawnLibVersion)" PrivateAssets="all"/> <PackageReference Include="TeamXiaolan.DawnLib" Version="$(DawnLibVersion)" PrivateAssets="all"/>
<PackageReference Include="TeamXiaolan.DawnLib.DuskMod" Version="$(DawnLibVersion)" /> <PackageReference Include="TeamXiaolan.DawnLib.DuskMod" Version="$(DawnLibVersion)" />

View File

@ -12,12 +12,10 @@ Become a ship-mom (or a ship-dad) and smoke shisha while guiding your crew over
The mod adds a ship decor/furniture to the store called "Hookah". The mod adds a ship decor/furniture to the store called "Hookah".
The store rotates between random 4-6 entries every quota. To make the hookah always available in the store, use another mod like [`StoreRotationConfig` by `pacoito`](https://thunderstore.io/c/lethal-company/p/pacoito/StoreRotationConfig/) with the `stockAll` option toggled ON or add "Hookah" (with capital 'H', without quotes) to the `itemWhitelist`. The store rotates between random 4-6 entries every quota. To make the hookah always available in the store, use another mod like [`StoreRotationConfig` by `pacoito`](https://thunderstore.io/c/lethal-company/p/pacoito/StoreRotationConfig/) with the `stockAll` option toggled ON.
## Made by Ratijas ## Made by Ratijas
See also [mod's release thread](https://discord.com/channels/1168655651455639582/1465126696117076242) at [Lethal Company Modding](https://discord.gg/XeyYqRdRGC) Discord server (in case the invite link expires, there should be a fresh one at [lethal.wiki](https://lethal.wiki/)).
Also check out my other mod, 🎵 [Muzika Gromche — The ultimate Jester party music mod](https://thunderstore.io/c/lethal-company/p/Ratijas/MuzikaGromche/)! Also check out my other mod, 🎵 [Muzika Gromche — The ultimate Jester party music mod](https://thunderstore.io/c/lethal-company/p/Ratijas/MuzikaGromche/)!
Hookah model made in Blender: [HookahPlace.blend](https://ratijas.me/share/public/LC/HookahPlace/HookahPlace.blend) Hookah model made in Blender: [HookahPlace.blend](https://ratijas.me/share/public/LC/HookahPlace/HookahPlace.blend)

View File

@ -1,7 +1,3 @@
# 4.2.0
Fixed Hookah unlockable item disappearing after reloading a save file.
# 4.1.9 # 4.1.9
Inital release Inital release

View File

@ -4,14 +4,14 @@ schemaVersion = "0.0.1"
[package] [package]
namespace = "Ratijas" namespace = "Ratijas"
name = "HookahPlace" name = "HookahPlace"
versionNumber = "4.2.0" versionNumber = "4.1.9"
description = "Relaxing hookah as a ship upgrade" description = "Relaxing hookah as a ship upgrade"
websiteUrl = "https://git.vilunov.me/ratijas/HookahPlace" websiteUrl = "https://git.vilunov.me/ratijas/HookahPlace"
containsNsfwContent = false containsNsfwContent = false
[package.dependencies] [package.dependencies]
BepInEx-BepInExPack = "5.4.2304" BepInEx-BepInExPack = "5.4.2304"
TeamXiaolan-DawnLib = "0.7.11" TeamXiaolan-DawnLib = "0.7.3"
[build] [build]
icon = "./icon.png" icon = "./icon.png"

View File

@ -4,8 +4,12 @@ namespace HookahPlace.Content;
public class HookahContentHandler : ContentHandler<HookahContentHandler> public class HookahContentHandler : ContentHandler<HookahContentHandler>
{ {
const int HOOKAH_PRICE = 130;
public HookahContentHandler(DuskMod mod) : base(mod) public HookahContentHandler(DuskMod mod) : base(mod)
{ {
NukeDawnLibConfig.NukeUnlockable(HookahPlace.Config, "HookahUnlockable", "Hookah", HOOKAH_PRICE);
if (!RegisterContent("hookahunlockableassets", out DefaultBundle? bundle, forceEnabled: true) || bundle == null) if (!RegisterContent("hookahunlockableassets", out DefaultBundle? bundle, forceEnabled: true) || bundle == null)
{ {
HookahPlace.Logger.LogError($"Failed to register content"); HookahPlace.Logger.LogError($"Failed to register content");

View File

@ -0,0 +1,22 @@
using BepInEx.Configuration;
using Dusk;
namespace HookahPlace.Content;
internal static class NukeDawnLibConfig
{
static internal void NukeUnlockable(ConfigFile config, string heading, string name, int cost)
{
heading = $"{heading} Options";
var costName = $"{name} | Cost";
var disclaimer = "Sorry, this is not configurable. This is a dirty hack to suppress DawnLib/DuskMod from allowing any configurability here.";
var ctx = new ConfigContext(config, heading);
var enabledEntry = ctx.Bind("Enabled", disclaimer, true);
enabledEntry.Value = true;
var costEntry = ctx.Bind(costName, disclaimer, cost);
costEntry.Value = cost;
}
}

View File

@ -7,7 +7,6 @@ using Dawn.Utils;
using HarmonyLib; using HarmonyLib;
using Dusk; using Dusk;
using BepInEx.Configuration; using BepInEx.Configuration;
using HookahPlace.Content;
namespace HookahPlace; namespace HookahPlace;
@ -18,6 +17,8 @@ public class HookahPlace : BaseUnityPlugin
internal new static ManualLogSource Logger { get; private set; } = null!; internal new static ManualLogSource Logger { get; private set; } = null!;
internal new static ConfigFile Config { get; private set; } = null!; internal new static ConfigFile Config { get; private set; } = null!;
internal static PersistentDataContainer PersistentData { get; private set; } = null!;
internal static DuskMod Mod { get; private set; } = null!; internal static DuskMod Mod { get; private set; } = null!;
private void Awake() private void Awake()
@ -27,11 +28,17 @@ public class HookahPlace : BaseUnityPlugin
Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), MyPluginInfo.PLUGIN_GUID); Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), MyPluginInfo.PLUGIN_GUID);
// Example Persistent Data Container Usage
// You can do anything you want with this DataContainer, there are a few additonal ones under the DawnLib class that pertain to actual save files
PersistentData = this.GetPersistentDataContainer();
// e.g. track the last version the player played with, could be useful if you want do to stuff like setting migration.
// if you want to do config migration you should use DawnLib.GetCurrentInstallSave instead.
PersistentData.Set(HookahPlaceKeys.LastVersion, MyPluginInfo.PLUGIN_VERSION);
AssetBundle mainBundle = AssetBundleUtils.LoadBundle(Assembly.GetExecutingAssembly(), "hookahplaceasset"); AssetBundle mainBundle = AssetBundleUtils.LoadBundle(Assembly.GetExecutingAssembly(), "hookahplaceasset");
Mod = DuskMod.RegisterMod(this, mainBundle); Mod = DuskMod.RegisterMod(this, mainBundle);
Mod.RegisterContentHandlers();
// Effectively the same as `Mod.RegisterContentHandlers();` but simpler and faster
_ = new HookahContentHandler(Mod);
Logger.LogInfo($"{MyPluginInfo.PLUGIN_GUID} v{MyPluginInfo.PLUGIN_VERSION} has loaded!"); Logger.LogInfo($"{MyPluginInfo.PLUGIN_GUID} v{MyPluginInfo.PLUGIN_VERSION} has loaded!");
} }